From 00e01c2ecd578442b9d8e457f3892fcfbd325fb1 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 2 Aug 2018 13:33:06 +0000 Subject: [PATCH] First public release --- .gitignore | 12 + .idea/assetWizardSettings.xml | 62 + .idea/caches/build_file_checksums.ser | Bin 0 -> 535 bytes .idea/codeStyles/Project.xml | 29 + .idea/gradle.xml | 18 + .idea/misc.xml | 34 + .idea/runConfigurations.xml | 12 + .idea/vcs.xml | 6 + FAQ.md | 27 + LICENSE | 674 +++++++++++ README.md | 117 ++ app/.gitignore | 1 + app/build.gradle | 60 + app/proguard-rules.pro | 38 + app/src/main/AndroidManifest.xml | 43 + app/src/main/ic_launcher-web.png | Bin 0 -> 14243 bytes .../java/eu/faircode/email/ActivityBase.java | 35 + .../eu/faircode/email/ActivityCompose.java | 57 + .../java/eu/faircode/email/ActivitySetup.java | 46 + .../java/eu/faircode/email/ActivityView.java | 388 +++++++ .../eu/faircode/email/AdapterAccount.java | 201 ++++ .../java/eu/faircode/email/AdapterFolder.java | 238 ++++ .../eu/faircode/email/AdapterIdentity.java | 201 ++++ .../eu/faircode/email/AdapterMessage.java | 242 ++++ .../java/eu/faircode/email/ApplicationEx.java | 25 + app/src/main/java/eu/faircode/email/DB.java | 94 ++ .../java/eu/faircode/email/DaoAccount.java | 65 ++ .../java/eu/faircode/email/DaoFolder.java | 90 ++ .../java/eu/faircode/email/DaoIdentity.java | 56 + .../java/eu/faircode/email/DaoMessage.java | 96 ++ .../java/eu/faircode/email/DaoOperation.java | 45 + .../java/eu/faircode/email/EntityAccount.java | 64 ++ .../eu/faircode/email/EntityAttachment.java | 50 + .../java/eu/faircode/email/EntityFolder.java | 100 ++ .../eu/faircode/email/EntityIdentity.java | 78 ++ .../java/eu/faircode/email/EntityMessage.java | 111 ++ .../eu/faircode/email/EntityOperation.java | 95 ++ .../eu/faircode/email/FragmentAccount.java | 319 +++++ .../eu/faircode/email/FragmentAccounts.java | 102 ++ .../eu/faircode/email/FragmentCompose.java | 585 ++++++++++ .../java/eu/faircode/email/FragmentEula.java | 60 + .../eu/faircode/email/FragmentFolder.java | 160 +++ .../eu/faircode/email/FragmentFolders.java | 97 ++ .../eu/faircode/email/FragmentIdentities.java | 102 ++ .../eu/faircode/email/FragmentIdentity.java | 289 +++++ .../eu/faircode/email/FragmentMessage.java | 329 ++++++ .../eu/faircode/email/FragmentMessages.java | 152 +++ .../java/eu/faircode/email/FragmentSetup.java | 192 ++++ .../main/java/eu/faircode/email/Helper.java | 63 + .../java/eu/faircode/email/HtmlHelper.java | 95 ++ .../java/eu/faircode/email/MessageHelper.java | 282 +++++ .../main/java/eu/faircode/email/Provider.java | 87 ++ .../eu/faircode/email/ReceiverAutostart.java | 33 + .../eu/faircode/email/ServiceSynchronize.java | 1024 +++++++++++++++++ .../eu/faircode/email/TupleAccountStats.java | 25 + .../java/eu/faircode/email/TupleFolderEx.java | 38 + .../eu/faircode/email/TupleMessageEx.java | 39 + .../eu/faircode/email/TupleOperationEx.java | 24 + .../drawable-hdpi/baseline_add_black_18.png | Bin 0 -> 146 bytes .../drawable-hdpi/baseline_add_black_24.png | Bin 0 -> 136 bytes .../drawable-hdpi/baseline_add_black_36.png | Bin 0 -> 159 bytes .../drawable-hdpi/baseline_add_black_48.png | Bin 0 -> 114 bytes .../drawable-hdpi/baseline_add_white_18.png | Bin 0 -> 150 bytes .../drawable-hdpi/baseline_add_white_24.png | Bin 0 -> 138 bytes .../drawable-hdpi/baseline_add_white_36.png | Bin 0 -> 158 bytes .../drawable-hdpi/baseline_add_white_48.png | Bin 0 -> 97 bytes .../baseline_archive_black_18.png | Bin 0 -> 232 bytes .../baseline_archive_black_24.png | Bin 0 -> 240 bytes .../baseline_archive_black_36.png | Bin 0 -> 346 bytes .../baseline_archive_black_48.png | Bin 0 -> 369 bytes .../baseline_archive_white_18.png | Bin 0 -> 235 bytes .../baseline_archive_white_24.png | Bin 0 -> 236 bytes .../baseline_archive_white_36.png | Bin 0 -> 344 bytes .../baseline_archive_white_48.png | Bin 0 -> 366 bytes .../baseline_delete_black_18.png | Bin 0 -> 165 bytes .../baseline_delete_black_24.png | Bin 0 -> 173 bytes .../baseline_delete_black_36.png | Bin 0 -> 194 bytes .../baseline_delete_black_48.png | Bin 0 -> 230 bytes .../baseline_delete_white_18.png | Bin 0 -> 169 bytes .../baseline_delete_white_24.png | Bin 0 -> 176 bytes .../baseline_delete_white_36.png | Bin 0 -> 195 bytes .../baseline_delete_white_48.png | Bin 0 -> 222 bytes .../drawable-hdpi/baseline_edit_black_18.png | Bin 0 -> 193 bytes .../drawable-hdpi/baseline_edit_black_24.png | Bin 0 -> 242 bytes .../drawable-hdpi/baseline_edit_black_36.png | Bin 0 -> 304 bytes .../drawable-hdpi/baseline_edit_black_48.png | Bin 0 -> 299 bytes .../drawable-hdpi/baseline_edit_white_18.png | Bin 0 -> 194 bytes .../drawable-hdpi/baseline_edit_white_24.png | Bin 0 -> 244 bytes .../drawable-hdpi/baseline_edit_white_36.png | Bin 0 -> 305 bytes .../drawable-hdpi/baseline_edit_white_48.png | Bin 0 -> 297 bytes .../baseline_folder_black_18.png | Bin 0 -> 160 bytes .../baseline_folder_black_24.png | Bin 0 -> 146 bytes .../baseline_folder_black_36.png | Bin 0 -> 187 bytes .../baseline_folder_black_48.png | Bin 0 -> 248 bytes .../baseline_folder_white_18.png | Bin 0 -> 160 bytes .../baseline_folder_white_24.png | Bin 0 -> 140 bytes .../baseline_folder_white_36.png | Bin 0 -> 179 bytes .../baseline_folder_white_48.png | Bin 0 -> 243 bytes .../baseline_forward_black_18.png | Bin 0 -> 147 bytes .../baseline_forward_black_24.png | Bin 0 -> 149 bytes .../baseline_forward_black_36.png | Bin 0 -> 167 bytes .../baseline_forward_black_48.png | Bin 0 -> 195 bytes .../baseline_forward_white_18.png | Bin 0 -> 146 bytes .../baseline_forward_white_24.png | Bin 0 -> 153 bytes .../baseline_forward_white_36.png | Bin 0 -> 176 bytes .../baseline_forward_white_48.png | Bin 0 -> 194 bytes .../drawable-hdpi/baseline_mail_black_18.png | Bin 0 -> 267 bytes .../drawable-hdpi/baseline_mail_black_24.png | Bin 0 -> 269 bytes .../drawable-hdpi/baseline_mail_black_36.png | Bin 0 -> 373 bytes .../drawable-hdpi/baseline_mail_black_48.png | Bin 0 -> 421 bytes .../baseline_mail_outline_black_18.png | Bin 0 -> 266 bytes .../baseline_mail_outline_black_24.png | Bin 0 -> 271 bytes .../baseline_mail_outline_black_36.png | Bin 0 -> 377 bytes .../baseline_mail_outline_black_48.png | Bin 0 -> 422 bytes .../baseline_mail_outline_white_18.png | Bin 0 -> 273 bytes .../baseline_mail_outline_white_24.png | Bin 0 -> 272 bytes .../baseline_mail_outline_white_36.png | Bin 0 -> 373 bytes .../baseline_mail_outline_white_48.png | Bin 0 -> 418 bytes .../drawable-hdpi/baseline_mail_white_18.png | Bin 0 -> 262 bytes .../drawable-hdpi/baseline_mail_white_24.png | Bin 0 -> 268 bytes .../drawable-hdpi/baseline_mail_white_36.png | Bin 0 -> 368 bytes .../drawable-hdpi/baseline_mail_white_48.png | Bin 0 -> 419 bytes .../baseline_message_black_18.png | Bin 0 -> 194 bytes .../baseline_message_black_24.png | Bin 0 -> 184 bytes .../baseline_message_black_36.png | Bin 0 -> 252 bytes .../baseline_message_black_48.png | Bin 0 -> 259 bytes .../baseline_message_white_18.png | Bin 0 -> 195 bytes .../baseline_message_white_24.png | Bin 0 -> 183 bytes .../baseline_message_white_36.png | Bin 0 -> 253 bytes .../baseline_message_white_48.png | Bin 0 -> 263 bytes .../baseline_person_add_black_18.png | Bin 0 -> 271 bytes .../baseline_person_add_black_24.png | Bin 0 -> 270 bytes .../baseline_person_add_black_36.png | Bin 0 -> 354 bytes .../baseline_person_add_black_48.png | Bin 0 -> 428 bytes .../baseline_person_add_white_18.png | Bin 0 -> 273 bytes .../baseline_person_add_white_24.png | Bin 0 -> 269 bytes .../baseline_person_add_white_36.png | Bin 0 -> 350 bytes .../baseline_person_add_white_48.png | Bin 0 -> 421 bytes .../baseline_person_black_18.png | Bin 0 -> 216 bytes .../baseline_person_black_24.png | Bin 0 -> 257 bytes .../baseline_person_black_36.png | Bin 0 -> 334 bytes .../baseline_person_black_48.png | Bin 0 -> 404 bytes .../baseline_person_white_18.png | Bin 0 -> 213 bytes .../baseline_person_white_24.png | Bin 0 -> 254 bytes .../baseline_person_white_36.png | Bin 0 -> 328 bytes .../baseline_person_white_48.png | Bin 0 -> 397 bytes .../baseline_reply_all_black_18.png | Bin 0 -> 307 bytes .../baseline_reply_all_black_24.png | Bin 0 -> 280 bytes .../baseline_reply_all_black_36.png | Bin 0 -> 390 bytes .../baseline_reply_all_black_48.png | Bin 0 -> 429 bytes .../baseline_reply_all_white_18.png | Bin 0 -> 310 bytes .../baseline_reply_all_white_24.png | Bin 0 -> 285 bytes .../baseline_reply_all_white_36.png | Bin 0 -> 394 bytes .../baseline_reply_all_white_48.png | Bin 0 -> 427 bytes .../drawable-hdpi/baseline_reply_black_18.png | Bin 0 -> 237 bytes .../drawable-hdpi/baseline_reply_black_24.png | Bin 0 -> 244 bytes .../drawable-hdpi/baseline_reply_black_36.png | Bin 0 -> 358 bytes .../drawable-hdpi/baseline_reply_black_48.png | Bin 0 -> 394 bytes .../drawable-hdpi/baseline_reply_white_18.png | Bin 0 -> 241 bytes .../drawable-hdpi/baseline_reply_white_24.png | Bin 0 -> 246 bytes .../drawable-hdpi/baseline_reply_white_36.png | Bin 0 -> 345 bytes .../drawable-hdpi/baseline_reply_white_48.png | Bin 0 -> 384 bytes .../baseline_report_black_18.png | Bin 0 -> 233 bytes .../baseline_report_black_24.png | Bin 0 -> 209 bytes .../baseline_report_black_36.png | Bin 0 -> 287 bytes .../baseline_report_black_48.png | Bin 0 -> 304 bytes .../baseline_report_white_18.png | Bin 0 -> 229 bytes .../baseline_report_white_24.png | Bin 0 -> 209 bytes .../baseline_report_white_36.png | Bin 0 -> 286 bytes .../baseline_report_white_48.png | Bin 0 -> 304 bytes .../baseline_save_alt_black_18.png | Bin 0 -> 213 bytes .../baseline_save_alt_black_24.png | Bin 0 -> 240 bytes .../baseline_save_alt_black_36.png | Bin 0 -> 313 bytes .../baseline_save_alt_black_48.png | Bin 0 -> 316 bytes .../baseline_save_alt_white_18.png | Bin 0 -> 210 bytes .../baseline_save_alt_white_24.png | Bin 0 -> 242 bytes .../baseline_save_alt_white_36.png | Bin 0 -> 301 bytes .../baseline_save_alt_white_48.png | Bin 0 -> 318 bytes .../drawable-hdpi/baseline_save_black_18.png | Bin 0 -> 223 bytes .../drawable-hdpi/baseline_save_black_24.png | Bin 0 -> 234 bytes .../drawable-hdpi/baseline_save_black_36.png | Bin 0 -> 322 bytes .../drawable-hdpi/baseline_save_black_48.png | Bin 0 -> 354 bytes .../drawable-hdpi/baseline_save_white_18.png | Bin 0 -> 225 bytes .../drawable-hdpi/baseline_save_white_24.png | Bin 0 -> 238 bytes .../drawable-hdpi/baseline_save_white_36.png | Bin 0 -> 325 bytes .../drawable-hdpi/baseline_save_white_48.png | Bin 0 -> 356 bytes .../drawable-hdpi/baseline_send_black_18.png | Bin 0 -> 284 bytes .../drawable-hdpi/baseline_send_black_24.png | Bin 0 -> 258 bytes .../drawable-hdpi/baseline_send_black_36.png | Bin 0 -> 361 bytes .../drawable-hdpi/baseline_send_black_48.png | Bin 0 -> 414 bytes .../drawable-hdpi/baseline_send_white_18.png | Bin 0 -> 280 bytes .../drawable-hdpi/baseline_send_white_24.png | Bin 0 -> 254 bytes .../drawable-hdpi/baseline_send_white_36.png | Bin 0 -> 350 bytes .../drawable-hdpi/baseline_send_white_48.png | Bin 0 -> 407 bytes .../drawable-hdpi/baseline_star_black_18.png | Bin 0 -> 290 bytes .../drawable-hdpi/baseline_star_black_24.png | Bin 0 -> 358 bytes .../drawable-hdpi/baseline_star_black_36.png | Bin 0 -> 501 bytes .../drawable-hdpi/baseline_star_black_48.png | Bin 0 -> 658 bytes .../drawable-hdpi/baseline_star_white_18.png | Bin 0 -> 292 bytes .../drawable-hdpi/baseline_star_white_24.png | Bin 0 -> 358 bytes .../drawable-hdpi/baseline_star_white_36.png | Bin 0 -> 498 bytes .../drawable-hdpi/baseline_star_white_48.png | Bin 0 -> 650 bytes .../drawable-hdpi/baseline_sync_black_18.png | Bin 0 -> 324 bytes .../drawable-hdpi/baseline_sync_black_24.png | Bin 0 -> 384 bytes .../drawable-hdpi/baseline_sync_black_36.png | Bin 0 -> 538 bytes .../drawable-hdpi/baseline_sync_black_48.png | Bin 0 -> 700 bytes .../drawable-hdpi/baseline_sync_white_18.png | Bin 0 -> 330 bytes .../drawable-hdpi/baseline_sync_white_24.png | Bin 0 -> 384 bytes .../drawable-hdpi/baseline_sync_white_36.png | Bin 0 -> 536 bytes .../drawable-hdpi/baseline_sync_white_48.png | Bin 0 -> 684 bytes .../baseline_unarchive_black_18.png | Bin 0 -> 226 bytes .../baseline_unarchive_black_24.png | Bin 0 -> 254 bytes .../baseline_unarchive_black_36.png | Bin 0 -> 355 bytes .../baseline_unarchive_black_48.png | Bin 0 -> 364 bytes .../baseline_unarchive_white_18.png | Bin 0 -> 231 bytes .../baseline_unarchive_white_24.png | Bin 0 -> 260 bytes .../baseline_unarchive_white_36.png | Bin 0 -> 358 bytes .../baseline_unarchive_white_48.png | Bin 0 -> 364 bytes .../baseline_visibility_black_18.png | Bin 0 -> 340 bytes .../baseline_visibility_black_24.png | Bin 0 -> 425 bytes .../baseline_visibility_black_36.png | Bin 0 -> 641 bytes .../baseline_visibility_black_48.png | Bin 0 -> 750 bytes .../baseline_visibility_off_black_18.png | Bin 0 -> 399 bytes .../baseline_visibility_off_black_24.png | Bin 0 -> 516 bytes .../baseline_visibility_off_black_36.png | Bin 0 -> 729 bytes .../baseline_visibility_off_black_48.png | Bin 0 -> 895 bytes .../baseline_visibility_off_white_18.png | Bin 0 -> 408 bytes .../baseline_visibility_off_white_24.png | Bin 0 -> 524 bytes .../baseline_visibility_off_white_36.png | Bin 0 -> 726 bytes .../baseline_visibility_off_white_48.png | Bin 0 -> 882 bytes .../baseline_visibility_white_18.png | Bin 0 -> 348 bytes .../baseline_visibility_white_24.png | Bin 0 -> 430 bytes .../baseline_visibility_white_36.png | Bin 0 -> 632 bytes .../baseline_visibility_white_48.png | Bin 0 -> 744 bytes .../drawable-mdpi/baseline_add_black_18.png | Bin 0 -> 98 bytes .../drawable-mdpi/baseline_add_black_24.png | Bin 0 -> 95 bytes .../drawable-mdpi/baseline_add_black_36.png | Bin 0 -> 136 bytes .../drawable-mdpi/baseline_add_black_48.png | Bin 0 -> 114 bytes .../drawable-mdpi/baseline_add_white_18.png | Bin 0 -> 102 bytes .../drawable-mdpi/baseline_add_white_24.png | Bin 0 -> 92 bytes .../drawable-mdpi/baseline_add_white_36.png | Bin 0 -> 138 bytes .../drawable-mdpi/baseline_add_white_48.png | Bin 0 -> 97 bytes .../baseline_archive_black_18.png | Bin 0 -> 185 bytes .../baseline_archive_black_24.png | Bin 0 -> 170 bytes .../baseline_archive_black_36.png | Bin 0 -> 240 bytes .../baseline_archive_black_48.png | Bin 0 -> 279 bytes .../baseline_archive_white_18.png | Bin 0 -> 187 bytes .../baseline_archive_white_24.png | Bin 0 -> 171 bytes .../baseline_archive_white_36.png | Bin 0 -> 236 bytes .../baseline_archive_white_48.png | Bin 0 -> 266 bytes .../baseline_delete_black_18.png | Bin 0 -> 137 bytes .../baseline_delete_black_24.png | Bin 0 -> 123 bytes .../baseline_delete_black_36.png | Bin 0 -> 173 bytes .../baseline_delete_black_48.png | Bin 0 -> 171 bytes .../baseline_delete_white_18.png | Bin 0 -> 139 bytes .../baseline_delete_white_24.png | Bin 0 -> 122 bytes .../baseline_delete_white_36.png | Bin 0 -> 176 bytes .../baseline_delete_white_48.png | Bin 0 -> 175 bytes .../drawable-mdpi/baseline_edit_black_18.png | Bin 0 -> 165 bytes .../drawable-mdpi/baseline_edit_black_24.png | Bin 0 -> 166 bytes .../drawable-mdpi/baseline_edit_black_36.png | Bin 0 -> 242 bytes .../drawable-mdpi/baseline_edit_black_48.png | Bin 0 -> 254 bytes .../drawable-mdpi/baseline_edit_white_18.png | Bin 0 -> 167 bytes .../drawable-mdpi/baseline_edit_white_24.png | Bin 0 -> 165 bytes .../drawable-mdpi/baseline_edit_white_36.png | Bin 0 -> 244 bytes .../drawable-mdpi/baseline_edit_white_48.png | Bin 0 -> 252 bytes .../baseline_folder_black_18.png | Bin 0 -> 103 bytes .../baseline_folder_black_24.png | Bin 0 -> 136 bytes .../baseline_folder_black_36.png | Bin 0 -> 146 bytes .../baseline_folder_black_48.png | Bin 0 -> 194 bytes .../baseline_folder_white_18.png | Bin 0 -> 105 bytes .../baseline_folder_white_24.png | Bin 0 -> 135 bytes .../baseline_folder_white_36.png | Bin 0 -> 140 bytes .../baseline_folder_white_48.png | Bin 0 -> 191 bytes .../baseline_forward_black_18.png | Bin 0 -> 116 bytes .../baseline_forward_black_24.png | Bin 0 -> 118 bytes .../baseline_forward_black_36.png | Bin 0 -> 149 bytes .../baseline_forward_black_48.png | Bin 0 -> 158 bytes .../baseline_forward_white_18.png | Bin 0 -> 116 bytes .../baseline_forward_white_24.png | Bin 0 -> 122 bytes .../baseline_forward_white_36.png | Bin 0 -> 153 bytes .../baseline_forward_white_48.png | Bin 0 -> 167 bytes .../drawable-mdpi/baseline_mail_black_18.png | Bin 0 -> 189 bytes .../drawable-mdpi/baseline_mail_black_24.png | Bin 0 -> 203 bytes .../drawable-mdpi/baseline_mail_black_36.png | Bin 0 -> 269 bytes .../drawable-mdpi/baseline_mail_black_48.png | Bin 0 -> 325 bytes .../baseline_mail_outline_black_18.png | Bin 0 -> 189 bytes .../baseline_mail_outline_black_24.png | Bin 0 -> 204 bytes .../baseline_mail_outline_black_36.png | Bin 0 -> 271 bytes .../baseline_mail_outline_black_48.png | Bin 0 -> 326 bytes .../baseline_mail_outline_white_18.png | Bin 0 -> 193 bytes .../baseline_mail_outline_white_24.png | Bin 0 -> 204 bytes .../baseline_mail_outline_white_36.png | Bin 0 -> 272 bytes .../baseline_mail_outline_white_48.png | Bin 0 -> 323 bytes .../drawable-mdpi/baseline_mail_white_18.png | Bin 0 -> 185 bytes .../drawable-mdpi/baseline_mail_white_24.png | Bin 0 -> 209 bytes .../drawable-mdpi/baseline_mail_white_36.png | Bin 0 -> 268 bytes .../drawable-mdpi/baseline_mail_white_48.png | Bin 0 -> 322 bytes .../baseline_message_black_18.png | Bin 0 -> 157 bytes .../baseline_message_black_24.png | Bin 0 -> 150 bytes .../baseline_message_black_36.png | Bin 0 -> 184 bytes .../baseline_message_black_48.png | Bin 0 -> 209 bytes .../baseline_message_white_18.png | Bin 0 -> 160 bytes .../baseline_message_white_24.png | Bin 0 -> 154 bytes .../baseline_message_white_36.png | Bin 0 -> 183 bytes .../baseline_message_white_48.png | Bin 0 -> 210 bytes .../baseline_person_add_black_18.png | Bin 0 -> 169 bytes .../baseline_person_add_black_24.png | Bin 0 -> 195 bytes .../baseline_person_add_black_36.png | Bin 0 -> 270 bytes .../baseline_person_add_black_48.png | Bin 0 -> 328 bytes .../baseline_person_add_white_18.png | Bin 0 -> 167 bytes .../baseline_person_add_white_24.png | Bin 0 -> 192 bytes .../baseline_person_add_white_36.png | Bin 0 -> 269 bytes .../baseline_person_add_white_48.png | Bin 0 -> 322 bytes .../baseline_person_black_18.png | Bin 0 -> 158 bytes .../baseline_person_black_24.png | Bin 0 -> 181 bytes .../baseline_person_black_36.png | Bin 0 -> 257 bytes .../baseline_person_black_48.png | Bin 0 -> 307 bytes .../baseline_person_white_18.png | Bin 0 -> 158 bytes .../baseline_person_white_24.png | Bin 0 -> 181 bytes .../baseline_person_white_36.png | Bin 0 -> 254 bytes .../baseline_person_white_48.png | Bin 0 -> 304 bytes .../baseline_reply_all_black_18.png | Bin 0 -> 196 bytes .../baseline_reply_all_black_24.png | Bin 0 -> 200 bytes .../baseline_reply_all_black_36.png | Bin 0 -> 280 bytes .../baseline_reply_all_black_48.png | Bin 0 -> 340 bytes .../baseline_reply_all_white_18.png | Bin 0 -> 202 bytes .../baseline_reply_all_white_24.png | Bin 0 -> 203 bytes .../baseline_reply_all_white_36.png | Bin 0 -> 285 bytes .../baseline_reply_all_white_48.png | Bin 0 -> 333 bytes .../drawable-mdpi/baseline_reply_black_18.png | Bin 0 -> 170 bytes .../drawable-mdpi/baseline_reply_black_24.png | Bin 0 -> 186 bytes .../drawable-mdpi/baseline_reply_black_36.png | Bin 0 -> 244 bytes .../drawable-mdpi/baseline_reply_black_48.png | Bin 0 -> 307 bytes .../drawable-mdpi/baseline_reply_white_18.png | Bin 0 -> 175 bytes .../drawable-mdpi/baseline_reply_white_24.png | Bin 0 -> 189 bytes .../drawable-mdpi/baseline_reply_white_36.png | Bin 0 -> 246 bytes .../drawable-mdpi/baseline_reply_white_48.png | Bin 0 -> 299 bytes .../baseline_report_black_18.png | Bin 0 -> 170 bytes .../baseline_report_black_24.png | Bin 0 -> 175 bytes .../baseline_report_black_36.png | Bin 0 -> 209 bytes .../baseline_report_black_48.png | Bin 0 -> 233 bytes .../baseline_report_white_18.png | Bin 0 -> 170 bytes .../baseline_report_white_24.png | Bin 0 -> 174 bytes .../baseline_report_white_36.png | Bin 0 -> 209 bytes .../baseline_report_white_48.png | Bin 0 -> 232 bytes .../baseline_save_alt_black_18.png | Bin 0 -> 165 bytes .../baseline_save_alt_black_24.png | Bin 0 -> 167 bytes .../baseline_save_alt_black_36.png | Bin 0 -> 240 bytes .../baseline_save_alt_black_48.png | Bin 0 -> 259 bytes .../baseline_save_alt_white_18.png | Bin 0 -> 169 bytes .../baseline_save_alt_white_24.png | Bin 0 -> 165 bytes .../baseline_save_alt_white_36.png | Bin 0 -> 242 bytes .../baseline_save_alt_white_48.png | Bin 0 -> 257 bytes .../drawable-mdpi/baseline_save_black_18.png | Bin 0 -> 175 bytes .../drawable-mdpi/baseline_save_black_24.png | Bin 0 -> 160 bytes .../drawable-mdpi/baseline_save_black_36.png | Bin 0 -> 234 bytes .../drawable-mdpi/baseline_save_black_48.png | Bin 0 -> 252 bytes .../drawable-mdpi/baseline_save_white_18.png | Bin 0 -> 175 bytes .../drawable-mdpi/baseline_save_white_24.png | Bin 0 -> 159 bytes .../drawable-mdpi/baseline_save_white_36.png | Bin 0 -> 238 bytes .../drawable-mdpi/baseline_save_white_48.png | Bin 0 -> 253 bytes .../drawable-mdpi/baseline_send_black_18.png | Bin 0 -> 195 bytes .../drawable-mdpi/baseline_send_black_24.png | Bin 0 -> 217 bytes .../drawable-mdpi/baseline_send_black_36.png | Bin 0 -> 258 bytes .../drawable-mdpi/baseline_send_black_48.png | Bin 0 -> 326 bytes .../drawable-mdpi/baseline_send_white_18.png | Bin 0 -> 193 bytes .../drawable-mdpi/baseline_send_white_24.png | Bin 0 -> 222 bytes .../drawable-mdpi/baseline_send_white_36.png | Bin 0 -> 254 bytes .../drawable-mdpi/baseline_send_white_48.png | Bin 0 -> 315 bytes .../drawable-mdpi/baseline_star_black_18.png | Bin 0 -> 217 bytes .../drawable-mdpi/baseline_star_black_24.png | Bin 0 -> 257 bytes .../drawable-mdpi/baseline_star_black_36.png | Bin 0 -> 358 bytes .../drawable-mdpi/baseline_star_black_48.png | Bin 0 -> 460 bytes .../drawable-mdpi/baseline_star_white_18.png | Bin 0 -> 219 bytes .../drawable-mdpi/baseline_star_white_24.png | Bin 0 -> 257 bytes .../drawable-mdpi/baseline_star_white_36.png | Bin 0 -> 358 bytes .../drawable-mdpi/baseline_star_white_48.png | Bin 0 -> 456 bytes .../drawable-mdpi/baseline_sync_black_18.png | Bin 0 -> 218 bytes .../drawable-mdpi/baseline_sync_black_24.png | Bin 0 -> 260 bytes .../drawable-mdpi/baseline_sync_black_36.png | Bin 0 -> 384 bytes .../drawable-mdpi/baseline_sync_black_48.png | Bin 0 -> 477 bytes .../drawable-mdpi/baseline_sync_white_18.png | Bin 0 -> 231 bytes .../drawable-mdpi/baseline_sync_white_24.png | Bin 0 -> 266 bytes .../drawable-mdpi/baseline_sync_white_36.png | Bin 0 -> 384 bytes .../drawable-mdpi/baseline_sync_white_48.png | Bin 0 -> 474 bytes .../baseline_unarchive_black_18.png | Bin 0 -> 180 bytes .../baseline_unarchive_black_24.png | Bin 0 -> 172 bytes .../baseline_unarchive_black_36.png | Bin 0 -> 254 bytes .../baseline_unarchive_black_48.png | Bin 0 -> 264 bytes .../baseline_unarchive_white_18.png | Bin 0 -> 183 bytes .../baseline_unarchive_white_24.png | Bin 0 -> 175 bytes .../baseline_unarchive_white_36.png | Bin 0 -> 260 bytes .../baseline_unarchive_white_48.png | Bin 0 -> 263 bytes .../baseline_visibility_black_18.png | Bin 0 -> 254 bytes .../baseline_visibility_black_24.png | Bin 0 -> 283 bytes .../baseline_visibility_black_36.png | Bin 0 -> 425 bytes .../baseline_visibility_black_48.png | Bin 0 -> 534 bytes .../baseline_visibility_off_black_18.png | Bin 0 -> 292 bytes .../baseline_visibility_off_black_24.png | Bin 0 -> 345 bytes .../baseline_visibility_off_black_36.png | Bin 0 -> 516 bytes .../baseline_visibility_off_black_48.png | Bin 0 -> 630 bytes .../baseline_visibility_off_white_18.png | Bin 0 -> 292 bytes .../baseline_visibility_off_white_24.png | Bin 0 -> 361 bytes .../baseline_visibility_off_white_36.png | Bin 0 -> 524 bytes .../baseline_visibility_off_white_48.png | Bin 0 -> 630 bytes .../baseline_visibility_white_18.png | Bin 0 -> 255 bytes .../baseline_visibility_white_24.png | Bin 0 -> 288 bytes .../baseline_visibility_white_36.png | Bin 0 -> 430 bytes .../baseline_visibility_white_48.png | Bin 0 -> 532 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 + .../drawable-xhdpi/baseline_add_black_18.png | Bin 0 -> 136 bytes .../drawable-xhdpi/baseline_add_black_24.png | Bin 0 -> 114 bytes .../drawable-xhdpi/baseline_add_black_36.png | Bin 0 -> 114 bytes .../drawable-xhdpi/baseline_add_black_48.png | Bin 0 -> 119 bytes .../drawable-xhdpi/baseline_add_white_18.png | Bin 0 -> 138 bytes .../drawable-xhdpi/baseline_add_white_24.png | Bin 0 -> 97 bytes .../drawable-xhdpi/baseline_add_white_36.png | Bin 0 -> 97 bytes .../drawable-xhdpi/baseline_add_white_48.png | Bin 0 -> 102 bytes .../baseline_archive_black_18.png | Bin 0 -> 240 bytes .../baseline_archive_black_24.png | Bin 0 -> 279 bytes .../baseline_archive_black_36.png | Bin 0 -> 369 bytes .../baseline_archive_black_48.png | Bin 0 -> 481 bytes .../baseline_archive_white_18.png | Bin 0 -> 236 bytes .../baseline_archive_white_24.png | Bin 0 -> 266 bytes .../baseline_archive_white_36.png | Bin 0 -> 366 bytes .../baseline_archive_white_48.png | Bin 0 -> 470 bytes .../baseline_delete_black_18.png | Bin 0 -> 173 bytes .../baseline_delete_black_24.png | Bin 0 -> 171 bytes .../baseline_delete_black_36.png | Bin 0 -> 230 bytes .../baseline_delete_black_48.png | Bin 0 -> 238 bytes .../baseline_delete_white_18.png | Bin 0 -> 176 bytes .../baseline_delete_white_24.png | Bin 0 -> 175 bytes .../baseline_delete_white_36.png | Bin 0 -> 222 bytes .../baseline_delete_white_48.png | Bin 0 -> 236 bytes .../drawable-xhdpi/baseline_edit_black_18.png | Bin 0 -> 242 bytes .../drawable-xhdpi/baseline_edit_black_24.png | Bin 0 -> 254 bytes .../drawable-xhdpi/baseline_edit_black_36.png | Bin 0 -> 299 bytes .../drawable-xhdpi/baseline_edit_black_48.png | Bin 0 -> 345 bytes .../drawable-xhdpi/baseline_edit_white_18.png | Bin 0 -> 244 bytes .../drawable-xhdpi/baseline_edit_white_24.png | Bin 0 -> 252 bytes .../drawable-xhdpi/baseline_edit_white_36.png | Bin 0 -> 297 bytes .../drawable-xhdpi/baseline_edit_white_48.png | Bin 0 -> 347 bytes .../baseline_folder_black_18.png | Bin 0 -> 146 bytes .../baseline_folder_black_24.png | Bin 0 -> 194 bytes .../baseline_folder_black_36.png | Bin 0 -> 248 bytes .../baseline_folder_black_48.png | Bin 0 -> 322 bytes .../baseline_folder_white_18.png | Bin 0 -> 140 bytes .../baseline_folder_white_24.png | Bin 0 -> 191 bytes .../baseline_folder_white_36.png | Bin 0 -> 243 bytes .../baseline_folder_white_48.png | Bin 0 -> 318 bytes .../baseline_forward_black_18.png | Bin 0 -> 149 bytes .../baseline_forward_black_24.png | Bin 0 -> 158 bytes .../baseline_forward_black_36.png | Bin 0 -> 195 bytes .../baseline_forward_black_48.png | Bin 0 -> 227 bytes .../baseline_forward_white_18.png | Bin 0 -> 153 bytes .../baseline_forward_white_24.png | Bin 0 -> 167 bytes .../baseline_forward_white_36.png | Bin 0 -> 194 bytes .../baseline_forward_white_48.png | Bin 0 -> 227 bytes .../drawable-xhdpi/baseline_mail_black_18.png | Bin 0 -> 269 bytes .../drawable-xhdpi/baseline_mail_black_24.png | Bin 0 -> 325 bytes .../drawable-xhdpi/baseline_mail_black_36.png | Bin 0 -> 421 bytes .../drawable-xhdpi/baseline_mail_black_48.png | Bin 0 -> 533 bytes .../baseline_mail_outline_black_18.png | Bin 0 -> 271 bytes .../baseline_mail_outline_black_24.png | Bin 0 -> 326 bytes .../baseline_mail_outline_black_36.png | Bin 0 -> 422 bytes .../baseline_mail_outline_black_48.png | Bin 0 -> 535 bytes .../baseline_mail_outline_white_18.png | Bin 0 -> 272 bytes .../baseline_mail_outline_white_24.png | Bin 0 -> 323 bytes .../baseline_mail_outline_white_36.png | Bin 0 -> 418 bytes .../baseline_mail_outline_white_48.png | Bin 0 -> 534 bytes .../drawable-xhdpi/baseline_mail_white_18.png | Bin 0 -> 268 bytes .../drawable-xhdpi/baseline_mail_white_24.png | Bin 0 -> 322 bytes .../drawable-xhdpi/baseline_mail_white_36.png | Bin 0 -> 419 bytes .../drawable-xhdpi/baseline_mail_white_48.png | Bin 0 -> 532 bytes .../baseline_message_black_18.png | Bin 0 -> 184 bytes .../baseline_message_black_24.png | Bin 0 -> 209 bytes .../baseline_message_black_36.png | Bin 0 -> 259 bytes .../baseline_message_black_48.png | Bin 0 -> 335 bytes .../baseline_message_white_18.png | Bin 0 -> 183 bytes .../baseline_message_white_24.png | Bin 0 -> 210 bytes .../baseline_message_white_36.png | Bin 0 -> 263 bytes .../baseline_message_white_48.png | Bin 0 -> 340 bytes .../baseline_person_add_black_18.png | Bin 0 -> 270 bytes .../baseline_person_add_black_24.png | Bin 0 -> 328 bytes .../baseline_person_add_black_36.png | Bin 0 -> 428 bytes .../baseline_person_add_black_48.png | Bin 0 -> 586 bytes .../baseline_person_add_white_18.png | Bin 0 -> 269 bytes .../baseline_person_add_white_24.png | Bin 0 -> 322 bytes .../baseline_person_add_white_36.png | Bin 0 -> 421 bytes .../baseline_person_add_white_48.png | Bin 0 -> 578 bytes .../baseline_person_black_18.png | Bin 0 -> 257 bytes .../baseline_person_black_24.png | Bin 0 -> 307 bytes .../baseline_person_black_36.png | Bin 0 -> 404 bytes .../baseline_person_black_48.png | Bin 0 -> 544 bytes .../baseline_person_white_18.png | Bin 0 -> 254 bytes .../baseline_person_white_24.png | Bin 0 -> 304 bytes .../baseline_person_white_36.png | Bin 0 -> 397 bytes .../baseline_person_white_48.png | Bin 0 -> 538 bytes .../baseline_reply_all_black_18.png | Bin 0 -> 280 bytes .../baseline_reply_all_black_24.png | Bin 0 -> 340 bytes .../baseline_reply_all_black_36.png | Bin 0 -> 429 bytes .../baseline_reply_all_black_48.png | Bin 0 -> 520 bytes .../baseline_reply_all_white_18.png | Bin 0 -> 285 bytes .../baseline_reply_all_white_24.png | Bin 0 -> 333 bytes .../baseline_reply_all_white_36.png | Bin 0 -> 427 bytes .../baseline_reply_all_white_48.png | Bin 0 -> 518 bytes .../baseline_reply_black_18.png | Bin 0 -> 244 bytes .../baseline_reply_black_24.png | Bin 0 -> 307 bytes .../baseline_reply_black_36.png | Bin 0 -> 394 bytes .../baseline_reply_black_48.png | Bin 0 -> 495 bytes .../baseline_reply_white_18.png | Bin 0 -> 246 bytes .../baseline_reply_white_24.png | Bin 0 -> 299 bytes .../baseline_reply_white_36.png | Bin 0 -> 384 bytes .../baseline_reply_white_48.png | Bin 0 -> 483 bytes .../baseline_report_black_18.png | Bin 0 -> 209 bytes .../baseline_report_black_24.png | Bin 0 -> 233 bytes .../baseline_report_black_36.png | Bin 0 -> 304 bytes .../baseline_report_black_48.png | Bin 0 -> 374 bytes .../baseline_report_white_18.png | Bin 0 -> 209 bytes .../baseline_report_white_24.png | Bin 0 -> 232 bytes .../baseline_report_white_36.png | Bin 0 -> 304 bytes .../baseline_report_white_48.png | Bin 0 -> 377 bytes .../baseline_save_alt_black_18.png | Bin 0 -> 240 bytes .../baseline_save_alt_black_24.png | Bin 0 -> 259 bytes .../baseline_save_alt_black_36.png | Bin 0 -> 316 bytes .../baseline_save_alt_black_48.png | Bin 0 -> 432 bytes .../baseline_save_alt_white_18.png | Bin 0 -> 242 bytes .../baseline_save_alt_white_24.png | Bin 0 -> 257 bytes .../baseline_save_alt_white_36.png | Bin 0 -> 318 bytes .../baseline_save_alt_white_48.png | Bin 0 -> 431 bytes .../drawable-xhdpi/baseline_save_black_18.png | Bin 0 -> 234 bytes .../drawable-xhdpi/baseline_save_black_24.png | Bin 0 -> 252 bytes .../drawable-xhdpi/baseline_save_black_36.png | Bin 0 -> 354 bytes .../drawable-xhdpi/baseline_save_black_48.png | Bin 0 -> 464 bytes .../drawable-xhdpi/baseline_save_white_18.png | Bin 0 -> 238 bytes .../drawable-xhdpi/baseline_save_white_24.png | Bin 0 -> 253 bytes .../drawable-xhdpi/baseline_save_white_36.png | Bin 0 -> 356 bytes .../drawable-xhdpi/baseline_save_white_48.png | Bin 0 -> 464 bytes .../drawable-xhdpi/baseline_send_black_18.png | Bin 0 -> 258 bytes .../drawable-xhdpi/baseline_send_black_24.png | Bin 0 -> 326 bytes .../drawable-xhdpi/baseline_send_black_36.png | Bin 0 -> 414 bytes .../drawable-xhdpi/baseline_send_black_48.png | Bin 0 -> 527 bytes .../drawable-xhdpi/baseline_send_white_18.png | Bin 0 -> 254 bytes .../drawable-xhdpi/baseline_send_white_24.png | Bin 0 -> 315 bytes .../drawable-xhdpi/baseline_send_white_36.png | Bin 0 -> 407 bytes .../drawable-xhdpi/baseline_send_white_48.png | Bin 0 -> 522 bytes .../drawable-xhdpi/baseline_star_black_18.png | Bin 0 -> 358 bytes .../drawable-xhdpi/baseline_star_black_24.png | Bin 0 -> 460 bytes .../drawable-xhdpi/baseline_star_black_36.png | Bin 0 -> 658 bytes .../drawable-xhdpi/baseline_star_black_48.png | Bin 0 -> 852 bytes .../drawable-xhdpi/baseline_star_white_18.png | Bin 0 -> 358 bytes .../drawable-xhdpi/baseline_star_white_24.png | Bin 0 -> 456 bytes .../drawable-xhdpi/baseline_star_white_36.png | Bin 0 -> 650 bytes .../drawable-xhdpi/baseline_star_white_48.png | Bin 0 -> 842 bytes .../drawable-xhdpi/baseline_sync_black_18.png | Bin 0 -> 384 bytes .../drawable-xhdpi/baseline_sync_black_24.png | Bin 0 -> 477 bytes .../drawable-xhdpi/baseline_sync_black_36.png | Bin 0 -> 700 bytes .../drawable-xhdpi/baseline_sync_black_48.png | Bin 0 -> 889 bytes .../drawable-xhdpi/baseline_sync_white_18.png | Bin 0 -> 384 bytes .../drawable-xhdpi/baseline_sync_white_24.png | Bin 0 -> 474 bytes .../drawable-xhdpi/baseline_sync_white_36.png | Bin 0 -> 684 bytes .../drawable-xhdpi/baseline_sync_white_48.png | Bin 0 -> 876 bytes .../baseline_unarchive_black_18.png | Bin 0 -> 254 bytes .../baseline_unarchive_black_24.png | Bin 0 -> 264 bytes .../baseline_unarchive_black_36.png | Bin 0 -> 364 bytes .../baseline_unarchive_black_48.png | Bin 0 -> 476 bytes .../baseline_unarchive_white_18.png | Bin 0 -> 260 bytes .../baseline_unarchive_white_24.png | Bin 0 -> 263 bytes .../baseline_unarchive_white_36.png | Bin 0 -> 364 bytes .../baseline_unarchive_white_48.png | Bin 0 -> 474 bytes .../baseline_visibility_black_18.png | Bin 0 -> 425 bytes .../baseline_visibility_black_24.png | Bin 0 -> 534 bytes .../baseline_visibility_black_36.png | Bin 0 -> 750 bytes .../baseline_visibility_black_48.png | Bin 0 -> 1046 bytes .../baseline_visibility_off_black_18.png | Bin 0 -> 516 bytes .../baseline_visibility_off_black_24.png | Bin 0 -> 630 bytes .../baseline_visibility_off_black_36.png | Bin 0 -> 895 bytes .../baseline_visibility_off_black_48.png | Bin 0 -> 1200 bytes .../baseline_visibility_off_white_18.png | Bin 0 -> 524 bytes .../baseline_visibility_off_white_24.png | Bin 0 -> 630 bytes .../baseline_visibility_off_white_36.png | Bin 0 -> 882 bytes .../baseline_visibility_off_white_48.png | Bin 0 -> 1189 bytes .../baseline_visibility_white_18.png | Bin 0 -> 430 bytes .../baseline_visibility_white_24.png | Bin 0 -> 532 bytes .../baseline_visibility_white_36.png | Bin 0 -> 744 bytes .../baseline_visibility_white_48.png | Bin 0 -> 1030 bytes .../drawable-xxhdpi/baseline_add_black_18.png | Bin 0 -> 159 bytes .../drawable-xxhdpi/baseline_add_black_24.png | Bin 0 -> 114 bytes .../drawable-xxhdpi/baseline_add_black_36.png | Bin 0 -> 186 bytes .../drawable-xxhdpi/baseline_add_black_48.png | Bin 0 -> 130 bytes .../drawable-xxhdpi/baseline_add_white_18.png | Bin 0 -> 158 bytes .../drawable-xxhdpi/baseline_add_white_24.png | Bin 0 -> 97 bytes .../drawable-xxhdpi/baseline_add_white_36.png | Bin 0 -> 186 bytes .../drawable-xxhdpi/baseline_add_white_48.png | Bin 0 -> 113 bytes .../baseline_archive_black_18.png | Bin 0 -> 346 bytes .../baseline_archive_black_24.png | Bin 0 -> 369 bytes .../baseline_archive_black_36.png | Bin 0 -> 552 bytes .../baseline_archive_black_48.png | Bin 0 -> 696 bytes .../baseline_archive_white_18.png | Bin 0 -> 344 bytes .../baseline_archive_white_24.png | Bin 0 -> 366 bytes .../baseline_archive_white_36.png | Bin 0 -> 553 bytes .../baseline_archive_white_48.png | Bin 0 -> 688 bytes .../baseline_delete_black_18.png | Bin 0 -> 194 bytes .../baseline_delete_black_24.png | Bin 0 -> 230 bytes .../baseline_delete_black_36.png | Bin 0 -> 274 bytes .../baseline_delete_black_48.png | Bin 0 -> 353 bytes .../baseline_delete_white_18.png | Bin 0 -> 195 bytes .../baseline_delete_white_24.png | Bin 0 -> 222 bytes .../baseline_delete_white_36.png | Bin 0 -> 275 bytes .../baseline_delete_white_48.png | Bin 0 -> 343 bytes .../baseline_edit_black_18.png | Bin 0 -> 304 bytes .../baseline_edit_black_24.png | Bin 0 -> 299 bytes .../baseline_edit_black_36.png | Bin 0 -> 413 bytes .../baseline_edit_black_48.png | Bin 0 -> 449 bytes .../baseline_edit_white_18.png | Bin 0 -> 305 bytes .../baseline_edit_white_24.png | Bin 0 -> 297 bytes .../baseline_edit_white_36.png | Bin 0 -> 413 bytes .../baseline_edit_white_48.png | Bin 0 -> 448 bytes .../baseline_folder_black_18.png | Bin 0 -> 187 bytes .../baseline_folder_black_24.png | Bin 0 -> 248 bytes .../baseline_folder_black_36.png | Bin 0 -> 272 bytes .../baseline_folder_black_48.png | Bin 0 -> 478 bytes .../baseline_folder_white_18.png | Bin 0 -> 179 bytes .../baseline_folder_white_24.png | Bin 0 -> 243 bytes .../baseline_folder_white_36.png | Bin 0 -> 267 bytes .../baseline_folder_white_48.png | Bin 0 -> 457 bytes .../baseline_forward_black_18.png | Bin 0 -> 167 bytes .../baseline_forward_black_24.png | Bin 0 -> 195 bytes .../baseline_forward_black_36.png | Bin 0 -> 241 bytes .../baseline_forward_black_48.png | Bin 0 -> 303 bytes .../baseline_forward_white_18.png | Bin 0 -> 176 bytes .../baseline_forward_white_24.png | Bin 0 -> 194 bytes .../baseline_forward_white_36.png | Bin 0 -> 241 bytes .../baseline_forward_white_48.png | Bin 0 -> 303 bytes .../baseline_mail_black_18.png | Bin 0 -> 373 bytes .../baseline_mail_black_24.png | Bin 0 -> 421 bytes .../baseline_mail_black_36.png | Bin 0 -> 587 bytes .../baseline_mail_black_48.png | Bin 0 -> 769 bytes .../baseline_mail_outline_black_18.png | Bin 0 -> 377 bytes .../baseline_mail_outline_black_24.png | Bin 0 -> 422 bytes .../baseline_mail_outline_black_36.png | Bin 0 -> 588 bytes .../baseline_mail_outline_black_48.png | Bin 0 -> 774 bytes .../baseline_mail_outline_white_18.png | Bin 0 -> 373 bytes .../baseline_mail_outline_white_24.png | Bin 0 -> 418 bytes .../baseline_mail_outline_white_36.png | Bin 0 -> 584 bytes .../baseline_mail_outline_white_48.png | Bin 0 -> 769 bytes .../baseline_mail_white_18.png | Bin 0 -> 368 bytes .../baseline_mail_white_24.png | Bin 0 -> 419 bytes .../baseline_mail_white_36.png | Bin 0 -> 585 bytes .../baseline_mail_white_48.png | Bin 0 -> 759 bytes .../baseline_message_black_18.png | Bin 0 -> 252 bytes .../baseline_message_black_24.png | Bin 0 -> 259 bytes .../baseline_message_black_36.png | Bin 0 -> 365 bytes .../baseline_message_black_48.png | Bin 0 -> 493 bytes .../baseline_message_white_18.png | Bin 0 -> 253 bytes .../baseline_message_white_24.png | Bin 0 -> 263 bytes .../baseline_message_white_36.png | Bin 0 -> 370 bytes .../baseline_message_white_48.png | Bin 0 -> 488 bytes .../baseline_person_add_black_18.png | Bin 0 -> 354 bytes .../baseline_person_add_black_24.png | Bin 0 -> 428 bytes .../baseline_person_add_black_36.png | Bin 0 -> 677 bytes .../baseline_person_add_black_48.png | Bin 0 -> 852 bytes .../baseline_person_add_white_18.png | Bin 0 -> 350 bytes .../baseline_person_add_white_24.png | Bin 0 -> 421 bytes .../baseline_person_add_white_36.png | Bin 0 -> 669 bytes .../baseline_person_add_white_48.png | Bin 0 -> 837 bytes .../baseline_person_black_18.png | Bin 0 -> 334 bytes .../baseline_person_black_24.png | Bin 0 -> 404 bytes .../baseline_person_black_36.png | Bin 0 -> 633 bytes .../baseline_person_black_48.png | Bin 0 -> 787 bytes .../baseline_person_white_18.png | Bin 0 -> 328 bytes .../baseline_person_white_24.png | Bin 0 -> 397 bytes .../baseline_person_white_36.png | Bin 0 -> 627 bytes .../baseline_person_white_48.png | Bin 0 -> 773 bytes .../baseline_reply_all_black_18.png | Bin 0 -> 390 bytes .../baseline_reply_all_black_24.png | Bin 0 -> 429 bytes .../baseline_reply_all_black_36.png | Bin 0 -> 591 bytes .../baseline_reply_all_black_48.png | Bin 0 -> 756 bytes .../baseline_reply_all_white_18.png | Bin 0 -> 394 bytes .../baseline_reply_all_white_24.png | Bin 0 -> 427 bytes .../baseline_reply_all_white_36.png | Bin 0 -> 584 bytes .../baseline_reply_all_white_48.png | Bin 0 -> 749 bytes .../baseline_reply_black_18.png | Bin 0 -> 358 bytes .../baseline_reply_black_24.png | Bin 0 -> 394 bytes .../baseline_reply_black_36.png | Bin 0 -> 556 bytes .../baseline_reply_black_48.png | Bin 0 -> 699 bytes .../baseline_reply_white_18.png | Bin 0 -> 345 bytes .../baseline_reply_white_24.png | Bin 0 -> 384 bytes .../baseline_reply_white_36.png | Bin 0 -> 548 bytes .../baseline_reply_white_48.png | Bin 0 -> 684 bytes .../baseline_report_black_18.png | Bin 0 -> 287 bytes .../baseline_report_black_24.png | Bin 0 -> 304 bytes .../baseline_report_black_36.png | Bin 0 -> 443 bytes .../baseline_report_black_48.png | Bin 0 -> 583 bytes .../baseline_report_white_18.png | Bin 0 -> 286 bytes .../baseline_report_white_24.png | Bin 0 -> 304 bytes .../baseline_report_white_36.png | Bin 0 -> 445 bytes .../baseline_report_white_48.png | Bin 0 -> 583 bytes .../baseline_save_alt_black_18.png | Bin 0 -> 313 bytes .../baseline_save_alt_black_24.png | Bin 0 -> 316 bytes .../baseline_save_alt_black_36.png | Bin 0 -> 520 bytes .../baseline_save_alt_black_48.png | Bin 0 -> 583 bytes .../baseline_save_alt_white_18.png | Bin 0 -> 301 bytes .../baseline_save_alt_white_24.png | Bin 0 -> 318 bytes .../baseline_save_alt_white_36.png | Bin 0 -> 517 bytes .../baseline_save_alt_white_48.png | Bin 0 -> 573 bytes .../baseline_save_black_18.png | Bin 0 -> 322 bytes .../baseline_save_black_24.png | Bin 0 -> 354 bytes .../baseline_save_black_36.png | Bin 0 -> 546 bytes .../baseline_save_black_48.png | Bin 0 -> 676 bytes .../baseline_save_white_18.png | Bin 0 -> 325 bytes .../baseline_save_white_24.png | Bin 0 -> 356 bytes .../baseline_save_white_36.png | Bin 0 -> 546 bytes .../baseline_save_white_48.png | Bin 0 -> 679 bytes .../baseline_send_black_18.png | Bin 0 -> 361 bytes .../baseline_send_black_24.png | Bin 0 -> 414 bytes .../baseline_send_black_36.png | Bin 0 -> 552 bytes .../baseline_send_black_48.png | Bin 0 -> 686 bytes .../baseline_send_white_18.png | Bin 0 -> 350 bytes .../baseline_send_white_24.png | Bin 0 -> 407 bytes .../baseline_send_white_36.png | Bin 0 -> 549 bytes .../baseline_send_white_48.png | Bin 0 -> 674 bytes .../baseline_star_black_18.png | Bin 0 -> 501 bytes .../baseline_star_black_24.png | Bin 0 -> 658 bytes .../baseline_star_black_36.png | Bin 0 -> 954 bytes .../baseline_star_black_48.png | Bin 0 -> 1251 bytes .../baseline_star_white_18.png | Bin 0 -> 498 bytes .../baseline_star_white_24.png | Bin 0 -> 650 bytes .../baseline_star_white_36.png | Bin 0 -> 932 bytes .../baseline_star_white_48.png | Bin 0 -> 1227 bytes .../baseline_sync_black_18.png | Bin 0 -> 538 bytes .../baseline_sync_black_24.png | Bin 0 -> 700 bytes .../baseline_sync_black_36.png | Bin 0 -> 1012 bytes .../baseline_sync_black_48.png | Bin 0 -> 1307 bytes .../baseline_sync_white_18.png | Bin 0 -> 536 bytes .../baseline_sync_white_24.png | Bin 0 -> 684 bytes .../baseline_sync_white_36.png | Bin 0 -> 1004 bytes .../baseline_sync_white_48.png | Bin 0 -> 1293 bytes .../baseline_unarchive_black_18.png | Bin 0 -> 355 bytes .../baseline_unarchive_black_24.png | Bin 0 -> 364 bytes .../baseline_unarchive_black_36.png | Bin 0 -> 569 bytes .../baseline_unarchive_black_48.png | Bin 0 -> 692 bytes .../baseline_unarchive_white_18.png | Bin 0 -> 358 bytes .../baseline_unarchive_white_24.png | Bin 0 -> 364 bytes .../baseline_unarchive_white_36.png | Bin 0 -> 569 bytes .../baseline_unarchive_white_48.png | Bin 0 -> 694 bytes .../baseline_visibility_black_18.png | Bin 0 -> 641 bytes .../baseline_visibility_black_24.png | Bin 0 -> 750 bytes .../baseline_visibility_black_36.png | Bin 0 -> 1135 bytes .../baseline_visibility_black_48.png | Bin 0 -> 1563 bytes .../baseline_visibility_off_black_18.png | Bin 0 -> 729 bytes .../baseline_visibility_off_black_24.png | Bin 0 -> 895 bytes .../baseline_visibility_off_black_36.png | Bin 0 -> 1339 bytes .../baseline_visibility_off_black_48.png | Bin 0 -> 1735 bytes .../baseline_visibility_off_white_18.png | Bin 0 -> 726 bytes .../baseline_visibility_off_white_24.png | Bin 0 -> 882 bytes .../baseline_visibility_off_white_36.png | Bin 0 -> 1331 bytes .../baseline_visibility_off_white_48.png | Bin 0 -> 1724 bytes .../baseline_visibility_white_18.png | Bin 0 -> 632 bytes .../baseline_visibility_white_24.png | Bin 0 -> 744 bytes .../baseline_visibility_white_36.png | Bin 0 -> 1128 bytes .../baseline_visibility_white_48.png | Bin 0 -> 1554 bytes .../baseline_add_black_18.png | Bin 0 -> 114 bytes .../baseline_add_black_24.png | Bin 0 -> 119 bytes .../baseline_add_black_36.png | Bin 0 -> 130 bytes .../baseline_add_black_48.png | Bin 0 -> 133 bytes .../baseline_add_white_18.png | Bin 0 -> 97 bytes .../baseline_add_white_24.png | Bin 0 -> 102 bytes .../baseline_add_white_36.png | Bin 0 -> 113 bytes .../baseline_add_white_48.png | Bin 0 -> 116 bytes .../baseline_archive_black_18.png | Bin 0 -> 369 bytes .../baseline_archive_black_24.png | Bin 0 -> 481 bytes .../baseline_archive_black_36.png | Bin 0 -> 696 bytes .../baseline_archive_black_48.png | Bin 0 -> 933 bytes .../baseline_archive_white_18.png | Bin 0 -> 366 bytes .../baseline_archive_white_24.png | Bin 0 -> 470 bytes .../baseline_archive_white_36.png | Bin 0 -> 688 bytes .../baseline_archive_white_48.png | Bin 0 -> 909 bytes .../baseline_delete_black_18.png | Bin 0 -> 230 bytes .../baseline_delete_black_24.png | Bin 0 -> 238 bytes .../baseline_delete_black_36.png | Bin 0 -> 353 bytes .../baseline_delete_black_48.png | Bin 0 -> 503 bytes .../baseline_delete_white_18.png | Bin 0 -> 222 bytes .../baseline_delete_white_24.png | Bin 0 -> 236 bytes .../baseline_delete_white_36.png | Bin 0 -> 343 bytes .../baseline_delete_white_48.png | Bin 0 -> 503 bytes .../baseline_edit_black_18.png | Bin 0 -> 299 bytes .../baseline_edit_black_24.png | Bin 0 -> 345 bytes .../baseline_edit_black_36.png | Bin 0 -> 449 bytes .../baseline_edit_black_48.png | Bin 0 -> 630 bytes .../baseline_edit_white_18.png | Bin 0 -> 297 bytes .../baseline_edit_white_24.png | Bin 0 -> 347 bytes .../baseline_edit_white_36.png | Bin 0 -> 448 bytes .../baseline_edit_white_48.png | Bin 0 -> 631 bytes .../baseline_folder_black_18.png | Bin 0 -> 248 bytes .../baseline_folder_black_24.png | Bin 0 -> 322 bytes .../baseline_folder_black_36.png | Bin 0 -> 478 bytes .../baseline_folder_black_48.png | Bin 0 -> 663 bytes .../baseline_folder_white_18.png | Bin 0 -> 243 bytes .../baseline_folder_white_24.png | Bin 0 -> 318 bytes .../baseline_folder_white_36.png | Bin 0 -> 457 bytes .../baseline_folder_white_48.png | Bin 0 -> 624 bytes .../baseline_forward_black_18.png | Bin 0 -> 195 bytes .../baseline_forward_black_24.png | Bin 0 -> 227 bytes .../baseline_forward_black_36.png | Bin 0 -> 303 bytes .../baseline_forward_black_48.png | Bin 0 -> 352 bytes .../baseline_forward_white_18.png | Bin 0 -> 194 bytes .../baseline_forward_white_24.png | Bin 0 -> 227 bytes .../baseline_forward_white_36.png | Bin 0 -> 303 bytes .../baseline_forward_white_48.png | Bin 0 -> 352 bytes .../baseline_mail_black_18.png | Bin 0 -> 421 bytes .../baseline_mail_black_24.png | Bin 0 -> 533 bytes .../baseline_mail_black_36.png | Bin 0 -> 769 bytes .../baseline_mail_black_48.png | Bin 0 -> 1023 bytes .../baseline_mail_outline_black_18.png | Bin 0 -> 422 bytes .../baseline_mail_outline_black_24.png | Bin 0 -> 535 bytes .../baseline_mail_outline_black_36.png | Bin 0 -> 774 bytes .../baseline_mail_outline_black_48.png | Bin 0 -> 1034 bytes .../baseline_mail_outline_white_18.png | Bin 0 -> 418 bytes .../baseline_mail_outline_white_24.png | Bin 0 -> 534 bytes .../baseline_mail_outline_white_36.png | Bin 0 -> 769 bytes .../baseline_mail_outline_white_48.png | Bin 0 -> 1020 bytes .../baseline_mail_white_18.png | Bin 0 -> 419 bytes .../baseline_mail_white_24.png | Bin 0 -> 532 bytes .../baseline_mail_white_36.png | Bin 0 -> 759 bytes .../baseline_mail_white_48.png | Bin 0 -> 1003 bytes .../baseline_message_black_18.png | Bin 0 -> 259 bytes .../baseline_message_black_24.png | Bin 0 -> 335 bytes .../baseline_message_black_36.png | Bin 0 -> 493 bytes .../baseline_message_black_48.png | Bin 0 -> 697 bytes .../baseline_message_white_18.png | Bin 0 -> 263 bytes .../baseline_message_white_24.png | Bin 0 -> 340 bytes .../baseline_message_white_36.png | Bin 0 -> 488 bytes .../baseline_message_white_48.png | Bin 0 -> 685 bytes .../baseline_person_add_black_18.png | Bin 0 -> 428 bytes .../baseline_person_add_black_24.png | Bin 0 -> 586 bytes .../baseline_person_add_black_36.png | Bin 0 -> 852 bytes .../baseline_person_add_black_48.png | Bin 0 -> 1119 bytes .../baseline_person_add_white_18.png | Bin 0 -> 421 bytes .../baseline_person_add_white_24.png | Bin 0 -> 578 bytes .../baseline_person_add_white_36.png | Bin 0 -> 837 bytes .../baseline_person_add_white_48.png | Bin 0 -> 1097 bytes .../baseline_person_black_18.png | Bin 0 -> 404 bytes .../baseline_person_black_24.png | Bin 0 -> 544 bytes .../baseline_person_black_36.png | Bin 0 -> 787 bytes .../baseline_person_black_48.png | Bin 0 -> 1047 bytes .../baseline_person_white_18.png | Bin 0 -> 397 bytes .../baseline_person_white_24.png | Bin 0 -> 538 bytes .../baseline_person_white_36.png | Bin 0 -> 773 bytes .../baseline_person_white_48.png | Bin 0 -> 1030 bytes .../baseline_reply_all_black_18.png | Bin 0 -> 429 bytes .../baseline_reply_all_black_24.png | Bin 0 -> 520 bytes .../baseline_reply_all_black_36.png | Bin 0 -> 756 bytes .../baseline_reply_all_black_48.png | Bin 0 -> 997 bytes .../baseline_reply_all_white_18.png | Bin 0 -> 427 bytes .../baseline_reply_all_white_24.png | Bin 0 -> 518 bytes .../baseline_reply_all_white_36.png | Bin 0 -> 749 bytes .../baseline_reply_all_white_48.png | Bin 0 -> 987 bytes .../baseline_reply_black_18.png | Bin 0 -> 394 bytes .../baseline_reply_black_24.png | Bin 0 -> 495 bytes .../baseline_reply_black_36.png | Bin 0 -> 699 bytes .../baseline_reply_black_48.png | Bin 0 -> 953 bytes .../baseline_reply_white_18.png | Bin 0 -> 384 bytes .../baseline_reply_white_24.png | Bin 0 -> 483 bytes .../baseline_reply_white_36.png | Bin 0 -> 684 bytes .../baseline_reply_white_48.png | Bin 0 -> 954 bytes .../baseline_report_black_18.png | Bin 0 -> 304 bytes .../baseline_report_black_24.png | Bin 0 -> 374 bytes .../baseline_report_black_36.png | Bin 0 -> 583 bytes .../baseline_report_black_48.png | Bin 0 -> 768 bytes .../baseline_report_white_18.png | Bin 0 -> 304 bytes .../baseline_report_white_24.png | Bin 0 -> 377 bytes .../baseline_report_white_36.png | Bin 0 -> 583 bytes .../baseline_report_white_48.png | Bin 0 -> 757 bytes .../baseline_save_alt_black_18.png | Bin 0 -> 316 bytes .../baseline_save_alt_black_24.png | Bin 0 -> 432 bytes .../baseline_save_alt_black_36.png | Bin 0 -> 583 bytes .../baseline_save_alt_black_48.png | Bin 0 -> 809 bytes .../baseline_save_alt_white_18.png | Bin 0 -> 318 bytes .../baseline_save_alt_white_24.png | Bin 0 -> 431 bytes .../baseline_save_alt_white_36.png | Bin 0 -> 573 bytes .../baseline_save_alt_white_48.png | Bin 0 -> 789 bytes .../baseline_save_black_18.png | Bin 0 -> 354 bytes .../baseline_save_black_24.png | Bin 0 -> 464 bytes .../baseline_save_black_36.png | Bin 0 -> 676 bytes .../baseline_save_black_48.png | Bin 0 -> 936 bytes .../baseline_save_white_18.png | Bin 0 -> 356 bytes .../baseline_save_white_24.png | Bin 0 -> 464 bytes .../baseline_save_white_36.png | Bin 0 -> 679 bytes .../baseline_save_white_48.png | Bin 0 -> 922 bytes .../baseline_send_black_18.png | Bin 0 -> 414 bytes .../baseline_send_black_24.png | Bin 0 -> 527 bytes .../baseline_send_black_36.png | Bin 0 -> 686 bytes .../baseline_send_black_48.png | Bin 0 -> 945 bytes .../baseline_send_white_18.png | Bin 0 -> 407 bytes .../baseline_send_white_24.png | Bin 0 -> 522 bytes .../baseline_send_white_36.png | Bin 0 -> 674 bytes .../baseline_send_white_48.png | Bin 0 -> 930 bytes .../baseline_star_black_18.png | Bin 0 -> 658 bytes .../baseline_star_black_24.png | Bin 0 -> 852 bytes .../baseline_star_black_36.png | Bin 0 -> 1251 bytes .../baseline_star_black_48.png | Bin 0 -> 1601 bytes .../baseline_star_white_18.png | Bin 0 -> 650 bytes .../baseline_star_white_24.png | Bin 0 -> 842 bytes .../baseline_star_white_36.png | Bin 0 -> 1227 bytes .../baseline_star_white_48.png | Bin 0 -> 1579 bytes .../baseline_sync_black_18.png | Bin 0 -> 700 bytes .../baseline_sync_black_24.png | Bin 0 -> 889 bytes .../baseline_sync_black_36.png | Bin 0 -> 1307 bytes .../baseline_sync_black_48.png | Bin 0 -> 1748 bytes .../baseline_sync_white_18.png | Bin 0 -> 684 bytes .../baseline_sync_white_24.png | Bin 0 -> 876 bytes .../baseline_sync_white_36.png | Bin 0 -> 1293 bytes .../baseline_sync_white_48.png | Bin 0 -> 1727 bytes .../baseline_unarchive_black_18.png | Bin 0 -> 364 bytes .../baseline_unarchive_black_24.png | Bin 0 -> 476 bytes .../baseline_unarchive_black_36.png | Bin 0 -> 692 bytes .../baseline_unarchive_black_48.png | Bin 0 -> 932 bytes .../baseline_unarchive_white_18.png | Bin 0 -> 364 bytes .../baseline_unarchive_white_24.png | Bin 0 -> 474 bytes .../baseline_unarchive_white_36.png | Bin 0 -> 694 bytes .../baseline_unarchive_white_48.png | Bin 0 -> 926 bytes .../baseline_visibility_black_18.png | Bin 0 -> 750 bytes .../baseline_visibility_black_24.png | Bin 0 -> 1046 bytes .../baseline_visibility_black_36.png | Bin 0 -> 1563 bytes .../baseline_visibility_black_48.png | Bin 0 -> 2091 bytes .../baseline_visibility_off_black_18.png | Bin 0 -> 895 bytes .../baseline_visibility_off_black_24.png | Bin 0 -> 1200 bytes .../baseline_visibility_off_black_36.png | Bin 0 -> 1735 bytes .../baseline_visibility_off_black_48.png | Bin 0 -> 2225 bytes .../baseline_visibility_off_white_18.png | Bin 0 -> 882 bytes .../baseline_visibility_off_white_24.png | Bin 0 -> 1189 bytes .../baseline_visibility_off_white_36.png | Bin 0 -> 1724 bytes .../baseline_visibility_off_white_48.png | Bin 0 -> 2219 bytes .../baseline_visibility_white_18.png | Bin 0 -> 744 bytes .../baseline_visibility_white_24.png | Bin 0 -> 1030 bytes .../baseline_visibility_white_36.png | Bin 0 -> 1554 bytes .../baseline_visibility_white_48.png | Bin 0 -> 2102 bytes app/src/main/res/drawable/baseline_add_24.xml | 10 + .../main/res/drawable/baseline_archive_24.xml | 10 + .../main/res/drawable/baseline_delete_24.xml | 10 + .../main/res/drawable/baseline_edit_24.xml | 10 + .../main/res/drawable/baseline_folder_24.xml | 10 + .../main/res/drawable/baseline_forward_24.xml | 10 + .../main/res/drawable/baseline_mail_24.xml | 10 + .../res/drawable/baseline_mail_outline_24.xml | 10 + .../main/res/drawable/baseline_message_24.xml | 10 + .../main/res/drawable/baseline_person_24.xml | 10 + .../res/drawable/baseline_person_add_24.xml | 10 + .../main/res/drawable/baseline_reply_24.xml | 10 + .../res/drawable/baseline_reply_all_24.xml | 10 + .../main/res/drawable/baseline_report_24.xml | 10 + .../main/res/drawable/baseline_save_24.xml | 10 + .../res/drawable/baseline_save_alt_24.xml | 10 + .../main/res/drawable/baseline_send_24.xml | 10 + .../main/res/drawable/baseline_star_24.xml | 10 + .../main/res/drawable/baseline_sync_24.xml | 10 + .../res/drawable/baseline_unarchive_24.xml | 10 + .../res/drawable/baseline_visibility_24.xml | 10 + .../drawable/baseline_visibility_off_24.xml | 10 + .../res/drawable/ic_launcher_background.xml | 170 +++ app/src/main/res/layout/activity_compose.xml | 12 + app/src/main/res/layout/activity_setup.xml | 12 + app/src/main/res/layout/activity_view.xml | 22 + app/src/main/res/layout/fragment_account.xml | 198 ++++ app/src/main/res/layout/fragment_accounts.xml | 48 + app/src/main/res/layout/fragment_compose.xml | 124 ++ app/src/main/res/layout/fragment_eula.xml | 41 + app/src/main/res/layout/fragment_folder.xml | 61 + app/src/main/res/layout/fragment_folders.xml | 48 + .../main/res/layout/fragment_identities.xml | 48 + app/src/main/res/layout/fragment_identity.xml | 228 ++++ app/src/main/res/layout/fragment_message.xml | 79 ++ app/src/main/res/layout/fragment_messages.xml | 59 + app/src/main/res/layout/fragment_setup.xml | 138 +++ app/src/main/res/layout/item_account.xml | 72 ++ app/src/main/res/layout/item_drawer.xml | 32 + app/src/main/res/layout/item_folder.xml | 81 ++ app/src/main/res/layout/item_identity.xml | 72 ++ app/src/main/res/layout/item_message.xml | 15 + app/src/main/res/layout/message_header.xml | 63 + .../main/res/layout/spinner_dropdown_item.xml | 10 + app/src/main/res/layout/spinner_item.xml | 11 + app/src/main/res/menu/action_compose.xml | 22 + app/src/main/res/menu/action_view_bottom.xml | 28 + app/src/main/res/menu/action_view_top.xml | 34 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1428 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 1147 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 3220 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 895 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 650 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1905 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 1751 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 1535 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 4413 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 2836 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 2774 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 7094 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 4025 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 3798 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 10220 bytes app/src/main/res/values/colors.xml | 18 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 110 ++ app/src/main/res/values/styles.xml | 32 + app/src/main/res/xml/providers.xml | 21 + build.gradle | 21 + gradle.properties | 13 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54708 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 +++ gradlew.bat | 84 ++ images/banner.png | Bin 0 -> 2920 bytes images/banner.xcf | Bin 0 -> 2841 bytes settings.gradle | 1 + 1018 files changed, 10081 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/assetWizardSettings.xml create mode 100644 .idea/caches/build_file_checksums.ser create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml create mode 100644 FAQ.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/ic_launcher-web.png create mode 100644 app/src/main/java/eu/faircode/email/ActivityBase.java create mode 100644 app/src/main/java/eu/faircode/email/ActivityCompose.java create mode 100644 app/src/main/java/eu/faircode/email/ActivitySetup.java create mode 100644 app/src/main/java/eu/faircode/email/ActivityView.java create mode 100644 app/src/main/java/eu/faircode/email/AdapterAccount.java create mode 100644 app/src/main/java/eu/faircode/email/AdapterFolder.java create mode 100644 app/src/main/java/eu/faircode/email/AdapterIdentity.java create mode 100644 app/src/main/java/eu/faircode/email/AdapterMessage.java create mode 100644 app/src/main/java/eu/faircode/email/ApplicationEx.java create mode 100644 app/src/main/java/eu/faircode/email/DB.java create mode 100644 app/src/main/java/eu/faircode/email/DaoAccount.java create mode 100644 app/src/main/java/eu/faircode/email/DaoFolder.java create mode 100644 app/src/main/java/eu/faircode/email/DaoIdentity.java create mode 100644 app/src/main/java/eu/faircode/email/DaoMessage.java create mode 100644 app/src/main/java/eu/faircode/email/DaoOperation.java create mode 100644 app/src/main/java/eu/faircode/email/EntityAccount.java create mode 100644 app/src/main/java/eu/faircode/email/EntityAttachment.java create mode 100644 app/src/main/java/eu/faircode/email/EntityFolder.java create mode 100644 app/src/main/java/eu/faircode/email/EntityIdentity.java create mode 100644 app/src/main/java/eu/faircode/email/EntityMessage.java create mode 100644 app/src/main/java/eu/faircode/email/EntityOperation.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentAccount.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentAccounts.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentCompose.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentEula.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentFolder.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentFolders.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentIdentities.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentIdentity.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentMessage.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentMessages.java create mode 100644 app/src/main/java/eu/faircode/email/FragmentSetup.java create mode 100644 app/src/main/java/eu/faircode/email/Helper.java create mode 100644 app/src/main/java/eu/faircode/email/HtmlHelper.java create mode 100644 app/src/main/java/eu/faircode/email/MessageHelper.java create mode 100644 app/src/main/java/eu/faircode/email/Provider.java create mode 100644 app/src/main/java/eu/faircode/email/ReceiverAutostart.java create mode 100644 app/src/main/java/eu/faircode/email/ServiceSynchronize.java create mode 100644 app/src/main/java/eu/faircode/email/TupleAccountStats.java create mode 100644 app/src/main/java/eu/faircode/email/TupleFolderEx.java create mode 100644 app/src/main/java/eu/faircode/email/TupleMessageEx.java create mode 100644 app/src/main/java/eu/faircode/email/TupleOperationEx.java create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_add_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_archive_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_delete_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_edit_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_folder_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_forward_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_outline_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_mail_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_message_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_add_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_person_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_all_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_reply_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_report_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_alt_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_save_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_send_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_star_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_sync_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_unarchive_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_black_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_black_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_black_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_black_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_off_white_48.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_white_18.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_white_24.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_white_36.png create mode 100755 app/src/main/res/drawable-hdpi/baseline_visibility_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_add_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_archive_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_delete_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_edit_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_folder_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_forward_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_outline_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_mail_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_message_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_add_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_person_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_all_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_reply_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_report_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_alt_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_save_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_send_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_star_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_sync_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_unarchive_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_black_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_black_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_black_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_black_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_off_white_48.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_white_18.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_white_24.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_white_36.png create mode 100755 app/src/main/res/drawable-mdpi/baseline_visibility_white_48.png create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_add_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_archive_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_delete_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_edit_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_folder_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_forward_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_mail_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_message_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_add_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_person_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_all_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_reply_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_report_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_alt_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_save_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_send_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_star_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_sync_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_unarchive_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_48.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_white_18.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_white_24.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_white_36.png create mode 100755 app/src/main/res/drawable-xhdpi/baseline_visibility_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_add_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_archive_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_delete_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_edit_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_folder_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_forward_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_mail_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_message_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_add_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_person_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_all_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_reply_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_report_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_save_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_send_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_star_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_sync_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_black_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_black_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_black_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_black_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_48.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_white_18.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_white_24.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_white_36.png create mode 100755 app/src/main/res/drawable-xxhdpi/baseline_visibility_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_add_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_archive_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_folder_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_forward_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_mail_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_message_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_person_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_reply_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_report_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_save_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_send_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_star_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_sync_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_black_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_black_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_black_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_black_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_48.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_white_18.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_white_24.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_white_36.png create mode 100755 app/src/main/res/drawable-xxxhdpi/baseline_visibility_white_48.png create mode 100755 app/src/main/res/drawable/baseline_add_24.xml create mode 100755 app/src/main/res/drawable/baseline_archive_24.xml create mode 100755 app/src/main/res/drawable/baseline_delete_24.xml create mode 100755 app/src/main/res/drawable/baseline_edit_24.xml create mode 100755 app/src/main/res/drawable/baseline_folder_24.xml create mode 100755 app/src/main/res/drawable/baseline_forward_24.xml create mode 100755 app/src/main/res/drawable/baseline_mail_24.xml create mode 100755 app/src/main/res/drawable/baseline_mail_outline_24.xml create mode 100755 app/src/main/res/drawable/baseline_message_24.xml create mode 100755 app/src/main/res/drawable/baseline_person_24.xml create mode 100755 app/src/main/res/drawable/baseline_person_add_24.xml create mode 100755 app/src/main/res/drawable/baseline_reply_24.xml create mode 100755 app/src/main/res/drawable/baseline_reply_all_24.xml create mode 100755 app/src/main/res/drawable/baseline_report_24.xml create mode 100755 app/src/main/res/drawable/baseline_save_24.xml create mode 100755 app/src/main/res/drawable/baseline_save_alt_24.xml create mode 100755 app/src/main/res/drawable/baseline_send_24.xml create mode 100755 app/src/main/res/drawable/baseline_star_24.xml create mode 100755 app/src/main/res/drawable/baseline_sync_24.xml create mode 100755 app/src/main/res/drawable/baseline_unarchive_24.xml create mode 100755 app/src/main/res/drawable/baseline_visibility_24.xml create mode 100755 app/src/main/res/drawable/baseline_visibility_off_24.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/layout/activity_compose.xml create mode 100644 app/src/main/res/layout/activity_setup.xml create mode 100644 app/src/main/res/layout/activity_view.xml create mode 100644 app/src/main/res/layout/fragment_account.xml create mode 100644 app/src/main/res/layout/fragment_accounts.xml create mode 100644 app/src/main/res/layout/fragment_compose.xml create mode 100644 app/src/main/res/layout/fragment_eula.xml create mode 100644 app/src/main/res/layout/fragment_folder.xml create mode 100644 app/src/main/res/layout/fragment_folders.xml create mode 100644 app/src/main/res/layout/fragment_identities.xml create mode 100644 app/src/main/res/layout/fragment_identity.xml create mode 100644 app/src/main/res/layout/fragment_message.xml create mode 100644 app/src/main/res/layout/fragment_messages.xml create mode 100644 app/src/main/res/layout/fragment_setup.xml create mode 100644 app/src/main/res/layout/item_account.xml create mode 100644 app/src/main/res/layout/item_drawer.xml create mode 100644 app/src/main/res/layout/item_folder.xml create mode 100644 app/src/main/res/layout/item_identity.xml create mode 100644 app/src/main/res/layout/item_message.xml create mode 100644 app/src/main/res/layout/message_header.xml create mode 100644 app/src/main/res/layout/spinner_dropdown_item.xml create mode 100644 app/src/main/res/layout/spinner_item.xml create mode 100644 app/src/main/res/menu/action_compose.xml create mode 100644 app/src/main/res/menu/action_view_bottom.xml create mode 100644 app/src/main/res/menu/action_view_top.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/ic_launcher_background.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/providers.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 100755 gradlew create mode 100644 gradlew.bat create mode 100644 images/banner.png create mode 100644 images/banner.xcf create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..a5db63373b --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +*.iml +.gradle +/local.properties +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +.DS_Store +/build +/captures +.externalNativeBuild +/app/release +/TODO.txt diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml new file mode 100644 index 0000000000..2d7eb0eac0 --- /dev/null +++ b/.idea/assetWizardSettings.xml @@ -0,0 +1,62 @@ + + + + + + \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000000000000000000000000000000000000..c0ed5aa268e26efd9991304555bd398d4c6e2606 GIT binary patch literal 535 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r}l-a(W(##Th_( zR`y#54~r#SWM*J;W8likPfT%3OfJbU@?_vF$tX%K&dAS6sVJ~_U;qK0at + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000000..7ac24c777f --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000..99202cc2d6 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000000..7f68460d8b --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000..94a25f7f4c --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000000..7b9acffea1 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,27 @@ +Safe email +========== + +Frequently Asked Questions +-------------------------- + + +**(1) Which email providers are supported?** + +* Gmail +* Outlook + + +**(2) What is a valid security certificate?** + +Valid security certificates are officially signed (not self signed) and have matching a host name. + + +**(3) Which permissions are needed and why?** + +* Full network access (INTERNET): to send and receive email +* View network connections (ACCESS_NETWORK_STATE): to monitor internet connectivity changes +* Run at startup (RECEIVE_BOOT_COMPLETED): to start monitoring on device start + +
+ +If you have another question, you can use [this forum](https://forum.xda-developers.com/). diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..f288702d2f --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 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 +. diff --git a/README.md b/README.md new file mode 100644 index 0000000000..c9033eeaf6 --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +Safe email +========== + +Simple, secure and efficient email app + +This email app might be for you if your current email app: + +* takes long to show messages +* can manage only one mailbox +* cannot show related messages +* cannot work offline +* looks outdated +* is closed source, potentially violating your privacy + +Features +-------- + +* 100 % open source +* Multiple accounts (inboxes) +* Multiple identities (outboxes) +* Unified inbox +* Message threading +* Two way synchronization +* Offline storage and operations +* Material design +* Dark theme + +Simple +------ + +* Easy navigation +* No settings +* No bells and whistles + +Secure +------ + +* Connect to email servers only +* Allow encrypted connections only +* Accept valid security certificates only +* [SMTP](https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol) authentication required +* Text view only (converted [HTML](https://en.wikipedia.org/wiki/HTML)) +* No special permissions required +* No advertisements +* No analytics and no tracking + +Efficient +--------- + +* No [POP](https://en.wikipedia.org/wiki/Post_Office_Protocol) support +* [IMAP IDLE](https://en.wikipedia.org/wiki/IMAP_IDLE) required +* Android 6 Marshmallow or later required + +This app starts a foreground service with a low priority status bar notification to make sure you'll never miss new email. + +Frequently Asked Questions +-------------------------- + +See [here](https://github.com/M66B/SafeEmail/blob/master/FAQ.md) for a list of often asked questions. + +Support +------- + +* For support on Safe email, please go [here](https://forum.xda-developers.com/) + +Contributing +------------ + +*Documentation* + +Contributions to this document and the frequently asked questions +are preferred in the form of [pull requests](https://help.github.com/articles/creating-a-pull-request/). + +*Translations* + +* You can translate the in-app texts of Safe email [here](https://crowdin.com/project/safe-email/) +* If your language is not listed, please send a message through [this contact form](https://contact.faircode.eu/) + +*Source code* + +Building Safe email from source code is straightforward with [Android Studio](http://developer.android.com/sdk/). +It is expected that you can solve build problems yourself, so there is no support on building. + +Source code contributions are preferred in the form of [pull requests](https://help.github.com/articles/creating-a-pull-request/). +Please [contact me](https://contact.faircode.eu/) first to tell me what your plans are. + +Please note that you agree to the license below by contributing, including the copyright. + +Attribution +----------- + +Safe email uses: + +* [JavaMail](https://javaee.github.io/javamail/). Copyright (c) 1997-2018 Oracle® and/or its affiliates. All rights reserved. [GPLv2+CE license](https://javaee.github.io/javamail/JavaMail-License). +* [jsoup](https://jsoup.org/). Copyright © 2009 - 2017 Jonathan Hedley. [MIT license](https://jsoup.org/license). +* [Android Support Library](https://developer.android.com/tools/support-library/). Copyright (C) 2011 The Android Open Source Project. [Apache license](https://android.googlesource.com/platform/frameworks/support/+/master/LICENSE.txt). +* [Android Architecture Components](https://developer.android.com/topic/libraries/architecture/). Copyright 2018 The Android Open Source Project, Inc. [Apache license](https://github.com/googlesamples/android-architecture-components/blob/master/LICENSE). + +License +------- + +[GNU General Public License version 3](https://www.gnu.org/licenses/gpl.txt) + +Copyright (c) 2018 Marcel Bokhorst. All rights reserved + +Safe email 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. + +Safe email 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 Safe email. If not, see [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/). diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000000..356b9d6522 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,60 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 28 + defaultConfig { + applicationId "eu.faircode.email" + minSdkVersion 23 + targetSdkVersion 28 + versionCode 1 + versionName "0.1" + archivesBaseName = "SafeEmail-v$versionName" + } + + buildTypes { + release { + minifyEnabled = true + useProguard = true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + minifyEnabled = true + useProguard = true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + packagingOptions { + pickFirst 'META-INF/LICENSE.txt' + } +} + +repositories { + jcenter() + maven { + url "https://maven.java.net/content/groups/public/" + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + + // https://developer.android.com/topic/libraries/support-library/revisions.html + implementation 'com.android.support:appcompat-v7:28.0.0-alpha1' + implementation 'com.android.support.constraint:constraint-layout:1.1.+' + implementation 'com.android.support:recyclerview-v7:28.0.0-alpha1' + implementation 'com.android.support:design:28.0.0-alpha1' + + // https://developer.android.com/topic/libraries/architecture/adding-components.html + implementation "android.arch.lifecycle:extensions:1.1.+" + implementation "android.arch.persistence.room:runtime:1.1.+" + annotationProcessor "android.arch.lifecycle:compiler:1.1.+" + annotationProcessor "android.arch.persistence.room:compiler:1.1.+" + + // https://javaee.github.io/javamail/ + implementation 'com.sun.mail:android-mail:1.6.0' + implementation 'com.sun.mail:android-activation:1.6.0' + + // https://jsoup.org/ + implementation 'org.jsoup:jsoup:1.11.3' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000000..cda2b21e9b --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,38 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +-keepattributes SourceFile,LineNumberTable + +# If you after the line number information, uncomment this to +# hide the original source file name. +-renamesourcefileattribute SourceFile + +-keep class eu.faircode.email.** +-keepnames class eu.faircode.email.** { *; } + +#JavaMail +-dontshrink +-keep class javax.** {*;} +-keep class com.sun.** {*;} +-keep class myjava.** {*;} +-keep class org.apache.harmony.** {*;} +-dontwarn java.awt.** +-dontwarn java.beans.Beans +-dontwarn javax.activation.** +-dontwarn javax.security.** + +#jsoup +-keeppackagenames org.jsoup.nodes diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..77047117df --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cdf8b5e3eb2fc4e663ef43e1fa2388482ce58a GIT binary patch literal 14243 zcmdtJXIK;6+Aul^pcJJGiZn$91&j)cgcg;iD2OPaNUCP+yr5kgCyGXeMh_Ph6fzdz^4xvrBRlgZ58*IIX3_e$7hV}qT%61)Ha z>^yI%dj$aC&@CL`-UfZG`1Q~LK<)l{-7{DH1{X%QCrH^hv@X2~-7m!{x-$6l(aj~& z`*h1QqM~}DyG$<=|Jtt?E}FmpN_GVHNfdY16=81WeFqN22y!1l33C&*k|rplRQ!O5 zKP7#%TE0MRgT-YRAx_cHRH~eZ*cjxLF_6sBaA{KS!no_-tsk-m@lC z4OqCxo`-&Y!=DGRryS09^_mY3-%)gZFe+w{q*ONiuqk-XKGd7;V>7#G&I3#L8n&+J z>N1Z|3hch%|Atm!ECV1DcIXaCxmJJCSlm$jL>IYw0GMqu+tw8)0=u3eiN>#~Bl1rJ zoyY30RxIpSo}LM=`^EK(QF++KH+TLRfJzcsnCq^>&xpG=eEBH3j4z5uuQu}X08)m$ z)8ej;UbMm(sepCgxVMuQL?Hc6ThlGy?D=>#Ovx-qmWU7I!%ttSX(vdEB<^3}Li*4Z zpYiVoO7j9)BHpaf5%1(E=v4vqiq&LgwiYpGatM~n*tyDq`V@{*G=ps)jwxf7Fi-N# z?nnWJ@zjE2KxhB{7a(PyZ`OP~#$=$ekMV+2^?s|&Rdf0r1J)GNgwglEqt%4&%XUdK zs>B$j?c3Q+C8K}bFsk@r!Ue+`AAld{ec)h!#BQuW{H`t1RZ6(iFa;A=lq`krlksK& z*eXNR5=g!<@Bv~Wjxib-6}Prt*>fQM3=(|o2L9C{19ZOSylMbjtJ!ZqrsZoO+_}Uh ziwg-XD%&V$UV{U(J%0g`exCNqO{3xs<||SM(&cAG@0jl(=0S zFe$k(;ENx2zNK>(K#q4}*0QgO(=XUQkpV8pVs~?G47@))G{-osCv#ggUCxI!aAY8) z3T-|k09fwlZzwN2cub6gwPA9Y-g~%CG?<5H_VPK<EWavQM$LJhqPDgo0Qj{MfbB}j+YAS01coy7fx_(y%udYip^&OzJV6H- zmonjKzTK3tZKLbp;i1(mj^}W%tT&*NmFvq-Ag?-LXG#Fx?Un6?&HJ=v>ZNs;aT+C?l0i6y6`lqqZ1n3r=V@G4LVAZb7VK~0BjSlR=zA5AP{7Ml#% zUFoW+-#`&F0RgPN2zFut3)v}bT|Bsb$N)Cat?&b) zP!u~>zmLu2B3w`dhJNVZ=A*Nao#B3*_ws!h_c<#KoWBSU0NA}2hc5(6y%cCT993W&yNQwRa- zy*G5)d*uO0fgC}sPVRh?d{&0LKV20&0x0^iK%D|m@to>jK>(u7jZ%UaayM=J9({A1qsnGd%#fEDkB_=m49&;w$?i1yFR{-h>eY z?hWKXX6*b7FD335gAejt4wnMh4;tZi5_VjCO#$BvRL3qsal%yzAQuntpdbr!y?}lX zngR8DO1&HaNQtK9U082!01`$Jfb0bToG9}cz(pUrgV2(M0EqK!GQ9LSOd%R5G?fST zia@$(@L8EXU;xP9{(#( zEL#)+_6OrH=$;$9`9u(6FAJQ79&n-{%U}WSf06WmVsT?1{U;v)j$-5f8{`)2eb5`Y zEMzeh@ZUN9S1dRRLgU0j7q$-nddmji6nFD2q@OJCe`A0YE|BU{F7m&+UNIEQBnVaM zq`09UdIfA`^APj9%(@jt9CFU9Bz4c%PzX4X=?)k*earE8ns}bGLdv@C^d%wRKR7YL zP4YBS%D+{GIApPEVjV?_GuJv>r_Z*oC9E*jmo_I&kX!KTl5;9?-kx*LZBOFSK*zha z-kk}mzhl2THE--8zW-VtuCF9fUPBRg><>AZ8G&@kh;1fqL?FWNQVtD=W0GD6Q8Lw>9e{PG@;7c^% zrbQ>l6r=B6rPL2c8BV4VAVQuj5{@c$mXDK2q23P9ukhT3J zEAK>E(ygA>ym(U`i>}cvF5$5Pcnz?4JG1M9W=DYN^x2jTl1$H9MsXQmb> z_VvZS59EYK18bj3)+swNCPSg)pQq$>ab393gCE)!eSWWGpNhA7cP(3d?xrhcS2_;i zh$%j}G7OFI7?B$<|IN_s-uEA!@Ph|QGwmYx#GF0Xs_&r&=bK0Mw0ct^fv~sU+EZXIBvZZfIe8}SApKpJFM;_`tMi#KVtggM$-H6By29bt=1`wgqwk2P! zcsChM{l`423Jqy{<2&Y04*x`PVuA6Z0x(cuZ~P&=OZR2?PR1xURR5xa53OH_t#mgM zxA<}tLke!G)In^(Bm$M2())5m5j$>x{i%aGkS0itBu0(}ZC-}%-zCt=mKe&_61bTrA(4$`@F-J653LG+BH^I?7J$}q^8QE>v_ zI^=PNN8Yx2l53(?AHttfP<(GrxNR`;(mX3H7)At{Q~s zODsnFv;3sUu&9>%td( zjtNO%6wUNNpU_K%*T+I-f8Ht7VySWX-bQ0 z)=<|!^5NbowKk8K8HK(ApN3Fqz3u}z?L3+Xu_=f^rIFJQyaMj8^r*V74XZk&5_nB* zGJ^EgBbOznPPMtmO#0qf;{jlT@Xma$^tMC;ZxgGOhqkrpcq3w%#UXKr?XxbIKXU}9 z?mnq*oe)nbLI>KC9^S3WK1$gXQWp45fI|U7C3v;lz^rd5%~*V9=X}Add)enzF7es5 zh)f-8o7D5KnGYBu5S{(iBWqX(r4~2G3JNdqQP1v%mQf;$`l=W5c-|<>pStSLmv>K{ zXmhZN@r35wUyutH>)?Mz;Ox_=bfA5sGQ;Jb*!p?uCr({@>S%E9)U}SqXt^K|fe1Z* zcGpx{wife`T&^3hC%^P4V*+glrf9Ys$U-71>Dfy~o~jn~4LwRJV>RAX^IIciKH>Okw)A_f<<9U26D4u_@)Yk>w+V ztua!ACG>}I*}a!rJS=AI>Ul41WpXamr7o_fTx z*i;ld#Mc9sdwPQXR}7($*_y6=sNd8L4O_YtJ{Q^WMo?Pa-Xe`XI?Fs=wc`wIP# z`O0a$z%2ZnRsH?lMGa+YZ3b)sU}wfd9vf zWU<+13c~{=V_4t4^l&fPE*H_(df}iW0&;2496icV5XbJOxp=|ygympMZfobH+-No-Fexk^A`>1A?A3P|SG+%G_AnU;$ zUm7KXF1fC;7&r_nY&VrQKVq74VAGA9<7ujNSUqnwZF0j|a-b;T6{3AT+LxCxA!Cv~ zv_1L~zEQhqR@N(SXJr#YesRu|%8cA1c!*3 zwVEcTR)ZG&tphNFVb(>OGuRhS{mF&wczS(A#$ID_?j=M>i&@~KY(b5n39jxZ8T5!i zbLB5UH3q0Z&r(e}%0F8z4R%eQIY)0)hWd~FDmFP#^wYHjkn(&awFgW7RiCtUy}E4Qlh;1eQ3!wEj-R_XFK@2 z+Q#X7W^Md^n0dTh-L6lixH)yrRsUN-@9ZC}4O8_wk)0x#;gV{1HjmHD=kyynPx4F` z)sT%AG=Cd`iRLyx!uYU{W@RFKwqt#EVQKM&I|5uUAjfm|In|ZZVis$g3D-51eHxfV zugRt^z0eb5`_5*M4T=ZS+$A?|Aot_k3z}0|!o8pZ*>o|JQIZ#LzM00Ae&m$px7(v( z??dZ*(MRACc&^ZK6PzW}V(#hr>=5bW?_#kU#Uu9JD3Lr$E(n-pB?potVh`u&nCB#1 zFpYa?u9IP9+BlhgR(xfTX$)Nf^fd46U|X3R;DseZ(UAOHLu%d}Aml>Z2cR+VToFYGJ7Vvx)nWr-lM`-j44q z0tq4kvG-wpwf^!HqK;;aalM1(yZ7@?)N*Ii{G;?9Eht2IG)&gEuIel;-fCe!qhHB+ zl9j~Du`oqvN*ee_J+#iLG8G0O6I?z5%d`I$GtiPcTVg|VWM`|{b#72iklKEpeA{sS zXZ)dnT$F~;lxnf>#XYWn`<6M!81fgeV-Ovm`&n$N`gz~WO)0y1Q7%&wYOclsD^p=D z(!|~Rk+(+63Q191kKUCkuEn)}EVdolxC%w47}eg2ric5Aoo|j+cWlXNTcbO*Punbp zz|ORz8#MD3aHdh4Q3?gbUE$O>NsWavJTh1V6 zhUsSm?#)-I-U@id&y*7EQ!KW+iQ{k!cw3!1Co@#8>OOC^@XW1+7Tw?Lt8c>(E;T#r z)!Z}UZSCMmC}0K}H&%IVZ)%oY zlJ5vUwm_Yc@BYH0LTKKj&v9davC+-6YGaQEbL9avOO_o;72Hi1GZ@}I-qH|3LBPur z^3Z9)8`VT&2E$3orf?a`p6{BlC!NkP(*Q$+h;j0*q9&2=wA0Jeqy$rDzNu5X z3DnhRbIYN01JSRq3*>)Mgr!o0KMLUGJQ3TC4?w zLIkk$AmH&iV8=ln?T1%t8E;;;_y+bJ*Sg^CgEB;UDU8)lEUnC8v|l}K=vqoU6o0Sh zP@``USj`_xp$Ep?H^C$;Rr}hYkCN3+tje6sSFm`e7{ZnhawVv+u%D}^Q3_FZBTJ7$ zBb4thdDUD9gA$pAJGM~m>vaz7Krdh8D9^@9~ah4a$`&T?F;V>OKS)N)Uwv@ z<6uCgpW;M#fY$s&43jcUbsC(nA@(x@7yrhLomeDBFAGf_XfujQ(wBY$#V2U!{d{RX z1Cfe=$Cs`M_YQ?o9Qs=dUd-VAXX=vuo}JHP7p;=L+y~bRwTUmRLURhFrLRe%2@3lK z$K)FEvD9_suediY>(9wnaazpSSB%%Ba-mWCcf^s zpYS88Xt|UT`jgx4{`D%27h8Ekx$EW0yVq-OU9NS7wiIsZn=SPWo91#(c(%?&lZD3Q z8!duxCtMdI=rYa%6PMG54PXBd%EV}L@>CeN&EEn;FGD+o|D1|pI+J;baR{IZFcIaKZ!_J^BS z`nH#JYw8A%e?QlKGP?c>=_iq-+MY(i`*&VCccE%-|10J{ARt9p5iV_R(2ha|qY^X?g?Jz;TABsNA80g$`Re#{9eq1DdhWZiE6r;BLYos~E`U4~9!0 zQ~l-W{#|{P9ooi948rNXGf$RUW|aABuQWn|Mi$yJG(uKcE8P!N#k4i}JJLFd0;1$y z3WT#CPEtCKP7j;REd{anomAZhlPBtFm80EaIta8IgR!BtL}znA5a76K9U1Kg6XZtR z8)71(@tRFv!OcHri2K{Ad}bGA1h>&@#@;bdoC>~4?oVwwTa}b5X&uyC$zUx}CT2e4 z5tCM8kE;2wqCeNaP^2zFrd`ni_6|Jvg;@hwNy*JiR&|20Gw@>}V5 zRlg^t<$Sw;0kZ(!N3x1%x~qz3(?)~Ok|z$Hv#+UI`o(Ij7m2p`ZPVp`SK@cuuZi>i zZX^3YY|Lz|oBRT`o_0?b`7NzakmIN7n!O|E=tYb$onqgc>y{&9swOp?QIV~{qumVK%8$+VAcYjXf?0BVTIN* zxRmT^7{eskv^_i`dq&liiylbPc^BwVV z?nv4x?M92k;sZsq;*u>8l87hs+z_#08z*W2+8tvH_|ThUo5WWp8iuP3Gi6mDyn%OUideTJ9w@q2RPju1ajpM&nY$ zBwglj+t6xhC?bpqHE!ZLy2BFA0D~#F+%K9`?Uc5vFGqix4Dfk-LVQeZE6BHTK*Y~N zp?oIbLuX+Pv4!z4a3NPRy??FG5onQ88XKu~MVXWH2v8jQ8{UGjjRJKrq4LXt2^q0tU~@JTyQs*{ayF zB%`Mj)@w^%l7ZuQRMUmpEP|ppw3iwt=>ARuTM_}JgaK7VgXS%LXgl^S@;#kGH0ax@ zwD!3Kt=oFz!0t3P?e$UWjLtz&dMS7!@ViS{+aH;Lhy#@^)}0Qzv<>y(h+PyZdtF(m zOvmqS-S|91Rtc)7pZ_C;@5g#7ALNgZVjS-df-;XIs4KA-ZbX?Q>z8{!FqiTE*Ksdf zdb|B8v4`R80yX9aaN98si17@uEBssL*!?TDlTZLjPYTUJ*laxT@H6(RwkK{(Qi7H; zLJ4Q8b|`B*1dZnS^DX1a(opFk%L(mnzpmQJ&n^+!Rf;t2+J!5{lb+2pVNg`TS88u^ zft>$w&l!ZFnFC&V^o8$Y10qL;Wp8(5E^l$6(f$~EY|vm`0S&5CXZ$>A$+zF$F5ZWM z5I5(aC3=W!(q=Wt=Vomlw7XT;x5H3Iof$G=k6bXdnOG0{EUv|! zu&reQR0zEDQ(5bk@fqq|dBP{-7QZZvlSkV!M)%l^Lc2u(8xByki$|gH6I|!mAyqoa z<1Eb@|C4AWuJiXP)}^7SZO!PGNV;LKqa&P^`~ZLCh%o(vkJxQmrY zMCGpd{WMN)z$w|wu~^%v_^>o_o%P0B?qbe@H{IcXR8jb;7@GU-{t@K-?wyu{P(_ui z!$S8lW^{99boy4eychPVF!qd-IUxw%i3;8R{j0{@?zgx`uz*;N(TcBBFUJcbgrDn( zV_4O7sfsN07-OcnSNorp#p8GQv#?HuQxfm2kF8B(Cd*n0p~iKXu(orInhgrubJj)u zL;Oyms-4rSQzpOVMw4H%HkzKT5TOF9gFjE1<6SODz|6*X;6b|4q(fE?mEt-l2gOzh zHC-r5R9Yw4_?_YJ7&m;bj4gO~kW{s|)eq9}N2O#WMf+5DXE$UmY|ddO~_hQnHP zTE)tDMQK|@h9@JiFBEF$L4F#$P21QHN;BBaD84X^&vOI}fUyS!_~-W~Pt`1-c^`rk z5&-&{F2dUchePNP0Ti%xg_v#jZ?#1`$Y# zO^B^4dyoM5pP~9QJ+^TE4-gc@Hk*}@f7yin3n=tMC-R{P^<00%`*(~@g23h#CJX!z zvZy~|L;L0rd7Fl*HGrci488@sb^UjY|04+eAJRfQt(%H+!xS=sZ*qT3ml6@o16gEK znSc5IGv@(_E+?DT))kHd{>?(Kx$Ic~uyN;ME>tG>{|j>;=Cb<$-?@KN8kD>U_QStg zYEzJ{nFS5f|1uDQ|CBI2S@&G}8BXpkJ3`k@jkd0w*v$d{uQu}HMAQ1tI4#z5Rl?yZ z*t{9jvCL8D&4$Y_#s*aUR}6SUW5}oa0`*vARg)Ch6SyD)lLbd4iJch7d>ue`R=9jb4DW7}PiOXoY zh<|b)eMP=hXT$OffZAM}t*QX&RV`A(S~L`fjXP+qYZr%7f5`6)@V=0!F=mcRzf}cH zuLgEHn}yS)S8cYsRSr`OS|M7uYNZnrwD6D>EJS}4zR~%NM=#j+dL6s(_bB#Z$1Jpq z7~q!tRM_!yz|1QBo6V;PTJZ=J@d3VpnWtxn6WWMuDxW0Z4%NXWoM{PSk^Z+F7D{@X zh6bQ5NuqPSw)sVlZ{=cuV_prI*Jt~EZhf1-Rv){;i>(r*JhDpbk{>zcc#*xEyi>kY zRyQ~*fcdT-T@u&lxz$?So0R6|j-;mE$_Mk#=R2jE0_m9|tEWkxJ#%?un_bLKQWO^I zwxo8??O_E3B#9 z2A6tq-E&5Kbv;ib^>FW+ZbK!F9e9=ER-+bPRwAbwH{0&r7ZE&gq{J&q2M9IJp^cVW zwIa%#^x#Qoc9#An2MZlbG5?yjTibv1F|kJ)FCOtMS(rN}EiX6oP=^v}fggt{&1+3% zu&ttz%HPju9(9U#-X@9=*z;QL$nmVamt1Z1w_~%6k}q@4JwxA@X$2H^!{wIE{aVQZ zW!DEc@m{TFcL<&(CIqNGZQs9_&<$n#Vyh=fMQai41zh?KYT3fNTJeiXYt;d$TG~%j zb~Bfd>@T(*u9%n?YATayqt6`HF3B~uE!u#HLj}p6uDp7344qKoCiypu+S9KJb&*v) z^vx0nR7+0ZyLx9wg@EZ;#;6`MB4GFGagu!xJ}-Ar5mK4E>0$7b-=W4(*O>VwZ{o#E z$LC^>2_aLMVvKQ5Ri3XYm?0hT9sz?^c>0Lt%Zg5N1nCY4*T69Fj>8@@Iwz^iJiuIsK5UaE2@bc}0LNH1NlJvMsyyXwysn;}*W@fVZ5@ zmj43&I3sqfVI%(qf&S-NmjBKG1;KJ+q01)Kf4Tkd4F2%mIuWxELil>C&!08Vbw_cI@VLbOBR;k4iSNlmObcnJxnKFs{tf&SinmZc6xsCJo`6K1~{(}E5*lSj~-g1~u>nah%M(u~r z%sreL>VqkC0@#DQuo_p^B5>I*B^0x@AH~taYydiQ>Y@gO-hKd}TgR8N58xrB{H!B^ zLIa>p2?$JGm)m?@!7=WDF&vJm~hB$aZa#tZ42`b zV1sOp>kbDBje)j9fORj%_V|oDbPl*w^%IC=1lq&KJ8;I=<5yV)*MU>}fhjSp?@Ya# z#_wLbl?}I}C$p9y*NnBp19*AG3uFqIY;`sz1h+8U`L@^LszX zIj*Hn#;@UieweW5f1k--E}bL-SQIM`EO_X*H3og@%s}L?9DWZkJq1$;1-zW}fYJDc zpkM3d9ByyF&Ftoa48BOz5d)dC-EDkW?e~2!J=^Xwz-u2cC4}|%JoRnB>kV+%IY@!t zGL|FSsxBQcGvr=*RshJu&`Ok8Nw3%U$rKA=FD20vym^|!cVT12^+agCmV#^)rRMK07l@cDyI%P{yxgwn{oa}r+a z?>Sa>#?!Xk+;gn_1~lrrz@V>$-TUdx-B!X_WzUJotUYg$E1ZPTXZ~rN;2?yD^g_l zMWY*mBC;?A;&p)R)aWnsjp|rAO85EV{u>7=S8RxqToF`bz0kO{9YE!#tbwI^R7&(GbOvRNGTfGd!!HH~cd1>aJ&Qhi zn}zY<19+Nv6Si625t;)=kvm`54^0PY(rKocuZ@A`ZD>aBO?a`hjrapah>-pw<4%W; zJ~l!goMm8qjJo8n(w@?OVkn^01F5ErT-cGEs^GQv#TIwRsMb^Cp=r#TE63i>!RG}b zA$BiEZ?E%fiul1=>J%5i*y%x{`mI}FbPEbL}Gh$V51|Ne^DBzccr*X zaeXNRziL;3PA!TucRcLsS;uoY#TJE2QGx){rPVf=6g@eP@o}BHMIOq{o-eRATl*@L zY_$S&$Iw7K&$M^dY|#!5^Y;(FYf_Ge>%#ii_R{axNrU9u2OULUoaHPo5KXKq+9?YM zF0-P*sJ6#9HG5hDO0+O(W$vjj$`H~kWS69pg}z~G)!K?JhEbvh_`Gn!4w}K7#W{MT z;XN0c^Ei@~&>b0CBXjdb*@#Jz z3xz(6C*y}`QW2-Xq7*PAl{FU)Igo=wSiKb9YMbv0sD&HYK`9vcnm14MnN-)kHnp0iX^enU2w!)={n_OPyk_YXXQu$wd)9X5&V| z*8vPU$gu0P#UO3)4LBGJzV`&*n}87-%xECyfoQsqGHM|TOUuVrT|iY1g7?yfDKYbk zq2G__b52YN1~T82`5n;bI=k)T(ah2o(KGKHOVK}Nk3)X|n41;%S^L2cMqQxq9jczZ z81EP9&OYx?MqjXhIVLWUkm3ra5F$=77g8|LX>Mj4NUOn^fCp`MSnBXzt`keIl}ise ziZU{Tc?(~D)|6WoO-A2cd%}^b_%yoF`(ca1ox8F*+_x3a?>MgaK~YSA)o^9EfQuLh zfEp59xZgDZ7M1BM4vr)YMOU6iGA)Oz+TSf5!o@69gQYHY?$Xv3Klz3zVj3W%HK`FK zwSj}Lz#9QHc|hu}s9k0vSIDXvEaD}0{uNge+GWNiw4tM28#hMLgGD@Ai=0#>M@CVz zUpz{14*$53X{2~aq8Z!{D9OcNeY%Rn*tD&kE?=HV-8~An-CD{@3$OGK)xx(Ak*vik zha$*~xlmRCA9!kcWz3@wUg32VwQ#k`+(-fDE*@g{{v?Q?m*5$)^o>Oa`?OJd+Q7`Z zO!9))_}oCeKx%CJ2OQs-jqVS-e2{`br&!Pu_WFQ0nyTM5jh>eGy*q@VKc8o&QEzn} z>Z|N>U)YGxqKv(Do5f`ZgQ+ZyFA6B;qo%=6A*Za)^7J=8>B35pc&{5V5P)4xY4w_K zs8}kk%JyRiro8qINPB|$gK`zMP>j7qs@zt205;S(m5j|6fwm3komX0I>+qN%b0j#Z zj7jP#qS+32>cAAJkD6$!fbx0Nf?<TLBssDG!2F`aSodX&kqL81wQ4~o zKXBPSpHh;xuC_7;KMbm&h#E_~w)UtuYFkeP%K1d+-%v;&jH0boHWEt6 z8_sDoozCIU?gJl_aUHlET?HQk)E(n)Wdwv9a3DnkJJQ$g2_z#Bu; zy}q=e9&g5b6Xp*pOF40fL4!DVjMZZ}iniw+<#o9PzddBI`emF1DY*Z4m)PC(Bb-CM zVUWnK`L51j-4kOlv&f6_BbP-I!tKR9W}|MG=5lmBkY1~iUaR*YGqDT%-C2y=TrVAY z@-l+s+P=ICA5M8cgbwPTxJheP6Y$45?@ajc%WtjKxo@P=KaB$QgE3|6jkcuS#! zb8V$a?nRR&Qp+VHq+AO5FX77?5|`^v**%sJ$}`^S(tESCGEd}D(fu60`%_R-bE>}N zo+YNBmLC(5_(ub^yrj93U{W8|cRx?wh*amGBg*?mx{q#pt$z9uj-+0mGex5Hx%&K2 zPH5~pRI7KX&T8SeS`l%jz>_i8=f!yM$yC-_t*RKbof$iCz|mW{SIDxeMz+XSWlQ9| z@H5IuFd#0Rw&q1h>}ag~G*((nu&r7Q!(1|9b|-Qwg>m;p@%HeYxyJkUcBjN%4nXW{ z#$e}8XC$4*j~PkKWgaAMc(b4Yau}}s6;&j7H9OsA$BjF|K-2!~SNGl+>cSP|NZHio z1Q(N6;wvU0O&;>(iHFckL*DMV`Xt?k_x|07@RQ|Nom$I|3B=6&*5qH7ubG$^(J(dd9lNXYC&SKgV)l@Bjb+ literal 0 HcmV?d00001 diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java new file mode 100644 index 0000000000..a290990ba5 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ActivityBase.java @@ -0,0 +1,35 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatActivity; + +abstract class ActivityBase extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + String theme = prefs.getString("theme", "light"); + setTheme("dark".equals(theme) ? R.style.AppThemeDark : R.style.AppThemeLight); + super.onCreate(savedInstanceState); + } +} diff --git a/app/src/main/java/eu/faircode/email/ActivityCompose.java b/app/src/main/java/eu/faircode/email/ActivityCompose.java new file mode 100644 index 0000000000..261f69af15 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ActivityCompose.java @@ -0,0 +1,57 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.os.Bundle; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; + +public class ActivityCompose extends ActivityBase implements FragmentManager.OnBackStackChangedListener { + static final int LOADER_COMPOSE_GET = 1; + static final int LOADER_COMPOSE_PUT = 2; + static final int LOADER_COMPOSE_DELETE = 3; + + static final int REQUEST_CONTACT = 1; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_compose); + + getSupportFragmentManager().addOnBackStackChangedListener(this); + + if (getSupportFragmentManager().getFragments().size() == 0) { + FragmentCompose fragment = new FragmentCompose(); + Bundle args = getIntent().getExtras(); + if (args == null) + args = new Bundle(); + fragment.setArguments(args); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("compose"); + fragmentTransaction.commit(); + } + } + + @Override + public void onBackStackChanged() { + if (getSupportFragmentManager().getBackStackEntryCount() == 0) + finish(); + } +} diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java new file mode 100644 index 0000000000..23d66d96f8 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -0,0 +1,46 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.os.Bundle; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; + +public class ActivitySetup extends ActivityBase implements FragmentManager.OnBackStackChangedListener { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_setup); + + getSupportFragmentManager().addOnBackStackChangedListener(this); + + if (getSupportFragmentManager().getFragments().size() == 0) { + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, new FragmentSetup()).addToBackStack("setup"); + fragmentTransaction.commit(); + } + } + + @Override + public void onBackStackChanged() { + if (getSupportFragmentManager().getBackStackEntryCount() == 0) + finish(); + } +} diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java new file mode 100644 index 0000000000..f8221b48cc --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -0,0 +1,388 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; +import android.support.v4.content.LocalBroadcastManager; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.CheckBox; +import android.widget.ListView; +import android.widget.TextView; + +import java.util.List; + +public class ActivityView extends ActivityBase implements FragmentManager.OnBackStackChangedListener, SharedPreferences.OnSharedPreferenceChangeListener { + private DrawerLayout drawerLayout; + private ListView drawerList; + private ActionBarDrawerToggle drawerToggle; + + static final int LOADER_ACCOUNT_PUT = 1; + static final int LOADER_IDENTITY_PUT = 2; + static final int LOADER_FOLDER_PUT = 3; + + static final int REQUEST_VIEW = 1; + + static final String ACTION_VIEW_MESSAGES = BuildConfig.APPLICATION_ID + ".VIEW_MESSAGES"; + static final String ACTION_VIEW_MESSAGE = BuildConfig.APPLICATION_ID + ".VIEW_MESSAGE"; + static final String ACTION_EDIT_FOLDER = BuildConfig.APPLICATION_ID + ".EDIT_FOLDER"; + static final String ACTION_EDIT_ACCOUNT = BuildConfig.APPLICATION_ID + ".EDIT_ACCOUNT"; + static final String ACTION_EDIT_IDENTITY = BuildConfig.APPLICATION_ID + ".EDIT_IDENTITY"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_view); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setHomeButtonEnabled(true); + + drawerLayout = findViewById(R.id.drawer_layout); + drawerLayout.setScrimColor(Helper.resolveColor(this, R.attr.colorDrawerScrim)); + + drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.app_name, R.string.app_name) { + public void onDrawerClosed(View view) { + super.onDrawerClosed(view); + getSupportActionBar().setTitle(getString(R.string.app_name)); + } + + public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + getSupportActionBar().setTitle(getString(R.string.app_name)); + } + }; + drawerLayout.addDrawerListener(drawerToggle); + + drawerList = findViewById(R.id.drawer_list); + drawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + DrawerItem item = (DrawerItem) parent.getAdapter().getItem(position); + switch (item.getId()) { + case R.string.menu_unified: + onMenuUnified(); + break; + case R.string.menu_folders: + onMenuFolders(); + break; + case R.string.menu_accounts: + onMenuAccounts(); + break; + case R.string.menu_identities: + onMenuIdentities(); + break; + case R.string.menu_theme: + onMenuTheme(); + break; + case R.string.menu_setup: + onMenuSetup(); + break; + } + + if (!item.isCheckable()) + drawerLayout.closeDrawer(drawerList); + } + }); + + PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); + getSupportFragmentManager().addOnBackStackChangedListener(this); + + updateDrawer(); + + if (getSupportFragmentManager().getFragments().size() == 0) + init(); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + drawerToggle.syncState(); + } + + @Override + protected void onResume() { + super.onResume(); + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this); + IntentFilter iff = new IntentFilter(); + iff.addAction(ACTION_VIEW_MESSAGES); + iff.addAction(ACTION_VIEW_MESSAGE); + iff.addAction(ACTION_EDIT_FOLDER); + iff.addAction(ACTION_EDIT_ACCOUNT); + iff.addAction(ACTION_EDIT_IDENTITY); + lbm.registerReceiver(receiver, iff); + } + + @Override + protected void onPause() { + super.onPause(); + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this); + lbm.unregisterReceiver(receiver); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + drawerToggle.onConfigurationChanged(newConfig); + } + + @Override + public void onBackPressed() { + if (drawerLayout.isDrawerOpen(drawerList)) + drawerLayout.closeDrawer(drawerList); + else + super.onBackPressed(); + } + + @Override + protected void onDestroy() { + PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this); + super.onDestroy(); + } + + @Override + public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { + if ("eula".equals(key)) + init(); + } + + @Override + public void onBackStackChanged() { + if (getSupportFragmentManager().getBackStackEntryCount() == 0) + finish(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (drawerToggle.onOptionsItemSelected(item)) + return true; + + return false; + } + + private void init() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + if (prefs.getBoolean("eula", false)) { + drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); + + FragmentMessages fragment = new FragmentMessages(); + Bundle args = new Bundle(); + args.putLong("folder", -1); + fragment.setArguments(args); + + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("unified"); + fragmentTransaction.commit(); + + Fragment eula = getSupportFragmentManager().findFragmentByTag("eula"); + if (eula != null) + getSupportFragmentManager().beginTransaction().remove(eula).commit(); + + DB.getInstance(this).account().liveAccounts(true).observe(this, new Observer>() { + @Override + public void onChanged(@Nullable List accounts) { + if (accounts.size() == 0) + startActivity(new Intent(ActivityView.this, ActivitySetup.class)); + else + ServiceSynchronize.start(ActivityView.this); + } + }); + } else { + drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); + + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, new FragmentEula(), "eula"); + fragmentTransaction.commit(); + } + } + + public void updateDrawer() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + ArrayAdapterDrawer drawerArray = new ArrayAdapterDrawer(this, R.layout.item_drawer); + drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_unified)); + drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_folders)); + drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_accounts)); + drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_identities)); + drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_theme, "dark".equals(prefs.getString("theme", "light")))); + drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_setup)); + drawerList.setAdapter(drawerArray); + } + + private void onMenuUnified() { + FragmentMessages fragment = new FragmentMessages(); + Bundle args = new Bundle(); + args.putLong("folder", -1); + fragment.setArguments(args); + + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("unified"); + fragmentTransaction.commit(); + } + + private void onMenuFolders() { + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, new FragmentFolders()).addToBackStack("folders"); + fragmentTransaction.commit(); + } + + private void onMenuAccounts() { + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, new FragmentAccounts()).addToBackStack("accounts"); + fragmentTransaction.commit(); + } + + private void onMenuIdentities() { + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, new FragmentIdentities()).addToBackStack("identities"); + fragmentTransaction.commit(); + } + + private void onMenuTheme() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + String theme = prefs.getString("theme", "light"); + theme = ("dark".equals(theme) ? "light" : "dark"); + prefs.edit().putString("theme", theme).apply(); + recreate(); + } + + private void onMenuSetup() { + startActivity(new Intent(ActivityView.this, ActivitySetup.class)); + } + + private class DrawerItem { + private int id; + private String title; + private boolean checkable; + private boolean checked; + + DrawerItem(Context context, int title) { + this.id = title; + this.title = context.getString(title); + this.checkable = false; + this.checked = false; + } + + DrawerItem(Context context, int title, boolean checked) { + this.id = title; + this.title = context.getString(title); + this.checkable = true; + this.checked = checked; + } + + public int getId() { + return this.id; + } + + public String getTitle() { + return this.title; + } + + public boolean isCheckable() { + return this.checkable; + } + + public boolean isChecked() { + return this.checked; + } + } + + private static class ArrayAdapterDrawer extends ArrayAdapter { + private int resource; + + ArrayAdapterDrawer(@NonNull Context context, int resource) { + super(context, resource); + this.resource = resource; + } + + @NonNull + public View getView(int position, View convertView, @NonNull ViewGroup parent) { + View row; + if (null == convertView) + row = LayoutInflater.from(getContext()).inflate(this.resource, null); + else + row = convertView; + + DrawerItem item = getItem(position); + + TextView tv = row.findViewById(R.id.tvItem); + CheckBox cb = row.findViewById(R.id.cbItem); + tv.setText(item.getTitle()); + cb.setVisibility(item.isCheckable() ? View.VISIBLE : View.GONE); + cb.setChecked(item.isChecked()); + + return row; + } + } + + BroadcastReceiver receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (ACTION_VIEW_MESSAGES.equals(intent.getAction())) { + FragmentMessages fragment = new FragmentMessages(); + fragment.setArguments(intent.getExtras()); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("messages"); + fragmentTransaction.commit(); + } else if (ACTION_VIEW_MESSAGE.equals(intent.getAction())) { + FragmentMessage fragment = new FragmentMessage(); + fragment.setArguments(intent.getExtras()); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("message"); + fragmentTransaction.commit(); + } else if (ACTION_EDIT_FOLDER.equals(intent.getAction())) { + FragmentFolder fragment = new FragmentFolder(); + fragment.setArguments(intent.getExtras()); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("folder"); + fragmentTransaction.commit(); + } else if (ACTION_EDIT_ACCOUNT.equals(intent.getAction())) { + FragmentAccount fragment = new FragmentAccount(); + fragment.setArguments(intent.getExtras()); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("account"); + fragmentTransaction.commit(); + } else if (ACTION_EDIT_IDENTITY.equals(intent.getAction())) { + FragmentIdentity fragment = new FragmentIdentity(); + fragment.setArguments(intent.getExtras()); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("identity"); + fragmentTransaction.commit(); + } + } + }; +} diff --git a/app/src/main/java/eu/faircode/email/AdapterAccount.java b/app/src/main/java/eu/faircode/email/AdapterAccount.java new file mode 100644 index 0000000000..625147152c --- /dev/null +++ b/app/src/main/java/eu/faircode/email/AdapterAccount.java @@ -0,0 +1,201 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.util.DiffUtil; +import android.support.v7.util.ListUpdateCallback; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.text.Collator; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Locale; + +public class AdapterAccount extends RecyclerView.Adapter { + private Context context; + + private List all = new ArrayList<>(); + private List filtered = new ArrayList<>(); + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + View itemView; + ImageView ivPrimary; + TextView tvName; + ImageView ivSync; + TextView tvHost; + TextView tvUser; + + ViewHolder(View itemView) { + super(itemView); + + this.itemView = itemView; + ivPrimary = itemView.findViewById(R.id.ivPrimary); + tvName = itemView.findViewById(R.id.tvName); + ivSync = itemView.findViewById(R.id.ivSync); + tvHost = itemView.findViewById(R.id.tvHost); + tvUser = itemView.findViewById(R.id.tvUser); + } + + private void wire() { + itemView.setOnClickListener(this); + } + + private void unwire() { + itemView.setOnClickListener(null); + } + + @Override + public void onClick(View view) { + EntityAccount account = filtered.get(getLayoutPosition()); + + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_EDIT_ACCOUNT) + .putExtra("id", account.id)); + } + } + + AdapterAccount(Context context) { + this.context = context; + setHasStableIds(true); + } + + public void set(List accounts) { + Log.i(Helper.TAG, "Set accounts=" + accounts.size()); + + final Collator collator = Collator.getInstance(Locale.getDefault()); + collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc + + Collections.sort(accounts, new Comparator() { + @Override + public int compare(EntityAccount a1, EntityAccount a2) { + return collator.compare(a1.host, a2.host); + } + }); + + all.clear(); + all.addAll(accounts); + + DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new MessageDiffCallback(filtered, all)); + + filtered.clear(); + filtered.addAll(all); + + diff.dispatchUpdatesTo(new ListUpdateCallback() { + @Override + public void onInserted(int position, int count) { + Log.i(Helper.TAG, "Inserted @" + position + " #" + count); + } + + @Override + public void onRemoved(int position, int count) { + Log.i(Helper.TAG, "Removed @" + position + " #" + count); + } + + @Override + public void onMoved(int fromPosition, int toPosition) { + Log.i(Helper.TAG, "Moved " + fromPosition + ">" + toPosition); + } + + @Override + public void onChanged(int position, int count, Object payload) { + Log.i(Helper.TAG, "Changed @" + position + " #" + count); + } + }); + diff.dispatchUpdatesTo(AdapterAccount.this); + } + + private class MessageDiffCallback extends DiffUtil.Callback { + private List prev; + private List next; + + MessageDiffCallback(List prev, List next) { + this.prev = prev; + this.next = next; + } + + @Override + public int getOldListSize() { + return prev.size(); + } + + @Override + public int getNewListSize() { + return next.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + EntityAccount f1 = prev.get(oldItemPosition); + EntityAccount f2 = next.get(newItemPosition); + return f1.id.equals(f2.id); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + EntityAccount f1 = prev.get(oldItemPosition); + EntityAccount f2 = next.get(newItemPosition); + return f1.equals(f2); + } + } + + @Override + public long getItemId(int position) { + return filtered.get(position).id; + } + + @Override + public int getItemCount() { + return filtered.size(); + } + + @Override + @NonNull + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_account, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + holder.unwire(); + + EntityAccount account = filtered.get(position); + + holder.ivPrimary.setVisibility(account.primary ? View.VISIBLE : View.GONE); + holder.tvName.setText(account.name); + holder.ivSync.setVisibility(account.synchronize ? View.VISIBLE : View.INVISIBLE); + holder.tvHost.setText(String.format("%s:%d", account.host, account.port)); + holder.tvUser.setText(account.user); + + holder.wire(); + } +} diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java new file mode 100644 index 0000000000..b8e0943869 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -0,0 +1,238 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.content.Intent; +import android.graphics.Typeface; +import android.support.annotation.NonNull; +import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.util.DiffUtil; +import android.support.v7.util.ListUpdateCallback; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.text.Collator; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Locale; + +public class AdapterFolder extends RecyclerView.Adapter { + private Context context; + + private List all = new ArrayList<>(); + private List filtered = new ArrayList<>(); + + public class ViewHolder extends RecyclerView.ViewHolder + implements View.OnClickListener, View.OnLongClickListener { + View itemView; + TextView tvName; + TextView tvAfter; + ImageView ivSync; + TextView tvCount; + TextView tvType; + TextView tvAccount; + + ViewHolder(View itemView) { + super(itemView); + + this.itemView = itemView; + tvName = itemView.findViewById(R.id.tvName); + tvAfter = itemView.findViewById(R.id.tvAfter); + ivSync = itemView.findViewById(R.id.ivSync); + tvCount = itemView.findViewById(R.id.tvCount); + tvType = itemView.findViewById(R.id.tvType); + tvAccount = itemView.findViewById(R.id.tvAccount); + } + + private void wire() { + itemView.setOnClickListener(this); + itemView.setOnLongClickListener(this); + } + + private void unwire() { + itemView.setOnClickListener(null); + itemView.setOnLongClickListener(null); + } + + @Override + public void onClick(View view) { + TupleFolderEx folder = filtered.get(getLayoutPosition()); + + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_VIEW_MESSAGES) + .putExtra("folder", folder.id)); + } + + @Override + public boolean onLongClick(View view) { + TupleFolderEx folder = filtered.get(getLayoutPosition()); + + if (!EntityFolder.TYPE_OUTBOX.equals(folder.type)) { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_EDIT_FOLDER) + .putExtra("id", folder.id)); + return true; + } + + return false; + } + } + + AdapterFolder(Context context) { + this.context = context; + setHasStableIds(true); + } + + public void set(List folders) { + Log.i(Helper.TAG, "Set folders=" + folders.size()); + + final Collator collator = Collator.getInstance(Locale.getDefault()); + collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc + + Collections.sort(folders, new Comparator() { + @Override + public int compare(TupleFolderEx f1, TupleFolderEx f2) { + if (f1.accountName == null) + if (f2.accountName == null) + return 0; + else + return -1; + else if (f2.accountName == null) + return 1; + else + return collator.compare(f1.accountName, f2.accountName); + } + }); + + all.clear(); + all.addAll(folders); + + DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new MessageDiffCallback(filtered, all)); + + filtered.clear(); + filtered.addAll(all); + + diff.dispatchUpdatesTo(new ListUpdateCallback() { + @Override + public void onInserted(int position, int count) { + Log.i(Helper.TAG, "Inserted @" + position + " #" + count); + } + + @Override + public void onRemoved(int position, int count) { + Log.i(Helper.TAG, "Removed @" + position + " #" + count); + } + + @Override + public void onMoved(int fromPosition, int toPosition) { + Log.i(Helper.TAG, "Moved " + fromPosition + ">" + toPosition); + } + + @Override + public void onChanged(int position, int count, Object payload) { + Log.i(Helper.TAG, "Changed @" + position + " #" + count); + } + }); + diff.dispatchUpdatesTo(AdapterFolder.this); + } + + private class MessageDiffCallback extends DiffUtil.Callback { + private List prev; + private List next; + + MessageDiffCallback(List prev, List next) { + this.prev = prev; + this.next = next; + } + + @Override + public int getOldListSize() { + return prev.size(); + } + + @Override + public int getNewListSize() { + return next.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + TupleFolderEx f1 = prev.get(oldItemPosition); + TupleFolderEx f2 = next.get(newItemPosition); + return f1.id.equals(f2.id); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + TupleFolderEx f1 = prev.get(oldItemPosition); + TupleFolderEx f2 = next.get(newItemPosition); + return f1.equals(f2); + } + } + + @Override + public long getItemId(int position) { + return filtered.get(position).id; + } + + @Override + public int getItemCount() { + return filtered.size(); + } + + @Override + @NonNull + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_folder, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + holder.unwire(); + + TupleFolderEx folder = filtered.get(position); + + String name = Helper.localizeFolderName(context, folder.name); + if (folder.unseen > 0) + holder.tvName.setText(context.getString(R.string.title_folder_unseen, name, folder.unseen)); + else + holder.tvName.setText(name); + + holder.tvName.setTypeface(null, folder.unseen > 0 ? Typeface.BOLD : Typeface.NORMAL); + holder.tvAfter.setText(Integer.toString(folder.after)); + holder.tvAfter.setVisibility(folder.synchronize ? View.VISIBLE : View.INVISIBLE); + holder.ivSync.setVisibility(folder.synchronize ? View.VISIBLE : View.INVISIBLE); + holder.tvCount.setText(Integer.toString(folder.messages)); + holder.tvType.setText(folder.type); + holder.tvAccount.setText(folder.accountName); + + holder.wire(); + } +} diff --git a/app/src/main/java/eu/faircode/email/AdapterIdentity.java b/app/src/main/java/eu/faircode/email/AdapterIdentity.java new file mode 100644 index 0000000000..8802221cdb --- /dev/null +++ b/app/src/main/java/eu/faircode/email/AdapterIdentity.java @@ -0,0 +1,201 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.util.DiffUtil; +import android.support.v7.util.ListUpdateCallback; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.text.Collator; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Locale; + +public class AdapterIdentity extends RecyclerView.Adapter { + private Context context; + + private List all = new ArrayList<>(); + private List filtered = new ArrayList<>(); + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + View itemView; + ImageView ivPrimary; + TextView tvName; + ImageView ivSync; + TextView tvHost; + TextView tvUser; + + ViewHolder(View itemView) { + super(itemView); + + this.itemView = itemView; + ivPrimary = itemView.findViewById(R.id.ivPrimary); + tvName = itemView.findViewById(R.id.tvName); + ivSync = itemView.findViewById(R.id.ivSync); + tvHost = itemView.findViewById(R.id.tvHost); + tvUser = itemView.findViewById(R.id.tvUser); + } + + private void wire() { + itemView.setOnClickListener(this); + } + + private void unwire() { + itemView.setOnClickListener(null); + } + + @Override + public void onClick(View view) { + EntityIdentity identity = filtered.get(getLayoutPosition()); + + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_EDIT_IDENTITY) + .putExtra("id", identity.id)); + } + } + + AdapterIdentity(Context context) { + this.context = context; + setHasStableIds(true); + } + + public void set(List identities) { + Log.i(Helper.TAG, "Set identities=" + identities.size()); + + final Collator collator = Collator.getInstance(Locale.getDefault()); + collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc + + Collections.sort(identities, new Comparator() { + @Override + public int compare(EntityIdentity i1, EntityIdentity i2) { + return collator.compare(i1.host, i2.host); + } + }); + + all.clear(); + all.addAll(identities); + + DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new MessageDiffCallback(filtered, all)); + + filtered.clear(); + filtered.addAll(all); + + diff.dispatchUpdatesTo(new ListUpdateCallback() { + @Override + public void onInserted(int position, int count) { + Log.i(Helper.TAG, "Inserted @" + position + " #" + count); + } + + @Override + public void onRemoved(int position, int count) { + Log.i(Helper.TAG, "Removed @" + position + " #" + count); + } + + @Override + public void onMoved(int fromPosition, int toPosition) { + Log.i(Helper.TAG, "Moved " + fromPosition + ">" + toPosition); + } + + @Override + public void onChanged(int position, int count, Object payload) { + Log.i(Helper.TAG, "Changed @" + position + " #" + count); + } + }); + diff.dispatchUpdatesTo(AdapterIdentity.this); + } + + private class MessageDiffCallback extends DiffUtil.Callback { + private List prev; + private List next; + + MessageDiffCallback(List prev, List next) { + this.prev = prev; + this.next = next; + } + + @Override + public int getOldListSize() { + return prev.size(); + } + + @Override + public int getNewListSize() { + return next.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + EntityIdentity i1 = prev.get(oldItemPosition); + EntityIdentity i2 = next.get(newItemPosition); + return i1.id.equals(i2.id); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + EntityIdentity i1 = prev.get(oldItemPosition); + EntityIdentity i2 = next.get(newItemPosition); + return i1.equals(i2); + } + } + + @Override + public long getItemId(int position) { + return filtered.get(position).id; + } + + @Override + public int getItemCount() { + return filtered.size(); + } + + @Override + @NonNull + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_identity, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + holder.unwire(); + + EntityIdentity identity = filtered.get(position); + + holder.ivPrimary.setVisibility(identity.primary ? View.VISIBLE : View.GONE); + holder.tvName.setText(identity.name); + holder.ivSync.setVisibility(identity.synchronize ? View.VISIBLE : View.INVISIBLE); + holder.tvHost.setText(String.format("%s:%d", identity.host, identity.port)); + holder.tvUser.setText(identity.user); + + holder.wire(); + } +} diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java new file mode 100644 index 0000000000..ae596148eb --- /dev/null +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -0,0 +1,242 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.content.Intent; +import android.graphics.Typeface; +import android.support.annotation.NonNull; +import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.util.DiffUtil; +import android.support.v7.util.ListUpdateCallback; +import android.support.v7.widget.RecyclerView; +import android.text.format.DateUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class AdapterMessage extends RecyclerView.Adapter { + private Context context; + + private List all = new ArrayList<>(); + private List filtered = new ArrayList<>(); + + private ExecutorService executor = Executors.newCachedThreadPool(); + + enum ViewType {FOLDER, THREAD} + + private ViewType viewType; + + public class ViewHolder extends RecyclerView.ViewHolder + implements View.OnClickListener { + View itemView; + TextView tvAddress; + TextView tvTime; + TextView tvSubject; + TextView tvCount; + + ViewHolder(View itemView) { + super(itemView); + + this.itemView = itemView; + tvAddress = itemView.findViewById(R.id.tvAddress); + tvTime = itemView.findViewById(R.id.tvTime); + tvSubject = itemView.findViewById(R.id.tvSubject); + tvCount = itemView.findViewById(R.id.tvCount); + } + + private void wire() { + itemView.setOnClickListener(this); + } + + private void unwire() { + itemView.setOnClickListener(null); + } + + @Override + public void onClick(View view) { + final TupleMessageEx message = filtered.get(getLayoutPosition()); + + executor.submit(new Runnable() { + @Override + public void run() { + if (EntityFolder.TYPE_DRAFTS.equals(message.folderType)) + context.startActivity( + new Intent(context, ActivityCompose.class) + .putExtra("id", message.id)); + else { + if (!message.seen && !message.ui_seen) { + message.ui_seen = !message.ui_seen; + DB.getInstance(context).message().updateMessage(message); + EntityOperation.queue(context, message, EntityOperation.SEEN, message.ui_seen); + } + + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_VIEW_MESSAGE) + .putExtra("folder", message.folder) + .putExtra("id", message.id)); + } + } + }); + } + } + + AdapterMessage(Context context, ViewType viewType) { + this.context = context; + this.viewType = viewType; + setHasStableIds(true); + } + + public void set(List messages) { + Log.i(Helper.TAG, "Set messages=" + messages.size()); + + Collections.sort(messages, new Comparator() { + @Override + public int compare(TupleMessageEx m1, TupleMessageEx m2) { + if (EntityFolder.isOutgoing(m1.folderType)) + return -Long.compare(m1.received, m2.received); + else + return -Long.compare(m1.sent, m2.sent); + } + }); + + all.clear(); + all.addAll(messages); + + DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new MessageDiffCallback(filtered, all)); + + filtered.clear(); + filtered.addAll(all); + + diff.dispatchUpdatesTo(new ListUpdateCallback() { + @Override + public void onInserted(int position, int count) { + Log.i(Helper.TAG, "Inserted @" + position + " #" + count); + } + + @Override + public void onRemoved(int position, int count) { + Log.i(Helper.TAG, "Removed @" + position + " #" + count); + } + + @Override + public void onMoved(int fromPosition, int toPosition) { + Log.i(Helper.TAG, "Moved " + fromPosition + ">" + toPosition); + } + + @Override + public void onChanged(int position, int count, Object payload) { + Log.i(Helper.TAG, "Changed @" + position + " #" + count); + } + }); + diff.dispatchUpdatesTo(AdapterMessage.this); + } + + private class MessageDiffCallback extends DiffUtil.Callback { + private List prev; + private List next; + + MessageDiffCallback(List prev, List next) { + this.prev = prev; + this.next = next; + } + + @Override + public int getOldListSize() { + return prev.size(); + } + + @Override + public int getNewListSize() { + return next.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + TupleMessageEx m1 = prev.get(oldItemPosition); + TupleMessageEx m2 = next.get(newItemPosition); + return m1.id.equals(m2.id); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + TupleMessageEx m1 = prev.get(oldItemPosition); + TupleMessageEx m2 = next.get(newItemPosition); + return m1.equals(m2); + } + } + + @Override + public long getItemId(int position) { + return filtered.get(position).id; + } + + @Override + public int getItemCount() { + return filtered.size(); + } + + @Override + @NonNull + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_message, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + holder.unwire(); + + TupleMessageEx message = filtered.get(position); + + if (EntityFolder.isOutgoing(message.folderType)) { + holder.tvAddress.setText(message.to == null ? null : MessageHelper.getFormattedAddresses(message.to)); + holder.tvTime.setText(DateUtils.getRelativeTimeSpanString(context, message.received)); + } else { + holder.tvAddress.setText(message.from == null ? null : MessageHelper.getFormattedAddresses(message.from)); + holder.tvTime.setText(message.sent == null ? null : DateUtils.getRelativeTimeSpanString(context, message.sent)); + } + + holder.tvSubject.setText(message.subject); + if (viewType == ViewType.FOLDER) { + holder.tvCount.setText(Integer.toString(message.count)); + holder.tvCount.setVisibility(message.count > 1 ? View.VISIBLE : View.GONE); + } else + holder.tvCount.setText(Helper.localizeFolderName(context, message.folderName)); + + boolean unseen = (message.thread == null ? !message.seen : message.unseen > 0); + int visibility = (unseen ? Typeface.BOLD : Typeface.NORMAL); + holder.tvAddress.setTypeface(null, visibility); + holder.tvTime.setTypeface(null, visibility); + holder.tvSubject.setTypeface(null, visibility); + holder.tvCount.setTypeface(null, visibility); + + holder.wire(); + } +} diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java new file mode 100644 index 0000000000..7cdce92ebf --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -0,0 +1,25 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.app.Application; + +public class ApplicationEx extends Application { +} diff --git a/app/src/main/java/eu/faircode/email/DB.java b/app/src/main/java/eu/faircode/email/DB.java new file mode 100644 index 0000000000..70c27e6250 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/DB.java @@ -0,0 +1,94 @@ +package eu.faircode.email; + +import android.arch.persistence.db.SupportSQLiteDatabase; +import android.arch.persistence.room.Database; +import android.arch.persistence.room.Room; +import android.arch.persistence.room.RoomDatabase; +import android.arch.persistence.room.TypeConverter; +import android.arch.persistence.room.TypeConverters; +import android.arch.persistence.room.migration.Migration; +import android.content.Context; +import android.util.Log; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +// https://developer.android.com/topic/libraries/architecture/room.html + +@Database( + entities = { + EntityIdentity.class, + EntityAccount.class, + EntityFolder.class, + EntityMessage.class, + EntityOperation.class + }, + version = 1, + exportSchema = true +) + +@TypeConverters({DB.Converters.class}) +public abstract class DB extends RoomDatabase { + public abstract DaoIdentity identity(); + + public abstract DaoAccount account(); + + public abstract DaoFolder folder(); + + public abstract DaoMessage message(); + + public abstract DaoOperation operation(); + + private static DB sInstance; + + private static final String DB_NAME = "email.db"; + + public static synchronized DB getInstance(Context context) { + if (sInstance == null) + sInstance = migrate(Room.databaseBuilder(context.getApplicationContext(), DB.class, DB_NAME)); + return sInstance; + } + + private static DB migrate(RoomDatabase.Builder builder) { + return builder + //.addMigrations(MIGRATION_1_2) + .build(); + } + + private static final Migration MIGRATION_1_2 = new Migration(1, 2) { + @Override + public void migrate(SupportSQLiteDatabase db) { + Log.i(Helper.TAG, "DB migration from version " + startVersion + " to " + endVersion); + db.execSQL("ALTER TABLE message ADD COLUMN error TEXT"); + } + }; + + public static class Converters { + @TypeConverter + public static byte[] fromString(String value) { + return null; + } + + @TypeConverter + public static String fromBytes(byte[] value) { + return null; + } + } +} + diff --git a/app/src/main/java/eu/faircode/email/DaoAccount.java b/app/src/main/java/eu/faircode/email/DaoAccount.java new file mode 100644 index 0000000000..b4dce43a2f --- /dev/null +++ b/app/src/main/java/eu/faircode/email/DaoAccount.java @@ -0,0 +1,65 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.LiveData; +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Insert; +import android.arch.persistence.room.OnConflictStrategy; +import android.arch.persistence.room.Query; +import android.arch.persistence.room.Update; + +import java.util.List; + +@Dao +public interface DaoAccount { + @Query("SELECT * FROM account WHERE synchronize = :synchronize") + List getAccounts(boolean synchronize); + + @Query("SELECT * FROM account") + LiveData> liveAccounts(); + + @Query("SELECT * FROM account WHERE synchronize = :synchronize") + LiveData> liveAccounts(boolean synchronize); + + @Query("SELECT * FROM account WHERE id = :id") + EntityAccount getAccount(long id); + + @Query("SELECT * FROM account WHERE id = :id") + LiveData liveAccount(long id); + + @Query("SELECT * FROM account ORDER BY id LIMIT 1") + LiveData liveFirstAccount(); + + @Query("SELECT" + + " (SELECT COUNT(*) FROM account WHERE synchronize) AS accounts," + + " (SELECT COUNT(*) FROM operation JOIN message ON message.id = operation.message JOIN account ON account.id = message.account WHERE synchronize) AS operations") + LiveData liveStats(); + + @Insert(onConflict = OnConflictStrategy.REPLACE) + long insertAccount(EntityAccount account); + + @Update + void updateAccount(EntityAccount account); + + @Query("UPDATE account SET `primary` = 0") + void resetPrimary(); +} + diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java new file mode 100644 index 0000000000..cbd826a44f --- /dev/null +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -0,0 +1,90 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.LiveData; +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Insert; +import android.arch.persistence.room.OnConflictStrategy; +import android.arch.persistence.room.Query; +import android.arch.persistence.room.Update; + +import java.util.List; + +@Dao +public interface DaoFolder { + @Query("SELECT * FROM folder WHERE account = :account AND synchronize = :synchronize") + List getFolders(long account, boolean synchronize); + + @Query("SELECT * FROM folder WHERE account = :account AND type = '" + EntityFolder.TYPE_USER + "'") + List getUserFolders(long account); + + @Query("SELECT folder.*, account.name AS accountName" + + ", COUNT(message.id) AS messages" + + ", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" + + " FROM folder" + + " LEFT JOIN account ON account.id = folder.account" + + " LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" + + " GROUP BY folder.id") + LiveData> liveFolders(); + + @Query("SELECT folder.* FROM folder WHERE folder.id = :id") + LiveData liveFolder(long id); + + @Query("SELECT folder.*, account.name AS accountName" + + ", COUNT(message.id) AS messages" + + ", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" + + " FROM folder" + + " LEFT JOIN account ON account.id = folder.account" + + " LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" + + " WHERE folder.id = :id") + LiveData liveFolderEx(long id); + + @Query("SELECT * FROM folder WHERE id = :id") + EntityFolder getFolder(Long id); + + @Query("SELECT * FROM folder WHERE account = :account AND name = :name") + EntityFolder getFolder(Long account, String name); + + @Query("SELECT folder.* FROM folder" + + " JOIN account ON account.id = folder.account" + + " WHERE account.`primary` AND type = '" + EntityFolder.TYPE_DRAFTS + "' ") + EntityFolder getPrimaryDraftFolder(); + + @Query("SELECT folder.* FROM folder" + + " WHERE account = :account AND type = '" + EntityFolder.TYPE_ARCHIVE + "' ") + EntityFolder getArchiveFolder(long account); + + @Query("SELECT folder.* FROM folder" + + " WHERE account = :account AND type = '" + EntityFolder.TYPE_JUNK + "' ") + EntityFolder getSpamFolder(long account); + + @Query("SELECT * FROM folder WHERE type = '" + EntityFolder.TYPE_OUTBOX + "'") + EntityFolder getOutbox(); + + @Insert(onConflict = OnConflictStrategy.REPLACE) + long insertFolder(EntityFolder folder); + + @Update + void updateFolder(EntityFolder folder); + + @Query("DELETE FROM folder WHERE account= :account AND name = :name") + int deleteFolder(Long account, String name); +} diff --git a/app/src/main/java/eu/faircode/email/DaoIdentity.java b/app/src/main/java/eu/faircode/email/DaoIdentity.java new file mode 100644 index 0000000000..4c37252177 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/DaoIdentity.java @@ -0,0 +1,56 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.LiveData; +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Insert; +import android.arch.persistence.room.OnConflictStrategy; +import android.arch.persistence.room.Query; +import android.arch.persistence.room.Update; + +import java.util.List; + +@Dao +public interface DaoIdentity { + @Query("SELECT * FROM identity") + LiveData> liveIdentities(); + + @Query("SELECT * FROM identity WHERE synchronize = :synchronize") + LiveData> liveIdentities(boolean synchronize); + + @Query("SELECT * FROM identity WHERE id = :id") + EntityIdentity getIdentity(long id); + + @Query("SELECT * FROM identity WHERE id = :id") + LiveData liveIdentity(long id); + + @Query("SELECT * FROM identity ORDER BY id LIMIT 1") + LiveData liveFirstIdentity(); + + @Insert(onConflict = OnConflictStrategy.REPLACE) + long insertIdentity(EntityIdentity identity); + + @Update + void updateIdentity(EntityIdentity identity); + + @Query("UPDATE identity SET `primary` = 0") + void resetPrimary(); +} diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java new file mode 100644 index 0000000000..228a573396 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -0,0 +1,96 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.LiveData; +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Insert; +import android.arch.persistence.room.OnConflictStrategy; +import android.arch.persistence.room.Query; +import android.arch.persistence.room.Update; + +import java.util.List; + +@Dao +public interface DaoMessage { + @Query("SELECT message.*, folder.name as folderName, folder.type as folderType" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread) AS count" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread AND NOT m.ui_seen) AS unseen" + + " FROM folder" + + " JOIN message ON folder = folder.id" + + " WHERE folder.type = '" + EntityFolder.TYPE_INBOX + "'" + + " AND NOT ui_hide" + + " AND received IN (SELECT MAX(m.received) FROM message m WHERE m.folder = message.folder GROUP BY m.thread)") + LiveData> liveUnifiedInbox(); + + @Query("SELECT message.*, folder.name as folderName, folder.type as folderType" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread) AS count" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread AND NOT m.ui_seen) AS unseen" + + " FROM folder" + + " JOIN message ON folder = folder.id" + + " WHERE folder.id = :folder" + + " AND NOT ui_hide" + + " AND received IN (SELECT MAX(m.received) FROM message m WHERE m.folder = message.folder GROUP BY m.thread)") + LiveData> liveMessages(long folder); + + @Query("SELECT message.*, folder.name as folderName, folder.type as folderType" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread) AS count" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread AND NOT m.ui_seen) AS unseen" + + " FROM message" + + " JOIN folder ON folder.id = message.folder" + + " JOIN message m1 ON m1.id = :msgid AND m1.account = message.account AND m1.thread = message.thread" + + " WHERE NOT message.ui_hide") + LiveData> liveThread(long msgid); + + @Query("SELECT * FROM message WHERE id = :id") + EntityMessage getMessage(long id); + + @Query("SELECT * FROM message WHERE folder = :folder AND uid = :uid") + EntityMessage getMessage(long folder, long uid); + + @Query("SELECT message.*, folder.name as folderName, folder.type as folderType" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread) AS count" + + ", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread AND NOT m.ui_seen) AS unseen" + + " FROM message" + + " JOIN folder ON folder.id = message.folder" + + " WHERE message.id = :id") + LiveData liveMessage(long id); + + @Query("SELECT uid FROM message WHERE folder = :folder AND received >= :received AND NOT uid IS NULL") + List getUids(long folder, long received); + + @Insert(onConflict = OnConflictStrategy.REPLACE) + long insertMessage(EntityMessage message); + + @Update + void updateMessage(EntityMessage message); + + @Query("DELETE FROM message WHERE id = :id") + void deleteMessage(long id); + + @Query("DELETE FROM message WHERE folder = :folder AND uid = :uid") + void deleteMessage(long folder, long uid); + + @Query("DELETE FROM message WHERE folder = :folder") + int deleteMessages(long folder); + + @Query("DELETE FROM message WHERE folder = :folder AND received < :received AND NOT uid IS NULL") + int deleteMessagesBefore(long folder, long received); +} \ No newline at end of file diff --git a/app/src/main/java/eu/faircode/email/DaoOperation.java b/app/src/main/java/eu/faircode/email/DaoOperation.java new file mode 100644 index 0000000000..a3fd36f3a0 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/DaoOperation.java @@ -0,0 +1,45 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Insert; +import android.arch.persistence.room.OnConflictStrategy; +import android.arch.persistence.room.Query; + +import java.util.List; + +@Dao +public interface DaoOperation { + @Insert(onConflict = OnConflictStrategy.REPLACE) + long insertOperation(EntityOperation operation); + + @Query("SELECT operation.*, message.uid FROM operation" + + " JOIN message ON message.id = operation.message" + + " WHERE folder = :folder" + + " ORDER BY operation.id") + List getOperations(long folder); + + @Query("DELETE FROM operation WHERE id = :id") + void deleteOperation(long id); + + @Query("DELETE FROM operation WHERE message = :id AND name = :name") + int deleteOperations(long id, String name); +} diff --git a/app/src/main/java/eu/faircode/email/EntityAccount.java b/app/src/main/java/eu/faircode/email/EntityAccount.java new file mode 100644 index 0000000000..6ee412a497 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/EntityAccount.java @@ -0,0 +1,64 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.persistence.room.Entity; +import android.arch.persistence.room.PrimaryKey; +import android.support.annotation.NonNull; + +@Entity( + tableName = EntityAccount.TABLE_NAME, + indices = { + } +) +public class EntityAccount { + static final String TABLE_NAME = "account"; + + @PrimaryKey(autoGenerate = true) + public Long id; + public String name; + @NonNull + public String host; // IMAP + @NonNull + public Integer port; + @NonNull + public String user; + @NonNull + public String password; + @NonNull + public Boolean primary; + @NonNull + public Boolean synchronize; + + @Override + public boolean equals(Object obj) { + if (obj instanceof EntityAccount) { + EntityAccount other = (EntityAccount) obj; + return (this.name == null ? other.name == null : this.name.equals(other.name) && + this.host.equals(other.host) && + this.port.equals(other.port) && + this.user.equals(other.user) && + this.password.equals(other.password) && + this.primary.equals(other.primary) && + this.synchronize.equals(other.synchronize)); + } else + return false; + } +} diff --git a/app/src/main/java/eu/faircode/email/EntityAttachment.java b/app/src/main/java/eu/faircode/email/EntityAttachment.java new file mode 100644 index 0000000000..f99952314e --- /dev/null +++ b/app/src/main/java/eu/faircode/email/EntityAttachment.java @@ -0,0 +1,50 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.persistence.room.Entity; +import android.arch.persistence.room.ForeignKey; +import android.arch.persistence.room.Index; +import android.arch.persistence.room.PrimaryKey; +import android.support.annotation.NonNull; + +import static android.arch.persistence.room.ForeignKey.CASCADE; + +@Entity( + tableName = EntityAttachment.TABLE_NAME, + foreignKeys = { + @ForeignKey(childColumns = "message", entity = EntityMessage.class, parentColumns = "id", onDelete = CASCADE) + }, + indices = { + @Index(value = {"message"}) + } +) +public class EntityAttachment { + static final String TABLE_NAME = "attachment"; + + @PrimaryKey(autoGenerate = true) + public Long id; + @NonNull + public Long message; + @NonNull + public String type; + public String name; + public byte[] content; +} diff --git a/app/src/main/java/eu/faircode/email/EntityFolder.java b/app/src/main/java/eu/faircode/email/EntityFolder.java new file mode 100644 index 0000000000..d5e709cd67 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/EntityFolder.java @@ -0,0 +1,100 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.persistence.room.Entity; +import android.arch.persistence.room.ForeignKey; +import android.arch.persistence.room.Index; +import android.arch.persistence.room.PrimaryKey; +import android.support.annotation.NonNull; + +import java.util.Arrays; +import java.util.List; + +import static android.arch.persistence.room.ForeignKey.CASCADE; + +@Entity( + tableName = EntityFolder.TABLE_NAME, + foreignKeys = { + @ForeignKey(childColumns = "account", entity = EntityAccount.class, parentColumns = "id", onDelete = CASCADE) + }, + indices = { + @Index(value = {"account", "name"}, unique = true), + @Index(value = {"account"}), + @Index(value = {"name"}), + @Index(value = {"type"}) + } +) +public class EntityFolder { + static final String TABLE_NAME = "folder"; + + static final String TYPE_INBOX = "Inbox"; + static final String TYPE_OUTBOX = "Outbox"; + static final String TYPE_ARCHIVE = "All"; + static final String TYPE_DRAFTS = "Drafts"; + static final String TYPE_TRASH = "Trash"; + static final String TYPE_JUNK = "Junk"; + static final String TYPE_SENT = "Sent"; + static final String TYPE_USER = "User"; + + static final List STANDARD_FOLDER_ATTR = Arrays.asList( + "All", + "Drafts", + "Trash", + "Junk", + "Sent" + ); + static final List STANDARD_FOLDER_TYPE = Arrays.asList( + TYPE_ARCHIVE, + TYPE_DRAFTS, + TYPE_TRASH, + TYPE_JUNK, + TYPE_SENT + ); // Must match STANDARD_FOLDER_ATTR + + static boolean isOutgoing(String type) { + return (TYPE_OUTBOX.equals(type) || TYPE_DRAFTS.equals(type) || TYPE_SENT.equals(type)); + } + + @PrimaryKey(autoGenerate = true) + public Long id; + public Long account; // Outbox = null + @NonNull + public String name; + @NonNull + public String type; + @NonNull + public Boolean synchronize; + @NonNull + public Integer after; // days + + @Override + public boolean equals(Object obj) { + if (obj instanceof EntityFolder) { + EntityFolder other = (EntityFolder) obj; + return (this.account == null ? other.account == null : this.account.equals(other.account) && + this.name.equals(other.name) && + this.type.equals(other.type) && + this.synchronize.equals(other.synchronize) && + this.after.equals(other.after)); + } else + return false; + } +} diff --git a/app/src/main/java/eu/faircode/email/EntityIdentity.java b/app/src/main/java/eu/faircode/email/EntityIdentity.java new file mode 100644 index 0000000000..6c96207b2d --- /dev/null +++ b/app/src/main/java/eu/faircode/email/EntityIdentity.java @@ -0,0 +1,78 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.persistence.room.Entity; +import android.arch.persistence.room.PrimaryKey; +import android.support.annotation.NonNull; + +@Entity( + tableName = EntityIdentity.TABLE_NAME, + indices = { + } +) +public class EntityIdentity { + static final String TABLE_NAME = "identity"; + + @PrimaryKey(autoGenerate = true) + public Long id; + @NonNull + public String name; + @NonNull + public String email; + public String replyto; + @NonNull + public String host; // SMTP + @NonNull + public Integer port; + @NonNull + public Boolean starttls; + @NonNull + public String user; + @NonNull + public String password; + @NonNull + public Boolean primary; + @NonNull + public Boolean synchronize; + + @Override + public boolean equals(Object obj) { + if (obj instanceof EntityIdentity) { + EntityIdentity other = (EntityIdentity) obj; + return (this.name.equals(other.name) && + this.email.equals(other.email) && + this.replyto == null ? other.replyto == null : this.replyto.equals(other.replyto) && + this.host.equals(other.host) && + this.port.equals(other.port) && + this.starttls.equals(other.starttls) && + this.user.equals(other.user) && + this.password.equals(other.password) && + this.primary.equals(other.primary) && + this.synchronize.equals(other.synchronize)); + } else + return false; + } + + @Override + public String toString() { + return name; + } +} diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java new file mode 100644 index 0000000000..1ec701f64b --- /dev/null +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -0,0 +1,111 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.persistence.room.Entity; +import android.arch.persistence.room.ForeignKey; +import android.arch.persistence.room.Index; +import android.arch.persistence.room.PrimaryKey; +import android.support.annotation.NonNull; + +import static android.arch.persistence.room.ForeignKey.CASCADE; + +// https://developer.android.com/training/data-storage/room/defining-data + +@Entity( + tableName = EntityMessage.TABLE_NAME, + foreignKeys = { + @ForeignKey(childColumns = "account", entity = EntityAccount.class, parentColumns = "id", onDelete = CASCADE), + @ForeignKey(childColumns = "folder", entity = EntityFolder.class, parentColumns = "id", onDelete = CASCADE), + @ForeignKey(childColumns = "identity", entity = EntityIdentity.class, parentColumns = "id", onDelete = CASCADE), + @ForeignKey(childColumns = "replying", entity = EntityMessage.class, parentColumns = "id", onDelete = CASCADE) + }, + indices = { + @Index(value = {"account"}), + @Index(value = {"folder"}), + @Index(value = {"identity"}), + @Index(value = {"replying"}), + @Index(value = {"folder", "uid"}, unique = true), + @Index(value = {"thread"}), + @Index(value = {"received"}) + // ui_seen? ui_seen? + } +) +public class EntityMessage { + static final String TABLE_NAME = "message"; + + @PrimaryKey(autoGenerate = true) + public Long id; + public Long account; // performance, compose = null + @NonNull + public Long folder; + public Long identity; + public Long replying; + public Long uid; // compose = null + public String msgid; + public String references; + public String inreplyto; + public String thread; // compose = null + public String from; + public String to; + public String cc; + public String bcc; + public String reply; + public String subject; + public String body; + public Long sent; // compose = null + @NonNull + public Long received; // compose = stored + @NonNull + public Boolean seen; + @NonNull + public Boolean ui_seen; + @NonNull + public Boolean ui_hide; + + @Override + public boolean equals(Object obj) { + if (obj instanceof EntityMessage) { + EntityMessage other = (EntityMessage) obj; + return (this.account == null ? other.account == null : this.account.equals(other.account) && + this.folder.equals(other.folder) && + this.identity == null ? other.identity == null : this.identity.equals(other.identity) && + this.replying == null ? other.replying == null : this.replying.equals(other.replying) && + this.uid == null ? other.uid == null : this.uid.equals(other.uid) && + this.msgid == null ? other.msgid == null : this.msgid.equals(other.msgid) && + this.references == null ? other.references == null : this.references.equals(other.references) && + this.inreplyto == null ? other.inreplyto == null : this.inreplyto.equals(other.inreplyto) && + this.thread == null ? other.thread == null : thread.equals(other.thread) && + this.from == null ? other.from == null : this.from.equals(other.from) && + this.to == null ? other.to == null : this.to.equals(other.to) && + this.cc == null ? other.cc == null : this.cc.equals(other.cc) && + this.bcc == null ? other.bcc == null : this.bcc.equals(other.bcc) && + this.reply == null ? other.reply == null : this.reply.equals(other.reply) && + this.subject == null ? other.subject == null : this.subject.equals(other.subject) && + this.body == null ? other.body == null : this.body.equals(other.body) && + this.sent == null ? other.sent == null : this.sent.equals(other.sent) && + this.received.equals(other.received) && + this.seen.equals(other.seen) && + this.ui_seen.equals(other.ui_seen) && + this.ui_hide.equals(other.ui_hide)); + } + return false; + } +} diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java new file mode 100644 index 0000000000..ad135224ef --- /dev/null +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -0,0 +1,95 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.persistence.room.Entity; +import android.arch.persistence.room.ForeignKey; +import android.arch.persistence.room.Index; +import android.arch.persistence.room.PrimaryKey; +import android.content.Context; +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.v4.content.LocalBroadcastManager; +import android.util.Log; + +import org.json.JSONArray; + +import static android.arch.persistence.room.ForeignKey.CASCADE; + +@Entity( + tableName = EntityOperation.TABLE_NAME, + foreignKeys = { + @ForeignKey(childColumns = "message", entity = EntityMessage.class, parentColumns = "id", onDelete = CASCADE) + }, + indices = { + @Index(value = {"message"}) + } +) +public class EntityOperation { + static final String TABLE_NAME = "operation"; + + @PrimaryKey(autoGenerate = true) + public Long id; + @NonNull + public Long message; + @NonNull + public String name; + public String args; + + public static final String SEEN = "seen"; + public static final String ADD = "add"; + public static final String MOVE = "move"; + public static final String DELETE = "delete"; + public static final String SEND = "send"; + + static void queue(Context context, EntityMessage message, String name) { + JSONArray jsonArray = new JSONArray(); + queue(context, message, name, jsonArray); + } + + static void queue(Context context, EntityMessage message, String name, Object value) { + JSONArray jsonArray = new JSONArray(); + jsonArray.put(value); + queue(context, message, name, jsonArray); + } + + private static void queue(Context context, EntityMessage message, String name, JSONArray jsonArray) { + DaoOperation dao = DB.getInstance(context).operation(); + + int purged = 0; + if (SEEN.equals(name)) + purged = dao.deleteOperations(message.id, name); + + EntityOperation operation = new EntityOperation(); + operation.message = message.id; + operation.name = name; + operation.args = jsonArray.toString(); + operation.id = dao.insertOperation(operation); + + Log.i(Helper.TAG, "Queued op=" + operation.id + "/" + name + + " args=" + operation.args + + " msg=" + message.folder + "/" + message.id + " uid=" + message.uid + + " purged=" + purged); + + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ServiceSynchronize.ACTION_PROCESS_OPERATIONS + message.folder)); + } +} diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java new file mode 100644 index 0000000000..63d6e4aa05 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -0,0 +1,319 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.content.Context; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.LoaderManager; +import android.support.v4.content.AsyncTaskLoader; +import android.support.v4.content.Loader; +import android.support.v7.app.AppCompatActivity; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.Spinner; +import android.widget.Toast; + +import com.sun.mail.imap.IMAPFolder; +import com.sun.mail.imap.IMAPStore; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +import javax.mail.Folder; +import javax.mail.MessagingException; +import javax.mail.Session; + +public class FragmentAccount extends Fragment { + private List providers; + + private EditText etName; + private Spinner spProfile; + private EditText etHost; + private EditText etPort; + private EditText etUser; + private EditText etPassword; + private CheckBox cbPrimary; + private CheckBox cbSynchronize; + private Button btnOk; + private ProgressBar pbCheck; + + static final int DEFAULT_INBOX_SYNC = 30; + static final int DEFAULT_STANDARD_SYNC = 7; + + private static final List standard_sync = Arrays.asList( + EntityFolder.TYPE_DRAFTS, + EntityFolder.TYPE_SENT + ); + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_account, container, false); + + // Get arguments + Bundle args = getArguments(); + final long id = args.getLong("id", -1); + + // Get providers + providers = Provider.loadProfiles(getContext()); + providers.add(0, new Provider(getString(R.string.title_custom))); + + // Get controls + spProfile = view.findViewById(R.id.spProvider); + etName = view.findViewById(R.id.etName); + etHost = view.findViewById(R.id.etHost); + etPort = view.findViewById(R.id.etPort); + etUser = view.findViewById(R.id.etUser); + etPassword = view.findViewById(R.id.etPassword); + cbPrimary = view.findViewById(R.id.cbPrimary); + cbSynchronize = view.findViewById(R.id.cbSynchronize); + btnOk = view.findViewById(R.id.btnOk); + pbCheck = view.findViewById(R.id.pbCheck); + + // Wire controls + + spProfile.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + Provider provider = providers.get(position); + if (provider.imap_port != 0) { + etName.setText(provider.name); + etHost.setText(provider.imap_host); + etPort.setText(Integer.toString(provider.imap_port)); + } + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + } + }); + + ArrayAdapter adapter = new ArrayAdapter<>(getContext(), R.layout.spinner_item, providers); + adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); + spProfile.setAdapter(adapter); + + pbCheck.setVisibility(View.GONE); + + btnOk.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + btnOk.setEnabled(false); + pbCheck.setVisibility(View.VISIBLE); + + Bundle args = new Bundle(); + args.putLong("id", id); + args.putString("name", etName.getText().toString()); + args.putString("host", etHost.getText().toString()); + args.putString("port", etPort.getText().toString()); + args.putString("user", etUser.getText().toString()); + args.putString("password", etPassword.getText().toString()); + args.putBoolean("primary", cbPrimary.isChecked()); + args.putBoolean("synchronize", cbSynchronize.isChecked()); + + getLoaderManager().restartLoader(ActivityView.LOADER_ACCOUNT_PUT, args, putLoaderCallbacks).forceLoad(); + } + }); + + DB.getInstance(getContext()).account().liveAccount(id).observe(this, new Observer() { + @Override + public void onChanged(@Nullable EntityAccount account) { + etName.setText(account == null ? null : account.name); + etHost.setText(account == null ? null : account.host); + etPort.setText(account == null ? null : Long.toString(account.port)); + etUser.setText(account == null ? null : account.user); + etPassword.setText(account == null ? null : account.password); + cbPrimary.setChecked(account == null ? true : account.primary); + cbSynchronize.setChecked(account == null ? true : account.synchronize); + } + }); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_edit_account); + } + + private static class PutLoader extends AsyncTaskLoader { + private Bundle args; + + PutLoader(Context context) { + super(context); + } + + void setArgs(Bundle args) { + this.args = args; + } + + @Override + public Throwable loadInBackground() { + try { + String name = args.getString("name"); + String host = args.getString("host"); + String port = args.getString("port"); + String user = args.getString("user"); + + if (TextUtils.isEmpty(name)) + name = host + "/" + user; + if (TextUtils.isEmpty(port)) + port = "0"; + + DB db = DB.getInstance(getContext()); + EntityAccount account = db.account().getAccount(args.getLong("id")); + boolean update = (account != null); + if (account == null) + account = new EntityAccount(); + account.name = name; + account.host = host; + account.port = Integer.parseInt(port); + account.user = user; + account.password = Objects.requireNonNull(args.getString("password")); + account.primary = args.getBoolean("primary"); + account.synchronize = args.getBoolean("synchronize"); + + // Check IMAP server + List folders = new ArrayList<>(); + if (account.synchronize) { + Session isession = Session.getDefaultInstance(MessageHelper.getSessionProperties(), null); + IMAPStore istore = null; + try { + istore = (IMAPStore) isession.getStore("imaps"); + istore.connect(account.host, account.port, account.user, account.password); + + if (!istore.hasCapability("IDLE")) + throw new MessagingException(getContext().getString(R.string.title_no_idle)); + + boolean drafts = false; + for (Folder ifolder : istore.getDefaultFolder().list("*")) { + String[] attrs = ((IMAPFolder) ifolder).getAttributes(); + for (String attr : attrs) { + if (attr.startsWith("\\")) { + int index = EntityFolder.STANDARD_FOLDER_ATTR.indexOf(attr.substring(1)); + if (index >= 0) { + EntityFolder folder = new EntityFolder(); + folder.name = ifolder.getFullName(); + folder.type = EntityFolder.STANDARD_FOLDER_TYPE.get(index); + folder.synchronize = standard_sync.contains(folder.type); + folder.after = DEFAULT_STANDARD_SYNC; + folders.add(folder); + + Log.i(Helper.TAG, "Standard folder=" + folder.name + + " type=" + folder.type + " attr=" + TextUtils.join(",", attrs)); + + if (EntityFolder.TYPE_DRAFTS.equals(folder.type)) + drafts = true; + + break; + } + } + } + } + if (!drafts) + throw new MessagingException(getContext().getString(R.string.title_no_drafts)); + } finally { + if (istore != null) + istore.close(); + } + } + + if (account.primary) + db.account().resetPrimary(); + + if (update) + db.account().updateAccount(account); + else + try { + db.beginTransaction(); + account.id = db.account().insertAccount(account); + + EntityFolder inbox = new EntityFolder(); + inbox.name = "INBOX"; + inbox.type = EntityFolder.TYPE_INBOX; + inbox.synchronize = true; + inbox.after = DEFAULT_INBOX_SYNC; + folders.add(0, inbox); + + for (EntityFolder folder : folders) { + folder.account = account.id; + Log.i(Helper.TAG, "Creating folder=" + folder.name + " (" + folder.type + ")"); + folder.id = db.folder().insertFolder(folder); + } + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + ServiceSynchronize.restart(getContext(), "account"); + + return null; + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + return ex; + } + } + } + + private LoaderManager.LoaderCallbacks putLoaderCallbacks = new LoaderManager.LoaderCallbacks() { + @NonNull + @Override + public Loader onCreateLoader(int id, Bundle args) { + PutLoader loader = new PutLoader(getActivity()); + loader.setArgs(args); + return loader; + } + + @Override + public void onLoadFinished(@NonNull Loader loader, Throwable ex) { + getLoaderManager().destroyLoader(loader.getId()); + + btnOk.setEnabled(true); + pbCheck.setVisibility(View.GONE); + + if (ex == null) + getFragmentManager().popBackStack(); + else { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + Toast.makeText(getContext(), Helper.formatThrowable(ex), Toast.LENGTH_LONG).show(); + } + } + + @Override + public void onLoaderReset(@NonNull Loader loader) { + } + }; +} diff --git a/app/src/main/java/eu/faircode/email/FragmentAccounts.java b/app/src/main/java/eu/faircode/email/FragmentAccounts.java new file mode 100644 index 0000000000..d4de3490e5 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentAccounts.java @@ -0,0 +1,102 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.constraint.Group; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; + +import java.util.List; + +public class FragmentAccounts extends Fragment { + private RecyclerView rvAccount; + private ProgressBar pbWait; + private Group grpReady; + private FloatingActionButton fab; + + private AdapterAccount adapter; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_accounts, container, false); + + // Get controls + rvAccount = view.findViewById(R.id.rvAccount); + pbWait = view.findViewById(R.id.pbWait); + grpReady = view.findViewById(R.id.grpReady); + fab = view.findViewById(R.id.fab); + + // Wire controls + + rvAccount.setHasFixedSize(false); + LinearLayoutManager llm = new LinearLayoutManager(getContext()); + rvAccount.setLayoutManager(llm); + + adapter = new AdapterAccount(getContext()); + rvAccount.setAdapter(adapter); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + FragmentAccount fragment = new FragmentAccount(); + fragment.setArguments(new Bundle()); + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("account"); + fragmentTransaction.commit(); + } + }); + + // Initialize + grpReady.setVisibility(View.GONE); + pbWait.setVisibility(View.VISIBLE); + + // Observe accounts + DB.getInstance(getContext()).account().liveAccounts().observe(this, new Observer>() { + @Override + public void onChanged(@Nullable List accounts) { + adapter.set(accounts); + + pbWait.setVisibility(View.GONE); + grpReady.setVisibility(View.VISIBLE); + } + }); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_list_accounts); + } +} diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java new file mode 100644 index 0000000000..95c23b7917 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -0,0 +1,585 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.os.Bundle; +import android.provider.ContactsContract; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.constraint.Group; +import android.support.design.widget.BottomNavigationView; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v4.app.LoaderManager; +import android.support.v4.content.AsyncTaskLoader; +import android.support.v4.content.Loader; +import android.support.v7.app.AppCompatActivity; +import android.text.Html; +import android.text.TextUtils; +import android.text.method.LinkMovementMethod; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.Spinner; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.List; + +import javax.mail.Address; +import javax.mail.MessagingException; +import javax.mail.internet.InternetAddress; + +import static android.app.Activity.RESULT_OK; + +public class FragmentCompose extends Fragment { + private boolean once = false; + private String thread = null; + private long rid = -1; + + private Spinner spFrom; + private ImageView ivIdentyAdd; + private EditText etTo; + private ImageView ivContactAdd; + private EditText etSubject; + private EditText etBody; + private BottomNavigationView bottom_navigation; + private ProgressBar pbWait; + private Group grpReady; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_compose, container, false); + + // Get arguments + Bundle args = getArguments(); + String action = args.getString("action"); + final long id = (TextUtils.isEmpty(action) ? args.getLong("id") : -1); + + // Get controls + spFrom = view.findViewById(R.id.spFrom); + ivIdentyAdd = view.findViewById(R.id.ivIdentyAdd); + etTo = view.findViewById(R.id.etTo); + ivContactAdd = view.findViewById(R.id.ivContactAdd); + etSubject = view.findViewById(R.id.etSubject); + etBody = view.findViewById(R.id.etBody); + bottom_navigation = view.findViewById(R.id.bottom_navigation); + pbWait = view.findViewById(R.id.pbWait); + grpReady = view.findViewById(R.id.grpReady); + + etBody.setMovementMethod(LinkMovementMethod.getInstance()); + + // Wire controls + + ivIdentyAdd.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Bundle args = new Bundle(); + args.putLong("id", -1); + FragmentIdentity fragment = new FragmentIdentity(); + fragment.setArguments(args); + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("identity"); + fragmentTransaction.commit(); + } + }); + + ivContactAdd.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Email.CONTENT_URI); + startActivityForResult(intent, ActivityCompose.REQUEST_CONTACT); + } + }); + + bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + bottom_navigation.setEnabled(false); + + switch (item.getItemId()) { + case R.id.action_delete: + actionDelete(id); + return true; + case R.id.action_save: + actionPut(id, false); + return true; + case R.id.action_send: + actionPut(id, true); + return true; + } + + return false; + } + }); + + // Initialize + grpReady.setVisibility(View.GONE); + pbWait.setVisibility(View.VISIBLE); + bottom_navigation.getMenu().findItem(R.id.action_delete).setEnabled(id > 0); + bottom_navigation.setEnabled(false); + + DB.getInstance(getContext()).identity().liveIdentities(true).observe(getActivity(), new Observer>() { + @Override + public void onChanged(@Nullable final List identities) { + Collections.sort(identities, new Comparator() { + @Override + public int compare(EntityIdentity i1, EntityIdentity i2) { + return i1.name.compareTo(i2.name); + } + }); + + ArrayAdapter adapter = new ArrayAdapter<>(getContext(), R.layout.spinner_item, identities); + adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); + spFrom.setAdapter(adapter); + + // Select primary identity, also for saved drafts + for (int pos = 0; pos < identities.size(); pos++) + if (identities.get(pos).primary) { + spFrom.setSelection(pos); + break; + } + } + }); + + getLoaderManager().restartLoader(ActivityCompose.LOADER_COMPOSE_GET, getArguments(), getLoaderCallbacks).forceLoad(); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_compose); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == ActivityCompose.REQUEST_CONTACT && resultCode == RESULT_OK) { + Cursor cursor = null; + try { + cursor = getContext().getContentResolver().query(data.getData(), + new String[]{ + ContactsContract.CommonDataKinds.Email.ADDRESS, + ContactsContract.Contacts.DISPLAY_NAME + }, + null, null, null); + if (cursor.moveToFirst()) { + int colEmail = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS); + int colName = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); + String email = cursor.getString(colEmail); + String name = cursor.getString(colName); + + InternetAddress address = new InternetAddress(email, name); + StringBuilder sb = new StringBuilder(etTo.getText().toString()); + if (sb.length() > 0) + sb.append("; "); + sb.append(address.toString()); + etTo.setText(sb.toString()); + } + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + Toast.makeText(getContext(), ex.getMessage(), Toast.LENGTH_LONG).show(); + } finally { + if (cursor != null) + cursor.close(); + } + } + } + + private void actionDelete(final long id) { + Bundle args = new Bundle(); + args.putLong("id", id); + getLoaderManager().restartLoader(ActivityCompose.LOADER_COMPOSE_DELETE, args, deleteLoaderCallbacks).forceLoad(); + } + + private void actionPut(long id, boolean send) { + bottom_navigation.setEnabled(false); + + EntityIdentity identity = (EntityIdentity) spFrom.getSelectedItem(); + + Bundle args = new Bundle(); + args.putLong("id", id); + args.putLong("iid", identity == null ? -1 : identity.id); + args.putString("thread", FragmentCompose.this.thread); + args.putLong("rid", FragmentCompose.this.rid); + args.putString("to", etTo.getText().toString()); + args.putString("subject", etSubject.getText().toString()); + args.putString("body", etBody.getText().toString()); + args.putBoolean("send", send); + + getLoaderManager().restartLoader(ActivityCompose.LOADER_COMPOSE_PUT, args, putLoaderCallbacks).forceLoad(); + } + + private static class GetLoader extends AsyncTaskLoader { + private Bundle args; + + GetLoader(Context context) { + super(context); + } + + void setArgs(Bundle args) { + this.args = args; + } + + @Nullable + @Override + public Bundle loadInBackground() { + String action = args.getString("action"); + long id = args.getLong("id", -1); + EntityMessage msg = DB.getInstance(getContext()).message().getMessage(id); + + Bundle result = new Bundle(); + result.putString("action", action); + + if (msg != null) { + if (msg.identity != null) + result.putLong("iid", msg.identity); + if (msg.replying != null) + result.putLong("rid", msg.replying); + result.putString("thread", msg.thread); + result.putString("subject", msg.subject); + result.putString("body", msg.body); + } + + if (TextUtils.isEmpty(action)) { + if (msg != null) { + result.putString("from", msg.from); + result.putString("to", msg.to); + } + } else if ("reply".equals(action)) { + String to = null; + if (msg != null) + try { + Address[] reply = MessageHelper.decodeAddresses(msg.reply); + to = (reply.length == 0 ? msg.from : msg.reply); + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + result.putLong("rid", msg.id); + result.putString("from", msg.to); + result.putString("to", to); + } else if ("reply_all".equals(action)) { + String to = null; + if (msg != null) { + try { + Address[] from = MessageHelper.decodeAddresses(msg.from); + Address[] reply = MessageHelper.decodeAddresses(msg.reply); + Address[] cc = MessageHelper.decodeAddresses(msg.cc); + List
addresses = new ArrayList<>(); + addresses.addAll(Arrays.asList(reply.length == 0 ? from : reply)); + addresses.addAll(Arrays.asList(cc)); + to = MessageHelper.encodeAddresses(addresses.toArray(new Address[0])); + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + } + result.putLong("rid", msg.id); + result.putString("from", msg.to); + result.putString("to", to); + } else if ("forward".equals(action)) { + result.putString("from", msg.to); + result.putString("to", null); + } + + return result; + } + } + + private LoaderManager.LoaderCallbacks getLoaderCallbacks = new LoaderManager.LoaderCallbacks() { + @NonNull + @Override + public Loader onCreateLoader(int id, @Nullable Bundle args) { + GetLoader loader = new GetLoader(getActivity()); + loader.setArgs(args); + return loader; + } + + @Override + public void onLoadFinished(@NonNull Loader loader, final Bundle result) { + getLoaderManager().destroyLoader(loader.getId()); + + long iid = result.getLong("iid", -1); + long rid = result.getLong("rid", -1); + String thread = result.getString("thread"); + String from = result.getString("from"); + String to = result.getString("to"); + String subject = result.getString("subject"); + String body = result.getString("body"); + String action = result.getString("action"); + + pbWait.setVisibility(View.GONE); + grpReady.setVisibility(View.VISIBLE); + + FragmentCompose.this.thread = thread; + FragmentCompose.this.rid = rid; + + ArrayAdapter adapter = (ArrayAdapter) spFrom.getAdapter(); + if (adapter != null) + for (int pos = 0; pos < adapter.getCount(); pos++) { + EntityIdentity identity = (EntityIdentity) adapter.getItem(pos); + if (iid < 0 ? identity.primary : iid == identity.id) { + spFrom.setSelection(pos); + break; + } + } + + if (!once) { + // Prevent changed fields from being overwritten + once = true; + + if (action == null) { + if (to != null) + etTo.setText(TextUtils.join(", ", MessageHelper.decodeAddresses(to))); + etSubject.setText(subject); + if (body != null) + etBody.setText(Html.fromHtml(HtmlHelper.sanitize(getContext(), body, false))); + } else if ("reply".equals(action) || "reply_all".equals(action)) { + etTo.setText(TextUtils.join(", ", MessageHelper.decodeAddresses(to))); + String text = String.format("

%s %s:

%s", + Html.escapeHtml(new Date().toString()), + Html.escapeHtml(TextUtils.join(", ", MessageHelper.decodeAddresses(from))), + HtmlHelper.sanitize(getContext(), body, true)); + etSubject.setText(getContext().getString(R.string.title_subject_reply, subject)); + etBody.setText(Html.fromHtml(text)); + } else if ("forward".equals(action)) { + String text = String.format("

%s %s:

%s", + Html.escapeHtml(new Date().toString()), + Html.escapeHtml(TextUtils.join(", ", MessageHelper.decodeAddresses(from))), + HtmlHelper.sanitize(getContext(), body, true)); + etSubject.setText(getContext().getString(R.string.title_subject_forward, subject)); + etBody.setText(Html.fromHtml(text)); + } + } + + bottom_navigation.setEnabled(true); + } + + @Override + public void onLoaderReset(@NonNull Loader loader) { + } + }; + + private static class DeleteLoader extends AsyncTaskLoader { + private Bundle args; + + DeleteLoader(Context context) { + super(context); + } + + void setArgs(Bundle args) { + this.args = args; + } + + @Override + public Throwable loadInBackground() { + long id = args.getLong("id"); + DaoMessage message = DB.getInstance(getContext()).message(); + EntityMessage draft = message.getMessage(id); + if (draft != null) { + draft.ui_hide = true; + message.updateMessage(draft); + EntityOperation.queue(getContext(), draft, EntityOperation.DELETE); + } + return null; + } + } + + private LoaderManager.LoaderCallbacks deleteLoaderCallbacks = new LoaderManager.LoaderCallbacks() { + @NonNull + @Override + public Loader onCreateLoader(int id, @Nullable Bundle args) { + DeleteLoader loader = new DeleteLoader(getActivity()); + loader.setArgs(args); + return loader; + } + + @Override + public void onLoadFinished(@NonNull Loader loader, Throwable ex) { + getLoaderManager().destroyLoader(loader.getId()); + + if (ex == null) { + getFragmentManager().popBackStack(); + Toast.makeText(getContext(), R.string.title_deleted, Toast.LENGTH_LONG).show(); + } + } + + @Override + public void onLoaderReset(@NonNull Loader loader) { + } + }; + + private static class PutLoader extends AsyncTaskLoader { + private Bundle args; + + PutLoader(Context context) { + super(context); + } + + void setArgs(Bundle args) { + this.args = args; + } + + @Override + public Throwable loadInBackground() { + long id = args.getLong("id"); + boolean send = args.getBoolean("send", false); + Log.i(Helper.TAG, "Put load id=" + id + " send=" + send); + try { + DB db = DB.getInstance(getContext()); + DaoMessage message = db.message(); + DaoIdentity identity = db.identity(); + DaoFolder folder = db.folder(); + + // Get data + EntityMessage draft = message.getMessage(id); + EntityIdentity ident = identity.getIdentity(args.getLong("iid")); + EntityFolder drafts = db.folder().getPrimaryDraftFolder(); + if (drafts == null) + throw new Throwable(getContext().getString(R.string.title_no_primary_drafts)); + + long rid = args.getLong("rid", -1); + String thread = args.getString("thread"); + String to = args.getString("to"); + String body = args.getString("body"); + String subject = args.getString("subject"); + + Address afrom = (ident == null ? null : new InternetAddress(ident.email, ident.name)); + Address ato[] = (TextUtils.isEmpty(to) ? new Address[0] : InternetAddress.parse(to)); + + // Build draft + boolean update = (draft != null); + if (draft == null) + draft = new EntityMessage(); + draft.account = drafts.account; + draft.folder = drafts.id; + draft.identity = (ident == null ? null : ident.id); + draft.replying = (rid < 0 ? null : rid); + draft.thread = thread; + draft.from = (afrom == null ? null : MessageHelper.encodeAddresses(new Address[]{afrom})); + draft.to = (ato == null ? null : MessageHelper.encodeAddresses(ato)); + draft.subject = subject; + draft.body = "
" + body.replaceAll("\\r?\\n", "
") + "
"; + draft.received = new Date().getTime(); + draft.seen = false; + draft.ui_seen = false; + draft.ui_hide = send; + + // Store draft + if (update) + message.updateMessage(draft); + else + draft.id = message.insertMessage(draft); + + // Check data + if (send) { + if (draft.identity == null) + throw new MessagingException(getContext().getString(R.string.title_from_missing)); + if (draft.to == null) + throw new MessagingException(getContext().getString(R.string.title_to_missing)); + + // Get outbox + EntityFolder outbox = folder.getOutbox(); + if (outbox == null) { + outbox = new EntityFolder(); + outbox.name = "OUTBOX"; + outbox.type = EntityFolder.TYPE_OUTBOX; + outbox.synchronize = false; + outbox.after = 0; + outbox.id = folder.insertFolder(outbox); + } + + // Build outgoing message + EntityMessage out = new EntityMessage(); + out.folder = outbox.id; + out.identity = draft.identity; + out.replying = draft.replying; + out.thread = draft.thread; + out.from = draft.from; + out.to = draft.to; + out.subject = draft.subject; + out.body = draft.body; + out.received = draft.received; + out.seen = draft.seen; + out.ui_seen = draft.ui_seen; + out.ui_hide = false; + out.id = message.insertMessage(out); + + EntityOperation.queue(getContext(), out, EntityOperation.SEND); + EntityOperation.queue(getContext(), draft, EntityOperation.DELETE); + } else + EntityOperation.queue(getContext(), draft, EntityOperation.ADD); + + return null; + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + return ex; + } + } + } + + private LoaderManager.LoaderCallbacks putLoaderCallbacks = new LoaderManager.LoaderCallbacks() { + private Bundle args; + + @NonNull + @Override + public Loader onCreateLoader(int id, Bundle args) { + this.args = args; + PutLoader loader = new PutLoader(getActivity()); + loader.setArgs(args); + return loader; + } + + @Override + public void onLoadFinished(@NonNull Loader loader, Throwable ex) { + getLoaderManager().destroyLoader(loader.getId()); + + boolean send = args.getBoolean("send", false); + Log.i(Helper.TAG, "Put finished send=" + send + " ex=" + ex); + + if (ex == null) { + getFragmentManager().popBackStack(); + Toast.makeText(getContext(), send ? R.string.title_queued : R.string.title_saved, Toast.LENGTH_LONG).show(); + } else { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + Toast.makeText(getContext(), Helper.formatThrowable(ex), Toast.LENGTH_LONG).show(); + } + } + + @Override + public void onLoaderReset(@NonNull Loader loader) { + } + }; +} \ No newline at end of file diff --git a/app/src/main/java/eu/faircode/email/FragmentEula.java b/app/src/main/java/eu/faircode/email/FragmentEula.java new file mode 100644 index 0000000000..61da9b8c6a --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentEula.java @@ -0,0 +1,60 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +public class FragmentEula extends Fragment { + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_eula, container, false); + + Button btnAgree = view.findViewById(R.id.btnOk); + Button btnDisagree = view.findViewById(R.id.btnCancel); + + btnAgree.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + prefs.edit().putBoolean("eula", true).apply(); + } + }); + + btnDisagree.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + getActivity().finish(); + } + }); + + return view; + } +} diff --git a/app/src/main/java/eu/faircode/email/FragmentFolder.java b/app/src/main/java/eu/faircode/email/FragmentFolder.java new file mode 100644 index 0000000000..e0f0a52317 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentFolder.java @@ -0,0 +1,160 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.content.Context; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.LoaderManager; +import android.support.v4.content.AsyncTaskLoader; +import android.support.v4.content.Loader; +import android.support.v7.app.AppCompatActivity; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.Toast; + +public class FragmentFolder extends Fragment { + private CheckBox cbSynchronize; + private EditText etAfter; + private Button btnOk; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_folder, container, false); + + // Get arguments + Bundle args = getArguments(); + final long id = args.getLong("id"); + + // Get controls + cbSynchronize = view.findViewById(R.id.cbSynchronize); + etAfter = view.findViewById(R.id.etAfter); + btnOk = view.findViewById(R.id.btnOk); + + btnOk.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + btnOk.setEnabled(false); + + Bundle args = new Bundle(); + args.putLong("id", id); + args.putBoolean("synchronize", cbSynchronize.isChecked()); + args.putString("after", etAfter.getText().toString()); + + getLoaderManager().restartLoader(ActivityView.LOADER_FOLDER_PUT, args, putLoaderCallbacks).forceLoad(); + } + }); + + DB.getInstance(getContext()).folder().liveFolder(id).observe(this, new Observer() { + @Override + public void onChanged(@Nullable EntityFolder folder) { + if (folder != null) { + cbSynchronize.setChecked(folder.synchronize); + etAfter.setText(Integer.toString(folder.after)); + } + } + }); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_edit_folder); + } + + private static class PutLoader extends AsyncTaskLoader { + private Bundle args; + + PutLoader(Context context) { + super(context); + } + + void setArgs(Bundle args) { + this.args = args; + } + + @Override + public Throwable loadInBackground() { + try { + long id = args.getLong("id"); + boolean synchronize = args.getBoolean("synchronize"); + String after = args.getString("after"); + int days = (TextUtils.isEmpty(after) ? 7 : Integer.parseInt(after)); + + DB db = DB.getInstance(getContext()); + DaoFolder dao = db.folder(); + EntityFolder folder = dao.getFolder(id); + folder.synchronize = synchronize; + folder.after = days; + dao.updateFolder(folder); + + if (!folder.synchronize) + db.message().deleteMessages(folder.id); + + ServiceSynchronize.restart(getContext(), "folder"); + + return null; + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + return ex; + } + } + } + + private LoaderManager.LoaderCallbacks putLoaderCallbacks = new LoaderManager.LoaderCallbacks() { + @NonNull + @Override + public Loader onCreateLoader(int id, Bundle args) { + PutLoader loader = new PutLoader(getActivity()); + loader.setArgs(args); + return loader; + } + + @Override + public void onLoadFinished(@NonNull Loader loader, Throwable ex) { + getLoaderManager().destroyLoader(loader.getId()); + + btnOk.setEnabled(true); + + if (ex == null) + getFragmentManager().popBackStack(); + else { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + Toast.makeText(getContext(), Helper.formatThrowable(ex), Toast.LENGTH_LONG).show(); + } + } + + @Override + public void onLoaderReset(@NonNull Loader loader) { + } + }; +} diff --git a/app/src/main/java/eu/faircode/email/FragmentFolders.java b/app/src/main/java/eu/faircode/email/FragmentFolders.java new file mode 100644 index 0000000000..1218a38d67 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentFolders.java @@ -0,0 +1,97 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.constraint.Group; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.Fragment; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; + +import java.util.List; + +public class FragmentFolders extends Fragment { + private RecyclerView rvFolder; + private ProgressBar pbWait; + private Group grpReady; + private FloatingActionButton fab; + + private AdapterFolder adapter; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_folders, container, false); + + // Get controls + rvFolder = view.findViewById(R.id.rvFolder); + pbWait = view.findViewById(R.id.pbWait); + grpReady = view.findViewById(R.id.grpReady); + fab = view.findViewById(R.id.fab); + + // Wire controls + + rvFolder.setHasFixedSize(false); + LinearLayoutManager llm = new LinearLayoutManager(getContext()); + rvFolder.setLayoutManager(llm); + + adapter = new AdapterFolder(getContext()); + rvFolder.setAdapter(adapter); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + } + }); + fab.setVisibility(View.GONE); + + // Initialize + grpReady.setVisibility(View.GONE); + pbWait.setVisibility(View.VISIBLE); + + // Observe folders + DB.getInstance(getContext()).folder().liveFolders().observe(this, new Observer>() { + @Override + public void onChanged(@Nullable List folders) { + adapter.set(folders); + + pbWait.setVisibility(View.GONE); + grpReady.setVisibility(View.VISIBLE); + } + }); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_list_folders); + } +} diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentities.java b/app/src/main/java/eu/faircode/email/FragmentIdentities.java new file mode 100644 index 0000000000..7e3ce6b818 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentIdentities.java @@ -0,0 +1,102 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.constraint.Group; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; + +import java.util.List; + +public class FragmentIdentities extends Fragment { + private RecyclerView rvIdentity; + private ProgressBar pbWait; + private Group grpReady; + private FloatingActionButton fab; + + private AdapterIdentity adapter; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_identities, container, false); + + // Get controls + rvIdentity = view.findViewById(R.id.rvIdentity); + pbWait = view.findViewById(R.id.pbWait); + grpReady = view.findViewById(R.id.grpReady); + fab = view.findViewById(R.id.fab); + + // Wire controls + + rvIdentity.setHasFixedSize(false); + LinearLayoutManager llm = new LinearLayoutManager(getContext()); + rvIdentity.setLayoutManager(llm); + + adapter = new AdapterIdentity(getContext()); + rvIdentity.setAdapter(adapter); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + FragmentIdentity fragment = new FragmentIdentity(); + fragment.setArguments(new Bundle()); + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("identity"); + fragmentTransaction.commit(); + } + }); + + // Initialize + grpReady.setVisibility(View.GONE); + pbWait.setVisibility(View.VISIBLE); + + // Observe identities + DB.getInstance(getContext()).identity().liveIdentities().observe(this, new Observer>() { + @Override + public void onChanged(@Nullable List identities) { + adapter.set(identities); + + pbWait.setVisibility(View.GONE); + grpReady.setVisibility(View.VISIBLE); + } + }); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_list_identities); + } +} diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java new file mode 100644 index 0000000000..1da066eb10 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java @@ -0,0 +1,289 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.Observer; +import android.content.Context; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.LoaderManager; +import android.support.v4.content.AsyncTaskLoader; +import android.support.v4.content.Loader; +import android.support.v7.app.AppCompatActivity; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.Spinner; +import android.widget.Toast; + +import java.util.List; +import java.util.Objects; +import java.util.Properties; + +import javax.mail.Session; +import javax.mail.Transport; + +public class FragmentIdentity extends Fragment { + private List providers; + + private Spinner spProfile; + private EditText etName; + private EditText etEmail; + private EditText etHost; + private CheckBox cbStartTls; + private EditText etPort; + private EditText etUser; + private EditText etPassword; + private CheckBox cbPrimary; + private CheckBox cbSynchronize; + private Button btnOk; + private ProgressBar pbCheck; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_identity, container, false); + + // Get arguments + Bundle args = getArguments(); + final long id = args.getLong("id", -1); + + // Get providers + providers = Provider.loadProfiles(getContext()); + providers.add(0, new Provider(getString(R.string.title_custom))); + + // Get controls + spProfile = view.findViewById(R.id.spProvider); + etName = view.findViewById(R.id.etName); + etEmail = view.findViewById(R.id.etEmail); + etHost = view.findViewById(R.id.etHost); + cbStartTls = view.findViewById(R.id.cbStartTls); + etPort = view.findViewById(R.id.etPort); + etUser = view.findViewById(R.id.etUser); + etPassword = view.findViewById(R.id.etPassword); + cbPrimary = view.findViewById(R.id.cbPrimary); + cbSynchronize = view.findViewById(R.id.cbSynchronize); + btnOk = view.findViewById(R.id.btnOk); + pbCheck = view.findViewById(R.id.pbCheck); + + // Wire controls + + etEmail.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + etUser.setText(s.toString()); + } + }); + + cbStartTls.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + etPort.setHint(checked ? "587" : "465"); + } + }); + + spProfile.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + Provider provider = providers.get(position); + if (provider.smtp_port != 0) { + etHost.setText(provider.smtp_host); + etPort.setText(Integer.toString(provider.smtp_port)); + cbStartTls.setChecked(provider.starttls); + } + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + } + }); + + ArrayAdapter adapter = new ArrayAdapter<>(getContext(), R.layout.spinner_item, providers); + adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); + spProfile.setAdapter(adapter); + + pbCheck.setVisibility(View.GONE); + + btnOk.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + btnOk.setEnabled(false); + pbCheck.setVisibility(View.VISIBLE); + + Bundle args = new Bundle(); + args.putLong("id", id); + args.putString("name", etName.getText().toString()); + args.putString("email", etEmail.getText().toString()); + args.putString("host", etHost.getText().toString()); + args.putBoolean("starttls", cbStartTls.isChecked()); + args.putString("port", etPort.getText().toString()); + args.putString("user", etUser.getText().toString()); + args.putString("password", etPassword.getText().toString()); + args.putBoolean("primary", cbPrimary.isChecked()); + args.putBoolean("synchronize", cbSynchronize.isChecked()); + + getLoaderManager().restartLoader(ActivityView.LOADER_IDENTITY_PUT, args, putLoaderCallbacks).forceLoad(); + } + }); + + DB.getInstance(getContext()).identity().liveIdentity(id).observe(this, new Observer() { + @Override + public void onChanged(@Nullable EntityIdentity identity) { + etName.setText(identity == null ? null : identity.name); + etEmail.setText(identity == null ? null : identity.email); + etHost.setText(identity == null ? null : identity.host); + cbStartTls.setChecked(identity == null ? false : identity.starttls); + etPort.setText(identity == null ? null : Long.toString(identity.port)); + etUser.setText(identity == null ? null : identity.user); + etPassword.setText(identity == null ? null : identity.password); + cbPrimary.setChecked(identity == null ? true : identity.primary); + cbSynchronize.setChecked(identity == null ? true : identity.synchronize); + } + }); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_edit_indentity); + } + + private static class PutLoader extends AsyncTaskLoader { + private Bundle args; + + PutLoader(Context context) { + super(context); + } + + void setArgs(Bundle args) { + this.args = args; + } + + @Override + public Throwable loadInBackground() { + try { + long id = args.getLong("id"); + String host = args.getString("host"); + boolean starttls = args.getBoolean("starttls"); + String port = args.getString("port"); + if (TextUtils.isEmpty(port)) + port = "0"; + + DB db = DB.getInstance(getContext()); + EntityIdentity identity = db.identity().getIdentity(id); + boolean update = (identity != null); + if (identity == null) + identity = new EntityIdentity(); + identity.name = Objects.requireNonNull(args.getString("name")); + identity.email = Objects.requireNonNull(args.getString("email")); + identity.host = host; + identity.port = Integer.parseInt(port); + identity.starttls = starttls; + identity.user = Objects.requireNonNull(args.getString("user")); + identity.password = Objects.requireNonNull(args.getString("password")); + identity.primary = args.getBoolean("primary"); + identity.synchronize = args.getBoolean("synchronize"); + + if (TextUtils.isEmpty(identity.name)) + throw new IllegalArgumentException(getContext().getString(R.string.title_no_name)); + + if (TextUtils.isEmpty(identity.email)) + throw new IllegalArgumentException(getContext().getString(R.string.title_no_email)); + + // Check SMTP server + if (identity.synchronize) { + Properties props = MessageHelper.getSessionProperties(); + Session isession = Session.getDefaultInstance(props, null); + Transport itransport = isession.getTransport(identity.starttls ? "smtp" : "smtps"); + try { + itransport.connect(identity.host, identity.port, identity.user, identity.password); + } finally { + itransport.close(); + } + } + + if (identity.primary) + db.identity().resetPrimary(); + + if (update) + db.identity().updateIdentity(identity); + else + identity.id = db.identity().insertIdentity(identity); + + return null; + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + return ex; + } + } + } + + private LoaderManager.LoaderCallbacks putLoaderCallbacks = new LoaderManager.LoaderCallbacks() { + @NonNull + @Override + public Loader onCreateLoader(int id, Bundle args) { + PutLoader loader = new PutLoader(getActivity()); + loader.setArgs(args); + return loader; + } + + @Override + public void onLoadFinished(@NonNull Loader loader, Throwable ex) { + getLoaderManager().destroyLoader(loader.getId()); + + btnOk.setEnabled(true); + pbCheck.setVisibility(View.GONE); + + if (ex == null) + getFragmentManager().popBackStack(); + else { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + Toast.makeText(getContext(), Helper.formatThrowable(ex), Toast.LENGTH_LONG).show(); + } + } + + @Override + public void onLoaderReset(@NonNull Loader loader) { + } + }; +} diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java new file mode 100644 index 0000000000..336554bafc --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java @@ -0,0 +1,329 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.LiveData; +import android.arch.lifecycle.Observer; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Typeface; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.constraint.Group; +import android.support.design.widget.BottomNavigationView; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatActivity; +import android.text.Html; +import android.text.method.LinkMovementMethod; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class FragmentMessage extends Fragment { + private TextView tvTime; + private TextView tvFrom; + private TextView tvSubject; + private TextView tvCount; + private BottomNavigationView top_navigation; + private TextView tvBody; + private BottomNavigationView bottom_navigation; + private ProgressBar pbWait; + private Group grpReady; + + private LiveData liveFolder; + + private ExecutorService executor = Executors.newCachedThreadPool(); + private DateFormat df = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_message, container, false); + + // Get arguments + Bundle args = getArguments(); + final long folder = args.getLong("folder"); + final long id = args.getLong("id"); + + // Get controls + tvFrom = view.findViewById(R.id.tvAddress); + tvTime = view.findViewById(R.id.tvTime); + tvSubject = view.findViewById(R.id.tvSubject); + tvCount = view.findViewById(R.id.tvCount); + top_navigation = view.findViewById(R.id.top_navigation); + tvBody = view.findViewById(R.id.tvBody); + bottom_navigation = view.findViewById(R.id.bottom_navigation); + pbWait = view.findViewById(R.id.pbWait); + grpReady = view.findViewById(R.id.grpReady); + + tvTime.setTextIsSelectable(true); + tvFrom.setTextIsSelectable(true); + tvSubject.setTextIsSelectable(true); + tvBody.setTextIsSelectable(true); + tvBody.setMovementMethod(LinkMovementMethod.getInstance()); + + // Wire controls + + top_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.action_seen: + onActionSeen(id); + return true; + case R.id.action_thread: + onActionThread(id); + return true; + case R.id.action_move: + onActionMove(id); + return true; + case R.id.action_forward: + onActionForward(id); + return true; + case R.id.action_reply_all: + onActionReplyAll(id); + return true; + } + return false; + } + }); + + bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.action_delete: + onActionDelete(id); + return true; + case R.id.action_spam: + onActionSpam(id); + return true; + case R.id.action_archive: + onActionArchive(id); + return true; + case R.id.action_reply: + onActionReply(id); + return true; + } + return false; + } + }); + + // Initialize + grpReady.setVisibility(View.GONE); + pbWait.setVisibility(View.VISIBLE); + + DB db = DB.getInstance(getContext()); + + // Observe folder + liveFolder = db.folder().liveFolderEx(folder); + + // Observe message + db.message().liveMessage(id).observe(this, new Observer() { + @Override + public void onChanged(@Nullable TupleMessageEx message) { + pbWait.setVisibility(View.GONE); + grpReady.setVisibility(View.VISIBLE); + + if (message == null || message.ui_hide) { + // Message gone (moved, deleted) + if (FragmentMessage.this.isVisible()) + getFragmentManager().popBackStack(); + } else { + tvFrom.setText(message.from == null ? null : MessageHelper.getFormattedAddresses(message.from)); + tvTime.setText(message.sent == null ? null : df.format(new Date(message.sent))); + tvSubject.setText(message.subject); + tvCount.setText(Integer.toString(message.count)); + tvCount.setVisibility(message.count > 1 ? View.VISIBLE : View.GONE); + + int visibility = (message.ui_seen ? Typeface.NORMAL : Typeface.BOLD); + tvFrom.setTypeface(null, visibility); + tvTime.setTypeface(null, visibility); + tvSubject.setTypeface(null, visibility); + tvCount.setTypeface(null, visibility); + + MenuItem actionSeen = top_navigation.getMenu().findItem(R.id.action_seen); + actionSeen.setIcon(message.ui_seen + ? R.drawable.baseline_visibility_off_24 + : R.drawable.baseline_visibility_24); + actionSeen.setTitle(message.ui_seen ? R.string.title_unseen : R.string.title_seen); + + tvBody.setText(message.body == null + ? null + : Html.fromHtml(HtmlHelper.sanitize(getContext(), message.body, false))); + } + } + }); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + liveFolder.observe(this, folderObserver); + } + + @Override + public void onPause() { + super.onPause(); + liveFolder.removeObservers(this); + } + + Observer folderObserver = new Observer() { + @Override + public void onChanged(@Nullable TupleFolderEx folder) { + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(folder == null + ? null + : Helper.localizeFolderName(getContext(), folder)); + } + }; + + private void onActionSeen(final long id) { + executor.submit(new Runnable() { + @Override + public void run() { + DB db = DB.getInstance(getContext()); + EntityMessage message = db.message().getMessage(id); + message.ui_seen = !message.ui_seen; + db.message().updateMessage(message); + EntityOperation.queue(getContext(), message, EntityOperation.SEEN, message.ui_seen); + } + }); + } + + private void onActionThread(long id) { + FragmentMessages fragment = new FragmentMessages(); + Bundle args = new Bundle(); + args.putLong("thread", id); // message ID + fragment.setArguments(args); + + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("thread"); + fragmentTransaction.commit(); + } + + private void onActionMove(final long id) { + Toast.makeText(getContext(), "Not implemented yet", Toast.LENGTH_LONG).show(); + } + + private void onActionForward(long id) { + startActivity(new Intent(getContext(), ActivityCompose.class) + .putExtra("id", id) + .putExtra("action", "forward")); + } + + private void onActionReplyAll(long id) { + startActivity(new Intent(getContext(), ActivityCompose.class) + .putExtra("id", id) + .putExtra("action", "reply_all")); + } + + private void onActionDelete(final long id) { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + builder + .setMessage(R.string.title_ask_delete) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + executor.submit(new Runnable() { + @Override + public void run() { + DB db = DB.getInstance(getContext()); + EntityMessage message = db.message().getMessage(id); + message.ui_hide = true; + db.message().updateMessage(message); + + EntityOperation.queue(getContext(), message, EntityOperation.DELETE); + } + }); + } + }) + .setNegativeButton(android.R.string.cancel, null).show(); + } + + private void onActionSpam(final long id) { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + builder + .setMessage(R.string.title_ask_spam) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + executor.submit(new Runnable() { + @Override + public void run() { + DB db = DB.getInstance(getContext()); + EntityMessage message = db.message().getMessage(id); + EntityFolder spam = db.folder().getSpamFolder(message.account); + if (spam == null) { + Toast.makeText(getContext(), R.string.title_no_spam, Toast.LENGTH_LONG).show(); + return; + } + + message.ui_hide = true; + db.message().updateMessage(message); + + EntityOperation.queue(getContext(), message, EntityOperation.MOVE, spam.id); + } + }); + } + }) + .setNegativeButton(android.R.string.cancel, null).show(); + } + + private void onActionArchive(final long id) { + executor.submit(new Runnable() { + @Override + public void run() { + DB db = DB.getInstance(getContext()); + EntityMessage message = db.message().getMessage(id); + EntityFolder archive = db.folder().getArchiveFolder(message.account); + if (archive == null) { + Toast.makeText(getContext(), R.string.title_no_archive, Toast.LENGTH_LONG).show(); + return; + } + + message.ui_hide = true; + db.message().updateMessage(message); + + EntityOperation.queue(getContext(), message, EntityOperation.MOVE, archive.id); + } + }); + } + + private void onActionReply(long id) { + startActivity(new Intent(getContext(), ActivityCompose.class) + .putExtra("id", id) + .putExtra("action", "reply")); + } +} diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java new file mode 100644 index 0000000000..e1db656166 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -0,0 +1,152 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.arch.lifecycle.LiveData; +import android.arch.lifecycle.Observer; +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.constraint.Group; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.Fragment; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; +import android.widget.TextView; + +import java.util.List; + +public class FragmentMessages extends Fragment { + private RecyclerView rvMessage; + private TextView tvNoEmail; + private ProgressBar pbWait; + private Group grpReady; + private FloatingActionButton fab; + + private AdapterMessage adapter; + private LiveData liveFolder; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_messages, container, false); + + // Get arguments + long folder = getArguments().getLong("folder", -1); + long thread = getArguments().getLong("thread", -1); // message ID + + // Get controls + rvMessage = view.findViewById(R.id.rvFolder); + tvNoEmail = view.findViewById(R.id.tvNoEmail); + pbWait = view.findViewById(R.id.pbWait); + grpReady = view.findViewById(R.id.grpReady); + fab = view.findViewById(R.id.fab); + + // Wire controls + + rvMessage.setHasFixedSize(false); + LinearLayoutManager llm = new LinearLayoutManager(getContext()); + rvMessage.setLayoutManager(llm); + + adapter = new AdapterMessage(getContext(), + thread < 0 + ? AdapterMessage.ViewType.FOLDER + : AdapterMessage.ViewType.THREAD); + rvMessage.setAdapter(adapter); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startActivity(new Intent(getContext(), ActivityCompose.class)); + } + }); + + // Initialize + tvNoEmail.setVisibility(View.GONE); + grpReady.setVisibility(View.GONE); + pbWait.setVisibility(View.VISIBLE); + + DB db = DB.getInstance(getContext()); + + // Observe folder + liveFolder = (thread < 0 ? DB.getInstance(getContext()).folder().liveFolderEx(folder) : null); + + // Observe messages + if (thread < 0) + if (folder < 0) + db.message().liveUnifiedInbox().observe(this, messagesObserver); + else + db.message().liveMessages(folder).observe(this, messagesObserver); + else { + db.message().liveThread(thread).observe(this, messagesObserver); + } + + return view; + } + + @Override + public void onResume() { + super.onResume(); + if (liveFolder == null) + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_folder_thread); + else + liveFolder.observe(this, folderObserver); + } + + @Override + public void onPause() { + super.onPause(); + if (liveFolder != null) + liveFolder.removeObservers(this); + } + + Observer folderObserver = new Observer() { + @Override + public void onChanged(@Nullable TupleFolderEx folder) { + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(folder.name == null + ? getString(R.string.title_folder_unified) + : Helper.localizeFolderName(getContext(), folder)); + } + }; + + Observer> messagesObserver = new Observer>() { + @Override + public void onChanged(@Nullable List messages) { + adapter.set(messages); + + pbWait.setVisibility(View.GONE); + grpReady.setVisibility(View.VISIBLE); + + if (messages.size() == 0) { + tvNoEmail.setVisibility(View.VISIBLE); + rvMessage.setVisibility(View.GONE); + } else { + tvNoEmail.setVisibility(View.GONE); + rvMessage.setVisibility(View.VISIBLE); + } + } + }; +} diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java new file mode 100644 index 0000000000..48dd4381a2 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -0,0 +1,192 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.Manifest; +import android.arch.lifecycle.Observer; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.AppCompatActivity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ProgressBar; +import android.widget.TextView; + +import java.util.List; + +public class FragmentSetup extends Fragment { + private Button btnAccount; + private Button btnIdentity; + private Button btnPermissions; + private ProgressBar pbAccount; + private ProgressBar pbIdentity; + private TextView tvAccountDone; + private TextView tvIdentityDone; + private TextView tvPermissionsDone; + + private static final String[] permissions = new String[]{ + Manifest.permission.READ_CONTACTS + }; + + @Override + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_setup, container, false); + + // Get controls + btnAccount = view.findViewById(R.id.btnAccount); + btnIdentity = view.findViewById(R.id.btnIdentity); + btnPermissions = view.findViewById(R.id.btnPermissions); + pbAccount = view.findViewById(R.id.pbAccount); + pbIdentity = view.findViewById(R.id.pbIdentity); + tvAccountDone = view.findViewById(R.id.tvAccountDone); + tvIdentityDone = view.findViewById(R.id.tvIdentityDone); + tvPermissionsDone = view.findViewById(R.id.tvPermissionsDone); + + // Wire controls + + btnAccount.setOnClickListener(new View.OnClickListener() { + private boolean once; + + @Override + public void onClick(View view) { + once = false; + btnAccount.setEnabled(false); + pbAccount.setVisibility(View.VISIBLE); + + DB.getInstance(getContext()).account().liveFirstAccount().observe(getActivity(), new Observer() { + @Override + public void onChanged(@Nullable EntityAccount account) { + btnAccount.setEnabled(true); + pbAccount.setVisibility(View.GONE); + + if (!once) { + once = true; + Bundle args = new Bundle(); + if (account != null) + args.putLong("id", account.id); + FragmentAccount fragment = new FragmentAccount(); + fragment.setArguments(args); + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("account"); + fragmentTransaction.commit(); + } + } + }); + } + }); + + btnIdentity.setOnClickListener(new View.OnClickListener() { + private boolean once; + + @Override + public void onClick(View view) { + once = false; + btnIdentity.setEnabled(false); + pbIdentity.setVisibility(View.VISIBLE); + + DB.getInstance(getContext()).identity().liveFirstIdentity().observe(getActivity(), new Observer() { + @Override + public void onChanged(@Nullable EntityIdentity identity) { + btnIdentity.setEnabled(true); + pbIdentity.setVisibility(View.GONE); + + if (!once) { + once = true; + Bundle args = new Bundle(); + if (identity != null) + args.putLong("id", identity.id); + FragmentIdentity fragment = new FragmentIdentity(); + fragment.setArguments(args); + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("identity"); + fragmentTransaction.commit(); + } + } + }); + } + }); + + btnPermissions.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + requestPermissions(permissions, 1); + } + }); + + // Initialize + + pbAccount.setVisibility(View.GONE); + pbIdentity.setVisibility(View.GONE); + tvAccountDone.setVisibility(View.INVISIBLE); + tvIdentityDone.setVisibility(View.INVISIBLE); + tvPermissionsDone.setVisibility(View.INVISIBLE); + + DB db = DB.getInstance(getContext()); + + db.account().liveAccounts(true).observe(this, new Observer>() { + @Override + public void onChanged(@Nullable List accounts) { + tvAccountDone.setVisibility(accounts.size() > 0 ? View.VISIBLE : View.INVISIBLE); + } + }); + + db.identity().liveIdentities(true).observe(this, new Observer>() { + @Override + public void onChanged(@Nullable List identities) { + tvIdentityDone.setVisibility(identities.size() > 0 ? View.VISIBLE : View.INVISIBLE); + } + }); + + int[] grantResults = new int[permissions.length]; + for (int i = 0; i < permissions.length; i++) + grantResults[i] = ContextCompat.checkSelfPermission(getActivity(), permissions[i]); + + onRequestPermissionsResult(0, permissions, grantResults); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + ((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(R.string.title_setup); + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + boolean has = (grantResults.length > 0); + for (int result : grantResults) + if (result != PackageManager.PERMISSION_GRANTED) { + has = false; + break; + } + + btnPermissions.setEnabled(!has); + tvPermissionsDone.setVisibility(has ? View.VISIBLE : View.INVISIBLE); + } +} diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java new file mode 100644 index 0000000000..70521df969 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -0,0 +1,63 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.content.res.Resources; +import android.text.TextUtils; +import android.util.TypedValue; + +public class Helper { + static final String TAG = BuildConfig.APPLICATION_ID; + + static int resolveColor(Context context, int attr) { + TypedValue typedValue = new TypedValue(); + Resources.Theme theme = context.getTheme(); + theme.resolveAttribute(attr, typedValue, true); + return typedValue.data; + } + + static String localizeFolderName(Context context, String name) { + if ("INBOX".equals(name)) + return context.getString(R.string.title_folder_inbox); + else if ("OUTBOX".equals(name)) + return context.getString(R.string.title_folder_outbox); + else + return name; + } + + static String localizeFolderName(Context context, TupleFolderEx folder) { + if (TextUtils.isEmpty(folder.accountName)) + return localizeFolderName(context, folder.name); + else + return localizeFolderName(context, folder.name) + "/" + folder.accountName; + } + + static String formatThrowable(Throwable ex) { + StringBuilder sb = new StringBuilder(); + sb.append(ex.getMessage()); + Throwable cause = ex.getCause(); + while (cause != null) { + sb.append(" ").append(cause.getMessage()); + cause = cause.getCause(); + } + return sb.toString(); + } +} diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java new file mode 100644 index 0000000000..29e35ed906 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -0,0 +1,95 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.text.TextUtils; + +import org.jsoup.Jsoup; +import org.jsoup.helper.StringUtil; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Node; +import org.jsoup.nodes.TextNode; +import org.jsoup.select.NodeTraversor; +import org.jsoup.select.NodeVisitor; + +import java.util.ArrayList; +import java.util.List; + +public class HtmlHelper implements NodeVisitor { + private Context context; + private String newline; + private List links = new ArrayList<>(); + private StringBuilder sb = new StringBuilder(); + + private HtmlHelper(Context context, boolean reply) { + this.context = context; + this.newline = (reply ? "
> " : "
"); + } + + public void head(Node node, int depth) { + String name = node.nodeName(); + if (node instanceof TextNode) + sb.append(((TextNode) node).text()); + else if (name.equals("li")) + sb.append(newline).append(" * "); + else if (name.equals("dt")) + sb.append(" "); + else if (StringUtil.in(name, "p", "h1", "h2", "h3", "h4", "h5", "tr", "div")) + sb.append(newline); + } + + public void tail(Node node, int depth) { + String name = node.nodeName(); + if (StringUtil.in(name, "br", "dd", "dt", "p", "h1", "h2", "h3", "h4", "h5", "div")) + sb.append(newline); + else if (name.equals("a")) { + String link = node.absUrl("href"); + if (!TextUtils.isEmpty(link)) { + if (!links.contains(link)) + links.add(link); + sb.append(" ").append(context.getString(R.string.title_link, link, links.size())); + } + } else if (name.equals("img")) { + String link = node.absUrl("src"); + if (!TextUtils.isEmpty(link)) { + if (!links.contains(link)) + links.add(link); + sb.append(" ").append(context.getString(R.string.title_image, link, links.size())); + } + } + } + + @Override + public String toString() { + if (links.size() > 0) + sb.append(newline).append(newline); + for (int i = 0; i < links.size(); i++) + sb.append(String.format("[%d] %s ", i + 1, links.get(i))).append(newline); + return sb.toString(); + } + + public static String sanitize(Context context, String html, boolean reply) { + Document document = Jsoup.parse(html); + HtmlHelper visitor = new HtmlHelper(context, reply); + NodeTraversor.traverse(visitor, document.body()); + return visitor.toString(); + } +} diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java new file mode 100644 index 0000000000..d653c1c758 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -0,0 +1,282 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.text.TextUtils; +import android.util.Base64; +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Properties; + +import javax.mail.Address; +import javax.mail.Flags; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Multipart; +import javax.mail.Part; +import javax.mail.Session; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; + +public class MessageHelper { + private MimeMessage imessage; + private String raw = null; + + static Properties getSessionProperties() { + Properties props = new Properties(); + + // https://javaee.github.io/javamail/docs/api/com/sun/mail/imap/package-summary.html#properties + props.put("mail.imaps.ssl.checkserveridentity", "true"); + props.put("mail.imaps.ssl.trust", "*"); + props.put("mail.imaps.starttls.enable", "false"); + props.put("mail.imaps.timeout", "20000"); + props.put("mail.imaps.connectiontimeout", "20000"); + + // https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html#properties + props.put("mail.smtps.ssl.checkserveridentity", "true"); + props.put("mail.smtps.ssl.trust", "*"); + props.put("mail.smtps.starttls.enable", "false"); + props.put("mail.smtps.starttls.required", "false"); + props.put("mail.smtps.auth", "true"); + props.put("mail.smtps.timeout", "20000"); + props.put("mail.smtps.connectiontimeout", "20000"); + + props.put("mail.smtp.ssl.checkserveridentity", "true"); + props.put("mail.smtp.ssl.trust", "*"); + props.put("mail.smtp.starttls.enable", "true"); + props.put("mail.smtp.starttls.required", "true"); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.timeout", "20000"); + props.put("mail.smtp.connectiontimeout", "20000"); + + return props; + } + + static MimeMessage from(EntityMessage message, Session isession) throws MessagingException { + MimeMessage imessage = new MimeMessage(isession); + + if (message.from != null) + imessage.setFrom(MessageHelper.decodeAddresses(message.from)[0]); + + if (message.to != null) + imessage.setRecipients(Message.RecipientType.TO, MessageHelper.decodeAddresses(message.to)); + + if (message.cc != null) + imessage.setRecipients(Message.RecipientType.CC, MessageHelper.decodeAddresses(message.to)); + + if (message.subject != null) + imessage.setSubject(message.subject); + + if (message.body != null) + imessage.setText(message.body, null, "html"); + + imessage.setSentDate(new Date()); + + return imessage; + } + + static MimeMessage from(EntityMessage message, EntityMessage reply, Session isession) throws MessagingException { + MimeMessage imessage = from(message, isession); + imessage.addHeader("In-Reply-To", reply.msgid); + imessage.addHeader("References", (reply.references == null ? "" : reply.references + " ") + reply.msgid); + return imessage; + } + + MessageHelper(MimeMessage message) { + this.imessage = message; + } + + MessageHelper(String raw, Session isession) throws MessagingException { + byte[] bytes = Base64.decode(raw, Base64.URL_SAFE); + InputStream is = new ByteArrayInputStream(bytes); + this.imessage = new MimeMessage(isession, is); + } + + String getMessageID() throws MessagingException { + return imessage.getHeader("Message-ID", null); + } + + String[] getReferences() throws MessagingException { + String refs = imessage.getHeader("References", null); + return (refs == null ? new String[0] : refs.split("\\s+")); + } + + String getInReplyTo() throws MessagingException { + return imessage.getHeader("In-Reply-To", null); + } + + String getThreadId(long uid) throws MessagingException { + for (String ref : getReferences()) + if (!TextUtils.isEmpty(ref)) + return ref; + String msgid = getMessageID(); + return (TextUtils.isEmpty(msgid) ? Long.toString(uid) : msgid); + } + + String getFrom() throws MessagingException, JSONException { + return encodeAddresses(imessage.getFrom()); + } + + String getTo() throws MessagingException, JSONException { + return encodeAddresses(imessage.getRecipients(Message.RecipientType.TO)); + } + + String getCc() throws MessagingException, JSONException { + return encodeAddresses(imessage.getRecipients(Message.RecipientType.CC)); + } + + String getReply() throws MessagingException, JSONException { + return encodeAddresses(imessage.getReplyTo()); + } + + static String encodeAddresses(Address[] addresses) throws JSONException { + JSONArray jaddresses = new JSONArray(); + if (addresses != null) + for (Address address : addresses) + if (address instanceof InternetAddress) { + String a = ((InternetAddress) address).getAddress(); + String p = ((InternetAddress) address).getPersonal(); + JSONObject jaddress = new JSONObject(); + if (a != null) + jaddress.put("address", a); + if (p != null) + jaddress.put("personal", p); + jaddresses.put(jaddress); + } + return jaddresses.toString(); + } + + static Address[] decodeAddresses(String json) { + List
result = new ArrayList<>(); + try { + JSONArray jaddresses = new JSONArray(json); + for (int i = 0; i < jaddresses.length(); i++) { + JSONObject jaddress = (JSONObject) jaddresses.get(i); + if (jaddress.has("personal")) + result.add(new InternetAddress( + jaddress.getString("address"), + jaddress.getString("personal"))); + else + result.add(new InternetAddress( + jaddress.getString("address"))); + } + } catch (Throwable ex) { + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + return result.toArray(new Address[0]); + } + + String getHtml() throws MessagingException { + return getHtml(imessage); + } + + static String getFormattedAddresses(String json) { + try { + List addresses = new ArrayList<>(); + for (Address address : decodeAddresses(json)) + if (address instanceof InternetAddress) { + InternetAddress a = (InternetAddress) address; + String personal = a.getPersonal(); + if (TextUtils.isEmpty(personal)) + addresses.add(address.toString()); + else + addresses.add(personal); + } else + addresses.add(address.toString()); + return TextUtils.join(", ", addresses); + } catch (Throwable ex) { + return ex.getMessage(); + } + } + + private String getHtml(Part part) throws MessagingException { + if (part.isMimeType("text/*")) + try { + String s = (String) part.getContent(); + if (part.isMimeType("text/plain")) + s = "
" + s.replaceAll("\\r?\\n", "
") + "
"; + return s; + } catch (IOException ex) { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + return null; + } + + if (part.isMimeType("multipart/alternative")) { + String text = null; + try { + Multipart mp = (Multipart) part.getContent(); + for (int i = 0; i < mp.getCount(); i++) { + Part bp = mp.getBodyPart(i); + if (bp.isMimeType("text/plain")) { + if (text == null) + text = getHtml(bp); + } else if (bp.isMimeType("text/html")) { + String s = getHtml(bp); + if (s != null) + return s; + } else + return getHtml(bp); + } + } catch (IOException ex) { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + return text; + } + + if (part.isMimeType("multipart/*")) { + try { + Multipart mp = (Multipart) part.getContent(); + for (int i = 0; i < mp.getCount(); i++) { + String s = getHtml(mp.getBodyPart(i)); + if (s != null) + return s; + } + } catch (IOException ex) { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + } + + return null; + } + + boolean getSeen() throws MessagingException { + return imessage.isSet(Flags.Flag.SEEN); + } + + String getRaw() throws IOException, MessagingException { + if (raw == null) { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + imessage.writeTo(os); + raw = Base64.encodeToString(os.toByteArray(), Base64.URL_SAFE); + } + return raw; + } +} diff --git a/app/src/main/java/eu/faircode/email/Provider.java b/app/src/main/java/eu/faircode/email/Provider.java new file mode 100644 index 0000000000..e8edabbe55 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/Provider.java @@ -0,0 +1,87 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.content.res.XmlResourceParser; +import android.util.Log; + +import org.xmlpull.v1.XmlPullParser; + +import java.util.ArrayList; +import java.util.List; + +public class Provider { + public String name; + public String imap_host; + public int imap_port; + public String smtp_host; + public int smtp_port; + public boolean starttls; + + private Provider() { + } + + Provider(String name) { + this.name = name; + } + + static List loadProfiles(Context context) { + List result = null; + try { + XmlResourceParser xml = context.getResources().getXml(R.xml.providers); + int eventType = xml.getEventType(); + Provider provider = null; + while (eventType != XmlPullParser.END_DOCUMENT) { + if (eventType == XmlPullParser.START_TAG) { + if ("providers".equals(xml.getName())) + result = new ArrayList<>(); + else if ("provider".equals(xml.getName())) { + provider = new Provider(); + provider.name = xml.getAttributeValue(null, "name"); + } else if ("imap".equals(xml.getName())) { + provider.imap_host = xml.getAttributeValue(null, "host"); + provider.imap_port = xml.getAttributeIntValue(null, "port", 0); + } else if ("smtp".equals(xml.getName())) { + provider.smtp_host = xml.getAttributeValue(null, "host"); + provider.smtp_port = xml.getAttributeIntValue(null, "port", 0); + provider.starttls = xml.getAttributeBooleanValue(null, "starttls", false); + } else + throw new IllegalAccessException(xml.getName()); + } else if (eventType == XmlPullParser.END_TAG) { + if ("provider".equals(xml.getName())) { + result.add(provider); + provider = null; + } + } + + eventType = xml.next(); + } + } catch (Throwable ex) { + Log.e(Helper.TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); + } + return result; + } + + @Override + public String toString() { + return name; + } +} diff --git a/app/src/main/java/eu/faircode/email/ReceiverAutostart.java b/app/src/main/java/eu/faircode/email/ReceiverAutostart.java new file mode 100644 index 0000000000..360830da63 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ReceiverAutostart.java @@ -0,0 +1,33 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class ReceiverAutostart extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()) || + Intent.ACTION_MY_PACKAGE_REPLACED.equals(intent.getAction())) + ServiceSynchronize.start(context); + } +} diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java new file mode 100644 index 0000000000..162c3ba821 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -0,0 +1,1024 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.arch.lifecycle.LifecycleService; +import android.arch.lifecycle.Observer; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkCapabilities; +import android.net.NetworkRequest; +import android.os.Build; +import android.os.SystemClock; +import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; +import android.support.v4.content.LocalBroadcastManager; +import android.text.TextUtils; +import android.util.Log; + +import com.sun.mail.iap.ProtocolException; +import com.sun.mail.imap.IMAPFolder; +import com.sun.mail.imap.IMAPMessage; +import com.sun.mail.imap.IMAPStore; +import com.sun.mail.imap.protocol.IMAPProtocol; + +import org.json.JSONArray; +import org.json.JSONException; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Properties; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import javax.mail.Address; +import javax.mail.FetchProfile; +import javax.mail.Flags; +import javax.mail.Folder; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.UIDFolder; +import javax.mail.event.ConnectionAdapter; +import javax.mail.event.ConnectionEvent; +import javax.mail.event.FolderAdapter; +import javax.mail.event.FolderEvent; +import javax.mail.event.MessageChangedEvent; +import javax.mail.event.MessageChangedListener; +import javax.mail.event.MessageCountAdapter; +import javax.mail.event.MessageCountEvent; +import javax.mail.event.StoreEvent; +import javax.mail.event.StoreListener; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import javax.mail.search.ComparisonTerm; +import javax.mail.search.ReceivedDateTerm; + +public class ServiceSynchronize extends LifecycleService { + private ServiceState state = new ServiceState(); + private ExecutorService executor = Executors.newCachedThreadPool(); + + private static final int NOTIFICATION_SYNCHRONIZE = 1; + + private static final long NOOP_INTERVAL = 9 * 60 * 1000L; // ms + private static final int FETCH_BATCH_SIZE = 10; + + static final String ACTION_PROCESS_OPERATIONS = BuildConfig.APPLICATION_ID + ".PROCESS_OPERATIONS."; + + private class ServiceState { + boolean running = false; + List threads = new ArrayList<>(); // accounts + } + + public ServiceSynchronize() { + System.setProperty("mail.mime.ignoreunknownencoding", "true"); + } + + @Override + public void onCreate() { + Log.i(Helper.TAG, "Service create"); + super.onCreate(); + startForeground(NOTIFICATION_SYNCHRONIZE, getNotification(0, -1).build()); + + // Listen for network changes + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkRequest.Builder builder = new NetworkRequest.Builder(); + builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); + builder.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); + cm.registerNetworkCallback(builder.build(), networkCallback); + + DB.getInstance(this).account().liveStats().observe(this, new Observer() { + @Override + public void onChanged(@Nullable TupleAccountStats stats) { + if (stats != null) { + NotificationManager nm = getSystemService(NotificationManager.class); + nm.notify(NOTIFICATION_SYNCHRONIZE, getNotification(stats.accounts, stats.operations).build()); + } + } + }); + } + + @Override + public void onDestroy() { + Log.i(Helper.TAG, "Service destroy"); + + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + cm.unregisterNetworkCallback(networkCallback); + + networkCallback.onLost(cm.getActiveNetwork()); + + stopForeground(true); + + NotificationManager nm = getSystemService(NotificationManager.class); + nm.cancel(NOTIFICATION_SYNCHRONIZE); + + super.onDestroy(); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Log.i(Helper.TAG, "Service start"); + super.onStartCommand(intent, flags, startId); + + return START_STICKY; + } + + private Notification.Builder getNotification(int acounts, int operations) { + // Build pending intent + Intent intent = new Intent(this, ActivityView.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + PendingIntent pi = PendingIntent.getActivity( + this, ActivityView.REQUEST_VIEW, intent, PendingIntent.FLAG_UPDATE_CURRENT); + + // Build notification + Notification.Builder builder; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + builder = new Notification.Builder(this, "service"); + else + builder = new Notification.Builder(this); + + builder + .setSmallIcon(R.drawable.baseline_mail_outline_24) + .setContentTitle(getString(R.string.title_synchronizing, acounts)) + .setContentText(getString(R.string.title_operations, operations)) + .setContentIntent(pi) + .setAutoCancel(false) + .setShowWhen(false) + .setPriority(Notification.PRIORITY_MIN) + .setCategory(Notification.CATEGORY_STATUS) + .setVisibility(Notification.VISIBILITY_SECRET); + + if (operations >= 0) + builder.setContentText(getString(R.string.title_operations, operations)); + + return builder; + } + + private Notification.Builder getNotification(String action, Throwable ex) { + // Build pending intent + Intent intent = new Intent(this, ActivityView.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + PendingIntent pi = PendingIntent.getActivity( + this, ActivityView.REQUEST_VIEW, intent, PendingIntent.FLAG_UPDATE_CURRENT); + + // Build notification + Notification.Builder builder; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + builder = new Notification.Builder(this, "error"); + else + builder = new Notification.Builder(this); + + builder + .setSmallIcon(android.R.drawable.stat_notify_error) + .setContentTitle(getString(R.string.title_failed, action)) + .setContentText(Helper.formatThrowable(ex)) + .setContentIntent(pi) + .setAutoCancel(false) + .setShowWhen(true) + .setPriority(Notification.PRIORITY_MAX) + .setCategory(Notification.CATEGORY_ERROR) + .setVisibility(Notification.VISIBILITY_SECRET); + + return builder; + } + + private void monitorAccount(final EntityAccount account) { + final NotificationManager nm = getSystemService(NotificationManager.class); + Log.i(Helper.TAG, account.name + " start "); + + while (state.running) { + IMAPStore istore = null; + try { + Properties props = MessageHelper.getSessionProperties(); + props.put("mail.imaps.peek", "true"); + //props.put("mail.imaps.minidletime", "5000"); + Session isession = Session.getDefaultInstance(props, null); + // isession.setDebug(true); + // adb -t 1 logcat | grep "eu.faircode.email\|System.out" + + istore = (IMAPStore) isession.getStore("imaps"); + final IMAPStore fstore = istore; + + // Listen for events + istore.addStoreListener(new StoreListener() { + @Override + public void notification(StoreEvent e) { + Log.i(Helper.TAG, account.name + " event: " + e.getMessage()); + + // Check connection + synchronized (state) { + state.notifyAll(); + } + } + }); + istore.addFolderListener(new FolderAdapter() { + @Override + public void folderCreated(FolderEvent e) { + // TODO: folder created + } + + @Override + public void folderRenamed(FolderEvent e) { + // TODO: folder renamed + } + + @Override + public void folderDeleted(FolderEvent e) { + // TODO: folder deleted + } + }); + + // Listen for connection changes + istore.addConnectionListener(new ConnectionAdapter() { + List folderThreads = new ArrayList<>(); + + @Override + public void opened(ConnectionEvent e) { + Log.i(Helper.TAG, account.name + " opened"); + try { + synchronizeFolders(account, fstore); + + DB db = DB.getInstance(ServiceSynchronize.this); + for (final EntityFolder folder : db.folder().getFolders(account.id, true)) { + Log.i(Helper.TAG, account.name + " sync folder " + folder.name); + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + try { + monitorFolder(folder, fstore); + } catch (Throwable ex) { + Log.e(Helper.TAG, account.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + nm.notify("error", folder.id.intValue(), getNotification(folder.name, ex).build()); + + // Cascade up + try { + fstore.close(); + } catch (MessagingException e1) { + Log.w(Helper.TAG, account.name + " " + e1 + "\n" + Log.getStackTraceString(e1)); + } + } + } + }, "sync.folder." + folder.id); + folderThreads.add(thread); + thread.start(); + } + } catch (Throwable ex) { + Log.e(Helper.TAG, account.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + nm.notify("error", account.id.intValue(), getNotification(account.name, ex).build()); + + // Cascade up + try { + fstore.close(); + } catch (MessagingException e1) { + Log.w(Helper.TAG, account.name + " " + e1 + "\n" + Log.getStackTraceString(e1)); + } + } + } + + @Override + public void disconnected(ConnectionEvent e) { + Log.e(Helper.TAG, account.name + " disconnected"); + + // Check connection + synchronized (state) { + state.notifyAll(); + } + } + + @Override + public void closed(ConnectionEvent e) { + Log.e(Helper.TAG, account.name + " closed"); + + // Check connection + synchronized (state) { + state.notifyAll(); + } + } + }); + + // Initiate connection + Log.i(Helper.TAG, account.name + " connect"); + istore.connect(account.host, account.port, account.user, account.password); + + // Keep alive + boolean connected = false; + do { + try { + synchronized (state) { + state.wait(); + } + } catch (InterruptedException ex) { + Log.w(Helper.TAG, account.name + " " + ex.toString()); + } + if (state.running) { + Log.i(Helper.TAG, account.name + " NOOP"); + connected = istore.isConnected(); + } + } while (state.running && connected); + + if (state.running) + Log.w(Helper.TAG, account.name + " not connected anymore"); + else + Log.i(Helper.TAG, account.name + " not running anymore"); + + } catch (Throwable ex) { + Log.w(Helper.TAG, account.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + } finally { + if (istore != null) { + try { + istore.close(); + } catch (MessagingException ex) { + Log.w(Helper.TAG, account.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + } + } + } + + if (state.running) { + try { + Thread.sleep(10 * 1000L); // TODO: logarithmic back off + } catch (InterruptedException ex) { + Log.w(Helper.TAG, account.name + " " + ex.toString()); + } + } + } + + Log.i(Helper.TAG, account.name + " stopped"); + } + + private void monitorFolder(final EntityFolder folder, final IMAPStore istore) throws MessagingException, JSONException { + final NotificationManager nm = getSystemService(NotificationManager.class); + + IMAPFolder ifolder = null; + try { + Log.i(Helper.TAG, folder.name + " start"); + + ifolder = (IMAPFolder) istore.getFolder(folder.name); + final IMAPFolder ffolder = ifolder; + ifolder.open(Folder.READ_WRITE); + + // Listen for new and deleted messages + ifolder.addMessageCountListener(new MessageCountAdapter() { + @Override + public void messagesAdded(MessageCountEvent e) { + try { + Log.i(Helper.TAG, folder.name + " messages added"); + for (Message imessage : e.getMessages()) + synchronizeMessage(folder, ffolder, (IMAPMessage) imessage); + } catch (Throwable ex) { + Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + nm.notify("error", folder.id.intValue(), getNotification(folder.name, ex).build()); + + // Cascade up + try { + istore.close(); + } catch (MessagingException e1) { + Log.w(Helper.TAG, folder.name + " " + e1 + "\n" + Log.getStackTraceString(e1)); + } + } + } + + @Override + public void messagesRemoved(MessageCountEvent e) { + try { + Log.i(Helper.TAG, folder.name + " messages removed"); + for (Message imessage : e.getMessages()) { + long uid = ffolder.getUID(imessage); + DB db = DB.getInstance(ServiceSynchronize.this); + db.message().deleteMessage(folder.id, uid); + Log.i(Helper.TAG, "Deleted uid=" + uid); + } + } catch (Throwable ex) { + Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + nm.notify("error", folder.id.intValue(), getNotification(folder.name, ex).build()); + + // Cascade up + try { + istore.close(); + } catch (MessagingException e1) { + Log.w(Helper.TAG, folder.name + " " + e1 + "\n" + Log.getStackTraceString(e1)); + } + } + } + }); + + // Fetch e-mail + synchronizeMessages(folder, ifolder); + + // Flags (like "seen") at the remote could be changed while synchronizing + + // Listen for changed messages + ifolder.addMessageChangedListener(new MessageChangedListener() { + @Override + public void messageChanged(MessageChangedEvent e) { + try { + Log.i(Helper.TAG, folder.name + " message changed"); + synchronizeMessage(folder, ffolder, (IMAPMessage) e.getMessage()); + } catch (Throwable ex) { + Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + nm.notify("error", folder.id.intValue(), getNotification(folder.name, ex).build()); + + // Cascade up + try { + istore.close(); + } catch (MessagingException e1) { + Log.w(Helper.TAG, folder.name + " " + e1 + "\n" + Log.getStackTraceString(e1)); + } + } + } + }); + + BroadcastReceiver receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + Log.i(Helper.TAG, folder.name + " submit process id=" + folder.id); + executor.submit(new Runnable() { + @Override + public void run() { + try { + synchronized (folder) { + processOperations(folder, istore, ffolder); + } + } catch (Throwable ex) { + Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + nm.notify("error", folder.id.intValue(), getNotification(folder.name, ex).build()); + + // Cascade up + try { + istore.close(); + } catch (MessagingException e1) { + Log.w(Helper.TAG, folder.name + " " + e1 + "\n" + Log.getStackTraceString(e1)); + } + } + } + }); + } + }; + + // Listen for process operations requests + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(ServiceSynchronize.this); + lbm.registerReceiver(receiver, new IntentFilter(ACTION_PROCESS_OPERATIONS + folder.id)); + Log.i(Helper.TAG, folder.name + " listen process id=" + folder.id); + try { + lbm.sendBroadcast(new Intent(ACTION_PROCESS_OPERATIONS + folder.id)); + + // Keep alive + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + try { + boolean open; + do { + try { + Thread.sleep(NOOP_INTERVAL); + } catch (InterruptedException ex) { + Log.w(Helper.TAG, folder.name + " " + ex.toString()); + } + open = ffolder.isOpen(); + if (open) + noop(folder, ffolder); + } while (open); + } catch (Throwable ex) { + Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + nm.notify("error", folder.id.intValue(), getNotification(folder.name, ex).build()); + + // Cascade up + try { + istore.close(); + } catch (MessagingException e1) { + Log.w(Helper.TAG, folder.name + " " + e1 + "\n" + Log.getStackTraceString(e1)); + } + } + } + }, "sync.noop." + folder.id); + thread.start(); + + // Idle + while (state.running) { + Log.i(Helper.TAG, folder.name + " start idle"); + ifolder.idle(false); + Log.i(Helper.TAG, folder.name + " end idle"); + } + } finally { + lbm.unregisterReceiver(receiver); + Log.i(Helper.TAG, folder.name + " unlisten process id=" + folder.id); + } + } finally { + if (ifolder != null && ifolder.isOpen()) { + try { + ifolder.close(false); + } catch (MessagingException ex) { + Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + } + } + Log.i(Helper.TAG, folder.name + " stop"); + } + } + + private void processOperations(EntityFolder folder, IMAPStore istore, IMAPFolder ifolder) throws MessagingException, JSONException { + try { + Log.i(Helper.TAG, folder.name + " start process"); + + DB db = DB.getInstance(ServiceSynchronize.this); + DaoOperation operation = db.operation(); + DaoMessage message = db.message(); + for (TupleOperationEx op : operation.getOperations(folder.id)) { + Log.i(Helper.TAG, folder.name + + " Process op=" + op.id + "/" + op.name + + " args=" + op.args + + " msg=" + op.message); + + JSONArray jargs = new JSONArray(op.args); + + if (EntityOperation.SEEN.equals(op.name)) { + // Mark message (un)seen + try { + Message imessage = ifolder.getMessageByUID(op.uid); + if (imessage != null) + imessage.setFlag(Flags.Flag.SEEN, jargs.getBoolean(0)); + else + Log.w(Helper.TAG, "Remote message not found uid=" + op.uid); + } catch (MessagingException ex) { + // Countermeasure + Log.i(Helper.TAG, folder.name + " countermeasure " + op.id + "/" + op.name); + EntityMessage msg = message.getMessage(op.message); + msg.ui_seen = msg.seen; + message.updateMessage(msg); + throw ex; + } + + } else if (EntityOperation.ADD.equals(op.name)) { + // Append message + try { + EntityMessage msg = message.getMessage(op.message); + Properties props = MessageHelper.getSessionProperties(); + Session isession = Session.getDefaultInstance(props, null); + MimeMessage imessage = MessageHelper.from(msg, isession); + + ifolder.appendMessages(new Message[]{imessage}); + + // Draft can be saved multiple times + if (msg.uid != null) { + Message previously = ifolder.getMessageByUID(msg.uid); + previously.setFlag(Flags.Flag.DELETED, true); + ifolder.expunge(); + } + + message.deleteMessage(op.message); + } catch (MessagingException ex) { + // Countermeasure + // TODO: try again? + throw ex; + } + + } else if (EntityOperation.MOVE.equals(op.name)) { + // Move message + try { + Message imessage = ifolder.getMessageByUID(op.uid); + EntityFolder archive = db.folder().getFolder(jargs.getLong(0)); + Folder target = istore.getFolder(archive.name); + + ifolder.moveMessages(new Message[]{imessage}, target); + + message.deleteMessage(op.message); + } catch (MessagingException ex) { + // Countermeasure + Log.i(Helper.TAG, folder.name + " countermeasure " + op.id + "/" + op.name); + EntityMessage msg = message.getMessage(op.message); + msg.ui_hide = false; + message.updateMessage(msg); + throw ex; + } + + } else if (EntityOperation.DELETE.equals(op.name)) { + // Delete message + try { + if (op.uid != null) { + Message imessage = ifolder.getMessageByUID(op.uid); + if (imessage != null) { + imessage.setFlag(Flags.Flag.DELETED, true); + ifolder.expunge(); + } else + Log.w(Helper.TAG, "Remote message not found uid=" + op.uid); + } else { + // Not appended draft + Log.w(Helper.TAG, "Delete without uid id=" + op.message); + } + + message.deleteMessage(op.message); + } catch (MessagingException ex) { + // Countermeasure + Log.i(Helper.TAG, folder.name + " countermeasure " + op.id + "/" + op.name); + EntityMessage msg = message.getMessage(op.message); + msg.ui_hide = false; + message.updateMessage(msg); + throw ex; + } + + } else if (EntityOperation.SEND.equals(op.name)) { + // Send message + EntityMessage msg = message.getMessage(op.message); + EntityMessage reply = (msg.replying == null ? null : message.getMessage(msg.replying)); + EntityIdentity ident = db.identity().getIdentity(msg.identity); + + try { + Properties props = MessageHelper.getSessionProperties(); + Session isession = Session.getDefaultInstance(props, null); + + MimeMessage imessage; + if (reply == null) + imessage = MessageHelper.from(msg, isession); + else + imessage = MessageHelper.from(msg, reply, isession); + if (ident.replyto != null) + imessage.setReplyTo(new Address[]{new InternetAddress(ident.replyto)}); + + Transport itransport = isession.getTransport(ident.starttls ? "smtp" : "smtps"); + try { + itransport.connect(ident.host, ident.port, ident.user, ident.password); + + Address[] to = imessage.getRecipients(Message.RecipientType.TO); + itransport.sendMessage(imessage, to); + Log.i(Helper.TAG, "Sent via " + ident.host + "/" + ident.user + + " to " + TextUtils.join(", ", to)); + + // Make sure the message is sent only once + operation.deleteOperation(op.id); + + message.deleteMessage(op.message); + } finally { + itransport.close(); + } + + } catch (MessagingException ex) { + // Countermeasure + Log.i(Helper.TAG, folder.name + " countermeasure " + op.id + "/" + op.name); + EntityFolder drafts = db.folder().getPrimaryDraftFolder(); + msg.folder = drafts.id; + message.updateMessage(msg); + // Message will not be sent to remote + throw ex; + } + + } else + throw new MessagingException("Unknown operation name=" + op.name); + + operation.deleteOperation(op.id); + } + } finally { + Log.i(Helper.TAG, folder.name + " end process"); + } + } + + private void synchronizeFolders(EntityAccount account, IMAPStore istore) throws MessagingException { + try { + Log.i(Helper.TAG, "Start sync folders"); + + DaoFolder dao = DB.getInstance(this).folder(); + + List names = new ArrayList<>(); + for (EntityFolder folder : dao.getUserFolders(account.id)) + names.add(folder.name); + Log.i(Helper.TAG, "Local folder count=" + names.size()); + + Folder[] ifolders = istore.getDefaultFolder().list("*"); + Log.i(Helper.TAG, "Remote folder count=" + ifolders.length); + + for (Folder ifolder : ifolders) { + String[] attrs = ((IMAPFolder) ifolder).getAttributes(); + boolean candidate = true; + for (String attr : attrs) { + if ("\\Noselect".equals(attr)) { + candidate = false; + break; + } + if (attr.startsWith("\\")) + if (EntityFolder.STANDARD_FOLDER_ATTR.contains(attr.substring(1))) { + candidate = false; + break; + } + } + if (candidate) { + Log.i(Helper.TAG, ifolder.getFullName() + " candidate attr=" + TextUtils.join(",", attrs)); + EntityFolder folder = dao.getFolder(account.id, ifolder.getFullName()); + if (folder == null) { + folder = new EntityFolder(); + folder.account = account.id; + folder.name = ifolder.getFullName(); + folder.type = EntityFolder.TYPE_USER; + folder.synchronize = false; + folder.after = 0; + dao.insertFolder(folder); + Log.i(Helper.TAG, folder.name + " added"); + } else + names.remove(folder.name); + } + } + + Log.i(Helper.TAG, "Delete local folder=" + names.size()); + for (String name : names) + dao.deleteFolder(account.id, name); + } finally { + Log.i(Helper.TAG, "End sync folder"); + } + } + + private void synchronizeMessages(EntityFolder folder, IMAPFolder ifolder) throws MessagingException, JSONException { + try { + Log.i(Helper.TAG, folder.name + " start sync after=" + folder.after); + + DB db = DB.getInstance(ServiceSynchronize.this); + DaoMessage dao = db.message(); + + // Get reference times + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DAY_OF_MONTH, -folder.after); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + + long ago = cal.getTimeInMillis(); + Log.i(Helper.TAG, folder.name + " ago=" + new Date(ago)); + + // Delete old local messages + int old = dao.deleteMessagesBefore(folder.id, ago); + Log.i(Helper.TAG, folder.name + " local old=" + old); + + // Get list of local uids + List uids = dao.getUids(folder.id, ago); + Log.i(Helper.TAG, folder.name + " local count=" + uids.size()); + + // Reduce list of local uids + long search = SystemClock.elapsedRealtime(); + Message[] imessages = ifolder.search(new ReceivedDateTerm(ComparisonTerm.GE, new Date(ago))); + Log.i(Helper.TAG, folder.name + " remote count=" + imessages.length + + " search=" + (SystemClock.elapsedRealtime() - search) + " ms"); + + FetchProfile fp = new FetchProfile(); + fp.add(UIDFolder.FetchProfileItem.UID); + fp.add(IMAPFolder.FetchProfileItem.FLAGS); + ifolder.fetch(imessages, fp); + + long fetch = SystemClock.elapsedRealtime(); + Log.i(Helper.TAG, folder.name + " remote fetched=" + (SystemClock.elapsedRealtime() - fetch) + " ms"); + + List added = new ArrayList<>(); + for (Message imessage : imessages) + if (!imessage.isExpunged() && !imessage.isSet(Flags.Flag.DELETED)) { + long uid = ifolder.getUID(imessage); + if (!uids.remove(uid)) + added.add(imessage); + } + + // Delete local messages not at remote + Log.i(Helper.TAG, folder.name + " delete=" + uids.size()); + for (Long uid : uids) { + Log.i(Helper.TAG, folder.name + " delete local uid=" + uid); + dao.deleteMessage(folder.id, uid); + } + Log.i(Helper.TAG, folder.name + " synced"); + + Log.i(Helper.TAG, folder.name + " added count=" + added.size()); + for (int batch = 0; batch < added.size(); batch += FETCH_BATCH_SIZE) { + Log.i(Helper.TAG, folder.name + " fetch @" + batch); + try { + db.beginTransaction(); + for (int i = 0; i < FETCH_BATCH_SIZE && batch + i < added.size(); i++) + synchronizeMessage(folder, ifolder, (IMAPMessage) added.get(batch + i)); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + } + } finally { + Log.i(Helper.TAG, folder.name + " end sync"); + } + } + + private void synchronizeMessage(EntityFolder folder, IMAPFolder ifolder, IMAPMessage imessage) throws MessagingException, JSONException { + FetchProfile fp = new FetchProfile(); + fp.add(UIDFolder.FetchProfileItem.UID); + fp.add(IMAPFolder.FetchProfileItem.FLAGS); + ifolder.fetch(new Message[]{imessage}, fp); + + boolean expunged = imessage.isExpunged(); + boolean deleted = (!expunged && imessage.isSet(Flags.Flag.DELETED)); + if (expunged || deleted) { + Log.i(Helper.TAG, "Message gone expunged=" + expunged + " deleted=" + deleted); + return; + } + + long uid = ifolder.getUID(imessage); + Log.i(Helper.TAG, folder.name + " sync uid=" + uid); + + MessageHelper helper = new MessageHelper(imessage); + boolean seen = helper.getSeen(); + + DB db = DB.getInstance(ServiceSynchronize.this); + EntityMessage message = db.message().getMessage(folder.id, uid); + if (message == null) { + FetchProfile fp1 = new FetchProfile(); + fp1.add(FetchProfile.Item.ENVELOPE); + fp1.add(FetchProfile.Item.CONTENT_INFO); + fp1.add(IMAPFolder.FetchProfileItem.HEADERS); + fp1.add(IMAPFolder.FetchProfileItem.MESSAGE); + ifolder.fetch(new Message[]{imessage}, fp1); + + message = new EntityMessage(); + message.account = folder.account; + message.folder = folder.id; + message.uid = uid; + message.msgid = helper.getMessageID(); + message.references = TextUtils.join(" ", helper.getReferences()); + message.inreplyto = helper.getInReplyTo(); + message.thread = helper.getThreadId(uid); + message.from = helper.getFrom(); + message.to = helper.getTo(); + message.cc = helper.getCc(); + message.bcc = null; + message.reply = helper.getReply(); + message.subject = imessage.getSubject(); + message.body = helper.getHtml(); + message.received = imessage.getReceivedDate().getTime(); + message.sent = imessage.getSentDate().getTime(); + message.seen = seen; + message.ui_seen = seen; + message.ui_hide = false; + + message.id = db.message().insertMessage(message); + Log.i(Helper.TAG, folder.name + " added uid=" + uid + " id=" + message.id); + } else if (message.seen != seen) { + message.seen = seen; + message.ui_seen = seen; + + db.message().updateMessage(message); + Log.i(Helper.TAG, folder.name + " updated uid=" + uid + " id=" + message.id); + } + } + + private void noop(EntityFolder folder, final IMAPFolder ifolder) throws MessagingException { + Log.i(Helper.TAG, folder.name + " request NOOP"); + ifolder.doCommand(new IMAPFolder.ProtocolCommand() { + public Object doCommand(IMAPProtocol p) throws ProtocolException { + Log.i(Helper.TAG, ifolder.getName() + " start NOOP"); + p.simpleCommand("NOOP", null); + Log.i(Helper.TAG, ifolder.getName() + " end NOOP"); + return null; + } + }); + } + + ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() { + private Thread mainThread; + private EntityFolder outbox = null; + + @Override + public void onAvailable(Network network) { + Log.i(Helper.TAG, "Available " + network); + + synchronized (state) { + if (!state.running) { + state.threads.clear(); + state.running = true; + + mainThread = new Thread(new Runnable() { + @Override + public void run() { + DB db = DB.getInstance(ServiceSynchronize.this); + try { + List accounts = db.account().getAccounts(true); + if (accounts.size() == 0) { + Log.i(Helper.TAG, "No accounts, halt"); + stopSelf(); + } else + for (final EntityAccount account : accounts) { + Log.i(Helper.TAG, account.host + "/" + account.user + " run"); + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + try { + monitorAccount(account); + } catch (Throwable ex) { + // Fallsafe + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + } + }, "sync.account." + account.id); + state.threads.add(thread); + thread.start(); + } + } catch (Throwable ex) { + // Failsafe + Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + + outbox = db.folder().getOutbox(); + if (outbox != null) { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(ServiceSynchronize.this); + lbm.registerReceiver(receiverOutbox, new IntentFilter(ACTION_PROCESS_OPERATIONS + outbox.id)); + Log.i(Helper.TAG, outbox.name + " listen process id=" + outbox.id); + lbm.sendBroadcast(new Intent(ACTION_PROCESS_OPERATIONS + outbox.id)); + } + + } + }, "sync.main"); + mainThread.start(); + } + } + } + + @Override + public void onLost(Network network) { + Log.i(Helper.TAG, "Lost " + network); + + synchronized (state) { + if (state.running) { + state.running = false; + state.notifyAll(); + } + } + + if (outbox != null) { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(ServiceSynchronize.this); + lbm.unregisterReceiver(receiverOutbox); + Log.i(Helper.TAG, outbox.name + " unlisten process id=" + outbox.id); + } + } + + BroadcastReceiver receiverOutbox = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + Log.i(Helper.TAG, outbox.name + " submit process id=" + outbox.id); + executor.submit(new Runnable() { + @Override + public void run() { + try { + synchronized (outbox) { + processOperations(outbox, null, null); + } + } catch (Throwable ex) { + Log.e(Helper.TAG, outbox.name + " " + ex + "\n" + Log.getStackTraceString(ex)); + NotificationManager nm = getSystemService(NotificationManager.class); + nm.notify("error", outbox.id.intValue(), getNotification(outbox.name, ex).build()); + } + } + }); + } + }; + }; + + public static void start(Context context) { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + NotificationManager nm = context.getSystemService(NotificationManager.class); + + NotificationChannel service = new NotificationChannel( + "service", + context.getString(R.string.channel_service), + NotificationManager.IMPORTANCE_MIN); + service.setSound(null, Notification.AUDIO_ATTRIBUTES_DEFAULT); + nm.createNotificationChannel(service); + + NotificationChannel error = new NotificationChannel( + "error", + context.getString(R.string.channel_error), + NotificationManager.IMPORTANCE_HIGH); + nm.createNotificationChannel(error); + } + + ContextCompat.startForegroundService(context, new Intent(context, ServiceSynchronize.class)); + } + + public static void restart(Context context, String reason) { + Log.i(Helper.TAG, "Restart because of '" + reason + "'"); + context.stopService(new Intent(context, ServiceSynchronize.class)); + start(context); + } +} diff --git a/app/src/main/java/eu/faircode/email/TupleAccountStats.java b/app/src/main/java/eu/faircode/email/TupleAccountStats.java new file mode 100644 index 0000000000..eb057a5c58 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/TupleAccountStats.java @@ -0,0 +1,25 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +public class TupleAccountStats { + public Integer accounts; + public Integer operations; +} diff --git a/app/src/main/java/eu/faircode/email/TupleFolderEx.java b/app/src/main/java/eu/faircode/email/TupleFolderEx.java new file mode 100644 index 0000000000..a867db7141 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/TupleFolderEx.java @@ -0,0 +1,38 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +public class TupleFolderEx extends EntityFolder { + public String accountName; + public int messages; + public int unseen; + + @Override + public boolean equals(Object obj) { + if (obj instanceof TupleFolderEx) { + TupleFolderEx other = (TupleFolderEx) obj; + return (super.equals(obj) && + this.accountName == null ? other.accountName == null : accountName.equals(other.accountName) && + this.messages == other.messages && + this.unseen == other.unseen); + } else + return false; + } +} diff --git a/app/src/main/java/eu/faircode/email/TupleMessageEx.java b/app/src/main/java/eu/faircode/email/TupleMessageEx.java new file mode 100644 index 0000000000..ce3bd06846 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/TupleMessageEx.java @@ -0,0 +1,39 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +public class TupleMessageEx extends EntityMessage { + public String folderName; + public String folderType; + public int count; + public int unseen; + + @Override + public boolean equals(Object obj) { + if (obj instanceof TupleMessageEx) { + TupleMessageEx other = (TupleMessageEx) obj; + return (super.equals(obj) && + this.folderType.equals(other.folderType) && + this.count == other.count && + this.unseen == other.unseen); + } + return super.equals(obj); + } +} diff --git a/app/src/main/java/eu/faircode/email/TupleOperationEx.java b/app/src/main/java/eu/faircode/email/TupleOperationEx.java new file mode 100644 index 0000000000..610d2b424f --- /dev/null +++ b/app/src/main/java/eu/faircode/email/TupleOperationEx.java @@ -0,0 +1,24 @@ +package eu.faircode.email; + +/* + This file is part of Safe email. + + Safe email 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. + + NetGuard 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 NetGuard. If not, see . + + Copyright 2018 by Marcel Bokhorst (M66B) +*/ + +public class TupleOperationEx extends EntityOperation { + public Long uid; +} diff --git a/app/src/main/res/drawable-hdpi/baseline_add_black_18.png b/app/src/main/res/drawable-hdpi/baseline_add_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..0f43523a473c736d30724dc1122946f6df32a13f GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0d!kAKn2q?;>J7f+L9C}ifVVa&S8YLms|u~COHMS<0#QRK8u!w&|&KTKH|k1|%Oc%$NbB{5@S9Ln;{GPGe+aFyL@4-_rN3 z|JvDY0&FQQN2_fZ;)HY=8p?G-vR*TbybECwbP;eo8?nM^f0Iqf!cyP+OW9a><0Qk~ i0(c!+K0aYSki%D}S+dnWQ#b`^G=rzBpUXO@geCx!_$WF6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_add_black_36.png b/app/src/main/res/drawable-hdpi/baseline_add_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..db449bb0b47b2bb6bb40ef0096f0765fb0c7546a GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^G*1`DkP61PHyc?G7zngo>?=`D zS<+K6dnvmDm#%2%_m9ji?3_iOlT7frkTh$UimZzeAf6uhyBxN__CSN4ei1%7`x vPv45zaz~tv?b)XfeT^{i(`}N9=Oy0PN^AuQ@0S?@ZDjCt^>bP0l+XkKa+f&@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_add_black_48.png b/app/src/main/res/drawable-hdpi/baseline_add_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..a84106b01fd4402e5d15b08c496a75b76e811999 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xf3?%cF6p=fS?83{ F1OO~S9V-9; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_add_white_18.png b/app/src/main/res/drawable-hdpi/baseline_add_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..5f7e7bf691ad6c76b86f270252cea193dcbe2767 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0d|k1|%Oc%$NbB0zF+ELn;{GUSniqP~dTU*tc!* z+l<{e<&Q9kb|3vMArKcN#Zcfm$@7!xHN_KC=O{FBD7`qkc>BzNuI8^{TYqc)^A7m0 m{CL_`ufFVdQ&MBb@07vc`*Z=?k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_archive_black_18.png b/app/src/main/res/drawable-hdpi/baseline_archive_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..41c5a87b7c3ef0164cc3608ca3016d3f663aba1c GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(D>pfi@Ln;`rUTS1J6d=<6F<(Ex z*72JLGtVq12}XeyMy4+^&TnPegt#;=7+(p#QW|(8wC|OL;;rxOhxyOx<*q(FrFD~C z{;Q(2)eDr>t4?&>C`fepRG7SOO{akGj+ti8TTC{IE;@B$Reh4{j`)wV-WgswZv^V{ ze1c{6eYg6YvS->uQMH9GTHFRtBfGZGJ2KI3g7F*|hei{%hce$6hX+YTc50Y!l1XvS gDtndXwq>Pte2I6+55;Ispwk&VUHx3vIVCg!0Q=Ed2mk;8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_archive_black_24.png b/app/src/main/res/drawable-hdpi/baseline_archive_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d3687d0459e701c8403f74dd8b6a4481ddccb8a8 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lpc25__kP5~m1<4*JzqX1tHl+lc z0984K69tnW+E4r-7GTPE;8X$2iUo}v<;F%j%&Tmet~83CVeqO;$WS?zeU>M_aaB6w zt>wwg4G9b#i?$1B2c*lc3W;neUAnl1pW#9L|6P+K78D(IT9_g_g==T%gx?GQE^y0l z*pt*Ndis2`$HbX!K+HQ)$ryr}HghPsrb#KWrm4BC+VNydnP^Ju8Lbl@I`L;xq%FHc)I$ztaD0e0sy=IIq@X~dELbdAG(b~8GJsql_gPdSH|QODhdo9qRD;xt0IgKr^V}1-6hF>bhgb=w2XEkDt^w^paox4YR?tzZ25QI0bh-tCdj+8yG&TUrb5SojZE!V*?f9j*R5tm3#T zVFSbVOgX11`v@$8Qz{-)E`o}|lq&(dQmNjU&`@Gi4dR6IO~&1o%j$1;pwT&ZWwg8w60 sE!nw1JC<~4Ou>TCV+#t#q*4R!2TfZvP^^80z14xkt6H%UqO=_SvJmUFL>pwvYX_m?8)9KS}$lP3C@R`&nnPJhk@OjQ5hU%WD$$ zS=vT@ZTfld<>EIz`DebnbjxjQ@#Qc}o6dC0Q0)qj_pP3Q`pgBQ3%_M9uwAH=&#D#B zXcgDUwWL}jppol}!J`>&CPot)p2(P<@MP)}c%s7S&QUa}L7BzU^MGK}9F+$gj($P~ zEeh(K7ETi;KbpgXmtdJNdCp|cuJsPAx0V!|wfyp7t`&Tx$ZMh)((lTZ?%1E;JZ*0A qG@i_h4Vu2`Gukwnm4IFj{r|?-sh({{n*lH=89ZJ6T-G@yGywpy{F90R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_archive_white_18.png b/app/src/main/res/drawable-hdpi/baseline_archive_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..03b42f792ea64b7bdb47d849d2c21dc46c631f12 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(Dn><|{Ln;`rUTS1J6d=;@aI^S| zc?#827}h-xyiN@Q@Lx_>fC;mogUe`{?+`5g}=4;C3oIaw=27N zy!Wf!wa=DkqKsa;xJjppNr@zI1y{Ozy^i&4b_$aEVAR^R$LHa!XYTu#90|{i>{}m` j|k0wldT1B8LpW=|K#kP61PmlZh<1&Fjh%#MhN zc^_DP`%_i?`B`yQN!N7B-q@}$e=FO)<6CsA@$ kcEuHzMa7M`iZ)j<^}T#|yZlHQ8_@X-p00i_>zopr0DjwFsQ>@~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_archive_white_36.png b/app/src/main/res/drawable-hdpi/baseline_archive_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b0f8156419b07463f39bcfc391718354c61d169e GIT binary patch literal 344 zcmV-e0jK_nP);?8dLxR0Q@6bE!F(R0T<(dIy312WUyPfUqjLH4| z0S+GroD-UwPCqxw#NF%%of$i%v9sN=M~C*bD>Ve~u0le(KEZIe!z+Bb4T&jzW2GBA z*iwNH6X~l!<@#^zMb4f>eJDw44{7pKxODn;0mLPc(jxnc`7CmoA( zaViVOTsy4OHs_caGwn4sBLf!a;#4k-sj1qUH%L$Jdi7XK?pmQfZ*uk;`=aK*#QF>@ q zc*;&?S(atoFeR=9uUsF(xnoUqYi{@DT(RUBExFu>bHOid_a!7wc%$uy^RioXnbP)L z!s3(<+NN~MF7ZO!JKYi(XMEH4RD3*Aqmktd*-)bmLkF5rtBC{sQLBXmZK>7Pfhv}u z1SROWB`86GhXf@kK@Ed)Kn!SNL7wC}9^^@$6Akht&+#Bj@|<{(CwYzsS(4|(gFMM| zJjjwfCm!TUp5sBDBsei3PZFFMkS7UF49JrNCkEt6f)fMsB*6&*c~S#)LB0efXhp47 z4)jT_z8vU*T8$j2!;Biu=oA-y<{Y~@{oZ(8w7H0!4?*$QUjWZalgc=z<{Tp2zb%z}$i- zeS(?9AM@T_4yS$6WQ``zJR=s=ZQT0O@5#x)W1UO&T$V5jiZ3azW?1v}cTu|kFHNAm N44$rjF6*2UngF=cI;;Qy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_black_24.png b/app/src/main/res/drawable-hdpi/baseline_delete_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b80b30b828afb5e30c11a72b0bde26508dd31159 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBN<3X0Ln;{GoNHt~U?9Tw(5dt( z!@U?uMP=4Y(F>UNPuumF`9WX5(e4WY{8D~8y(lxEa z;0z(2&T5?58KG=oBJg^inSlNB1BUty5$%nq97H;dPiEXmZ~A(Pv!^MLfx%Myz=U*v RmL{P644$rjF6*2UngC2DK9B$a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_black_36.png b/app/src/main/res/drawable-hdpi/baseline_delete_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..cca72a00701bf5c290ccc478a335f956d9a59305 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+PEQxdkP61P=MQo=J21Fh>^JWg z&`I>ZVbrAVDam;vDfOD@L0@LMO~PWK&-@wt5AO69>#*hyd2!P1-pyl+g+kk-PrQic zJJ8ds@}+mq?s*z(+_fgQE}flltVhx~?aU0r>%KJaH?>X z!QGn+f4eMWD0E&j(^KGO<8J@H1ZYTywI>7I_oTk&ot<}N u<}Kc(uZ#BIsZl(0=iVD9pv}7$$*x|`yu#)4HASGq89ZJ6T-G@yGywoaB2I4r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_white_18.png b/app/src/main/res/drawable-hdpi/baseline_delete_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..fd40f59fcce19387cc526bd6467e8168b7d399b2 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0d?w7Y-C*(*KjAxO{ybZI5^Sis;BV|k1|%Oc%$NbB$~|2iLn;{GoNHt~V8Fn7(V^ri zgHgEK36I9tETT`cS6cHmgum(L+0nrErCmDU{-KbB4f#g`9n|CXf3y76S)lIMr1aFG ziG@>0#bbhkW0TnPwJI4!_k5b(Wio#(=92l$)KR+P?geqyM?OYU-)Ac9zopr03v%m0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_white_36.png b/app/src/main/res/drawable-hdpi/baseline_delete_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..994adf0d708cca14309746e07e39883b4b94845f GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+E>9Q7kP61PXAg2VJBYA7Y&Y)~ z&`I>ZVbrAVDam;vDfQY^R(0Nr3)^*8{V`^(S$0KMS-_mnbcMNg^x8dIfuR;+UQvDr zT6&i>x$iFd;&Oa1zjuWf|G^ecVKtu_28oASIA?z_`MH77znTB_2^rnXGxgK@%x0TQ s*`<8@_SidF^`cORHQ$zHS8{(b&o}X6j=Rhs0(2FFr>mdKI;Vst044-P8~^|S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-hdpi/baseline_delete_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..498b52f659c35e64ef3511e0ab23c4400c0b64a7 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!OFdm2Ln;{GUf9U%$SBcpP`p?6 zM&G4*hZw5LF4VhC(AYEoPH(~KR}2gbZiV;TeP8jdsA|5-bNNZX1e;hmg;YEQHY{or zRPmUg;0Wfw$cG5S_;3jX_lw|ZhKC-~KG_Uq~)@GlOx2vLG?+o3Y rx+yDq?yBnh#q0g9mi+{}wSrOUtnF0Y$gPP$2QzrO`njxgN@xNAU0P63 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_black_18.png b/app/src/main/res/drawable-hdpi/baseline_edit_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..0a29b77b68e76f354c06904de45d0c4ff4f02031 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(D9iA?ZAr*{I&#N*q1v0o^?0&th zK&aCtiPI#etZBE3QJ(do*xM)i57+*zakQ4~c;uSu#uoFwd*Ld+>)*LnoH+ZATlv(# zD@uP_ew&}xa*SO!hlBB;x=eC#%RK9S4+Xl5zBI3Jc;D-KLB`tX<;uT|w>lKnH;K9k lOo1Vl88+7sc82X@l>FB@VG;ZFmq0f$c)I$ztaD0e0sv9-N^AfC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_black_24.png b/app/src/main/res/drawable-hdpi/baseline_edit_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..dffcd9f61a79913ea289c0a255afab2494532cb8 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpPEQxdkP61PXBycKC5SjY{LHpc zpe;qhMag4^gF=JcLh&2SJPi!CNfB)(6NCON>^}Bjm${TRdqe-a`6dbO^2MC0jl#+N zY7r|J8t`3d3|K65g zZD3lEp76xldx~nQ+rEieGdE3)+%mIs?~Fx_JF5(fLwfhjcr0%?k)OGeIhZrKMQd3? pd&@?rLlKJ1%$k;)3}VmiWn};V$;>=IlNaa-22WQ%mvv4FO#m$xRv-WX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_black_36.png b/app/src/main/res/drawable-hdpi/baseline_edit_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..25678d6de970f4cf8d98452f9f2d184b7b126530 GIT binary patch literal 304 zcmV-00nh%4P)6_%g=JPwp^mikG-9oSGg>A)DUNEQ7GKnBdXOc zb-7*PQXg=G1UmhNg)4f(jS}LD8t3f6_9=hBO%bj@$qo^YE~3;Z;VO{SDA^HJTF32k z>v2a-zd`jA_y?&$ODY5>#aL1cp884&mek76p++sK@LxxzSW@d&RE!-3MRpVv*-=pR zeo7OY5=tGLA_{CU6$*;%C@8X{Ae5pWq0000 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_black_48.png b/app/src/main/res/drawable-hdpi/baseline_edit_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..82f8563d1e2af42787d9f75cbed64d07b1358815 GIT binary patch literal 299 zcmV+`0o4A9P)Q9~FOH2gL;-(VWx_F#oH%==NEt|;90SRjV<5S545S`k zj)COD@g^BK22#5t$M6_M!O0iSj2fpnIKk26l&f(zf)kwJ1SdFo%31zv4qxPy^5=|k0wldT1B8LpZci7-kP61Pml)ZY0tMPX<_T~q zs&uz{uyAS%a4b+RX|z4SB(Ola&DTRas7wEv{AuRoIFaABdklXxzN}en_Up}ypEIWz z7bM9vAM`X75N@Dab^-%U=xJu}sOc9ovPRGzmy2fRb{)HWIlXSrR8nlksH z(`NP6RrgB`ULCwtSEtBaZuDDJ*huH!OwS}k)x_-)XYL&9NisYxpVSuT7AO$bS?DAh rY^;3ZJjW;FrkEb3#SZ>H(NFBY9+lCo_`cl-=nV!>S3j3^P6>RU=XL*mDJ6W7u{OsQ>WA2LMaT}f$P4wQuC*rAI;4ryXtIhM>?nM{% zM9<4KFu4nPdq~OTdRWQ4%&9%G^+nN3HT`ON*Z3mVXDd7(O!%apH~sq88B3Q;R@eJ2 zYVNq>qWYgBq5B@Ebr`vx{kY5cRa{~Bkz0$Fbc^3n;Jmg%eciq4Q+legmomQX{<|x& z_=-@xxm$%mknpT23)SZ=@my>DN`B%p&)nbqri(p~vdK(c>iIS^(9>&*%Tg)T86fmk zb(_W%zHJ^&iCzY#V5I7$H0zYP@;UBPG3%mvf|fjPJF-w07zPZUu6{1-oD!M<1$cf8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_white_48.png b/app/src/main/res/drawable-hdpi/baseline_edit_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..340b50527071302d0fd985037992d2d43e25064f GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawK6tt~hEy=VJ=eIjiBW|0LC~Zp zw)t)9ObUz{4PqISwq^7wsZ8;h7|_ASsmNeu$vj2+-|HoxeLqZn6FoyR>c{nye-gQ) z9)&Ob+-%(8m!VbqqM*vygr!TRjZoQ%|+#jX`PZ0jJ)uc+H&auyXos&MB9y zn3fi_=ViPu$>=(@yyVWz)upT6?O1$sTluH^G9^;qQ`Bs&Qrl$Q35Vfi@YLfvNxi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_folder_black_18.png b/app/src/main/res/drawable-hdpi/baseline_folder_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1884dc692036bcec444450e97cf44773fefbecde GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(D>7Fi*Ar*{IPj3`;Fc5LL7%tJ4 z%(ztWLX^tV+L9HC!pRnyi_R?n_)_To)#>t6l3pBH$`%@N=czL@J3mW~X1=(}q_Y-J zt#{5l`8z-7YYu1QTEWe_EN1%>Ca0T*b?Wdg;&J}ILs9vcpNCh`?R%n+uK}%O@O1Ta JS?83{1OVfVIk5l$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_folder_black_24.png b/app/src/main/res/drawable-hdpi/baseline_folder_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..7b7f03858f6e68e908bbd32a281bd6fdc0293622 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBB0XIkLn;{GUf(F#;K0M|SpH(# zicj|SFAncuQRQGSH$G(^`bR)8HUF#E9Z~u3FC_R^eW?sEtY`AuqBpF1W}my&A$C^!k)IK6bJCAi zhRtD*yWF+yNt3PhrbFk}7_hVPNEjp>XlRuJk&Mhx?pDr#vvDDtea+|?tL^6E d;!<47+$RvDcaP`xPM~WTJYD@<);T3K0RStDL=6A{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_folder_black_48.png b/app/src/main/res/drawable-hdpi/baseline_folder_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e13aea3a4ed64af0bfc71ce4ed7957e37d07163f GIT binary patch literal 248 zcmVdHRo0qfC1eQK1rIb?1H6_qs zA8pO(&DdjKY{jTeC^5_rX^vr@NG0Zrbi{m-PFTb>1ab$U-VPMLK*olNFOaeH2HNqo z^It%nH<0}f66lf|NFaf(0u2NSbW05+kU)2V27&}KfdmprAc6XI-tL&Kx5H}T?b6Gr yqH`)TUQ|#=<QFWTH$!6p00007Fi*Ar*{wPj3`;Fc5LLDAM*Y z!XcAoim; z%)MgBv&`aI>sw8O`G(d(3EaQJ5^Wh{8xMMfMBI5l?NrKr-uIt46NMa>IsvU@@O1Ta JS?83{1OOQ|J*)r# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_folder_white_24.png b/app/src/main/res/drawable-hdpi/baseline_folder_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..a373fd4199749441c5a3e2086acb6bfba289a437 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBf<0XvLn;{Go--6Zpdi3%Ad|FG zD{=YPiBSoS<%j#5wsh>^l|8)gdC3cAjfqSelbeDxzw>8?lk->;Y{c(mxDKG1juPgg&ebxsLQ07&*Png9R* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_folder_white_36.png b/app/src/main/res/drawable-hdpi/baseline_folder_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..887bad760fb6a7a168f3564276f6f9fa97e8f0f3 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^Do+>3kP61P=Qj#AIWRCdzPTCE z?%~zyVI7ejz&mgLZN4(gi7K8=++lC(isf~`eXzeiF-d=h9=ky--?B3Yr&uQ6-uTEU znkQkl>9;wi%OW-=9qkg;4qF3av;~2wF45b)`TuQ>9saTHsq~JA2J@I-Pg3zb_mo%L Wq4%ypEPn#f6%3xPelF{r5}E-2C`3;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_folder_white_48.png b/app/src/main/res/drawable-hdpi/baseline_folder_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d5142e476dcfdec1cdd068a57c492ee4c32fec69 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawc6quuhEy=Vy8~`$#ksqYURZhYd?Nur^IKy-+7n@=*TkHHSZZ zLN8`Xdnh#K^>`~ZzT4TzBJ|?m4j`clWC4Y%vaQq7b0c)u>h7I1>&n$Bc@|8(n%Nxh oYAcjvHD7g9ET0nOm3mG1@P+Ns!9C}DfxckyboFyt=akR{0GH-qO#lD@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_forward_black_18.png b/app/src/main/res/drawable-hdpi/baseline_forward_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..d5d65447b93edc262ffea7a99d21e73965e570f1 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0dP#7@1xxPJP^2C)~ubF#Vm!1Tmm344$rjF6*2UngD0~E2#hg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_forward_black_24.png b/app/src/main/res/drawable-hdpi/baseline_forward_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..6e87adeb3a37f1824d443241f4939ace0a0f0270 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBVmw_OLn;{Go-^cXa1c0fz~)w5 zwY;o%b$>I5w1@ql6`8aAk~n2rHno9Zk@=~m<_p#=guy#MLYeN?tZZ8dgo+K3tHBHq g=iyPG%U9kpzE6<*V0u#X3D6z}Pgg&ebxsLQ09xug@c;k- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_forward_black_36.png b/app/src/main/res/drawable-hdpi/baseline_forward_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..e5deca8d32d2320a00b5ffb341931c25cd5578ac GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^JWm(LkP61PHyb$_6nG98_}_p2 zmAh~$D?dla3!6|NNN!C$iVQzW_qD&)mS4ifPsc}oZl-GVy3YE(AHwjwmP%X70Xo0Qnt{|JYnhaB!-fGSO h5-$_ASbskL#W0cO#M((0vWh@X@pScbS?83{1OP7XjFe|dzkX5i)z>uBy^S#g;>gjxz t&n6`ERbFK|Vb~zU3?w9~*IgF-`(V$$w7$zfp93vn@O1TaS?83{1OPSqHG2R6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_forward_white_24.png b/app/src/main/res/drawable-hdpi/baseline_forward_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..996c18623cdc5a5160767cbbecf59ea9cafdce34 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB5JkP61PHyb${3?HOIx>3erGFuMQw#| z!0ZKPj=4>@ShjLzfdwuwdp32=QBXg@S=59?{WP|8^qV03gvC;^s6$4n{RD`50<`G^ YYu^F0`*QI&{eT<>Pgg&ebxsLQ0PkBuEC2ui literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_black_18.png b/app/src/main/res/drawable-hdpi/baseline_mail_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..ce77a99e0a3cf7cfd06406a9c3993c5c8e89d73c GIT binary patch literal 267 zcmV+m0rdWfP)i>JbhvdbPkr;o^*l{Vfu5446JsE($ zsZ>n$!M^8eb|*>-ZM2+Qh?0d1EwmLP^;x_*v4)-pDc{4oWA9R*ElqT>VNjl~iAY^G zmWmH&HnHW@r!;3vj}FU6nzMSpo!$S1>_%4hHKZI6NLqeF08Qd@H&ETM2LKV>W@?;! R?L`0p002ovPDHLkV1j-RZH)i` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_black_24.png b/app/src/main/res/drawable-hdpi/baseline_mail_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b981becf026883c3275467a0556a1d837753d1e4 GIT binary patch literal 269 zcmV+o0rLKdP)Lzu9Sfm1Vlfq&TQP?wN*##j1)f6B4_8WG9&AtbJS#M@O zEsZ9oz}2)Mrh{UQ3v`Df4-VZ>yl^ujLI5K&Zzf{|;0q;0 z0Q6Y!Fe7)CbODG+%#iV8TFIp5L5jC|_1VwzugvYI+abM7WcihE=MQOfCJ5uN!bEOZ zCnTPT0Aa`xXR2_vvV6VVkdS!cEK^uW`QM>7R0L-V6r14C77Z)P+L4l&mIm_y>{5LN TReDUe00000NkvXXu0mjf8X9Xq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_black_36.png b/app/src/main/res/drawable-hdpi/baseline_mail_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b52a4948769b9411794358775aa6789b4fd45e67 GIT binary patch literal 373 zcmV-*0gC>KP)}| zlM`-@ekT+u;6oeN+#3I`=>(;cLvAzp9Z-!>%WX!#Muef)joT)Qo!7Z>go)RUW%O{7 zN_0*yx!0xHAlU;R8;MmLcmUC5542K>Eh^Cp5GI=x8C0?m<8ruSkqU?>TfyUvJbRH; zd*pe;V*_@ME$mX5QLN=b6Y#gB}Gg%WtH3!*!GAW&zd<=HsLxH0GXRgEH__N#rWnG%C Tq3#v~00000NkvXXu0mjf<>r@Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_black_48.png b/app/src/main/res/drawable-hdpi/baseline_mail_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..c652f9965a3b7556bc8e784658b8b3a1537ac7e2 GIT binary patch literal 421 zcmV;W0b2fvP)1)LM z9>5b{l261>5ClOG^p0~1*3=HOreH*ZE8eIb=ba242F$6Q=a~U2*VOpWEh_Vq2)&~6 zaT1{ll`mv%%JygqTc*@9&4l2R2llPY?0Dn?EJ6TdmaXb683Wjb;EX$}R%AZ8X9#v7 zA*Vc8rzA&cDDvx;hU}ns?8PR7brXGKPW5d|9;nGFRadPWcgK@j`_v@-U;vsxW5 P00000NkvXXu0mjfj)t{r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_outline_black_18.png b/app/src/main/res/drawable-hdpi/baseline_mail_outline_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..bcf01579c01292fbce06455c996d0d5e178514ef GIT binary patch literal 266 zcmV+l0rmcgP)u^zFX+<}bXFfRH6b!QW z=Py1Ru#UdL%KAD0a9}BGwR8l)otPWshQjo>I)6X#g5d%|)q)K|N#Fg%2^&M%zTZyR^f147#RbVPqkux=_c8 z3S(Q}n|O6@i**^aTx-G482A(R^dH#0C>1L!s}DH*-QW0}CULnNsBYK;0IQJ1@t3@L QNdN!<07*qoM6N<$f?H2+p#T5? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_outline_black_24.png b/app/src/main/res/drawable-hdpi/baseline_mail_outline_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..735f119f021409f0bf500058c02ee7d5e4e5c602 GIT binary patch literal 271 zcmV+q0r38bP)Dtv0@4XSogwHDLDWs^1Tmxnb(2Eq5QWZ=u|P;b^#y-;XRGZ4mi=DX=JRZO zsa0A;f-gA<5e@goot6Lv<*@2Tp>q2o5btnQ<*0xe`&Uunz`{ VUKTpQ$HV{t002ovPDHLkV1ilEaUuW! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_outline_black_36.png b/app/src/main/res/drawable-hdpi/baseline_mail_outline_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..e617edc6ad415b7ac53f7daaf0a1acf87ca6b00a GIT binary patch literal 377 zcmV-<0fzpGP)nF|fcGAf)*I^Ub!|zSfaJ2cn=~`o+`^n` z_IAye|fj^LCXD@w4rpdmP?VTwV)CjtL#8K5{L^ptZHH|^nq+98W} z-VDWUd-%gEC;W$k7i9mnEt71h_$w6~nG}~v-Wih0kT*5QklhhfzPRRyt{ij4Hz7?n z+4~G@Ms#7sdT$MrZZcVL$HLgZkIC*uX5O@l7earD6q)Qm7e*IC?>Ipw!rVFDB;VhHFNFjQbLBT0_ z$sCBw>MZk+J!P4P>^aLkWHUMRN$l_Un9x(kCxhkfA>D+IxPBr1LM@yuw9`wm$VJ5U3#rIO z#Pth_$VJ2jgsd4EafZ-dEa}KC;)aAQa*Mc8A&cB1ZeGY}z0kJ{xlp2zSaKm3av>LT zq3y9R_irl#40Ue+_Mvkn&(mR58_c^oSrj5`j4 zL4R+4;v4@z1DU*anL(r+S%LOeP7-^-T-mxgio~A4or7r1p&L+cGhUrFpi^(uv9Sp# zbhk)X0q%{Fm}le>Mk*{^=)@)+=N71pBILC!!oDkCnCeI9o8r^8y@+PE$|Vc XAg$KzI%|v%00000NkvXXu0mjf7B_Xy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_outline_white_24.png b/app/src/main/res/drawable-hdpi/baseline_mail_outline_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..f04018ddbd594bc753bce10aab0d2dd6903bd528 GIT binary patch literal 272 zcmV+r0q_2aP)Iw0qF#*GXxzXh`LFgAQq`W-J}pYM4>Ze*+57@^@aZMvfI`GWq-hq@$JkT z`(-6!QofZEQ}LNGp=Lgm5bESZHvrZ|_8}tH0FV`eGefFYfEoiXkQDUW8{zqA%yO#XXS41W>S^BFNgxoMS{MT=j!jPVK!_$r} zPaB=^+&HVF^Oe}~FYN~qL_CWM-r$A}}}IuhFtD?I>z W=H;9{^-!Gv0000KP)2{~x9#QlEv;)-4^YvbB|$s{o1q!=8HE_18qW$xd_he# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_outline_white_48.png b/app/src/main/res/drawable-hdpi/baseline_mail_outline_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..6a579557a4971fd2dabe4605846c13b3b973eb11 GIT binary patch literal 418 zcmV;T0bTxyP)%j@k!Atf8es{RoLJ5sQ->#6?WIF92ue}Ozvff9)2Gynhq M07*qoM6N<$f;x_@!~g&Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_white_18.png b/app/src/main/res/drawable-hdpi/baseline_mail_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e749dc5ee49aa41d0987bd5b54746ea14001e29d GIT binary patch literal 262 zcmV+h0r~!kP)tMR^SWS7yLe(`wQ8GuX^@?=AZm6N!b_QT^9e|J#V!L M07*qoM6N<$f*Ge~I{*Lx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_white_24.png b/app/src/main/res/drawable-hdpi/baseline_mail_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..bf0403296e413cf0e25465dadf6e41b14eeba9ec GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpWltB!kP61P7Z}+N1;`x#SkJmd zc!@EKtWw7=&$$Y1Aq(7a+|0nYQrd;)bP5d_=|IGXCIoGtqW2Khr zqEusTr`+5Vg0Iq?^%>MeoBB9cDX2L0&$at)d-JlWCckEz$`2JD*Qsq57q17mTk?0^ ziM(*ly4LThVzr@~zFyTt-o4!RwOx;2pE~nzmwn2yKfUwqAM;1{ZPak!~WZhzll Q2=pFmdKI;Vst0E&TR(f|Me literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_mail_white_36.png b/app/src/main/res/drawable-hdpi/baseline_mail_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..e992746477ee19ce3fc482362754977584102371 GIT binary patch literal 368 zcmV-$0gwKPP)plCoqZ!+Ql{m;x~H33%_Bs5eYP=5_5zmJ~_zQ?Z_TY3>+z zX1Px<``g|#XO38sBusc`M<_eiO!`t6G=$bLH;N%&#IR+gu`^;h*Vql64?_5)Q)uj# z&Iwn1^B*Ov^8}$Bc@bBMFg6w$E1#G>V6*2QjN|tjqaxQqgpJ8ybP%y(P*X$vm^vu7 zB!CoqB7hWoCV&(xh^5fjlvt)38?lXdWfIJzTm~=uues~+*W4sYj@B<+Sd|C`!L&&L O00008;ONP3D%r0X0G1v_R1vscXsXJ-d6%4DukO_=20D%V8*1rNrXCZ_TLfvpm!HgVc6trwRE_flQSK6l0U_@?@G)&==W4Jbj5y$Xs3U3_4 z(iA=@^;vKz3;IxU4Km}LJJ#&mihIt?5(fRD%Y=QJ(6wL5gUmSLh9&#(&Mi%|cc3c(S%j`)y+bmS`H z41+}EBH}EAbmThXv_Wem9l3}&#~>ZKh&aO_8M%l!%OI`(gTC2K42nS;Vo(f zEvt6v`Bb%Q;j5}$oHrSh+nA7G~KG56&y>h8$y(Q#$oxz=%)yX3UvPftZP zm7c0rnZhUCpD_8MH6X+-gPgg&ebxsLQ0G4P+wEzGB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_message_black_24.png b/app/src/main/res/drawable-hdpi/baseline_message_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..bcc2358286a28f901f638df792e9a7cfb9512193 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB>OEZ?Ln;{GUT$P-Fc4_}xZXU! z<5KZ4CR;~chDC>C?pl8T$lfD=`-D=H$ h;B7YNk)5Hln=wbne2bK-hb_=444$rjF6*2UngF{GK~ew! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_message_black_36.png b/app/src/main/res/drawable-hdpi/baseline_message_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..264086cd052dc09d8dab14496d20aba588ac8547 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+!=5gVAr*{ouWw~!3KVg^IDt8*$Svhu^P7R*<>f^8Wdh_g7kU z6?4`tm$)1RWaK+e5mNT*6kK|wMP#Z=ghVOx)))U`maN`30q7kDPgg&ebxsLQ0I<&81da*tUU6j(-RQs`Hqjy7tAlA*-~Hfk y#nm;^jHXYtrP?!O78Q0JQ$#S>rNrh3z2c7Jy8q;4NNOX{R}7x6elF{r5}E*#US=f# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_message_white_18.png b/app/src/main/res/drawable-hdpi/baseline_message_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1d45daa9bcbe4a229e037e7431ec1a15873964b4 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(DU7jwEAr*{gFC64`a1dyHxOasc zbD!6R7P%uQ0~ZO43UDrFR?XqGs^C*no_J80^S^cd$v3<7ox0eHcCx*cOWhH_ZjEZh z@-^x+WNz{pn&0-BBl#ru*#6uDw_0x8Niq25kt)|}`CspGzsM)=DY4%|k1|%Oc%$NbB>O5T>Ln;{GUS?!#2;gaWSo&FR zQOUWAM!$f1c8%^e*EaPte%S0ARN=s=b$+!2qm=Hl$FjkiMh@_ g=M>$_mDQHYmhaY5G1{ih40H*Dr>mdKI;Vst0NzGI(f|Me literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_message_white_36.png b/app/src/main/res/drawable-hdpi/baseline_message_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..42fb4b6186e7e368378163b53daeba48e6a4e569 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+Bc3jfAr*{ouWw~M6u{8(a7{x` z!)uNgDjD9rb{UaPeA0|}-$*=YDt7rF?zV47L}DC2FHb_930ua!_C*$tuFDE;KW-MV zW%J^qfY78hyrH$n+yYYnwYA<5eb!u9%PQTR{!3woKrz$h_+H`kjiRgMd#<|Acrb^R zVfL%@l8H@oj?37lJLQNe`21Kl&oOj?!DIe4-~HG8vCr|J!egzJ)_(S9t=jM9YB`xN z55@Q!E?dH(>?I)Pv(j)`ibSwck7lSxRAS;4-o(%I1?-g>U4i~#@O1TaS?83{1OSiR BVC?_^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_message_white_48.png b/app/src/main/res/drawable-hdpi/baseline_message_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b8cd2c24c3450470aced932ce172128b6241ac12 GIT binary patch literal 263 zcmV+i0r>ujP);G{guS~;p`;eE3b+BgG(Jb{9fA=4xiNEA@bxFT=$ykG6ZH78D!A^fh3Ix zbRP*Q4U|C!8H5J{3IG|D2FjobfSv~Rf&z*J8D!AQpifSx%rMoi75= zxpzDskF_1x#Ogj5wl1wHB1AF$eU9oo)#Xi~$GFYuwX0i{uSq6i$;B`s4yYIUD zW}e^tukY*SZ%fi)$bbguS7DEQEJ&kOf&=0)MXN62b0<$o7J|*U2@=rOnT?fMOJ}A& zvVgB8w#z}dV84}s1UuhsMj&?(U;to5AHc+N*$58STh4Rtk$P_RZ~8^dveaq1s-*O0 zMNGClk&hc|`ecZx#)bzH;>w&7q4l^U5zZKdbV6dRP%0y_jwl%#GY6#{RxFdB?gipe V$Fv8noEHE9002ovPDHLkV1h-Yad-d# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_add_black_24.png b/app/src/main/res/drawable-hdpi/baseline_person_add_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9fdada54160a579ce561419149d3b4d1ed377611 GIT binary patch literal 270 zcmV+p0rCEcP)I#W?}h6qG;fE1)c0s>nA6D(Fc*3P#;`yK#~nK9&K zfX|oF$9Prp7KW_0bGei{oBqE_v4r*v?553jU%N`1{3hgbUiEhHO zd-hO4J%7O-f+j~K;*kcpgurJMzQ~QS{vvwNz+Z)Q%CwlW;EIG^Su&wbiIf!Svf_iF z8?d57kwiQO+>sRC8Q_6Vl?`HWO$~(#XT<243NdDggL7g$ok9;{h@*MP9?DVq0#>@< U99b`C+5i9m07*qoM6N<$g4FY7tpET3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_add_black_36.png b/app/src/main/res/drawable-hdpi/baseline_person_add_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..27ef1a0eaac7fba11defc8668d1740affb8bf0de GIT binary patch literal 354 zcmV-o0iFJdP)ddav|?dxG9GE(y1STf|-45YfBNlflpT_qE#$zno=N(#|ZG zTrx{L6?~c$rja+BCJB9HbBcVhBQj7H%^~8jLn2T$iQv3J6xASxmE#6^vG@9ov0lB{ znlZMl7rQgYPV{0oUm06B##Z!Vea2XiIba?DR3nB}=*3_h!FfZV8H+HSE7cfeIvnCt zGC?P1elf`a`Z0h?+6>Rr&9EjLvoU?al+wTuldSNFAUv|dB!e_iN-!#dsHKZd#IQ{| zsUr}N#nZ$k;>ONtCLTBWQqLmd;TEaK7Z-&wjd;0f!oaM66GUMr6kt%w9ip^5O2Jtu z7l`662*pt^qP$)l?WxE1aU}Y)F&ne7AHlMo08C&v*;iAtpa1{>07*qoM6N<$f~*3U AU;qFB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_add_black_48.png b/app/src/main/res/drawable-hdpi/baseline_person_add_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..53264c28081b15179fa6a094fa09ff5819d6e0fa GIT binary patch literal 428 zcmV;d0aN~oP)JFmPlwE z)$E-K66xR>W$2kslGsKW+aiHpWT+Q+E6C6af22?Su7nJg{0ChjLs$NTUXh`)|DbZC z4Z22#uKfocAwx(0gI1BDRsTVK$WXukAj{LSO-3^IRj2)N^&JEgC`03rY7i`=8ZAT0 zK`==b{ZN$x_z!aYO#*kRoeLGnj7B z01NDLk7{(!4hsx;4jQ4z9Wr*uI-}&Qg&9sz9i1>k3pp9%66Me(W7Msc4U}V>v{Hv5 zZc)zNGRz-!^N1XJpa(meI73dI(u~*6W8~N|W)DsM3ME8IAnOK!BoHWsIzSf)h&sSPQD+DU2>}E!0#G_Z1|T6sP(96vZEx-S z0OJ)<0Q z$SCy`$Y&vjVICVMO7xM;F3;H_L39z!CQdd95KRp7l1|Y>2`2gSdfX#V(2hx~UThAN zX}#DPCOdkuldp`;V=|)`Yr~|)7%-Dt6k}4L789YLmvo6}#sbW9r4|z*kzJm%OQM*8 znfYRf7SW8|Lm_n^K2PoueKuxeitr|v3c46%hD!i0nPHGlD#*oKG~h)kO)O%vNF!x< z%6kz`6^FdVKGlTF+u%w$lf2g?<+#f0;Kwi@HH@E_k--iccE~WLaydiG8M)#NUk=c8 wfUh{A6>Y8Jgf+CSixc!=V>V`EKZ0dl0RUd1r=fN6m;e9(07*qoM6N<$f~|Fp@&Et; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_add_white_48.png b/app/src/main/res/drawable-hdpi/baseline_person_add_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d33121aa80f04ff098ad83b52e48c4edd3b64a50 GIT binary patch literal 421 zcmV;W0b2fvP)7@tOnT-VUU>EvzJ_nT_GbV`@WYeMq}A3RVwBiit|R`|J9X}R@4okQ z!~5HZ|MtF*LI@#*P>pUDIpLZjZ(MWC5?%T)43Ou8-^%3aQ})PFqLvalWs6nnSyOhH zroL}xlnr`#Cy94@l?C=mYES+c#9~n1*uY{#jiG}6L;;I}f6yHkcm6@2SQPz(imeuO zkHx)z&>0qI{z02qZ2AWcVKM9(WIrAIN(LiUq1SX={evWCNMc&bC`e+Rde)^3gCu4t zQ%jkgEHH9^@-a#{gKjuVZ3a<6t$+xMpa^1=IkwoQzyn_ZeDT03dA68mG_xQ^SmBUo z>UrjX6-FF`m>|y+R!?j*sdUl70v9ynf(1I14yL#z4Yy3GS#+{Pns(__;~3+Sv^_Ge z#?a3z9$pxb9c^6U<&t(;v5co>S#gf1b6HWsQ%P1hi=YUKpq3Ou2qF9cn1^3$=;qUg P00000NkvXXu0mjf0jarG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_black_18.png b/app/src/main/res/drawable-hdpi/baseline_person_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b8cc77c3d52e57d712d14b386eb67e6f58579204 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(D^F3W0Ln;`bUNq!uau9HPD1MGn z#^KG&6W3xITK2Nc4NKu)kbd!ZfOC?L=Fy(cqi&JPmopB3e`P;2C1Rn(X+G~BIaB3N zIZNC!56gbMdm_M6F@J90&U0zvA#FEve!QF*t#-tG;=+)5FMKrSeMKAH1xj(%Y P=u`$zS3j3^P6;q}>4&4$iTfiE;$KC1DMA|>@I+LV(->FA0js^u-;uRrYStNj^ zLGDpr_Y7dc#U(203>U`cQJJPOc8$t(hOr1LQxId}W^Ht3@ic?ap2C>B?D*YS7~&S? zb;}@@0xa^15FacNpd}oBhFN8sca-j(9hMovN1Z%Ouul|KD9k=%c&N(7ET5>3KAFWu z1>Kw=gAVDTjCLN7VGp!ZVjWquL5Y84(Jv)rm$OkFIqDVzKnIX)srvf#00000NkvXX Hu0mjf`bA~q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_black_36.png b/app/src/main/res/drawable-hdpi/baseline_person_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..f81b5820a0f1aeb047c30caf523f7fcf32737891 GIT binary patch literal 334 zcmV-U0kQsxP)5Jl08hlIGhyAxqWY$MwN?h#aiON3j3TZp@611a)Z8~mSJz{_U%wJfWec4oPJ zZkBec_%vxuBd?k!1%2dlioDYiStyI;5HWN}6sjf>%nhQb4slT>YWiJ{^`d6Y<=8T6 z?p%(YpyuW)$JSkrt)QmQ*iFnXC%_QO>e;h0# zUbct>f7}$oG~#2^M1X5WoFEFFP=pKR+#yQcQ4VI|Tp)^F5ROqVqFgUVd+KBR7>Ry% g%#PWyAH=er0J3(3eqB@tQ~&?~07*qoM6N<$f_s~c>;M1& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_black_48.png b/app/src/main/res/drawable-hdpi/baseline_person_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..269cea974a10dde8742b5dcfe1be5990035b889c GIT binary patch literal 404 zcmV;F0c-w=P)&6j- z#<8vjF{lRXLJ@<)Uf0#pi4%UW?Q(@QRXCQ#335*-r0XO9j&IOBeeS+N z?kS~W$f2G_##rG3LAYRrQJSbHml&LhqKqCkkw@C3n=+!XD1j!{5yRGLBoU8&C7&t8 zho;EqD;`N=0r8*(lJMDgS`iOx<2ycxV-@kZRpNQ3Kz0xdZ4-n!J~M+@YML(?D?uz) yg0Tt2ViOoULM(QKF|nKu(m^^%DW#Np8?FFCQI*n!+tXnH0000XHQ2H4I zn?SXd(^)2!4J>oRS{O^j?zT$_C3|W+INEGMQD``?0_OyP1V)LN@~*F-_T|yy%&S?-F|jHDz_>X}p^0 zY;zigSMF0@u<-fjd2I)-aXZ^{{oz`B@zM3HUcUW)*-uLDJ-yW+9)CK&_nFA+`9OCv Nc)I$ztaD0e0sxRMQ=b3; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_person_white_24.png b/app/src/main/res/drawable-hdpi/baseline_person_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..ec79cc5096d62a5156327ee10e38ad89285d0920 GIT binary patch literal 254 zcmV@!9{)!<{6PwMf>EIyS- zHz!ye(xXze^MKU@?JCAPE;dw*e_Z^k7>>L~wW)5N6t)^h()c> z&oaF?7HypEe=`52e$=J^r|*lXQPGq1ad_Q0v$T z^)(g8BEecD&XQ5V6&kLnkW#h0pyh>HZ>d=B&~!(v=h!fcgio0hw4Hj6q0huj%)|`i a2l)U+5jy~)TO{HD0000KDi6yu^;w9$u)KGDV`E+$1Ad$?E^ZLHt5pebBTi8lIi(J$I4 z!9|H^<0meD-L2KpC_eDXak=Uvj;n|fe<~NkP;_b*k;|&_8&Ho!@jPZsL zQYfdAK4v%o;D8x=siK@zLc|yTkw*)QTxOAG^7touh@gsjT+LHSqy&rSq%*`#43W-r z2?kM25QGV$b59%rNcL$(*{EIA00000NkvXXu0mjfC~2(J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_all_black_18.png b/app/src/main/res/drawable-hdpi/baseline_reply_all_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..bff89bd011c938f5aa34bcd8d25a2cb35362a3cc GIT binary patch literal 307 zcmV-30nGl1P)3~oD6xoGN`#_l2^Ino2?UCW0CYPEK@tc+2!JXg5J*C4Qj}0CrE1N@;P@GK zZlL!A2hZVG*MGg$SAG5VrA%2@p8@AG0Bx^!s7IFySwioMde$saZWT#zMEE4aPPmvJbGG~_p;@8v5@vu!oxp%W8|CGv5aF|o1apa{ zCR`{C6KgpmwPIVfK70OFjxH#V!NUZM4E30T#AUHz3;?+uqBy}c+r$6>002ovPDHLk FV1mnid$<4q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_all_black_24.png b/app/src/main/res/drawable-hdpi/baseline_reply_all_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..3f2f4011a06f9ef91c45ab0dc235e5a113b30819 GIT binary patch literal 280 zcmV+z0q6dSP)9Kv?HegE`n-Q8Ep4Y&ZGIk?m7;z_J37=Eut5I53~&g;Ic!s2RwLA_#CHg;+oc0|6iepa4-K0RbfdkSM^YDhLp{L=r6sK#RKZ zAujtn*E&0x^L~K;=OGr0#k!*ftV)dIwN2_K^+e*A%BY)EM&gw+Fj2z1Qo;;Mm`_TW zK?(Co2{R~RKB-UU3`$riN?0IDyI_kI${nH1rR*{7m2&Qu8ogmCjaSy`2}5Z-kc6T% z4j2qXX^)g$*arzpjqyU(_THJIMcWM_nVT76J~L4OwEw$djlMtFpDdO!H~EV9GozVD~iFexH68aU~(0TH^LjM k1Z$Q<0=7gf7VEBl0BAps`5@c>PXGV_07*qoM6N<$f-2Xc4*&oF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_all_black_48.png b/app/src/main/res/drawable-hdpi/baseline_reply_all_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4effe207d0b394bfa712fb0cc025da60e1b3cca5 GIT binary patch literal 429 zcmV;e0aE^nP)f>S0ze2zAT;{FHVTt0w%2w5!@3WY+UP|<%!mm~f=x*YM_(dUTYjy^~HcJw*ozoW|$ zza4#!`0eO(#BWERQ|w?z{*F`bh$GfGVvQp_b3%!EGB!BL#8la2$_gi$1{J2QaFV%V z&Jf4VB@<>iZeq&xo8h>5Aa91_CZLB5oAs^DZK8ZSm)<`w_tdWkv z8mVZHG;59YM8+CvAM{8y>fF<$6Tha>X zkbbU*WiHx+Zi&+SD2}ts+n1LM>3*e0IUq)o;XM6g!x(4DOFkG${~Qys#XI6=$Hu{` zz>9m^B(ibR8|KcvE?7BwW*w!>4$_*k(GKc!p%QD_tKD|c6)J(=Y02~#s9~*GGX)A(j&3sY z33#w&-DGn#n335)kyFe6(OpKqH1EV{W{2Vxdb}y`!*npi?$NMPtOYgYy_m@GQHDRt zyVVoWhzu74J~?viIyUSDD_~WI_55!-&D-`3n9FcXHC@S)dcjf#Y^vd`md2XNp4O_J7?E!KepikzD36ne5M}&dPhMsgVHm~$0O1gQYyXeZ(*OVf07*qo IM6N<$f&@r|#{d8T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_all_white_24.png b/app/src/main/res/drawable-hdpi/baseline_reply_all_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..32915c6c30f33f2c43683d90597bf5ba8ff84aa6 GIT binary patch literal 285 zcmV+&0pk9NP) zJs8!MA!!drwWFXR;n|U*TI_|?G&MD-DQ=x<{EOO?`4=@&kd>Mf5YT1Bii?8oG@U8q zA5`eG<=y7Jo0LQ>Dq0+P7DQ1Jwdlw)<_;`hgF#8`qN2^2E4lBKSQZsELV6J=>!PC0 jW0R>>?>I0FK`;sc#&d-@FsjiJ00000NkvXXu0mjfD#&xm literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_all_white_36.png b/app/src/main/res/drawable-hdpi/baseline_reply_all_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..e40e1a61b6c583ec76fa3563969cde28fbd79099 GIT binary patch literal 394 zcmV;50d@X~P)K000oE=2?!_wfJ6a?s)7KKM(MOmKMG7DZ5wJ>4{I-J>U{hssjd7 zQ2>wBL)ZsSEn~b;y?3Uh9NYiIwHZyx-7}DqI~7UEt)=8TOvK=h+2@E8ZfFB`*P^S) z>9wCpmf7Ws4&@draTcaoT3iCUJ5kx37cn^}W;8fQHy`FSrZ^kZ(d3!m&P2kT#uR5` zI{Mh*3xIEGVNPR;3t%c{C;-?H32-G$aRye3Aqt=n32-G$aRE%lFa=N#-I^jM*N{KQ o2yd)Ps+i?a(#4W=SGip72k4@YBklKqQmM#543P*HK^lMs38?}E0U!hrqB#)05zQh0`v(3mr}&o~P?iJAa)4(}C@@b-M~)X$W|Ju`IbMwt(^_)8E9SK1 zc$ZA*$nj!|^y|p+9?0s*@nQ;e>B#X;83+m577v1JhC-6o<&&r~s4b~NpSGl9=d>l| z^(D<}OL`)uEot95xugnJ?y1utL{==xFX$!1A{*>c=9Ttth=h_{OLQ~IDu>kh$%=C# zNvfLZ%VFAEG``l4hvY9EaBMY;BbL;(u1Q?Uy_!UF}{>fn8$zb!~5G@ zDj6=yoJAjRN~9aJ9!(dXb7mT2ZdZ+tsA7Gd&&rz_-}+MIzMNcq<*4N5%kO5SQJ{YmGx<(B#@JybkRP4fZ!!OZODD9QyMr lX2pzv%5|3%16AwxssEf+DObQK{0``T22WQ%mvv4FO#tm;T!a7s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_black_24.png b/app/src/main/res/drawable-hdpi/baseline_reply_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b042ab7e253dd2fe9ad5e366060cde5a946a5c3f GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpZci7-kP61P=M*^(C5X5_JZx|# zPUNu3Ow%mMS#KqDm2OlA3an{z+?f2HL#$g?gyrC#eG2D|DvqA5e(( zE5+6I%I82uMdq|OJ3hHxkX7Vojhd<$t)vpE&%ac2yWhUK2j>2Yn=ajSp=kM~PnHTg s2d19NIw^a6R?7C}ZJu_u|8{KR?=HRCY~RT$3G@bor>mdKI;Vst0N*`a)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_black_36.png b/app/src/main/res/drawable-hdpi/baseline_reply_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..112b7d17e6330569c0c2178ae6b431654adfbd80 GIT binary patch literal 358 zcmV-s0h#`ZP)AcR#~8=5&;;9fG!}UQnwKJu(dW9Me&b=_u!hLmI45 z`Fkqg11D@#6;PkMXO9^TmG;aLvl=R`OM{ArO1q-2q0*k%04QFKHa_xR*->(RHkI5X z%S!H!X(e|7N^Te8T!$vdoYCQy{t&FkRGc&NCaAN8(V{niJAf!>464dHr@VaoGv}h5 z@pJPuzg+D;#5iMkOI(w`TP?;Jzn9S^oz5V_8AV#)631yngfogY#yQR#ixJK!+V}^T z!RXxD`$$mD0(9I`2D$+uhSLmm1V#+f48s?Uf>AIE0NerSA@}7Kb^rhX07*qoM6N<$ Eg3Vr;d;kCd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_black_48.png b/app/src/main/res/drawable-hdpi/baseline_reply_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..efd749c9e603d2f37541c38e258bb3328fcfabe1 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz!>Q1;uuoF`1S^)3v;5xv5)_k z22E^~P!iN>GGX8r3S#A8a^O&yaE5_3VZsst7KKiS9FGjfAlAuzOl?nI@yhp2X({#p z{7;_YIDf(Y)BjI?wmJXVX8oFDhNgWh3w?T%vt)uF&yYHP#bOy;$fnSzwX#TRP6?-} z*^HovOR|Gfqgp4wn`Ei#cY{^fYR-n1++U>@iQh$l1gGe(5{pE2o{YvG?Y1i(ylhuJ zN`GDPa9`l2^?G93RgeBBS3IgO*agjHD?hTO&Q)t$|CDRqjjq>jEpPme+_V)re)FN|?=7u4^DixaGdW?2_33{%4325Ooc_Ki zrM|E8#uHxU9Ph^op^s*M$n{xLcuD%%v=618PhZSbpRmd*{h>pamh8FDHVGmEs~oyb mm&|%7uyNXp9U#BIXMVphHEOvhPZ}_c89ZJ6T-G@yGywpYVXSWe literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_white_18.png b/app/src/main/res/drawable-hdpi/baseline_reply_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..2cd35706e963c806e4df4ccea50f85e51473c20e GIT binary patch literal 241 zcmVJLH$;sdY@%MwrWaiiUhkF7M9n7HG)eNJF=JEoO;hyEO!<@(?%nP=yqA6T z>{re|`uAg0^Pnl6Jc!JU8Q4rgnHh5=4vgtj`%Vgi+@36G*=R|)HzO(<8(?)*cBIG( zt1Ynx*H}%WaFiT)WyhHZZap1t{N1QC_O}U z`1na#Sw;jlOoOKp14axOF<``i5d%!=P$|l|V$O{5iZZST6TG5~>q6Ut0f?FBK>;sx zt?a0c9W}C|BI>_UAt3{1?6{JU?kJ+CkW^F|vL(XR(^C%m<{9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_reply_white_36.png b/app/src/main/res/drawable-hdpi/baseline_reply_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..5ebeef7a67f9ffa2d39e758523dc908b1511fb78 GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KJe|Fe-SuIEGX(zCGLM=A0;T{Neww z$OR#)TnP$IC5(zwceNha@J{gqlOqqSLx4ip0!Cx55_U%}fio){m)Bj~D7Dq<_Hyyh zw&ou)9=HUG7@q2i4?X%v%V0m(ne|McS06wyA53FDr8D{W_f?0LkLOJMzT%eLjnqTS zy|!AUoLcT>sxkTV%AjzOy;=?F*Q!r*U3qa|`}VxpLv88bk1R?rKffcrT(Ppu`l0NV zl?6v6OW%3CSa&j_BK_A94p%e7RVF|4;94vZwNz?uPCjIH zd40r#S=-cFH=O&T?q%XJb;*QtQy4eLFa=C@vIT3i=kLjv zFSzAeZu?Pr>woU`8@e)b7I2E)e&4#j-0k1`eNVKP^j-|x@!Grh%oAgeMCUgLm(QJi z{*7~>F!$b1h0I2Or-a=u%4ayR?#ywvuQ}`otWAyQCqME1D0bkCK=af-ImUOV+Gl(T zDQ3K2c;dy%N!$s3$2NaZUn1SuRy;Mv?QzT;lW#|U#4IVjRhKlEmLI>H$(Utv gUHM14>^@4)PmkI8J003C1#~-ur>mdKI;Vst0J3~lzyJUM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_report_black_24.png b/app/src/main/res/drawable-hdpi/baseline_report_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d53a4f3a0e0043869e0a82423be30e3e05beac80 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lp3{MxwkP61PQx%0840u@jpF7yM zx_xM~NRgeC-|!@T;Z+l3ONkXP*S$HjO6?%Gl<|@WER#gDc6^dlI-1@Q(qh$9bIfnz zOyNm3-1^)+Vi}H(ZVT>R;Yf8pDQNyA(BoBmRL74AE+;lry*MzzW{+aE3zN}7DZ&32 zzMbGXc0njR#ognbPg{JB{Q9V*pU3B)4@`S(WH$G4%48EgPevm@7M6qJKsPdYy85}S Ib4q9e0DX>4h5!Hn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_report_black_36.png b/app/src/main/res/drawable-hdpi/baseline_report_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..58d7de3347f8b13be587c5ad9aea6d069f07fc61 GIT binary patch literal 287 zcmV+)0pR|LP)X?` zT2wBbJdJdcuR#?S1+L(!-eQoR;y^iYC8#A_`5QGXVUWS*Sc>2j6wTSxIP;)Zns?e+ zP6-NW&}?RVBRG@dF_TL{kr=q+XG~EeF+>9kEU>_gw?2vS3Cu_>yD60n|Hp1o+Pfa{1#vp?XGRPo<45|;xk3k022fcOCR!f~UQ~-_IC|Ya$ zKj^HsGXc7%K6y~vG4~82-mQDJ9e{^okeFY_zwSq^6>T+E*nbQ^P)RpeOPY+FW;P1Vaf7!j z=EBedPx$x1LJ(TvgWz6S@NC29nY?~Td(u^cpjcv1V*yD&nAQIRnxV9jHdkO{ZnWm6_Or&wh fHE;5@pz&!0G^erY&pd9f00000NkvXXu0mjfy8>YZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_report_white_24.png b/app/src/main/res/drawable-hdpi/baseline_report_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9350e68aa35a6b1c218523172902782138500f33 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lp3{MxwkP61PR}J}E6$D%_{-3U# z({<~RsgJv7`b)DdCF$2&t{GNJ2ubTbRaxHj(7Z~X``MhGQzI+0-X2~t<-iIN)}@P# ztyGQF+X{>H?F}XMR~s`=RB|+CdC7NE`^3I>HkB9;#!J8CtTsvM@pN8nhKSAAB7Dda74M~~J zuc$LES}o_y9=T8&m)oh1PwU7XC8%nrh9@R6ap2ALfaU`LOR`~73M{a|0#m;AEttK)^eR^4l=S}CO|~!SCEJhZ zQMONL4eV`a!9jM9;C+Q$W%F*NbdColt8pqYpK|_3s{i?I=ltI>|9_$Rzdik5)&Bn% kbpDjYmZZ!&i=svK1Z{6u+tzkGTL1t607*qoM6N<$g0w7tPyhe` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_report_white_48.png b/app/src/main/res/drawable-hdpi/baseline_report_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..1879fde4962539e9e87c3d6cd95aa74b91125729 GIT binary patch literal 304 zcmV-00nh%4P)rKC<* zwRBNefMZ?N!5oOhbDRWm020pON$QOQkXktpP0C1p0gm-hPjdhgzyV0k;Ya|-?f{Z; z+CczGbK^ju29ll<2eR(JfrNsrfC36Apnw7jr~n8ppnz(E-a2ceg^qev01aA?mn#kb z2c7KpM1XE;X>Yd&wR9(5^*g)W0}n+b0iTS1-49xgR~ro#_K%m2T57AaKJ^zOenYFj zGV&aL7UoIyw|tbt|9s&|JjY2qha@?NC&8SQQc7Pv5Bmy7gP}eE0000$yO7H@BVx;%KT#sy@7oQ}bW1M2E%J4haXyY19v@n79F{|le=IfLW03WNQb_I8DX% znO$DDGIUy1b4}H@T>oI2t9s|m=AE3`rV^d~M%NNvJ(_jab)mNn<0*&sBHeYyCO~&G Nc)I$ztaD0e0ss~zQ_uha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_alt_black_24.png b/app/src/main/res/drawable-hdpi/baseline_save_alt_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..367917f53df828d066fb8b3e4ca4f86717c3dfdc GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lpc25__kP61P7aG}`14P-1M}r{?3bU&PS#%I`(*F=Q&}H zAF&RcUIA|I3l}u?@i<%BHcl*JoZ7=uRb*D4HtoDRpZ$vyD*pL?)9NoOi1@!Nva2|0 zd3nX}>{N@YwKCn-$ n#N4B&A~89gf%1_hRV^$?WZX>(jDhcsf#^dV#+<`BvcBfoQ_iIm~z)tI;Nab#+Y(S8Dq*R zWq~Otlr^TDP}Z1oLYZP(Ai&+2_Iu2+*X-bm3K$$HfCX@K>~LEq1(c>Pl)@JPx2bB? z4T7OfMQBGTay=N{P{pD*K$D07EDS0P_LL+Lpl(%Q!*vjYQ7{SsP$V7GZl`iy00000 LNkvXXu0mjfYXE*) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_alt_black_48.png b/app/src/main/res/drawable-hdpi/baseline_save_alt_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b276a69416a48f554a466c8018f29f525ab013a8 GIT binary patch literal 316 zcmV-C0mJ@@P)05XA8jbcaOW*$NPW0O$Z6Dn#l40r03J1i(fxJda&zK4Sg@u=v5k{XXZM3(g>e z3^GWZK?WIQkU<6+B&cCm2JO)FoCgB?5@?UW15M8fk|sgq#D}z$b4Z#7k@MN0BApQ& zNh1(B+zFCac#cVvpu_0uiIwJ!r%B`cW6BBcOHe`zF5w73B;_MV3aXRH5rc9PIeHLD zb&eiHQqIwXQW80OP);I856Vg8=s`J&96cx}k)sC{N#saD)fyVm6_oeCAcG7t=!NLC z7fM~bfo>?Z?grYR)C`v{oC{_sw!mG^xnlv;n`4VXh8eKM9F?4N&b|k0wldT1B8LpPEQxdkP61P7Z}+NI|w*j3}tfQ zaOJDiBBZoDd2ymqRl<^rRt<^9c{*}d29Iaouv0Aa`SI?J=>7$9E40&V#Pfcn zWo`T~8KrUYkcNUIryC=umjRbYKvST@B(50}8XaxNSdKa;+H*(NFzXeu)tI$J?OSP@ oIOjr{$@|4e+~%ig`g&bu&Qmh3?wHcKALt1NPgg&ebxsLQ02X>urT_o{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_alt_white_36.png b/app/src/main/res/drawable-hdpi/baseline_save_alt_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..2f85dbb01c9a96c678591b63488ffca127fec122 GIT binary patch literal 301 zcmV+|0n+}7P)I)cWWgCAOLlZ8i97fHa3lj^f9Arc2b=^1z}8+t4313)aMfS+k@H1J3iFiemW_wGt!f00000NkvXXu0mjfd!Kvk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_alt_white_48.png b/app/src/main/res/drawable-hdpi/baseline_save_alt_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b611b2c0af0e37d11f9be2658957f76972b3f667 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz{u+9;uuoF`1TxQnzN%w>qEg4 za*I-~U1M@Oz;J=JB+#|9jFIud$4xB^AH-dse^hFpZQb&D?E~$!v~L9^GF7`KIP+OP zff0e0s}%dL{5i*CqUyq&mQ}~T;4b&YAI6_2-GAx5T2bo%vL!V& zb}Oo*e45@HZx-35F3Uyi-j%*!ael38^?L4-fN-Ibxoai_2w8oc5I2c9B1*{mc!N+ds{BF2`kUJA;N2YF2#DYw$(P787GVi6Qa+Y c@%hNTGkVKE&PRVFf#Jg7>FVdQ&MBb@0Qf|Q6aWAK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_black_18.png b/app/src/main/res/drawable-hdpi/baseline_save_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..cd21d140200b43347b9d2e1e6cd7042816554e88 GIT binary patch literal 223 zcmV<503iQ~P)bC`{j9vO8xU%~;8j z1n979!ZJcfJDU<3+u4xN#LhN^GCO-Q10Z2Vsj(cX?2Tv71*t8kQi_Cv ztY^&d#IVo{0vu^Brmo|lfeqL!N!jtU1wk81X(3AKA>Y$lA-i=b;?zPR!4z6G^v1*a z`7hKX!;cKT9xCBes-c!Ptrn_jQ){7$HkB6YXw#`byMRxz^YNR>3;A+RT}T5W#~_#k k%so1D6P|3+xOF0mFRXYab9s>{;s5{u07*qoM6N<$f+qQ02mk;8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_black_36.png b/app/src/main/res/drawable-hdpi/baseline_save_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..224485a7cd2ce052252d85ea6238b5011c2abdf0 GIT binary patch literal 322 zcmV-I0lof-P)Iiig`#7$(*S}k_APacppH;?s!%rwC;|cGm2U7agrvV-<3CTB@9zK~ z9`lAFm3r$cG-%-i_Qi|+k|TlJ@y!c05q;L&8YzqWK=fI24!LfCFT6n*=aK6?#q)^H zMZt8=9@9B{Oyxey!vvqO(y$ea!dnGnW=mN35|*$96aFuou#AhH$ha-z6bsu^=e|1o zIGE#6E(SJ3Yif@T(Hh!gU9`IPSO=|+JvJ)yGtSYP*<->Fk7~v`)HUv_#X8i&fsEV! zI3l5#L!NHQm_EINKVpYk6)|2FJ+`LQ20ioZ)A6J>xe1ihwtRHa*P=m%RO*d81F_}R U;>{|3WdHyG07*qoM6N<$g6J`j8UO$Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_black_48.png b/app/src/main/res/drawable-hdpi/baseline_save_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..149845172b77bc84ae05d447dd737518d7e4b106 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz^Liz;uuoF`1aaXM^{Gyhl}0n zJE9pqx?DZ9cU1c&?r`qfeVOrycZc!m={I?w`7u9#$yXOSEj6;Tr?}Vqrp|XqRWqWWGRzae`2;>R`oMKXaW{X>gH zvi|P)QTTTU$NmLdgPb^X&n!=OtUjoDmOJk4%EoUWSNZc^X%CrDii6fh>`YxZd tTqgGaMDnE9TN2+%DD%(PIlXC(xqashJJz;etiZ5i@O1TaS?83{1ON$2k{bX3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_white_18.png b/app/src/main/res/drawable-hdpi/baseline_save_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..493c3772f3ce4cd04ffb2430d91a230db0a206e9 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(DD?D8sLn;`rUSMQn3KVI5XdUIw z;vk?AvUVZMSt}(5&W1)6o*A}#czG1IbU7%99+|NJz~iT-cNIg)Bd zk6vuBjuPKxxQ+STl!>w;9*iPFoqR19&ON$tX2B2MV7%0iJ$~X`*dyi5o7sgc-48W+C0i!?%S8LtOl#LU8m5)#Q#j?7jB#d= ZzPandvQ76NeFVCh!PC{xWt~$(69AGDRnPzc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_white_24.png b/app/src/main/res/drawable-hdpi/baseline_save_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..c01175ea187bc10646ac1031c8d9ea6260ba820b GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpR!tvTfdraWgqD`|IEBx?Wv literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_white_36.png b/app/src/main/res/drawable-hdpi/baseline_save_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b1f517d3a1051e3c4f0fe37710045a38dcde52bd GIT binary patch literal 325 zcmV-L0lNN)P)5JurfGQeH4U~GrGW`Pp|6B7;@%nDtx#L3{|&Og$p9@@9ob-vMOE)@F7QA#^W zQXW%XDAmt7z8zCn2o*zT&9Mhx#8HmUnj^teGo~_-ZM2lTB>R!bt*HK}ow0ziT;WQd7p)Qi_ zu{F81YL6|-twnomP;L#{V*_$)z#d!r%8zkfZmrp45Z5k0nPM`}193uQwOCi{bR1#Xe(tMVyAm#Yba9SF=X6;Tx>jfhW)K*eB4pi-#>~J^dt^UXDoCytNyXU zd)tnMjlxE6TdE4(886?Np!wY=K*39MY0MtxTP7KAJpX!32ZkPlr>mdKI;Vst03`dD A{Qv*} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_send_black_18.png b/app/src/main/res/drawable-hdpi/baseline_send_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..46a5053bd8090d30f38030de12c02b6918416c0d GIT binary patch literal 284 zcmV+%0ptFOP)})Jt4LR=G<0K4tx`7j$+kj>J7wa)nMOQI?bt9yo_l4+ zzFqU-Eb+&sWfNGn<;aysU)lIU+q5hTRu_yGV?*~nw|k0wldT1B8LpNlzEYkP61PlNEU!10~$fOP{^x z=KsYdpKG>fm2hX(WY4P0?Y{ZH+FqXRIklVX+o{c)k1w-`|NqYR_ka1b^Z5khA0C^h z_|d$JsgXN4tH#BtLM734_KW64B`qs7s-DepH%U=R^z7#Ft(Yy#{3yoN>52$vV7Q8l zcS^uQ$9_TMYce~yE_Mp)1}*lSZ&++L$H-MYY0C!S0W0Cw- zYfst#`|+LorT>u=98-E6PI1iXIdBp}?E0DdFXG)@_mq6?TX~m(o?`HH^>bP0l+XkK DHUw#} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_send_black_36.png b/app/src/main/res/drawable-hdpi/baseline_send_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ae490ff1e3d1d870d8c990c0a94ec061d077cfa2 GIT binary patch literal 361 zcmV-v0ha!WP) z-JmR@5;2caotGioGp0!S6SG~Tq@lLpQhQKP+hj~a@v)EvfG zVlO8t)DYsxqlzIG*x@9g(i1=g2^8Siy(!crA5`wWLh*f6?cRpkHB@aZHhLNBA*M0T zjgk0m3TG!iW%}8Lk93weI{_#Bp9yecOn5RlA{;eM4Niy&a6(LYMd~q+-p36BPLI)W z!d!>9V=<(=Of}d7jy~O7M;do?>Dqy(=g@>O!w3SSU=#oVM;;;jf6SHZ00000NkvXX Hu0mjf(nFep literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_send_black_48.png b/app/src/main/res/drawable-hdpi/baseline_send_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..1166e11b0a1f1f41fada0a3af720a5bfd96d7c69 GIT binary patch literal 414 zcmV;P0b%}$P)+&aBcut;w-EYTYor#Cv@8x@!OyB6f)y#4NmcV3@4v*(u;IF92u zUvZ3iG$JC>DB>1t=!rKPu<&~s4yY93fZG_0L5Kr3z=WdN z++YP==0f^_#Q<~qpMb?cb4>vSLL6}G_W@flgefdy1BbXoHb}skzXz;GFD9{obsXRV zPwIe7tKs^kv4wt^!s}-kP`Q5BSpG#oqxE}EIv`U=LBA6khB3{QEaC55o&H1JZ2Yw! z3%>^Dk(y)s>nPHM+#UJ$gChAB)_#*;u-`@dL6IW~h4`$h6rxB1p%^c$D3U~oB8`I( z2vH=B5MSGAggBCfoIVl@Nh6UE-#&|lD3X{HdcjcRIF93#0KKV^oIReSqyPW_07*qo IM6N<$g7pfl>;M1& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_send_white_18.png b/app/src/main/res/drawable-hdpi/baseline_send_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..93778507c198ae220c74bb8735969052f114a5b6 GIT binary patch literal 280 zcmV+z0q6dSP)5U=mFq$&V3jD4Ruo?pBo>JRCBX77`V2qlA8ffHWh!%ZvEDCs+OMtEvv>tId{r* z?U>2Wpzp%MsBFoGLzfa?zbh<69( zN8PQbOvk#(^t(kvSLz{3XFi>%=B?z}mLhLlEh{QHoBVdBmiGf*?V1j0G4o)}c*tSf e&kPub9{>PC;lg)`tyG2p0000uwzY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_send_white_24.png b/app/src/main/res/drawable-hdpi/baseline_send_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..24e2811b3d31d3d146c995856b5cfbc9b3133451 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpQBN1gkP61Pmlb&!6D8UU-HfGe zFADF~%u##ktMbYhNXnb-eJQ=n+*s?o$NjRWo7110J)O7j|K0rWaVNu$OenH*&euD$ z;<+KqhZNV}+ZVP39Gd6I@~Yj5NvqANpC=$m_05aN3v1q=32`_&p&*Z9TMZjId%P23_>_etrXScL5$W@-%kDP=-@_H60!2U%F?hQAxvX_J@QPj?-l1p?Kk12~7w>|m;~jpe-r+8i4vYE?CGF$=w5*@mdwX}U z#hUy)nvn36rMP6CxR(r|%qrdCWoe9O_8E1N89}3x;XP$m==PFX)RC{2WvRpkbHp8F z0iu$l7M|E+*hglZGb=?UPklr}R0>o^iK@$ls1#9%Sf;~AW>I%*jLHPtoN$fd5tUYY zm}G%1j=AF2A*w+O?esB4uC8%g)S-G@`nb=SsSq{5xFePLO4ODg{wp6c7S)hnn=W&H2Fuo0{w`vmbN84WB>pF07*qoM6N<$f+VD$Hvj+t literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_send_white_48.png b/app/src/main/res/drawable-hdpi/baseline_send_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..92c2afd4c2beb53ee896e2e38c15cefcac8ceab5 GIT binary patch literal 407 zcmV;I0cie-P)4{XvOlMq0O1EymTD)Esk7HNq|2=joH`HB+zOvfao0WF1udp7CKQ>cRS zb-*cmA>~p6S_w(Ojf?|QMFNsL+w({EF-{ z6z&o}zwm%&^Sfg$JYeYj-f|D9&?rHF7aB`jp-qzI{?0X;Kh(6P{Mt`i%ph4L+9LaP zpk%)~^5us{@+EA_i~L#^t7zXSY9w1B*{hlgX(R)oC=aYOl8KN;k~1?4A&q1!B*%6J zLUxe^D&~;?+zDrOh32)cnbf&nNLKm;(G0JOx|wiB6; zaUA=Adj8<>{^0mCj>vD*r%kzC2`=SS&=d3&qb?o=+1^Q9kY2hvuz0lTlU-u z*>3II5_O`b?M2^2h;D4)RYyxzW<^t2YE3H^)J@Zgsk(@o??m*aCQij59vLW0D0+`X zZ;H}9N3thr){LXyzbdIJM0YIdCOaItH_BeulG^jLt`bVR^Y??Kp`hZY@*yXPo7tgw?88Hmp;{WL~ch-sWGp;_uZ6f^OmgIb|Nl3wqwn*1v7q{^udHNc}DGtKJFQH zK|@RKYbmbxBlnj&#iO@TrGMZ&)ZmHHt{PD=E~ndtG|H7^HAO+vqILC zBrRdxxXX-N7gi*=Yu`t=^m5xL2kt0!--t3J>aOg@ITu(<8VLu;r2qf`07*qoM6N<$ Ef);F;a{vGU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_star_black_36.png b/app/src/main/res/drawable-hdpi/baseline_star_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..eb56b9e46311012a70aaeabd16aa1f3affca699f GIT binary patch literal 501 zcmV2en>N~Oi@f~vI5G8(= zFryer!d(4Xf}|q|X(Yrh1Yrm6QG;&?!Z&K*+&tuOb8xH>&%9&L$d6O~5Wjlk)M>=8 zV>r|f392p5tP2@ijU#3G5;FFYayT&!3DYDT$jig9W4FmmToj-R%}J&c!&rTwwHb{s>6`R2X5U5KWO_qKndFh{`MBVp{uY3Gaw$y`=@LFFLe_(%m6Cbeobb zY`EyqaPuqGsiI3KDbZ|x6J7dEiS`y5?V&WUh>TuTl9h}X8I8A+QrswHcdZi4qrZ?{ zfAeU%6GVlM(RAO43Vox=wii{}S|R4LoQ>__P$#>>9iH*7@ANiaRB4<(zW1JI-RVlF zILw|lvAj9eVK>J*+x71EickG&kSL%*e)XwW-0ym4JJ!y!VG9F9lj~~>6|C-e(ZqhY zvMLtynP^gImAJM6?=9SEDqC=xyWnR_H=W3%xhjx|B zC1OTzTSKkZ@OCjr?CWAm|2bH_4$)Ig={1SWZiq0}&E}WKf^IQR7-DuwY$kkceT`V( s$HJzPIK(j;H=AP}uC1-Dt*u@Y0jn1$YIRnm`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_star_white_18.png b/app/src/main/res/drawable-hdpi/baseline_star_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..2614abdcc2c98127f753ccf13deb6864b3154e29 GIT binary patch literal 292 zcmV+<0o(qGP)?HyPo37V*;B|@`)FBs9}T!4!GhA z_ddDikVQtQ5(@$u!aG9*iaiW`qxOwKTv5j}o;^}0?or4!?p>2Bo{_{Eu8v6(HFj{d zEoy}GiK|b7MTIKds}vRbuy|vZH!ONZg#}DDNf#lVO-$xRg$Lk@7O|q0Ti`)FBbP4* qh!zLLFu*rC;t9p%dOUbNBMnl-$h65wbe?CO)^wg!Pr|$>y{2tkY>&y z-8s#Q?%gld{$lG@v0aJ{szgaFQ9ZUu>6*mYNs zIF8*R1&3BRwNy}8h0}5cgOYr}=`E!c1SS#9IQfs9+$EapN;?KIpIGKF znD(U6go-YcM+Mq4kcnimf*l;@63;O4oXZ?$2P=p$k%6?Oyqw6zDuS?<#Y5bBC~v4oGU|r)9^PMsr6gmCyx;=Syx=*} zoR>LD5zR)*Q;7{kQ%a_2i_;a-^&RP4!KsZ*5y9>))5s?q@-dBf*k#ESNBCtw)fEM` z*v~JAWrqA%KXc!4!vFvP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_star_white_48.png b/app/src/main/res/drawable-hdpi/baseline_star_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..1d893f078bf5e742eb5ad1930625f90937b9cb78 GIT binary patch literal 650 zcmV;50(Jd~P)!j!d>z6v3T3b8FO}MGV%N z!4`>nbB0n*iF)&kQhtg0vb%D2jyzb%YPNQOW1Z~=4|v6=e$(G%_UY2i@o# z$2rh8R<~eO&VEjHvD-cF9pC!bFnJi}U*CGi<8F7cQ|%p{v4bJ%ZJ-^ZbJq92divkm zQJUp^r(V9ZT$E>Fud9dGEnN9nal5?T9@TM*$?`HOQzdtZ(eg0bevyr>^^;mZTSs=* z@Vk_Lw?@>)lD?G6Czedp&t8VWOaVz!RxYmE%IQHtOiATHd2cXBQ>Y1#c7e6$JOGoNX_3$ z8EJ%4{))7$pp=)bYIQFuWraw|;X3o5{bLsU`%h;MiBV$};;WjJORmSSb-I0>- zwfDBQq660Pw)Vb@bS!G3)_ORk%*N6~YZEORsn}0TK>CY!u*kf?eMkDYy7Hxjcp?Z$2cX) kqvlk{N41)onwpxX0w89|4&1)H@Bjb+07*qoM6N<$f_(%?0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_sync_black_18.png b/app/src/main/res/drawable-hdpi/baseline_sync_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..2fd6ae67fe3f8222e5f8d1b30e7d7246bac52fef GIT binary patch literal 324 zcmV-K0lWT*P) zfks1N7{}p9nNpBa5DF;*3P45ZE`q2)KtKxzDd=88K!pI^L|M~V6k7|lcw=yIzUesj z{NaV4?=xyOyH%n)S(PYcRibcj-=@-TgnVsRW|Xk!M+hxlVQ^V5A7)rqAKaf-NSiW- zJj?(annJ^rq-(b(HS4)%+XIyEEd>)myY2Sko-Yh8(S(S*aO2nZhqxA>G Wx^gO^z&)V=0000_WLb6d83v$k~eY$Mlfp6uD*bbb2o-%fw``7+-0=}nVV zVw_i1Wl~ipRb^6DCf<4In5~9rz(uLs7tO}|Pm|Q7em+^#cxtf4_PZvn+tX;Om8Bkw z_-VBgQ}nM-=`hkA5g(1yqZYUHtxI(_N=?LJJ(%dHxT>qkx>_kBrYLks#3g0Ui`b{o zX%QQh*(KtvLNyVym6)BMO;wks)&OMO%)N#OD=g!{4_}qj)8!t7TJ&g~k0S0GsYB{hnv_^A zA|6|+mDH!ou~%Am)d7nPl}1zReUbV#lA5I1SE<`24H#yN;~si1t*e=&aa5I2RYp}A eRb`m0_xu8LSIn0GJUAu*0000y&KfARYw~)s1emM>NeWgYNNUhYumPMBYa^MtM;iTlapq0-<+Fy6YY1x zn>qQPf!2x9WHW@%Ia87|B{@@)GbK4wk~1ZI;tkI^PX|3}oznA_Ba9}YLr9gm&L|RT z;Sy4H_R?IN+!D5Ok@x@Q?$WasIRI#86r1^}u2<-qKBo=jvdW#KK6MVXdN!!s0*w05 zR+#g=xhmI=$#rfN=0bM+*i8(EAxL2^eEo^fO|ZX-Z%{`_D`A6t>=KcB@x!g0$LfUJ z{7FxuOhw#G!fKM=okNt>{*%28t2Vy4?cGGV=Z;^cj4QV7SMK;4%Gl*UxT1V@#}`q? za{oOS<()gej4~Fw?Tf@-^fG3@KIdH4YzlgXybhBF-?S=C49Zj<%VN$)91DkB89oD zn6x8)=7nN~x&9a}P`Q=V2VyRlLOthH?lJ?>Bz3MU6_xwRW=7NOW65*fxs9Ob0~grF zQlu8SW_BUPlQIXRxK}lIn1n`im~RDt2uG4wFFLruGhXxAkV+t9ikvBOrpTEhXNsID c7=zO37bBR+NAn3&2><{907*qoM6N<$g1X)W6#xJL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_sync_black_48.png b/app/src/main/res/drawable-hdpi/baseline_sync_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..fd9432393659129a1fd35ba607bf275a7968283b GIT binary patch literal 700 zcmV;t0z>_YP)-If!fFyzD+t#p7YVKlEciO6VLl;+}+gh@y-~2~~=B(ye}FV#1@8 zFV0EHl;t!xzm`6YZ&GrYDDV2{nh_GmlgGbrPCf>#sq))85Kh{6E3ciJRml_d%#kTssb79;C> zqVNZ@))UxvWW7ohK1S9)0y~ea$BDwz$T~-0r;+s(QFs(t#|i8JvOXgUuOe$Jfvrc@ zzeM31x6kTv$f`;d${=eJf%QPvFrv^4SsmTJ>yPmO?lvPUFM+**u=pQWKO*ZqFA>5b zWR1YpAY@G>l-dZ3pK{ISRCXdQc+fu-k>l}9$^*2Vt>jPw`@`l`;_Adi!+oW z8O1j#H|NkzP2k7GL2*v1iV~VeejdW0cqi5197<>}{rQJ4d4tDL+>`Qf1O+OFm-hzW zCOttT_IWeOM%85}%CgqP;$bSV5@oC#vHE~g^kD|4JeZTnw>kJW2jAx4+Z=qGgKu;2 iZ4SQ8fo|M$ce((cb1#UdnmqUb0000WRoDEdKM*|L()&LLKJYCMN+YJ-|4pk^r_79p5Z(Z;L!P@Yi( zKVZ?FmsRm#w49x}F#HW2#(B{@PRjqUg`E&H5@HU}FqpD+bWDZPOn|lYVjuV6*W6(@ zT~~11gWaN%uJ?Ms<^lWZdKFBUBa=R`o?Z-U;Gmq@!<(Uy<`^vt@w{y&&ciO8g|dvf zN7ZuoTzC|r0b`*&^Ip(#WbTWJuy>X`1Da~&!*QqT5W5MvS+V6BJeduDNs);XmVuJ& cWTN~&0hR(Nf*zB#1^@s607*qoM6N<$f?Dj5VE_OC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_sync_white_24.png b/app/src/main/res/drawable-hdpi/baseline_sync_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9ea19d3483815ff83197660e8dcecc1bf2fc240f GIT binary patch literal 384 zcmV-`0e}99P)Pu*yXI}z5=LeiovLwNmR`ws%8?Z eXOgovbUFd$gX4|?5{Lei%hV zv7G+HYGRG@!Bd_U%P9{|5_v9nOaUmCE3p3)k$L`;_!$+-gL>t~1R@XQh7t5(?#dI_ zF#V1*j>SY4$P){Qtda|MVmfG$CmQI&oRkaRU>++09(i5O56mtlzzIx7F6hQ=Py%el zbjt-Tm@P_x^_X_KAcHxf1lWoBE*Ct;JdwZn>bHKsxGT}n@9-L4EGM#1o>)j^sa!Ce ze#|v_;vS}t5pu%=B9kTerI-qyVJ^xQbBKJTMtN|%!2SlyF;(t(PUML4fTFp_@Qd0000z0v|_`)gXFC!=Y=>m(yP;;#+M!Lkp zF|^#FnxAb_TGABzb)U4Lm26@U4;Z7@Y-e?xlw-{2a4+h0N~cLZV|Vm2NV6T#VNygd z$D4sP#fF_FMWkd$W01bFKs4bXs|-%+4NBHCPU70A&w_^e#TtW?=rev#bEIiji@ID4 zez*4Er0Bzy5_d;E<}(^F%m#y!qAwpv6D$^WI9&S6+|hvTCC-UDyevHu4S8DnG^(?V zInuV#kliGfiK^@?{Su9t$0+IWsLIXKebE9BHM-KgA{`$saFq07ROM4?>u7;pq#vUy ze@ZJx3#>1Vj;hR&7LFEJT$&wKnISC}EwG?8C8{!3+9+CJMd|mb%8$~X(E?jEx>tKa zIz3w8IO&zB%3abE(E|5KH#d9MPc~09=2vO|sLCoxdq+dImF8G3s`H8TR5auf>E)=y zxk%eb1LiSYIwI<@n90%y&Hm-vz%all^EJ6H(&fHOg9az9 z;TOX!81=axX`J=?1`SSH#i7xJ1$=`v#`b-KGHIyT&=jPZj_DiJLDIfvgY=SZdxN@6 zI$f_f9B97Ypste6GFz`v9<+x|tzsd%PTJ2z6?AiY|5RGiA}%qyl%$M0-!T29YoiP1 zcapCSc1Lu{I*xIlw@fb~r$-?0000^WHRsRBbYn*!}--R#2AwG7Yw**8LH$ z1^Bk92~RPYVv%9!%9VSKQz{{SW1{2^qrL1&w!P8vPj+(ohbcUrr^BA>=$gDP>Ew(m Z<`+l2XPCZA-V1azgQu&X%Q~loCIEa(Rs#S4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_unarchive_black_24.png b/app/src/main/res/drawable-hdpi/baseline_unarchive_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..49ef8c17e0e51c0560c7b62ea99bac3dec8e68f0 GIT binary patch literal 254 zcmV=2Lbd15#-(h3u?wT3oP&{jhd z1<4G(ckTBDsA1W!iGUQ-rztN;F`9Bin$c7cq!>*(AaHFmqs{oC@(=MNUw2FXX^cHN9lNS^xk507*qoM6N<$ Eg6DE)tN;K2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_unarchive_black_36.png b/app/src/main/res/drawable-hdpi/baseline_unarchive_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..f89866b9c4bdf47f760b1c7069d3d3860ac5f5a2 GIT binary patch literal 355 zcmV-p0i6DcP)40Dq@W-bmJI|UP(V{aGJpUCxld4q+@N>p9dd}pQmdPSia^jx6@QVaHO$!V z{HcU_KY%e0!w`#IKtoK!4f#_omPo*sw5Z(!61YcdHb)TNxS>fSJ`jX?y~BHiPi|?N z;R|8U2>hjN5QKMD0Xy8WA;H@-qPQnKT_dXd<_c%`i1O}mX4Ekgv51`*D|!7dY)y|I zYhBDu0d7tYD~{BGD^7_OBveZ%^f8;VIdv?zsb4PF#&Wv2>XK_>Zpz}qvFu3sxl9Ag z=uoE)St#bB99#&tV}_}$k6j;A*^Hgur(R&UK&+h?7O|3*wK5zFTExcc*cfN2I+o(; zMU~3&X7nG?*OaXav}H<-+6b2TPzx>%;kX zHz;MeJ6_Y0cyr^;-t%S$m2OmD(<z2h8#h3s3*G<>A z*`#xNQ{CGF-|)ixGY9hL=kI!DeK2RX{w~IE#~IyT@0r4E{L19ns+d11tN%a#RBo|2 zPW#TZ)#uk-T7CJ`hc-jg=*KH#_PO-8=_MTRc>773=~p8E%HmxMVims1vHfz$l4Ofg zx_VUCk<%++tLloSy$mnsXa;wyJS|`V5`{LCrkpPH2r@ga;CWM~StYfYXVR3jh6DsA z9W?Y{^O#Yo2sHG<0q=k&p)DMbbtY7CFxx6!ZE2KR;&!LK;GKlxwv#ml=jQNUm|bw> kb;68k&T1N|k<(KDA69UFRIskY0vL)6p00i_>zopr0B~@e-~a#s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_unarchive_white_18.png b/app/src/main/res/drawable-hdpi/baseline_unarchive_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..c629c3a13680bceb474d9f5f3fd329a4acd114dd GIT binary patch literal 231 zcmV4xbtL3o86HYH!5W(e4UkD@O4!-;A<$x9>1`O zhRMSe1v5f|P8JF29*ABRscnmz=wONz=Gn3#g-ecUZMwH;W!TF6*;?eedVKZDI(&7e hv1erdx{-tZQ*Wb2+!g&f8R-B3002ovPDHLkV1k`lVa)&l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_unarchive_white_24.png b/app/src/main/res/drawable-hdpi/baseline_unarchive_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..219e890a7f57d0eb4c2b31e95e8d15c9e122c4f6 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpX-^l&kP5~(XEyRSB}lX+>T)bh z5s2+nENM8uqot4`ZNcJ1&KXT@zf`ZVKl$N&vihm&`L`M2A|WjsyOR1fUlvMhY@gA? z$6=}R?uvu^wz~ff6ZsS0oM!oReFnRxt!UN6OVJAzmhMnskeX$@VA`BH-wc+V`NZ|q z;S>iPJD$==bvmW-)ai5G-~4t_@fBJM0vf-&pS*AnY-C|Or|=}G@Wr!#TAO%Q9Wpu5 zt<$_`gX&hhNxd(RPR)ATD3_za#}s?&t;ucLK6Uc CZfbS_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_unarchive_white_36.png b/app/src/main/res/drawable-hdpi/baseline_unarchive_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..71a8732fe545d31f68dff1046cd3a33003690a0c GIT binary patch literal 358 zcmV-s0h#`ZP)7lioc;j0q53>ee?VlhV8hBG=1>aZfD6`lInJ)u3+r4|6Zab+6Bm=6FJ^)By#Pi{=Z zuzUeK#>O8h6#(x%2TTP(MdHVv(CpDiU837J7jEnh?QY$eMLQcYg(Bvw(Gn(O_n z)i6J0_DN13D}Jd1SEyowN{;R)6#AH?B&Ukyk~(m?HkQ+OZuQAEF-b{I3CkoUIWi3_ zqi1SFk1Q0El%EU0w#>1AW*{~ON9S|4O)=S0Y%GyQtW8)cKH8-Q7Er_{Xg6_VDcYsR z9WQ8>8(&!cNA$#u4H|8jng659kSR7`rVQztSgghU0ByYy_sCnF>i_@%07*qoM6N<$ Ef_Rma<^TWy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_unarchive_white_48.png b/app/src/main/res/drawable-hdpi/baseline_unarchive_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..24039b67e017e5f30a103eb30152b955cd5ce76d GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz-a90;uuoF`1Ty5TT7x$%f~>C zKz5BF20<$a2lJZ^9E&E4IP7v@=MW1KoeIf_rCkMyEA1nE6!c3_|nz%;zHg8GVb*ZhN9s_Vho2m24kZpYXq0!$+MgU z3y!r?+qMUh(@<0tS@M=<`U(P@p{N9w6+J0h!=ie~=Ky9kg3cr3JN-Y4{gAJl0}g`h zNN^j>9p?Q7a{!csYJrbnK0zy(3Q!2DYX*10JYvRgFa=;Xwrm?~`e|?5$dBrc+|VR9 zT>0^C2bAI@1q%9cZ(|SPR0O-);Y!v)V#{+Vx-^2UTDXU*s&-tBBV$M$r>l?A^B`ja mc^6(abv2dUIJ0UJQ~m+^#O?~w0%2?b0000iN_j~42Cf{jCt{k%jSs`Dg z9k!^HYfcop;DI{bdWNK1orf+cG-JxtYSS}`w5e5Q2AtHaXBug8(v%c=6+#+(b+=Ex zY6zBBicG?4e-hV!YK*1Ezr_B>nu#;>J8{dX5UG|)e10hx$oDC&l1!@Vsmc8+0YcMp@uNqJ03eG$z_E8;$Te-0~Exjb*nEJPz8= z0J~y<8{kaTI|FV+y*>tcZQQ-6(3Iwwr_!$kWKil*BL9?&U~L%M|6ynkibK2BBoui+ z!5X>OC*Q<1@?O!xEw&k~+SW-AX`Sh+1&W;)mw(1X=M|e1`6}$NRi#`jEIE1sMroxy T^^F1700000NkvXXu0mjfmD#`D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_visibility_black_36.png b/app/src/main/res/drawable-hdpi/baseline_visibility_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ca2953f0a52d8f003de55e5b18295485d9164480 GIT binary patch literal 641 zcmV-{0)G98P)41u2(G;~qS|(Yno(^V@oiYUL2cW1v>Vm7ZCksI{>$^NifEsS=g0BP;lGH8 zh=?f75T>z+jU445n^?qjM$(8l{-S(zW*txPiQ(lY^C-t3E6O;Y;R|ZG=|UdD6wfSv z;0tM-r8*(YLoZ(73uAa$NeUr|WgoiSb53%a=je$0R3Jztxgv_3XEZKMK}K^yM1G<@ zL8#4Z$MjotB9Fu6?#M0Cus;D*;)7%27UEFi*y5P;lU8Vy<&|UFHUbdszEBMzNxV^) ziN-)<#;}#Gq|+D!(Oh%PeMT~lc8Y6X6O+XDY%|+Q#?%(sJ8;ll1aHHnaVOX89nvt{ zM1^kTkit6=+6CirocCb5hzjpWC7a3edyoJCG{YxGa{wTLUm{{MStRm7ggwE`l+9*g z)XMOIL<|#Uq0^Y%GG;gCjEtEGW}FN8E%z&5i8);-QDc}Rr zR5ojdJs@5Yu{hXAzZ1qS)@Rd6RQN?{a_A~Tw_?(`muvPOX_zhYemU47g6m_Fb9}CL zkc_D(vagUI2gy7Y;n_dL>1<6i%SpaqMN^+S#X9&MD_nHo zI#v*Ml@7QFv!6u^(7S0isiY1$-2z=i(s%F1Ct5buDCNy-3)K z3%{)qVdDU8tVmgdpGJ$Ie)y}ONE!`VTM;sXK#UM+Z4pX~%W*xC)nX=xc=@vqF_W4^ zw$^9fM@r*ECT{sW{)z0^73Dybo&yxcE<2xmX5JzbFYwJUooC?;&|Hvdi4+L?Z2x|_#|bQ188P%6@D?MZPUkq0FFRQo zFy6@SHy9aoI)|~N3zn>+7#C#sMU0|4oi5msN?+78z*rj4McqJO)TAPkUh>djjE1ti z5yoKI-HRyPToQ*4Vz)hj2jfAJd>J>`KM>axI13 zoZu(N%-j@%ec{)BRxKp31UE-;d4M+uLrcyM%a-AVx%5nwJ{=OApROClE&bt zm0|e|8YeGizq!~f!Zyke#f{gg=J#DLoGl0c)p+3=aHVHl+Q#Y#8X*vY}l9 zU&kc;g_Tf|-EqItQ<`%&#HDA8gtQj!ND5+wi|X;YIM=@xKF9ED;UsJ6OHSfkO7Zh0 g{y7{Dhr{9c0eZNbp!yHz{{R3007*qoM6N<$g0I9|nE(I) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_visibility_off_black_18.png b/app/src/main/res/drawable-hdpi/baseline_visibility_off_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..40dec47738332c044706874346fbd6d2b37845cc GIT binary patch literal 399 zcmV;A0dW3_P)z`)y7XGI?O7z`LRABY@ z!!j-faEL|rx#E>ew#d=pOYmF_yLzP{98Q}d!6z&2VFZ)V+Z!)k52+Ix`b6zKjgB`; zLS@NFG1HA0J~LPtT6-BC#V{_*_V^^iU^D?N2DhTTNaeH8_bmmkAi02N({U?vfK zp*@5R@GORF)BzW_rpp4N`?4%>rl2qfx7?z002ovPDHLkV1hRWsCfVY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_visibility_off_black_24.png b/app/src/main/res/drawable-hdpi/baseline_visibility_off_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..574873fc95707aac05697200cff11305d7842d04 GIT binary patch literal 516 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 IM6N<$g74vL8~^|S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_visibility_off_white_48.png b/app/src/main/res/drawable-hdpi/baseline_visibility_off_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..49ce7480bb6bb1144577d0429fc9060a51c6c886 GIT binary patch literal 882 zcmV-&1C9KNP)ZCNr-UY+`Q*JJ^9XFr(hhP3p)enZ`D* z^rgz$Jm(@?8Yh~;iaJwC_VtNsJ?C(9>k*Byy2Ae_8Q=SA^SZSfjIv&nlX%`z(FmJ1 zJ&AkF6!o)B^OJPB$mmfoYwKuw5+9m6>SI;yB$M89hn>x1QvD4yk=bqQQ8_Z>`}tWb)MX&)gh%|QX3|dCiW5d%H*Z{NLs;cm2!G`O4!^b&~f$l=7s!5u(UXF3j0{^D$^PqKuZXQG@fsQ%e(F{)2;u$+~noL=6L_IQ+VZ}mx@&M&zF z^VW3XkLUC1lJxeKlnzrwWiFO>Vw5nwud7U&Dw%X}{2wEGU&?RBDO=HF4JW;toR*l; z?@}&}GUj)jCwz~$b<~{nlc^%jYSQ-4PEM*%Dp)4+93*Y~%;co{q=Tb6&X;ybesUt8 zbb%gG9X;J3?Q&z~CMTJs(`uc^o-FNmr<*h?Fu=WJk`AnIlJ<+7$82K`6B!txhw&}r zG+#q9X_Tms>3ynkrAdu4mdg~nH7U<*9_;3%JS%v4a7*fGJ@0mZQZ8y9M|x4U-gLA% ztgX;cQl9Z_?PAYsSIJKvccyhs6#uerQ2LqNvqVH)JnQ8VsJ{jQ=f>zC+X&H&dDU*pmz)sEiEm70Or>gyCW7ZhyVZp07*qo IM6N<$f@@E**#H0l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_visibility_white_18.png b/app/src/main/res/drawable-hdpi/baseline_visibility_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..be3806043d47b47b5c3ef7a6ac285938e2e9765f GIT binary patch literal 348 zcmV-i0i*tjP)GMQ|K(mqMjtOZ!&dF#xP8spP4tb?f#nma0 zkyxX|fW(kv8Allx$%zeKNW_G4?BN>Lut~%t5jlxg-rYhJEU|s?x~QAraH2%@8-@Ow*B} uM31xy_hdC20TrILxEXlDA1>F(9bp{?)aqXlRL_G+OJMA$PsTOdErm1PB3rb_6MvDTe=AXH&U4kJ_u-IG_03^(pJ z!)joWO{)bpFzjx1OGY7fiLJ;mzy(bg6MJ;BCmTk2fzF=JEDqSjStJVGnOE>1ii2jN?tDJcq~;{%)|jsC^~LYkJf=hpfj%K6Uwry+P`etzMsEGb2&i#^W$^YPR zI2;tE9}}3vYWB06HOyfmgQ-KJ{5?d|mKEH?#?57BP(uC``53_iLgS(x*(5R~F@;Zr z=QtH5Tx6pQkBEeu#iUE`paSq){hLXeNaxs)s=-$v$f}<)= z(OjVo*_7dK%@uS#B{0hH3e7tEZX%I&Xg?qC?G#excOLgz4AUaZcfaWZ5Vo;Z1 ztYqm&wT~9fAZy3 S8o6-*0000P)>w0&QeJ{ZX4dhQQ2EL_GE3kn!CgY_E+r%|wBikxz4W0X zxk*WCa#Ml6?8Wki)`2W}vv7OIeDX;o$j3b1<2IY5{!Q`CxEW)C%&f(2vmZ+Vt8g15 zK43I%tHd{q#I29`h(5TD6dSE^8zz2W7;e_^rlc_(*Gf3lU^)kQ&T|eho$3+}t8sZx zNr@U6xPi+DvWh}s_7UDb3X4KkKHzeL3=$Pq<2G9qO7WP;Jf^fL%nopHQwK{nmCnU| zqH>?yDw!2aRf&j1oWt#aC~U`NyC@vQ?JS8UJi22UqS6hpG*s!KSh`DCB;_uax+=c} z%VL$Ti{&m!MWX|@A}W6t%Q=-Uf~|vS9K)7g<=6Ivuuy zqR|OkVU<6J<-A@%v2_xS6x_v9PvsZ;HK^-hxl0NOiyl}8s&suU4ODs{mL3uwNw|R9 zeo@%!$HKTDw~Hi^h^U4ot4e2gZXMZGG7FZffo`rdMWIBLn`;SCm=*BJk&Il&B zk1V`1jvr|yYLp7#fHuu}KwE1c(1JU{4i`T#+&;pZ7=>GZ@e%!T8zsJBc}T87V|*XX z1`@LoxAo>lalL;RMFYvqlkoeXuF`WzD*mDkZ?Nq9U2I7GyV%g*r(#2!*k6u`-32QH z<=GiKN_q-SIZZH5(=0ZXh1-+pf7Pn1#&F@>Xf1psG9Nk4>i^SPFpxavn=c-Z$K&yM a4Br5P$Lz7&lMCel0000|k1|%Oc%$NbB{5@S9Ln;{GPGe+aFyL@4-_rN3 z|JvDY0&FQQN2_fZ;)HY=8p?G-vR*TbybECwbP;eo8?nM^f0Iqf!cyP+OW9a><0Qk~ i0(c!+K0aYSki%D}S+dnWQ#b`^G=rzBpUXO@geCx!_$WF6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_add_black_48.png b/app/src/main/res/drawable-mdpi/baseline_add_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..a17891a0134837f05a77ccb0e75772cc9da5a0e4 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDH3?y^UWFG-iYymzYu0R?HmZtAK52P4Ng8YIR z9G=}s19GH1T^vIy7?T%>CD=KXp8EIyzkP&e)D3r428JvldEJHk)`Wtzdb;|#taD0e F0sxCf9i#vN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_add_white_18.png b/app/src/main/res/drawable-mdpi/baseline_add_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..5c51c5dfa5ffc9d7f9b1e1e51f2bf963d9a697c1 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|T~8OskP60RiGvUR|NqaX;KSR@ z*YIJ5qXuI&18+S;vQHtil(dOd_LTIA6S*0-E?BU)DBuVuP$Pq<$B+uf m|k1|%Oc%$NbB0zF+ELn;{GUSniqP~dTU*tc!* z+l<{e<&Q9kb|3vMArKcN#Zcfm$@7!xHN_KC=O{FBD7`qkc>BzNuI8^{TYqc)^A7m0 m{CL_`ufmdKI;Vst0JMNd+yDRo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_archive_black_24.png b/app/src/main/res/drawable-mdpi/baseline_archive_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..ded2bee1e743ab7fd59a11514b6200f4c94bc47a GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iLQfaRkP61L6E`wCFbEtmV$67( zAQ~Ncn1?O!^#PWu1$GP$>;5dM`q$&`vws5@zesyigQ^pkPfJH#vY^v$NfVC0eYK(| zUjAEfz?E@&lI8`MubB#+FR~leR{1mgy4?TRKIhG|<5Oo>bv~H9<`t)1eJTS-6T7q1 T+WdP!%Naaf{an^LB{Ts5%l$pt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_archive_black_36.png b/app/src/main/res/drawable-mdpi/baseline_archive_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..d3687d0459e701c8403f74dd8b6a4481ddccb8a8 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lpc25__kP5~m1<4*JzqX1tHl+lc z0984K69tnW+E4r-7GTPE;8X$2iUo}v<;F%j%&Tmet~83CVeqO;$WS?zeU>M_aaB6w zt>wwg4G9b#i?$1B2c*lc3W;neUAnl1pW#9L|6P+K78D(IT9_g_g==T%gx?GQE^y0l z*pt*Ndis2`$HbX!K+HQ)$ryr}HghPsrb#KWrm4BC+VNydnP^Ju8Lbl@I`L;xq%FHc)I$ztaD0e0sy=pKgXap;*KoceGtTkYL4TKbWGyDT8 zTR}#^vM}sq_z%?Wf=`hQ!)Kr(%HRhEML>J?asnU>#sD}=D7a_tZX&vZ;7AIB&QR|{ zptPx8{`8)YzBMo*8OExC(*j%?NTv}$06zim1n>ngA~$2{42YbtW{Fr(p8@0(bZoLF z=sHDI^#(u^bl(Gt`U*f3bUb#NV9V#4V0<`Df!$KSYhbnjiw1fe)%6ED=wQHxySV(u diUH{9GXj#c(?!n002ovPDHLkV1i;&Y!Uzf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_archive_white_18.png b/app/src/main/res/drawable-mdpi/baseline_archive_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..35d5efa7c3dd07946486da0906ad43b8ee0d0664 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mnmk<`Ln;{8o^51pa1d$#7_G$O zAi%&Ypdi5E!Em;4_7;bXh7V;c6&KwJcba~V`{nQE^13-ct&LP}I8><{3iJL<)-|5! zE*mx1y=hvFThmdc_b29UzdB*D+4dEMicIdMdqXVV?(Y4x$J^|Jz#5U`VHM6BWSRvo lF1}hl#X#wygy)&{Zy!E)+gU&Pa}Urp44$rjF6*2UngE)yNDlx2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_archive_white_24.png b/app/src/main/res/drawable-mdpi/baseline_archive_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..fc475bce103789f4743405d47b69499bc3992c8b GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iB2O2`kP61L7dP@Y81T3R<~O*U z=38?pY|TL)$rdYB6=4I07s2s~cU+YAZ+REGtuHz4`0FII-ie2@{BlItY*iOcYHD8* z?I^RKY3DZ9){`d5i!2;E&d4gbJmV8kDrVQ1Sjq9=NyeWYULm0yCj8Xe9I<}y)>s7# T{mD!qM=*H0`njxgN@xNA@*_LT literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_archive_white_36.png b/app/src/main/res/drawable-mdpi/baseline_archive_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..221241d69e5cc422d20229c44f23548023763399 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpW=|K#kP61PmlZh<1&Fjh%#MhN zc^_DP`%_i?`B`yQN!N7B-q@}$e=FO)<6CsA@$ kcEuHzMa7M`iZ)j<^}T#|yZlHQ8_@X-p00i_>zopr0DjwFsQ>@~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_archive_white_48.png b/app/src/main/res/drawable-mdpi/baseline_archive_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..39180e0299fca3926e3b71d00cd8beb8a24cf302 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0Di=HlyAr*{ouQs|h2TC0KXnZJd zfrR6Cp$l*Ka75fa!l0?ZvTVY-^vxMA3~#QB?%6jt|GBY6Jp;e}f#78;t{ZRP6ny*K zsXaXD&+gvXcc!h;y&!&-(PuWfwzhJ<3f-$aKXf+Vp7i|I{NUfElbQXaww!Cs*Zp;} z(XDg=b2`(cw_6<8r#(HPbDYt|Qpr&_z>y=Xk;^H7J4B#~&B2XBia}B_gCV750pkQg zu)s1Vj*I;1K?#dpXUkMvTQpr}$EMP(=;^BG54G>z_;#(X*W;?a^~uL0rU{!ql?Qr` N!PC{xWt~$(69D3tY2g3> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_delete_black_18.png b/app/src/main/res/drawable-mdpi/baseline_delete_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..c92e6a558301c72e9101406fde7e807a5b3819f4 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rhe08bakkP60RiJ$`<9p4#0G77Y9 z+S+;b4a1TDok#e7@B}eDVpH14q!_N+u*Zo(UEuLvHl;mR4YDq*aAa}d6J&cTkSw4s ku>Q#8RpCund8!x~vcDC$bSXY<2Aa*_>FVdQ&MBb@0948=hX4Qo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_delete_black_24.png b/app/src/main/res/drawable-mdpi/baseline_delete_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..e1e367f7a286e4b749390b707b9fca6df6e9d809 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjPM$7~Ar*|t3)m!Bxg7p5bo^iZ zkUhcD=wN-3L9DJsg#-8X{wRa2gDY4Ui%npZo0#xJxk%>&`=i$`5_Pg`ro|X=F`RBb V?%%w=N*QPxgQu&X%Q~loCIHGUC8q!Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_delete_black_36.png b/app/src/main/res/drawable-mdpi/baseline_delete_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b80b30b828afb5e30c11a72b0bde26508dd31159 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBN<3X0Ln;{GoNHt~U?9Tw(5dt( z!@U?uMP=4Y(F>UNPuumF`9WX5(e4WY{8D~8y(lxEa z;0z(2&T5?58KG=oBJg^inSlNB1BUty5$%nq97H;dPiEXmZ~A(Pv!^MLfx%Myz=U*v RmL{P644$rjF6*2UngC2DK9B$a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_delete_black_48.png b/app/src/main/res/drawable-mdpi/baseline_delete_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..a1c3285c20c7815e1f13f69a355a26dc9fb864fe GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtB2O2`kP61Pmk#neFbJ?-)MR=Q zra6Vd>(MecF9rtVllT66iy3b|KZWt}q0{$l{+S)A`1sbpf#G*Te1$9{6AOocflu4%u+)Luxe|k1|%Oc%$NbB$~|2iLn;{GoNHt~V8Fn7(V^ri zgHgEK36I9tETT`cS6cHmgum(L+0nrErCmDU{-KbB4f#g`9n|CXf3y76S)lIMr1aFG ziG@>0#bbhkW0TnPwJI4!_k5b(Wio#(=92l$)KR+P?geqyM?OYU-)Ac9zopr03v%m0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-mdpi/baseline_delete_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..ec1838cba4459ef6181d6188ee55ab4d2362bef4 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtGEW!BkP5~(=NUN}6d0Ht7e`-{ z+1$i%YQk@pdgn?1G)|tW++4O#Y~pc71`!6WU_ExA9xw>thOr`cUaw-j5$)j2ud}3` z{Yb+P$*r+`romI<4tGy-*dy9;Kj>A~3dz|HX+}Jj23&3jH6&OWF1h#2S=amd1;`9f LS3j3^P6CNYaFA%YxPIlN zWmYXqG`l1n3)OpX7YLnY6j9c(->iHqHu=M+$Lx~4^Y)6Y;h4MjCkqdUQ?{0&u%)7M z*Oibo7FSP~(paHbm+coqrftrdqAyaq{7FCemv==f<&D2GY+2{uW{i-xJ{9}T-VRmK$xw2nfp5YZU*8Qn7tT4nVgF#KdTsOOMR^b01jMHF+Hf=(OkTTCT{n8( z{FstL%N3tvChYJDv6?r{<~sk{slV@6Y$!UOe(sp!4U4e8slq#t2gd1t{*krA<(Skh Ppv4THu6{1-oD!M|k0wldT1B8LpPEQxdkP61PXBycKC5SjY{LHpc zpe;qhMag4^gF=JcLh&2SJPi!CNfB)(6NCON>^}Bjm${TRdqe-a`6dbO^2MC0jl#+N zY7r|J8t`3d3|K65g zZD3lEp76xldx~nQ+rEieGdE3)+%mIs?~Fx_JF5(fLwfhjcr0%?k)OGeIhZrKMQd3? pd&@?rLlKJ1%$k;)3}VmiWn};V$;>=IlNaa-22WQ%mvv4FO#m$xRv-WX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_edit_black_48.png b/app/src/main/res/drawable-mdpi/baseline_edit_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..832bef36c6a4836b4e2e0428ddc5d2b1c7088789 GIT binary patch literal 254 zcmVfL=62#sl*%ga2FrzDp-c zrIy?=P7IMWr^3FwGEnd(_S+@;V)n<^7kvWTVvQZ?5!fDU>_9*(HtxkMf`9UMFU}FX zVa`RyID~gD@*v*1D45WyMa?@GJEm><3d8&h4PRfZmAr9dlz16GSMw!4pQ-tA;${3y z%|Gz@T+L59&7^L8^IVDe?(d;ce1estUOB-a-)H-{4qS7v$~a&bJ; zp=LZ$@s4JYD@<);T3K0RXj_K$rjk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_edit_white_24.png b/app/src/main/res/drawable-mdpi/baseline_edit_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..654d7a93c697325dfa45eedffa88a18328af9bbb GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i98VX=kP61Drxp1e3K-l9%Y%G^ zR4(RBa^BJMrehZK49Ulw@d`idyUw28FaFoS%dKjD_#1|jcLBu~HD=*IVjdQ^MjffY#_1yb!Km+TNh;7@ N22WQ%mvv4FO#n-5J>viX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_edit_white_36.png b/app/src/main/res/drawable-mdpi/baseline_edit_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..f17863018e8f80d20dd6b8874b0216c491bfeeb8 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpZci7-kP61Pml)ZY0tMPX<_T~q zs&uz{uyAS%a4b+RX|z4SB(Ola&DTRas7wEv{AuRoIFaABdklXxzN}en_Up}ypEIWz z7bM9vAM`X75N@Dab^-%U=xJu}sOc9ovPRGzmy2fRb{)HWIlXSrR8nlksH z(`NP6RrgB`ULCwtSEtBaZuDDJ*huH!OwS}k)x_-)XYL&9NisYxpVSuT7AO$bS?DAh rY^;3ZJjW;FrkEb3#SZ>H(NFBY9+lCo_`cl-=nV!>S3j3^P68?}DfhYe`>%gij)mBg2;#@soQJ-p~JF%l^Z*`HKCNq?581h8I7u z>Ry|=u_^yY8E4#t{~xwVxbkf)u{P?7dGoTYqai%!&Qa~A`cGxz&pG4@#8fv6+=~ox z+_QPb%Hs$>lMBHCmwEg3~{;#6lw5Z%Jhq2*~1l`N!Ml10lmZE>FVdQ&MBb@03)ks A$p8QV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_folder_black_18.png b/app/src/main/res/drawable-mdpi/baseline_folder_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..887082840642da74f49c975ab5a0d4a56435cea1 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|Jx>?MkP60R3CRas0{@RUNqZQv zE}U3&_}}El^+Bf>{9nwr@L^!H-oz}9i1Q!V8JIX{>}0%}S`XC8;OXk;vd$@?2>?;e BAB+G1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_folder_black_24.png b/app/src/main/res/drawable-mdpi/baseline_folder_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..a08a6f9a1932129bc9bf16c39ff12341059c49df GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj{+=$5Ar*{o&u-*xFc4sI)H|k1|%Oc%$NbBB0XIkLn;{GUf(F#;K0M|SpH(# zicj|SFAncuQRQGSH$G(^`bR)8HUF#E9Z~u3FC_R^eW?sE6*vGD_L1T@=Ig|T2o*A5nA~9_3fY} sQM3JvIJ~9`9zXKf{a1+Lu{|Fc;vY?^@$}Q540IHOr>mdKI;Vst096o1q5uE@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_folder_white_18.png b/app/src/main/res/drawable-mdpi/baseline_folder_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..29d72e150b229698456b11ae67ad79774f2bfbc2 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|15X#nkP60R3C0Ki|NjsFm(0$) zM3RM7MEcu&n}VrPY=7lVIe2@dN;-Lp^$dCH85qKaGT55@*RuolGI+ZBxvX|k1|%Oc%$NbBf<0XvLn;{Go--6Zpdi3%Ad|FG zD{=YPiBSoS<%j#5wsh>^l|8)gdC3cAjfqSelbeDxzw>8?lk->;Y{c(mxDKG1juPgg&ebxsLQ07&*Png9R* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_folder_white_48.png b/app/src/main/res/drawable-mdpi/baseline_folder_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4af380ec4519fce6cd5bed67a335ca88657ace75 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DHcuDFkP61P*EaGt1&BBVmN0Ym z=Db!A+tqZWHs^rT42Q2blInO^{~v!gmo=|?wZNe%ZrLAB?~8I<%gm)JvmoKn)J2^9 zl{`_qCo%3=d78~)Y2)%a@0K$E6R4Oe*tlI%FhYY#aD$ODQ}#-Zn#(6wdNUutbbHg) q(@VFn43ZLGywok-SJY|74~CU*ZKQwd?$QRjh{4m<&t;ucLK6Viaz`)# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_forward_black_18.png b/app/src/main/res/drawable-mdpi/baseline_forward_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..eacfdf9d6346fdd8fbddb7970f764f3f4a21feb5 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|Yfl%)kP61PXEq8l2#6fGz_WI_ z`4@9W1=*e6zkj4IVe;VG(tY%Su8xk*HbX`&wh&2Gg~vK9+=&f)0+{bicHepbeX|G9 O7zR&QKbLh*2~7aY&LY_W literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_forward_black_24.png b/app/src/main/res/drawable-mdpi/baseline_forward_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..3ec6ec29297d5f5975031d64ef4e6ea77b3d2405 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjww^AIAr*{ouP_1yIh-%b)|$ts zd)T?nXRuikax?v4tDBSZPNm4c%!J++w<3vf=5?`~emZB@h>Fel8frQtqP~-}XIDJX OAO=rYKbLh*2~7a$)+0** literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_forward_black_36.png b/app/src/main/res/drawable-mdpi/baseline_forward_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..6e87adeb3a37f1824d443241f4939ace0a0f0270 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBVmw_OLn;{Go-^cXa1c0fz~)w5 zwY;o%b$>I5w1@ql6`8aAk~n2rHno9Zk@=~m<_p#=guy#MLYeN?tZZ8dgo+K3tHBHq g=iyPG%U9kpzE6<*V0u#X3D6z}Pgg&ebxsLQ09xug@c;k- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_forward_black_48.png b/app/src/main/res/drawable-mdpi/baseline_forward_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4b21a663596387b3e5b2cc17d75700d3cb8da468 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtR8JSjkP61PHySw^6nPFfxW9i^ z*tMvUrLLjbJ=Z@p^lDKudxARxevmr&X?x!RWZ2GeLEl7n@x1Oe%U$|+W-j>HGllo- n+R$ZJAGx2td+l{-XsGx}r+*5EU7Q4f7BYCc`njxgN@xNAI8;4- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_forward_white_18.png b/app/src/main/res/drawable-mdpi/baseline_forward_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..75b2f725cbb7bf52702fdc5cb9af729076b0d0d4 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|Yfl%)kP619XBG-F81OJ}VVGZ?NGZQ~biU6C=b(#=OCX_0_vtWwog$4Pt>SSGkk+Gf0sbKG%AVE?D|na^BcN8gTe~DWM4f=`$rk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_forward_white_36.png b/app/src/main/res/drawable-mdpi/baseline_forward_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..996c18623cdc5a5160767cbbecf59ea9cafdce34 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB5J<~L}VePa#BDdz5M=zLP>9@1D1n3?HPgg&ebxsLQ089W+DgXcg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_black_24.png b/app/src/main/res/drawable-mdpi/baseline_mail_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..fb57102c451b584cf1e851621df929eb07e00e0e GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iNuDl_Ar*{wC)n~eIf$^SN4*lX zV0pfwU}xt&mwu;*wl5Z>?`@oRYI4M$l+UUgSQjQNyY=Mkzm1aTw%q8^WqjV5DpAPR z(`8{8l^7v)V4`%q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_black_36.png b/app/src/main/res/drawable-mdpi/baseline_mail_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b981becf026883c3275467a0556a1d837753d1e4 GIT binary patch literal 269 zcmV+o0rLKdP)Lzu9Sfm1Vlfq&TQP?wN*##j1)f6B4_8WG9&AtbJS#M@O zEsZ9oz}2)Mrh{UQ3v`Df4-VZ>yl^ujLI5K&Zzf{|;0q;0 z0Q6Y!Fe7)CbODG+%#iV8TFIp5L5jC|_1VwzugvYI+abM7WcihE=MQOfCJ5uN!bEOZ zCnTPT0Aa`xXR2_vvV6VVkdS!cEK^uW`QM>7R0L-V6r14C77Z)P+L4l&mIm_y>{5LN TReDUe00000NkvXXu0mjf8X9Xq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_black_48.png b/app/src/main/res/drawable-mdpi/baseline_mail_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..9fd561fb817f91922efdbe17461aeaf04bdaec68 GIT binary patch literal 325 zcmV-L0lNN)P)}i`B=mD_W1wegXW`<&r!6 zOpiYZ5dbt;>|FSz%`qtaK!*~93dYoVP-pfwe)jVH@f(4j$SGY)_1>{? z@$A$oT}t(JrhP=DGn zPM$Rfq)d2P%ocIKP@84I=^WtTz1nhj_=@$$ckb7fAC0W{+I+%9yD{uVsr{=~<^rL4 zdD|Egp1)Ep5z6XuGi|t)am8bWaOUU4^#%UZ?FB;Ex{oekQYjH*FpFBt`$X`8bnL&j nKBwuLwwnz)eI{SJ^_lI0RQUeoy5iA5_b_<6`njxgN@xNAZSX~h literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_outline_black_24.png b/app/src/main/res/drawable-mdpi/baseline_mail_outline_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..72acfee060eeb7fbae863972c785b59a768db48c GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i$(}BbAr*{w&u`>CWFX*hk$sAR zQ(FSR$|1E4oIOqlEZ>lgB73&S0kSY-xJi|m@k zg#i+*&EsuYo&qCWAJqKb6Mw<&;$T+ CWlKu{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_outline_black_36.png b/app/src/main/res/drawable-mdpi/baseline_mail_outline_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..735f119f021409f0bf500058c02ee7d5e4e5c602 GIT binary patch literal 271 zcmV+q0r38bP)Dtv0@4XSogwHDLDWs^1Tmxnb(2Eq5QWZ=u|P;b^#y-;XRGZ4mi=DX=JRZO zsa0A;f-gA<5e@goot6Lv<*@2Tp>q2o5btnQ<*0xe`&Uunz`{ VUKTpQ$HV{t002ovPDHLkV1ilEaUuW! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_outline_black_48.png b/app/src/main/res/drawable-mdpi/baseline_mail_outline_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..9fd0778e105cf83bb41e2b8bdeeda997ab2ecaac GIT binary patch literal 326 zcmV-M0lEH(P)7^aK*Yb8rO{@~{vp?L^ncOv3(>0e0!;n{qbu z?atpU8w5enFkwk5tR)k!KGr+xoC&*SX%~qhHPHlyb;OGB_gr0{A6baHYxhupqWMgRZ+07*qoM6N<$f;s4l-&c%k)RP4TWx@1h4Ez79**7B#6tbpML33jDwB|+5_#&#<&ntPY4 s+*$N$s|NcP=bvXLaEc3``aMhbz{8uil?}ZnKsPaXy85}Sb4q9e06_*v3jhEB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_outline_white_24.png b/app/src/main/res/drawable-mdpi/baseline_mail_outline_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..5fd4f669a9e8a724d2847b3f14422f9a7f61c68c GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i$(}BbAr*{wFKpyxQei3+J7Hd>@5JYdGUC zSvd3Uu%02_E&fezN<#XPt5(tb%8q7CXKqP&`r_%!6v;!+_ptozlb-$O2-A~tz57d8 zG<&Iw0qF#*GXxzXh`LFgAQq`W-J}pYM4>Ze*+57@^@aZMvfI`GWq-hq@$JkT z`(-6!QofZEQ}LNGp=Lgm5bESZHvrZ|_8}tH0FV`eGefFYfEoiXkQDUW8{zqA%yO#XXS41W>S^BFNgxoMS{MT=j!jPVK!_$r} zPaB=^+&HVF^Oe}~FYN~qL_CWM-r$A}}}IuhFtD?I>z W=H;9{^-!Gv0000mES^zs*WIqo7r^y}+ z!GjsKkK$|0h>;{X^30JAxwpdev^l}Mf(8rjEU26D^{4#}Qy@+xN>`;0dX{a0oDObff&I=mo7#)xsK2loRb%1>9SO{-x8S5P~9kvK+RlrVhQX8QMxKM zwLq0FN(~~=gcrDgKTF_(tPAXC8WEC63wpo)I+j=xiY3M5@B5T3Y1uNOl8NCs&IOqO V9s;zuZHWK?002ovPDHLkV1g)pgw_B6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_white_18.png b/app/src/main/res/drawable-mdpi/baseline_mail_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..ebb58da9e12f28e05749eec43ff49661dd7cd4c5 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m8a!PbLn;{eURcO`C_tnwkV#Ce zVxe}4=nWQ?1dSPbAr}=LO4yn*bREsu0}HPfFLAH`-c@gC-RgL5!Hh-1a!wVGY+S?F z$kedf^-Wu$l%?XyyK zF=tI&CW&8||k0wldT1B8LpWltB!kP61P7Z}+N1;`x#SkJmd zc!@EKtWw7=&$$Y1Aq(7a+|0nYQrd;)bP5d_=|IGXCIoGtqW2Khr zqEusTr`+5Vg0Iq?^%>MeoBB9cDX2L0&$at)d-JlWCckEz$`2JD*Qsq57q17mTk?0^ ziM(*ly4LThVzr@~zFyTt-o4!RwOx;2pE~nzmwn2yKfUwqAM;1{ZPak!~WZhzll Q2=pFmdKI;Vst0E&TR(f|Me literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_mail_white_48.png b/app/src/main/res/drawable-mdpi/baseline_mail_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..9c97a103fac76f0020bac64a6f166355b54bb622 GIT binary patch literal 322 zcmV-I0lof-P)*i(C@dC5sd_4KSmN6+VgTgH<}sf&>1Lr$7`1 z^7f~Bz(?&3+F9b2FkVXaDcQ(J6$`q*&mzYvvEze)3sBz z&jJDhJ`mi1fB<#LjFtc`;S85FV2UpqlTMdT-2+Gzpe@!vN*=J{gww|41#f14d)eFSQ0NZtdt9W#CXDu=?9}4 zf%vAchY+{NiR_s#8n3gItKDQs3@~RFZO}TLz{s#Cqt9;AH2dj5`xrc3{an^LB{Ts5 D!p}0Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_message_black_24.png b/app/src/main/res/drawable-mdpi/baseline_message_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..3c9f27675647f07009b49353cb593560ec5bedc0 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjv7RoDAr*{oFC64-Fc5GF%rz)W znYpw3+QibnL-r?KBE;KBZE-9hSOC%~n4>8JfJ!ieiR`Xxn uacAS>(~Ww*7b|k1|%Oc%$NbB>OEZ?Ln;{GUT$P-Fc4_}xZXU! z<5KZ4CR;~chDC>C?pl8T$lfD=`-D=H$ h;B7YNk)5Hln=wbne2bK-hb_=444$rjF6*2UngF{GK~ew! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_message_black_48.png b/app/src/main/res/drawable-mdpi/baseline_message_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d8a6afc5ee8f1610254e497621fe30d6e0c8cfd0 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D8J;eVAr*{o&u-*BInCGzZ#*3Qdb)$>S>p9=~Y+^jLATLWqaTQN9D+7aH-CpfE{*5PrRx)_H`njxg HN@xNAomw;f literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_message_white_24.png b/app/src/main/res/drawable-mdpi/baseline_message_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..f475642a0a17b98ba8d4c5c2c818c675cba061df GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjiJmTwAr*{oFB@_-IPkb!{Mz)o z*Cws%V(|~%++`DcSeoQ7J=@qQTg#*-@Ps=d^g!o&XGZa3uNpsYVp{OPWl3BBf5dNp zl`Qr*@l1?9e<#ns*`R97Byf6eL&Q7QBcEh0ER!~NyRajN@p=r|k1|%Oc%$NbB>O5T>Ln;{GUS?!#2;gaWSo&FR zQOUWAM!$f1c8%^e*EaPte%S0ARN=s=b$+!2qm=Hl$FjkiMh@_ g=M>$_mDQHYmhaY5G1{ih40H*Dr>mdKI;Vst0NzGI(f|Me literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_message_white_48.png b/app/src/main/res/drawable-mdpi/baseline_message_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..2c6d4550b86076fae7ee68c452a7a6fd078ec0f8 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DnVv3=Ar*{o&u-*xN)T~~+DY-4KhWo#3Qka_W(?N()@cKiLm zeBu1(t_UVO2;aML@*eLA5R$IGxtkG$Za1oJ>ix$0)&1MgQtP?=Ku0ooy85}Sb4q9e E046+9A^-pY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_add_black_18.png b/app/src/main/res/drawable-mdpi/baseline_person_add_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..c84ada96285da895e3908ea5986386d1c4896e6d GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m3OrpLLn;`zo?>Kc2oP|+D1FK5 z_6hYBWdRwSxmr`0nlub*PhBu*vErB0+wZ9{<1y2ZtS51uiiOid7hmj8>s1qevEWkt zZ$Xx6I~tZYel^=9Q7kP61T=Nnm>3Pp~8JkPc8 ziiB@K^p?QlD_p7%%64eJJ5(wyvtD5CzjKEhf7LMlsW=}Wy}N49uBge;Sx0y8ZoT5! zW2MdcaIx^>T{Rav0)5Rq{JPdBm{#rDdWJpc&X+22=}D7=KC?%=PmSZ)d+Oq~C3B-R uR=?GhI#W?}h6qG;fE1)c0s>nA6D(Fc*3P#;`yK#~nK9&K zfX|oF$9Prp7KW_0bGei{oBqE_v4r*v?553jU%N`1{3hgbUiEhHO zd-hO4J%7O-f+j~K;*kcpgurJMzQ~QS{vvwNz+Z)Q%CwlW;EIG^Su&wbiIf!Svf_iF z8?d57kwiQO+>sRC8Q_6Vl?`HWO$~(#XT<243NdDggL7g$ok9;{h@*MP9?DVq0#>@< U99b`C+5i9m07*qoM6N<$g4FY7tpET3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_add_black_48.png b/app/src/main/res/drawable-mdpi/baseline_person_add_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..bf14e0a76e0e8d6857c74495ae9d340c48d03904 GIT binary patch literal 328 zcmV-O0k{5%P)GWkAsUS)fg%Rj z@jF0~f25Q!d|V-(d4-QK6cNZU;vI(xL0EvoxFj8EDi8)%U+#m}J#Ik~L=rVDbQiG7N4pSzj0&|!mB$W^7fJSq@ akpTe1pLQv<$B6d;0000J>#2~_OLH?3u z`9#4hc>y;B%T_MTaWLT8)8XISzk>b2(fv1W%=Wpp;^h+Onx=}v$$F);mb}(l!r{JB zJGkXq&b4DwE^GZ*t$Po0xHTWsyLa=I?lrN!xhm>Yi&gliR;!raUn*b0v`O{%x~Ey3 RIY65kJYD@<);T3K0RVJeKJ@?q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_add_white_24.png b/app/src/main/res/drawable-mdpi/baseline_person_add_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..2e4a1889616631626d4e615cd53840d60a833872 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+ic25__kP61T7Y}kaF-WvMtZ(IW z?Y+pd)m7TmeeHyjV)o@1_+GIcx_okiOWlgu=l{0y?~5?5ZuMKfp?}WWV=q#LCC!7s z&uIQ}VOG}X1!ke@jz%Ys%($7^BX!%Pqu|4p*S0cBn>;)JGrNZ`mHXlqemvsQl0z|1 rWs3FKyxFE#2K=5Rqw&#u15^Ir2ww^5Kh=kTPGazM^>bP0l+XkKKDbRw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_add_white_36.png b/app/src/main/res/drawable-mdpi/baseline_person_add_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ded0ae9204330f787b238e650155b0929d65f1cc GIT binary patch literal 269 zcmV+o0rLKdP)H&J1pq`*e50DfD0w{nI>Jb_R2!cY$l!E#Tqp01xb_Q|3 z0mk{c+dY;MjbV_X&Vu9fSx_ev?{J4Pci!C@e$jbvQ zR9fMN_`bedqTts+PdJP| zmfgr-cH)4KEH!^!&#Ar6Ui^{ebgenCq z3X04KYew<6;Yo)4YDhBd_!0-AI8e6qNUKca1d~~D1XUv z_X(j8bB&S~y{#J30y?bAT-%a3-u`Bo@53eKbgFT!`@1Ng-G1E57F_OHd3ojWwq$S1 zO{-VT{OEDYI5_xYfRW(D@QIy5rV4J#uS}LRtCrng79TrpTCzLO>p%sdg$$mqelF{r G5}E-1gf_+i literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_black_24.png b/app/src/main/res/drawable-mdpi/baseline_person_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..48667badd9c98587f84c4a293bb92247cb89f04f GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i8c!F;kP61T6B}6@5(HZJi#n|| zoV8$E#^PryM7ai5)Eu3XMubxB%Swy)U_o)gbH+C3X(bPQ+u zwQ^4W7xE(BLi5J_YfqA$U7CZnedQI@mLFAIb$N<#vA0uu%#Ddfj>nqr?3fVQyz*K@ e(vKYR^I`-gTd3)&t;ucLK6T4AVeAf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_black_36.png b/app/src/main/res/drawable-mdpi/baseline_person_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..c3e2442181cc0b6d438a4584488a894d22db0cb2 GIT binary patch literal 257 zcmV+c0sj7pP);q}>4&4$iTfiE;$KC1DMA|>@I+LV(->FA0js^u-;uRrYStNj^ zLGDpr_Y7dc#U(203>U`cQJJPOc8$t(hOr1LQxId}W^Ht3@ic?ap2C>B?D*YS7~&S? zb;}@@0xa^15FacNpd}oBhFN8sca-j(9hMovN1Z%Ouul|KD9k=%c&N(7ET5>3KAFWu z1>Kw=gAVDTjCLN7VGp!ZVjWquL5Y84(Jv)rm$OkFIqDVzKnIX)srvf#00000NkvXX Hu0mjf`bA~q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_black_48.png b/app/src/main/res/drawable-mdpi/baseline_person_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..f4949d535b2640c385880ad933b8c8f12bf28e78 GIT binary patch literal 307 zcmV-30nGl1P)H-7%`Cd0GbE2g8=U>pw$Gmf){B4NkJfh0w|%D&`^LND1?ksP^S;7lI1 zI%24f+RQlMqjoe798e341Hl`7qK0vxf!dGpH}%k?t$%1{4m0zq&~xcO9lJg*sq(1Y z&-H`~9@a<6P@+bc5p(tgEEv({pAs3A3X~agLP9z*q)dTCij0w%jVbbyEIs7KdSr>| zmo1W@Eq}!D#Rf^(nr|XC5k)N`EmZ?6B8jd919rf&tSiM12AL{o?V$hw002ovPDHLk FV1mjcd1e3r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_white_18.png b/app/src/main/res/drawable-mdpi/baseline_person_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..4de7c4f00064021c2f7bda1b3fd407d9c90caf6c GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mQaxQ9Ln;`z9%N)YlpwgTe~ HDWM4fHAXvK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_person_white_24.png b/app/src/main/res/drawable-mdpi/baseline_person_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d13b1c47514443811253a27771173223e8b005e8 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i8c!F;kP61T7hM~f7z7v&^cLtD zdK6r5a(mLiaigDa$^lhIqnd*9+24O1EB>UsezEd<^|H?^(-yrmEt_bjFT6Wr_VvEl zkh81f5|-$j3Y*T~I6K}oHr8@~VYN_@*RBPtRa6CM{|MgZce8%Yq$}G!@!9{)!<{6PwMf>EIyS- zHz!ye(xXze^MKU@?JCAPE;dw*e_Z^k7>>L~wW)5N6t)^h()c>J)kr>C=0U3O%ryJ~N7>Qkg(cZX+rRL9iR6@KppG_uil93VT0& zzwdUt_fg>)hCz-7OHQ0v(jb@YxXpwI?;cFBlbW}1`NqXcCNRLyK*>?yj-NXPd7zC> zTOL@Uj7)A9t4k00000a5xLjg$ zr_tqVquFVdQ&MBb@0Is7^0RR91 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_all_black_24.png b/app/src/main/res/drawable-mdpi/baseline_reply_all_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..7924c828b4a3a79d56606dcb1f3bb6cda848071d GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+ieoq(2kP61P-HdEZi2`o&-CkCX z={K@lSeab5-(bk#PSD?Q{e=_j5hWH!L&wAKH%r+cxMlvK=e=Q}2){+bqlb5n9Il+a zozjqY4m@-PDF6f#g9K~vnIIQ y(Y#S~_=Tp4p#O}*XNTKFqDm9}-PNq!4v6o3+f-<+BVrG98iS{+pUXO@geCy<9Kv?HegE`n-Q8Ep4Y&ZGIk?m7;z_J37=Eut5I5q~oaY?vzTpR8dafiF#LGCX0-kdh!pB4T&cI?=x zmb^aYT*+R4{z~@x^H;LhpTCm5{`{5f_2+AhJy%xGUs*kW#ReTzl1`x6^XhdIZ}z-; zLnNC$uigL=`t$OgQ;MVhynN&Mqfny+6#t2vB@~4QC879F+#2ClCuVTBI?)PNCo=UC zQ!KK}g%H@sODA!U1OCL4KmkK)j5_#wLM50SM!Dqb>COmxKOuXSNZMXRTHw8e?2UggTakQ0KJaH96%pJaiYki1MHhg>lRV#3&8kH{)hgW(xar7T`6@QM=#vJ8)bfkaba m#4wA2#=wVxVHAvlQ2+oe$pYQ=fe@ z*d3PXBzGckrdsq@ha1_o$_3kvFZ)g0(OuVLmSyEwgyPwCRaf66q+~thxfm^a zNSx){KC^&D@|)GUa^||uj5u~Y?Q2xe=KJ3mnD*>(`E|Eh3FtTmPgg&ebxsLQ0QC4v A*Z=?k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_all_white_24.png b/app/src/main/res/drawable-mdpi/baseline_reply_all_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..42d18680698d81bea9a4aff6e9ad598c9af6cabb GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iNuDl_Ar*{Iy0P88NQuD3~M%M+ zJs8!MA!!drwWFXR;n|U*TI_|?G&MD-DQ=x<{EOO?`4=@&kd>Mf5YT1Bii?8oG@U8q zA5`eG<=y7Jo0LQ>Dq0+P7DQ1Jwdlw)<_;`hgF#8`qN2^2E4lBKSQZsELV6J=>!PC0 jW0R>>?>I0FK`;sc#&d-@FsjiJ00000NkvXXu0mjfD#&xm literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_all_white_48.png b/app/src/main/res/drawable-mdpi/baseline_reply_all_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4d9b597465eb535ee413a691f0d7cb4c64603e13 GIT binary patch literal 333 zcmV-T0kZyyP)H##!Raa6;~j@+7`APvT4SB)&9H;!E?I6<*DGYR;qM)~P)Uqs~X} zY?bD7T6RnGIrmoU%)_^1Q)T&_C-ZU8jDz5Z=f!edT*gK4!}DgP?!~j&x);}BF!IHI z*`n>$hn{La%@r*AcGA3c+m5uv*+s|?znBPEa_GSi0J;{_MdAb2+zd>v`nr0N`-n|# zK-WyNNPGpRo$G;vK_62peTp4lcpP*wrP}A%&_UzRMdA}Qy#MZhJZ)RIM*nBgx&iIO fz%U9%!6*O#p)*UsTqYtS00000NkvXXu0mjf_;{4+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_black_18.png b/app/src/main/res/drawable-mdpi/baseline_reply_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..8424acbb983dca30bdcb8bb7dda2c007f924e2e0 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m3O!vMLn;`PB_a+uMs%_}vnHzA zOGt5O|2%Kd+&HyC$l%YZ4V{XOjjY>+SZt0e^sYNG^`Ur(5Tm^D3ZcbsjF_d%QoALU zB)BA>8P>3AuV(2=)@o*Fly+7*EZgSK6LVuqsN%;6iDkwr0)1j?3!Z*qXLvN<>|V^z SrJsP7GkCiCxvXa6uHpQmQ*TjU`oc|85+O+L+> z`A^fee^h!*x+KrzK?>Kdo7@pn7XeveH=@ kbDQ{gor@GaI_4+xJ_t_iv$~u666hEPPgg&ebxsLQ0PN{Ua{vGU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_black_36.png b/app/src/main/res/drawable-mdpi/baseline_reply_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b042ab7e253dd2fe9ad5e366060cde5a946a5c3f GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpZci7-kP61P=M*^(C5X5_JZx|# zPUNu3Ow%mMS#KqDm2OlA3an{z+?f2HL#$g?gyrC#eG2D|DvqA5e(( zE5+6I%I82uMdq|OJ3hHxkX7Vojhd<$t)vpE&%ac2yWhUK2j>2Yn=ajSp=kM~PnHTg s2d19NIw^a6R?7C}ZJu_u|8{KR?=HRCY~RT$3G@bor>mdKI;Vst0N*`a)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_black_48.png b/app/src/main/res/drawable-mdpi/baseline_reply_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..7667350d3643f051f4b4b3134515e3434643bcc8 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DU!E?GAr*{o&KNQ>FmN2+(D}^0 zD)3^rt3yzKNN$Mm8@b)b-)*c0Qzy5&vrBNe1WL5}w<>w4F5psBU}9xb+}h62qQJ0- ziGxuwSE;FCMFwN5LWcq;SAejb&UbTW`<0;i@wQkOgulcow-2q4}an( zK}GLQF>bq!b|*T|KQf8@w57IKSxtT4)Wjs`HU-r=r#4sqcMkBf5MR(H<}c=|N;J*(ln`Y68HM;d{lz~JfX=d#Wzp$Pyd Cw|1`p literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_white_18.png b/app/src/main/res/drawable-mdpi/baseline_reply_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e0c21da1701ac66750ba9db3b6604070f19ab696 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m$~;{hLn;`LUNq!#NRVhRQ zrf-o<<5|(18F!jaK4R-j+=er*|9`rfixR9^SO5&A6w-jGy?BA19ggiIC z^Ao>qtD%&n@1@ldkvLPWH0hIy9~<{gTe~DWM4ffeA?a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_white_36.png b/app/src/main/res/drawable-mdpi/baseline_reply_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..603801ea7d6d8b2caa302dbd287fa9e040a63c67 GIT binary patch literal 246 zcmV_O}U z`1na#Sw;jlOoOKp14axOF<``i5d%!=P$|l|V$O{5iZZST6TG5~>q6Ut0f?FBK>;sx zt?a0c9W}C|BI>_UAt3{1?6{JU?kJ+CkW^F|vL(XR(^C%m<{9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_reply_white_48.png b/app/src/main/res/drawable-mdpi/baseline_reply_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4e6a297250ee9beb5eff7aab6a423388610497c7 GIT binary patch literal 299 zcmV+`0o4A9P)otGFX9{HHeGr1scEcu5gnLu);2kgC|pDr=G6gBgN2Le%76ncun|$Th+kRug6oK) xMfAX&1}2LZ(G!y%ZA2yuP9vA~s8lLnyaRmsF2}ZUDAWJ|002ovPDHLkV1o2mf5QL( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_report_black_18.png b/app/src/main/res/drawable-mdpi/baseline_report_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..42556a5202864835ac2aaed4f0328c560359359b GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@RheLQfaRkP61Dmm66R7zngJ>=P+S5XUhH*x`orPJ#3$1-(^}cSU8tBgi;3Ch(B?^Ca{As$=FrN2y^25ed%v{%yt#Qn`PQYl9v=hqZ#_LG U{IN`JK+73CUHx3vIVCg!0FNa_IRF3v literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_report_black_24.png b/app/src/main/res/drawable-mdpi/baseline_report_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..ce4a6832f6ff1ab818958170a56a49e59d332988 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjWu7jMAr*{or!cY|Fc4t*-C(!s z!hd0fs9HDS)-R`+z7#kg&}CLJR)~C2H2Y%jN9XI3dhUV>{H|s3d`gq-`&_!+RQlOm zJ~J`1vT&y~9ArMaLgm67@Ah+Rjy>JqdPBU>>)+Z**Wb9V3hbCuUsk+7TW;s$PjkL8 Y?F#+nf8&$4JJ1CTp00i_>zopr05(HG-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_report_black_36.png b/app/src/main/res/drawable-mdpi/baseline_report_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..d53a4f3a0e0043869e0a82423be30e3e05beac80 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lp3{MxwkP61PQx%0840u@jpF7yM zx_xM~NRgeC-|!@T;Z+l3ONkXP*S$HjO6?%Gl<|@WER#gDc6^dlI-1@Q(qh$9bIfnz zOyNm3-1^)+Vi}H(ZVT>R;Yf8pDQNyA(BoBmRL74AE+;lry*MzzW{+aE3zN}7DZ&32 zzMbGXc0njR#ognbPg{JB{Q9V*pU3B)4@`S(WH$G4%48EgPevm@7M6qJKsPdYy85}S Ib4q9e0DX>4h5!Hn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_report_black_48.png b/app/src/main/res/drawable-mdpi/baseline_report_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..bc356fbeefcc555cd1007e16d2d8ec6e0215db41 GIT binary patch literal 233 zcmVrNpy_OL4Iz{mV2c7Edps}T`00000NkvXXu0mjfGu>Yc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_report_white_18.png b/app/src/main/res/drawable-mdpi/baseline_report_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..a622bce82168c0f4d0f39339bfdc0c30da4b9e09 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@RheLQfaRkP61DlN(tN7znspdrjcI z#b_0D%$qfDx`YkcY|4hnRi1!?}^nDS$H}=Zr>vG^2|%Q$x26K zyBVj>xZS%V@WdB^Z{90*RCyeja(>^Pj#WMXzf9QU?HqOD|k0wldT1B8Lp3{MxwkP61PR}J}E6$D%_{-3U# z({<~RsgJv7`b)DdCF$2&t{GNJ2ubTbRaxHj(7Z~X``MhGQzI+0-X2~t<-iIN)}@P# ztyGQF+X{>H?F}XMR~s`=RB|+CdC7NE`^3I>HkB9;#!J8CtTsvM@pN8#t(DVIOg$M{?hpMM5fmB^;s6xV;ns#7k+cD74Mw1{(6t* z&no+cUw?3BdDZW_#JO^Qqv(as$@e%9Jg8}CXX$WYQCh&PCivo_f?{o0f@fWMXj)}{ zLdT-YUD=By?*7(`UcUR=UwdEGuqk}SMN7X5&GhihxKMk2-G}KHt+&tJ?^nCm_Ws?L g_2QiI@+@rGtqttrF5L2MK&LZ!y85}Sb4q9e0A!X}^#A|> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_alt_black_18.png b/app/src/main/res/drawable-mdpi/baseline_save_alt_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..c318014d899011b80ee36899821a5206bc4f28ab GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|may(reLn;`P7bwnPXkj_Xs32q0 zB_X-yLD!lFn>7pC9-23cM@(d&5ZZZ{tFld<$6j)t;U0!b{tY%8EM_UK*!16lBdjS@ z&_~jT(@AFXVultT3lTxSK2sj~h8Uk8j2g`BT0GSov~Dp^S*XRp@aD9w%%k%zB|v)_ NJYD@<);T3K0RR(&GHU<; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_alt_black_24.png b/app/src/main/res/drawable-mdpi/baseline_save_alt_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..037f3bbe6c335c7d25d0715ff5e2ee2f04f314f6 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iJWm(LkP61P=NQ=<97J3%aw}wT zs&1Jp7PEwb#erc-?H;2So;3y<#W^PeX@*wn;(^!Ty0eWr8Pm+aZfyw@~q?u>Tc QcA(7+p00i_>zopr0J*n3)c^nh literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_alt_black_36.png b/app/src/main/res/drawable-mdpi/baseline_save_alt_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..367917f53df828d066fb8b3e4ca4f86717c3dfdc GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lpc25__kP61P7aG}`14P-1M}r{?3bU&PS#%I`(*F=Q&}H zAF&RcUIA|I3l}u?@i<%BHcl*JoZ7=uRb*D4HtoDRpZ$vyD*pL?)9NoOi1@!Nva2|0 zd3nX}>{N@YwKCn-$ n#N4?SKfFKCwV9uN;)&yteZme5j4T2NZj1c5%TzC75S&-6 zJIPzYar;*xw^hj-+_fCK>fXx*78f~`F&XjvSvA)^=SRNFxp~Pc`CtAyJ9KpBPOD^A zSlIqqZ2`;kS_jU#-x*ac-ZOg@++&||p;B6)>9gGjJH|EAOky^yUO{~GA8kuu4AqI~ zxXonPmOe#_-^5WMUc<{MC#k}F+r#|EU8<5Rc-#(ZFfhDGTKTA|)}|BaD+W(jKbLh* G2~7af3SH;` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_alt_white_18.png b/app/src/main/res/drawable-mdpi/baseline_save_alt_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..a57f64cfc340e3e874c8ab6a80d40a68126c2a15 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m3OrpLLn;{0o@Zoha1dyHXyv&u zxTL9M@e2XjCCV+9XS^C%Bf9N-L@QZb^BbNg?|HR*!v-7W!~dFByyRZA{91;Zagqe{ zOwWA_6erxU^k9*CpMOHKLAaNzc+tf6X<=WIwz+5v3X4bTU)kun;t2eU|n{;T^kP-gkKaFsNBwO!kG&jML&g zWp@tt+@0{-oWt>%D#yt^42m|k0wldT1B8LpPEQxdkP61P7Z}+NI|w*j3}tfQ zaOJDiBBZoDd2ymqRl<^rRt<^9c{*}d29Iaouv0Aa`SI?J=>7$9E40&V#Pfcn zWo`T~8KrUYkcNUIryC=umjRbYKvST@B(50}8XaxNSdKa;+H*(NFzXeu)tI$J?OSP@ oIOjr{$@|4e+~%ig`g&bu&Qmh3?wHcKALt1NPgg&ebxsLQ02X>urT_o{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_alt_white_48.png b/app/src/main/res/drawable-mdpi/baseline_save_alt_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..bc3232b753fd4afd9f4fb73e8bd860e2af15d06e GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D6P_-PAr*{oE;h0?Gl;Z4+L@Sv{Y|N9A9q_b{_8 zJi3QpW8r5zg_d)_8w9N0GdsQ5!_NT{a5?k)z*nIe<{~;3zvfFl(9Gi&3pm=;x_U?AWsU!0K0 z|IEqQkKI8bk45H&8jFtf6t1e1rU6&Kzu8?=7_uzg(I`ENr_b6ukLg~T&{ht|%|#+} z16!sZ+_7)sjNNy*E(+?p_c$Dm=qeMsUH`=M$E7AsBcAP0%k@SrHf;umN!Px-R?b?H1+Cv ztY^&d#IVo{0vu^Brmo|lfeqL!N!jtU1wk81X(3AKA>Y$lA-i=b;?zPR!4z6G^v1*a z`7hKX!;cKT9xCBes-c!Ptrn_jQ){7$HkB6YXw#`byMRxz^YNR>3;A+RT}T5W#~_#k k%so1D6P|3+xOF0mFRXYab9s>{;s5{u07*qoM6N<$f+qQ02mk;8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_black_48.png b/app/src/main/res/drawable-mdpi/baseline_save_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..f57f504d32f128e67fd0269d39392709b24536e4 GIT binary patch literal 252 zcmV$k;l>8u@1^?gw~jS9Pu49l+;oR?C!@Tf$W#pxrq#+3 z`>vmo$Yo{t(!EJ)LGxpNUnPlUQn&7>Yb*b^+t-tDEMbPC`?L#3Jx{P*d3>S9qAK$i Zv%_xVL$^}3R{~wY;OXk;vd$@?2>|KRL1+K~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_white_24.png b/app/src/main/res/drawable-mdpi/baseline_save_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..6b78130002be9bcf4cce4bdf17522634a4e62dc4 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iG*1`DkP61DmkqfZ3#tY{Uv?a=D z&8VGglCW%&XUTvn`n5A@ZWRd%NFDhd9;tz-orN_dmb1XErgTe~ HDWM4f9Y;8d literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_white_36.png b/app/src/main/res/drawable-mdpi/baseline_save_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..c01175ea187bc10646ac1031c8d9ea6260ba820b GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpR!tvTfdraWgqD`|IEBx?Wv literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_white_48.png b/app/src/main/res/drawable-mdpi/baseline_save_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..bf7826392d550e2c0d508d783cd88eddb4b37c71 GIT binary patch literal 253 zcmVK)5q<>q@*piI?jTuC1<6bfj@p?%n7gL>n0e%O_OKzkcw6GQ$|3PaPXB z+TOimdqg?sOUl)>O=`A~fR>ai!+dYR*K)=M(n;TTH>wG!5_700000NkvXXu0mjf D^TA?u literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_send_black_18.png b/app/src/main/res/drawable-mdpi/baseline_send_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..4c8eb493ae3113dc2b8195ba1713e8422d7a31fb GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mx;$MRLn;`P7ie*$aHJ)uEm<+| zq5Wa!wjwshnl7n^E{6}&hjZ9;W4fdoxdc8iI14ZfFI%K0;`;yKwCM|@-<{gf@sQ)N z@eH9q(~6l`Yb8EOs2Sv>?Kt&8c1?->h4(%;M01%mn|2Ba*_`9y-WX-hesdRFNM=vK s;gFUM48elSSZ8!`xO)p&G`(bE5SkFluiKR22y_*Lr>mdKI;Vst0Gy^m5dZ)H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_send_black_24.png b/app/src/main/res/drawable-mdpi/baseline_send_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..a608f5768c81c7f5b3b0df3a5b56819e3433936d GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i1)eUBAr*{QFEO$)B?>q^%+F@@ z5ZAa=$h>rwa)`L5W7E2T(#9=s+!7+P>szXrAACI4bAK`Sw|RPAoGA;Y?2MefdpW1* zf(^!{9)e2l!P2g~7_R$2SX{~eYR?;=Ij*bN6gQY}4i#$M7dT^Ko^C|k0wldT1B8LpNlzEYkP61PlNEU!10~$fOP{^x z=KsYdpKG>fm2hX(WY4P0?Y{ZH+FqXRIklVX+o{c)k1w-`|NqYR_ka1b^Z5khA0C^h z_|d$JsgXN4tH#BtLM734_KW64B`qs7s-DepH%U=R^z7#Ft(Yy#{3yoN>52$vV7Q8l zcS^uQ$9_TMYce~yE_Mp)1}*lSZ&++L$H-MYY0C!S0W0Cw- zYfst#`|+LorT>u=98-E6PI1iXIdBp}?E0DdFXG)@_mq6?TX~m(o?`HH^>bP0l+XkK DHUw#} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_send_black_48.png b/app/src/main/res/drawable-mdpi/baseline_send_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..ac1cdc293f3d56ae7ca77caf46ec8e7b5cf112b5 GIT binary patch literal 326 zcmV-M0lEH(P)8)xZjs(-SfV#FPH%L)H|mr2;&XTZ_rCqw-rMKwp5O5?L4tg8 z$~cBekt50ta~LH}uGAz?Y+{fMxrY97!nhrv+=#!zvaJ9?m;k5?8)Lxa`ZU5dbC!Uz zutzp50p|NLpIZusn#hfLeEbM_r95YN#>^Db@*#XK8y9k?Pg&oeh7edIiU_) zxd2f2)|@0|6X)ns^fTGt6FRF)Q2+*qe#ZLRlCi#cnO_~vFTdv3_q6o` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_send_white_18.png b/app/src/main/res/drawable-mdpi/baseline_send_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1d5b5a447e2e489f4fdb61be209079206fedf9fb GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mIy_w*Ln;`zUR309WE62rRL-pO zU;jO6)}xnuJ6&ElF25jL%d+=nwX6S;^J;erK61>d*|zy_{p0Bp5?QsAmaXt9d9_6H zLDtd=^|P!NTBh@tw)&*bc~rH{Pp@g#j%`l&Ph7fplUIgEY2K1p5BI0Za03%K7l@cV`I}dy$Lp1Z=%!mCObuMx|!)sc2VSJeu84${_dLh&Cm9H?^pWM z*c+=A0Uk)qHS+=hskMF)066><^qsRvBXmPnuU6X1?+pX5?u=AEfx51tsim!xdxqdF zu%N1zfr*8UqYL0B)+qv{V!gadiAXa%Yxpa&lZy49!xM3sj-V`QP@eb@jvx%6ju@%{ Y0KD*WfL!B&1poj507*qoM6N<$g6!E`*Z=?k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_send_white_36.png b/app/src/main/res/drawable-mdpi/baseline_send_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..24e2811b3d31d3d146c995856b5cfbc9b3133451 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpQBN1gkP61Pmlb&!6D8UU-HfGe zFADF~%u##ktMbYhNXnb-eJQ=n+*s?o$NjRWo7110J)O7j|K0rWaVNu$OenH*&euD$ z;<+KqhZNV}+ZVP39Gd6I@~Yj5NvqANpC=$m_05aN3v1q=32`_&p&*Z9TMZjId%P23_>_etrXScL5$W@-%kDP=-@_H60!2U%F?hQAxvX^sh zV#u5gXYNF0Psa|Xp6|-o45ppW4yFrymehqr_D?8$qkWAC-zZ#!7|2&S2J+nsKShZ? zPW33tOx7oKC=jCv0(t1ageZbQU%d3yQD1)lWql7^KS1_QpHL|&0w35JO%_dPZ^Hlp N002ovPDHLkV1l?id^-RD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_star_black_18.png b/app/src/main/res/drawable-mdpi/baseline_star_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..0a30e3d2dee4d2ff652759a654ebf82b86439e66 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m7I?ZihEy=FJ`{KRVDxc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_star_black_24.png b/app/src/main/res/drawable-mdpi/baseline_star_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..679a471792a6e3ad78543109c090eca39c642d88 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i6P_-PAr*{g&oZ(x1&X*mG-mA5 z(p6yPIGDlf9PPohR$+5D*9sP{fNYP3un7|!1XnUG3CQDLTyeHqE#N-m^wa0hPYI2e zG*q$LbSK19>9b(y{6#=|?BBC%rh>X=6TJYkn;6q7G8NC~CDMnfAeDd(H?8!QKdhWDWaxtMj zY#mvCf(=T=E?19doNTnp@7r}w$Dre~YNwuaKg<6&oZWpB=Pl{$odWa|gQu&X%Q~lo FCIDOxVtD`n literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_star_black_36.png b/app/src/main/res/drawable-mdpi/baseline_star_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..adea8c341fd112993eca5251105404737a9eca4d GIT binary patch literal 358 zcmV-s0h#`ZP)ZY@*yXPo7tgw?88Hmp;{WL~ch-sWGp;_uZ6f^OmgIb|Nl3wqwn*1v7q{^udHNc}DGtKJFQH zK|@RKYbmbxBlnj&#iO@TrGMZ&)ZmHHt{PD=E~ndtG|H7^HAO+vqILC zBrRdxxXX-N7gi*=Yu`t=^m5xL2kt0!--t3J>aOg@ITu(<8VLu;r2qf`07*qoM6N<$ Ef);F;a{vGU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_star_black_48.png b/app/src/main/res/drawable-mdpi/baseline_star_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..0e819e2093e3ab0c5e8d3fddbf692d5aa9254a8a GIT binary patch literal 460 zcmV;-0WhAJj!rs*C3~qA0D$V+HwzqV%1D zcxpC^(R4hNl_w}hPsoC2dZ9S#hO@%dqyzmK&r;TKh^Huyo^XgYEM+|X=|D{ilb|td z=Oj0I#$V*vZ=P|3lWb=su@vDl@~F!cAr3h?iah8jIU#OYScQ_Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_star_white_18.png b/app/src/main/res/drawable-mdpi/baseline_star_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1e33159cc5ab82291db1d06ab36d4059a0f0c5ec GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m7J0fjhEy=FJik@0)t%ON-uvq$TUuy*Yl|R_j((%4&%_CvSUfp4PvAjzV5d zwP?Cpmei7s0;c}`eT%+jp47L<%CKx$pK_&C=+xb3b1p=xOK$yp^jrPe2XEI|JUL6$2du^ZJ~E4qq0#)`&KO_-*nV5Ae@bd11RRB`WBKYmE`y}OHYR-I@?fla5@VwrsbwgOA?{EpX^00000NkvXX Hu0mjfwKZ`X literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_star_white_36.png b/app/src/main/res/drawable-mdpi/baseline_star_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..9fd595cfbda503a349772505bb6a8d6af798e021 GIT binary patch literal 358 zcmV-s0h#`ZP)bNBMnl-$h65wbe?CO)^wg!Pr|$>y{2tkY>&y z-8s#Q?%gld{$lG@v0aJ{szgaFQz>ojqr3ckjLKzNv?!o3mZa5EUSlt5?UuJFOBiVd zQ&wJLITr4$kqBtbE`cJJ`reY|p?3d)S4T*M0(DXOedfNkW}RthL5OeY#w(M(tF z=ua>%g6S_awB;wZzR_0ZsLN|?yr!1yP>x%ex6MW!hLh?!J(U4Hc}}XKvc*;s1+bVx$^wO1OdyFi%NF+lI6-ygfSQ~H;EwE2 yoJd~LR|e?IJ0dA88+2xs`9e`v(^)>rmoFAUg6)WLs809*0000vy z2g4m943;h)`VmbcjGFTl72nA|c-PM%`DT8}lQ@@EMpMt6h?|%)V~WbjiFKm&86Pzy zO|)+YI)_aBAJMF)KJ6(>?JAt=yp&!@aIoS*pyd=eENZ^aug6q%w1oVr0lf#cI~jMdmS?#*%5P Sk`@6S%i!ti=d#Wzp$P!0;#8pk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_sync_black_24.png b/app/src/main/res/drawable-mdpi/baseline_sync_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..7808007dbd9d3cc966ef63f9247bcd8d94d8867f GIT binary patch literal 260 zcmV+f0sH=mP)$CH+h+-DF>wmr!I+VdAVE?%b)7F(eF0Sr&R^YzS>q zT7)ebC&GUze}pp`$HFfu|Ab2!n?kFUR$)g*pRgijM3|6K?#{io#9<5VX_PQ0>}vpo zrj0000< KMNUMnLSTZgiDg&- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_sync_black_36.png b/app/src/main/res/drawable-mdpi/baseline_sync_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..2094d6a5cb835e9db1bed2f331537b07aa0f637f GIT binary patch literal 384 zcmV-`0e}99P)_WLb6d83v$k~eY$Mlfp6uD*bbb2o-%fw``7+-0=}nVV zVw_i1Wl~ipRb^6DCf<4In5~9rz(uLs7tO}|Pm|Q7em+^#cxtf4_PZvn+tX;Om8Bkw z_-VBgQ}nM-=`hkA5g(1yqZYUHtxI(_N=?LJJ(%dHxT>qkx>_kBrYLks#3g0Ui`b{o zX%QQh*(KtvLNyVym6)BMO;wks)&OMO%)N#OD=g!{4_}qj)8!t7TJ&g~k0S0GsYB{hnv_^A zA|6|+mDH!ou~%Am)d7nPl}1zReUbV#lA5I1SE<`24H#yN;~si1t*e=&aa5I2RYp}A eRb`m0_xu8LSIn0GJUAu*0000A@BZhYB%Q+OjLKl2sLRGCqcRw67Ap!i9J36HeUTCqF%sks6Di!Wcq~uv zaCN=!%kPw2L~kyEx9C2de&r7F;FCeZiB z4F7Bu!Xd3mDw^qKm;%p;dpGnXr$9+DNfFUkB5Sc|X?C3AoJNA_i#QcaPBBLySt?8g zAG;z{{sbGsMv1j-QuTjW!WO+Us@pAB^ zPae{#BfP9?bdeb5b!r(ed3WQ(N%5#tBO&2;4UZAZfKI$nPXOy0FOdm6cQAz@ECruy zRqRnmHBv({O@+3oFRSrsQd7}SFb$kJ#V+Y8fhvAS2Sum2Ws-UnBq>FXE5yAgHp$aV zGm@O5m1Cs#OG1%ihO(^!vJ@zr36us#*ye;gKH}?RF|NnD9_xCn>#?p!>;DknskmsK TyxM&m00000NkvXXu0mjf1sT`Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_sync_white_18.png b/app/src/main/res/drawable-mdpi/baseline_sync_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..580a9e37632cf604f2c8873d4bcaf08b11c0ce68 GIT binary patch literal 231 zcmV8@kb*h+qb-p}dH? zXhRK_LwOhJ(S{W4hw={b0Hxt5l$TH&ZK%a+D7Rxa+R%%^P|kPmLR}=-OzSEWA;z(x z;;!npZ%a5br0Ax>RmPu*yXI}z5=LeiovLwNmR`ws%8?Z eXOgovbUFd$gX4|0EOYVxVuYRX*l$P({>ZmaEK&4;*#)+YY(^-wBZf~cmHU}+RU8uChe{7p8tO~ zRdTM;`{q-aqMKL!U@1Zdpf4h825~N2*wGO!AkuQn(^kl{-|EB55h7V5_C57y#{i22CH_Ub__`;L) QPyhe`07*qoM6N<$f^%`%4*&oF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_unarchive_black_18.png b/app/src/main/res/drawable-mdpi/baseline_unarchive_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..21b3c5d88ffacd9e80b7312b527cb13378f822af GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|msy$sCLn;{8UNGcy2oP|+I6Hxp zYp+{AqnT3RO|iLdE{@A3vJ+*0^!{OSZYsYW?9+B%TzPqv(gyAs9-e$p&-@S*UE|g2 zx=86~L)B&GS08-t%4QWX7G#=)Jlt@8;Vvg`WhXX=HiJzW=2KOcefr9sC3;n?mFI*j dv*P|d=7Tq;^n@4up8<3RgQu&X%Q~loCIA)2K!5-M literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_unarchive_black_24.png b/app/src/main/res/drawable-mdpi/baseline_unarchive_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..026d0c0c13d93f356ec13ba092b6dfb3bb957593 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iVow*xkP61L-3NIc92i)Zv+=HQ zSR@>q>CF4(;oI&Q=6_Fqsa%o&~fa$7V)a=z>_+z_bPbEHN1&{Q73 zmKkQn8|?mZFnvw_!SRMKLg~j{;e+qzanyZxVZM0%Oyg`tj+4LpE^Ms1CvN5SludCC V`=rh$ohqR944$rjF6*2UngDY}L9+k= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_unarchive_black_36.png b/app/src/main/res/drawable-mdpi/baseline_unarchive_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..49ef8c17e0e51c0560c7b62ea99bac3dec8e68f0 GIT binary patch literal 254 zcmV=2Lbd15#-(h3u?wT3oP&{jhd z1<4G(ckTBDsA1W!iGUQ-rztN;F`9Bin$c7cq!>*(AaHFmqs{oC@(=MNUw2FXX^cHN9lNS^xk507*qoM6N<$ Eg6DE)tN;K2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_unarchive_black_48.png b/app/src/main/res/drawable-mdpi/baseline_unarchive_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..9dcf14fca644cf4149cb11776c18aa78c8c1fef9 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D^PVn_Ar*{oubMg?4G?j?*lWyi zXC}9-@FJeCFYDVwGn#Lg6iojYFD3KH{6+Ngo;PYv0i6rxN~uSjn;WorE|1iW16+CY z*@AqNB!r(_KETx`I5BCC)iI`@rklG1(|cH$?i};Oi@@1&%t!Q5-D} zmy{N1F*7-YvK|o*6%<&1(pur(U;YcR9w1E~(5)y{A}Q#I&RYB2PZF)hNy5 zXpujc&n1(@XRUH=jdwy{M667rYPpL#XVuLoLfSjLuf0&^m}AQjkt>%mbD81?pw}2Y MUHx3vIVCg!0GeoB0RR91 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_unarchive_white_18.png b/app/src/main/res/drawable-mdpi/baseline_unarchive_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b44c717d412c891892c3583cbb234ac589c650e9 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m>O5T>Ln;{8PGDqf4G>^h{7=x1 zNr9t*?}Dq+g{@p1lL8!WoC|uM;q_watwpmKce7=$U9afC7xv@!k)`TNcV-%VFc0i< z%TjW5j&tEX8yoU@_S*G}gwkiqdg-3pc)i!RPOP_t70TB5fnBAlDoF0c-@8+48t=7AIJ|T6Sx~OZHQ~)xu?t#_E-Rf6wx~}}FIxMJ ZA>Uo0-EhL4LqHcWc)I$ztaD0e0st~KLIeN+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_unarchive_white_36.png b/app/src/main/res/drawable-mdpi/baseline_unarchive_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..219e890a7f57d0eb4c2b31e95e8d15c9e122c4f6 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpX-^l&kP5~(XEyRSB}lX+>T)bh z5s2+nENM8uqot4`ZNcJ1&KXT@zf`ZVKl$N&vihm&`L`M2A|WjsyOR1fUlvMhY@gA? z$6=}R?uvu^wz~ff6ZsS0oM!oReFnRxt!UN6OVJAzmhMnskeX$@VA`BH-wc+V`NZ|q z;S>iPJD$==bvmW-)ai5G-~4t_@fBJM0vf-&pS*AnY-C|Or|=}G@Wr!#TAO%Q9Wpu5 zt<$_`gX&hhNxd(RPR)ATD3_za#}s?&t;ucLK6Uc CZfbS_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_unarchive_white_48.png b/app/src/main/res/drawable-mdpi/baseline_unarchive_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..f6a04296f8e7c6b3ceb33e94257e393ba7a0c662 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DbDl1aAr*{ouQIYR1&XvjG;T2q zaJdl2bSt2N(}97-gHdsUQ%t~l4&$gJ}U8P(Mok?*N91n`~>rs6oj|96g^lj zqoH}5=gilmdm;~<`Q5@lqjG-0k@G;tkILD&7%WnEo*k(F+bm--`B0=_*pdxlEq3Cw pc3lYWVPu!P@-^YOL*%p@?B=dfDQ~8!`2c;!;OXk;vd$@?2>?EHZ7%=- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_black_18.png b/app/src/main/res/drawable-mdpi/baseline_visibility_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b8c8cf2aee6ca97991f1932a4707f2bc0f799d3a GIT binary patch literal 254 zcmVEWSd^}Ea(*A?C$J7&+B{NAMX9n z{kL=OAxM(68HzfT2!o#@Yo2_pE;RXLZXO=YsEB47-{D|cnbMOykP<;bV+TSQTH0U< zOyqns0v1~BBgD9>t&_16WvT1!P8<^4)YeGbP+FWD5_)bsz4w3GjWLAS`v%YPGPN^N z6o-vnK~*%>znzHTp}~cZXPE;Wd_*YGWy_HrWpP3A1qsS&09EeTl>h($07*qoM6N<$ Eg1#DP)&Kwi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_black_24.png b/app/src/main/res/drawable-mdpi/baseline_visibility_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..4551ed12fa58e35c69d869d78d022e443a0b36d6 GIT binary patch literal 283 zcmV+$0p$LPP)CO|6Omtg?3L24kfL^^13SS6{T!CeoF)p@_>^w(39G)tN__o^95 zP0Et6<;t^=E87x^(jx7_a}hmAYw?Fp$5D_o3P$B3cB~5kTAf8|0RSvS{6s4N+Y#PH zofUa`E9$Tlxov hNt*c_?;cHRkQYLmx+aevauWam002ovPDHLkV1mbKa4i4; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_black_36.png b/app/src/main/res/drawable-mdpi/baseline_visibility_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..5759b240a6e438d55036ddad7d61865225bf8fcb GIT binary patch literal 425 zcmV;a0apHrP)iN_j~42Cf{jCt{k%jSs`Dg z9k!^HYfcop;DI{bdWNK1orf+cG-JxtYSS}`w5e5Q2AtHaXBug8(v%c=6+#+(b+=Ex zY6zBBicG?4e-hV!YK*1Ezr_B>nu#;>J8{dX5UG|)e10hx$oDC&l1!@Vsmc8+0YcMp@uNqJ03eG$z_E8;$Te-0~Exjb*nEJPz8= z0J~y<8{kaTI|FV+y*>tcZQQ-6(3Iwwr_!$kWKil*BL9?&U~L%M|6ynkibK2BBoui+ z!5X>OC*Q<1@?O!xEw&k~+SW-AX`Sh+1&W;)mw(1X=M|e1`6}$NRi#`jEIE1sMroxy T^^F1700000NkvXXu0mjfmD#`D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_black_48.png b/app/src/main/res/drawable-mdpi/baseline_visibility_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..af23497f2082980e71690d871f3a8f89a3665a7c GIT binary patch literal 534 zcmV+x0_pvUP)AcN%%S-W;9YEg2lkT0&bnx#aHdsQVx4>Ux-En^Us9P~wYMvYfKR9KHNf#1fDAgxs@C6E$gM zjdy%N-dUrOADZGBPk5e~CRj6v_!@FZGXc`%#BhlN<{6@mHinqzfRgCSk%nZ$BC&g>J_FBFEc^xMz_#{`IOZnrUfr^P3%m!(26N0F3^gXIU_cyTNnu1q5-_jBr(VR zpC9rAju?!~rhQBU7vh>WVD|Mj4SQ%AOb2&ml{-2xnXrcjDY;E2I84M!{8g+FVH_uN zdr}D9yoLUyv8~Y0&J0or|4(szuZ2)?jR{PNu5grqqSz`NGfJvVePD&j4m8?pCD^MrVz>lIHYC7J8G#x2#{7!~9et&=)zX#xr-+>3CU=)l3 Y0Kc8?+do)pb^rhX07*qoM6N<$f>CDd*8l(j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_off_black_18.png b/app/src/main/res/drawable-mdpi/baseline_visibility_off_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..687a3c0cc9671bd8310875747ef9b3cda76561ee GIT binary patch literal 292 zcmV+<0o(qGP)6Ko15KiFWctZ%{-6a-Ffe7(!pQ8!JTua zlx9o-<+M^mD1UfEIG0K*;}#jLki#qfu*j{_VhAFcF0Pa~iZ;S8`sDQ#|L&71;3e8L zzfly5GRpxA_gXR?K(|zz0QA_9m`pOaN{hpREUBJg1jZao%)pvk(I8H$+ZX^eO6-xl z((vU{-78W2W=h2?JOOjEI8<6JR}At8L5D%5UD8D=r7X#BK8S*l&59Cbi1v=Zgi+5h qV|3z&yEOdOzbtmP#r!gpBAYExfRk}s3ouHG4s|G#Vka%bz_@+Z9k?%mT17r)QffbH zrRaI!if;i=<6p`J$Q$S-CIhiZ3PNA;NxA@Rit!Yf>scnH3hcG2w!vFT)C*7kOeoROXw%FvNoR$M roeA=fDRohD$bY2V*)Ide5S;)3FgCh)O@FaV00000NkvXXu0mjfMJANp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_off_black_36.png b/app/src/main/res/drawable-mdpi/baseline_visibility_off_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..574873fc95707aac05697200cff11305d7842d04 GIT binary patch literal 516 zcmV+f0{i`mP)Qn&L0f6?wvL^V#%mk`r>|v*h^|tjf=$M}X z`8Ctl!5CFu>fX!xT+k1}cXp>=Vn2?3F{+xB$VF)-l+NMcSycwWUoPCCegJiym6PN? zGffnmGv?^6hZ!!5?##YB)aM>qedk5V6Ht%sdwpGfF%+L`Znzy%u|L=$D*4g;r=x(k z{V1m#{`8sG0PkB8P|w_lR=z0e6YE3{`^|Irxw-!GGISdU`Kb(mh+ifE0000JP)#f$d*{vDdc5>pYIhnbN^M2*v8T?SM9q)L( zd}FW!Rxh)J1qY7!Oo%e#fPI6E=}AzQ_M_m^8WRei$$ z1w=Rhi=ta>nkK4Qx0Luxl-PeRP|bRpS3q>G1`*!US~Z$vp-70AOf^|M?TvT6S8Ys) zKlM?fi)|313X#>%hY7LN6h%72HX*7>G;m)+tT2kaq1FhI5dD#NfAaiA21;t>KOx_o zGNQGg{BNpefCfHF&yMB_dNz6DR{x|#_)||npY-p3T$N52$==t)?1cDM_+A6Riz3CRKu&mvuWz*>@)}?`SMY@rIA4Ez3gGIWFl+_@=n7JBovnWDbUiwewY?16`Kttab zA)XY;PEn=Dk|%960MN_tIg#IzJg=bU>Cg0u27qR6_rI{kqC%p|YiH;nX`n?3@qnsj zXLo01gtdmqGs=pDxKGsvSey{Q31Oqt6lsd33GtDB$^s*-EFe1g%~~faQ6GP%fA_1d zH%@zPjdZ!!Z4wDFQ8jAqT~VDSM72BL{|B0AVw%MVmY|ti{VVpnE#7s5B{@<32D`>1 zzVw@UHVR?2kKO5XZNPZTbE5tlb#xGA|HT&$P{Vc;|LetpBfizmVb<|>0Nv2>U_P4~ QS^xk507*qoM6N<$f`+mv=l}o! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_off_white_18.png b/app/src/main/res/drawable-mdpi/baseline_visibility_off_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..14707611717ca55c4a2016e603040bda66c137c5 GIT binary patch literal 292 zcmV+<0o(qGP)it{v&hDi-$yhQ z^nw>p{AYTc>iP>!_;g>GA#?VeIIy77&XzO_vnzv|t)HmknZhiaS9PuhZuLf{!xa>! zTZiEYQ^`E&OtdX~^zKQws?!J;vg1Pfy~?Vp6lT?!4cUjmFr*<{H%hVytFku(5#dO7 znV-yzCfJXXPWPZ?GQx-r^}?)ZxmJlxpKH)`Zq1Gt3N!spGMj2LkSyBMWznGlVgdkDI~Zu!wGxQ{0000aUSe{2U_z%#NawUwGI@A;(xxRCQpQ=^WMg(daAFel#DM2=fIrlt3}Y=P zuwV{AC87x7D1E2qDMVS(5{$?r8UqnpP%=b=D<}R^t0%^^kSM}Wls(>S!4xNKF=9tg zOsNvVmJ?lC(0@7*VFC2S{9MqZ1)n(aQ-s*l-{&jJ9&bcLE=sE$Ac93bF~xvlG^wIs z&In3`K4;4$(2gmFQ~^_%$O&v1M5)DD4)C5$JuxByc$7Hj?Y0J!` zlFMPjOWX(~7++pvh%xOdxg|{LVShlM5mt#DiaUWZL?-|M;SJAmDcraZ00000NkvXX Hu0mjfk#Uny literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_off_white_36.png b/app/src/main/res/drawable-mdpi/baseline_visibility_off_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ecd7a4dc4512bc3fded11a10d4183623833e9d0d GIT binary patch literal 524 zcmV+n0`vWeP)CbS4gd)t*9>m+zq9g^OHSfHy`?SfCxwwhiXhu%1L`qdQAJ(Gwx|!xEm}x#t08P=~e3*fP`hgJjQ83MX7z&yq zt@$t&1+Cn7+KXCeK2!!tg|Hg+h-B`m>iog$1IgqTN%0mnz``*J)i<<|_e4(7Rvx>< zyhzO@yk1hs0%*)A!gwO7&N#TAmE9Btc!Ad)ipb)4D5+jJz?Z03TP2>MZ`EBkJP)0D#fEwr$&LR@K_JH>r|3ZLBs{6Q_!8vx{xpPEItB_x^}^n(=(&374Eomw3Qf zPoB=*FTtwQmM|PnVS~&uV3!r98>y*3Jaq~Z8rv_o*{ZnucoGXLC){I! z{MM@Bs$vuOBonh0GT+z5ChoT)O59mQg5GW{Ch&&UBoduf_oiFi>Q#T~X1CZZ4~6`E zXBR|?h(`<(Tkoxqn~xoUA`_RXFSf}GAcV6oY*jRWn(_M4kbFw6bf^h0)wwFnjYNXh{BS(-?U!vvRQ)19Pz7RtEXA}Rlc z;4y2X#C68u|7_|vDRW#_7WiJ;t4EhUXGbzIDI0%A+LvX4DbjAumTxDK7?h3OByCDr zV63#8%L1uH={+eJ_(IzA+46}b5*bfQ`?mZ$Ia|ta+4BF$o$yn>o1F2PlrE)D*@WB) zt)#pkD$-nRx5r90eTZP?>AZ78_dnI$fih1=wdzoT#+zBDaN@$E^`-7%GY1 z?n=L;?Vbv0Ua(25eyAk*cHe0_*zLoRo42eN8|;x#f#+gw)6Q`6HE|A1Jz{qfVc*Z&`@IVNsFEP$N;gWOAA=&qe0Bg;> Q2><{907*qoM6N<$f}V;lvj6}9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_white_18.png b/app/src/main/res/drawable-mdpi/baseline_visibility_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..68b74af6977ee0b47a7856125838814a8c58b265 GIT binary patch literal 255 zcmV=NH1#3vc8}3%IUg#CgI1euF{cwMGi7Vu}ETwxP zM~WM9nQz)90GN{z=cxl*YW>;^wGzm0fT&0(CPQ=KlZy002ovPDHLk FV1i1>W<>x1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_visibility_white_24.png b/app/src/main/res/drawable-mdpi/baseline_visibility_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9c57481547bae9fa967744a6466ab3819ed81a35 GIT binary patch literal 288 zcmV+*0pI?KP)405%+6rz9s;v>kbqW*_GY?)h5_3Gu(P9^7@zF(oF@BlP*@Ox>A`zS*25V>mUq)w65fk1 mLxEXlDA1>F(9bp{?)aqXlRL_G+OJMA$PsTOdErm1PB3rb_6MvDTe=AXH&U4kJ_u-IG_03^(pJ z!)joWO{)bpFzjx1OGY7fiLJ;mzy(bg6MJ;BCmTk2fzF=JEDqSjStJVGnOE>1ii2jN?tDJcq~;{%)|jsC^~LYkJf=&sPO)$cvy2Gc%cEbYW&r{!kB8buVx5=Cl9u&h%^d zSBOL+3}zvlIZGqAdB#& zWS&bF(TBr&}kIYhIWh`=|$Ai1wa?I6#3uc7+NdE`VF?B zy`#6(p0p6wLQg4uc!##l3BhzMJEZ1tNwv%5NZo;Dh6|$+%L1t@u&k82084`lFbmr- z=~u8^l{yUDtl$l9Vylq;8p|uG71*u^Z*T!yrSw;E-=GrPh2RZlV;h;&Pc#zS?C?F= zn)N@qjT{$XCYD`NbGfYAWpbtN!ZIVd8*PBpUNjNbL@y}=>>JG*6|HC|LZhO_9~CvB zQE>vTjbf)Uko)mxsm8{5!%kroPm`ag + + + + + + + + + + diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_add_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1ac427d4ddef9861b8e4e155221837c6a086a8ca GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB{5@S9Ln;{GPGe+aFyL@4-_rN3 z|JvDY0&FQQN2_fZ;)HY=8p?G-vR*TbybECwbP;eo8?nM^f0Iqf!cyP+OW9a><0Qk~ i0(c!+K0aYSki%D}S+dnWQ#b`^G=rzBpUXO@geCx!_$WF6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_add_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..a17891a0134837f05a77ccb0e75772cc9da5a0e4 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDH3?y^UWFG-iYymzYu0R?HmZtAK52P4Ng8YIR z9G=}s19GH1T^vIy7?T%>CD=KXp8EIyzkP&e)D3r428JvldEJHk)`Wtzdb;|#taD0e F0sxCf9i#vN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_add_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..a84106b01fd4402e5d15b08c496a75b76e811999 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xf3?%cF6p=fS?83{ F1OO~S9V-9; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_add_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..3cb10924a0912d9f64d338b9769da053bc051da6 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeK3?y%aJ*@^(YymzYu0R?HmZtAK52P4Ng8YIR z9G=}s19Id&T^vIy7?T^C0uTIeOgX2~{@-4rW`SaRO?zLF8zVzTLHf)E76O$Z{hqFV JF6*2UngE2qAnO1C literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_add_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..ea78104da5e4b1504121a330ce5b332deb318f90 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB0zF+ELn;{GUSniqP~dTU*tc!* z+l<{e<&Q9kb|3vMArKcN#Zcfm$@7!xHN_KC=O{FBD7`qkc>BzNuI8^{TYqc)^A7m0 m{CL_`ufFVdQ&MBb@07vc`*Z=?k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_add_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d64c22e9edfdcf9babea9681c44e2dee53a6d2f6 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^2_Vb}Bp6OT_L>T$m`Z~Df*BafCZDwc^5i{T978G? xlN*`>5BzUTIj7P7-(I3-fns}2dtZ?oBSS_(`pg9u0+k>GJYD@<);T3K0RZru9Krwq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_archive_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_archive_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..d3687d0459e701c8403f74dd8b6a4481ddccb8a8 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lpc25__kP5~m1<4*JzqX1tHl+lc z0984K69tnW+E4r-7GTPE;8X$2iUo}v<;F%j%&Tmet~83CVeqO;$WS?zeU>M_aaB6w zt>wwg4G9b#i?$1B2c*lc3W;neUAnl1pW#9L|6P+K78D(IT9_g_g==T%gx?GQE^y0l z*pt*Ndis2`$HbX!K+HQ)$ryr}HghPsrb#KWrm4BC+VNydnP^Ju8Lbl@I`L;xq%FHc)I$ztaD0e0sy=pKgXap;*KoceGtTkYL4TKbWGyDT8 zTR}#^vM}sq_z%?Wf=`hQ!)Kr(%HRhEML>J?asnU>#sD}=D7a_tZX&vZ;7AIB&QR|{ zptPx8{`8)YzBMo*8OExC(*j%?NTv}$06zim1n>ngA~$2{42YbtW{Fr(p8@0(bZoLF z=sHDI^#(u^bl(Gt`U*f3bUb#NV9V#4V0<`Df!$KSYhbnjiw1fe)%6ED=wQHxySV(u diUH{9GXj#c(?!n002ovPDHLkV1i;&Y!Uzf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_archive_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_archive_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..19a505eb53f8d25345851a840365e2f1ade952a2 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz-Zy=;uuoF`1V|*TQj3b+r#T( z++7T8Vl5HV1xgezI+Pi6GF~fXX*OYHX`V2@j5*mLP5qqcociDYn9u!Y{7|{#R%mEw z>0z14xkt6H%UqO=_SvJmUFL>pwvYX_m?8)9KS}$lP3C@R`&nnPJhk@OjQ5hU%WD$$ zS=vT@ZTfld<>EIz`DebnbjxjQ@#Qc}o6dC0Q0)qj_pP3Q`pgBQ3%_M9uwAH=&#D#B zXcgDUwWL}jppol}!J`>&CPot)p2(P<@MP)}c%s7S&QUa}L7BzU^MGK}9F+$gj($P~ zEeh(K7ETi;KbpgXmtdJNdCp|cuJsPAx0V!|wfyp7t`&Tx$ZMh)((lTZ?%1E;JZ*0A qG@i_h4Vu2`Gukwnm4IFj{r|?-sh({{n*lH=89ZJ6T-G@yGywpy{F90R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_archive_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_archive_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..3957ba05047150f712e618b8c7c2f69fae2f1a5b GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z_`NG#WAFU@$HR9H{C>$wujd{ zH=jS*cFRFyfu3rtqq)$e4GgUsExTF*9GJS8TFV4n6&Vy&Thds06#i~b_tma_&wk*~ zXM@8MQ-ZuSmtGP7bzIBc=F!3GCk?Do`3FqzJ#6F2*eEAnaeVg^`?Xu!>kso~tW4c= zPif=drxNS8J8_>4zA7H0ysz-w>(8q$#y^jYdv#j&Q@fs2LGb*ahh&sZ4%XJLl>Sw6 zRfPZR&T^ki8w}5VV6jf^am#(+x$Wkgm+L>6%wD`h*XH6j&39U&52ihe3ue5hajw{x zfssYP0ZK$!cz{_A^Z5;wHhDPM9Q^Xvqmi6A$jkkN_F}ywzo?d-&|TDcUa|oeSh26o68UFFBJX# uMRH~4G>eCv?<@ReHh;Ofc|AB}?HEFrmleFV=5+u@9fPN|k0wldT1B8LpW=|K#kP61PmlZh<1&Fjh%#MhN zc^_DP`%_i?`B`yQN!N7B-q@}$e=FO)<6CsA@$ kcEuHzMa7M`iZ)j<^}T#|yZlHQ8_@X-p00i_>zopr0DjwFsQ>@~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_archive_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_archive_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..39180e0299fca3926e3b71d00cd8beb8a24cf302 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0Di=HlyAr*{ouQs|h2TC0KXnZJd zfrR6Cp$l*Ka75fa!l0?ZvTVY-^vxMA3~#QB?%6jt|GBY6Jp;e}f#78;t{ZRP6ny*K zsXaXD&+gvXcc!h;y&!&-(PuWfwzhJ<3f-$aKXf+Vp7i|I{NUfElbQXaww!Cs*Zp;} z(XDg=b2`(cw_6<8r#(HPbDYt|Qpr&_z>y=Xk;^H7J4B#~&B2XBia}B_gCV750pkQg zu)s1Vj*I;1K?#dpXUkMvTQpr}$EMP(=;^BG54G>z_;#(X*W;?a^~uL0rU{!ql?Qr` N!PC{xWt~$(69D3tY2g3> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_archive_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_archive_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..23e054d426d3b753f1e143d324c6e3c6745b33b4 GIT binary patch literal 366 zcmV-!0g?WRP) zc*;&?S(atoFeR=9uUsF(xnoUqYi{@DT(RUBExFu>bHOid_a!7wc%$uy^RioXnbP)L z!s3(<+NN~MF7ZO!JKYi(XMEH4RD3*Aqmktd*-)bmLkF5rtBC{sQLBXmZK>7Pfhv}u z1SROWB`86GhXf@kK@Ed)Kn!SNL7wC}9^^@$6Akht&+#Bj@|<{(CwYzsS(4|(gFMM| zJjjwfCm!TUp5sBDBsei3PZFFMkS7UF49JrNCkEt6f)fMsB*6&*c~S#)LB0efXhp47 z4)jT_z8vU*T8$j2!;Biu=oA-y<{Y~@{o$R9o9W)l`sm3~*3r*U<(5lh0t0lmJsf(#KO`*$)!O4qbu6Y5=l+EeaGEaWLbKqax zH8VjV_$m2#P4OY&i}Ng!PP+BVnQvL?f8MQ~FMP|}S)9_Md_Q>I&7{_RO1VhxKX7t+;z>>okMI%3G_Kt>sCM znQ+iDIjl){(+$1d|GG@L>X@ukHf8%7DonP{?lL#3+`i1ijgc#$fk|Wm1FMDuBbUU# zh4unab^&(-JKGWU2f6bn96#63&(J?tUYXK>FUSyQXYbBX@$-)iz8 z2KJ#Kl_87|ES_+8EC)M6Kjl-B??v^=jiyJ{X68f%pZVx0CVwWX_|3$l`=%~%p3lQp zvW6#?Z{-hP(e{#Di8GrHNuJ;Gc4lzczTLIp5M}XLti4Km#j|a|_+s#M^>bP0l+XkK DCkeo$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_delete_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b80b30b828afb5e30c11a72b0bde26508dd31159 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBN<3X0Ln;{GoNHt~U?9Tw(5dt( z!@U?uMP=4Y(F>UNPuumF`9WX5(e4WY{8D~8y(lxEa z;0z(2&T5?58KG=oBJg^inSlNB1BUty5$%nq97H;dPiEXmZ~A(Pv!^MLfx%Myz=U*v RmL{P644$rjF6*2UngC2DK9B$a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_delete_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..a1c3285c20c7815e1f13f69a355a26dc9fb864fe GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtB2O2`kP61Pmk#neFbJ?-)MR=Q zra6Vd>(MecF9rtVllT66iy3b|KZWt}q0{$l{+S)A`1sbpf#G*Te1$9{6AOocf>%KJaH?>X z!QGn+f4eMWD0E&j(^KGO<8J@H1ZYTywI>7I_oTk&ot<}N u<}Kc(uZ#BIsZl(0=iVD9pv}7$$*x|`yu#)4HASGq89ZJ6T-G@yGywoaB2I4r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_delete_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..abdb50c2da8ff2898e376a1dabcf18fe17875534 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgwtBiahEy=Vy}VJdi9x{S;#r?H zjI)<81bJOh%5e0a;3rXZK&<46MAP^6jkO0;r>l5Qx{~_))2_?s^i{8%2Vr~bMC%`A z{6M1^94`HwF9~Ac2M=5tc9#5`^XcBw2E(Ucmp0fvy}N13+4xH;U+|k1|%Oc%$NbB$~|2iLn;{GoNHt~V8Fn7(V^ri zgHgEK36I9tETT`cS6cHmgum(L+0nrErCmDU{-KbB4f#g`9n|CXf3y76S)lIMr1aFG ziG@>0#bbhkW0TnPwJI4!_k5b(Wio#(=92l$)KR+P?geqyM?OYU-)Ac9zopr03v%m0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_delete_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..ec1838cba4459ef6181d6188ee55ab4d2362bef4 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtGEW!BkP5~(=NUN}6d0Ht7e`-{ z+1$i%YQk@pdgn?1G)|tW++4O#Y~pc71`!6WU_ExA9xw>thOr`cUaw-j5$)j2ud}3` z{Yb+P$*r+`romI<4tGy-*dy9;Kj>A~3dz|HX+}Jj23&3jH6&OWF1h#2S=amd1;`9f LS3j3^P6_lw|ZhKC-~KG_Uq~)@GlOx2vLG?+o3Y rx+yDq?yBnh#q0g9mi+{}wSrOUtnF0Y$gPP$2QzrO`njxgN@xNAU0P63 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_delete_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..fe91d65fe2a7b15d8e2fb0b1b5a3de03770e54be GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgHha1_hEy=VJ#Q%3?7+Z!@pZ-p z2Op&dG0sj79TlMioX-5x+$Rt0Uw9*Q!}^$sGl9VHL-ygn-#@qfshc<9{(j-cQ=9?? zdW=jgDMrSJI0Y0O8W?~a4s47EZg8oF-jrxLgULB3ncXJ!Rvu`c8)6-M^7!PC^+C!~ zX+pXtOZ~R^$i&<{=n|df=6=3?>gKh3UcT%CS^xL0xUCw4q;ja~eW3FhJYD@<);T3K F0RSA`Pp|+0 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_edit_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_edit_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..dffcd9f61a79913ea289c0a255afab2494532cb8 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpPEQxdkP61PXBycKC5SjY{LHpc zpe;qhMag4^gF=JcLh&2SJPi!CNfB)(6NCON>^}Bjm${TRdqe-a`6dbO^2MC0jl#+N zY7r|J8t`3d3|K65g zZD3lEp76xldx~nQ+rEieGdE3)+%mIs?~Fx_JF5(fLwfhjcr0%?k)OGeIhZrKMQd3? pd&@?rLlKJ1%$k;)3}VmiWn};V$;>=IlNaa-22WQ%mvv4FO#m$xRv-WX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_edit_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_edit_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..832bef36c6a4836b4e2e0428ddc5d2b1c7088789 GIT binary patch literal 254 zcmVfL=62#sl*%ga2FrzDp-c zrIy?=P7IMWr^3FwGEnd(_S+@;V)n<^7kvWTVvQZ?5!fDU>_9*(HtxkMf`9UMFU}FX zVa`RyID~gD@*v*1D45WyMa?@GJEm><3d8&h4PRfZmAr9dlz16GSMw!4pQ-tA;${3y z%|Gz@T+L59&7Q9~FOH2gL;-(VWx_F#oH%==NEt|;90SRjV<5S545S`k zj)COD@g^BK22#5t$M6_M!O0iSj2fpnIKk26l&f(zf)kwJ1SdFo%31zv4qxPy^5=+UAEZN<~_%a2DL|E~5%>Sy{Px6}FM=Z~EcSBWu8vwzsI$U5og zRoiR6GyeM@V%DxcB$>KR)~jOCiLyO~785?iy?D>Bx@XEmeziGbKq5vQNZgt7=({l2 zXLjLdlm65-HQo2$@ZmRSI8&Ya!-xa#Rd4*zJ$NRcGpWw|M%B;9{l|k0wldT1B8LpZci7-kP61Pml)ZY0tMPX<_T~q zs&uz{uyAS%a4b+RX|z4SB(Ola&DTRas7wEv{AuRoIFaABdklXxzN}en_Up}ypEIWz z7bM9vAM`X75N@Dab^-%U=xJu}sOc9ovPRGzmy2fRb{)HWIlXSrR8nlksH z(`NP6RrgB`ULCwtSEtBaZuDDJ*huH!OwS}k)x_-)XYL&9NisYxpVSuT7AO$bS?DAh rY^;3ZJjW;FrkEb3#SZ>H(NFBY9+lCo_`cl-=nV!>S3j3^P68?}DfhYe`>%gij)mBg2;#@soQJ-p~JF%l^Z*`HKCNq?581h8I7u z>Ry|=u_^yY8E4#t{~xwVxbkf)u{P?7dGoTYqai%!&Qa~A`cGxz&pG4@#8fv6+=~ox z+_QPb%Hs$>lMBHCmwEg3~{;#6lw5Z%Jhq2*~1l`N!Ml10lmZE>FVdQ&MBb@03)ks A$p8QV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_edit_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_edit_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..340b50527071302d0fd985037992d2d43e25064f GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawK6tt~hEy=VJ=eIjiBW|0LC~Zp zw)t)9ObUz{4PqISwq^7wsZ8;h7|_ASsmNeu$vj2+-|HoxeLqZn6FoyR>c{nye-gQ) z9)&Ob+-%(8m!VbqqM*vygr!TRjZoQ%|+#jX`PZ0jJ)uc+H&auyXos&MB9y zn3fi_=ViPu$>=(@yyVWz)upT6?O1$sTluH^G9^;qQ`Bs&Qrl$Q35Vfi@YLfvNxi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_edit_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_edit_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..c2124f1b790a90d25a6c2953cddab481ef38c24f GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z^LTu;uuoFm?Xj4Q1*(!`5*(& zp$!vsF7STS$^On&-I1!x@nNN9d=juQk{GA6bi_jqj6>rCCx&s=ZM_|k1|%Oc%$NbBB0XIkLn;{GUf(F#;K0M|SpH(# zicj|SFAncuQRQGSH$G(^`bR)8HUF#E9Z~u3FC_R^eW?sE6*vGD_L1T@=Ig|T2o*A5nA~9_3fY} sQM3JvIJ~9`9zXKf{a1+Lu{|Fc;vY?^@$}Q540IHOr>mdKI;Vst096o1q5uE@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_folder_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_folder_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..e13aea3a4ed64af0bfc71ce4ed7957e37d07163f GIT binary patch literal 248 zcmVdHRo0qfC1eQK1rIb?1H6_qs zA8pO(&DdjKY{jTeC^5_rX^vr@NG0Zrbi{m-PFTb>1ab$U-VPMLK*olNFOaeH2HNqo z^It%nH<0}f66lf|NFaf(0u2NSbW05+kU)2V27&}KfdmprAc6XI-tL&Kx5H}T?b6Gr yqH`)TUQ|#=<QFWTH$!6p0000ZNW%q(yfFcqHHxr=kX%iWf8rK@aJdNY@^ zi2sQtUO{0v9YE zxHmK$W2^@8dze^E_-3$hWXK3Gv2X||EJ!@i$-vmloZzlQ&v{=FFUDd|2{j~Zt9Rp(!_|k1|%Oc%$NbBf<0XvLn;{Go--6Zpdi3%Ad|FG zD{=YPiBSoS<%j#5wsh>^l|8)gdC3cAjfqSelbeDxzw>8?lk->;Y{c(mxDKG1juPgg&ebxsLQ07&*Png9R* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_folder_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_folder_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..4af380ec4519fce6cd5bed67a335ca88657ace75 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DHcuDFkP61P*EaGt1&BBVmN0Ym z=Db!A+tqZWHs^rT42Q2blInO^{~v!gmo=|?wZNe%ZrLAB?~8I<%gm)JvmoKn)J2^9 zl{`_qCo%3=d78~)Y2)%a@0K$E6R4Oe*tlI%FhYY#aD$ODQ}#-Zn#(6wdNUutbbHg) q(@VFn43ZLGywok-SJY|74~CU*ZKQwd?$QRjh{4m<&t;ucLK6Viaz`)# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_folder_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_folder_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..d5142e476dcfdec1cdd068a57c492ee4c32fec69 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawc6quuhEy=Vy8~`$#ksqYURZhYd?Nur^IKy-+7n@=*TkHHSZZ zLN8`Xdnh#K^>`~ZzT4TzBJ|?m4j`clWC4Y%vaQq7b0c)u>h7I1>&n$Bc@|8(n%Nxh oYAcjvHD7g9ET0nOm3mG1@P+Ns!9C}DfxckyboFyt=akR{0GH-qO#lD@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_folder_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_folder_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..a74c0c9915c637dd485308f985cf4d0247ab2d61 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z{u+9;uuoF`1Y2y-(d#{hKEaw z9&-mAF}XA0f|AvgSzPBD4ha^xw@!&^KGk)^`rC#4(_LuFG_ObVzq~bZLNN2~Q z^alakUw+A`Oi~h7Yiu(&S}3%Gon!U^%W94}2Y4MGu*4~rFufPBYV<#4bfNgHQj|m9 zqnTzg4r$)P)(mo&ZT4wgKau)|VMn*zhF-Z3hVmbLFY;JeG1qDF8ysl3e~OvM;KBM& z49q+?!sQYg7?YnevPl?(f|ysNfdrdG0z>*$R*3|MHd)o%XW4TWt!LBr+BS=SN5Ya2 z<=9!rowq#HbUv(ht7zK7)Uz(0YS*^B6e!VoDQU5_QG8kn*b_$o>yDp3lJa9uHZWWm NJYD@<);T3K0RVNQd;|ah literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_forward_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_forward_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..6e87adeb3a37f1824d443241f4939ace0a0f0270 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBVmw_OLn;{Go-^cXa1c0fz~)w5 zwY;o%b$>I5w1@ql6`8aAk~n2rHno9Zk@=~m<_p#=guy#MLYeN?tZZ8dgo+K3tHBHq g=iyPG%U9kpzE6<*V0u#X3D6z}Pgg&ebxsLQ09xug@c;k- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_forward_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_forward_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..4b21a663596387b3e5b2cc17d75700d3cb8da468 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtR8JSjkP61PHySw^6nPFfxW9i^ z*tMvUrLLjbJ=Z@p^lDKudxARxevmr&X?x!RWZ2GeLEl7n@x1Oe%U$|+W-j>HGllo- n+R$ZJAGx2td+l{-XsGx}r+*5EU7Q4f7BYCc`njxgN@xNAI8;4- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_forward_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_forward_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..fc57f4cf51a67e1c478f49c0e24fdda2e73795fd GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xb3?wz0qptud&H$efS0D`m&B-qh09i~WL4Lsu z4YRfVB!IkhPZ!6K3dSUfK!yvpvQmZ&Ee;GhZ@u;?8PrTQ6r35^%-2_XKyc+H5AD4k zQ{AFox~?+0^v~>mS4ifPsc}oZl-GVy3YE(AHwjwmP%X70Xo0Qnt{|JYnhaB!-fGSO h5-$_ASbskL#W0cO#M((0vWh@X@pScbS?83{1OP`4$|c(Ee?Fhha_Tf+K}E^-H5_ZdZ7*+_L)v55KJR1 z3eS1q8gP(By+Sa=;Nah1KdL}9XB?U|yMa%DBLh$e7gNGwwG|2se0NwxTe_KNENEh= vU;qioZQ|78cwpyNBxuK2ZfY2DP=kSCmvq8{GtT=@fSl^->gTe~DWM4fW>`Tz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_forward_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_forward_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..996c18623cdc5a5160767cbbecf59ea9cafdce34 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB5J?HOIx>3erGFuMQw#| z!0ZKPj=4>@ShjLzfdwuwdp32=QBXg@S=59?{WP|8^qV03gvC;^s6$4n{RD`50<`G^ YYu^F0`*QI&{eT<>Pgg&ebxsLQ0PkBuEC2ui literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_forward_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_forward_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b3fca80875de1c02e1a93ac942baacf4d8366886 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeG3?%1&o4*=JaR&H=xB}__U{GAKG#SWYDhcun zW@wnL?I!``wR^fahEy;nN$g1wVR*43|1d*>1Y5%Tk1lctUH2J9TiHl;SFwot6f}uD zvI@_6;2Lm{MZH2W#NgoHUq7lqG-n)|G`oRMfFlD?2NzSqVzm_t419N3L|eL>$(MwLzu9Sfm1Vlfq&TQP?wN*##j1)f6B4_8WG9&AtbJS#M@O zEsZ9oz}2)Mrh{UQ3v`Df4-VZ>yl^ujLI5K&Zzf{|;0q;0 z0Q6Y!Fe7)CbODG+%#iV8TFIp5L5jC|_1VwzugvYI+abM7WcihE=MQOfCJ5uN!bEOZ zCnTPT0Aa`xXR2_vvV6VVkdS!cEK^uW`QM>7R0L-V6r14C77Z)P+L4l&mIm_y>{5LN TReDUe00000NkvXXu0mjf8X9Xq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_mail_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9fd561fb817f91922efdbe17461aeaf04bdaec68 GIT binary patch literal 325 zcmV-L0lNN)P)}i`B=mD_W1wegXW`<&r!6 zOpiYZ5dbt;>|FSz%`qtaK!*~93dYoVP-pfwe)jVH@f(4j$SGY)_1>{? z@$A$oT}t(Jrh1)LM z9>5b{l261>5ClOG^p0~1*3=HOreH*ZE8eIb=ba242F$6Q=a~U2*VOpWEh_Vq2)&~6 zaT1{ll`mv%%JygqTc*@9&4l2R2llPY?0Dn?EJ6TdmaXb683Wjb;EX$}R%AZ8X9#v7 zA*Vc8rzA&cDDvx;hU}ns?8PR7brXGKPW5d|9;nGFRadPWcgK@j`_v@-U;vsxW5 P00000NkvXXu0mjfj)t{r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_mail_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e2d1d37edc24541c3805b398ca94118e7f6bbfbe GIT binary patch literal 533 zcmV+w0_y#VP)o52qrZjE^6%^~`<=hr z}(MIrr3Ko_o&OWS*g@IATDZXa<~6@k3f%QYV}nTKtH8 z>ZEgshBNOD*t>e&C2 zynlPgmj52Lc%sYY6Acpxh*~#wBGv{7=%{0(jS~onT1Oio@DUkdK(qk@0a5E{$0DGk z4v2Qd0y=6PZLq*+?8lgR#S#dJNJX>>1a#Co+5`eRY8`EmKriO|UPPNfKt`>iO(3A7 z7SSdU&{6AXg9ZB3dB*|`j0FZ0E?@x*)DtXV0Sj2b0v4E>Z~+Tg03K3r{{hMMe?M}z zlUiU0$pZbv$1Xc)I7ol+RnX!({n2AV#c{gB-^Wx8MTdDtv0@4XSogwHDLDWs^1Tmxnb(2Eq5QWZ=u|P;b^#y-;XRGZ4mi=DX=JRZO zsa0A;f-gA<5e@goot6Lv<*@2Tp>q2o5btnQ<*0xe`&Uunz`{ VUKTpQ$HV{t002ovPDHLkV1ilEaUuW! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_outline_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_mail_outline_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9fd0778e105cf83bb41e2b8bdeeda997ab2ecaac GIT binary patch literal 326 zcmV-M0lEH(P)7^aK*Yb8rO{@~{vp?L^ncOv3(>0e0!;n{qbu z?atpU8w5enFkwk5tR)k!KGr+xoC&*SX%~qhHPHlyb;OGB_gr0{A6baHYxhupqWMgRZ+07*qoM6N<$f;s4lxhkfA>D+IxPBr1LM@yuw9`wm$VJ5U3#rIO z#Pth_$VJ2jgsd4EafZ-dEa}KC;)aAQa*Mc8A&cB1ZeGY}z0kJ{xlp2zSaKm3av>LT zq3y9 zdu(T1OvDo8GvBmGZi!l)EsRZ7aA#4pQ`<=?W_x!$da=!iK_jk<9XHNd^ zSH6)$u|>d%Ly_flPT^VM%tN1#m|E*x?&u0`Thf$v!cx>P>dqvtIqXq8ER;m8)GZT8Z1I$}(#B@Kn>Ap{U+GI9)(b?9}0?rwgiIXdfHXmSHzhuXO z`*$|F`CZ$gJkg0M?U&3Z4?ZnEi3$I-KNu=4l#4y)J6-OikB>s~mE3clX^)r|u6TU$ z7^{&>?xJ4Knpv%-RgEi>FMf;Q=f3jC!RA%oS$PprgMJH%t;$iqyNkz`>4iuZEY%x-mPX*{1U@WK6UzuE2v z{jB;eKUw|+n)jONeRv!N7Tw%nA5_2PChMQT-;2*`KIp$CpBuA4USvby?Tpjn2$Eae zAaHhuF~^PV<(E7Z%!MS*?Py?8nUEIYz$7#Q$TBd03}i6aOy-)Gp0#uSx5=CTE@J(* zGPTw5VES}f85#fY54E@KnE&o_@(K&>cRzmjbh(w>(0lUdUstY`1UNQY1RjZ-%-b6w UC2{WyFv1x;UHx3vIVCg!0L@L~UH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..f04018ddbd594bc753bce10aab0d2dd6903bd528 GIT binary patch literal 272 zcmV+r0q_2aP)Iw0qF#*GXxzXh`LFgAQq`W-J}pYM4>Ze*+57@^@aZMvfI`GWq-hq@$JkT z`(-6!QofZEQ}LNGp=Lgm5bESZHvrZ|_8}tH0FV`eGefFYfEoiXkQDUW8{zqA%yO#XXS41W>S^BFNgxoMS{MT=j!jPVK!_$r} zPaB=^+&HVF^Oe}~FYN~qL_CWM-r$A}}}IuhFtD?I>z W=H;9{^-!Gv0000mES^zs*WIqo7r^y}+ z!GjsKkK$|0h>;{X^30JAxwpdev^l}Mf(8rjEU26D^{4#}Qy@+xN>`;0dX{a0oDObff&I=mo7#)xsK2loRb%1>9SO{-x8S5P~9kvK+RlrVhQX8QMxKM zwLq0FN(~~=gcrDgKTF_(tPAXC8WEC63wpo)I+j=xiY3M5@B5T3Y1uNOl8NCs&IOqO V9s;zuZHWK?002ovPDHLkV1g)pgw_B6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..6a579557a4971fd2dabe4605846c13b3b973eb11 GIT binary patch literal 418 zcmV;T0bTxyP)%j@k!Atf8es{RoLJ5sQ->#6?WIF92ue}Ozvff9)2Gynhq M07*qoM6N<$f;x_@!~g&Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_mail_outline_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..29514f0f6b2e6537d5395763685cb9e2a0753269 GIT binary patch literal 534 zcmV+x0_pvUP)I3+NPi})6@`_-xM_JQ7iTDsnQ zJG;dunVFfHnHk$S#XRp=Z10%o4BJW<^tjEKOvc=!R~CjfJSU^qtXWvVb+WoyG&V6L zs}Xy3z*#aouLGWv*=rr}hRinw$5~z)V+F_f1c89cOXf;L z%<+;+GysNNVMA$v9+w%xv;klFvp)Mvh{k^U)ZziHM$K04A;bfsqZXrW5fB@-7;QY@ z8?__!W1|j?w$G7pfcSy^vmb4Jf#Lz`7RynK(TYbj9-v1y)u{FNO&jo?%ET3W92~VC z?c@56#semVM=eHMYO@cBj#`bjL4Y20WVG>sA5;P(47|TVfF5<{(Y6oJqwYM~_5o_t zdbG0+7>EyuQ431VC(<~Eb#yw-~b0WzyV7)fMpJF!2ceg@PW)e=zv%M`jNAX zWOh*p>|jJzBeoZf8>tVzYOLW^>Z8XRJ?^GE{C$^R>4NQ?PICPI38&d!CYYI-nVFgW Y1X1?)s!bi)vH$=807*qoM6N<$f@UM~{Qv*} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_mail_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..bf0403296e413cf0e25465dadf6e41b14eeba9ec GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpWltB!kP61P7Z}+N1;`x#SkJmd zc!@EKtWw7=&$$Y1Aq(7a+|0nYQrd;)bP5d_=|IGXCIoGtqW2Khr zqEusTr`+5Vg0Iq?^%>MeoBB9cDX2L0&$at)d-JlWCckEz$`2JD*Qsq57q17mTk?0^ ziM(*ly4LThVzr@~zFyTt-o4!RwOx;2pE~nzmwn2yKfUwqAM;1{ZPak!~WZhzll Q2=pFmdKI;Vst0E&TR(f|Me literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_mail_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_mail_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9c97a103fac76f0020bac64a6f166355b54bb622 GIT binary patch literal 322 zcmV-I0lof-P)*i(C@dC5sd_4KSmN6+VgTgH<}sf&>1Lr$7`1 z^7f~Bz(?&3+F9b2FkVXaDcQ(J6$`q*&mzYvvEze)3sBz z&jJDhJ`mi1fB<#LjFtc`;S85FV2UpqlTMdT-2+Gzpe@!vN*=J{g8;ONP3D%r0X0G1v_R1vscXsXJ-d6%4DukO_=20D%V8*1rNrXCZ_TLfvpm!HgVc6trwRE_flQSK6l0U_@?@G)&==W4Jbj5y$Xs3U3_4 z(iA=@^;vKz3;IxU4Km}LJJ#&mihIt?5(fRD%Y=QJ(6wL5gUmSLh9&#(&Mi%|cc3c(S%j`)y+bmS`H z41+}EBH}EAbmThXv_Wem9l3}&#~>ZKh&aO_8M%l!%OI`(gTC2K42nS;Vo(f zEvt6v`Bb%Q;j5}$oHrSh+nA~JcXJ>iOP2V^L{!8rz)&Z$6m30MYFC7ddq$&{>Q&z@^hW-&)@Xazv7*-&>~AP_e?;oL*W&rTWri+i^VQZ z zZaK@=u_AQKSN1Q0E?1g5w!LMLUD;uFkU?-OgzVe)uYobc3h1~dMx!iIAc+pU4mq{{jp4Cix{9WJT{5u0<5SaZ?f1T)yS*zTon1Hd( N;OXk;vd$@?2>`l3>p%bi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_message_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_message_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..bcc2358286a28f901f638df792e9a7cfb9512193 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB>OEZ?Ln;{GUT$P-Fc4_}xZXU! z<5KZ4CR;~chDC>C?pl8T$lfD=`-D=H$ h;B7YNk)5Hln=wbne2bK-hb_=444$rjF6*2UngF{GK~ew! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_message_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_message_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d8a6afc5ee8f1610254e497621fe30d6e0c8cfd0 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D8J;eVAr*{o&u-*B&81da*tUU6j(-RQs`Hqjy7tAlA*-~Hfk y#nm;^jHXYtrP?!O78Q0JQ$#S>rNrh3z2c7Jy8q;4NNOX{R}7x6elF{r5}E*#US=f# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_message_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_message_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..98ebf302b60245f705b87ea7ed5ba6edc2b42ca7 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z$oVF;uuoF`1br>-y;DctPd4$ z9pM#t<5t44+HEO;DF@PASn`@rI6bO=>(1yvs8-xGC>+OW)0QR-QQlZ<~ZFriWB>@V;2_ zO+@O0)7EgWCx5FO7#NxEH8HcCx$_9bV&xFn@Peg=g`H!@&ZCS>EHzvL3JDiEe{k^$ z7?d-y$joT?`w*y3$={*kfPw>1^XIoSvyw9$rpp#gl{VOLlJ|yFn!|A|{e&me+B{u% z-zz>ZDc!K2VM~kt&)QA*)qi6W_Fl#NnKBfO7qp&f5Hn&Hx@&H1{G06*`_TfQ_Tz_u P0mb0y>gTe~DWM4fPy>aa literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_message_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_message_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..f496d62ac372508060d3e951472d5946e961d6d7 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB>O5T>Ln;{GUS?!#2;gaWSo&FR zQOUWAM!$f1c8%^e*EaPte%S0ARN=s=b$+!2qm=Hl$FjkiMh@_ g=M>$_mDQHYmhaY5G1{ih40H*Dr>mdKI;Vst0NzGI(f|Me literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_message_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_message_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..2c6d4550b86076fae7ee68c452a7a6fd078ec0f8 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DnVv3=Ar*{o&u-*xN)T~~+DY-4KhWo#3Qka_W(?N()@cKiLm zeBu1(t_UVO2;aML@*eLA5R$IGxtkG$Za1oJ>ix$0)&1MgQtP?=Ku0ooy85}Sb4q9e E046+9A^-pY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_message_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_message_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b8cd2c24c3450470aced932ce172128b6241ac12 GIT binary patch literal 263 zcmV+i0r>ujP);G{guS~;p`;eE3b+BgG(Jb{9fA=4xiNEA@bxFT=$ykG6ZH78D!A^fh3Ix zbRP*Q4U|C!8H5J{3IG|D2FjobfSv~Rf&z*J8D!AQpifSx%rMoi75= zxpz%;C< zFWCgvCbc)HS~MLiU+ahey?JOY`%y&%yyb*88;fRTP&zNFr8WELBlec55Adv9j%rJ7|$}-$vj|SH+k9+ zFIC*|ty31rkpU`UWs;h}TX5h(!&8d`jC>W{nmr-cR^sl-FZw(gg}KD;ze`CSTgSQc3>SY&Dp=VwPkAI#W?}h6qG;fE1)c0s>nA6D(Fc*3P#;`yK#~nK9&K zfX|oF$9Prp7KW_0bGei{oBqE_v4r*v?553jU%N`1{3hgbUiEhHO zd-hO4J%7O-f+j~K;*kcpgurJMzQ~QS{vvwNz+Z)Q%CwlW;EIG^Su&wbiIf!Svf_iF z8?d57kwiQO+>sRC8Q_6Vl?`HWO$~(#XT<243NdDggL7g$ok9;{h@*MP9?DVq0#>@< U99b`C+5i9m07*qoM6N<$g4FY7tpET3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_person_add_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_person_add_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..bf14e0a76e0e8d6857c74495ae9d340c48d03904 GIT binary patch literal 328 zcmV-O0k{5%P)GWkAsUS)fg%Rj z@jF0~f25Q!d|V-(d4-QK6cNZU;vI(xL0EvoxFj8EDi8)%U+#m}J#Ik~L=rVDbQiG7N4pSzj0&|!mB$W^7fJSq@ akpTe1pLQv<$B6d;0000JFmPlwE z)$E-K66xR>W$2kslGsKW+aiHpWT+Q+E6C6af22?Su7nJg{0ChjLs$NTUXh`)|DbZC z4Z22#uKfocAwx(0gI1BDRsTVK$WXukAj{LSO-3^IRj2)N^&JEgC`03rY7i`=8ZAT0 zK`==b{ZN$x_z!aYO#*kRoeLGnj7B z01NDLk7{(!4hsx;4jQ4z9Wr*uI-}&Qg&9sz9i1>k3pp9%66Me(W7Msc4U}V>v{Hv5 zZc)zNGRz-!^N1XJpa(meI73dI(u~*6W8~N|W)Jz8V75Kb+{XAqm4GsHuglju{AO4HmL13wrktA5!9pL)W*)d``)`}lJon= z{ss>hV~jDz7-NiyMTQY}afSz!De{oB>|hQl8bTXuC?bDZku|iT+GGm6L;kaO6qt-s zO&msQ*kPJbXc~8s8h4jzDAUR#q>eqJ14YuDM(W%JvZyg139xx6(L*UvK#5*dSc3%I zS`;7-fp^1*!-ffs{I*)HbP8DIKVY9zz&`&0H=F`)_z!sR6!6Y}z+0z)xBdfe zItASHA8^1a-~g`dGTQJrvIOs49wqz-!0NyOYd}LlN8rclb^;K`h4(@;AG8FdIgix2 z)1>tTKqn9De5r2*O#v{S+b+i{{sW+iV@M4jOQaGqTOc@K%&jPRj3$TC${p6X?7WQ!cr~C1HZm@@K%p*@f34HUyTTxm$gmNKX&cE9vTiOSG43MWgs7K$NX)xSA0f$c3-Pd9 zH&J1pq`*e50DfD0w{nI>Jb_R2!cY$l!E#Tqp01xb_Q|3 z0mk{c+dY;MjbV_X&Vu9fSx_ev?{J4Pci!C@e$jbvQ zR9fMN_`bedqTts+PdJP| zmfgr-cH)4KEH!^!&#Ar6Ui^{ebgenCq z3X04KYew<6;Yo)4YDhBd_!0-AI8e6qNU7@tOnT-VUU>EvzJ_nT_GbV`@WYeMq}A3RVwBiit|R`|J9X}R@4okQ z!~5HZ|MtF*LI@#*P>pUDIpLZjZ(MWC5?%T)43Ou8-^%3aQ})PFqLvalWs6nnSyOhH zroL}xlnr`#Cy94@l?C=mYES+c#9~n1*uY{#jiG}6L;;I}f6yHkcm6@2SQPz(imeuO zkHx)z&>0qI{z02qZ2AWcVKM9(WIrAIN(LiUq1SX={evWCNMc&bC`e+Rde)^3gCu4t zQ%jkgEHH9^@-a#{gKjuVZ3a<6t$+xMpa^1=IkwoQzyn_ZeDT03dA68mG_xQ^SmBUo z>UrjX6-FF`m>|y+R!?j*sdUl70v9ynf(1I14yL#z4Yy3GS#+{Pns(__;~3+Sv^_Ge z#?a3z9$pxb9c^6U<&t(;v5co>S#gf1b6HWsQ%P1hi=YUKpq3Ou2qF9cn1^3$=;qUg P00000NkvXXu0mjf0jarG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_person_add_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_person_add_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..07435b94a46a5a0ebea6ded6f76b1e5394d799e4 GIT binary patch literal 578 zcmV-I0=@l-P)41mTFnG&hjq9cYom=e&NlW$yRkJf>o%zEHnwZqwh`2$;H}*qojY^RB>xjT z@Ads;j4{R-V~jD?Kog_v;T(_1km51t*~L5>R10Wl9Vz}N#X8y*GNzK`1NnR)$y9}j zW{y&fqckf#%-}x7y3Y)Sg*Kj0iYIg`95iy4Qe7gZP_U44EKnHeB~3Zf^eF_aqg?Cd zA9bWCSBg6M#t1G(6czrWBC#45Yy1Zsz{LUo0k?2*%YVQ}Tzv2!@E#ZM{RiB}#clrq zhj4L7uIw>d^DnYGKKlQZa0rlCOS#rbAp~@m{W;yC(%~q=ADV?yC;^RJq*P~V3?@LL zi^r7W32jn90TMI0>prV^43KE%1jRT-vlL)}L>);|VgZPhjBJ> zo*c!7rbb#;3Gg;h6;q}>4&4$iTfiE;$KC1DMA|>@I+LV(->FA0js^u-;uRrYStNj^ zLGDpr_Y7dc#U(203>U`cQJJPOc8$t(hOr1LQxId}W^Ht3@ic?ap2C>B?D*YS7~&S? zb;}@@0xa^15FacNpd}oBhFN8sca-j(9hMovN1Z%Ouul|KD9k=%c&N(7ET5>3KAFWu z1>Kw=gAVDTjCLN7VGp!ZVjWquL5Y84(Jv)rm$OkFIqDVzKnIX)srvf#00000NkvXX Hu0mjf`bA~q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_person_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_person_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..f4949d535b2640c385880ad933b8c8f12bf28e78 GIT binary patch literal 307 zcmV-30nGl1P)H-7%`Cd0GbE2g8=U>pw$Gmf){B4NkJfh0w|%D&`^LND1?ksP^S;7lI1 zI%24f+RQlMqjoe798e341Hl`7qK0vxf!dGpH}%k?t$%1{4m0zq&~xcO9lJg*sq(1Y z&-H`~9@a<6P@+bc5p(tgEEv({pAs3A3X~agLP9z*q)dTCij0w%jVbbyEIs7KdSr>| zmo1W@Eq}!D#Rf^(nr|XC5k)N`EmZ?6B8jd919rf&tSiM12AL{o?V$hw002ovPDHLk FV1mjcd1e3r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_person_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_person_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..269cea974a10dde8742b5dcfe1be5990035b889c GIT binary patch literal 404 zcmV;F0c-w=P)&6j- z#<8vjF{lRXLJ@<)Uf0#pi4%UW?Q(@QRXCQ#335*-r0XO9j&IOBeeS+N z?kS~W$f2G_##rG3LAYRrQJSbHml&LhqKqCkkw@C3n=+!XD1j!{5yRGLBoU8&C7&t8 zho;EqD;`N=0r8*(lJMDgS`iOx<2ycxV-@kZRpNQ3Kz0xdZ4-n!J~M+@YML(?D?uz) yg0Tt2ViOoULM(QKF|nKu(m^^%DW#Np8?FFCQI*n!+tXnH0000qV6u@&|TCWK^!__ zzfl{=VtlUesRXP?0=5A!v<03{x7PQ9W-;DKav7nG8_Fv=i zXYO!-T`VF?FEPB+$p~AxNExZ15*OLR2%V^lGr%&gA_2R~G6smDqL0;lKydFJtLdYL zl4LoHgxp!OB#7KJhIxZT)N6*BMuhsgfkfO5`iVq}tw@d9N{WzmauumzSLq}~-8@2S z+(UW@NrrofLifn%p8&YE7TnE46q}E;m55?1adrh!>@v;@h++ktiE?%Ub^&$)b^%dj i7hsGr#u#IaF<$`O8Y;kAO%NRb0000@!9{)!<{6PwMf>EIyS- zHz!ye(xXze^MKU@?JCAPE;dw*e_Z^k7>>L~wW)5N6t)^h()c>J)kr>C=0U3O%ryJ~N7>Qkg(cZX+rRL9iR6@KppG_uil93VT0& zzwdUt_fg>)hCz-7OHQ0v(jb@YxXpwI?;cFBlbW}1`NqXcCNRLyK*>?yj-NXPd7zC> zTOL@Uj7)A9t4k0000KDi6yu^;w9$u)KGDV`E+$1Ad$?E^ZLHt5pebBTi8lIi(J$I4 z!9|H^<0meD-L2KpC_eDXak=Uvj;n|fe<~NkP;_b*k;|&_8&Ho!@jPZsL zQYfdAK4v%o;D8x=siK@zLc|yTkw*)QTxOAG^7touh@gsjT+LHSqy&rSq%*`#43W-r z2?kM25QGV$b59%rNcL$(*{EIA00000NkvXXu0mjfC~2(J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_person_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_person_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e41aa700ae02884c0cd5e040bd78fe214d6916b0 GIT binary patch literal 538 zcmV+#0_FXQP)D<{8y^Mw|G9BdH6IAWJ66*twL_9D zX9?R`vLqyGOkgMNtuDYjB8TSdq|Ij zgADi3aF2|HfwgE^EAE(wrupKEm1tTiuDF7x%i@XxnhN3yWwrs^fNj7w5DD9WF~%5U cj4{T10r;7;riVP(M*si-07*qoM6N<$g3veZw*UYD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_all_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_reply_all_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..3f2f4011a06f9ef91c45ab0dc235e5a113b30819 GIT binary patch literal 280 zcmV+z0q6dSP)9Kv?HegE`n-Q8Ep4Y&ZGIk?m7;z_J37=Eut5I5q~oaY?vzTpR8dafiF#LGCX0-kdh!pB4T&cI?=x zmb^aYT*+R4{z~@x^H;LhpTCm5{`{5f_2+AhJy%xGUs*kW#ReTzl1`x6^XhdIZ}z-; zLnNC$uigL=`t$OgQ;MVhynN&Mqfny+6#t2vB@~4QC879F+#2ClCuVTBI?)PNCo=UC zQ!KK}g%H@sODA!U1OCL4KmkK)j5_#wLM50SM!Dqb>COmxKOuXSNZMXRTHw8e?2UggTakQ0KJaH96%pJaiYki1MHhg>lRV#3&8kH{)hgW(xar7T`6@QM=#vJ8)bfkaba m#4wA2#=wVxVHAvlQ2+oe$pYf>S0ze2zAT;{FHVTt0w%2w5!@3WY+UP|<%!mm~f=x*YM_(dUTYjy^~HcJw*ozoW|$ zza4#!`0eO(#BWERQ|w?z{*F`bh$GfGVvQp_b3%!EGB!BL#8la2$_gi$1{J2QaFV%V z&Jf4VB@<>iZeq&xo8h>5Aa91_CZLB5oAs^DZK8ZSm)<`w_tdWkv z8mVZHG;59YM8+CvAM{8y>fF<$6Tha>X zkbbU*WiHx+Zi&+SD2}ts+n1LM>3*e0IUq)o;XM6g!x(4DOFkG${~Qys#XI6=$Hu{` zz>9m^B(ibR8|KcvE?7BwW*wXZw9V z+wb$)exJ|w`+T&z=#0^QS{Ze?KY|rl`-q6QEl6{ z8P&EK);7cHY}@9Z{d4<%jLCoT?hLNnVWi%J7 zZzP0$v=FOrB$WL$6{~N=m+4dxt8e5ZJ;dr8iDESs#p)Y*PBXFkMm!lJR^Lb@Gvow} zoS?G0!d)t(*W+!)X&xe2qb<5({VkahWia&W$*jAQ5cbhYfpSk{F)GzDb z>jOAOa1IJv6c!w{nZ^HXW(87TW5raJ*?1CbhE+OCzFMrp-clsy2T$u#6|XDVD# zKD*paEWT7gmWn(jmH`OU5NGBiO&`u9&L}M97K_DVu~;k?izN=q=ns+(1wZ8g0000< KMNUMnLSTXn7WT9N literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_all_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_reply_all_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..32915c6c30f33f2c43683d90597bf5ba8ff84aa6 GIT binary patch literal 285 zcmV+&0pk9NP) zJs8!MA!!drwWFXR;n|U*TI_|?G&MD-DQ=x<{EOO?`4=@&kd>Mf5YT1Bii?8oG@U8q zA5`eG<=y7Jo0LQ>Dq0+P7DQ1Jwdlw)<_;`hgF#8`qN2^2E4lBKSQZsELV6J=>!PC0 jW0R>>?>I0FK`;sc#&d-@FsjiJ00000NkvXXu0mjfD#&xm literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_all_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_reply_all_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..4d9b597465eb535ee413a691f0d7cb4c64603e13 GIT binary patch literal 333 zcmV-T0kZyyP)H##!Raa6;~j@+7`APvT4SB)&9H;!E?I6<*DGYR;qM)~P)Uqs~X} zY?bD7T6RnGIrmoU%)_^1Q)T&_C-ZU8jDz5Z=f!edT*gK4!}DgP?!~j&x);}BF!IHI z*`n>$hn{La%@r*AcGA3c+m5uv*+s|?znBPEa_GSi0J;{_MdAb2+zd>v`nr0N`-n|# zK-WyNNPGpRo$G;vK_62peTp4lcpP*wrP}A%&_UzRMdA}Qy#MZhJZ)RIM*nBgx&iIO fz%U9%!6*O#p)*UsTqYtS00000NkvXXu0mjf_;{4+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_all_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_reply_all_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..18ae7c7da0e9677c027b880ceeea262db1c0cb5f GIT binary patch literal 427 zcmV;c0aX5pP)KqQmM#543P*HK^lMs38?}E0U!hrqB#)05zQh0`v(3mr}&o~P?iJAa)4(}C@@b-M~)X$W|Ju`IbMwt(^_)8E9SK1 zc$ZA*$nj!|^y|p+9?0s*@nQ;e>B#X;83+m577v1JhC-6o<&&r~s4b~NpSGl9=d>l| z^(D<}OL`)uEot95xugnJ?y1utL{==xFX$!1A{*>c=9Ttth=h_{OLQ~IDu>kh$%=C# zNvgLA9u<(J*N-@fwu_r&*CYiA&FU;Tx1_lARI-=+V*wUu4M zdVvDhVgIeU+N%Vo8opi;n0tGhV8Zr)78?)(Y=CGuJq*Z+t?5^>*LvSv7i{^eU<+H zdw`tOtjuHP^%C9w#``QiInVxhW_s4-@$CCwf^-wY1OwJ@kl$a`>ibK7N$W4ss@35? zoVmYp$*)`z_t1**E7#>tU{M6Ke;V_IgLXDiQnY<%*v@nxQE8jixd zjAsAcqw+CsqP=jR*h(k$YX$vBW=!mC-#ujs`*z_ui6Up7JT8^m*tGsg?yLh%&3nE) zRNVO6$FWmX_~y&g*-6H3X(!#~j(wQ;BJP23)aIZWYhA9#|k0wldT1B8LpZci7-kP61P=M*^(C5X5_JZx|# zPUNu3Ow%mMS#KqDm2OlA3an{z+?f2HL#$g?gyrC#eG2D|DvqA5e(( zE5+6I%I82uMdq|OJ3hHxkX7Vojhd<$t)vpE&%ac2yWhUK2j>2Yn=ajSp=kM~PnHTg s2d19NIw^a6R?7C}ZJu_u|8{KR?=HRCY~RT$3G@bor>mdKI;Vst0N*`a)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_reply_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..7667350d3643f051f4b4b3134515e3434643bcc8 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DU!E?GAr*{o&KNQ>FmN2+(D}^0 zD)3^rt3yzKNN$Mm8@b)b-)*c0Qzy5&vrBNe1WL5}w<>w4F5psBU}9xb+}h62qQJ0- ziGxuwSE;FCMFwN5LWcq;SAejb&UbTW`<0;i@wQkOgulcow-2q4}an( zK}GLQF>bq!b|*T|KQf8@w57IKSxtT4)Wjs`HU-r=r#4sqcMkBf5MR(H<}c=|N;J*(ln`Y68HM;d{lz~JfX=d#Wzp$Pyd Cw|1`p literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_reply_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..efd749c9e603d2f37541c38e258bb3328fcfabe1 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz!>Q1;uuoF`1S^)3v;5xv5)_k z22E^~P!iN>GGX8r3S#A8a^O&yaE5_3VZsst7KKiS9FGjfAlAuzOl?nI@yhp2X({#p z{7;_YIDf(Y)BjI?wmJXVX8oFDhNgWh3w?T%vt)uF&yYHP#bOy;$fnSzwX#TRP6?-} z*^HovOR|Gfqgp4wn`Ei#cY{^fYR-n1++U>@iQh$l1gGe(5{pE2o{YvG?Y1i(ylhuJ zN`GDPa9`l2^?G93RgeBBS3IgO*agjHD?hTO&Q)t$|CDRqjjq>jEpPme+_V)re)FN|?=7u4^DixaGdW?2_33{%4325Ooc_Ki zrM|E8#uHxU9Ph^op^s*M$n{xLcuD%%v=618PhZSbpRmd*{h>pamh8FDHVGmEs~oyb mm&|%7uyNXp9U#BIXMVphHEOvhPZ}_c89ZJ6T-G@yGywpYVXSWe literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_reply_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b52a57f9897e8803c4ffcf2a53a961b583b54cf2 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z_`uR#WAFU@$D?;H4+X2F7dgy z^A<}5N^b6xy1FfQc3|%8#9ZSwxzf>}Z`CDFsufQDthVpAD_@n%Ga|A z6Vm24j|995aPYG~A^Pk>hfLP5#6IJWNmaiRd*hy5yTt#w$@7WeW&Tf-PCgL51I9OaqAE1%=^Fm5JxMk zd)2MNpYogMO^QrDI%U$gJ4ZP#`=_6r-dAVCx9qOc%1g6MwNE!!@?I6Yd$!`|?LD$p z%h{G%e7=3;PStU_l`}q{KB714x!L17ADabLA531jx9(Y`o_=?~XogzZ7x9pYg*9cC za*q`~C#Y?I9D30rqrGE-}VMB%H47JZMw=rg-KWA+xt2uE&hBVa@_c)I$ztaD0e F0su{q>}UW0 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_reply_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..603801ea7d6d8b2caa302dbd287fa9e040a63c67 GIT binary patch literal 246 zcmV_O}U z`1na#Sw;jlOoOKp14axOF<``i5d%!=P$|l|V$O{5iZZST6TG5~>q6Ut0f?FBK>;sx zt?a0c9W}C|BI>_UAt3{1?6{JU?kJ+CkW^F|vL(XR(^C%m<{9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_reply_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..4e6a297250ee9beb5eff7aab6a423388610497c7 GIT binary patch literal 299 zcmV+`0o4A9P)otGFX9{HHeGr1scEcu5gnLu);2kgC|pDr=G6gBgN2Le%76ncun|$Th+kRug6oK) xMfAX&1}2LZ(G!y%ZA2yuP9vA~s8lLnyaRmsF2}ZUDAWJ|002ovPDHLkV1o2mf5QL( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_reply_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_reply_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ce5d5706d764489d18292fe243ead3d8ce5fa4f9 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKN!07Jj;uuoF`1Xde%+y4QV-Jfr zMQ_SYKKpIj_Z{1w9E;k#*7W+Mv%0ru7_EQyX5aF<_x1AYitX<2ykZ}$HPvfrkmlv4 zLXKmK672~xn2b9cZ}R+|+Ix`kLGNF+Oz~Fc1H8p0U56PhmgTGP6}Wu%kf}(X_NdU} zfa+W2!Uw&QTt^-T3i=kLjv zFSzAeZu?Pr>woU`8@e)b7I2E)e&4#j-0k1`eNVKP^j-|x@!Grh%oAgeMCUgLm(QJi z{*7~>F!$b1h0I2Or-a=u%4ayR?#ywvuQ}`otWAyQCqME1D0bkCK=af-ImUOV+Gl(T zDQ3K2c;dy%N!$s3$2NaZUn1SuRy;Mv?QzT;lW#|U#4IVR_5|5v)pPE-Hq?>Ninhn za-5@tubeS=*IYa^|K7#<6VmqG^wm3CQ#@U2*3W0UxgqQZ#T_g9H%#2{i^Ka%yvO9P z?is7?4q0cd?Ef%B>6P*vl|^=k0=~X~_B|v_{-MmnB~pnNk7pi~nYL+KuFM0?jhC%% z%H&M!&N4~Yk>2V1<*s6~kxkSR3EvsVSr;XT7}?!XHD7CS`u|>qVk7&wlHTb^X|4J@w+CERoTi; ztd$DrGL|@@yZw!$*0Y3N9_wx!^u6cn(6ce@c>k$u-JFYa*U!q-`+Ji^yXCr`B)^S{ zM1X6@T!*O*dYg*oo?}c6NhoxX{<`HiD>S4ZDCe6c`0myaIs%M522WQ%mvv4FO#l+E B-?sn& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_report_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_report_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..d53a4f3a0e0043869e0a82423be30e3e05beac80 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8Lp3{MxwkP61PQx%0840u@jpF7yM zx_xM~NRgeC-|!@T;Z+l3ONkXP*S$HjO6?%Gl<|@WER#gDc6^dlI-1@Q(qh$9bIfnz zOyNm3-1^)+Vi}H(ZVT>R;Yf8pDQNyA(BoBmRL74AE+;lry*MzzW{+aE3zN}7DZ&32 zzMbGXc0njR#ognbPg{JB{Q9V*pU3B)4@`S(WH$G4%48EgPevm@7M6qJKsPdYy85}S Ib4q9e0DX>4h5!Hn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_report_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_report_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..bc356fbeefcc555cd1007e16d2d8ec6e0215db41 GIT binary patch literal 233 zcmVrNpy_OL4Iz{mV2c7Edps}T`00000NkvXXu0mjfGu>Yc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_report_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_report_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..2c75e0ed158fbcb7bc1f587c62b781e2e3b5cf97 GIT binary patch literal 304 zcmV-00nh%4P)o+Pfa{1#vp?XGRPo<45|;xk3k022fcOCR!f~UQ~-_IC|Ya$ zKj^HsGXc7%K6y~vG4~82-mQDJ9e{^okeFY_zwSq^6>T+E*nbQ#p=CWV+SJ!P~sNVW^GDE2J*4z+zZi|TcyV-Ml{B3N$wLOTv{_Dif#Xqku z*d~5;N%W?d|K>jt_%r|F+;f@cN4wK_cWt@4M)mW$f6?x>Zu_P^*n8?k^YUoUJ+q`M z%Wh5#Sakp0ug||k0wldT1B8Lp3{MxwkP61PR}J}E6$D%_{-3U# z({<~RsgJv7`b)DdCF$2&t{GNJ2ubTbRaxHj(7Z~X``MhGQzI+0-X2~t<-iIN)}@P# ztyGQF+X{>H?F}XMR~s`=RB|+CdC7NE`^3I>HkB9;#!J8CtTsvM@pN8#t(DVIOg$M{?hpMM5fmB^;s6xV;ns#7k+cD74Mw1{(6t* z&no+cUw?3BdDZW_#JO^Qqv(as$@e%9Jg8}CXX$WYQCh&PCivo_f?{o0f@fWMXj)}{ zLdT-YUD=By?*7(`UcUR=UwdEGuqk}SMN7X5&GhihxKMk2-G}KHt+&tJ?^nCm_Ws?L g_2QiI@+@rGtqttrF5L2MK&LZ!y85}Sb4q9e0A!X}^#A|> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_report_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_report_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..1879fde4962539e9e87c3d6cd95aa74b91125729 GIT binary patch literal 304 zcmV-00nh%4P)rKC<* zwRBNefMZ?N!5oOhbDRWm020pON$QOQkXktpP0C1p0gm-hPjdhgzyV0k;Ya|-?f{Z; z+CczGbK^ju29ll<2eR(JfrNsrfC36Apnw7jr~n8ppnz(E-a2ceg^qev01aA?mn#kb z2c7KpM1XE;X>Yd&wR9(5^*g)W0}n+b0iTS1-49xgR~ro#_K%m2T57AaKJ^zOenYFj zGV&aL7UoIyw|tbt|9s&|JjY2qha@?NC&8SQQc7Pv5Bmy7gP}eE0000%%z- z%wEOqUtCht+W5Hd6+e}EyUIMn(>ZL_pYX=1&DSQX`&ZeYKOxUK^XA;*bC%EN+?MN{ zH|g8w#hfY(kxZNp(;V0)s7|OXv3&4z5sOiSP9u+kw*vDCp%V<7z+5H;?*#_Cls^1% zWZ?>&df>TvaT13J2lE$U4FR?n>H!Ko7yK7EC@h%I;LqwHme9b+CV@ma)U!zlOkiZw ziTQDfWz89xyvZ|WL|$bG@B6=O@2ADA7N(#5yc$mJo4I{?AM2c(_ln9N9r|`I*_`El z`SaQrZ!+p;&Wh9zS*jaZ`De+(mS_22PK4$L?=dpITX(*3W@vHv|FfuCeBJW?`egeC4&{)y>oc_Sci->`JYNp-esTTnwVfOHniR|k0wldT1B8Lpc25__kP61P7aG}`14P-1M}r{?3bU&PS#%I`(*F=Q&}H zAF&RcUIA|I3l}u?@i<%BHcl*JoZ7=uRb*D4HtoDRpZ$vyD*pL?)9NoOi1@!Nva2|0 zd3nX}>{N@YwKCn-$ n#N4?SKfFKCwV9uN;)&yteZme5j4T2NZj1c5%TzC75S&-6 zJIPzYar;*xw^hj-+_fCK>fXx*78f~`F&XjvSvA)^=SRNFxp~Pc`CtAyJ9KpBPOD^A zSlIqqZ2`;kS_jU#-x*ac-ZOg@++&||p;B6)>9gGjJH|EAOky^yUO{~GA8kuu4AqI~ zxXonPmOe#_-^5WMUc<{MC#k}F+r#|EU8<5Rc-#(ZFfhDGTKTA|)}|BaD+W(jKbLh* G2~7af3SH;` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_alt_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_save_alt_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b276a69416a48f554a466c8018f29f525ab013a8 GIT binary patch literal 316 zcmV-C0mJ@@P)05XA8jbcaOW*$NPW0O$Z6Dn#l40r03J1i(fxJda&zK4Sg@u=v5k{XXZM3(g>e z3^GWZK?WIQkU<6+B&cCm2JO)FoCgB?5@?UW15M8fk|sgq#D}z$b4Z#7k@MN0BApQ& zNh1(B+zFCac#cVvpu_0uiIwJ!r%B`cW6BBcOHe`zF5w73B;_MV3aXRH5rc9PIeHLD zb&eiHQqIwXQW80OP);I856Vg8=s`J&96cx}k)sC{N#saD)fyVm6_oeCAcG7t=!NLC z7fM~bfo>?Z?grYR)C`v{oC{_sw!mG^xnlv;n`4VXh8eKM9F?4N&bVNj?3TtTk^vOpuUiXVw4iGiEqO81AT&-jFp*o;^dY=E~kH=lfYgSe{EBVgAF? zT+uK;L4f~*FwY~#x+X`P1O5gb>_0f!J~G%JRFHe1E`d!EgZaS+fs6?fHd+Vf!@O6Z zQu?BAOWt+O1L|vMmvI>^Ej>TS%J}~g;l6uT%oWE&_bcB&*k^aHXxbd- r6Is0D_ZQ~uV?6=D(3%p|Tg&Lfx?|k0wldT1B8LpPEQxdkP61P7Z}+NI|w*j3}tfQ zaOJDiBBZoDd2ymqRl<^rRt<^9c{*}d29Iaouv0Aa`SI?J=>7$9E40&V#Pfcn zWo`T~8KrUYkcNUIryC=umjRbYKvST@B(50}8XaxNSdKa;+H*(NFzXeu)tI$J?OSP@ oIOjr{$@|4e+~%ig`g&bu&Qmh3?wHcKALt1NPgg&ebxsLQ02X>urT_o{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_alt_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_save_alt_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..bc3232b753fd4afd9f4fb73e8bd860e2af15d06e GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D6P_-PAr*{oE;h0?Gl;Z4+L@Sv{Y|N9A9q_b{_8 zJi3QpW8r5zg_d)_8w9N0GdsQ5!_NT{a5?k)z*nIe<{~;3zvfFl(9Gi&3pm=;xqEg4 za*I-~U1M@Oz;J=JB+#|9jFIud$4xB^AH-dse^hFpZQb&D?E~$!v~L9^GF7`KIP+OP zff0e0s}%dL{5i*CqUyq&mQ}~T;4b&YAI6_2-GAx5T2bo%vL!V& zb}Oo*e45@HZx-35F3Uyi-j%*!ael38^?L4-fN-Ibxoai_2w8oc5I2c9B1*{mc!N+ds{BF2`kUJA;N2YF2#DYw$(P787GVi6Qa+Y c@%hNTGkVKE&PRVFf#Jg7>FVdQ&MBb@0Qf|Q6aWAK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_alt_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_save_alt_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..439a9b5b0e568fc289de0d4a663862a2d3c8745b GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z*y$#;uuoF`1X8b8xx~Q>qE{d zJc0~w_oXmQYUSlPq4$N2QJ{sTam!wJ0fw*oY6VwbZJW8%!k(f1v*^38me1!DpHq}f zXkcWMKqnl2@fauw=(>HG&v+r-Wp(8N8H)?uOfL!%Xmqfhx)h zvG4PGDo_FN1)>nimU7Bkt~x=T>luSftDRJ)40;al##c1`fd|bxaN& z3g3kpoLF|wXAn?2@t37R!10|rLkmZdJ)?rlgx@C_y)OKI$>=rV_fK4eB!g)R%$svg zT+!saF?r>Div*`-YJ~@^(>IkoTibD5Jo1;`yiT)fqbFVdQ&MBb@05*E7=l}o! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_save_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..a07bb0dccd15e7843e912eb1df2bf7493359d6fb GIT binary patch literal 234 zcmVCv ztY^&d#IVo{0vu^Brmo|lfeqL!N!jtU1wk81X(3AKA>Y$lA-i=b;?zPR!4z6G^v1*a z`7hKX!;cKT9xCBes-c!Ptrn_jQ){7$HkB6YXw#`byMRxz^YNR>3;A+RT}T5W#~_#k k%so1D6P|3+xOF0mFRXYab9s>{;s5{u07*qoM6N<$f+qQ02mk;8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_save_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..f57f504d32f128e67fd0269d39392709b24536e4 GIT binary patch literal 252 zcmVXqRWqWWGRzae`2;>R`oMKXaW{X>gH zvi|P)QTTTU$NmLdgPb^X&n!=OtUjoDmOJk4%EoUWSNZc^X%CrDii6fh>`YxZd tTqgGaMDnE9TN2+%DD%(PIlXC(xqashJJz;etiZ5i@O1TaS?83{1ON$2k{bX3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_save_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..dae5deaad554fffa8ad2c67a7a72ba5d6d0cff02 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z&PF0#WAFU@$GFz59UOPV;}c7 z`90YpzP004b*SST&oj5S#tV06g=|qTO_qI|`PyLO*%dvam%rWOzw>Ukbai~iKYxDv z9}nJHTTBV^(p-9F!ZnNMy?SO(pZYB95oe1i4CD}<6;U{mU?FI20Nf_{8{tB$x>yYCaxdv`$&G;jAKm z&2h$>fIWrim&WpveF4&mTG0kcznv+8_Eyn zR-Q8RKP~@Y)|9+IjNd#n&&wxtPucc|G0Zdbs=R{o(ws*OvI}j4Zhd9np|n)HpMTSo zsDBK{1XHcM{uzCLDV%V{Yp>t+jbPhr1{okeyE&fO8eBCwP7z4 z`>rYPY}0m_{6sI7QO`54+3s0N?KQ={*5(b>$5uHVKKXOKL7L=wo(+4SMV6@LK-{2IG{VSK_QJuDQRbs9FPKiow&>&t;ucLK6V)Y{A|k0wldT1B8LpR!tvTfdraWgqD`|IEBx?Wv literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_save_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..bf7826392d550e2c0d508d783cd88eddb4b37c71 GIT binary patch literal 253 zcmVK)5q<>q@*piI?jTuC1<6bfj@p?%n7gL>n0e%O_OKzkcw6GQ$|3PaPXB z+TOimdqg?sOUl)>O=`A~fR>ai!+dYR*K)=M(n;TTH>wG!5_700000NkvXXu0mjf D^TA?u literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_save_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..eec41d7694feef82024b5f3a2a8235d2d05f9c2f GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz^Lu%;uuoF`1aaXM^*z7hl}mz zJ8m<0bcdeM+L2wwc33v*&RpIF`=(f&+^%xeTKG=IkTx>jfhW)K*eB4pi-#>~J^dt^UXDoCytNyXU zd)tnMjlxE6TdE4(886?Np!wY=K*39MY0MtxTP7KAJpX!32ZkPlr>mdKI;Vst03`dD A{Qv*} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_save_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d4619f28fd5ad7e56a88481b91495056be4c8240 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z&PF0#WAFU@$C&okLE;y_K(3A zI%{rqZ|=BN9qRbT^USTS^}af*0x!*{HKiV#E z_H2;!_TZ3WsQkikVllgeoGrtr7mO3!`5SDi7@k~Yp5ffUB(i{kRpUTo0V7ucl;Z$q z+EqT85NmYp#={QxeUDi76rY;Zn=mujN{~rw%?*h)AKutLIH&gDSg}Jd>+A;BRdLL_ z)P@~i$sqo>DDuvPiu&-XJnt&P+QM%rr>p@O&i3vxL#esVV?Yj-?;ar#dCd4?5YQOmP8^3S?`Lp@dXSYZ9J zNxch>NY3@hpQ_$>BQ>`!f2!TQFS??pna=6}0grgFf37UD@vy9}_MwaAD@3 zH6_O?WsgD1ytX|PZsrF(n`34BFS_6SoaStBP<~}zaQViXpw_>pz?fq2boFyt=akR{ E0Ne1!|k0wldT1B8LpNlzEYkP61PlNEU!10~$fOP{^x z=KsYdpKG>fm2hX(WY4P0?Y{ZH+FqXRIklVX+o{c)k1w-`|NqYR_ka1b^Z5khA0C^h z_|d$JsgXN4tH#BtLM734_KW64B`qs7s-DepH%U=R^z7#Ft(Yy#{3yoN>52$vV7Q8l zcS^uQ$9_TMYce~yE_Mp)1}*lSZ&++L$H-MYY0C!S0W0Cw- zYfst#`|+LorT>u=98-E6PI1iXIdBp}?E0DdFXG)@_mq6?TX~m(o?`HH^>bP0l+XkK DHUw#} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_send_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_send_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..ac1cdc293f3d56ae7ca77caf46ec8e7b5cf112b5 GIT binary patch literal 326 zcmV-M0lEH(P)8)xZjs(-SfV#FPH%L)H|mr2;&XTZ_rCqw-rMKwp5O5?L4tg8 z$~cBekt50ta~LH}uGAz?Y+{fMxrY97!nhrv+=#!zvaJ9?m;k5?8)Lxa`ZU5dbC!Uz zutzp50p|NLpIZusn#hfLeEbM_r95YN#>^Db@*#XK8y9k?Pg&oeh7edIiU_) zxd2f2)|@0|6X)ns^fTGt6FRF)Q2+*qe#ZLRlCi#cnO_~vFTdv3_q6o` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_send_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_send_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..1166e11b0a1f1f41fada0a3af720a5bfd96d7c69 GIT binary patch literal 414 zcmV;P0b%}$P)+&aBcut;w-EYTYor#Cv@8x@!OyB6f)y#4NmcV3@4v*(u;IF92u zUvZ3iG$JC>DB>1t=!rKPu<&~s4yY93fZG_0L5Kr3z=WdN z++YP==0f^_#Q<~qpMb?cb4>vSLL6}G_W@flgefdy1BbXoHb}skzXz;GFD9{obsXRV zPwIe7tKs^kv4wt^!s}-kP`Q5BSpG#oqxE}EIv`U=LBA6khB3{QEaC55o&H1JZ2Yw! z3%>^Dk(y)s>nPHM+#UJ$gChAB)_#*;u-`@dL6IW~h4`$h6rxB1p%^c$D3U~oB8`I( z2vH=B5MSGAggBCfoIVl@Nh6UE-#&|lD3X{HdcjcRIF93#0KKV^oIReSqyPW_07*qo IM6N<$g7pfl>;M1& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_send_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_send_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..090b269ce0c3f8dca7432b56d6d10bcb4a5d207a GIT binary patch literal 527 zcmV+q0`UEbP)Izp-l#Y<+#zkjf7_YwY!CbHd3NtdAOt}W z1VIpN&__PTT=T*yW-H$ zbD}~y70}$XL<1Sh{r3e_D9-{a)F>rR1q_6G;N?%*qlbKh0+}z=BQO8TJ&QCL7f8QQ zPrM{3$Ba|+1` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_send_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_send_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..24e2811b3d31d3d146c995856b5cfbc9b3133451 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpQBN1gkP61Pmlb&!6D8UU-HfGe zFADF~%u##ktMbYhNXnb-eJQ=n+*s?o$NjRWo7110J)O7j|K0rWaVNu$OenH*&euD$ z;<+KqhZNV}+ZVP39Gd6I@~Yj5NvqANpC=$m_05aN3v1q=32`_&p&*Z9TMZjId%P23_>_etrXScL5$W@-%kDP=-@_H60!2U%F?hQAxvX^sh zV#u5gXYNF0Psa|Xp6|-o45ppW4yFrymehqr_D?8$qkWAC-zZ#!7|2&S2J+nsKShZ? zPW33tOx7oKC=jCv0(t1ageZbQU%d3yQD1)lWql7^KS1_QpHL|&0w35JO%_dPZ^Hlp N002ovPDHLkV1l?id^-RD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_send_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_send_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..92c2afd4c2beb53ee896e2e38c15cefcac8ceab5 GIT binary patch literal 407 zcmV;I0cie-P)4{XvOlMq0O1EymTD)Esk7HNq|2=joH`HB+zOvfao0WF1udp7CKQ>cRS zb-*cmA>~p6S_w(Ojf?|QMFNsL+w({EF-{ z6z&o}zwm%&^Sfg$JYeYj-f|D9&?rHF7aB`jp-qzI{?0X;Kh(6P{Mt`i%ph4L+9LaP zpk%)~^5us{@+EA_i~L#^t7zXSY9w1B*{hlgX(R)oC=aYOl8KN;k~1?4A&q1!B*%6J zLUxe^D&~igP)@H-zCl&XL+2+Ci;f;y)tARrVJBmPF41M(RZkPC`2^D*R( zYK8>lf?~p=c;}3QoIoO|EoA|tSWxu^1;q*p{DM*zFq-Vo85HYmvdanAJn_Z|f4U0^%3zfZb~xsWM>>4s#efFo zToQ-%aR^FieY%{cgVI?a3#yb$qO?A*?4^SeSRcor9M)&R4JB=X24&rZ>J&sj#P(Lu z{2Cq7prZRCvuN~xO87rx|J_0Q8H?@DNTahu7T!`Cq|rGg!kd;w<8(GEa8k-t{b+Hj zez-d!jmmuulT1e=aK#jteB*zPCN8?i4$)+J*uy=V7`L%#WCxz4N6ymGNC-%eU0O7v zgRgDf(PN870R|4!(vAWhi$)0gvuHH`g3?b!qXaK1(F8#d1VIo4KQpv?pH*fLg8%>k M07*qoM6N<$f&<>%(EtDd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_star_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_star_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..adea8c341fd112993eca5251105404737a9eca4d GIT binary patch literal 358 zcmV-s0h#`ZP)ZY@*yXPo7tgw?88Hmp;{WL~ch-sWGp;_uZ6f^OmgIb|Nl3wqwn*1v7q{^udHNc}DGtKJFQH zK|@RKYbmbxBlnj&#iO@TrGMZ&)ZmHHt{PD=E~ndtG|H7^HAO+vqILC zBrRdxxXX-N7gi*=Yu`t=^m5xL2kt0!--t3J>aOg@ITu(<8VLu;r2qf`07*qoM6N<$ Ef);F;a{vGU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_star_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_star_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..0e819e2093e3ab0c5e8d3fddbf692d5aa9254a8a GIT binary patch literal 460 zcmV;-0WhAJj!rs*C3~qA0D$V+HwzqV%1D zcxpC^(R4hNl_w}hPsoC2dZ9S#hO@%dqyzmK&r;TKh^Huyo^XgYEM+|X=|D{ilb|td z=Oj0I#$V*vZ=P|3lWb=su@vDl@~F!cAr3h?iah8jIU#OYScQ_Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_star_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_star_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..5a1b2e3834b7eeae51609dc2756b81b76c7891ca GIT binary patch literal 658 zcmV;D0&V??P){`MBVp{uY3Gaw$y`=@LFFLe_(%m6Cbeobb zY`EyqaPuqGsiI3KDbZ|x6J7dEiS`y5?V&WUh>TuTl9h}X8I8A+QrswHcdZi4qrZ?{ zfAeU%6GVlM(RAO43Vox=wii{}S|R4LoQ>__P$#>>9iH*7@ANiaRB4<(zW1JI-RVlF zILw|lvAj9eVK>J*+x71EickG&kSL%*e)XwW-0ym4JJ!y!VG9F9lj~~>6|C-e(ZqhY zvMLtynP^gImAJM6?=9SEDqC=xyWnR_H=W3%xhjx|B zC1OTzTSKkZ@OCjr?CWAm|2bH_4$)Ig={1SWZiq0}&E}WKf^IQR7-DuwY$kkceT`V( s$HJzPIK(j;H=AP}uC1-Dt*u@Y0jn1$YIRnm`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_star_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_star_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..fcd0660984b089456b767e2215149cfffbe9a9fd GIT binary patch literal 852 zcmV-a1FQUrP)p>MXoiHHNshqQg0Xa*>jN}ht zK>je2O4(Hmo}E=lqmRVk`ACDxSV^?f3M%7n(Mor!h{;8(wU}HboFdxjBo#26Uqu`J zYB;60t!SsMm0W{&L_58soO3!R@VJ>-b9))L&MUzyf{{1@wajBr=sxMb3R_DhZA4MUi9A7(-&ixkKdC z9lDqEM{d@Zk{%8gIdzcqaDR?Z-t;u*`04+32i=?zVtqkY> zq*38!7lY?nGwF=kJSzszYznu%Fd*OBOoPs9w7Ktv0ohLBt`_}jac&Ne|1q4WMfB^c zbRRM=noC~h@~Y_5r)j1Y|7d%S^3-GpKMP?pg<4;@)HsSTuFHh=6l!M+DbhlAQ>)c# ewOXxK%cv)I$}mAFFDl6Z0000bNBMnl-$h65wbe?CO)^wg!Pr|$>y{2tkY>&y z-8s#Q?%gld{$lG@v0aJ{szgaFQz>ojqr3ckjLKzNv?!o3mZa5EUSlt5?UuJFOBiVd zQ&wJLITr4$kqBtbE`cJJ`reY|p?3d)S4T*M0(DXOedfNkW}RthL5OeY#w(M(tF z=ua>%g6S_awB;wZzR_0ZsLN|?yr!1yP>x%ex6MW!hLh?!J(U4Hc}}XKvc*;s1+bVx$^wO1OdyFi%NF+lI6-ygfSQ~H;EwE2 yoJd~LR|e?IJ0dA88+2xs`9e`v(^)>rmoFAUg6)WLs809*0000!j!d>z6v3T3b8FO}MGV%N z!4`>nbB0n*iF)&kQhtg0vb%D2jyzb%YPNQOW1Z~=4|v6=e$(G%_UY2i@o# z$2rh8R<~eO&VEjHvD-cF9pC!bFnJi}U*CGi<8F7cQ|%p{v4bJ%ZJ-^ZbJq92divkm zQJUp^r(V9ZT$E>Fud9dGEnN9nal5?T9@TM*$?`HOQzdtZ(eg0bevyr>^^;mZTSs=* z@Vk_Lw?@>)lD?G6Czedp&t8VWOaVz!RxYmE%IQHtOiATHd2cXBQ>Y1#c7e6$JOGoNX_3$ z8EJ%4{))7$pp=)bYIQFuWraw|;X3o5{bLsU`%h;MiBV$};;WjJORmSSb-I0>- zwfDBQq660Pw)Vb@bS!G3)_ORk%*N6~YZEORsn}0TK>CY!u*kf?eMkDYy7Hxjcp?Z$2cX) kqvlk{N41)onwpxX0w89|4&1)H@Bjb+07*qoM6N<$f_(%?0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_star_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_star_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..730d0f95aac3adf38d62e7c5666fb0341fb77c18 GIT binary patch literal 842 zcmV-Q1GW5#P)jspQA3W{om) zo^zwTjOaJN88OPr?qIhlCyhP^A8U*fUwu|!6=v{5St0Bt5vO2PKl!e=Lo%z9# zQFOM@mCd5qGS~cI!+pmYHABw-Bu28nrl4lP2bDH_ulld zYn+~^s@d00_AY`Ew-gStWyTw&1OrzZ#MZwE%- zSkv$N%kS2VzO#TI^oQ>(5ZN%TkEQmpDI+_^@`99JFji#C(C(DVoraF=X>ySi&e0Tk zv4_0v7WuNeU*+XjD@Ojz?Q41X+T4+bNqrz|@0c{wF`8#&>2V{cPv>uzm75J-%tCH= zEgJp7ezLM}^appz%AJv(WH6RkCztq~>#3`aIGynXFA3 zDOpd}){T^$C2MC!N?wz-S0f!G$-_vIij{QFyOy@JcXiK-k&2_#_lx}v9)B@}{r#f8 zBO?`$spk$8MGGc!hk723Gz{(!U3uTC(E+RaNLPMKl-5{C=YDgzA-gD!9qxCXTQE|v zm(Dz3%BaJX9?+RR`*SAo6Kh5{S<|OFa%<#Iqo1_(hvN+!Jz#hzsA=n4jgdDqY3m8o zMlYDr6WW?F@@6Y7ePKfleb~*7e5Iu=BX2JAznU|Q6n$i5XR7(%rRfrxXR^y<&FTff z2WiHNzp<6ZjC&7T`wmPPd9oHRFnZ*`7%s$`dDkN5jU1WRj!~&pDwRs5Qt75Y0mL{6 U^&}PhO8@`>07*qoM6N<$f`%)g;Q#;t literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_sync_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_sync_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..2094d6a5cb835e9db1bed2f331537b07aa0f637f GIT binary patch literal 384 zcmV-`0e}99P)_WLb6d83v$k~eY$Mlfp6uD*bbb2o-%fw``7+-0=}nVV zVw_i1Wl~ipRb^6DCf<4In5~9rz(uLs7tO}|Pm|Q7em+^#cxtf4_PZvn+tX;Om8Bkw z_-VBgQ}nM-=`hkA5g(1yqZYUHtxI(_N=?LJJ(%dHxT>qkx>_kBrYLks#3g0Ui`b{o zX%QQh*(KtvLNyVym6)BMO;wks)&OMO%)N#OD=g!{4_}qj)8!t7TJ&g~k0S0GsYB{hnv_^A zA|6|+mDH!ou~%Am)d7nPl}1zReUbV#lA5I1SE<`24H#yN;~si1t*e=&aa5I2RYp}A eRb`m0_xu8LSIn0GJUAu*0000A@BZhYB%Q+OjLKl2sLRGCqcRw67Ap!i9J36HeUTCqF%sks6Di!Wcq~uv zaCN=!%kPw2L~kyEx9C2de&r7F;FCeZiB z4F7Bu!Xd3mDw^qKm;%p;dpGnXr$9+DNfFUkB5Sc|X?C3AoJNA_i#QcaPBBLySt?8g zAG;z{{sbGsMv1j-QuTjW!WO+Us@pAB^ zPae{#BfP9?bdeb5b!r(ed3WQ(N%5#tBO&2;4UZAZfKI$nPXOy0FOdm6cQAz@ECruy zRqRnmHBv({O@+3oFRSrsQd7}SFb$kJ#V+Y8fhvAS2Sum2Ws-UnBq>FXE5yAgHp$aV zGm@O5m1Cs#OG1%ihO(^!vJ@zr36us#*ye;gKH}?RF|NnD9_xCn>#?p!>;DknskmsK TyxM&m00000NkvXXu0mjf1sT`Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_sync_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_sync_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..fd9432393659129a1fd35ba607bf275a7968283b GIT binary patch literal 700 zcmV;t0z>_YP)-If!fFyzD+t#p7YVKlEciO6VLl;+}+gh@y-~2~~=B(ye}FV#1@8 zFV0EHl;t!xzm`6YZ&GrYDDV2{nh_GmlgGbrPCf>#sq))85Kh{6E3ciJRml_d%#kTssb79;C> zqVNZ@))UxvWW7ohK1S9)0y~ea$BDwz$T~-0r;+s(QFs(t#|i8JvOXgUuOe$Jfvrc@ zzeM31x6kTv$f`;d${=eJf%QPvFrv^4SsmTJ>yPmO?lvPUFM+**u=pQWKO*ZqFA>5b zWR1YpAY@G>l-dZ3pK{ISRCXdQc+fu-k>l}9$^*2Vt>jPw`@`l`;_Adi!+oW z8O1j#H|NkzP2k7GL2*v1iV~VeejdW0cqi5197<>}{rQJ4d4tDL+>`Qf1O+OFm-hzW zCOttT_IWeOM%85}%CgqP;$bSV5@oC#vHE~g^kD|4JeZTnw>kJW2jAx4+Z=qGgKu;2 iZ4SQ8fo|M$ce((cb1#UdnmqUb0000hbpoQ^(T4=O6%5D8r(NMS9knYMmXRoQH?m|@V*snT z9jn4Y(uDp|q9lun!QfqINul8|my;Ppcq_17%W*n0Q+V&GFka7vCO_9a1U}PL&y_MY zJ3M#j(t0lS37O-eaK**$+?+m+o>k_1DD=WI3Av7mi-ND-yQBawNRL&z{A@hL$IacjHs*xrVjF?k`#A5 z71P=fn4$4{V&5dDO(ZaDM9VPoshrDD4=7MNh9G4Up)9w+N$D(Bp zT#{K#drn}YMaxvUB!!sv$-Y2RT#_8QXb0xGXqgF@WEayO6PO30Wno-WTui$_U{3is zNVr=@kJ#VHhT@VjV%k~)GhVdZfJ?TDX@hKECk@YVM^faCpqBl0!B8&Vz5$;|fdwv$ zwzF}?5;5rvR+xc&@JNFTG7{zHrMe16)F50i9QjV2154ZztsjvL`-~P-_G68a0e*&< zfPbd_Gov-uNX=Uz5JfTkVSFmcUFR-|u*f8gsOzNmC-9#NLw@$}fK}4-LMpI_gnk6# zq;Q>tSf&?77K{7{#6h7C&9F`)u6QWSA)yZeUkdIiO@xQSE>igr2oZ&*7>~M6J|6-h zqA<==;T==R>`TDEg8LJ@lwbxqyaYl`AqA%~-bFM^C?*9$PazElF|pKbR@0B_BozW7 zq>zYZ7{3*o3ebtS+7Pu*yXI}z5=LeiovLwNmR`ws%8?Z eXOgovbUFd$gX4|0EOYVxVuYRX*l$P({>ZmaEK&4;*#)+YY(^-wBZf~cmHU}+RU8uChe{7p8tO~ zRdTM;`{q-aqMKL!U@1Zdpf4h825~N2*wGO!AkuQn(^kl{-|EB55h7V5_C57y#{i22CH_Ub__`;L) QPyhe`07*qoM6N<$f^%`%4*&oF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_sync_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_sync_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..d5f9932c20f0c76a62209c695eb231d08c9a10e2 GIT binary patch literal 684 zcmV;d0#p5oP)z0v|_`)gXFC!=Y=>m(yP;;#+M!Lkp zF|^#FnxAb_TGABzb)U4Lm26@U4;Z7@Y-e?xlw-{2a4+h0N~cLZV|Vm2NV6T#VNygd z$D4sP#fF_FMWkd$W01bFKs4bXs|-%+4NBHCPU70A&w_^e#TtW?=rev#bEIiji@ID4 zez*4Er0Bzy5_d;E<}(^F%m#y!qAwpv6D$^WI9&S6+|hvTCC-UDyevHu4S8DnG^(?V zInuV#kliGfiK^@?{Su9t$0+IWsLIXKebE9BHM-KgA{`$saFq07ROM4?>u7;pq#vUy ze@ZJx3#>1Vj;hR&7LFEJT$&wKnISC}EwG?8C8{!3+9+CJMd|mb%8$~X(E?jEx>tKa zIz3w8IO&zB%3abE(E|5KH#d9MPc~09=2vO|sLCoxdq+dImF8G3s`H8TR5auf>E)=y zxk%eb1LiSYIwI<@n90%y&Hm-vz%all^EJ6H(&fHOg9az9 z;TOX!81=axX`J=?1`SSH#i7xJ1$=`v#`b-KGHIyT&=jPZj_DiJLDIfvgY=SZdxN@6 zI$f_f9B97Ypste6GFz`v9<+x|tzsd%PTJ2z6?AiY|5RGiA}%qyl%$M0-!T29YoiP1 zcapCSc1Lu{I*xIlw@fb~r$-?0000K|66X3hVw{BQRB1G;GvH`r%J<~*_}|8dDW0x)7 z?yg-qciV#QKdYw~ueQ7paZP=f@77{dcdz0qpY467t1Yk0z8AWyHsry}oN)K4JHras z=DEA<_IV#H6Z$CW^p|-K-)2`X_T^)m6Y?nQ;v75IGRG~)ed-c!sky|j$=dVgy;wc_ zw=?svsII#{xBpE~M)&iS<*u*KJYv5Yev$9=3@vL*t^%b^yo-7DCiI$zizMjPpVaF% ztMD!>7I~y~ll|hHn?4hBrCTG!ZyvfhWo?SAvAbd2w6~(ZmX$j9Z`dkW+s`VR{$`EF ziOx;ci!}95ZR>8zQLeV0^=V$tRgDu}oAMWF+Mg2ZZqm{CZ92=y(ac>W#q8#kZ|rAe zSZ9V_>s+Zt#DHOA_?Q)-rHP%&*xraoc5nF_>9=up8;j5B9GK=Mqgx`e)6AQ$&xwu ze<+z>HFGL+5_u4E^UAe*yK5AGAJn;Mm40eo?=}nBn>$taS-ukbzde1+(K-L7^=|k2 z!us6za`5wPW0&ffhBv{*Zt@aOTP8F7cAb6ZwRwvF%zft>7tjB&^5x>#z6)>L_ObWm z9SSV#+&1%|`>xp3UlM|~ej4XzS?#hl{G>S9an^>-adumM<}`${ckTIp23Qf8yimUr1jpQVQtt()$c3o7uPZ48<{}19S3j3^P6=2Lbd15#-(h3u?wT3oP&{jhd z1<4G(ckTBDsA1W!iGUQ-rztN;F`9Bin$c7cq!>*(AaHFmqs{oC@(=MNUw2FXX^cHN9lNS^xk507*qoM6N<$ Eg6DE)tN;K2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_unarchive_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_unarchive_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..9dcf14fca644cf4149cb11776c18aa78c8c1fef9 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D^PVn_Ar*{oubMg?4G?j?*lWyi zXC}9-@FJeCFYDVwGn#Lg6iojYFD3KH{6+Ngo;PYv0i6rxN~uSjn;WorE|1iW16+CY z*@AqNB!r(_KETx`I5BCC)iI`@rklG1(|cH$?i};Oi@@1&%t!Q5-D} zmy{N1F*7-YvK|o*6%<&1(pur(U;YcR9w1E~(5)y{A}Q#I&RYB2PZF)hNy5 zXpujc&n1(@XRUH=jdwy{M667rYPpL#XVuLoLfSjLuf0&^m}AQjkt>%mbD81?pw}2Y MUHx3vIVCg!0GeoB0RR91 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_unarchive_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_unarchive_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..875d199c4602ba982353bbe1e2824a13609e7850 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz-a90;uuoF`1X>b2TPzx>%;kX zHz;MeJ6_Y0cyr^;-t%S$m2OmD(<z2h8#h3s3*G<>A z*`#xNQ{CGF-|)ixGY9hL=kI!DeK2RX{w~IE#~IyT@0r4E{L19ns+d11tN%a#RBo|2 zPW#TZ)#uk-T7CJ`hc-jg=*KH#_PO-8=_MTRc>773=~p8E%HmxMVims1vHfz$l4Ofg zx_VUCk<%++tLloSy$mnsXa;wyJS|`V5`{LCrkpPH2r@ga;CWM~StYfYXVR3jh6DsA z9W?Y{^O#Yo2sHG<0q=k&p)DMbbtY7CFxx6!ZE2KR;&!LK;GKlxwv#ml=jQNUm|bw> kb;68k&T1N|k<(KDA69UFRIskY0vL)6p00i_>zopr0B~@e-~a#s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_unarchive_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_unarchive_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b4190199f3f60959f67f06cd1b5cc01d406ac520 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z_{4c#WAFU@$C)MX`+cDt`B>6 zyH{MZ6;5H{VfjA!;kz>o{S!F+3(D1xW^Vswopt?FboSl%N7k?U_W66kIm_pBiWeKq z)Qx$puK4`#6Cv%BcWmN>x$Xo%o4C-^MnPncx{so9I;ZLzA<3H#FYal5GMy;h@-A12 z`E=(l{vDJ5_&%-s{&Ue6{pV7zcJY_DZWKwBd%x>^q`R)>nTN&S7v3|RyGZ9j_4i79 z!|5%@3a2L|luNiP{pN5ho4}IQ!I2i`ozu?IR@QT4-b}6v{~X?BOi>-W60_MW8equb zD^trV83l%rs|*)iLwN-DuFPUwWFM;Oz~dImDc~F^%5l8nsg+@3+bKSQ%#~*tCbCWyRoJx1h{v;5 zizDV8|H{Ds0fhcn-(~Ka3AX=0ebd6f>f4qtW11&;TQ8V#cSo+KEQ|8%1WwL5M#2TN zT+}2hWo?p$IDMZh2`)V18k1tRQYVqu{HM1@Mg7i$QqvyHDFy~{+ZE223(E@BEPhM{ P#u|gCtDnm{r-UW||k0wldT1B8LpX-^l&kP5~(XEyRSB}lX+>T)bh z5s2+nENM8uqot4`ZNcJ1&KXT@zf`ZVKl$N&vihm&`L`M2A|WjsyOR1fUlvMhY@gA? z$6=}R?uvu^wz~ff6ZsS0oM!oReFnRxt!UN6OVJAzmhMnskeX$@VA`BH-wc+V`NZ|q z;S>iPJD$==bvmW-)ai5G-~4t_@fBJM0vf-&pS*AnY-C|Or|=}G@Wr!#TAO%Q9Wpu5 zt<$_`gX&hhNxd(RPR)ATD3_za#}s?&t;ucLK6Uc CZfbS_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_unarchive_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_unarchive_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..f6a04296f8e7c6b3ceb33e94257e393ba7a0c662 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DbDl1aAr*{ouQIYR1&XvjG;T2q zaJdl2bSt2N(}97-gHdsUQ%t~l4&$gJ}U8P(Mok?*N91n`~>rs6oj|96g^lj zqoH}5=gilmdm;~<`Q5@lqjG-0k@G;tkILD&7%WnEo*k(F+bm--`B0=_*pdxlEq3Cw pc3lYWVPu!P@-^YOL*%p@?B=dfDQ~8!`2c;!;OXk;vd$@?2>?EHZ7%=- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_unarchive_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_unarchive_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..24039b67e017e5f30a103eb30152b955cd5ce76d GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz-a90;uuoF`1Ty5TT7x$%f~>C zKz5BF20<$a2lJZ^9E&E4IP7v@=MW1Koes7m2a_6jn6;bdGcS9%$gMU=)1+|ET7LQ=1DPh zuXMZ^S1>{HlyveA*O}`K+nZ4e4bc=DD@MTq|VIw%er2zxh(KNPkAj^o3fSk1O03xA%lueR;@ZXyGfr z^k7udM#Z~d)Q>E7TzJF7XPcHtc;`vm)QKUW2~ENf$wdw@V~S1k{yaIVg7cxk_; zk8zpUhFz>PZXI|flJJTlY&t`*`UWeO8M_*e$|byF6Dw|5$-W_i*~hl!s6+x+!%?vW zu9l-B30{odst2YBi8(iDGOu~X5bPE)m2sI&LMZEuqNY&6gj0fHWeu9?5i=Q=F(v$D zTN3hXFU$e2OZiXCXRl~ruQ*_x^vQ4G4kw>=S|Zw=C%syejO;s)`m1TmSa%-PTY8XT zoj~(yo&YPJrwp8-UKR%eQV*)66*rkrdCPlz=H07rtbyTsZf88#Ozl+iN_j~42Cf{jCt{k%jSs`Dg z9k!^HYfcop;DI{bdWNK1orf+cG-JxtYSS}`w5e5Q2AtHaXBug8(v%c=6+#+(b+=Ex zY6zBBicG?4e-hV!YK*1Ezr_B>nu#;>J8{dX5UG|)e10hx$oDC&l1!@Vsmc8+0YcMp@uNqJ03eG$z_E8;$Te-0~Exjb*nEJPz8= z0J~y<8{kaTI|FV+y*>tcZQQ-6(3Iwwr_!$kWKil*BL9?&U~L%M|6ynkibK2BBoui+ z!5X>OC*Q<1@?O!xEw&k~+SW-AX`Sh+1&W;)mw(1X=M|e1`6}$NRi#`jEIE1sMroxy T^^F1700000NkvXXu0mjfmD#`D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..af23497f2082980e71690d871f3a8f89a3665a7c GIT binary patch literal 534 zcmV+x0_pvUP)AcN%%S-W;9YEg2lkT0&bnx#aHdsQVx4>Ux-En^Us9P~wYMvYfKR9KHNf#1fDAgxs@C6E$gM zjdy%N-dUrOADZGBPk5e~CRj6v_!@FZGXc`%#BhlN<{6@mHinqzfRgCSk%nZ$BC&g>J_FBFEc^xMz_#{`IOZnrUfr^P3%m!(26N0F3^gXIU_cyTNnu1q5-_jBr(VR zpC9rAju?!~rhQBU7vh>WVD|Mj4SQ%AOb2&ml{-2xnXrcjDY;E2I84M!{8g+FVH_uN zdr}D9yoLUyv8~Y0&J0or|4(szuZ2)?jR{PNu5grqqSz`NGfJvVePD&j4m8?pCD^MrVz>lIHYC7J8G#x2#{7!~9et&=)zX#xr-+>3CU=)l3 Y0Kc8?+do)pb^rhX07*qoM6N<$f>CDd*8l(j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..8cd2b8ab8eb8c4f786b36eb2fbe01955405ca1ae GIT binary patch literal 750 zcmV6i%SpaqMN^+S#X9&MD_nHo zI#v*Ml@7QFv!6u^(7S0isiY1$-2z=i(s%F1Ct5buDCNy-3)K z3%{)qVdDU8tVmgdpGJ$Ie)y}ONE!`VTM;sXK#UM+Z4pX~%W*xC)nX=xc=@vqF_W4^ zw$^9fM@r*ECT{sW{)z0^73Dybo&yxcE<2xmX5JzbFYwJUooC?;&|Hvdi4+L?Z2x|_#|bQ188P%6@D?MZPUkq0FFRQo zFy6@SHy9aoI)|~N3zn>+7#C#sMU0|4oi5msN?+78z*rj4McqJO)TAPkUh>djjE1ti z5yoKI-HRyPToQ*4Vz)hj2jfAJd>J>`KM>axI13 zoZu(N%-j@%ec{)BRxKp31UE-;d4M+uLrcyM%a-AVx%5nwJ{=OApROClE&bt zm0|e|8YeGizq!~f!Zyke#f{gg=J#DLoGl0c)p+3=aHVHl+Q#Y#8X*vY}l9 zU&kc;g_Tf|-EqItQ<`%&#HDA8gtQj!ND5+wi|X;YIM=@xKF9ED;UsJ6OHSfkO7Zh0 g{y7{Dhr{9c0eZNbp!yHz{{R3007*qoM6N<$g0I9|nE(I) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..dcfc2935077f04977bc1b9cd660da8f8be0ab312 GIT binary patch literal 1046 zcmV+x1nK*UP)O;f2?DCcZuI}G?~+ywJKjhC&%K*k1W<#6h_e5w zh*m}ZN0c3)CK;-te)w68z}5(|)K8%*87Rqa^=PIAnP{ONN$sH|mJ%#MROQl^OtmE! zQMH%^Rwg6Lh7rVYMA-z;8-pktPu`wl6#ub_bDU)p|1z2<$lEwX*%*}SlCA#qKZ0Ln ze#HOL$l*sS;PBLzEpQiPsBAA-#ZC zk|T(+&nQF#E+NX^#j7({6jS=Hc)f!tyHwcpQ$OyxOj%6jIFBg0KzZLaFC)qpQ-DE; zx`lY@$E;KET8O9{1bItX4R}AsR24yARZJfv>h_T!Pp=~A>x1cK1br`K>Vu%~Rq!j$ zAq0JmG0jBKHw#l^1bv4nj?X~EsuGyCBIw(SsRUxx0DM*=R;4kWN6>c;QyQ^qrTq`6 zw-lyxfu2ALv1$=M0}!i9V%mo2V;iQDwjZJ3U*blXW+D2Rjj2)4FR}d(VP8zIAo_R( zQ(yaQ`z6?isQVC8HAElPF?|%q9~le`G?bXCU$P4H6EZNW!Cd)_2Xke@8q7gM{cxK1 z@al>v>WtUB`r$MUD8!eDvLht%dI>3{7x7AR6jAnN^i#^75l$($@(>F3$Wl-0pTMtD z-jjNMq5^)8b5cF2uNVHZ$~f}&eC2||!&5@OX}#xayiTvv&qjAJii)g;n{rfpF07*qoM6N<$g2?yps{jB1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..574873fc95707aac05697200cff11305d7842d04 GIT binary patch literal 516 zcmV+f0{i`mP)Qn&L0f6?wvL^V#%mk`r>|v*h^|tjf=$M}X z`8Ctl!5CFu>fX!xT+k1}cXp>=Vn2?3F{+xB$VF)-l+NMcSycwWUoPCCegJiym6PN? zGffnmGv?^6hZ!!5?##YB)aM>qedk5V6Ht%sdwpGfF%+L`Znzy%u|L=$D*4g;r=x(k z{V1m#{`8sG0PkB8P|w_lR=z0e6YE3{`^|Irxw-!GGISdU`Kb(mh+ifE0000JP)#f$d*{vDdc5>pYIhnbN^M2*v8T?SM9q)L( zd}FW!Rxh)J1qY7!Oo%e#fPI6E=}AzQ_M_m^8WRei$$ z1w=Rhi=ta>nkK4Qx0Luxl-PeRP|bRpS3q>G1`*!US~Z$vp-70AOf^|M?TvT6S8Ys) zKlM?fi)|313X#>%hY7LN6h%72HX*7>G;m)+tT2kaq1FhI5dD#NfAaiA21;t>KOx_o zGNQGg{BNpefCfHF&yMB_dNz6DR{x|#_)||npY-p3T$N52$==t)?1cDM_+A6Riz3CRKu&mvuWz*>@)}?`SMY@rIA4Ez3gGIWFl+_@=n7JBovnWDbUiwewY?16`Kttab zA)XY;PEn=Dk|%960MN_tIg#IzJg=bU>Cg0u27qR6_rI{kqC%p|YiH;nX`n?3@qnsj zXLo01gtdmqGs=pDxKGsvSey{Q31Oqt6lsd33GtDB$^s*-EFe1g%~~faQ6GP%fA_1d zH%@zPjdZ!!Z4wDFQ8jAqT~VDSM72BL{|B0AVw%MVmY|ti{VVpnE#7s5B{@<32D`>1 zzVw@UHVR?2kKO5XZNPZTbE5tlb#xGA|HT&$P{Vc;|LetpBfizmVb<|>0Nv2>U_P4~ QS^xk507*qoM6N<$f`+mv=l}o! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_off_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..8453b757563f4feb751d8287d73ee1cc026f2515 GIT binary patch literal 895 zcmV-_1AzRAP)3bv?|Ng~wr$(CZQHhO6k^-9ZQIWBkJGhNlm13kSv_yL7H8NHHP~Q-4K`T4 zYb>wV)Zj)*M{glDxLuNZ59xYI>P@62wUtF0-X!L>oQ>@1KnL32dZt%jTT+LZG?lGf z?sKW=+C1X|n;T0_T3%-^X>T7%CGHuAn$r+fwyN$N(zxE0%G#^es1~(OjY-L~mQYn2 z*PN8xWd>EWmD-cKTwqicx2BGolalvMslry)F6ENmaGM>?Wn#@*O<-1AdpIQhU^x}E zS@x0@l7c37ieGa{-HuYHtoE0(l}%y{7fZRj(hwzgs3cWM;=q7(h7#LEl4?TQO3K~t z;w-64su^jY;Jvi0pqcyZOHY_a7Gr6Xa`vWS zgEw=|o(sOcKaeEfm{k@hR{G|iT1W7TPi*~M(u9ALzA&k*u>w%HSrloACxTzR53H#( zCV5mAkB8?1MOs-3wi95bf@9p0MM=xb+FJ^?uEIPe1 z!7n{3i@VDpJsJMxqRm~_2Y(!&mPo4iMR1s&Oz~V8fR2~Nw7x8nG(|4yK>yi@!KKYF z#wz$nk5o;1S-qU553Uz3R@l6b@tAKVZ|W$U^n)n`ts>=a-{{Us8KiDY5qCg9+P367 zClTpDC3bE=I!JuyBqp6_h!Pv>x`1@4F`_#s0qGQF)exQu|LRl|D^`oUrGT`*3R=}q zQm{vCWi}IN#Sr6K$|=4KzXV27VbjKk+;|zO7LDN&-Mx#%Ebi}ZB$o4HZzB!0j<AjCIGN@%}7CwX0W~k9OyuM*wo7A zHKt+}K1&Pxzbm*W@M~`%tu#m~n{*AmiFCULdJpNwjME!PzilG}%fMJY3P!;w004)A Vn8BzKg>GA&MZQqP$(1% zg+eZ#pcWAV>v;sB4v_#q{vQbe^g6=dt3tqhgdjmq_yh@h!dF=*BsqmUd4tMyWdze% zMlpFTVG;xBKs|oq4K8JSa_%R~gk5-yx{Rd|QLL1SROA{`|BZxu=tePOKk{hDtt7~i zD$0cO*^GGD8p?6()=tPrJZ=P!lfrj(lnIymkRZ(CZhRK8Pw==Q9OZXHBXvT7F9`*_ zMHC-JsjW=7+NT6zC~M2@-hn%^+vHf9_`0`1W_btrTLINb;5j(^8fL@Ccpu7Q75e6 z2(q*fa}gvb3Gj&e`>=#Vu*a^-|VLizQ5>6OXeC?&=`QJ%!TA6d^t)Y(x+WsLK90?Wq1uDC8s*c3>`o z_?oc!uQS+9IK6-u7@bMnMSGv^VIedCP=aZQLY>roQtSefv76MJhhc_BPMtc zQLdEJC_{{ChAKU)%L+O7f~kMND(tJ?T%RO0UX96R@(+sDPobZ7E>Cr+E^ThAy!La z+Jsmn+<+;CSZyQ@_aIi=1Jf)|pH%litadvNah4$#I}uY)#6!Xfh{fg-#l@?L#qPxP z8sZ`0PQ+qQ<0`=-M7^&t9g28JD37SOf+X&^*XsJu1dTl;Oh(ju3m5i(i%QrB(|&Bu zGT~4}y&1$Q!wD9zi$1^vHzHXjoWMr)$LX`k;3rQ%i?3My_813GzivOaW2QRcMVxLW zFJ}qM*dB#r$y2|e+XbfssY+p137a$g_*{e16NqwkaJMUu(V1y%LfFg1qp6_Bo zf3$yy%%ZgPoX`p@35Kh0YtA9Fn8$>Xq_DIH^VPozr>hd$XPvN+-Lc0ZEKw%p@c@~{ zEfVsL$3K`X9bs|h)P)0lN-%FQX0i_+9L{`oLLTpv%9zm2Dq#Y<;nD7lLe!hb3mjF( z<3GY2M4ix!9q>V#28h)bQilgQ5CDMfxs>;!;g`H7W?$1R}o)=Pi{H`9(h#D1)$1{V?mK0+M(h<{O< ztEtEYN)gqj@Ew;4qU=p{75}IFpxDBX!A*FcfU1KaJV9VZs8#mkheDxHDD*SDa>JsVQLM!P O0000CbS4gd)t*9>m+zq9g^OHSfHy`?SfCxwwhiXhu%1L`qdQAJ(Gwx|!xEm}x#t08P=~e3*fP`hgJjQ83MX7z&yq zt@$t&1+Cn7+KXCeK2!!tg|Hg+h-B`m>iog$1IgqTN%0mnz``*J)i<<|_e4(7Rvx>< zyhzO@yk1hs0%*)A!gwO7&N#TAmE9Btc!Ad)ipb)4D5+jJz?Z03TP2>MZ`EBkJP)0D#fEwr$&LR@K_JH>r|3ZLBs{6Q_!8vx{xpPEItB_x^}^n(=(&374Eomw3Qf zPoB=*FTtwQmM|PnVS~&uV3!r98>y*3Jaq~Z8rv_o*{ZnucoGXLC){I! z{MM@Bs$vuOBonh0GT+z5ChoT)O59mQg5GW{Ch&&UBoduf_oiFi>Q#T~X1CZZ4~6`E zXBR|?h(`<(Tkoxqn~xoUA`_RXFSf}GAcV6oY*jRWn(_M4kbFw6bf^h0)wwFnjYNXh{BS(-?U!vvRQ)19Pz7RtEXA}Rlc z;4y2X#C68u|7_|vDRW#_7WiJ;t4EhUXGbzIDI0%A+LvX4DbjAumTxDK7?h3OByCDr zV63#8%L1uH={+eJ_(IzA+46}b5*bfQ`?mZ$Ia|ta+4BF$o$yn>o1F2PlrE)D*@WB) zt)#pkD$-nRx5r90eTZP?>AZ78_dnI$fih1=wdzoT#+zBDaN@$E^`-7%GY1 z?n=L;?Vbv0Ua(25eyAk*cHe0_*zLoRo42eN8|;x#f#+gw)6Q`6HE|A1Jz{qfVc*Z&`@IVNsFEP$N;gWOAA=&qe0Bg;> Q2><{907*qoM6N<$f}V;lvj6}9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..49ce7480bb6bb1144577d0429fc9060a51c6c886 GIT binary patch literal 882 zcmV-&1C9KNP)ZCNr-UY+`Q*JJ^9XFr(hhP3p)enZ`D* z^rgz$Jm(@?8Yh~;iaJwC_VtNsJ?C(9>k*Byy2Ae_8Q=SA^SZSfjIv&nlX%`z(FmJ1 zJ&AkF6!o)B^OJPB$mmfoYwKuw5+9m6>SI;yB$M89hn>x1QvD4yk=bqQQ8_Z>`}tWb)MX&)gh%|QX3|dCiW5d%H*Z{NLs;cm2!G`O4!^b&~f$l=7s!5u(UXF3j0{^D$^PqKuZXQG@fsQ%e(F{)2;u$+~noL=6L_IQ+VZ}mx@&M&zF z^VW3XkLUC1lJxeKlnzrwWiFO>Vw5nwud7U&Dw%X}{2wEGU&?RBDO=HF4JW;toR*l; z?@}&}GUj)jCwz~$b<~{nlc^%jYSQ-4PEM*%Dp)4+93*Y~%;co{q=Tb6&X;ybesUt8 zbb%gG9X;J3?Q&z~CMTJs(`uc^o-FNmr<*h?Fu=WJk`AnIlJ<+7$82K`6B!txhw&}r zG+#q9X_Tms>3ynkrAdu4mdg~nH7U<*9_;3%JS%v4a7*fGJ@0mZQZ8y9M|x4U-gLA% ztgX;cQl9Z_?PAYsSIJKvccyhs6#uerQ2LqNvqVH)JnQ8VsJ{jQ=f>zC+X&H&dDU*pmz)sEiEm70Or>gyCW7ZhyVZp07*qo IM6N<$f@@E**#H0l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_off_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4d380d70b51d20c2f2a1dbc4e542ba965e3102c4 GIT binary patch literal 1189 zcmV;W1X}xvP)i*2BR6KqGLC+w0nLA&uRY$FG`#O)sQs(xKw z_MjV_?^yfT$n<`lf5JWxPw)pTIL1ACMGSbr0cO+jlSr_bOZCg5%em&)mRG{Tu>@24 zNG;yBuhD<(gl@IE-HJKfQjQKLOkaBfp0#Mb1Dbx|1a3A;y%SChC-kU?9-C;cXF{{1 zf(f(MDS=!3zrI%?p3tX0-nV4^0@|HOFkx)wWKRsmkl3_DzE`xw!o`#}jk|2F#tx*h18R3DWn|;!$y;yE#In=q7cUgm@sG97dn&dXxDER}{yt9U|p$?*T5vN4j^ zMP2MawI@{B!Fa+yQg%l4oTx5a>KJCirHCio?@y^V{_IY1&sxhUgA9K;PZLhK(r;4j zbUGfyz2Im|`)~S+Uz^^RF7_S}NT@dp`#|1uPWZnY8$F@fhI(>O$d^&vkb6SjEacfn zPw23c+j36GpV95(4YhjSNr8mCXfv;Kb;;r#hnrec)xSHlP5R;JG^+#LZ$Qk$_As5c z^bI=%P66`gH>R_Ry&da(H+ay?y7hX~)9!VRlkH|L^H!f*+9l_N{MiSJgd(9xaPZGD zVat>nIbp+;qx=)rOpVFWV5QWkG&yqc;TH;pLZR>}cb=hp*=FVV00000NkvXXu0mjf DI_g^M literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_visibility_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_visibility_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..df515b72efec14e9b646fb350b03297457d5e471 GIT binary patch literal 430 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_add_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..a84106b01fd4402e5d15b08c496a75b76e811999 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xf3?%cF6p=fS?83{ F1OO~S9V-9; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_add_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..d179ad296d57c7b6e5d52fb674e37d1e021ddef1 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^IUvl!3?yqky#4_x{s5m4S0IfH{P~{u0{N^ZL4Lsu z4h{bgY~ZRo2NVePba4!+V0?Ssm9fEq!QrAK;}V8h4Wy8rk7GwKWvtVPTh zc5e-txgr1b2@vqvesFr{h1`N82L66rC*Gak=5H?D-qX|b#y0Y!;BOv=4#pcRa&>e3 RE{lU);OXk;vd$@?2>^g)KN$c3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_add_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..60cbd9cb632c9f58fc7dd3379dda609390ca5f04 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^6F``e8A#skDEJMe*aCb)T!AzYEKT2e9!N2k1o;Is zI6S+N2IOdYx;TbZFeWeH>1hf~_@91(yO*n%%kY1DGxK4;3=Nm#D=w@Ma7_^DVParA VdDB(ycCsqSC{I^Emvv4FO#nC^B`*K~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_add_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..f38a8b4a941563fa6cbcf40ea27faf5b13465637 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^R8JSjkP61PHxCLr7%;dxsxEDr zvgAm~x4Tc77FVdQ&MBb@07vc`*Z=?k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_add_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..2f479f2477f13d886812c13373519a6251405426 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^IUvl!3?yqky#4_x{s5m4S0Mc#3G_SN%K!?omIV0) zGdMK-Kd^zT>KsrY)YHW=q=ND7byvm)0|tkSj*LqfW;K{Ds8_#p_v`-O`_HH|Jg^oq zU)a4hWafta(7&;hltjN{P T@w+Szw1C0W)z4*}Q$iB}1VKwv literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_add_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..7e699137220bb79450d0d9d5f361c9d1d00ed593 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^6F`^|NHCnYy)O!+m`Z~Df*BafCZDwc^0Yi%978G? zlNa#xGzBL7Prtz3%hk(e_`kiG`LJJxhRg947gh+kCW!PfF|eJy=_+?SSrufKr>mdK II;Vst04bp$H~;_u literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_archive_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_archive_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..5f17342eb42f6e6a59854cc7d1d4b10c664d5443 GIT binary patch literal 346 zcmV-g0j2(lP)IIq@X~dELbdAG(b~8GJsql_gPdSH|QODhdo9qRD;xt0IgKr^V}1-6hF>bhgb=w2XEkDt^w^paox4YR?tzZ25QI0bh-tCdj+8yG&TUrb5SojZE!V*?f9j*R5tm3#T zVFSbVOgX11`v@$8Qz{-)E`o}|lq&(dQmNjU&`@Gi4dR6IO~&1o%j$1;pwT&ZWwg8w60 sE!nw1JC<~4Ou>TCV+#t#q*4R!2TfZvP^^80z14xkt6H%UqO=_SvJmUFL>pwvYX_m?8)9KS}$lP3C@R`&nnPJhk@OjQ5hU%WD$$ zS=vT@ZTfld<>EIz`DebnbjxjQ@#Qc}o6dC0Q0)qj_pP3Q`pgBQ3%_M9uwAH=&#D#B zXcgDUwWL}jppol}!J`>&CPot)p2(P<@MP)}c%s7S&QUa}L7BzU^MGK}9F+$gj($P~ zEeh(K7ETi;KbpgXmtdJNdCp|cuJsPAx0V!|wfyp7t`&Tx$ZMh)((lTZ?%1E;JZ*0A qG@i_h4Vu2`Gukwnm4IFj{r|?-sh({{n*lH=89ZJ6T-G@yGywpy{F90R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_archive_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_archive_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..f8e600f3b49efbee7b8b9182cf70e1a03ad41181 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5FuwP6aSW+oe0x)MN@$`;+e7j4 z^D1*J1Xo5ZTEB9~?%iK~4r&YM$2%W0dY8xgKT~?U?f;wU?eG8oiu%5@jA!YTATQ0O zSMI+$pA)v(zF_rC-~Y=3y?1(NCYDEf*-K?9*iI3_#H`C(!Stlv zrwndoD1F!1c2DYm|8dP57AOBrD_i&O|6?z&OKTbHgDa+see09lVeRU<=dy+L!QEFj zeD67M)yeCV?xCx1mlEBUQ5*QHJjqc zpfe+FO~s6hOc4hS7PD?>N_68+U_IO;c7Ur*Qnx{r$2f{XTOw@>Lzuyt48}DHSQK`( zOP)RN#ce!m{#4O46MJp#GZ}SZVKXlNS+mAq@z2P}M7PhIHy!GEmY&)wc{V~bv2NDJ zqC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_archive_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_archive_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..08e1cf68f50af7832bfce6f1d246b4040ffc519a GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFx7jyIEGX(zP)8EAr~#;_OLWI z?&!9w?V&l}Hs;RT=QC9=O)?}<`u4Wm`CpdbTl}{s`+M{E;{r>k1bJyfiBlWJ);tq= z-=R7?d`_Be@{hSptIx6}oqW#GtFc1QMlmd5-i21CtmD#2uFqosxtQ*BUUR`_fu7|z zarX|<*^~dc=Dqa@``4Q{Wp%xUyVsWHIZ-Y?Xw|LSTdPx%&hONt ze>ESxDZl%knzrp3`6*k&Y`nL9V~+h~TXuJ$TIxFE_m>|>mPP+zf4T8Bv#dt--XA_y zd4I)cZkhNZrL3WLaz|g9+A-5-bF~-nn;hGc>yo}%_HdN&-Lw2r3D<%a9gggZ{2j|A zdt^sz{l)-6 zx#$I40Bec|p$*VI+j&Z4rW`9G_q84`t z&cH*;3tBWD3I;fdbTDa^A$u<6n)P&>_Xe+Lc`wMGvGu&_1-mn|o(pBjrI{9UUXeL$ zw)^qTp3JX5A9Ouu{%V-FL3=^tjpH)rHpM4aJgiw~b1uDYLSk>^;ptqD*DPe5`Q85U ujl)a1VjK26HQFt4e!m7%(g|t%%km_Ezxu)@x0ApW$>8bg=d#Wzp$Py;lOb;a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_archive_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_archive_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b0f8156419b07463f39bcfc391718354c61d169e GIT binary patch literal 344 zcmV-e0jK_nP);?8dLxR0Q@6bE!F(R0T<(dIy312WUyPfUqjLH4| z0S+GroD-UwPCqxw#NF%%of$i%v9sN=M~C*bD>Ve~u0le(KEZIe!z+Bb4T&jzW2GBA z*iwNH6X~l!<@#^zMb4f>eJDw44{7pKxODn;0mLPc(jxnc`7CmoA( zaViVOTsy4OHs_caGwn4sBLf!a;#4k-sj1qUH%L$Jdi7XK?pmQfZ*uk;`=aK*#QF>@ q zc*;&?S(atoFeR=9uUsF(xnoUqYi{@DT(RUBExFu>bHOid_a!7wc%$uy^RioXnbP)L z!s3(<+NN~MF7ZO!JKYi(XMEH4RD3*Aqmktd*-)bmLkF5rtBC{sQLBXmZK>7Pfhv}u z1SROWB`86GhXf@kK@Ed)Kn!SNL7wC}9^^@$6Akht&+#Bj@|<{(CwYzsS(4|(gFMM| zJjjwfCm!TUp5sBDBsei3PZFFMkS7UF49JrNCkEt6f)fMsB*6&*c~S#)LB0efXhp47 z4)jT_z8vU*T8$j2!;Biu=oA-y<{Y~@{oJHyJr$koQPB`(brVm-Q9Yo;FXE5uOVX@cejFn#0`w^ci+Byz4iZg55Md8 zoT8LcN-3q38X$(Vn9UpyoXsp|c&kxsc}g8UWi7*6#TrQ$b=JkG*1#@Pcb7}`v6Bq# zt(vu*Us$V4Sd8Tc)^C=V>S8Wmu#T6|n8YotFDxw8#5C?>U1wMcjv3s?dd#%ae2kzQ z>n`I;4Kb5vSltyoA32W&7dc+jT&wi?$VRfZrTAkG-^kiG7WiS8$lPTwYXaZM+;=AU zU@OVqDj#es+1u)a9V2_ke6ZtW@3>%sA(&u-2_~3ef(a&=VE)P=sv0JkV1fxIm|%i6 z7~A6A=SDotXz{E7n9*Wc0WhP*vI1a6i)97Cj26oZfEg{46#_F_94iQBv?x{>%xE#J zK$y`YSWz&e1+ZdaMhjrY!i*Nciia7^&&mojnxB;vW;8!5Da>eoR#KSJ{H&xfqxo4$ zVMg<_a>9&etTuod%~)*$Gn%p517@^_wrT|vOfbRn!48wXBR<$#vbWX;TSE4h`d}mY zNaj8=qWI!8nLAy)F@gJJ?E&M9KW6imjJ;)cX)YG>ifp}NVQD_5a*mf|=_TiwQmTs% rIyubo8s`w5bQGnOQc5YMRPX%(G3ByI4ByV|00000NkvXXu0mjfc0~Oa literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_archive_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_archive_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..2ee073ed27944403175f380e105d0bb4d8863a4b GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFqM0{IEGX(zP-wr63QrY>|=8p zgQ|98+_-#DLA+5unF_8XU3PWiC)Y6b>7#zb#l$)6{WA){4HN?TzXituIP$! zw)}R>1ut8d9$~G!SaKlg_x-Kzm(`c)Xs-J(dzm2j-MZ^$#?vIsf4E=v%kG|;RfUY@V;6@4w%?;i5$NRr|430`hzB314MoQ>{29Qw*K;ohPRPOjQwt^6Th zE-u>O>KZN9TB{`$Ez%XF;Ls@Iffs4yG&5;VKu0@ejcv*mK3u63Vqx;1tL})4d8X2c zh3Wikb$5jiYbrMZnKRY>6+ZM-8nH5+pROLR@FAyi6OcJoJzn91Po)tX)A`Bj=?Wio zDmMX{6V>w-KJZi;u`}_X2(}WaaF}^JWg z&`I>ZVbrAVDam;vDfOD@L0@LMO~PWK&-@wt5AO69>#*hyd2!P1-pyl+g+kk-PrQic zJJ8ds@}+mq?s*z(+_fgQE}flltVhx~?aU0r>%KJaH?>X z!QGn+f4eMWD0E&j(^KGO<8J@H1ZYTywI>7I_oTk&ot<}N u<}Kc(uZ#BIsZl(0=iVD9pv}7$$*x|`yu#)4HASGq89ZJ6T-G@yGywoaB2I4r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..908ee60e3120397e668e5b41e25d21fa9bb63911 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq%^o1QL?Ar*{o&mYWW3Y2iWc%Dlo zQ-gWk8&$@QP2opHCab*N(XTD8oXpMF^WWL>dsu;z=OmTPUb{0oyUuyv`#kaC`NVynW^Ui}ObhBulVbZ+9zL}f!f#Fj PgO0(|)z4*}Q$iB}7ZPwC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..994adf0d708cca14309746e07e39883b4b94845f GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+E>9Q7kP61PXAg2VJBYA7Y&Y)~ z&`I>ZVbrAVDam;vDfQY^R(0Nr3)^*8{V`^(S$0KMS-_mnbcMNg^x8dIfuR;+UQvDr zT6&i>x$iFd;&Oa1zjuWf|G^ecVKtu_28oASIA?z_`MH77znTB_2^rnXGxgK@%x0TQ s*`<8@_SidF^`cORHQ$zHS8{(b&o}X6j=Rhs0(2FFr>mdKI;Vst044-P8~^|S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..498b52f659c35e64ef3511e0ab23c4400c0b64a7 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!OFdm2Ln;{GUf9U%$SBcpP`p?6 zM&G4*hZw5LF4VhC(AYEoPH(~KR}2gbZiV;TeP8jdsA|5-bNNZX1e;hmg;YEQHY{or zRPmUg;0Wfw$cG5S_;3jX_lw|ZhKC-~KG_Uq~)@GlOx2vLG?+o3Y rx+yDq?yBnh#q0g9mi+{}wSrOUtnF0Y$gPP$2QzrO`njxgN@xNAU0P63 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..4bb6d9cee9f5f8acd392be75387a2cdc0fb9ac84 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq%^Tb?eCAr*{o&mUBDaTH;_IFH4_ z;XqarW5yrdEc(%b5fW0>YbkXT;p%I-6@;X gzCdSQs;*`X?tkWfbn!(2pf4FbUHx3vIVCg!07poEumAu6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..ceee96a99ba2d760574da71bd946821fd0953cce GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFv@wlIEGX(zP;dR$`ByJdO)7B zjNu653I~P_;m(Y#3Cr0hFfqg&mt&AiS36_^)W*=TYtyXr5r5y?YX4j#YP&x2;^&o0 zw*6sW{=#7kznVBRXgK_N!A)h8Wy?btrT< zTE98+^jG~SYnHD6EBf+W%(l(bFV}3J{3hM_^UIw5JRrY5U|gnW+_fmMHxR`0boFyt I=akR{0K0{C9smFU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..25678d6de970f4cf8d98452f9f2d184b7b126530 GIT binary patch literal 304 zcmV-00nh%4P)6_%g=JPwp^mikG-9oSGg>A)DUNEQ7GKnBdXOc zb-7*PQXg=G1UmhNg)4f(jS}LD8t3f6_9=hBO%bj@$qo^YE~3;Z;VO{SDA^HJTF32k z>v2a-zd`jA_y?&$ODY5>#aL1cp884&mek76p++sK@LxxzSW@d&RE!-3MRpVv*-=pR zeo7OY5=tGLA_{CU6$*;%C@8X{Ae5pWq0000 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..82f8563d1e2af42787d9f75cbed64d07b1358815 GIT binary patch literal 299 zcmV+`0o4A9P)Q9~FOH2gL;-(VWx_F#oH%==NEt|;90SRjV<5S545S`k zj)COD@g^BK22#5t$M6_M!O0iSj2fpnIKk26l&f(zf)kwJ1SdFo%31zv4qxPy^5=4%P)ozBbNenHI@1Es|wgB+Il&mT8eJ(*jrl zv{TKXh0}(qv?nd8+7|V_iw?9wz5nM?8$D=eH6Oc&9<=RxStZ(KLwBseD$%Z5d=<^= zM;oiUj{RvrXzK-9!z}N>;qFuMoD$|;0nYLP{waW7DinNAVW!g<^tTL_ojykhU zTdtio?TqqnP0M1HX#p(L7UEd_A9z@>MzCPbGgz>usjNd-b848%dWQuI7A#natU)U4 z4Hhg|u>Lt~E0y&M3)WwQ1#2^pRJ1r+gex5nWW+gLQCpzMa{jw zWY_t-*E4&w6lJeDmlp3{x%ZOH`8B)rt5?0fq{P4IOtZ#E1umNoCjLbSnl(N^nO~1I zzgT4D(or`xLp<<*UUtih`sY`r7ro9}F?rXjvyGkiq90YRUH6Vnttz{Fx%8ZjJ5uK_ zxTL@R$m40UF0k9iSC$W75)X8@<1#bQVkQs jLVG@3IR_GoDzyv`b*-KC%d=hrqlUrL)z4*}Q$iB}4BWod literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..d0f8e0805277add845f4b5ab95d740c52d9a2f76 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+AD%9bAr*{ouNYUgIf^(uT;HF2 zB~aA7aH`s^>>RU=XL*mDJ6W7u{OsQ>WA2LMaT}f$P4wQuC*rAI;4ryXtIhM>?nM{% zM9<4KFu4nPdq~OTdRWQ4%&9%G^+nN3HT`ON*Z3mVXDd7(O!%apH~sq88B3Q;R@eJ2 zYVNq>qWYgBq5B@Ebr`vx{kY5cRa{~Bkz0$Fbc^3n;Jmg%eciq4Q+legmomQX{<|x& z_=-@xxm$%mknpT23)SZ=@my>DN`B%p&)nbqri(p~vdK(c>iIS^(9>&*%Tg)T86fmk zb(_W%zHJ^&iCzY#V5I7$H0zYP@;UBPG3%mvf|fjPJF-w07zPZUu6{1-oD!M<1$cf8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..340b50527071302d0fd985037992d2d43e25064f GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawK6tt~hEy=VJ=eIjiBW|0LC~Zp zw)t)9ObUz{4PqISwq^7wsZ8;h7|_ASsmNeu$vj2+-|HoxeLqZn6FoyR>c{nye-gQ) z9)&Ob+-%(8m!VbqqM*vygr!TRjZoQ%|+#jX`PZ0jJ)uc+H&auyXos&MB9y zn3fi_=ViPu$>=(@yyVWz)upT6?O1$sTluH^G9^;qQ`Bs&Qrl$Q35Vfi@YLfvNxi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..675e379255649176b4b0d865a2af8ac3b1e23f2d GIT binary patch literal 413 zcmV;O0b>4%P)Z*s3X$YGu9d*eu!X_+k3B3Y(IvP_F)nU=^hEr1n3 z(}e^roHk6Qy=bjo$m*|~Yt7%F-uHRdP6yg$&EM{+18uKfR*81g(2NyWCE9I+ThXkJ zv~hi`GyTl8?Em3%Xd4mP3AIEZ<1hNbZWEmF7GAxi~SQl0t%&a(=S#dD4;$UWF!OS{r z0A*Mp%dkL}VSy~e0$GLyvJ8u3IrTO9A5xTTIL{a|zbdbdl3k|0P< z@FAy*b_J8*JRgucP8Sd}aCybQD~=T(9vp0D=byLNjDOzpqmO{>^Rctp&r8YKKxIIT z8e<^wW?SV48$B_8puoG^HWg+djmxXy>gEZ+;RXLs470XZFr3X!f1z)qhzFj9hT+TF b00xG$Z9c-fI`{K{F~i{L>gTe~DWM4fVc)Uq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_folder_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_folder_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..046312764202b9a48b9005e18074fd1df715926f GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^CQlc~kP61PH#YJ%81T3RZZtY`AuqBpF1W}my&A$C^!k)IK6bJCAi zhRtD*yWF+yNt3PhrbFk}7_hVPNEjp>XlRuJk&Mhx?pDr#vvDDtea+|?tL^6E d;!<47+$RvDcaP`xPM~WTJYD@<);T3K0RStDL=6A{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_folder_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_folder_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..e13aea3a4ed64af0bfc71ce4ed7957e37d07163f GIT binary patch literal 248 zcmVdHRo0qfC1eQK1rIb?1H6_qs zA8pO(&DdjKY{jTeC^5_rX^vr@NG0Zrbi{m-PFTb>1ab$U-VPMLK*olNFOaeH2HNqo z^It%nH<0}f66lf|NFaf(0u2NSbW05+kU)2V27&}KfdmprAc6XI-tL&Kx5H}T?b6Gr yqH`)TUQ|#=<QFWTH$!6p0000z*!-Ar*{oZ*S~n3KU?u$dsPE zgSX%K`cZW&1}29H4;IF<$;{m!udbTKG4Fo!ObA$;m-Nsv>~7=3UyuFj3aZ<(4o{q5 zcdKuL+pX4;OZS#c7Q5u>t*yIu%a%)*ynqbn`^~K@1;q}{-6z!8gE}1Y5vUg m{h{-Uf&OA@XCNRaRepkN@zVu8`B6YGGI+ZBxvXqTRh zJ9Ae);B!7;Y?3aL;nS|-;lkf2)7yFbuF{s>?~B*|oh$gKdaYN!>;B0qo|7PG+fz5Y zC*I38-CAaQ@a?p zKDpH7s!N#mrkQWpL+)ieY%LQBsN}y~FnKD|FOC&^-UBr-g(T;)GnufiXm@B}V4THv zWj}~!GGT@au)+k`SJXEGC0H`#0{B6UEetRLL8t%=Oh6JUzyuQz6;J@1%CcgSL$I8= z=J&-x4)&J{7Efi8@;z+3O60;~lRF!|7-jv1dqdjNReZPF8&7>O^W;C1n@hbIVm-KR zC93AJXKu`%DIYcGXN;e;)g19i38y*YmJ_yZ-TUG9nuE7e_C33M-+!AoG;~!wqnP)b WIYeBr4vGiH8-u5-pUXO@geCw^YrO~n literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_folder_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_folder_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..887bad760fb6a7a168f3564276f6f9fa97e8f0f3 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^Do+>3kP61P=Qj#AIWRCdzPTCE z?%~zyVI7ejz&mgLZN4(gi7K8=++lC(isf~`eXzeiF-d=h9=ky--?B3Yr&uQ6-uTEU znkQkl>9;wi%OW-=9qkg;4qF3av;~2wF45b)`TuQ>9saTHsq~JA2J@I-Pg3zb_mo%L Wq4%ypEPn#f6%3xPelF{r5}E-2C`3;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_folder_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_folder_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d5142e476dcfdec1cdd068a57c492ee4c32fec69 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawc6quuhEy=Vy8~`$#ksqYURZhYd?Nur^IKy-+7n@=*TkHHSZZ zLN8`Xdnh#K^>`~ZzT4TzBJ|?m4j`clWC4Y%vaQq7b0c)u>h7I1>&n$Bc@|8(n%Nxh oYAcjvHD7g9ET0nOm3mG1@P+Ns!9C}DfxckyboFyt=akR{0GH-qO#lD@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_folder_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_folder_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..269cec8ec0d4bbf6f9541ab198fcce111402bec8 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq%^OP(%{Ar*{oZ*LTJ3}j#lY>@i% ziDPNeSw>5h1ssnAy%^`&8q40P*`5Xk>)oa+R>x(>$gMs;t=vSbJ2ah3z^nQLkSbOqL&>yx6F^_ZmM2|-ndxPL{Yw;P{I z)iUAUXKTG9jw;f+2$ zoi~(@xyT45EA?giEq}AY&Hg;ENcmZr`8*=!p357HBuxYEFv~8Km@}b^+fGU&@1n!b z8uNfV6&fPTm!uqaDE!UVWo;ZFlggj6z&Pu;1Dnx=#&av9K@?BQ0&b{?9$ZBG)ij`l z0<+|cS+@+qYNX*J)1V^OaFKaX5q6k}1}B?Qz(cSBCmhzbR^NHjFh!=tX``o?ne)OK z3aY{j1O6ze+B-jtP!jcCC{gp|kn`lgk_k=Q0&I?DlqD}T`BLD!dDk-IDShkD6h1!q uRwM4%{dCg_!DW%X^K+)dLUU5kXAY-Vt96emJ<9+_5re0zpUXO@geCx%G_nH# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_forward_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_forward_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e5deca8d32d2320a00b5ffb341931c25cd5578ac GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^JWm(LkP61PHyb$_6nG98_}_p2 zmAh~$D?dla3!6|NNN!C$iVQzW_qD&)mS4ifPsc}oZl-GVy3YE(AHwjwmP%X70Xo0Qnt{|JYnhaB!-fGSO h5-$_ASbskL#W0cO#M((0vWh@X@pScbS?83{1OPG5%UR)2!BXt`Og&y*{W|{} zw%^=m5*Vd7h|W03WR{?9(9D{1AS{86`$moZUS$NYVeJ7Pu?>vTjgmSE%-fiXGhh8v zeR}Ka+tO2;L(8WJ-HR>FSABY0q{Q*2B3tnFQqA3=vD4YlB)m!sJ#gpj73uUJCr>i3 W>t3G4>EaUta=53fpUXO@geCynZ&bwq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_forward_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_forward_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..2881ee5edacf092da5d4534ed26995c92e46c22c GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^6F``W8A#63;L-+CoB=)|u0R?Bnv-810J4}$g8YIR z8fI(zNdS45JzX3_Dj46KTFA)6$iw33<=q*6WabhtE(SxU#vfa)*Vn&z`7)EmHGp;P z0%=FV5J&A7ZUHQz7r1r_ia3gHY05*A`kh;2(xkMaDeOY;0*+M+L`#%4nzS-l?{ai4 z;EHlIN0Rz0xoQDN)%JKf7Y3(59_OedZW>HGPPTq@m)&!7%Bq=Z%*&#zHajn{^4r|* z`1QycIqj>P&5afEW<9zZXS{e>6T9((g-trf9~L(S8apg&D%-5!D4KVMN&NV=YuCP8 YF-FDR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_forward_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_forward_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..de1b1d8b72bc7155a7277944214dc426fe96d8f9 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^a!(h>kP61PHyb${3?HOIx>3erGFuMQw#| z!0ZKPj=4>@ShjLzfdwuwdp32=QBXg@S=59?{WP|8^qV03gvC;^s6$4n{RD`50<`G^ YYu^F0`*QI&{eT<>Pgg&ebxsLQ0PkBuEC2ui literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_forward_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_forward_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..9692597fcb0d41455aa7e6161659da14d9def036 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^IUvl$3?x5s?2iLdoB=)|u0Z-f7!+45O$Kt9N`m}? z85(A5`$+(KQ$1ZALn;{GUR^DE#DT~8VuR|f6#&n?uW|2i=P;%~ySTTcpJCrXpML^-|5>=o(sA16;T Yuj^i(#p&V`0(2mQr>mdKI;Vst0P{jxBLDyZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_forward_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_forward_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..7a99efc812c66bb09c89b734c98508b69080004f GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^6F``W8A#63;L-+CoB=)|u0Z-f7!+45O$Kt9N`m}? z85(A5`$+(Kmpxq^Ln;{GoLb1p#K^!4OC77j6M8p%=Jz35qz1ZfVLxlKP!nW74FwqABb`?*fih3q(tlHJY?CSnqOl zE#QiBG)I#9E4gX`N7eRtITr?}Kpy9)BW@Z@J5IKKbeG+8bIPijY0S%_tTsC@u=3m7 z?)de{89D8%o6U_C@@74{8fUzCSrfbQf`v^w#vc|p1sXdnYbx8U;3%4RhDrSRwQJYD aTQNq)3$V>H6RHP#kHOQ`&t;ucLK6U6Ic_5W literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b52a4948769b9411794358775aa6789b4fd45e67 GIT binary patch literal 373 zcmV-*0gC>KP)}| zlM`-@ekT+u;6oeN+#3I`=>(;cLvAzp9Z-!>%WX!#Muef)joT)Qo!7Z>go)RUW%O{7 zN_0*yx!0xHAlU;R8;MmLcmUC5542K>Eh^Cp5GI=x8C0?m<8ruSkqU?>TfyUvJbRH; zd*pe;V*_@ME$mX5QLN=b6Y#gB}Gg%WtH3!*!GAW&zd<=HsLxH0GXRgEH__N#rWnG%C Tq3#v~00000NkvXXu0mjf<>r@Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..c652f9965a3b7556bc8e784658b8b3a1537ac7e2 GIT binary patch literal 421 zcmV;W0b2fvP)1)LM z9>5b{l261>5ClOG^p0~1*3=HOreH*ZE8eIb=ba242F$6Q=a~U2*VOpWEh_Vq2)&~6 zaT1{ll`mv%%JygqTc*@9&4l2R2llPY?0Dn?EJ6TdmaXb683Wjb;EX$}R%AZ8X9#v7 zA*Vc8rzA&cDDvx;hU}ns?8PR7brXGKPW5d|9;nGFRadPWcgK@j`_v@-U;vsxW5 P00000NkvXXu0mjfj)t{r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..4c5be9397dcbc041ed87e7a4076f136e22003ed9 GIT binary patch literal 587 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5FbR3OIEGX(zMakJ-W(|5*3Tru zuuxD%#bpB53Wp2!EB^t)aC z*k^Ye9+OD!0TEVdow9lri=;MGK5B}cmf4+oZY5jIxtR;qHroV<8uXtDZ03Bol53_~ za7wXL=!H2GPb!5bZuS$aKH4ce;b>}Ml6lHS9ltj-b>a>^QY&XxEA#7^yPekzc^mwW#sz2pnxT@! z_{GIXezJ>BmFlv7PbD#1vCGF*jyY+46T8-zA#f4MR=V`SLq%-AW2KLi&Lwph1+nvc zOw>9fj-*E^EUSEM(WLLEAl84%?a_)C$r~ryyo%g&+_lyx>&PR6ypAI*hJnYOfChIy zm>Js5X*XlvrpTHWQ%4_`jTgE(lNNQf#`y>eJL-H%S~Y_sX`!g_(UitkE1+C$n`t0O zQI}?t5=fDNuqRN_uNf&vobgTe~DWM4fgY4bkvhJpJcNB8mCWhW|5-q;=ddHbIKch)R@67s#%>qo!g zF^S|JBqELXdBtJzUn`?(e*HLN!1l*?fU*onC0}2qb{dUNu@-omDg0rNo8v)_SBqoMe@nS6Zg@z_Gp7U#w>Dj3ljF@DmwUAQ)AZuFBs1nF53a>J0xBKb6izWY zHf3lpS|cdZzs&~7`IT`TC}XmsV?|yiSZeVaaiEkEQ0fs#O31`TbY{gC)<7{1A(v>8 z)V&L;7U_0xiVLv4IL$Ruf5kSCB2g0`G({C#L?Jo^QX3T#w>$=Nqy%$9y1))Nm9bnS zI-u*@mcVTbMBY|R+1j)veC0Bb;Ds;Aj$$c}VkT*hydpq4#qqJ&l|4;5CqPI|XGJ5J znQ^IUR@emANFWMe^nyr2NT=zozuhL=cL{xI&e_!^bj8)oyj!Sba?Upq)eL<`tL}@J zJv-L&h%HQ?u$IL#uw_B=k%v{cU++9;V|m!)_9@ASDyADI|E~LSF=tKg;^XPHPeZF} irXeLaaOz|G$Ee?QOQZfr);VC(X7F_Nb6Mw<&;$Sq=}gH0 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_outline_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_outline_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e617edc6ad415b7ac53f7daaf0a1acf87ca6b00a GIT binary patch literal 377 zcmV-<0fzpGP)nF|fcGAf)*I^Ub!|zSfaJ2cn=~`o+`^n` z_IAye|fj^LCXD@w4rpdmP?VTwV)CjtL#8K5{L^ptZHH|^nq+98W} z-VDWUd-%gEC;W$k7i9mnEt71h_$w6~nG}~v-Wih0kT*5QklhhfzPRRyt{ij4Hz7?n z+4~G@Ms#7sdT$MrZZcVL$HLgZkIC*uX5O@l7earD6q)Qm7e*IC?>Ipw!rVFDB;VhHFNFjQbLBT0_ z$sCBw>MZk+J!P4P>^aLkWHUMRN$l_Un9x(kCxhkfA>D+IxPBr1LM@yuw9`wm$VJ5U3#rIO z#Pth_$VJ2jgsd4EafZ-dEa}KC;)aAQa*Mc8A&cB1ZeGY}z0kJ{xlp2zSaKm3av>LT zq3y9pjL9r6 zkVqk7dQ9|K1c>P|(PI%Hmd7MI7P{E)?69LeFNjG@ES__;F|q6kDlySxk$)jgiDlos z6carb*+1Q|SowuD${$?gVgR$aD#k>Q#Z_hjv?}&zq{GCR=&=Ao#Kf5Bv4|2AW1`0* zRIK%whz~{=`&)jP5)&a7@nT9$gjmFj2{BP(5i2JAGx|RnCnm(?5fAl>HX-(}>@XoF zYAoW#gqSF?h!<00BE%wIOpZw&ivY16QLHc~LM-CNl$Z#yh!+!LqQoLrOo)jZix4rL zjRTVtDAucs>C`V~F^gHO&thYW#VpouF$IfR%wnlxF^gHuVivQQ#lDj&o9`6SU7grd zis%}zD#u#IaF~%5U ajQJ0|DN^~Ux1fUn0000uaSW+od^^{4mPnw4>v?v` zckgl%#2T%282c}@Iy4>gY4bkvhJpJcNB8mCXA=VhdGEj8ch)}k{k+-J=d80!6sop?K14UtR_BF)wC)+ zqj_)d^~p1yO6YEyrWnL1oocLGI6vfs+yy4-8LFb2=cW|T3%Rgv;@QQESoW&T-tNlz z%gbzkw~&dC8MA47)hV%EQ*~|DhN=ipk$A+#{lZMFXlCN1n1Hi(7o5#69%c{v`=v?f z@|_gJy9b2w44hxBSTO7F1B1_V5C2h^_@#;MHUBl!i}wx*3u%T;u)Fn3gPr@5d$j!1 z0>@t&uNUixnS|6E)Nc72*eAZEf1BN@k4;}Lin&`lT;Qxb;u0y?D+2r)o4q5)0!apxH5s zVkSZL3$7_k3Ovnl1c}J#ddTF~PFc*_xfrNzi$WpL-gh$=T)e~la`9UGxCXF5pO{J? z&>1unKQFFZ6tiu?tc>u$Z40z+Z3UA*1NnqZG=-;#zSTM< z7ShieIe|6u!W1wSuwX$Z_a+4pnzg?vP3J@t5HYcyjRGnGsrn;2g-bNWQ4Eeu-iZ62 zJG*@mORe(keT!JWPCWZ{5lgK4>{wUMTfW?1#1=1~KJCVt74g69&5w5pl(d-bxK&{r zo;f+#$0Y0=%W=UCb9evyadCgd-38~mUf4D@;}#W255ADF%wJYD@< J);T3K0RSrITWKP)2{~x9#QlEv;)-4^YvbB|$s{o1q!=8HE_18qW$xd_he# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..6a579557a4971fd2dabe4605846c13b3b973eb11 GIT binary patch literal 418 zcmV;T0bTxyP)%j@k!Atf8es{RoLJ5sQ->#6?WIF92ue}Ozvff9)2Gynhq M07*qoM6N<$f;x_@!~g&Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_outline_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..a391bc398e2a10cb93c491466e149b09d796fee6 GIT binary patch literal 584 zcmV-O0=NB%P)8y7qAP!qG4f$6(U%>3sfNJo7DFx3edMG6hHzJB|rf%VIss-RaO52KD5VyIscLoAsMhYH-Fx zQ;r{;P>UWv%fq&)$xdn3A8IpO7Pdld*2=>6sm)PYSdZFVl!aXqZP00k1RXYrP{W|l zB3}j`^_2xK2!ycUkja5&O>#)2h6N9-@@*hd-&x@i+6;@j%%x||(IrsAu80OWCUjT_ z$O+TOL?4T!Fnvt)u}BMxW0Eu$de}A5Jl*!kL>!AQ^R0!&FQ|`+HWu-Ov=|o8ygnw% zSj2z2<*@P>Ysx=dYhmH2Z0choj>YEdqppYDy!DtqCfZmuFH*wvG10~%F-#v5Wi0Z- zS{M`k!{}kR1&;}1B8)|Lm@p>FSmcK(W1@~lewgsj2>)ban7(oc>Q zSfqw2Vt}D>0=VcA}{P-3o95CVJuR^gfUUZB0o$S6Jad!!_+Ym#v(mT zz!XzWkQ?@(hw17MbC|;%_UN!r%;Gk zZM&_d69ji07W%*u%b}8SCS`}q8NLkyy&Ed-r1J^JD<)s9UHPi6^#7i>d+N+NH=Gdb^7rFoFywKR80d(fS=k2bb(p4wyVfnf($H zWz1@ID*SJTy42J4GJoGU9^%+`D&u&qeCz@{HPOnWd@2%8JL*d|IXs+qy?#vK~`iew5n7*BON81>D8)6Kf4$g}ZKMz)(}?SjPG1uri0Esk03&;+F3 zI3#XaE|tp8wOCi;X-cD85F6KG+pikd0S_Gbo;dKCyaH2G3@=2yW-C%)2cZRp5UQt9 zEy{cXvn3b>WgQu&X%Q~loCIEhXT&n;8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e992746477ee19ce3fc482362754977584102371 GIT binary patch literal 368 zcmV-$0gwKPP)plCoqZ!+Ql{m;x~H33%_Bs5eYP=5_5zmJ~_zQ?Z_TY3>+z zX1Px<``g|#XO38sBusc`M<_eiO!`t6G=$bLH;N%&#IR+gu`^;h*Vql64?_5)Q)uj# z&Iwn1^B*Ov^8}$Bc@bBMFg6w$E1#G>V6*2QjN|tjqaxQqgpJ8ybP%y(P*X$vm^vu7 zB!CoqB7hWoCV&(xh^5fjlvt)38?lXdWfIJzTm~=uues~+*W4sYj@B<+Sd|C`!L&&L O00008;ONP3D%r0X0G1v_R1vscXsXJ-d6%4DukO_=20D%V8*1rNrXCZ_TLfvpm!HgVc6trwRE_flQSK6l0U_@?@G)&==W4Jbj5y$Xs3U3_4 z(iA=@^;vKz3;IxU4Km}LJJ#&mihIt?5(fRD%Y=QJ(6wL5gUmSLh9&#(&Mi%|cc3c(S%j`)y+bmS`H z41+}EBH}EAbmThXv_Wem9l3}&#~>ZKh&aO_8M%l!%OI`(gTC2K42nS;Vo(f zEvt6v`Bb%Q;j5}$oHrSh+nAzka zJbQ0tqWB8m@VFbfS)Xn6->}->K4WTi)YR;AH{0Q$B!%5Cm)@-YQ@vBkzmesYD*skXh3(%I|wd^W4~>HG8byR5*WChq`Qpt?oT9dcs#pM5pt zJf^hI|8?Ra{XR|cIdW_Ty`{Him>7t?-odt@ZLeBTg-_GQ8~z^rmyf&1bKCmt_n!i! z*8J(}6z`Gy);7aR?NP)Ouw?hA#8Wdkk}ozHl=^(xnBg5^qV{>_`kq#~Z_^wWCok%E z{b^7Ol+ch@1GzV}g*90TD0waR+tC>bI;*(2kGaSLjrcUj~vkLw8aw6B2$T UF~3g?m_!&nUHx3vIVCg!0BqR_w*UYD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_mail_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_mail_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b73b9a8060418118d489ba1084335775cf5b91d7 GIT binary patch literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFzxenaSW+oe0$e)mI$MW>%;Gk zZM&_d69ji07W%*u%b}9NBdI6&hJpJcNB6`+Ym3K0`CYezzMsGCSAKtm${T%SWbmwT z0{fmNt#03Yr{8%lP`p@Y%_F8*li7ZH8yEH1+|FDcxplL;T6^-Bi+B9oCg+uKAm{L63L2^yi23fj8mLZ87%iLPEO&7 zTu`^>f!)`4cG`>LI~(`;z3E)Cc&@}#2_Jb6t6QCc>zW-lUG(cIl4TLpTwwkW9Zr6Ig~ds1GRfwQ+~-8}&6(Z;xp3&u+N=l+CMWLCTiX_4b_(xz_ERZJH?3v&mpW z!WP!WIvgqzxd$~~Ge32YHaPVQXyv*7O=s&$?>u{?`y!``|<8%YcHG!S8$u7WJ z^XEmeo=r+X{i=)C@P}N>=yr>gU$Nw3ST9gkbMajH)Y=7nZGt`95~i>=vMi20q;VQy z1W=~}P^a+XHQZM^9sXxVB4^))`0)LH zxg@f5le${})tFCb`;Q&`qqeK|n)W;1J+;$jB7<7??&ImVcb)#f2biE4JYD@<);T3K F0Ra2|S}gzo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_message_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_message_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..264086cd052dc09d8dab14496d20aba588ac8547 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+!=5gVAr*{ouWw~!3KVg^IDt8*$Svhu^P7R*<>f^8Wdh_g7kU z6?4`tm$)1RWaK+e5mNT*6kK|wMP#Z=ghVOx)))U`maN`30q7kDPgg&ebxsLQ0I<&81da*tUU6j(-RQs`Hqjy7tAlA*-~Hfk y#nm;^jHXYtrP?!O78Q0JQ$#S>rNrh3z2c7Jy8q;4NNOX{R}7x6elF{r5}E*#US=f# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_message_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_message_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..fdbbce6b7990443fdbdd3de5fc542a62593b48a3 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5Fq(L}IEGX(zP-IYl*LiR<)S!i zRQA)wF(Q1_{%QB*O$+xoy z`8;0Tk$E$7NnFP>wHXOboMBZ>d%2zoOf%FrILIRW#&-h`r`n9QoX>>5-8-{E>G7sR zMro`dg|#;tIn^R2=2s?)&ZwV}F#jyi>4@gUCZOVk_^Cjt8LdCtIlt+Gj8vPEc|+Lq z?~G>Is@AJ}4vEzqdi6lC%x}3n&~Xp=!#>qWb-dhMAnw;LIz#72isOfqO%Eos9#rRU v@)wJXtVn%0wKW`_anyd}lprt7rFD$TNnfjv-j}um1|x%~tDnm{r-UW|AT64d literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_message_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_message_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e011cdccc90104fab79186eb1bb30a97f86695f6 GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFmCa5aSW+oe0z7Rql=@2>%(ZK zcYfMCzBQyrFqz#!|E)s}VDdtdmk zJNkXK_}xtBx2vL*tpcOYZC+ZkOfhsJtLhV*Sf|yiHpo7Gy64_Jt&CgMa?AIGg{0m6 zHI+M|kayJ@y(dgJm!4YTU%4~EY~7^Wlejb3wRXN<&>$C5i$ znl>;naVRt}aB;j~2U0+GeZwr>1}WYz+yV{^j4VLnC)XEtAZ5yMqTAFSBq+kXVjYkl z4VI2$KFSC-0Z7C*3Kjk1hZy7EIH~3tROUqZ0uhK|atxIlUokUIVFTF-(pJNIiXlWD z$a&;GnW2_JWUqU}qVg4!PP4I^a0Xmir_ylh-%EQ3?=Fr7wW2%=ri6tmG-%oV(Ri+T zW_?^~w*36i+y%<4;e2w^91t|`QsaY(pFT)9KoA?h0}!e4I|$mOe3)?1nT=l(g>lrG g_mLtb)PJ$BxKML!L-CC+U^Fs#y85}Sb4q9e0QZ`&Q2+n{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_message_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_message_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..42fb4b6186e7e368378163b53daeba48e6a4e569 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+Bc3jfAr*{ouWw~M6u{8(a7{x` z!)uNgDjD9rb{UaPeA0|}-$*=YDt7rF?zV47L}DC2FHb_930ua!_C*$tuFDE;KW-MV zW%J^qfY78hyrH$n+yYYnwYA<5eb!u9%PQTR{!3woKrz$h_+H`kjiRgMd#<|Acrb^R zVfL%@l8H@oj?37lJLQNe`21Kl&oOj?!DIe4-~HG8vCr|J!egzJ)_(S9t=jM9YB`xN z55@Q!E?dH(>?I)Pv(j)`ibSwck7lSxRAS;4-o(%I1?-g>U4i~#@O1TaS?83{1OSiR BVC?_^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_message_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_message_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b8cd2c24c3450470aced932ce172128b6241ac12 GIT binary patch literal 263 zcmV+i0r>ujP);G{guS~;p`;eE3b+BgG(Jb{9fA=4xiNEA@bxFT=$ykG6ZH78D!A^fh3Ix zbRP*Q4U|C!8H5J{3IG|D2FjobfSv~Rf&z*J8D!AQpifSx%rMoi75= zxpzo{MS zLA+cRM|8%wZ3dI3n>KPAl=QB&SraDHytMesvcqNvLNuqEGH(;RobWnf^$fP#?9uF* z8;Uo4ox@hm7~3Y9HY4$;@tdm#wh>{+BNBl88?zHjPZ%6tVdNwH?ce;wR;#+NEvcnF ztU!frwHFTX825Z`{Kw$>%iyqGYT~NxixS(WP6f)Ca-T6ctZ}Jb@>?!Yp=6qb=^IVn zZ_L~HLK9s>Z#1c`nUdPIp}6E(%gJ6NHlLgyBKtl1Gh-|m!%j#XUN51YkhG?ub0d@5 zF|HXR+Cs^$NozcML_0Ss8HTAG>pBuKQ35V_wd3iW;&YbY*(b2tMwhHOe+(Fw44$rj JF6*2UngH1nn{ogE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_message_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_message_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..5655a17b73067a418500312ac62ac9304e9b6703 GIT binary patch literal 488 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFs}D>aSW+oe0z7RBa4HG>qTA0 z^5vp2)d!5%FwSyF=J1@r;icf7oD}iho%Kxo^qJM(7RfjNc&v7F0fSeUmdSlxw&T{` z8TY;{&@H{jm+q5(>eP0lT^BrbE2d4Ew0`N9INkH}x<2i0&Z4kU}O<+ zU|~KD9QH9SeNqoG@F&-lXEWKs`Z*Nh8;u~Mm5fgux3V*7X!|omr5cLBGF!FyChXR4 zxMR!wW3FHT literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_person_add_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_person_add_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..27ef1a0eaac7fba11defc8668d1740affb8bf0de GIT binary patch literal 354 zcmV-o0iFJdP)ddav|?dxG9GE(y1STf|-45YfBNlflpT_qE#$zno=N(#|ZG zTrx{L6?~c$rja+BCJB9HbBcVhBQj7H%^~8jLn2T$iQv3J6xASxmE#6^vG@9ov0lB{ znlZMl7rQgYPV{0oUm06B##Z!Vea2XiIba?DR3nB}=*3_h!FfZV8H+HSE7cfeIvnCt zGC?P1elf`a`Z0h?+6>Rr&9EjLvoU?al+wTuldSNFAUv|dB!e_iN-!#dsHKZd#IQ{| zsUr}N#nZ$k;>ONtCLTBWQqLmd;TEaK7Z-&wjd;0f!oaM66GUMr6kt%w9ip^5O2Jtu z7l`662*pt^qP$)l?WxE1aU}Y)F&ne7AHlMo08C&v*;iAtpa1{>07*qoM6N<$f~*3U AU;qFB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_person_add_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_person_add_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..53264c28081b15179fa6a094fa09ff5819d6e0fa GIT binary patch literal 428 zcmV;d0aN~oP)JFmPlwE z)$E-K66xR>W$2kslGsKW+aiHpWT+Q+E6C6af22?Su7nJg{0ChjLs$NTUXh`)|DbZC z4Z22#uKfocAwx(0gI1BDRsTVK$WXukAj{LSO-3^IRj2)N^&JEgC`03rY7i`=8ZAT0 zK`==b{ZN$x_z!aYO#*kRoeLGnj7B z01NDLk7{(!4hsx;4jQ4z9Wr*uI-}&Qg&9sz9i1>k3pp9%66Me(W7Msc4U}V>v{Hv5 zZc)zNGRz-!^N1XJpa(meI73dI(u~*6W8~N|W)zBI>)5&)od-d`5_x~Z*M!Rwaq{0-~Ti3Y>SKMt=GTz^;|-a;W3Hi9xm6H z$KCo0o6~KcsvVE?x91Yv!s1=g`6o#~!bR!IirN$L+vbX~s9G0KtiL0&Nw7odjjK|Q zbSsAg<2hx)@~%A^(`SD5=+RXdUe)WCl&8^k)h+40>D7R2^G6#(HLl7P#w3T_dLpxJ zips?MZ{kIs^%mbKE_%uRy0ao8y*6?4o)+H=;@hrz-!Q68e7?8k?RD{Qm%MNI)+X}r zZHc`sUUts=#=f3k4>y`DuDj!ZMf}=n?+EqUL|2nPON9J?-!uCkf8Od))b9Ve7bV%O z1>4uMtW7Mv)6Z7Yc2MK{VVSv!Gb5kZ{aI$n!&PwZ?}3nH36b84sIART0!|Vs{U4aK zts)&$XB;-YWHyVrMU-tq!pD65e`1pvIE;A~X#BnT;pM7tlIE7@*nR~|)XOwECnwH| zoY4wHCtYQ&CLZG{E9$F0VZQsgDH6RW`X7?uSrYbDOHty2~(n_Jqm!1QQ%;bw|_PrPB9A5-b;GcxyDUZ{5+Q zaa%O&@d~!@0p5i8f(*iC(+XS4=-mT)_?QEu$-OjS1 z%*D*QW5Z3CGK-E4hh4tubZl7eqL%oko@=uKH!4a7rB1_uZI!X@I=0;eO>En?{c>aD zYw!M@d2>$RoX4HHH!$R*DO1?VYvil1*u`X;lAkaq5p6hy{Kw<8B_Ux+a{6)$A!2XP zmt=$$$r#9eBnsYTAV~=mig5{vhL%t}D2!z!;xyu+r%8lW3_(10Fcy)6SBS^HA_vwm5m9g=mXMqmh=NZ@ zffaN`l*~YqUc2P18qVS-DG~C^N6As%nx)Q zQS`p~f!-sEhRhH222u2l`GFoHiaskV(exR0!1h2;n2XUI111X39!zsEq5 zf@Ogsh}1`66~UrF010Uw;WA4b5&&2qD1vpU(adElr+D^#9cmIy$%h6C5gjg&3*-X1 zKrWCAF3UNJ1O-BC+IN+K`yQl8SLWL}J;8j3X6+BQ70yfCR*Q zbRZ4^q8f*gfO&}O1cIC_LIUbyvJ=a6;3X1ZU(%6SBQBE=1Ds4;@SlXNMGSE*3Gtcu zY(fljJ@N6Cm55=k!bjR62HFmvNXNI>HCC?E46w*57b$U z80;F|KvkEbRYl#001D!-+GV>Awhx!2@)hokRU;V1PPh} e000000Du6*v{3@*7qhqk0000J)<0Q z$SCy`$Y&vjVICVMO7xM;F3;H_L39z!CQdd95KRp7l1|Y>2`2gSdfX#V(2hx~UThAN zX}#DPCOdkuldp`;V=|)`Yr~|)7%-Dt6k}4L789YLmvo6}#sbW9r4|z*kzJm%OQM*8 znfYRf7SW8|Lm_n^K2PoueKuxeitr|v3c46%hD!i0nPHGlD#*oKG~h)kO)O%vNF!x< z%6kz`6^FdVKGlTF+u%w$lf2g?<+#f0;Kwi@HH@E_k--iccE~WLaydiG8M)#NUk=c8 wfUh{A6>Y8Jgf+CSixc!=V>V`EKZ0dl0RUd1r=fN6m;e9(07*qoM6N<$f~|Fp@&Et; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_person_add_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_person_add_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d33121aa80f04ff098ad83b52e48c4edd3b64a50 GIT binary patch literal 421 zcmV;W0b2fvP)7@tOnT-VUU>EvzJ_nT_GbV`@WYeMq}A3RVwBiit|R`|J9X}R@4okQ z!~5HZ|MtF*LI@#*P>pUDIpLZjZ(MWC5?%T)43Ou8-^%3aQ})PFqLvalWs6nnSyOhH zroL}xlnr`#Cy94@l?C=mYES+c#9~n1*uY{#jiG}6L;;I}f6yHkcm6@2SQPz(imeuO zkHx)z&>0qI{z02qZ2AWcVKM9(WIrAIN(LiUq1SX={evWCNMc&bC`e+Rde)^3gCu4t zQ%jkgEHH9^@-a#{gKjuVZ3a<6t$+xMpa^1=IkwoQzyn_ZeDT03dA68mG_xQ^SmBUo z>UrjX6-FF`m>|y+R!?j*sdUl70v9ynf(1I14yL#z4Yy3GS#+{Pns(__;~3+Sv^_Ge z#?a3z9$pxb9c^6U<&t(;v5co>S#gf1b6HWsQ%P1hi=YUKpq3Ou2qF9cn1^3$=;qUg P00000NkvXXu0mjf0jarG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_person_add_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_person_add_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..196b4763289d6d6412687af228aeb716d332f6de GIT binary patch literal 669 zcmV;O0%HA%P)Z6LPYEjG9gk@dL#; zKoC1ABKlE?O9XY6{GuCK*+eQ3Pk~^GYGlM89adHUI#ljS`FblIV3$ri_ zvoJ#*>d}=nX0wNjJmhB&xyUYNlSWtSkw^5S6m1#BW^NJ0EjBWmc9alp$Vm$(aRygs zm_!S5Nb;yaKbG;7Fg;~C{V6BOpb-7oO_X-ij{*`WDl>zZ#Nj2=s4Q`yG0TY8dzRBk zqC^8$la$rel_*e>MI>zzB_&++;2|13pl6uRzg1|moI>J`I@~~;>(muD)Z!r;J*1YT zj!N7^t9w+E)R2v1Xm*rrk_v{S-Eawx96Ug~`{aI$h2lFH-j^Tr25)?1- z!3zlrPgt0Rh0nq)%)%_p!Ys_fEKDy8GsYNWj4|c|8Gtz??x}p%00000NkvXXu0mjf D3|cOh literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_person_add_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_person_add_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..977816233fec85c7e454417e10676726b48d3de4 GIT binary patch literal 837 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zF!Ol2IEGX(zP)XHAU0dT?cvUC zxwq4%>#bRr8~t?a+9iFt=8nR*x8=@XbHnf3oBH$R_m;1}W_jCKO$iye9yGN%eE&;| z>FqU(#OpuuT#u@J%o3L-^4oY$xW&Cwg3CW~Znlsx{?QV=W=;WDyuo~D!|D1KH%~Ed zH|RWU*cq);8jW!V%`mQYbKk%<;Neh|C05uKf-^7(|_(GcB%g5oFAFb9>4tON8`1}D@E)tNZG9I zl+RF{Cw7eA#8Lg_-$lyvtY$Ia)p!-C9JIjuLrLL8rkADd!3)Yie#(<-^h@6PSo`{q z#xp-If9DdjzwlIVey!eiorh<>b?2YBWuEqt+4a|#p3NT)b6ad?UX+#gSU>cP5Kqdn z*Xx)=J~GezIPEn@+#iRukYvsFY{{!(k`ulAg9|KpI%wqefPwTWtnU;4@JdsHd+!mp7HNL|U^ac( zo+F+MnF`HKBc0}n1$S4k`C-vH{iV0-%hRXlWVjxc{Bz1l>y}g9Qyy)pzGtOk0V1C( z<}O}iQPJWka#lfZtI~raslbrlomaHP)^DDq6n#=!wDR81$sGS4Wt^5jetDY4t)e|o zyOUqKsJykj_Q}P2QD*AThoMSUS3ez`siU%}bxvmG1NlY2uKy{tI^CINxqPA4)6{3Z45Jl08hlIGhyAxqWY$MwN?h#aiON3j3TZp@611a)Z8~mSJz{_U%wJfWec4oPJ zZkBec_%vxuBd?k!1%2dlioDYiStyI;5HWN}6sjf>%nhQb4slT>YWiJ{^`d6Y<=8T6 z?p%(YpyuW)$JSkrt)QmQ*iFnXC%_QO>e;h0# zUbct>f7}$oG~#2^M1X5WoFEFFP=pKR+#yQcQ4VI|Tp)^F5ROqVqFgUVd+KBR7>Ry% g%#PWyAH=er0J3(3eqB@tQ~&?~07*qoM6N<$f_s~c>;M1& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_person_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_person_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..269cea974a10dde8742b5dcfe1be5990035b889c GIT binary patch literal 404 zcmV;F0c-w=P)&6j- z#<8vjF{lRXLJ@<)Uf0#pi4%UW?Q(@QRXCQ#335*-r0XO9j&IOBeeS+N z?kS~W$f2G_##rG3LAYRrQJSbHml&LhqKqCkkw@C3n=+!XD1j!{5yRGLBoU8&C7&t8 zho;EqD;`N=0r8*(lJMDgS`iOx<2ycxV-@kZRpNQ3Kz0xdZ4-n!J~M+@YML(?D?uz) yg0Tt2ViOoULM(QKF|nKu(m^^%DW#Np8?FFCQI*n!+tXnH0000iGESN}^`9z6pH#7J+qTUrwr^~H*xfsm`<%Xb*E@qT#u#Ia zF=d35o?S}n<5We zib92X6M5Kka-mL7B!)Vp&a7C5O+cNku?$;=I_F~O72P*frES7t64H zzJ7Qt_4VU^BI@*tWmqTFDdOu-D%j@Z*E2wCU;nni&PcOXqE;PWj|O0rpNBb+nRR|1 zzd-@c`FLOoP&D9a)eZ{bi0lD=U`;2hf7eLcXpWN-EdK4q-(nItttkE3@ad}d88cc>O|76dNl~2nNSd2Zabnh$dx(PW(v8>@U^$|wB@`eAwYZ8X z>k74rs0Q~Ch25hD5mewdqO{voAfzlDMih65EQB%yQQiT_>u_dS0*+whv33o=Oh$oKz3=gT=q z^vatgOPrd-03!dM8QegfD z#?#KyKU#PKT9PB=tlb2e!l#K$>kkT1Nm#m(L(6wT*Th3g8m@*+UlfmT=&(B0&hm^g zEJ<+NBz6ujWt~S-LKCiAG`im5j8m3)YskJ;U7){+r}%=RoHEB$L-$ZM4sJttT_pzn zB))34_ka5=-<0pU&Uaet?n$)-zS#}muO;zCw}1bZ#CN;<`?(}O?}vMXXB_r>xcBdj z!`~k7E#2jjo@?`L!^a&<*j@K#RXh+qlc@jLzV_V-KhZORp&W;jWv;4UUsHNPRwsMC z_0PATtr#@?EY}Yc}j{wwZZYXX$Gp59P4X*%lQ%w z%O=RxG_%Vs64|`b#B_F$jYpELqx84r%sl(til!qwXBWLWEObfkRG~QMCvNTyEn6Gn zJzK6zHmGiC+~YNC>SK#(5Bh@VZP_`SZw7nmle|k0>fDm&nauj#d2_GN0h=tH??S5| z&PeZ7a7#7d*LL=qmty}c@pt8~MAYq z&oaF?7HypEe=`52e$=J^r|*lXQPGq1ad_Q0v$T z^)(g8BEecD&XQ5V6&kLnkW#h0pyh>HZ>d=B&~!(v=h!fcgio0hw4Hj6q0huj%)|`i a2l)U+5jy~)TO{HD0000KDi6yu^;w9$u)KGDV`E+$1Ad$?E^ZLHt5pebBTi8lIi(J$I4 z!9|H^<0meD-L2KpC_eDXak=Uvj;n|fe<~NkP;_b*k;|&_8&Ho!@jPZsL zQYfdAK4v%o;D8x=siK@zLc|yTkw*)QTxOAG^7touh@gsjT+LHSqy&rSq%*`#43W-r z2?kM25QGV$b59%rNcL$(*{EIA00000NkvXXu0mjfC~2(J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_person_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_person_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..7b7d2cb38f4b517f3847c3e3ab25df00c3cd1884 GIT binary patch literal 627 zcmV-(0*w8MP)@=dmnZ zzxzp|4ZR6NXN3&`Pf{v(Z1*BOyQ7UKWs5s@5yUFdiaMUO2HY{)i)M~HGPB-`_M1Bj zaNdiCsXL0Y2NydjkiLo2pxw|v_J$?0!XU>?!K}1AE zL_|bHL_|bHM1*fBO)utiksB_sfS#1*Tgz^|KqWSi%vvh*yk#R^r7;J9)b`PsS1g`Hri&lrZ0M370OJ z?>LT2$IW+aBPmVN({X9Kc|;pU9W@-_6I}Y({HN=V6sUtMbu0wD##vptCPfdeU`g@0 zlV_jLEgZBaYOT!yJw2;7ie7tQT;&nlOl@;#cZ1lS@SH5;LjGZ#-pw;w36Fnj^S&n9)?^CG!b?)1Ons=_CXA z$B%wfiN&PLVk+^XWh&mF3&%;f<8&sv-qk8dVee5itts#rXD zljHd4IB!}U=#8)X#B=p^7GIs^b#sk+_^h6}#$sB6vb1m00000NkvXXu0mjf Dfox3~&g;Ic!s2RwLA_#CHg;+oc0|6iepa4-K0RbfdkSM^YDhLp{L=r6sK#RKZ zAujtn*E&0x^L~K;=OGr0#k!*ftV)dIwN2_K^+e*A%BY)EM&gw+Fj2z1Qo;;Mm`_TW zK?(Co2{R~RKB-UU3`$riN?0IDyI_kI${nH1rR*{7m2&Qu8ogmCjaSy`2}5Z-kc6T% z4j2qXX^)g$*arzpjqyU(_THJIMcWM_nVT76J~L4OwEw$djlMtFpDdO!H~EV9GozVD~iFexH68aU~(0TH^LjM k1Z$Q<0=7gf7VEBl0BAps`5@c>PXGV_07*qoM6N<$f-2Xc4*&oF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..4effe207d0b394bfa712fb0cc025da60e1b3cca5 GIT binary patch literal 429 zcmV;e0aE^nP)f>S0ze2zAT;{FHVTt0w%2w5!@3WY+UP|<%!mm~f=x*YM_(dUTYjy^~HcJw*ozoW|$ zza4#!`0eO(#BWERQ|w?z{*F`bh$GfGVvQp_b3%!EGB!BL#8la2$_gi$1{J2QaFV%V z&Jf4VB@<>iZeq&xo8h>5Aa91_CZLB5oAs^DZK8ZSm)<`w_tdWkv z8mVZHG;59YM8+CvAM{8y>fF<$6Tha>X zkbbU*WiHx+Zi&+SD2}ts+n1LM>3*e0IUq)o;XM6g!x(4DOFkG${~Qys#XI6=$Hu{` zz>9m^B(ibR8|KcvE?7BwW*w)_I=(4E%hnkds_nIO!Fn5hJKz#6eDbFzGQ0X?`x-pL)^@_ z_vGbC-o0bAYv;#M-a2{ zU$^L_XD(fyYU!?Rt9#l|YjtMiKO^~gQ{B_aQL8c|7e%gEp1RXZ704F{@ejRRs+QK7 zK5gEt)TQfg1;uX7T$RPy6B^pRXzQw5>Z?|)x_i_=G}km^)zMdRX|~7XA?$$VB`ek{ zb!-Y*s`oY1uiDDEZ>r2=wfSBv%JzNXS8d8XQo#3V(~PXUdyL&y9rNJ(ysRTB|HIc? z57rCb{u#=$^#yi!Ff*? zUpx4F>f(Ksa{B$+Q;s-UOg(-!-L*IBzKc@Pp6^CemC}^sQmWs(TV1^=(3c*Zy(pyY z-fY*L<}lk@ZMAQXxsC_DeAYJJ5}L5|Wzy%bVsCZ)MRzaRapsjtr;A{NjN_f{*>0v; vA9`CoE=|1LaY?@Y@WTQN89oT*s=#^A*7(P9jcfeCgu>wI>gTe~DWM4fj^i0? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_reply_all_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e5393aae2aec5721d0b15369ce99fbd39a22b4a9 GIT binary patch literal 756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_reply_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_reply_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..112b7d17e6330569c0c2178ae6b431654adfbd80 GIT binary patch literal 358 zcmV-s0h#`ZP)AcR#~8=5&;;9fG!}UQnwKJu(dW9Me&b=_u!hLmI45 z`Fkqg11D@#6;PkMXO9^TmG;aLvl=R`OM{ArO1q-2q0*k%04QFKHa_xR*->(RHkI5X z%S!H!X(e|7N^Te8T!$vdoYCQy{t&FkRGc&NCaAN8(V{niJAf!>464dHr@VaoGv}h5 z@pJPuzg+D;#5iMkOI(w`TP?;Jzn9S^oz5V_8AV#)631yngfogY#yQR#ixJK!+V}^T z!RXxD`$$mD0(9I`2D$+uhSLmm1V#+f48s?Uf>AIE0NerSA@}7Kb^rhX07*qoM6N<$ Eg3Vr;d;kCd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_reply_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_reply_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..efd749c9e603d2f37541c38e258bb3328fcfabe1 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz!>Q1;uuoF`1S^)3v;5xv5)_k z22E^~P!iN>GGX8r3S#A8a^O&yaE5_3VZsst7KKiS9FGjfAlAuzOl?nI@yhp2X({#p z{7;_YIDf(Y)BjI?wmJXVX8oFDhNgWh3w?T%vt)uF&yYHP#bOy;$fnSzwX#TRP6?-} z*^HovOR|Gfqgp4wn`Ei#cY{^fYR-n1++U>@iQh$l1gGe(5{pE2o{YvG?Y1i(ylhuJ zN`GDPa9`l2^?G93RgeBBS3IgO*agjHD?hTO&Q)t$|CDRqjjq>jEpPme+_V)re)FN|?=7u4^DixaGdW?2_33{%4325Ooc_Ki zrM|E8#uHxU9Ph^op^s*M$n{xLcuD%%v=618PhZSbpRmd*{h>pamh8FDHVGmEs~oyb mm&|%7uyNXp9U#BIXMVphHEOvhPZ}_c89ZJ6T-G@yGywpYVXSWe literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_reply_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_reply_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..5aac3058f4fed11c6aa5e4c819bd29e511cc89f5 GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5Fn;!QaSW+od~=?Wmw|z!!C>(X z`>DPg*dO!SC3#L#0iu&p(doH~1mMTFvyFF11WLI0=iJ_wdwbjI8{2yI)+FEdl-%8! zd;8e@^z7%m(_bBpOxCMi;Z|g+dpftwsQK5C>z6itm?ry0dHSqrt($q&H_w>%RJ#3z ztCFGa=~}kQ9zLf(H7Ke~y1eOiS~O4(q6ea&A1j zMaSAxM=j0L*DZAG?3Ccp-F|AJTfLWrg<3DJmb}TZDl0kk>b}76(6^c^L$8`Otct1* z-MV~9XlOK}p|dVur>AdPQSgjQAP>+bUnr`SQ?10b8---yW^MRdeQ1;R*fU_kQh^n_f1D&*=@*#y!#P z9j@wmtgEgaxy?F_rRPCt!{@tC|DFnzn)bo8;df+N>!b)?xu3H?*YrlkyVaXFr60Mh zk#sC=(R}AkOZ`f>vGH%L-0ZjV&79fnX7Bw~f>$kn{;Y51*9%es6Pjn&9}Qc{%Xsq8 z)%!{3JC~Yes2`5s`l;&hny!z1?|YmlT>ExL<9JD&lBdqMKnc&F0O9t-4+|`0_#o87 bN9>EmXTF&)vR?q03K%?H{an^LB{Ts5a611y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_reply_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_reply_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..0859b926b8f814f16c43d79248c3a0569963e049 GIT binary patch literal 699 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFg1C)IEGX(zPaGYd%%F<$Ob3* z&u{-t4q_^kcmh-e1_#a;PqKZl`E5YV@a-vNAhDM;i>ZZS5ajKha-I-K3$@X;$)hfHk_?VnK&Z(2EE?y~-+G%!l zzJ6ia0+rI2$2_JL^rTOmw!*9CuT%losmuMUcX|>Q%>MYl`^m|bCuQcfTL;Q7pQ99# z$k%^Z@I~L`zDS{fsjhptk{9uvvu@8iu+4yF*Sj;#yKH=(=V}OFEq>*h#?{vTivQh; z$^BKqMorguBt)OOnf`F)jDz_xJkzry7I3(qy`Gxscv<9aWxKZlAJc^$o?&I|zgr9$ z88YOS>&F*x9-1W;@oAYvc_HT$Bj1vrlcw43VEG{1Y4YjW^o@-|rWbq`)bIMlFK)l? z;)N84Ss(7+_w-RP361Jp|4n)3u{`aMXVovHoKsxkTV%AjzOy;=?F*Q!r*U3qa|`}VxpLv88bk1R?rKffcrT(Ppu`l0NV zl?6v6OW%3CSa&j_BK_A94p%e7RVF|4;94vZwNz?uPCjIH zd40r#S=-cFH=O&T?q%XJb;*QtQy4eLFa=C@vIT3i=kLjv zFSzAeZu?Pr>woU`8@e)b7I2E)e&4#j-0k1`eNVKP^j-|x@!Grh%oAgeMCUgLm(QJi z{*7~>F!$b1h0I2Or-a=u%4ayR?#ywvuQ}`otWAyQCqME1D0bkCK=af-ImUOV+Gl(T zDQ3K2c;dy%N!$s3$2NaZUn1SuRy;Mv?QzT;lW#|U#4IVSqs)r>7B-EaQ^(MW2c#({dT=s5qUu8z1tb4U%Szid}_3pgK?-llc|45tWu1;UPOt-M? z%9d}2>*XH)U6JWMN7{7l&yz*g!7-NUyKh|0E8E___Z2&Dso_1V_T<&p{=XKsaN9of zw_RJN(I#?6!jqH#SG0V#%$)OFIUkny`12Gc2#abT2weO6%9a!V_Qo$bT&lV!eM+tL z`iz6?oHbr48^1lR&ARu%qAm7owwT*;*F8O9DRn!kJUUh`!Sjr;*sa*T0@<~CCMVWS z(~?XQ3^o+aImnma7CHB83u{@1bjHn_SD!K8c(KLd^~-f;(g(yB@`>y?#N%)}!QCMy zi7R4R#s+6=JpsRH9;Vt!ZK7ANpEbOE?nBB%ctpug%&mNN WTz}*H1&+YjXYh3Ob6Mw<&;$UKv-YL{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_reply_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_reply_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..c539638a978743bc6a77226a74af822c419c6cb0 GIT binary patch literal 684 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFco{cIEGX(zPVt?c))>!!EniS z%e(atcvOUpfNH>C&y9S&sP=r zYJyRh@1L_}J|)-|C^7HGwzFE>a&Ny%D&LqJ9h!4HFZp)ay_ny1!rA9G*M44C{@ngR zu9?w{T}#5{%)j3}6|hRky)sAM;*iHGq43H(GK;i3ryl>-CK{sD_36esqZuZrlB-XL zT+-lwH*w1GvnD~>{ckO6JJ#83`y3J=XP$j>iOsg_C4qA0)}Bjkwy9qM8rlt1SNBM( z|E-Fr=!vpU z_eh1aa;1m%FQewzJCD*eKhBS1^O51Y+$lNd>G3&#-|MTWo2AY?kh?FOyAS6*V{{0qp{wot3FWNkL9rEeLM4v|&W>@dH{qmvn z-Xlx-zZXuve);&J&f^mIl4rjCnaH?l^W+nIl^U06%1C|gI8kzWM<;*KhI>z$7e6a} zae`YZD2&;g@x)2jL$jB5u2WD+U{17ETIF`nDM2AI^rBCK#+C=dinwCeQR>6ZKa627_z%dq zD;;Kfu*gc{2KSO;6(g00Vr#D+bYR@ewR6ELWhG=#w~rz2-b|iZ`Hw$>l9#8epUXO@ GgeCx_o-^?P literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_report_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_report_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..58d7de3347f8b13be587c5ad9aea6d069f07fc61 GIT binary patch literal 287 zcmV+)0pR|LP)X?` zT2wBbJdJdcuR#?S1+L(!-eQoR;y^iYC8#A_`5QGXVUWS*Sc>2j6wTSxIP;)Zns?e+ zP6-NW&}?RVBRG@dF_TL{kr=q+XG~EeF+>9kEU>_gw?2vS3Cu_>yD60n|Hp1o+Pfa{1#vp?XGRPo<45|;xk3k022fcOCR!f~UQ~-_IC|Ya$ zKj^HsGXc7%K6y~vG4~82-mQDJ9e{^okeFY_zwSq^6>T+E*nbQHK@0KJVy71~CV2F@NR=2HpfllLpoc3}XKmPg-Vv+7cXg~aph%Gku^xL{)91{13T3_SlH_KV%-e-p@m|NVP5`5ftc z&qW1c;G%t&ukF+YU$?ONGX!$Ub=dH`%wu14?4!e#74qCk9S;m$cx~!xO+PGA+hijU zDc7OH@1lF0InbL~R1~CkWrbECx7_~5s1HYkT|YRaR4Qay%XQq6TK4Fp%ZG|ZJT{xX zJVGjqm_iqo+4!d|ShVog%?g_UsYRzI%WHJ32(J9Zd{m(H%hE~m8a*dIJYm)Pb>WWI z%*HdHm>F3F92f`@0dE+XI20OS#Da+>}T>w&dm&y?Pc6G@wFNIg=ViCeNU`{IBze1b}i|_@`HUbyCdgGtag!XwDD(J zl)SUAxl%~r?#a^m4aWss>(AzA$())P76nNubo7cP`KE`0ED=Yx+fGPCEnep&VC*v?C-dk;;XaN@JW zlS+k8HUeL@_+4J!ySQnMc}30Ys%G^jjd|=!=a~bq10&&TS5YWP@B0rwu4xO}%;T5` e3RD+3xWDzP>87%OF4utxgu&C*&t;ucLK6VSo$CPr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_report_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_report_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..cbba0c47f406a8c011c2b7ac862fc151965025af GIT binary patch literal 286 zcmV+(0pb3MP)nhKSAAB7Dda74M~~J zuc$LES}o_y9=T8&m)oh1PwU7XC8%nrh9@R6ap2ALfaU`LOR`~73M{a|0#m;AEttK)^eR^4l=S}CO|~!SCEJhZ zQMONL4eV`a!9jM9;C+Q$W%F*NbdColt8pqYpK|_3s{i?I=ltI>|9_$Rzdik5)&Bn% kbpDjYmZZ!&i=svK1Z{6u+tzkGTL1t607*qoM6N<$g0w7tPyhe` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_report_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_report_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..1879fde4962539e9e87c3d6cd95aa74b91125729 GIT binary patch literal 304 zcmV-00nh%4P)rKC<* zwRBNefMZ?N!5oOhbDRWm020pON$QOQkXktpP0C1p0gm-hPjdhgzyV0k;Ya|-?f{Z; z+CczGbK^ju29ll<2eR(JfrNsrfC36Apnw7jr~n8ppnz(E-a2ceg^qev01aA?mn#kb z2c7KpM1XE;X>Yd&wR9(5^*g)W0}n+b0iTS1-49xgR~ro#_K%m2T57AaKJ^zOenYFj zGV&aL7UoIyw|tbt|9s&|JjY2qha@?NC&8SQQc7Pv5Bmy7gP}eE0000j$_5UpjPvGtu^mGIuCxlB_&H-CA&)*_$5!bV_He9`nEFU_S> zf~01?`?~hwsn_10Zzs!!T|q19S!8An;?V;@U!TropLewW?-`IMfhrzlT5vA_c@pUFjSccszbuXfg&i;ejg_ri|N5L; RwI3KQ44$rjF6*2UngHCb!1VwC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_report_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_report_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b0c42dece62114b4f0d0c2f9f497aead3b854a13 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zF!6c1IEGX(zP-!n=E5k_`jBbT zlvjolSHrYcuwLQHlGatcBDZRlm_P^zlPlZ7B@0=38XAS2PGeE6%Amir;Q%6 zKv}C-+6o}qrsD#o4?cdq+NeJD#3zT8N`;{79~_pfW6NTl_^@%sob)uOpDy#%B~A#G zHdit=ENR^J)#j(eSD+BLMuUg+wB>Rd4JSU=c&>C{1S|V)XshtoTY-^9z=44f5nvX8 zs^~(%@>>^|eJfew&C8fozHr&r8!u!Q-0wTSPLBD@<>s{G>(0HBQ^;IW`nm4}#{%u$ zHGj<;-i2ImjI|4hoqw5m*5$pcZf!b!`{;V-tHMv2E9ccLa^77PadxtQNwRtV=1QBu zzvutVas#^GrC<2JhTSqbu@5f(jQvs}fb zb%jyK4#%gR4?enls8H(j-PSqp>7$sHVmyL2Z5(pI@KZkZym3W(g@V!j3{Hir#^cLW z_b&P5@T5}Vla0V$E4hxitrA`jLE7^_+}M)T@xai9)kfgxX8}PNsAb-x!hfkW_IoTa PfiQTw`njxgN@xNA`y}UK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..7f113e2d3cb67e0c8004497ae957605e0deae60a GIT binary patch literal 313 zcmV-90mlA`P)B&A~89gf%1_hRV^$?WZX>(jDhcsf#^dV#+<`BvcBfoQ_iIm~z)tI;Nab#+Y(S8Dq*R zWq~Otlr^TDP}Z1oLYZP(Ai&+2_Iu2+*X-bm3K$$HfCX@K>~LEq1(c>Pl)@JPx2bB? z4T7OfMQBGTay=N{P{pD*K$D07EDS0P_LL+Lpl(%Q!*vjYQ7{SsP$V7GZl`iy00000 LNkvXXu0mjfYXE*) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_save_alt_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b276a69416a48f554a466c8018f29f525ab013a8 GIT binary patch literal 316 zcmV-C0mJ@@P)05XA8jbcaOW*$NPW0O$Z6Dn#l40r03J1i(fxJda&zK4Sg@u=v5k{XXZM3(g>e z3^GWZK?WIQkU<6+B&cCm2JO)FoCgB?5@?UW15M8fk|sgq#D}z$b4Z#7k@MN0BApQ& zNh1(B+zFCac#cVvpu_0uiIwJ!r%B`cW6BBcOHe`zF5w73B;_MV3aXRH5rc9PIeHLD zb&eiHQqIwXQW80OP);I856Vg8=s`J&96cx}k)sC{N#saD)fyVm6_oeCAcG7t=!NLC z7fM~bfo>?Z?grYR)C`v{oC{_sw!mG^xnlv;n`4VXh8eKM9F?4N&b+?Cq=PaMkc^!Oa&H4E&5{xzjVm!B(Pi@+2;j$swjVI%3+g1sK zM-m(TBz*nlF05nCHlFcMvT)JSUww-uFU3h-OOyEj$5}R0n+>I(gVgroO-uxwTCBpmby!mYdO?E85WNUuq z)uhfJdMmH4w0YALmHR>U?60KeS$Dk-=dHYJwtmx^@NFJjPA^w^JvnyL+mDLJeDnNyfvScjoP~mC4v$yMN1vH@A}%KE1Kt{$YX!v(>wJ>5g+1AH*0M*BBxofeMF^1I&x+87H<|n|_#(!5~$!<9um@-{D{n6XuEO|Jqk|s4ZZc z*O0*w)sSB2;9+uyzoPB8J_}bz+wXY8^S>L77TLeAe{S=h{Z!|>8qNwaCZ#~D4Aw!vx11HcX8$3>4q1(8wa>0VEDVC@@>-Mb}~3 z-T$`5vx{-G6fzvW&&9f;B}&~@`wGMHw?WKzxLC9L59LlQ=31`$Pk!J2@6rz$_4NYg z8wL2!a6jeXe`t#)^VXJ|OL(@Z229uUcVD6Eyvl}|yXo!BOHXFr2y~dN7T~Pte(crb z9vO{{v#s%43-`rD2Hu$?TplONd!pUk{M?xdDxQ;oXi3vQevzN^=WXcK0wxd!Pgg&e IbxsLQ0N?H19smFU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..2f85dbb01c9a96c678591b63488ffca127fec122 GIT binary patch literal 301 zcmV+|0n+}7P)I)cWWgCAOLlZ8i97fHa3lj^f9Arc2b=^1z}8+t4313)aMfS+k@H1J3iFiemW_wGt!f00000NkvXXu0mjfd!Kvk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b611b2c0af0e37d11f9be2658957f76972b3f667 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz{u+9;uuoF`1TxQnzN%w>qEg4 za*I-~U1M@Oz;J=JB+#|9jFIud$4xB^AH-dse^hFpZQb&D?E~$!v~L9^GF7`KIP+OP zff0e0s}%dL{5i*CqUyq&mQ}~T;4b&YAI6_2-GAx5T2bo%vL!V& zb}Oo*e45@HZx-35F3Uyi-j%*!ael38^?L4-fN-Ibxoai_2w8oc5I2c9B1*{mc!N+ds{BF2`kUJA;N2YF2#DYw$(P787GVi6Qa+Y c@%hNTGkVKE&PRVFf#Jg7>FVdQ&MBb@0Qf|Q6aWAK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..52e6eacc207f433e85dc36379c063dea01f711c0 GIT binary patch literal 517 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5FrM*raSW+oe0#0YtvOKQ*hl9H zNs`GD4vYb+9vite8}b%CQZ5l(c$?#bEKl2l4yHE4v;+194{lUhNZ*gP{may>98>i@{K81hoZmTlM&#*CE;s$nM!ktV*P1pN+VY;(iPMbU z;`dl(b64C;&xnIs8R~BjZL4e(-LkLgV*J6T^liaiUe$~L3-{RN&$@c+xI#vAXt_j2 z*kAU|c0L#FBy@HkZs0%I#UQ-J{nR`bZ3dqUE={5gVUEIU91MIfuUTN=DZFNb0g#Iz zE`Yc{z{Cch%Rm-T9guq(!unv~czMkXRAL2)8_#+f5gvDgzByff6sNI!b#tun-q%() zEHCa}(VT0jS`@r3DE5x<&fg)@yY~ohEiVhIePgVcB>e4iRp9~gi@zQztd*~}`5?*h v^+4RM7@6Xey1w1JA9gL?V)Gmv{&&omHoecvWvr41MlXY>tDnm{r-UW|D!Sg9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_save_alt_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d9ca4444031423f81c661a468b9096bfae536a41 GIT binary patch literal 573 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFtK>LIEGX(zPVt?$iTqDVDQ&_ z@&W$n7FM7Nh68#xIaoM_R6HgqII2VGCKg2yw+SYW!C*-}$$3CeHo<|1#ZhE$0mDHi zX@!U+)^Pm8QzJlltyDSgF`b+Pu5LmLgZa{KJe4;R${_-?{91 z%B92*@?nNXtGn7GhnC|mKqXHcdXBqj+JO17iZ*IV4l|C|{$hv~Qc!Z3b6ozE(j$jC z>Rla-rVlPIigk(F((T?I$M(qO>b`w*mWvChYkm9r*ye46#YC~fd29}II@~Ly81}lQ z%wt*b*X0=}(<7HT>O397h4Ty){Ek!}YOoM|&dH2VaHhIENO_3@kf;Iaxdb%3lI?^G z>v@KmD;`KH2#eYdh3z`X9otBfRd;O9Tpe*CS)`+sZ=dw z&@EWR&$nxXlFYa4q;DH0|M#k3dun__p_#`Bg^<$9QsVa4s&W%s7gEx#^JZm+eB_M4 zi#DGM7R?GyNjfvz>t2tNxOdd5j7S%|vXG74c^jTN->;2uEuT^Jz&*a!(x`KtVanlF qYu?(Aj}Fe%ZGJI9#d8t}{bh7JYi<9CKi~!^(mh@MT-G@yGywo1lGT&| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_save_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..224485a7cd2ce052252d85ea6238b5011c2abdf0 GIT binary patch literal 322 zcmV-I0lof-P)Iiig`#7$(*S}k_APacppH;?s!%rwC;|cGm2U7agrvV-<3CTB@9zK~ z9`lAFm3r$cG-%-i_Qi|+k|TlJ@y!c05q;L&8YzqWK=fI24!LfCFT6n*=aK6?#q)^H zMZt8=9@9B{Oyxey!vvqO(y$ea!dnGnW=mN35|*$96aFuou#AhH$ha-z6bsu^=e|1o zIGE#6E(SJ3Yif@T(Hh!gU9`IPSO=|+JvJ)yGtSYP*<->Fk7~v`)HUv_#X8i&fsEV! zI3l5#L!NHQm_EINKVpYk6)|2FJ+`LQ20ioZ)A6J>xe1ihwtRHa*P=m%RO*d81F_}R U;>{|3WdHyG07*qoM6N<$g6J`j8UO$Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_save_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..149845172b77bc84ae05d447dd737518d7e4b106 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz^Liz;uuoF`1aaXM^{Gyhl}0n zJE9pqx?DZ9cU1c&?r`qfeVOrycZc!m={I?w`7u9#$yXOSEj6;Tr?}Vqrp|XqRWqWWGRzae`2;>R`oMKXaW{X>gH zvi|P)QTTTU$NmLdgPb^X&n!=OtUjoDmOJk4%EoUWSNZc^X%CrDii6fh>`YxZd tTqgGaMDnE9TN2+%DD%(PIlXC(xqashJJz;etiZ5i@O1TaS?83{1ON$2k{bX3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_save_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ac5a073ad572242b26a9cb98b14328b111701c20 GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5FuwG3aSW+oe0xWAOQ@qn+e7j4 zmx9|%wBN~k?)cWj_s--_tkJtm;+MqDAHDk}{P5R2OEcrw)&FarSniTtIwi1jkOv=zce1@=(!NDj$gM%#H z3B0?wHe|Q~nIJI)VOQ8JoRcPfeCOHcG70q-r$Veg*2m5`WcY6h&+gM4QCTeIL9Mcj zY}a0$=d5|?TJVyuD-WIv-m+QqpxouwMWqh|tu}1@VPYqGBeiDt6t*0zeZKyT-{$81 zxYqmrZ66)h8>%(CXRw`- z==V?F7?RMxCoEd-+0I3kc3XX!vo$W=5;1@FCa*a8TwQKmcR}+@&t;c(o@Bc`dF!2o zT};}SYo4j8-#BOHH>FhgyH`_Gm#dvOXI99U4HsFiHkJo&zIUuU_ON_g z^UZrnSKJJ4yVg44r+NoYa? zi-;W~r$!2xnUcVwqQJ!(eAu|_vy_P)Ue8PxqWKTT$Ke;*Dl<@7BE|6K^~W+M{9{X z^9wcRw`oERr#gdY)-DKnG$l{=g=t}RuCzw~j;E1qtCDyMrQMgtE)Z{d(HgtpaLbDc zu?u9JrX-7J=qg5Ki)XMY&eBwdu-%MrakTH+ zZSxj;FOO;$Uu5m%Zq&cOMhWPh2f>^81O9%HS#axQxeTA|!N-iOIcb8yGtM}f1zYUu zdtmyA$4~j-uXLdo@&|uq3BAxhxC=;X9gNBp$`EDLHas5ebV2N5PS^68t}J=GH5aUH z=|7!Tp=a#zc3JL~$6GcYKIgvWVd1`u8< QVCrM=boFyt=akR{02eYE%K!iX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_save_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b1f517d3a1051e3c4f0fe37710045a38dcde52bd GIT binary patch literal 325 zcmV-L0lNN)P)5JurfGQeH4U~GrGW`Pp|6B7;@%nDtx#L3{|&Og$p9@@9ob-vMOE)@F7QA#^W zQXW%XDAmt7z8zCn2o*zT&9Mhx#8HmUnj^teGo~_-ZM2lTB>R!bt*HK}ow0ziT;WQd7p)Qi_ zu{F81YL6|-twnomP;L#{V*_$)z#d!r%8zkfZmrp45Z5k0nPM`}193uQwOCi{bR1#Xe(tMVyAm#Yba9SF=X6;Tx>jfhW)K*eB4pi-#>~J^dt^UXDoCytNyXU zd)tnMjlxE6TdE4(886?Np!wY=K*39MY0MtxTP7KAJpX!32ZkPlr>mdKI;Vst03`dD A{Qv*} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_save_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..a22260276952db55649d6c920e666b3a0148e66b GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5FuwG3aSW+oe0xWAOMs(@+r#GF zUpk_zM8Ef`#8kVnmrK3VlPrJ9{jyuUu>7veobvQ}XXkvazkGP#x@08~_{4w3V5)12 znzZrSjTh&d+AMgQ?=QNw%tOYqxMkL`L24T;1_lwe{}OxuGuB@1_Ww-BB{wG-bnPu}Z_#6QYyXv?$o4-v8#Gny*(+gcC= ae)4hIuikRY-75|l_Y9t{elF{r5}E+qdFw#{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_save_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..ac9f3b1cd48b64f02e14987f56adb645bf7941e5 GIT binary patch literal 679 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFy(o=IEGX(zP+oO5ECfkdNDf9 zEcMy7c1fR^Gabc3EBEM3mK6<7`=GSZHUHF^yR376Hhy>dKL6>}ZOeC zYnx}vbA69lNeNq=E|*&FqVtG*r-tC}lfIoZ{PVnyWY|rfEi_TpTs29^b4o|8N}$ra zNiLlgZbGV$*nt8vYnqSvEpeC-xZr>b7mFk-mk%aqfeY7_9v7|_Cd~;Tbac4`*Aj=1 z5KiS{5C;o-(g{_r86ds@q(I-&QMFjoH~yDVmt{y{({%=}lJ28lHo0Bso_fcte8KJ~ z(MF4BSij`?(p-AYC+A7^EvCK8E<`mX#Vyyo5WOst+pu?gCg+#gS=p?se$MT4XkRdd)e3V^rh$--)tOJ_`QJ&?fabwpu*V_GE3nNQLyZYeFemA_!F7^C$cwpE)sR(zIz zA#AH7u=nR1bAc;S3Rwq>7n~OBIK7YAaUrXM{2umI+ZjxL@UyT3owDMlI%BBk=Ki+B zD?JY{T=x9Xl9!R~;@3VZ&pjTWXa4wyx8U~6wGFQl4>7JfYV*Ke_Mo+=XtAWT{V$_g zJ44FXDp$yVe6jfGp<JyZ`_I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_send_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_send_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..ae490ff1e3d1d870d8c990c0a94ec061d077cfa2 GIT binary patch literal 361 zcmV-v0ha!WP) z-JmR@5;2caotGioGp0!S6SG~Tq@lLpQhQKP+hj~a@v)EvfG zVlO8t)DYsxqlzIG*x@9g(i1=g2^8Siy(!crA5`wWLh*f6?cRpkHB@aZHhLNBA*M0T zjgk0m3TG!iW%}8Lk93weI{_#Bp9yecOn5RlA{;eM4Niy&a6(LYMd~q+-p36BPLI)W z!d!>9V=<(=Of}d7jy~O7M;do?>Dqy(=g@>O!w3SSU=#oVM;;;jf6SHZ00000NkvXX Hu0mjf(nFep literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_send_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_send_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..1166e11b0a1f1f41fada0a3af720a5bfd96d7c69 GIT binary patch literal 414 zcmV;P0b%}$P)+&aBcut;w-EYTYor#Cv@8x@!OyB6f)y#4NmcV3@4v*(u;IF92u zUvZ3iG$JC>DB>1t=!rKPu<&~s4yY93fZG_0L5Kr3z=WdN z++YP==0f^_#Q<~qpMb?cb4>vSLL6}G_W@flgefdy1BbXoHb}skzXz;GFD9{obsXRV zPwIe7tKs^kv4wt^!s}-kP`Q5BSpG#oqxE}EIv`U=LBA6khB3{QEaC55o&H1JZ2Yw! z3%>^Dk(y)s>nPHM+#UJ$gChAB)_#*;u-`@dL6IW~h4`$h6rxB1p%^c$D3U~oB8`I( z2vH=B5MSGAggBCfoIVl@Nh6UE-#&|lD3X{HdcjcRIF93#0KKV^oIReSqyPW_07*qo IM6N<$g7pfl>;M1& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_send_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_send_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..84b3dba469ddc58a25a6e1e0b92c621c77f14c7e GIT binary patch literal 552 zcmV+@0@wYCP)6y^+v8BZ)gn7>ehM)Y9<3s^@k zM3{pwALeKLK^dCRk4Y?I^IgNNz9me7ecm2s$bAL~Gs-@Tn7%bkfqgEc1z!;W-e;^Z z1MHK-thyykfqinALSo+qQsjfT|2zWhB*=LP?IggNqfe>godo-`g?AF-4v23J_-0P@ z_Q!Qt{)jkHiI2r@kFSp6%aWK#d@LpsA92jz@o8|( q@u`UMx3Ut{z!+nUF~%5^J_W!yi_T&5X7b<^)Y%){MS~mS_ZUGT zI0c2^6f`!tl{7Ga=#10K9d;=w%^MD}L_w3!r^XBJ?>HKAa61*0=5?b4_iqvjIk*d~ zL_s+?1?AulvY1lxe_A4Pa0&{+-7Z^jO*2!GgHuon?mR0Ml!Mzr!D*(m!t*Kw*8qa@ ze9XZWRFJ{7%&~?X+yNGsNRYv`(pi&f;TGE!G^OAal!7}~&%w1-OGFM%L1|vHKL=N5 zf()*`1`={`H`%VBf&|w=XC2Q6&aqrUIk;^KO7o&t!F3jBK5&-hC@2S~pd8#j7NejX zoPtttH`q!=S;|KCaFVOs<1MX)4Q>%tVIgbS%?Yk>msfl%RB&ffaPHTXf^)x~=iuD0 z_c=KCtA*=1IQQ#0dsA@kR}RkoqM7TgBjA4J;M_0Xb2tr{ebFDx{K?fFnah94{M*Mr4!2P${Oj3^7rgwX@^l!Lm*9C3 zXC-MbRa9O`uAmT=f%AQc1?BsD6jYR3GFy$RP`8CEC`6^8mmW=#qe4OPv_J@QPj?-l1p?Kk12~7w>|m;~jpe-r+8i4vYE?CGF$=w5*@mdwX}U z#hUy)nvn36rMP6CxR(r|%qrdCWoe9O_8E1N89}3x;XP$m==PFX)RC{2WvRpkbHp8F z0iu$l7M|E+*hglZGb=?UPklr}R0>o^iK@$ls1#9%Sf;~AW>I%*jLHPtoN$fd5tUYY zm}G%1j=AF2A*w+O?esB4uC8%g)S-G@`nb=SsSq{5xFePLO4ODg{wp6c7S)hnn=W&H2Fuo0{w`vmbN84WB>pF07*qoM6N<$f+VD$Hvj+t literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_send_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_send_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..92c2afd4c2beb53ee896e2e38c15cefcac8ceab5 GIT binary patch literal 407 zcmV;I0cie-P)4{XvOlMq0O1EymTD)Esk7HNq|2=joH`HB+zOvfao0WF1udp7CKQ>cRS zb-*cmA>~p6S_w(Ojf?|QMFNsL+w({EF-{ z6z&o}zwm%&^Sfg$JYeYj-f|D9&?rHF7aB`jp-qzI{?0X;Kh(6P{Mt`i%ph4L+9LaP zpk%)~^5us{@+EA_i~L#^t7zXSY9w1B*{hlgX(R)oC=aYOl8KN;k~1?4A&q1!B*%6J zLUxe^D&~M@sOLq+Z}1g4^L8j?>^Bnk&IOd^o+sC(zbA1Qh7SKZq3wLK+g5?{%}| z&15I-``=MZk|arzBuSE_#(Gq-S32x76HyGH%NfmBVsCtL#~Sr`Vn&BOW+IA336pnz z;?}|pB^Dq|dW@sXDb0vt#x1MV5epP1v&^%>0q5M&VOT_% zM}HsY6mu-F$srfq^CS&(X?&Rad8)%y%u^6%G4rgrbPZEH&j+@c7Kr)HQxK+Lo)+e! zEKK)#T9`q_8qrd;KkxkUkj+G}4iU^m5ubiZm5bmQpDlu!IP8Gr)*Ldl>F){Tl_ULK9HE#XK7p9UR}KvG>Z~R{fmo~T>*+(6 z`1CLk#3v9FTtOFz3F31Qb9m+sB<`ADAdir;Ko?`m=9K`Ic nY&2M|B}tMbNs=T5YUty-?TPeMmTaf9t#d_hx#U^UZr#zq?FC zL_|bHL_|bHB$44IXIQI;Nue8P*3Bf5S1ox!If@6rljDu592<`@(6qJKISh}EL=9|ye!6^u!xy<0Q zAcJFsh2=9RSyMZL431G2hY=ogKtVtbPC+TS>q|H|##lf?a0&{1;sk5T5@c|Uv-B9@ z5eLc;WN=KdlxgBR8x)j-+pnO+$3+T`l4#-@8x%wiPC+@iC-IbSq#B?aev<=_;=ZWEi?f0{qi&d7osS9_r7sfH)3 z583C8%<=U_FPM4B)ft)FyJX(>@y6l)g72()>)D4FeEem?sC)#^hdAdE#%n4nA0$^$ zh)O}tT#r%tI+TLK`#lOO=#|V-qblmPa0P{^6!gi}6y&HBl(%&#D6gMzf6xezUC|Yz zQc#FWK_#!@$}nV9L6EBegCL`-ghAJlWOnDBafQHh9%h=_=Yh=_>DcY<{907*qo IM6N<$f<%BcQ~&?~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_star_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_star_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..eb56b9e46311012a70aaeabd16aa1f3affca699f GIT binary patch literal 501 zcmV2en>N~Oi@f~vI5G8(= zFryer!d(4Xf}|q|X(Yrh1Yrm6QG;&?!Z&K*+&tuOb8xH>&%9&L$d6O~5Wjlk)M>=8 zV>r|f392p5tP2@ijU#3G5;FFYayT&!3DYDT$jig9W4FmmToj-R%}J&c!&rTwwHb{s>6`R2X5U5KWO_qKndFh{`MBVp{uY3Gaw$y`=@LFFLe_(%m6Cbeobb zY`EyqaPuqGsiI3KDbZ|x6J7dEiS`y5?V&WUh>TuTl9h}X8I8A+QrswHcdZi4qrZ?{ zfAeU%6GVlM(RAO43Vox=wii{}S|R4LoQ>__P$#>>9iH*7@ANiaRB4<(zW1JI-RVlF zILw|lvAj9eVK>J*+x71EickG&kSL%*e)XwW-0ym4JJ!y!VG9F9lj~~>6|C-e(ZqhY zvMLtynP^gImAJM6?=9SEDqC=xyWnR_H=W3%xhjx|B zC1OTzTSKkZ@OCjr?CWAm|2bH_4$)Ig={1SWZiq0}&E}WKf^IQR7-DuwY$kkceT`V( s$HJzPIK(j;H=AP}uC1-Dt*u@Y0jn1$YIRnm`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_star_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_star_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..8d5eb8d69420b18d2f5b9fc58109674eb9334ebf GIT binary patch literal 954 zcmV;r14aCaP)YN+gRJSZQHhO+qP}nM%I|C$=sPFo!)$Z*{5pQ!nw9Nj^jAa$7knD z9nQ{&?&rkW-H-2-LLexK&)mpX1cI$xkFO*~TwG#&Wy0mK3HZqCh^zKGzR@ZmtfhZG z=#K`39p!F(p$H;y6vhXxXMMD=^<0nj{zJsDf3V)@7{f;T>4QFSFJQH%v4%CmVs~>W z*04i1f9U5!#IZbB>N?iP8Mcz^u+krhAo~p~4GkJL2n)Ty>7Ze!c>(LxM@Xy=mbsln zQepeJ9joL-NG>Z@St%X12#frTkRRV;js78p^}!NPaXO^1Q#^&|J<8j(LWH>Hyv?I{ z!u`C;*CZetWoSfq#K78?*A-+E>;gm$Du%6&{lShT6!hoqb7 zWldHuZYCsEtjMZNJf!BNr=w1int1w-1D?$~z;}eNrU;;7j%@&DzVC81gdflx3~sWej?d znM$%|@*sxY&X|a2jo>yguZ4mix}LBk;$e%yyax~pb{EF|tt9MEjH|9BtSZJ$QuMRe zup1Sfpg6&e81*GW(LTqhqRPSwW7I%pVf`>_zp}8M81x20;aq?;A@X%g>@qAGZMziZt8C?7|g6bOz|j$2UaRw{5*@AD*@FqCJ};RQxfA8p=8r+081$8j9T caU3VOGjy?}CI~9BVE_OC07*qoM6N<$f=znLqyPW_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_star_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_star_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e09a7b98c3032ba1beb1d69b5c5f2cfd927fc511 GIT binary patch literal 1251 zcmV<91RVQ`P)j|e`<{r#_3|4bCL?POM)tu*0h@Qa#pbrXD z9~|Iv6sAjYXiNbLQvr?L4|D*E(EbEm2H&FyeNVuxg`zZ%Kzj^D=@9~~81kx8M#=ancW}rBlM&R6!;^-a%rUMlyjw@)%-kEJNimXb|i?1VhDJ%RBd^3dA^#6;w=Q3S#r$YZwzV+UV`JQj%IsuNKH9Y>nW zW&!eC0EVl!MhUh#X{#%vc^f6zn~bI_R%=Orrm-3Oa1vK?Kdc{anFG z?89bEr9Uk(N;X{>&D!k9;he`UJjDn6P6_g{5`NiZ$m0gHiE8a!{>1|r!K`sxV z0Q3O4cy>BU^G+v0J5r9)v{H5?31+bZrC}?WN|N;F7nElGLVuE|E$^c=>V4XhWcfUX z(xk`8rvYSeAxeWTAcF?82NlTTD%gVtwiX4*(h69M6d29|WMK;!PKtEl3uIZJ(1jFg z%8SUNo~AJ=mc_NmlCC8aUmQWD1^cbT@X`7dA%iPoeS9{C#mLYWGX?{6=Nn{T-_RXH zwBR*lSg+9ngXC}*GN`-A!8j)&BdX+h47D|-$mdGf6oXCm`SR>CCg2{6_=FG^wiV4XWr3cCaA{EAZ8&se52N^zaB$~Gv)ZRPf1 zk-H45e2h}uhghVU5BFayXofY`LOwJfYn+CB=oGB+67r!Jutc^`w}Ohu#0uk)PmRS2 zha#Uk2rE2*eCj@|umt(k5-iXU`B-m^w=?pw9WdVY$j7e1cweCedhef$wHCkHe9Af$MX8um$s-Z@oJKK<(m;%~ zchqafeMp8rykO_kgKtA&`;E;>rY-m#h3zJc^b-nMDd*CdWNXa%l%bG)XVW~#8w{YK z4CW0KvNjlJOH{7~Y)?bmk%g#Un_`?xQLW0kl;)&Db1ttp3vdC(`2f}E9fp%i!|T1j zVe)JIhfCO<3{owFJz0uYS4KWYnOAk;>pI%tmp0r`b)ju0MmZTFK4Cn58_y>uKGgJi zR&W5Bm>`pbSjkfu-|fL60RR91fS~`cePIFs00000W&x$brk%ys)8_yH N002ovPDHLkV1l5QPEh~= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_star_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_star_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e4170836b0180268caba23e9c35fc95a610b63dd GIT binary patch literal 498 zcmV9ZUu>6*mYNs zIF8*R1&3BRwNy}8h0}5cgOYr}=`E!c1SS#9IQfs9+$EapN;?KIpIGKF znD(U6go-YcM+Mq4kcnimf*l;@63;O4oXZ?$2P=p$k%6?Oyqw6zDuS?<#Y5bBC~v4oGU|r)9^PMsr6gmCyx;=Syx=*} zoR>LD5zR)*Q;7{kQ%a_2i_;a-^&RP4!KsZ*5y9>))5s?q@-dBf*k#ESNBCtw)fEM` z*v~JAWrqA%KXc!4!vFvP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_star_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_star_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..1d893f078bf5e742eb5ad1930625f90937b9cb78 GIT binary patch literal 650 zcmV;50(Jd~P)!j!d>z6v3T3b8FO}MGV%N z!4`>nbB0n*iF)&kQhtg0vb%D2jyzb%YPNQOW1Z~=4|v6=e$(G%_UY2i@o# z$2rh8R<~eO&VEjHvD-cF9pC!bFnJi}U*CGi<8F7cQ|%p{v4bJ%ZJ-^ZbJq92divkm zQJUp^r(V9ZT$E>Fud9dGEnN9nal5?T9@TM*$?`HOQzdtZ(eg0bevyr>^^;mZTSs=* z@Vk_Lw?@>)lD?G6Czedp&t8VWOaVz!RxYmE%IQHtOiATHd2cXBQ>Y1#c7e6$JOGoNX_3$ z8EJ%4{))7$pp=)bYIQFuWraw|;X3o5{bLsU`%h;MiBV$};;WjJORmSSb-I0>- zwfDBQq660Pw)Vb@bS!G3)_ORk%*N6~YZEORsn}0TK>CY!u*kf?eMkDYy7Hxjcp?Z$2cX) kqvlk{N41)onwpxX0w89|4&1)H@Bjb+07*qoM6N<$f_(%?0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_star_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_star_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..8e40eee97d91eda106052195dc3399daa682c8e6 GIT binary patch literal 932 zcmV;V16%xwP)&@o?B+@I zzw6!ahKXiiH+|bRiq8N()VB|tAn98{XO@eibFa?a-AswTPZLIwIbByyiQ+PhUv%Y{ z0w;YtsARh+Dj%xk?I!ZSQ5+VP#DY;2Zj{7zQ4Ge`E{Qf{N24>kX`LgfGfivsXaq(yxp}Q*3;Q|6 zmG1YdueIxrc3*qd{jPM1{cK?+^O)R-X$>9|nZvR+wx{D=;w~@vOp7eF_|yyTa*5;Y zX=BTp-GqjTq-^E_w|T}#8r_GUcAE=q5VbJ8#}&!rhL749#5IcI8iPa<4pRh&Msn8C zs*$x?C;E-~{iIR-Wd82$1wYn^KJNB0%BWt@XkIXCeTK%{HImy6QNN4HnHt5J28epH zlQwy4vqL(2!r$cSH%mo2%;+n5`O1uu9^-gJ9^Nocq|2}#lC_5n8|gE!%Vg;?14mXI zAS?Suwyfq)Y5UV^kv((yUYfo)SLDMaK9H6VOcMDqlBcENX(L6x4Cy}gc9$U{f6h{G zXGSCNntFRR@@GV87&`K1S!q~0^5#fsI6U&^5ovfR@?{_`($Hd{$dkFHWzNWx-KAyM z$dj9;<%YAWI57Qv5xl*F6)4Vg(?W^|*wOcEnT z9;~8PubU_SXCAMs)e4aZ$E(Fpb}?{Yd&yn>tQN;a9z3nOD~%bQFs3V2_jqK_VA@pn zwgsXB3wT>)Ee4CMSx6;6+ufj1g+cA%7nRHxS+k$6U1Q7y_nT{VZLi3hJ0%amredG?69S=+k=^jXJQX_w;Ft$dW7Q z={Nh ze#fej6{oq~c##1Uy2pu;6*ESLOc$k6sZ=VJN~Kb%y1xKiCi^NS&h~=<0000Bisy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_star_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_star_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..3150bae73397e83463e51334b22f6406ecf74400 GIT binary patch literal 1227 zcmV;+1T_1JP)EFj4{R-V~k-r zmXpbhySYmy6Q(3Vf+=Ov;}if+kx7Rt`T)>}D)naAmUi2!H^W=BdsC(-7Nn~MWxC^L zy1GfGD<-9du3DH>rW41~(=lpisNyer`b+H$n~~0@GUMAWa226K_gT#^jekjYgt zOh_Y{G%}(6phL;#5c@&Dkj*cOH`XVYbrokkO)gI=zL@I%SR zQ0f&&>_@)#Q5^9t`TADz!|D`bRmBaDP>2T=FHA?0LL`|^al*M2>TJaa^$es?1F2D5 zuscEQqPXBQg7`r3zzPJlgyMjE3F^*xH1G)mipAzCPNNtntFlo;9|DTS<|=leSld+c z{NYl3K(XFqDQ1z+n1cCOm906D)47gEc#9txOsNgx2j1cluH|$NWNTJoKBkaMsAXoB zVgq*L7%t{cp665kp_M4L@;9IIJa=*t$FLh4up~26TmC#T|M)y{#`rw(BZKkD;PLtG zy7BpK)uQto`*9a9@EQM7$^PXtUf?eF43cX;ATB-#l$)sIQR3iH>J${`Q0dN5aoClS zRH`<1Rqp39j4|JD#<5ItPWA)1cC$ip!`3mr|v2 zVIPwCEXh79FV>?GUp2Cx%8y0qgOB>KsKUWae2Z_sWG01&iFpm5yb$`9bgH=tU))4h zRL9^_xGu@jiVhpojLVwYSkYoB`s1qpET!l%D?j3*ADLBdU^3puHE%PSTT4Lq5a4Zen}dh*~RK%3Z9?5TZ1Q<>a)jaR|3x!xouHr=U)yRp|D^JvO5{=~RSh4ap-Lg6iv1W!y95n# z3F|UWikq1_!Y%B#l46`S(9FPCr=)5{^u pzzqtSF~%5Uj4{R-V~jDzi~>X`KGglx)eisw002ovPDHLkV1n96Sib-O literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sync_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_sync_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..47d597cf7f47f1c59a10855ff097e9899324408e GIT binary patch literal 538 zcmV+#0_FXQP)y&KfARYw~)s1emM>NeWgYNNUhYumPMBYa^MtM;iTlapq0-<+Fy6YY1x zn>qQPf!2x9WHW@%Ia87|B{@@)GbK4wk~1ZI;tkI^PX|3}oznA_Ba9}YLr9gm&L|RT z;Sy4H_R?IN+!D5Ok@x@Q?$WasIRI#86r1^}u2<-qKBo=jvdW#KK6MVXdN!!s0*w05 zR+#g=xhmI=$#rfN=0bM+*i8(EAxL2^eEo^fO|ZX-Z%{`_D`A6t>=KcB@x!g0$LfUJ z{7FxuOhw#G!fKM=okNt>{*%28t2Vy4?cGGV=Z;^cj4QV7SMK;4%Gl*UxT1V@#}`q? za{oOS<()gej4~Fw?Tf@-^fG3@KIdH4YzlgXybhBF-?S=C49Zj<%VN$)91DkB89oD zn6x8)=7nN~x&9a}P`Q=V2VyRlLOthH?lJ?>Bz3MU6_xwRW=7NOW65*fxs9Ob0~grF zQlu8SW_BUPlQIXRxK}lIn1n`im~RDt2uG4wFFLruGhXxAkV+t9ikvBOrpTEhXNsID c7=zO37bBR+NAn3&2><{907*qoM6N<$g1X)W6#xJL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sync_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_sync_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..fd9432393659129a1fd35ba607bf275a7968283b GIT binary patch literal 700 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_unarchive_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_unarchive_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..c7ded29f872ca5ffbc29c7098007bd320575f85b GIT binary patch literal 569 zcmV-90>=G`P)qOYmAyTkbOOu;MD3!brzySvK|X%~ER?mm0n^}SyY&+&u$ zQ%WhNlu}CdXEv*83*2gE)4$QErQD{(kJ~Jz9}Q|CeUuv4#~>QgVM@(AOat0TNwBR{ z+SC&DCa1)ugs^yrt*qnYa_N%T%g!qF_VfK$5o2$IQ@uj0#_-vn~bA^25^>Q zyUZ}^Xd-tgwzE|{ANNzRager}cC6ax<4Q`>t-&8t_>dO%ff=|vL`l5EI2*x-)Uc0? zz|}%Z@-4#E+VrrsxZ0N0xbx2_~3ef(a&=V1hLX>^<+B5%!)1-}kK94wPkK7QixE zc9^jOXrVA;h0wxa#tNbZ!Hg9~3xOFckQM+lRv;|^W~@M30L)l{v;df~0%-v-V+GOz zV8#lh1;C6IN(+FUr0uu+o7#T6lL0Wt_;YFhpam05Fu?>9tnJUs3k#TFf(a&=V1l{Y zogTIaS4-2wmf~tode~fC4d8id)^i5ntSdFF3wI;9nwE8q;oxsFk5jT9GnxNvCJ)lF z9x#&%8cQ$t)1dCt%NQ!Gg;sXcR^xWjN()LUrIb=ish{@^{=W4Zfwh~zC54z{oJExe%@Pu|8C{1$RHohrBi~uphVP$ zS;2dhPu+|wob|P5p^aqNY+e`3`+`yv17jjXE|LZWl#zw9+Y7EuS7@|*yhh^;r-uWR(1ZpS6$M5lW~Cj7*T(t6--bbLf&GUg z9V{Y`JB2wp78?i$F#78V2lS}>sVF@5kKD*CS%11q^2CqnYa$wZ>d$rwp7=3;&5eeh z|7W{6PiT0C={UG~Zcbt_@|xVrmomkSTk=G~#8$499jBaFjAGIjGD@!7JfWdSWm7;y z&l00Q?1wyzKFgl)u=*@{!bAD9=m`()&w?jBj6d_9@UZ^OdE$i9XVw!Zv_3PQIAL_! zdcwrgX|@w4tA6Lj@WX;N>M$Q|7l!)pMeGEd_XXFsDm1QpxTe;T>Fwdj&rK||+BeT) z<-8)(p3B#lZtS=EeEWh5y8!v)ynI|43Y;eD67wuot`yi+_kW(Ls1lKU?ZeUJIi@BG xA6FUo*~UDYYi^Lg^NilHU{RzLGsSDed^J)2>Ypc%6aZ5rgQu&X%Q~loCIBueD_j5o literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..71a8732fe545d31f68dff1046cd3a33003690a0c GIT binary patch literal 358 zcmV-s0h#`ZP)7lioc;j0q53>ee?VlhV8hBG=1>aZfD6`lInJ)u3+r4|6Zab+6Bm=6FJ^)By#Pi{=Z zuzUeK#>O8h6#(x%2TTP(MdHVv(CpDiU837J7jEnh?QY$eMLQcYg(Bvw(Gn(O_n z)i6J0_DN13D}Jd1SEyowN{;R)6#AH?B&Ukyk~(m?HkQ+OZuQAEF-b{I3CkoUIWi3_ zqi1SFk1Q0El%EU0w#>1AW*{~ON9S|4O)=S0Y%GyQtW8)cKH8-Q7Er_{Xg6_VDcYsR z9WQ8>8(&!cNA$#u4H|8jng659kSR7`rVQztSgghU0ByYy_sCnF>i_@%07*qoM6N<$ Ef_Rma<^TWy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_unarchive_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..24039b67e017e5f30a103eb30152b955cd5ce76d GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz-a90;uuoF`1Ty5TT7x$%f~>C zKz5BF20<$a2lJZ^9E&E4IP7v@=MW1Koe=G`P)qOYmAyTkbOOu;MD3!brzySvNFw2h7JBmWNH`}K9#bC0J! zQc5YMlu}ADnE9-ysm85mK7*@9t>ivAy3a}mRmB=g7dh)hCYKxIv!urYLR9?*F9adASHO6rT>m74bIWdWwSf?43YK|$~#JbC*R6K@o5$igm zQihny1FVZB+#fj%SVw8fv{R+tA6ZM(HY9({;0sav!W=*B7?C^fWsTtrk^9ORA8aYn zTjqmpBzhZtutP-ekPp^G^qK?{OfbO&6HKsB2_~4o&wP##^RSk5?{jpRgO$4T(*nYb zWwh8Z2g_)&VGfqjV#6FPqs4|fSVoHtbFhpS8|GjcEjG--GFohygJrbXFbB(M@nOdD z(*nYb<)=l18Ouux3Nx0U77^xW`DuQbpXH}zfH_z$S_qi2GSIxR3@oGNgc&Of%@51N zGFk?hgXN;-ft{tPxApTkdfVCRVUAKiiuwgDm|%hlCYWF}^<#lx84^q|!31+8m|**f z-T@zMCDB{ygDoI>3w^L5ye4w58IpX_M&#O(H^y+2sNG_8^2cTm=}qI3@}R>N7MrG-xemo6w-jz^mnCIP;=`;@h&DDgF%mPP5*7 zfA{adbNmc4{4$ZU#xU?$$N%Sylm_4hmw`@N;y;*@vVU9RO@%p(#eE8a+P{JP_S zd|Oh;ypF?bj8&v%f@PmYBxcwdF4xkz__hD^EKQjQ+LNb+G`sukT0ZlzV4cCs&R@qv z%U)Kkn|Z{u?$XxNU;pjT?q1jb=6cT~nf))MHV6EUeJyj1=dn=z%UdsU4Sz>2%s%6K z)?(cT-|Jk(ub9_o9GaQd`6;d;*`FHSQ2eCkMc)MvL!3;*ge%hftI%Ut`XwtnC8 zqIuH>x9)3GT4kfQtkp3&)hKfU8_IY964&5hpQWeLd7yFG^O-(R9Ol|w7P1V;V0!2f z{JBIJ$l^NGXjQpNSkv2g-Y=I^L6eu;P26vm&+D0jVV1DngJ`=U9=mWY!#z8L|zFResNehPtci9M9YE4G++gX;Sq<0PDd^< zwRQQy-e>S}nHGxirf)^^rw#l+m*tMTK*x#RS{QUFc$e#cqBx?Zvj83;!9MH!fq7 zc`m7b#hkBjc6m+mk${|!bGP4lxZn&NRDF?uYfvSzx}IqvFg-GOy85}Sb4q9e0DC7b A@Bjb+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..ca2953f0a52d8f003de55e5b18295485d9164480 GIT binary patch literal 641 zcmV-{0)G98P)41u2(G;~qS|(Yno(^V@oiYUL2cW1v>Vm7ZCksI{>$^NifEsS=g0BP;lGH8 zh=?f75T>z+jU445n^?qjM$(8l{-S(zW*txPiQ(lY^C-t3E6O;Y;R|ZG=|UdD6wfSv z;0tM-r8*(YLoZ(73uAa$NeUr|WgoiSb53%a=je$0R3Jztxgv_3XEZKMK}K^yM1G<@ zL8#4Z$MjotB9Fu6?#M0Cus;D*;)7%27UEFi*y5P;lU8Vy<&|UFHUbdszEBMzNxV^) ziN-)<#;}#Gq|+D!(Oh%PeMT~lc8Y6X6O+XDY%|+Q#?%(sJ8;ll1aHHnaVOX89nvt{ zM1^kTkit6=+6CirocCb5hzjpWC7a3edyoJCG{YxGa{wTLUm{{MStRm7ggwE`l+9*g z)XMOIL<|#Uq0^Y%GG;gCjEtEGW}FN8E%z&5i8);-QDc}Rr zR5ojdJs@5Yu{hXAzZ1qS)@Rd6RQN?{a_A~Tw_?(`muvPOX_zhYemU47g6m_Fb9}CL zkc_D(vagUI2gy7Y;n_dL>1<6i%SpaqMN^+S#X9&MD_nHo zI#v*Ml@7QFv!6u^(7S0isiY1$-2z=i(s%F1Ct5buDCNy-3)K z3%{)qVdDU8tVmgdpGJ$Ie)y}ONE!`VTM;sXK#UM+Z4pX~%W*xC)nX=xc=@vqF_W4^ zw$^9fM@r*ECT{sW{)z0^73Dybo&yxcE<2xmX5JzbFYwJUooC?;&|Hvdi4+L?Z2x|_#|bQ188P%6@D?MZPUkq0FFRQo zFy6@SHy9aoI)|~N3zn>+7#C#sMU0|4oi5msN?+78z*rj4McqJO)TAPkUh>djjE1ti z5yoKI-HRyPToQ*4Vz)hj2jfAJd>J>`KM>axI13 zoZu(N%-j@%ec{)BRxKp31UE-;d4M+uLrcyM%a-AVx%5nwJ{=OApROClE&bt zm0|e|8YeGizq!~f!Zyke#f{gg=J#DLoGl0c)p+3=aHVHl+Q#Y#8X*vY}l9 zU&kc;g_Tf|-EqItQ<`%&#HDA8gtQj!ND5+wi|X;YIM=@xKF9ED;UsJ6OHSfkO7Zh0 g{y7{Dhr{9c0eZNbp!yHz{{R3007*qoM6N<$g0I9|nE(I) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..4ec7224a1b1e6415e16045a57232c21213541855 GIT binary patch literal 1135 zcmV-#1d#iQP)B4LUYKWI%%N;!?2JWL0eL)2NSS}nn+Jl zqAL@zh?`7TlBxk?up~8s1|&tC=QxQau@htwCt|gjfu*1s)FDE5a2QKbhq;qT6lY-I zLuo4S^ZGx%&y>K2a$iaivPvw+I=7y{+QHGni7I0;$!V@x}xgJUQB2o&5}K=l~gB)I;>3Q&>D%u z8pTxvbrr+Kp*1F;vaH91hEi06F`@O8MaO00<#-`iP*hj2K)jt?hU{ld=qNSwJ^qWDt|Cb)IvB%Ptk%zb1|tY6yO$2EQ>_iTlO>(J&%dq zOg=7S8z$BcuWK=}>+ouaiEYjAX8kHAc9b|?`kVGZyy6_e#9qN4#W;$I&ByCfj$vZQ zxD>DXnAlN@i|leg4--2=aq#z28r`7vd+JO1JyLDO#MJ;jdqt#R* zWLMKSltp46FohG*E)vt-mC|K>cN3x7Oij^3%-TdOPFB*F&Sn!QDH>(YVrN}fCTGg> zbX_mTXUc{GT?d9^Avcn?>9c8PcBX9F(beJ+`m+y1Zw~`_lv<>*7%l(V7h8$8j9TaU92S9LI5--vN5s*`z?nJg)!%002ovPDHLkV1m`u B8*l&s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..ea451ee286544ff23639eb2ed78f3aefa3415394 GIT binary patch literal 1563 zcmV+$2ITpPP)BSIcv5bxEe zq;gm3%e}Zx0*yI`xTJG5CJ`6;iam(S+Jzric#y$}OB=$2q_WbSMO@q&N|S2h>5sTS z`V&toc#Jhj8fguW5oLZ(A&#_{@2Nv^{Jg{CB#^{oyv?^1qc-2O7jdLh_=%!YTu0Qc zr5?`{%=6S^1ETIarHGOi`X^rc^A_QFoBrs3D6KHgOFu+eKb|BKPdf6ky%^+UG@|M> zxzNbPX++gHd>GS zsQQKoBytc@^#S(oWIhr`^SKjyA0Vm@l1SLPBdTU%?{>B#VYZdqu{RS@)txZCqFx{M zW5>fZB!Z^m!H!=&L-i_Qh+#RR>IgB|X^%u$JM6@$cLOXVhLDv`>XAz=k0d_t@lpQ32kkmnxUBZX8oQSd>N;TUE^Z*oZg4l&IwIIk*j+7_Zt73hL zSi6d#?+Vru5l32tt%Zmq#bND?Lz|+k#UYNg(EOj+Jy_d>pl=h_?nWFbFSb1FHTq9_ z275wO$jQQV+LQWPILA9K29_6c?t7DVcEHYCh@v;K(;<3Ot`NgA^-I1O?6fm7X@3M!wVW8j@T$>epQ$cf_IV}R z3y0INcRO1gUO1c{?S(_Q)$r2uTnCq)-&3z=+(HDt;fA3l8i3d^<`;+H128l)-r#E@ zq#YSbqTl{94?lsG)Q`B4^07j>f$C0zNns>cY$nD=l0qXQYPgl&W4!OP``;&ue9=$$bc!|xM3Txezo-+uVKQg%9Hvn zanSd!JBsj(n~oxYhe6710dM1^HNEaNadsMwP zG8!L-_!z4`o?Q@)Lh40@@%S*vLq9~>;D`_P4vxm5UcHv+S0?&}eJs2m`eWg()7r%X z^?8!{a28#N)hU;A)B#^wKXkNxvQ^>PmA8adBrUO)7i9#aDC< z;{ja3&o0De?I8shNp#&cfeE98rC)X%Of31McwO== z3KB~i^t|y4w~y1EXGqiHDU^O?dvI}lLL(+|9{scNWE%4+aom)=yhSyJMDS1i(C_Wt zMFD_7001!B&_4);aCi8hY(@6pM&uQbG+R7U-Qtn5h!X$+000000F3v+Z3Q@&>cap4 N002ovPDHLkV1jS4;Qjyr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1cbb29041b2aa585a459d134e7d0f692caf3f419 GIT binary patch literal 729 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e69bc74f9dfafbb40818260f52236c6f021f7f3d GIT binary patch literal 726 zcmV;{0xA88P)hpfwr$(CZM!|I`fn#^x^wdEHHyDDiT>4KgBd;g7CZRd zEYUaE9emjrau$WYmpiI+&Zw5Pr|aD9Za2HwDGsr#MUB#1bJlQ@XSC#6UUz~SqenS0 z%URHmn%!#yLqv~orabo@nmui<9*GU%+)8fxD9qyGbLvHKl6v%Tqqqt1wcPmCc zi}{_#Tq4i;$()fhrEj1)XAGz6X0iB>5xpYwi7_MN5xFcklP__lF{3b_+*Mg>N4W=_ z*dh0paiVaA+{V$)gua*CC89R>8Sab126EpRJE|P3&V&)|Ia5brI-g;=GB%n& zQgh7czLWbX3Wt&ADts#UW7{p_0J)aY$`Z@aIcGw3j*Ti~`9^NNDBRmQXFIuXjUDZ5 zD0g`j#_>+4oT+^(vwQrXtK=4n!kDh?n48|0+VPU1ve=kDmU+pDZC{3Nu5gDd(%dY* zR`tCZB4(=H6?|eFs{0h|X-SCG&>$43Yh3 zCb{|i;1BCZGb{Q*?m4>~Hwq)#+Owp&g{>Xk$IRYU?^92D+y{OKl3b55wzIVKxaM5W zT%PWmxgl)e-oBG7%;*HKX{q~b+&6P?_l?{|mE0)NXBomp)h}7!$d%V{-^nc*1A)Q*1h#4)n}L93c>n+a07*qo IM6N<$g74vL8~^|S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..49ce7480bb6bb1144577d0429fc9060a51c6c886 GIT binary patch literal 882 zcmV-&1C9KNP)ZCNr-UY+`Q*JJ^9XFr(hhP3p)enZ`D* z^rgz$Jm(@?8Yh~;iaJwC_VtNsJ?C(9>k*Byy2Ae_8Q=SA^SZSfjIv&nlX%`z(FmJ1 zJ&AkF6!o)B^OJPB$mmfoYwKuw5+9m6>SI;yB$M89hn>x1QvD4yk=bqQQ8_Z>`}tWb)MX&)gh%|QX3|dCiW5d%H*Z{NLs;cm2!G`O4!^b&~f$l=7s!5u(UXF3j0{^D$^PqKuZXQG@fsQ%e(F{)2;u$+~noL=6L_IQ+VZ}mx@&M&zF z^VW3XkLUC1lJxeKlnzrwWiFO>Vw5nwud7U&Dw%X}{2wEGU&?RBDO=HF4JW;toR*l; z?@}&}GUj)jCwz~$b<~{nlc^%jYSQ-4PEM*%Dp)4+93*Y~%;co{q=Tb6&X;ybesUt8 zbb%gG9X;J3?Q&z~CMTJs(`uc^o-FNmr<*h?Fu=WJk`AnIlJ<+7$82K`6B!txhw&}r zG+#q9X_Tms>3ynkrAdu4mdg~nH7U<*9_;3%JS%v4a7*fGJ@0mZQZ8y9M|x4U-gLA% ztgX;cQl9Z_?PAYsSIJKvccyhs6#uerQ2LqNvqVH)JnQ8VsJ{jQ=f>zC+X&H&dDU*pmz)sEiEm70Or>gyCW7ZhyVZp07*qo IM6N<$f@@E**#H0l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..2aa34ee01ff5bd728da95f64c646b43748e4d88c GIT binary patch literal 1331 zcmV-31YN+jduRY}>X~^SxFkr_G*Bv)Wnn0p?qg#x*>_CzPW( zT^Y{C@D`1j!v(Sy%Tjt%nkR7O;535yk(s1m##ts)kvnr> z8VyLme`~1AZ8<89YuJKSX7Nl;O1sj+G>GAioRqd6D=p@goRSvCDy$XF{W&8ogr!(3 zi8{EmD=k8iR><-+Si#+r9mvNlRoZ;47E4jd4uo)4kye0603d_)jHeyV{>{9iHYS28J{>9%MLa=p5osu?Ei)3!q3- z;C?2ebCO5Jf4oF2fI3ZqS2&BtIlt3*fp~yyPrI9)0Zij*VgUk@7R*d#+CyRvk8lA% zon{(S(KyUCqQ_Mn0tjRph1h_`Y6^%Bc~}f!Wg4$ji^9A~uv`{*5|73h(V;VdwQ1xh z27qKDDT+(H;umzP=!SR&MOr~(_}gY)7q5s!Bb66@AD<3F0MgPaFJ5p9sc0M}RD3}{ zbfz)HWEwOTFBpzaFW=@at&eaq%5>T554~4 zfzqH%TLJte9_WSMA>87Lk1(UXc%U9A(?VE5E%87*%=pr(u(slXnxIePZSg=G%=pOL zSMeZvy~P7Rfj-TM9_a1FWzAp@<9!=E^l6Miuef+a7;$K=Gw!-bup*7MXq_Ujct=CD z;*H}FlfmCK@{)*FJ-HkTa1^a)!~-9LziGURRzjw`GJZs>wivL?-!xjF)l4$S5_Hyx z0Z)+PUmCm7*-c)_91oC&&O>5AQ81rIKGva;!E=%|dZIH-yr7w1Y2m80uHp+qIgCas zcZe61Cp{o(2PowGnSCl6k>VAvvpL(-GI&RPM`d&hi&wZPN(3pU(>9TnrlP}GG%j&R zrYDte^9%K8Mnk?}sUq#FEYjxS5*-S#8jXz<5}#0r`4*+^Bt-PMhQnw~SG;MF7NlL^ zE-{CPIHyY^RB_#iCT%;OGI(3e<56YWE^ZT_ke4Znv}--mQu#srqE9=`%i_Trfb-ewf ziQD;w3B&<_D(way5^E8{c+5#+DV=FXGdeMf`JB})j{|_B#1asJPrHkyc1?3rn`B$0 z8Sx+yHc2z$6&Bki&44$FvP+r)&ok35X$IU$ZC2yI6e1|Y&CCo)nj)_}6FG+&#~95o zg#9z}4i7+@4lbUc6unqNELllq7Za(-gT_Z;NWjw+iP!Ty-%*ba^k*E=L^7G-^rjs( z`IP%JJH6Fi?USqEcG7ZX+C;mi<#Ez-W!iL%Qg~i+JMtRRQg~N#HA9*WvJ7bvhAev^ pKM}UcGNjGOwOI~_!{Kl^eg!j!aZ>!lc2ocW002ovPDHLkV1g#=WF-Iq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_visibility_off_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..95906e90f32ad71cd899a1026cee6f5a3970c073 GIT binary patch literal 1724 zcmV;t21EIYP)YGJ5n@{o=W-tBGx{=`sVra>Ma0=ajOEN`0)uJCM?A&N zoXws=O|-^tB0?O(19YQ^bmh>V`)EW&f`lV&C1Pvtq7yN+O6kLs98LA$Br4S<;$WU( zJhrW;KUW1J6HPRUcnv?rc#plSbRr_O$8STqoNC!lRP34Pz$_<%TwZ27$sP{zOcV=1 zB8bz5-Lsh}7WhO^&L?as*}?u*A`z7F6t!F;Z%a5UTZsx3iMo`D!4vlERtoojiBuUU>A zMVuy?!=1zdl!?me%K2<2p4gj5nT1{jH%cZD;adPuC)!$4Mk88Mf!0gnH)_xeApJyo z>`Du?S`ZQcP>W#zibP6WNHID+iHbj{&uD-wC)$ZY=ydia5w#f)piiX74HPRAMZ_+m z3AKoGj_19?Q`wvzTZkn~D*K zqmx5DNf+Osvy6Qxu$X8*4aA7S=zJ*Y;Rv)I6=82xqWAc>{)EMVQ_twL%_ zDtHgAjchLez-|^3op1agvlgw#B{{ZXJzA6GZ?+Q+76S&NRYU_xhELJ^O2l%aPfbVX z-*^Lj|L?&L#L>G`#K%OpN!=qwG4SvLieI+3# z0QyA3jQ`DS$R#Q!T#FT^!Ib0z`b6_3A-2ShYs7@f*ilCkVk4*%eai;pZ%sQUiwUE# z!ZiM!63`|h#D~TUgdJ1GgiEkv3rUDMcD@&7?-UEO9P~`zc^L%$C1Q7M$RjFdJctcP zNkV)L{w3l#Y*8tZnAO;=d*{Tft%1PqK1gFuN4OvXoLp0cx5;Xdz_%HV!1~Q$MtfPp@bmARi8A-I1 zx}w9GRG{&Me)_O)iPmwT=y4Mo6`T^-L>Gx2Jc~vd2L&?Gi((I7qmjd&flJh#kk~_* zHfR*mNHI^}exfnd61#{f6P0kCR0?}rPc)i3VjmGYqcez|0+46`wZtDp>5fhjSNM`> z7tcgr^0#hO6aNsV1zK&{Rno>Glw-EsE0M@wiCPdAzwrWEaazz&QpSFKKnZ{{(QA?! z+(-p_(|L?N#S;yAfhqh!ndlVB98RSOJC^e`4|6T2(U_g7O)a+PKu+Otx>AUlIZ-gM z6Vu4PKqsm}OP44KZlcH~^29c@b%~PTRF=3zo~XrBl(|Hn*ou!RcZoc)JFSVkM4s55 z7s+#pJW-9y7~&Eo!QQ;XPxxsipKv0_P@3ID3e@0A2CyF67V$Pm5HhZJorOdSROe`( zqz|jnDy19uu#fx)O(@EKA~hm3hpfj%K6Uwry+P`etzMsEGb2&i#^W$^YPR zI2;tE9}}3vYWB06HOyfmgQ-KJ{5?d|mKEH?#?57BP(uC``53_iLgS(x*(5R~F@;Zr z=QtH5Tx6pQkBEeu#iUE`paSq){hLXeNaxs)s=-$v$f}<)= z(OjVo*_7dK%@uS#B{0hH3e7tEZX%I&Xg?qC?G#excOLgz4AUaZcfaWZ5Vo;Z1 ztYqm&wT~9fAZy3 S8o6-*0000P)>w0&QeJ{ZX4dhQQ2EL_GE3kn!CgY_E+r%|wBikxz4W0X zxk*WCa#Ml6?8Wki)`2W}vv7OIeDX;o$j3b1<2IY5{!Q`CxEW)C%&f(2vmZ+Vt8g15 zK43I%tHd{q#I29`h(5TD6dSE^8zz2W7;e_^rlc_(*Gf3lU^)kQ&T|eho$3+}t8sZx zNr@U6xPi+DvWh}s_7UDb3X4KkKHzeL3=$Pq<2G9qO7WP;Jf^fL%nopHQwK{nmCnU| zqH>?yDw!2aRf&j1oWt#aC~U`NyC@vQ?JS8UJi22UqS6hpG*s!KSh`DCB;_uax+=c} z%VL$Ti{&m!MWX|@A}W6t%Q=-Uf~|vS9K)7g<=6Ivuuy zqR|OkVU<6J<-A@%v2_xS6x_v9PvsZ;HK^-hxl0NOiyl}8s&suU4ODs{mL3uwNw|R9 zeo@%!$HKTDw~Hi^h^U4ot4e2gZXMZGG7FZffo`rdMWIBLn`;SCm=*BJk&Il&B zk1V`1jvr|yYLp7#fHuu}KwE1c(1JU{4i`T#+&;pZ7=>GZ@e%!T8zsJBc}T87V|*XX z1`@LoxAo>lalL;RMFYvqlkoeXuF`WzD*mDkZ?Nq9U2I7GyV%g*r(#2!*k6u`-32QH z<=GiKN_q-SIZZH5(=0ZXh1-+pf7Pn1#&F@>Xf1psG9Nk4>i^SPFpxavn=c-Z$K&yM a4Br5P$Lz7&lMCel000023FjQM zd6!rJy540L=Lu&pqwT;?GQKy5Cf*hLx33O+>htp(s^vf>pBz_(~V%-R&^ z5}H=o`ciH+2QATDqPb;;*=QD-gLYgHzL9q3U@@9mmN9NZm1GX)p_pS1o<((I#)I-6 zR9&1XSEIVdiO~hs?hFQNUPg7=-DY7ps^RXI5vNeSWWgxIX;e$y)iGyKouQ}`XDO=F zl(ir{iEgM9r7!5*!I~lHo-`K)*o^KIC(g};akCTW6Lgy>V8Nff?DgRPne167&Krbr zb$p3ELm1CEabAxqu>x#I_i1de;-~0#P{3R~jc%|zqX(UPWW+D%p0*&AV=G^RJ&0*hpJqI>e>jVRC_2E|0H-0ih1TBDVvjE7qcQ*wzQX) zEgj6kA~drsGc@NCnwI9^j%+P7TSTzXbn!8oZ!7?>k`=F70KP%IH;$U+sh%EMqLgepaDB_O##bJ>RWWE$%c?6M?E4fIoe1Kix#CB97&Pb zd(7fo{6%6C?#R)yzB?^GG-Nh8VIB?RFP%+FcFTIE7rmCt)mk+rTNdq z0es9d!nBl6*u>@88nw$xxf z)olZ{*;b;4d|qTFQL&O2DUj&kEM^il($9csW|W|MXQuOr3%>7%X?=@c*v#&IxDzB z6u5#F=(Hv~ysM`LI$ia%3A@o1on~Z(^Yb)9BgXCG3AeKXjr!hyA~Kaf&teV}k2s9Q z%AY7xeBv84=CN-GVWW9yd@26$DjKUfOhUk6tVZJ%@q^pYDCZ&x2^Ue0#+{zy&?x6Z{TXu%jSi9kw&5YVGKx8@Wesx~O=livD@g$D(1@|8ZechKjYYvq8Z zCY`B@PGq`AGj!q{Dv2Y5A?Pe5LmYUQs(Q!$iCKWoU@|08+zVmN3>=BZQK8Maa9`qK zx@1yrh@bYj4YOV+r_u#`l&S;(93JRq%JcbV^J6^pWKGb)- z`pNk4sJM~IZ1iv)AadOG7~KFlIhT(}xP94T;2!iP!D6hJ?&((j6cIJSOlz=!qD z@zam~;zB?C$aTDa3?E|7atA;9g@21}<9Pk?_%Pn_>RaQ-)s+p>vqBxDyW&IFPzUMR zWQrS4ggVWCi4R|eI?X>Jm0?p>pm%4exA4`@gi^f~Y$}!GW%NFDymldRwBpV=@cC;=N&|-z zJqHfEgcmq;VAGI8&%Hc`o{vLk9-Bz=IEM;-h{lB+>XE310m%z}(Wu~TsT$rx=XQPi z3%w~0ObXU{Pm@436pck}DFG;<8S5PhRLv-n0Bp%3G=`}%@7XgYDR^7+FkOC2!CU)B z3f`8I06L)&V-L~c0?N^NUP8q4`Xo*@?o@t=b0s946M-~feYBO8AtjO@%1Sg|7k~IN za-|6Ss7n!iB9r=PEaqtOh$C5yMk6x)mqXP@BgU=b3AYeKqeWO1W6dH^P`4{x(P=?; zcqN&w&{@v)qQDKTK&K7a5*{)sMXN!Ti+UTRuBcam*U^eonsixsDdlLrnQn~*o(-P< z+0S2Nfpl(7aSJ6J!|oJP$nG2yLTic=(X!?y)*dJIxRd2XSs8aq^e!h#tl4b4oNp?L7f zhTk4MGURU$9@$@vF~%5Uj4{R-V~jDz7-Nhv#+dZp=fS?83{ F1OO~S9V-9; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..3cb10924a0912d9f64d338b9769da053bc051da6 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeK3?y%aJ*@^(YymzYu0R?HmZtAK52P4Ng8YIR z9G=}s19Id&T^vIy7?T^C0uTIeOgX2~{@-4rW`SaRO?zLF8zVzTLHf)E76O$Z{hqFV JF6*2UngE2qAnO1C literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..60cbd9cb632c9f58fc7dd3379dda609390ca5f04 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^6F``e8A#skDEJMe*aCb)T!AzYEKT2e9!N2k1o;Is zI6S+N2IOdYx;TbZFeWeH>1hf~_@91(yO*n%%kY1DGxK4;3=Nm#D=w@Ma7_^DVParA VdDB(ycCsqSC{I^Emvv4FO#nC^B`*K~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4378ab6bd300672a3c031ca471a570d66c7d4acb GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvS8AxUb{c{0QYymzYu0R?HmZtAK52P4Ng8YIR z9G=}s19EgdT^vIy7~fvn$jiXMaoFHr{jM`H3_|B#nSRysJXy-X(9pAuF+zl)K-5lk ZCF8E-c?ItFhC(3IJYD@<);T3K0RUsyB%}ZU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..0fdced8fce76a0f9a527388935adecebf63d0dae GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^9w5vJBp7O^^}Pa8OeH~n!3+##lh0ZJc~YJ(jv*C{ s$r5`OFVdQ&MBb@07vc`*Z=?k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d64c22e9edfdcf9babea9681c44e2dee53a6d2f6 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^2_Vb}Bp6OT_L>T$m`Z~Df*BafCZDwc^5i{T978G? xlN*`>5BzUTIj7P7-(I3-fns}2dtZ?oBSS_(`pg9u0+k>GJYD@<);T3K0RZru9Krwq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..7e699137220bb79450d0d9d5f361c9d1d00ed593 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^6F`^|NHCnYy)O!+m`Z~Df*BafCZDwc^0Yi%978G? zlNa#xGzBL7Prtz3%hk(e_`kiG`LJJxhRg947gh+kCW!PfF|eJy=_+?SSrufKr>mdK II;Vst04bp$H~;_u literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..8d2dc1af6d15ae58832f730af6da3045a8b3abcd GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^2SAt+NHA0_4_pPLm`Z~Df*BafCZDwc@^n32978G? z-(K3t%fP^K*x+CNt}`(VLg!wYe%10kS<1lB(6fy(LWH3})J}CJ0z14xkt6H%UqO=_SvJmUFL>pwvYX_m?8)9KS}$lP3C@R`&nnPJhk@OjQ5hU%WD$$ zS=vT@ZTfld<>EIz`DebnbjxjQ@#Qc}o6dC0Q0)qj_pP3Q`pgBQ3%_M9uwAH=&#D#B zXcgDUwWL}jppol}!J`>&CPot)p2(P<@MP)}c%s7S&QUa}L7BzU^MGK}9F+$gj($P~ zEeh(K7ETi;KbpgXmtdJNdCp|cuJsPAx0V!|wfyp7t`&Tx$ZMh)((lTZ?%1E;JZ*0A qG@i_h4Vu2`Gukwnm4IFj{r|?-sh({{n*lH=89ZJ6T-G@yGywpy{F90R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_archive_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_archive_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..3957ba05047150f712e618b8c7c2f69fae2f1a5b GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z_`NG#WAFU@$HR9H{C>$wujd{ zH=jS*cFRFyfu3rtqq)$e4GgUsExTF*9GJS8TFV4n6&Vy&Thds06#i~b_tma_&wk*~ zXM@8MQ-ZuSmtGP7bzIBc=F!3GCk?Do`3FqzJ#6F2*eEAnaeVg^`?Xu!>kso~tW4c= zPif=drxNS8J8_>4zA7H0ysz-w>(8q$#y^jYdv#j&Q@fs2LGb*ahh&sZ4%XJLl>Sw6 zRfPZR&T^ki8w}5VV6jf^am#(+x$Wkgm+L>6%wD`h*XH6j&39U&52ihe3ue5hajw{x zfssYP0ZK$!cz{_A^Z5;wHhDPM9Q^Xvqmi6A$jkkN_F}ywzo?d-&|TDcUa|oeSh26o68UFFBJX# uMRH~4G>eCv?<@ReHh;Ofc|AB}?HEFrmleFV=5+u@9fPNk1bJyfiBlWJ);tq= z-=R7?d`_Be@{hSptIx6}oqW#GtFc1QMlmd5-i21CtmD#2uFqosxtQ*BUUR`_fu7|z zarX|<*^~dc=Dqa@``4Q{Wp%xUyVsWHIZ-Y?Xw|LSTdPx%&hONt ze>ESxDZl%knzrp3`6*k&Y`nL9V~+h~TXuJ$TIxFE_m>|>mPP+zf4T8Bv#dt--XA_y zd4I)cZkhNZrL3WLaz|g9+A-5-bF~-nn;hGc>yo}%_HdN&-Lw2r3D<%a9gggZ{2j|A zdt^sz{l)-6 zx#$I40Bec|p$*VI+j&Z4rW`9G_q84`t z&cH*;3tBWD3I;fdbTDa^A$u<6n)P&>_Xe+Lc`wMGvGu&_1-mn|o(pBjrI{9UUXeL$ zw)^qTp3JX5A9Ouu{%V-FL3=^tjpH)rHpM4aJgiw~b1uDYLSk>^;ptqD*DPe5`Q85U ujl)a1VjK26HQFt4e!m7%(g|t%%km_Ezxu)@x0ApW$>8bg=d#Wzp$Py;lOb;a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_archive_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_archive_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..94c55174bd1147c179b3aa65dd2f607885b79ab3 GIT binary patch literal 933 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfjP(1#WAFU@$C&}o}6$Iw}+v( zx2;`}7jS!Kvc_DAz*NG*wFF&64#QV_SJ%T#^{Iln%bAF#~d-%zhHNv(Z+U7d-&)WUb z@6EBz0=6%G4n4J%oz*AUl6@y*+2YUJ)M8$nE&Qyf9P`?5@n<=enAh)?eU1b2;+B0r zCa|t_@yk6wF7G_Yt=_=k$G|v;fysiArGSa!0gJ!^PK5^H1$7MQGOJi67F^eEU|`}< zz(I(xtqhVspddIUYJZd0)8q5`0~j4w{&n9GQuXI2gQ&oi#GP%^PW9Q#FJNji%Ber% zr3z6ZdCgsLY18BLtScH82pr~~;2%&UHOn)AgYgpwm!gB5qaw=*WsMewN|sguh5iKs zOiu(woEmJJoH!=9(@PP9y2B}G$T&a)Cgypq=azG|p3nDsY&o~r|ai^;iIAOBg+6XnVdyBS&AzEbJmov40s^Rh>U zkIaktjYVy9{O+mL&8zN?d|BB2+34fnJF9ivoQwL@V#F?hQA KxvX zc*;&?S(atoFeR=9uUsF(xnoUqYi{@DT(RUBExFu>bHOid_a!7wc%$uy^RioXnbP)L z!s3(<+NN~MF7ZO!JKYi(XMEH4RD3*Aqmktd*-)bmLkF5rtBC{sQLBXmZK>7Pfhv}u z1SROWB`86GhXf@kK@Ed)Kn!SNL7wC}9^^@$6Akht&+#Bj@|<{(CwYzsS(4|(gFMM| zJjjwfCm!TUp5sBDBsei3PZFFMkS7UF49JrNCkEt6f)fMsB*6&*c~S#)LB0efXhp47 z4)jT_z8vU*T8$j2!;Biu=oA-y<{Y~@{o$R9o9W)l`sm3~*3r*U<(5lh0t0lmJsf(#KO`*$)!O4qbu6Y5=l+EeaGEaWLbKqax zH8VjV_$m2#P4OY&i}Ng!PP+BVnQvL?f8MQ~FMP|}S)9_Md_Q>I&7{_RO1VhxKX7t+;z>>okMI%3G_Kt>sCM znQ+iDIjl){(+$1d|GG@L>X@ukHf8%7DonP{?lL#3+`i1ijgc#$fk|Wm1FMDuBbUU# zh4unab^&(-JKGWU2f6bn96#63&(J?tUYXK>FUSyQXYbBX@$-)iz8 z2KJ#Kl_87|ES_+8EC)M6Kjl-B??v^=jiyJ{X68f%pZVx0CVwWX_|3$l`=%~%p3lQp zvW6#?Z{-hP(e{#Di8GrHNuJ;Gc4lzczTLIp5M}XLti4Km#j|a|_+s#M^>bP0l+XkK DCkeo$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_archive_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_archive_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..2ee073ed27944403175f380e105d0bb4d8863a4b GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFqM0{IEGX(zP-wr63QrY>|=8p zgQ|98+_-#DLA+5unF_8XU3PWiC)Y6b>7#zb#l$)6{WA){4HN?TzXituIP$! zw)}R>1ut8d9$~G!SaKlg_x-Kzm(`c)Xs-J(dzm2j-MZ^$#?vIsf4E=v%kG|;RfUY@V;6@4w%?;i5$NRr|430`hzB314MoQ>{29Qw*K;ohPRPOjQwt^6Th zE-u>O>KZN9TB{`$Ez%XF;Ls@Iffs4yG&5;VKu0@ejcv*mK3u63Vqx;1tL})4d8X2c zh3Wikb$5jiYbrMZnKRY>6+ZM-8nH5+pROLR@FAyi6OcJoJzn91Po)tX)A`Bj=?Wio zDmMX{6V>w-KJZi;u`}_X2(}WaaF}(0HO*A=w?lk}XVfh^`1Nauf~04n}vy$^zoow!gKDkT)ol3 zS#?k)+U0qo=Dy|OUp5w%h^0N}tvbnmMs#lT%AM_6wQB@odyoE@k;QN5Tf%j2;VG49 z*XzlZ`xf0=dQtL5Zg>C!#}t#U~zPSH~N3 z3|G}0PMXMX{6QylU&2NWo@ztSsncg_7ClT`)w8Kgq(gaSS@<%0&Evsu8#F}J1Kw`Q zkdHR#tlL(*rCao+^M0w6uNnN8KP&y(8$QGC)}fg%&Y$Zn+hCCV;=Edf)~y4r8u!aP zZc4aZb(^6(>)5#!_slMutaJW)u6x->l~vyhOnScu?A^XNvu9D2@lXwyu7D*mp zFlt~-VPHPNz&3%AM}b+wfz6YNpy&b`kt;nTT%29L_;<_t^re3oViy7!ZpLG%3|wuUL?b<7T@ ztoJi2&{3HS6SIapC}@zwY(a)p?TWZ~lV0<{z2=KEZ5m$L3iv+e3VDAjLn?Z4RkZu% z8S@xdWlngxxH87oG*&h@fwAp}F|T3$mgdbrjOU8xCaTSQ{{4%Iv1@h21pc2>?UL?g zh@bv!#;~9~Qt#IB7#p@1oX@&!X3P_oTr!=vNa?b>pU#1+wo-``R!1sWF&b~=Hvh;Y sZ{YK??Z<@losF?G47EIvbHb&5-$gFPyEbK<1ZFb^Pgg&ebxsLQ0E_s3fdBvi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..316fc7732594ff0a1e464d15ce7ac79cc5ce3aa0 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ydu{YLn;{GUfIao>>%KJaH?>X z!QGn+f4eMWD0E&j(^KGO<8J@H1ZYTywI>7I_oTk&ot<}N u<}Kc(uZ#BIsZl(0=iVD9pv}7$$*x|`yu#)4HASGq89ZJ6T-G@yGywoaB2I4r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..abdb50c2da8ff2898e376a1dabcf18fe17875534 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgwtBiahEy=Vy}VJdi9x{S;#r?H zjI)<81bJOh%5e0a;3rXZK&<46MAP^6jkO0;r>l5Qx{~_))2_?s^i{8%2Vr~bMC%`A z{6M1^94`HwF9~Ac2M=5tc9#5`^XcBw2E(Ucmp0fvy}N13+4xH;U+0oyUuyv`#kaC`NVynW^Ui}ObhBulVbZ+9zL}f!f#Fj PgO0(|)z4*}Q$iB}7ZPwC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..9b4d9abc81fb27cced423a9d25c6a6e7af4b4dcd GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfpMRwi(^Oy7}YXzHc!uO5eUO!l~{-U|6=Oh(4%G7&5zvkH|&YAle z8h_e19{9t`aVEauz@PaJ3IDuUp1FUx_k$B?8+PCTGU!i5trK?XK_hw~`Q=af;C-7f zF{EqWPs?mLJ0*Xk$$_9#=3!C^I!|ApDZcqL{?bggC_U~ClhmY6WuN>RZ#=_omOiJ! z{IpjmJ$L@(zcjf`>Rjx~pYJcvKPGk7b>`3YMw8fn&wnfQ`TetcskO$FD}O$X|2O%i z&t=}!r_+`8q^LUo6#klGBW-ym_g>w>>;Gc=Hck6j@?01x=shPb;dfg8Q1AF|IZIGb NdAj_lw|ZhKC-~KG_Uq~)@GlOx2vLG?+o3Y rx+yDq?yBnh#q0g9mi+{}wSrOUtnF0Y$gPP$2QzrO`njxgN@xNAU0P63 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..fe91d65fe2a7b15d8e2fb0b1b5a3de03770e54be GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgHha1_hEy=VJ#Q%3?7+Z!@pZ-p z2Op&dG0sj79TlMioX-5x+$Rt0Uw9*Q!}^$sGl9VHL-ygn-#@qfshc<9{(j-cQ=9?? zdW=jgDMrSJI0Y0O8W?~a4s47EZg8oF-jrxLgULB3ncXJ!Rvu`c8)6-M^7!PC^+C!~ zX+pXtOZ~R^$i&<{=n|df=6=3?>gKh3UcT%CS^xL0xUCw4q;ja~eW3FhJYD@<);T3K F0RSA`Pp|+0 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ceee96a99ba2d760574da71bd946821fd0953cce GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFv@wlIEGX(zP;dR$`ByJdO)7B zjNu653I~P_;m(Y#3Cr0hFfqg&mt&AiS36_^)W*=TYtyXr5r5y?YX4j#YP&x2;^&o0 zw*6sW{=#7kznVBRXgK_N!A)h8Wy?btrT< zTE98+^jG~SYnHD6EBf+W%(l(bFV}3J{3hM_^UIw5JRrY5U|gnW+_fmMHxR`0boFyt I=akR{0K0{C9smFU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..7bec1fd2eba7ea94e97d60436f04fff29a5d846d GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfpMRwi(^OyBuvdC7-1zWXPucus<&B|1hW z-OCuiDQj$yKgjS~P~=8@$ALN)<~QyE3HD7TazG1Ffdh~$01}!2G-HVfKak}v2;vV` zP`2{UI=cgEQ*U2kk62#x`WM6Xm3Mq=8#1-b*YX>j3SYJD{EDmk+gILN^)*1va!FGA zob7g}j6|ci#htQPzw%n}v9)TeJ$Sdth3ga8JDl6OQz1N z?b})VOmgeI(<-Z#U2mjM_597BIw$ho=Q;f~&(~Y0%$|NHb=qVz2Sktq!|e<69Q9~FOH2gL;-(VWx_F#oH%==NEt|;90SRjV<5S545S`k zj)COD@g^BK22#5t$M6_M!O0iSj2fpnIKk26l&f(zf)kwJ1SdFo%31zv4qxPy^5=+UAEZN<~_%a2DL|E~5%>Sy{Px6}FM=Z~EcSBWu8vwzsI$U5og zRoiR6GyeM@V%DxcB$>KR)~jOCiLyO~785?iy?D>Bx@XEmeziGbKq5vQNZgt7=({l2 zXLjLdlm65-HQo2$@ZmRSI8&Ya!-xa#Rd4*zJ$NRcGpWw|M%B;9{lRJ1r+gex5nWW+gLQCpzMa{jw zWY_t-*E4&w6lJeDmlp3{x%ZOH`8B)rt5?0fq{P4IOtZ#E1umNoCjLbSnl(N^nO~1I zzgT4D(or`xLp<<*UUtih`sY`r7ro9}F?rXjvyGkiq90YRUH6Vnttz{Fx%8ZjJ5uK_ zxTL@R$m40UF0k9iSC$W75)X8@<1#bQVkQs jLVG@3IR_GoDzyv`b*-KC%d=hrqlUrL)z4*}Q$iB}4BWod literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_edit_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_edit_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d7b14634993c87bbd032db981b1a08d689012471 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfyvg>#WAFU@$D_fwyTK}M;{7j zh%#p|J1RDB=~MA=knl<9$TZ-P@K|7ahKorci_z7gV+zwtwu(~KpwDx6od5jpLHWD? z(lg!w4TOM(y)w^j@;{sEf414aS%m#&&fV29CzWjGeklGq^d z+xn+i-uJ?p{H8|?Y6gv*J_${UP5d`c%RjtmKktF-DW47VwfHYaZYwB$8UDe_{-MEa z8T~mAYJVK9-#J&Oy5nAl9iMTcoc=GabBCYIkNzfbm;3XNGrCnB_nsEb_|vWaW7_LP zx%oR?>$%^xyp8|AY5jxhcWo#4*D(E5uTO0Ho%l(AzQezh@iWkf2aaujPOH!O^GRF{ zL0FubQ2&!J#=`HU7EE`DDGHLVZ0G&~qOQW}mvtb-Mm<@p8wy zpXHPOd{W;3XSaLZ&x!H>xUdqIllH$10V?eSD-{K)$4T&lWLY7E{8Ep9%?kDN|D=AJ lellLIekR!rW>{4JxyH|B%x{pns^}<4$kWx&Wt~$(697u5I8^`u literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..340b50527071302d0fd985037992d2d43e25064f GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawK6tt~hEy=VJ=eIjiBW|0LC~Zp zw)t)9ObUz{4PqISwq^7wsZ8;h7|_ASsmNeu$vj2+-|HoxeLqZn6FoyR>c{nye-gQ) z9)&Ob+-%(8m!VbqqM*vygr!TRjZoQ%|+#jX`PZ0jJ)uc+H&auyXos&MB9y zn3fi_=ViPu$>=(@yyVWz)upT6?O1$sTluH^G9^;qQ`Bs&Qrl$Q35Vfi@YLfvNxi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..c2124f1b790a90d25a6c2953cddab481ef38c24f GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z^LTu;uuoFm?Xj4Q1*(!`5*(& zp$!vsF7STS$^On&-I1!x@nNN9d=juQk{GA6bi_jqj6>rCCx&s=ZM_A5xTTIL{a|zbdbdl3k|0P< z@FAy*b_J8*JRgucP8Sd}aCybQD~=T(9vp0D=byLNjDOzpqmO{>^Rctp&r8YKKxIIT z8e<^wW?SV48$B_8puoG^HWg+djmxXy>gEZ+;RXLs470XZFr3X!f1z)qhzFj9hT+TF b00xG$Z9c-fI`{K{F~i{L>gTe~DWM4fVc)Uq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..89cabae0b3efbc59b45fb262bdc79d974e97f73c GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfyvI(#WAFU@y*r7vS8KkbX06Bk<|=vh}d$V!<2`ynPpd7tRsU{tb?F{l5b;)lf`X`w9j@q`|qp%ng8B4 zo)Kss7{t`oE-wGIVE>o*|1P}$<+w4({`F+LZ)c;L>nGA)TK3TrK`R7a9pUh9D%R>ld5DP!?bbr>9>Giugp551Z u^po?s`keU%b%)4ixc@7L$MwHlU^3#lv%9N*zSLPz?0dTUxvXdHRo0qfC1eQK1rIb?1H6_qs zA8pO(&DdjKY{jTeC^5_rX^vr@NG0Zrbi{m-PFTb>1ab$U-VPMLK*olNFOaeH2HNqo z^It%nH<0}f66lf|NFaf(0u2NSbW05+kU)2V27&}KfdmprAc6XI-tL&Kx5H}T?b6Gr yqH`)TUQ|#=<QFWTH$!6p0000ZNW%q(yfFcqHHxr=kX%iWf8rK@aJdNY@^ zi2sQtUO{0v9YE zxHmK$W2^@8dze^E_-3$hWXK3Gv2X||EJ!@i$-vmloZzlQ&v{=FFUDd|2{j~Zt9Rp(!_qTRh zJ9Ae);B!7;Y?3aL;nS|-;lkf2)7yFbuF{s>?~B*|oh$gKdaYN!>;B0qo|7PG+fz5Y zC*I38-CAaQ@a?p zKDpH7s!N#mrkQWpL+)ieY%LQBsN}y~FnKD|FOC&^-UBr-g(T;)GnufiXm@B}V4THv zWj}~!GGT@au)+k`SJXEGC0H`#0{B6UEetRLL8t%=Oh6JUzyuQz6;J@1%CcgSL$I8= z=J&-x4)&J{7Efi8@;z+3O60;~lRF!|7-jv1dqdjNReZPF8&7>O^W;C1n@hbIVm-KR zC93AJXKu`%DIYcGXN;e;)g19i38y*YmJ_yZ-TUG9nuE7e_C33M-+!AoG;~!wqnP)b WIYeBr4vGiH8-u5-pUXO@geCw^YrO~n literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_folder_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_folder_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..f7845d5ff10b5cda852f813e8e943577fc2f8dac GIT binary patch literal 663 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfho?@#WAFU@$K!+i%il)S|5tu zHd}qi`PPj+Q*La_Eq|G`xik0nxg*xOJwKoQ**)WVr1*yJ?+FsmM1Us1fX?i_#j$dy zqh~G=t7vb(AF2NQ`RywQR3r*2_IdL9G%>Dz+8A$0}#FD zFz}qoz%+w_DZ;(seUMrM0}x#keDHe;r$WQoOa{g}54f~^FkE^$NE(PrS$@RTdnY7*=bN*Ax6zxX#?NJbZEtM~?rl50Vd>|y zQ;xsAtut40N6D$rWqD~yhga@XPMExAuB2sc*XJ^yw6s>6kM{kyl_T|xx8&XXEr0y& z*EKUGZ)?5(bNunQ8ne?(5$gQ^+aH&ehn-`J)I0v~aprHW-|3CHQ&#``w54|L=gnzi xouZra*PVY{sV#iI>~osj*{wHKi$SRk27ZV>(FyzBS>Xy6@O1TaS?83{1OS^X6eR!v literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..d5142e476dcfdec1cdd068a57c492ee4c32fec69 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawc6quuhEy=Vy8~`$#ksqYURZhYd?Nur^IKy-+7n@=*TkHHSZZ zLN8`Xdnh#K^>`~ZzT4TzBJ|?m4j`clWC4Y%vaQq7b0c)u>h7I1>&n$Bc@|8(n%Nxh oYAcjvHD7g9ET0nOm3mG1@P+Ns!9C}DfxckyboFyt=akR{0GH-qO#lD@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..a74c0c9915c637dd485308f985cf4d0247ab2d61 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z{u+9;uuoF`1Y2y-(d#{hKEaw z9&-mAF}XA0f|AvgSzPBD4ha^xw@!&^KGk)^`rC#4(_LuFG_ObVzq~bZLNN2~Q z^alakUw+A`Oi~h7Yiu(&S}3%Gon!U^%W94}2Y4MGu*4~rFufPBYV<#4bfNgHQj|m9 zqnTzg4r$)P)(mo&ZT4wgKau)|VMn*zhF-Z3hVmbLFY;JeG1qDF8ysl3e~OvM;KBM& z49q+?!sQYg7?YnevPl?(f|ysNfdrdG0z>*$R*3|MHd)o%XW4TWt!LBr+BS=SN5Ya2 z<=9!rowq#HbUv(ht7zK7)Uz(0YS*^B6e!VoDQU5_QG8kn*b_$o>yDp3lJa9uHZWWm NJYD@<);T3K0RVNQd;|ah literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..3239c0f40d8f4702d13063d90866f99c4b52237d GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFi!AvaSW+oe0z7R<1$AHhKITj z@BEFjJi3s@#<_TvLo$cw1P(6+_vEBIi5(pK|HhWj6H=>F^_ZmM2|-ndxPL{Yw;P{I z)iUAUXKTG9jw;f+2$ zoi~(@xyT45EA?giEq}AY&Hg;ENcmZr`8*=!p357HBuxYEFv~8Km@}b^+fGU&@1n!b z8uNfV6&fPTm!uqaDE!UVWo;ZFlggj6z&Pu;1Dnx=#&av9K@?BQ0&b{?9$ZBG)ij`l z0<+|cS+@+qYNX*J)1V^OaFKaX5q6k}1}B?Qz(cSBCmhzbR^NHjFh!=tX``o?ne)OK z3aY{j1O6ze+B-jtP!jcCC{gp|kn`lgk_k=Q0&I?DlqD}T`BLD!dDk-IDShkD6h1!q uRwM4%{dCg_!DW%X^K+)dLUU5kXAY-Vt96emJ<9+_5re0zpUXO@geCx%G_nH# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_folder_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..261e99081b38f44bd895d0bc5ff5878e959aaa95 GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfyvy{#WAFU@$H?%i&WDk+AenG z&R%@SdD+HF&5gOY=cS6xo@|kO`&r(8+nm)|^Z!X@-#rxk=PFP;98@otnIrw#^WVuO zUyLri%f06AcWQOyEIun0h3{#eRxc(r$jrSTGI`j(w+pgiKUmf4=_8M1}rk zeJqxWdx0$d<$WwS&AEfzn_}j82|YO)GD+e7l1VH-&8MoIm;&T%-fa5CNb~=b$1(Gp zSyyaTS^tEEah38NO^2=TiM*W~eIXd~+OXVV?fKp8Gp2u&P;pqx$|NGZK$?+dhCGV^1EUv*!ht4*1_q7* zCk93_HbxeQ1|cSn4H`h1#V0$2Y z;oj-H*moFhDfj%&z;0o_aqCjc1uymT+soqeekm@$seHjpU)|*I#PrRND^|RmE;H-@ zrsN;m?B;(bPd3uM-T%>Y-OKec6Etty@tn8x{r~jHpP9LjkIP)->5-Y#zS&gg)Y`KL zPD%b$n0@%so>`A)&sA)H`mAPFy|L!rAGhbu*#Eh3UDh{H@_~T^QCmFT_}^5z`VS=H M>FVdQ&MBb@05)0qe*gdg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_forward_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_forward_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..fc57f4cf51a67e1c478f49c0e24fdda2e73795fd GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xb3?wz0qptud&H$efS0D`m&B-qh09i~WL4Lsu z4YRfVB!IkhPZ!6K3dSUfK!yvpvQmZ&Ee;GhZ@u;?8PrTQ6r35^%-2_XKyc+H5AD4k zQ{AFox~?+0^v~>mS4ifPsc}oZl-GVy3YE(AHwjwmP%X70Xo0Qnt{|JYnhaB!-fGSO h5-$_ASbskL#W0cO#M((0vWh@X@pScbS?83{1OP`4$|c(Ee?Fhha_Tf+K}E^-H5_ZdZ7*+_L)v55KJR1 z3eS1q8gP(By+Sa=;Nah1KdL}9XB?U|yMa%DBLh$e7gNGwwG|2se0NwxTe_KNENEh= vU;qioZQ|78cwpyNBxuK2ZfY2DP=kSCmvq8{GtT=@fSl^->gTe~DWM4fW>`Tz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_forward_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_forward_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..2881ee5edacf092da5d4534ed26995c92e46c22c GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^6F``W8A#63;L-+CoB=)|u0R?Bnv-810J4}$g8YIR z8fI(zNdS45JzX3_Dj46KTFA)6$iw33<=q*6WabhtE(SxU#vfa)*Vn&z`7)EmHGp;P z0%=FV5J&A7ZUHQz7r1r_ia3gHY05*A`kh;2(xkMaDeOY;0*+M+L`#%4nzS-l?{ai4 z;EHlIN0Rz0xoQDN)%JKf7Y3(59_OedZW>HGPPTq@m)&!7%Bq=Z%*&#zHajn{^4r|* z`1QycIqj>P&5afEW<9zZXS{e>6T9((g-trf9~L(S8apg&D%-5!D4KVMN&NV=YuCP8 YF-FDR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_forward_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_forward_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..f34145a4147f8693858479d89ebad3e1c6b116a8 GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvK8A$4HYMBD0I0Jk_T!AzMG$+420Aw+h1o;Is zG|blalVD(AWbt%y45?szbKX#}!9n1F!xBY7!TSPJH5k&m-|N+O*)GYPwJg)BbVo^q z)g7xP9U>Ezf?T>h1T~dh32=Tnf4Q{s@Y2Ig52cCL12mdLAi8aa;*3aEM{wdRxnxW!Yt>stbjbe-}8MEfxer? Y_wr|EPG{Gum7s9)boFyt=akR{0O?SG`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_forward_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_forward_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..bbe6b94d55180c4029a6434668dae85899461a0c GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!ot`d^Ar*{oFBmd1IS8;AE?NKi zFk|p1S0zPxpzMy_kw0WhCRup|v3tH!@RU_q*{o7JVF}-)D~>?HOIx>3erGFuMQw#| z!0ZKPj=4>@ShjLzfdwuwdp32=QBXg@S=59?{WP|8^qV03gvC;^s6$4n{RD`50<`G^ YYu^F0`*QI&{eT<>Pgg&ebxsLQ0PkBuEC2ui literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_forward_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_forward_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b3fca80875de1c02e1a93ac942baacf4d8366886 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeG3?%1&o4*=JaR&H=xB}__U{GAKG#SWYDhcun zW@wnL?I!``wR^fahEy;nN$g1wVR*43|1d*>1Y5%Tk1lctUH2J9TiHl;SFwot6f}uD zvI@_6;2Lm{MZH2W#NgoHUq7lqG-n)|G`oRMfFlD?2NzSqVzm_t419N3L|eL>$(Mw!4OC77j6M8p%=Jz35qz1ZfVLxlKP!nW74FwqABb`?*fih3q(tlHJY?CSnqOl zE#QiBG)I#9E4gX`N7eRtITr?}Kpy9)BW@Z@J5IKKbeG+8bIPijY0S%_tTsC@u=3m7 z?)de{89D8%o6U_C@@74{8fUzCSrfbQf`v^w#vc|p1sXdnYbx8U;3%4RhDrSRwQJYD aTQNq)3$V>H6RHP#kHOQ`&t;ucLK6U6Ic_5W literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_forward_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_forward_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b34bf9f791fbfbe5de35e6527a82e9dda8764ad3 GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvK8A$4HYMBD0I0Jk_T!Hj|Fet8AnhfMHl?3?( zGc?TB_LE>>U}W)haSW+od~@DVu)#s#fWs0+LBab1Q#BaUy5H;7cG)h;oV6^|s&q$5 zgw-9ZB^@FYm4aNlJOnkBTnTV~Ie)pd^6=8bO%J7s)&n$}Lm;|stL)z`$@f?oSQt4r zi)|GA#kViL`DayYK>nPc4;Sxqc-GJG)j92-L~y;vv-wJ2kLTt2t>B%u({qX0u4id; z^BW)UYO2gw#8>z1;Z&=J+0HCk0!e(uD;lR*hAd`lepWD9>cTANw5)(UzTfkG5`n&( a#rN`OW=?01)LM z9>5b{l261>5ClOG^p0~1*3=HOreH*ZE8eIb=ba242F$6Q=a~U2*VOpWEh_Vq2)&~6 zaT1{ll`mv%%JygqTc*@9&4l2R2llPY?0Dn?EJ6TdmaXb683Wjb;EX$}R%AZ8X9#v7 zA*Vc8rzA&cDDvx;hU}ns?8PR7brXGKPW5d|9;nGFRadPWcgK@j`_v@-U;vsxW5 P00000NkvXXu0mjfj)t{r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..e2d1d37edc24541c3805b398ca94118e7f6bbfbe GIT binary patch literal 533 zcmV+w0_y#VP)o52qrZjE^6%^~`<=hr z}(MIrr3Ko_o&OWS*g@IATDZXa<~6@k3f%QYV}nTKtH8 z>ZEgshBNOD*t>e&C2 zynlPgmj52Lc%sYY6Acpxh*~#wBGv{7=%{0(jS~onT1Oio@DUkdK(qk@0a5E{$0DGk z4v2Qd0y=6PZLq*+?8lgR#S#dJNJX>>1a#Co+5`eRY8`EmKriO|UPPNfKt`>iO(3A7 z7SSdU&{6AXg9ZB3dB*|`j0FZ0E?@x*)DtXV0Sj2b0v4E>Z~+Tg03K3r{{hMMe?M}z zlUiU0$pZbv$1Xc)I7ol+RnX!({n2AV#c{gB-^Wx8MTdgY4bkvhJpJcNB8mCWhW|5-q;=ddHbIKch)R@67s#%>qo!g zF^S|JBqELXdBtJzUn`?(e*HLN!1l*?fU*onC0}2qb{dUNu@-omDg0rNo8v)_SBqoMe@nS6Zg@z_Gp7U#w>Dj3ljF@DmwUAQ)AZuFBs1nF53a>J0xBKb6izWY zHf3lpS|cdZzs&~7`IT`TC}XmsV?|yiSZeVaaiEkEQ0fs#O31`TbY{gC)<7{1A(v>8 z)V&L;7U_0xiVLv4IL$Ruf5kSCB2g0`G({C#L?Jo^QX3T#w>$=Nqy%$9y1))Nm9bnS zI-u*@mcVTbMBY|R+1j)veC0Bb;Ds;Aj$$c}VkT*hydpq4#qqJ&l|4;5CqPI|XGJ5J znQ^IUR@emANFWMe^nyr2NT=zozuhL=cL{xI&e_!^bj8)oyj!Sba?Upq)eL<`tL}@J zJv-L&h%HQ?u$IL#uw_B=k%v{cU++9;V|m!)_9@ASDyADI|E~LSF=tKg;^XPHPeZF} irXeLaaOz|G$Ee?QOQZfr);VC(X7F_Nb6Mw<&;$Sq=}gH0 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..280b2abf247dbd71adffd1bb55823283aef2aabe GIT binary patch literal 1023 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJf%%xHi(^Oy_D3%@5>l zE&0p%B52#Rb@mLgr}{3fm2XHtBrmWeM?1EhVbPSoOJDOjOxd)*QH~cm4kVXNxgIz2@t4MT`&hQ=6Gx&YhkWceMN8rLXK@ z1@9P2G5!dDXh*4U6`JUH@%5*!3U{3Uep#otw;XAWcDb zgJ{F`F#a~tw-Apumhdu2c-(Z@#m2z1WQ~O?!xzTVhI0(7s;9gNnzlq57$UAO*&6gx zV|Otw@Q$3mPPbwEzx5%Pmx5$Uk!A82UIblR`kLv%+=r)+W08Sqn8j4_{+C-;B-pg6 z5Ixci$9NkUeoPQ#R$#cqu)-fm*`*y};Ak*mcy$>_`AZryFfB-wW?=kasm$iUu!J#S zK9H(8*}*8lkjZdmIgpAsPGVqjkYf0n$-r`8dyfPI;{-N`SScXI2{cY>2T;j+<3$&) zpV&E7vh|+RxsSj!WKm?6=C*M51Y=ucuDN}4&ZXApCH?9<_ad=)na<|u6&`I*?^<(=E|>|;rHqMcH^c6VFYf~JJzf1=);T3K0RVs%zgGYN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..890c3ff99cd4527a7584bfd39b552e84474e644a GIT binary patch literal 422 zcmV;X0a^ZuP)xhkfA>D+IxPBr1LM@yuw9`wm$VJ5U3#rIO z#Pth_$VJ2jgsd4EafZ-dEa}KC;)aAQa*Mc8A&cB1ZeGY}z0kJ{xlp2zSaKm3av>LT zq3y9 zdu(T1OvDo8GvBmGZi!l)EsRZ7aA#4pQ`<=?W_x!$da=!iK_jk<9XHNd^ zSH6)$u|>d%Ly_flPT^VM%tN1#m|E*x?&u0`Thf$v!cx>P>dqvtIqXq8ER;m8)GZT8Z1I$}(#B@Kn>Ap{U+GI9)(b?9}0?rwgiIXdfHXmSHzhuXO z`*$|F`CZ$gJkg0M?U&3Z4?ZnEi3$I-KNu=4l#4y)J6-OikB>s~mE3clX^)r|u6TU$ z7^{&>?xJ4Knpv%-RgEi>FMf;Q=f3jC!RA%oS$PprgMJH%t;$iqyNkz`>4iuZEY%x-mPX*{1U@WK6UzuE2v z{jB;eKUw|+n)jONeRv!N7Tw%nA5_2PChMQT-;2*`KIp$CpBuA4USvby?Tpjn2$Eae zAaHhuF~^PV<(E7Z%!MS*?Py?8nUEIYz$7#Q$TBd03}i6aOy-)Gp0#uSx5=CTE@J(* zGPTw5VES}f85#fY54E@KnE&o_@(K&>cRzmjbh(w>(0lUdUstY`1UNQY1RjZ-%-b6w UC2{WyFv1x;UHx3vIVCg!0L@L~UH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..99b36c2428bf9bfc626c624a352ce7dc1af947f0 GIT binary patch literal 774 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFrD>uaSW+od^^{4mPnw4>v?v` zckgl%#2T%282c}@Iy4>gY4bkvhJpJcNB8mCXA=VhdGEj8ch)}k{k+-J=d80!6sop?K14UtR_BF)wC)+ zqj_)d^~p1yO6YEyrWnL1oocLGI6vfs+yy4-8LFb2=cW|T3%Rgv;@QQESoW&T-tNlz z%gbzkw~&dC8MA47)hV%EQ*~|DhN=ipk$A+#{lZMFXlCN1n1Hi(7o5#69%c{v`=v?f z@|_gJy9b2w44hxBSTO7F1B1_V5C2h^_@#;MHUBl!i}wx*3u%T;u)Fn3gPr@5d$j!1 z0>@t&uNUixnS|6E)Nc72*eAZEf1BN@k4;}Lin&`lT;Qxb;u0y?D+2r)o4q5)0!apxH5s zVkSZL3$7_k3Ovnl1c}J#ddTF~PFc*_xfrNzi$WpL-gh$=T)e~la`9UGxCXF5pO{J? z&>1unKQFFZ6tiu?tc>u$Z40z+Z3UA*1NnqZG=-;#zSTM< z7ShieIe|6u!W1wSuwX$Z_a+4pnzg?vP3J@t5HYcyjRGnGsrn;2g-bNWQ4Eeu-iZ62 zJG*@mORe(keT!JWPCWZ{5lgK4>{wUMTfW?1#1=1~KJCVt74g69&5w5pl(d-bxK&{r zo;f+#$0Y0=%W=UCb9evyadCgd-38~mUf4D@;}#W255ADF%wJYD@< J);T3K0RSrITW51Z}iMGFxxzL_RP7RiK1Nkp9Nc+TIU7M zfA1G=f8hVyEAOtgTnN;AC~5Z~|C@pP%O7bkKJ&l-C?j4RwxhB1Ou(k#6*o@sZaMYy z%Zx>H%5I9-o?EWE?uq)T1F80fyt)PE(V8~{Zl7c}Ib)i$IK??%-~6J2_$ThvC8__5 zC3`O}?%DGuRO->KjrVFcMdmFRj9c8ZHAncxoWuJJ&!-#5bewUXvT?d?(;4qWKXYu2 z=5svXoImkrq{aMP$F%7McC(#QA6Q>_e#b9-=iKw`S{bnpiIc=FrmriMJ8$gzk=tTp zeT4J$h{N_GUbakJ-g^$GmNcHOoSoX`dZ6KJ<&>-E7Jt!H_DTEyKzVNGr?)k33umxK zEPm6!F22F^)V~+MU>s!-hebx9PkK>K$2!LbePl_+Q^$ZRWkev7{tfnENgLPuBB}Ky zzipn18~m`pET5{ni+NU>xI!I+^(*lewT$g-G8gI&{nN15`qvt!%+a>`_5M{uIVj!s_}bq z^!^4dpt6-=jBV@*9qWP*wA4BDZL;6B+Mz)T=z{P@23w$uuIV3;PhDy$E3m*up*dl9 zgXhBr#Zyit)@lwNn@o4D_G%DFjV{R+Pw3oqVG73u`2~6#vKWKka!**a#@(E0iN@=T zy$pt@f=ZNu$`yC9FI+!P6lfGkO5iSs062&a^!Ni!G~Fer;1b!B$HEaP zwn&=MX-ex0H=wX{2`^LHZJ;M2`#@6H7DJ^R{<=7@oN;wv0a7jv?HnBqKYP$XBNgX#NHA|7z$S?{5l?gD)DJd|80Wk<2a0VLK2{c5QQ4Ppf)4X|OwoBUT z0=wH?XTBf$`KCJM8t3!PUr*R5%{edU_{?e9ahrK(3lyz#BtF+{o9MQq^QK{6`sO&zMKH|?H$%u(mRz;yk?Yk}jN@9%7z zwqt^vak|CavlkvaMLktBn-}C{cGxZN(V7Cz^Pd>&H@ENH^Y-#{`FoEe^`3cD7bt*o ksKSZ+RTEaLLNY6uRB(Fzy-eo7>nR|fr>mdKI;Vst0L}r%qyPW_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..6a579557a4971fd2dabe4605846c13b3b973eb11 GIT binary patch literal 418 zcmV;T0bTxyP)%j@k!Atf8es{RoLJ5sQ->#6?WIF92ue}Ozvff9)2Gynhq M07*qoM6N<$f;x_@!~g&Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..29514f0f6b2e6537d5395763685cb9e2a0753269 GIT binary patch literal 534 zcmV+x0_pvUP)I3+NPi})6@`_-xM_JQ7iTDsnQ zJG;dunVFfHnHk$S#XRp=Z10%o4BJW<^tjEKOvc=!R~CjfJSU^qtXWvVb+WoyG&V6L zs}Xy3z*#aouLGWv*=rr}hRinw$5~z)V+F_f1c89cOXf;L z%<+;+GysNNVMA$v9+w%xv;klFvp)Mvh{k^U)ZziHM$K04A;bfsqZXrW5fB@-7;QY@ z8?__!W1|j?w$G7pfcSy^vmb4Jf#Lz`7RynK(TYbj9-v1y)u{FNO&jo?%ET3W92~VC z?c@56#semVM=eHMYO@cBj#`bjL4Y20WVG>sA5;P(47|TVfF5<{(Y6oJqwYM~_5o_t zdbG0+7>EyuQ431VC(<~Eb#yw-~b0WzyV7)fMpJF!2ceg@PW)e=zv%M`jNAX zWOh*p>|jJzBeoZf8>tVzYOLW^>Z8XRJ?^GE{C$^R>4NQ?PICPI38&d!CYYI-nVFgW Y1X1?)s!bi)vH$=807*qoM6N<$f@UM~{Qv*} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..d462a249252a24586bc9a90bec6c8f8ddcd800c2 GIT binary patch literal 769 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFrDypaSW+oe0$e)R)`~m>%;Gk zZM&_d69ji07W%*u%b}8SCS`}q8NLkyy&Ed-r1J^JD<)s9UHPi6^#7i>d+N+NH=Gdb^7rFoFywKR80d(fS=k2bb(p4wyVfnf($H zWz1@ID*SJTy42J4GJoGU9^%+`D&u&qeCz@{HPOnWd@2%8JL*d|IXs+qy?#vK~`iew5n7*BON81>D8)6Kf4$g}ZKMz)(}?SjPG1uri0Esk03&;+F3 zI3#XaE|tp8wOCi;X-cD85F6KG+pikd0S_Gbo;dKCyaH2G3@=2yW-C%)2cZRp5UQt9 zEy{cXvn3b>WgQu&X%Q~loCIEhXT&n;8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_outline_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..fbdff4936215029c9d43ad144a57551e5681ee96 GIT binary patch literal 1020 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJf%&kfi(^OynGclUwQKBwc~ zMW?&`-Z68(h2gJ$>qW6Khwjg@$bG&lgFpQf@8XN^=ZNPf9(eI3XG^p9%*2ve&wphw zpTF3%%|&kchUPSr<1;57jWt3JnM3;aDU^y z=f7qI#GL;v-~AP4Zi}{$=`j&z`8ib zU{@()*~DPWQ>=@lL8`n#s!nQ%_W)Hj1?oxM{l&2RO&8bl2S8LkP;C3UIL2g` zvz!+HhW~RT&47A$*I$0ctdhSV?j8G;+6G&h;7|HB`F~%i#Vy>+xuO1uonK$kfA{Z? z|6aennBn(Rx1IkNOaK0A>~P=Ra&P2c{tG~7_2#)Y?B(^FAn|lxf8KxQ68lq27vKKR zaJRqc>5Fgn4*T6K_j@J_DEw#80=n=($Ul~!f$Jphe&n1W4|JRCX$Bxy{_a2a6>?AC zJnN}%IK!;P5hIsiRoK)Nc&`855B3xNMR!349n@IvUcQD&q^Bq^m}f$5!_S7ldA!&;6;_QYaV1*}vrh*g# z1Mn;3GcG0-H%r4^Y#u#DNhQ2MKOA`>1=MsCsHtuWx7&7&12xwfg%;0|j%9x0ZfUuT z4d|M*65b2-Yz7CK7qs78aODX&&%hR8*1(u0aR96& zj3=Q%3amDvA(UBSK^s`DM8a7HwiSsC%pg@jq>ZajD^bF^D$?oj4m)rQ4m#71CHG`+CpUXO@ GgeCxSN6Lo) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..928fdfb1b14086786c44d416c3bbc5b57bfaad7b GIT binary patch literal 419 zcmV;U0bKrxP)8;ONP3D%r0X0G1v_R1vscXsXJ-d6%4DukO_=20D%V8*1rNrXCZ_TLfvpm!HgVc6trwRE_flQSK6l0U_@?@G)&==W4Jbj5y$Xs3U3_4 z(iA=@^;vKz3;IxU4Km}LJJ#&mihIt?5(fRD%Y=QJ(6wL5gUmSLh9&#(&Mi%|cc3c(S%j`)y+bmS`H z41+}EBH}EAbmThXv_Wem9l3}&#~>ZKh&aO_8M%l!%OI`(gTC2K42nS;Vo(f zEvt6v`Bb%Q;j5}$oHrSh+nA~JcXJ>iOP2V^L{!8rz)&Z$6m30MYFC7ddq$&{>Q&z@^hW-&)@Xazv7*-&>~AP_e?;oL*W&rTWri+i^VQZ z zZaK@=u_AQKSN1Q0E?1g5w!LMLUD;uFkU?-OgzVe)uYobc3h1~dMx!iIAc+pU4mq{{jp4Cix{9WJT{5u0<5SaZ?f1T)yS*zTon1Hd( N;OXk;vd$@?2>`l3>p%bi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..b73b9a8060418118d489ba1084335775cf5b91d7 GIT binary patch literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFzxenaSW+oe0$e)mI$MW>%;Gk zZM&_d69ji07W%*u%b}9NBdI6&hJpJcNB6`+Ym3K0`CYezzMsGCSAKtm${T%SWbmwT z0{fmNt#03Yr{8%lP`p@Y%_F8*li7ZH8yEH1+|FDcxplL;T6^-Bi+B9oCg+uKAm{L63L2^yi23fj8mLZ87%iLPEO&7 zTu`^>f!)`4cG`>LI~(`;z3E)Cc&@}#2_Jb6t6QCc>zW-lUG(cIl4TLpTwwkW9Zr6Ig~ds1GRfwQ+~-8}&6(Z;xp3&u+N=l+CMWLCTiX_4b_(xz_ERZJH?3v&mpW z!WP!WIvgqzxd$~~Ge32YHaPVQXyv*7O=s&$?>u{?`y!``|<8%YcHG!S8$u7WJ z^XEmeo=r+X{i=)C@P}N>=yr>gU$Nw3ST9gkbMajH)Y=7nZGt`95~i>=vMi20q;VQy z1W=~}P^a+XHQZM^9sXxVB4^))`0)LH zxg@f5le${})tFCb`;Q&`qqeK|n)W;1J+;$jB7<7??&ImVcb)#f2biE4JYD@<);T3K F0Ra2|S}gzo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_mail_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_mail_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..89f655234d7885bb337a5b43ce58b146cb4f9bbd GIT binary patch literal 1003 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfq9dsi(^OyK1Z}dOer|cCsn4I$VjeguD6;D)@ zX;{c&{z*grgY0XaU7>C@Cl22^^U#!g&Y`rhi|>MR9#5I2#+TNa`pxIGPGNyB`|(d! zx3*umT&ULn`KQd=`RjKsQR^1|!Sr^&?3}R4hZpYYJocH>{pykpEyv2kec9AE^&H!N z?4~K_o!+*aah7}!*iFu8wTE?`zE}_*)^+=0LA2J<$r(GQYaNx&*l}L#sCmYYr(PeK ztIKVb#jbX|zS+K#eZ`{;xd-xMXYbpb2n^+AdUGVT=7iGE38%B1r!z=fbVNs_3H~{^ zRwm-A&H=wUXSx5}-+SQZ*2FT#I+^$KU*w=C zv}oPN#bEGg)xX6ueeXhh7^>Jj+;{$eVaI#H+Tnj-pV{i*hJTCiJYZNUvfs$zHpt3) zpa9Uc?;vMO+n>yy&CGcX^<99tFO$2YQEP@tqo=cTSu?$!oUU zyDm7cT1^Q<|m8i^ymF&(6+T-Db}-&@ls%)+jWMY8qXJJH`Gk|e9_dw?$l3U zSZ%oV^zq}LFQgRYpVoj4umc+)4>usYWQ*ack6;A_U} zwM>-dwnd5CuBsGBWoOi6&xx9R@NPy;`Sm3QEb@y#?l~`LYB}dz$KU0$b7CeRU0QSU z-^J@OL6eVj?m4>erL5nImk$D_MWmkJa!RQEnn|J5?J{Y{)j5y1%wp|(peFZ}d0+Bf s_uoA~CbaMDJe;kFmc2YDE&0!|^Vixk*0-T=fSH)V)78&qol`;+00idNCjbBd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_message_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_message_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..07276b099ef4de9624925423a88fbf4f589c5ddd GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawPI&81da*tUU6j(-RQs`Hqjy7tAlA*-~Hfk y#nm;^jHXYtrP?!O78Q0JQ$#S>rNrh3z2c7Jy8q;4NNOX{R}7x6elF{r5}E*#US=f# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_message_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_message_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..98ebf302b60245f705b87ea7ed5ba6edc2b42ca7 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z$oVF;uuoF`1br>-y;DctPd4$ z9pM#t<5t44+HEO;DF@PASn`@rI6bO=>(1yvs8-xGC>+OW)0QR-QQlZ<~ZFriWB>@V;2_ zO+@O0)7EgWCx5FO7#NxEH8HcCx$_9bV&xFn@Peg=g`H!@&ZCS>EHzvL3JDiEe{k^$ z7?d-y$joT?`w*y3$={*kfPw>1^XIoSvyw9$rpp#gl{VOLlJ|yFn!|A|{e&me+B{u% z-zz>ZDc!K2VM~kt&)QA*)qi6W_Fl#NnKBfO7qp&f5Hn&Hx@&H1{G06*`_TfQ_Tz_u P0mb0y>gTe~DWM4fPy>aa literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_message_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_message_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..e011cdccc90104fab79186eb1bb30a97f86695f6 GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFmCa5aSW+oe0z7Rql=@2>%(ZK zcYfMCzBQyrFqz#!|E)s}VDdtdmk zJNkXK_}xtBx2vL*tpcOYZC+ZkOfhsJtLhV*Sf|yiHpo7Gy64_Jt&CgMa?AIGg{0m6 zHI+M|kayJ@y(dgJm!4YTU%4~EY~7^Wlejb3wRXN<&>$C5i$ znl>;naVRt}aB;j~2U0+GeZwr>1}WYz+yV{^j4VLnC)XEtAZ5yMqTAFSBq+kXVjYkl z4VI2$KFSC-0Z7C*3Kjk1hZy7EIH~3tROUqZ0uhK|atxIlUokUIVFTF-(pJNIiXlWD z$a&;GnW2_JWUqU}qVg4!PP4I^a0Xmir_ylh-%EQ3?=Fr7wW2%=ri6tmG-%oV(Ri+T zW_?^~w*36i+y%<4;e2w^91t|`QsaY(pFT)9KoA?h0}!e4I|$mOe3)?1nT=l(g>lrG g_mLtb)PJ$BxKML!L-CC+U^Fs#y85}Sb4q9e0QZ`&Q2+n{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_message_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_message_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..c23cb1ebef57c85a23cfde6a33de058d3c3a2bc3 GIT binary patch literal 697 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfvLgM#WAFU@$L1ajUtR9t{2;P z@2(bDa)7Us?fwGJ1=({X3d+lN=oOZ8FuZ^D(!S{3=?C+tt$H!tbCL=eElG@=_IKx; z_Ma2p*VerMq!GT!T-(S*HZy43^Vog2^)<>;gLZ9cjGSuj_qToT$yGc);-*&1=lqZ_ z(|UY~_3T;QsRdHoZzxLVcuH-*C@G!eE>(U*Qup`#bHD(D01~!HUaYKe${s+1+#UL9V$fEFS_eq0QGBPAE{E|4p?#=>oFUXwF4DzxY zpEKQf9mTLalsn;gHe-&vZiDVhmJQ{SbB@&(otU;=dnNOR?=xdK6QUo}vwN&+k~mcHmxWDBJS2wPn}p?f$Lv@towxbmOqwiA=J6}NuR}^|2b+|UwAJ5&MpsV;!#=YXwPtLhuGHtmdcAj Oq2cN3=d#Wzp$P!iXb$QC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_message_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_message_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b8cd2c24c3450470aced932ce172128b6241ac12 GIT binary patch literal 263 zcmV+i0r>ujP);G{guS~;p`;eE3b+BgG(Jb{9fA=4xiNEA@bxFT=$ykG6ZH78D!A^fh3Ix zbRP*Q4U|C!8H5J{3IG|D2FjobfSv~Rf&z*J8D!AQpifSx%rMoi75= zxpz%;C< zFWCgvCbc)HS~MLiU+ahey?JOY`%y&%yyb*88;fRTP&zNFr8WELBlec55Adv9j%rJ7|$}-$vj|SH+k9+ zFIC*|ty31rkpU`UWs;h}TX5h(!&8d`jC>W{nmr-cR^sl-FZw(gg}KD;ze`CSTgSQc3>SY&Dp=VwPkAaSW+oe0z7RBa4HG>qTA0 z^5vp2)d!5%FwSyF=J1@r;icf7oD}iho%Kxo^qJM(7RfjNc&v7F0fSeUmdSlxw&T{` z8TY;{&@H{jm+q5(>eP0lT^BrbE2d4Ew0`N9INkH}x<2i0&Z4kU}O<+ zU|~KD9QH9SeNqoG@F&-lXEWKs`Z*Nh8;u~Mm5fgux3V*7X!|omr5cLBGF!FyChXR4 zxMR!wW3FHT literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_message_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_message_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e901e911d3f96ce68bf7015af9e35ccf9ec94147 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfvLpP#WAFU@$L1kjG@sIEf@dZ zxhtyQBz9s#)(4hchTg)g19wjroGmDCWBO36_uc(k_@Ol!v*t}z@tg!kr^07Wxq5T{ z=AEJ#Tl0Q;^p{WD zo-Q~0VPtgtQ`XCnV_OeSn_pzJe%`s~{boBpRhGG|zy7es*rFlx;_K}Tc$fW|GyCG} za`pdwYzc{1);?WZ|5HPJao*i?&;K$WbH6+Lf_y^WmA$He8LzqDy?sMIq58_+#eW(7 z-0$wbDgPkpiZVkhBZC41!@ZXb3_C=?OcsU%?P3fJ(?9F6FWCE-QG?5&78o833=e<- zb(kN_1o5;O7+P5w7(iN785s(6nF7Qa82Tg{7BO65XE;#Gz|bZSQ+t4yfngOBn8y?V zG}=5^9;}Z+#*jf?=726tUBg45&Ri7UTn>m840c<94wQyEu%V5wK%eQuxw6G#4#%?? zx9k*i@Xlg1St#VN{c~k~!|#`~rfm&lUts-nuaEZND{)dBN?O)6U;kINiJ_>sb6W`>5#*Utai~d+HFDR5J3O{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_person_add_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_person_add_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..53264c28081b15179fa6a094fa09ff5819d6e0fa GIT binary patch literal 428 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..d33121aa80f04ff098ad83b52e48c4edd3b64a50 GIT binary patch literal 421 zcmV;W0b2fvP)7@tOnT-VUU>EvzJ_nT_GbV`@WYeMq}A3RVwBiit|R`|J9X}R@4okQ z!~5HZ|MtF*LI@#*P>pUDIpLZjZ(MWC5?%T)43Ou8-^%3aQ})PFqLvalWs6nnSyOhH zroL}xlnr`#Cy94@l?C=mYES+c#9~n1*uY{#jiG}6L;;I}f6yHkcm6@2SQPz(imeuO zkHx)z&>0qI{z02qZ2AWcVKM9(WIrAIN(LiUq1SX={evWCNMc&bC`e+Rde)^3gCu4t zQ%jkgEHH9^@-a#{gKjuVZ3a<6t$+xMpa^1=IkwoQzyn_ZeDT03dA68mG_xQ^SmBUo z>UrjX6-FF`m>|y+R!?j*sdUl70v9ynf(1I14yL#z4Yy3GS#+{Pns(__;~3+Sv^_Ge z#?a3z9$pxb9c^6U<&t(;v5co>S#gf1b6HWsQ%P1hi=YUKpq3Ou2qF9cn1^3$=;qUg P00000NkvXXu0mjf0jarG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_person_add_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..07435b94a46a5a0ebea6ded6f76b1e5394d799e4 GIT binary patch literal 578 zcmV-I0=@l-P)41mTFnG&hjq9cYom=e&NlW$yRkJf>o%zEHnwZqwh`2$;H}*qojY^RB>xjT z@Ads;j4{R-V~jD?Kog_v;T(_1km51t*~L5>R10Wl9Vz}N#X8y*GNzK`1NnR)$y9}j zW{y&fqckf#%-}x7y3Y)Sg*Kj0iYIg`95iy4Qe7gZP_U44EKnHeB~3Zf^eF_aqg?Cd zA9bWCSBg6M#t1G(6czrWBC#45Yy1Zsz{LUo0k?2*%YVQ}Tzv2!@E#ZM{RiB}#clrq zhj4L7uIw>d^DnYGKKlQZa0rlCOS#rbAp~@m{W;yC(%~q=ADV?yC;^RJq*P~V3?@LL zi^r7W32jn90TMI0>prV^43KE%1jRT-vlL)}L>);|VgZPhjBJ> zo*c!7rbb#;3Gg;h6#bRr8~t?a+9iFt=8nR*x8=@XbHnf3oBH$R_m;1}W_jCKO$iye9yGN%eE&;| z>FqU(#OpuuT#u@J%o3L-^4oY$xW&Cwg3CW~Znlsx{?QV=W=;WDyuo~D!|D1KH%~Ed zH|RWU*cq);8jW!V%`mQYbKk%<;Neh|C05uKf-^7(|_(GcB%g5oFAFb9>4tON8`1}D@E)tNZG9I zl+RF{Cw7eA#8Lg_-$lyvtY$Ia)p!-C9JIjuLrLL8rkADd!3)Yie#(<-^h@6PSo`{q z#xp-If9DdjzwlIVey!eiorh<>b?2YBWuEqt+4a|#p3NT)b6ad?UX+#gSU>cP5Kqdn z*Xx)=J~GezIPEn@+#iRukYvsFY{{!(k`ulAg9|KpI%wqefPwTWtnU;4@JdsHd+!mp7HNL|U^ac( zo+F+MnF`HKBc0}n1$S4k`C-vH{iV0-%hRXlWVjxc{Bz1l>y}g9Qyy)pzGtOk0V1C( z<}O}iQPJWka#lfZtI~raslbrlomaHP)^DDq6n#=!wDR81$sGS4Wt^5jetDY4t)e|o zyOUqKsJykj_Q}P2QD*AThoMSUS3ez`siU%}bxvmG1NlY2uKy{tI^CINxqPA4)6{3Z4{ zYg_K^UweTB6z%PuJM(?d+OSW{tiRqll-Z(cj2&#=lgu+Mx!Uh}-Mt6dT2p?sneUi? z`R2S-N#{(%wC5c27M$vsQaS1H%-FRlK4%>FINRQP>Yz5ww14J~2BBV!LPg`1g>Hw| zP02X6|BcroHwoiUB5Oa07_W*uw(O7d>OV)9ZMtQs6@Doz+-TJrv7YnFOCAayo8HTl z{MjnAa_&acq+_;AUh4IB6k23jI~`75<0qc^I?4Cu1_OT8O#w-EHz#=fXjrqyT}fKT zdh*h_sm)1B{}jCU8&Awp=u^vfKm99N>7Qcue}jo@^!bzy9o)3!Z5SiFl)F9nivY2^~-;(RH54@FXA2RG0 zd}+@9LMe!!eTC4EG-n+2j2m5B3ggq17g^w3A*w2|gn?d-ab>y$+ z&MCZ2TTgRK@fm2npE#A@LncAvjQFof^O!x>c#2({B9mZY(Xd5U!P4Q*)P=^X>=K;o z6m-K^vGEyjO`qJh+Cyf6no5kz>R2ZwONX;J)-0WzI(wxZpMs&VKYQOd%LbQ2dBB*c zf8z&~K0KrIvvg0uBc`+ z{Y}!ztL_?_Rew-^`>Og|Le5tGvIpt6?)tx3QFi2ujpOo)rk7XaZcM9xsZzgr?k!f~ zBKx^7>eNF18QRBRT)8i)?y2dXS02OeFoIF2emwC;LUd^B0L zE63IKu}Ie&5!c6NU2n=81+mnJV14Dz*x=t^|!%mdKI;Vst0L)qIYybcN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_person_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_person_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..269cea974a10dde8742b5dcfe1be5990035b889c GIT binary patch literal 404 zcmV;F0c-w=P)&6j- z#<8vjF{lRXLJ@<)Uf0#pi4%UW?Q(@QRXCQ#335*-r0XO9j&IOBeeS+N z?kS~W$f2G_##rG3LAYRrQJSbHml&LhqKqCkkw@C3n=+!XD1j!{5yRGLBoU8&C7&t8 zho;EqD;`N=0r8*(lJMDgS`iOx<2ycxV-@kZRpNQ3Kz0xdZ4-n!J~M+@YML(?D?uz) yg0Tt2ViOoULM(QKF|nKu(m^^%DW#Np8?FFCQI*n!+tXnH0000qV6u@&|TCWK^!__ zzfl{=VtlUesRXP?0=5A!v<03{x7PQ9W-;DKav7nG8_Fv=i zXYO!-T`VF?FEPB+$p~AxNExZ15*OLR2%V^lGr%&gA_2R~G6smDqL0;lKydFJtLdYL zl4LoHgxp!OB#7KJhIxZT)N6*BMuhsgfkfO5`iVq}tw@d9N{WzmauumzSLq}~-8@2S z+(UW@NrrofLifn%p8&YE7TnE46q}E;m55?1adrh!>@v;@h++ktiE?%Ub^&$)b^%dj i7hsGr#u#IaF<$`O8Y;kAO%NRb0000T_>u_dS0*+whv33o=Oh$oKz3=gT=q z^vatgOPrd-03!dM8QegfD z#?#KyKU#PKT9PB=tlb2e!l#K$>kkT1Nm#m(L(6wT*Th3g8m@*+UlfmT=&(B0&hm^g zEJ<+NBz6ujWt~S-LKCiAG`im5j8m3)YskJ;U7){+r}%=RoHEB$L-$ZM4sJttT_pzn zB))34_ka5=-<0pU&Uaet?n$)-zS#}muO;zCw}1bZ#CN;<`?(}O?}vMXXB_r>xcBdj z!`~k7E#2jjo@?`L!^a&<*j@K#RXh+qlc@jLzV_V-KhZORp&W;jWv;4UUsHNPRwsMC z_0PATtr#@?EY}Yc}j{wwZZYXX$Gp59P4X*%lQ%w z%O=RxG_%Vs64|`b#B_F$jYpELqx84r%sl(til!qwXBWLWEObfkRG~QMCvNTyEn6Gn zJzK6zHmGiC+~YNC>SK#(5Bh@VZP_`SZw7nmle|k0>fDm&nauj#d2_GN0h=tH??S5| z&PeZ7a7#7d*LL=qmty}c@pt8~MAYqTpxxe z`{&%=Hu?U>+}qngC^_f0oAL|UUfat%uGW6ves4ieC>eG`~9I^F`eb#CETsWl7 zZlR@FcyDIwsSs_cKfTFLo_?q!x*#o-3g+pJkbo^ieDJbTG1C4lwR2063IE$3D^ zm8u+EcKqaurnx=7>56WPxy-s+H)O{2YTdbdLxkHZP?HdG}s zxPiadj^pW%pLbaH4?%F_lgG|h*POr8*m^>aIc+4 z!rsn%9wHkix~y+t`X+wy^x}r6oM-eMFTU<(x;FjA-zKJS+83+kSl?JKDre=oA?lJ} zFS6lp=e?kRmR9%dQ>+pk|4-T@d%(=S@sv3KTiM@X#R`}FR$hFtZv>+@ZKF$<*kFW&L>D{?B>W@25)biK&j|C7}G&)jz< zPR-8`w1|IlT zpdBr=(051YJ`L5c57W#Pg9T$l}xWMi(k#CjhsKlx=&`+!y*~)uDMN0FGPZ}?71|WxZb#P zy*(taG3j4|cu*SavBe#;4ss%gw63q}| zTjcTDwc<^SQl5L$ZdTVjx-8$Nx^`UWTqoMK!;HmT%r$1(1Ch#o%>VNG?SR=ffq~&? ybbr!*5g`SK1_nkZ77hUj!;2Hj0A_6%Xjsma@nh+BjglX}AR$jzKbLh*2~7a7bHU62 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_person_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_person_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..31bf1d04b6364d9091eb3d3dac446fef02bd3f2d GIT binary patch literal 397 zcmV;80doF{P)KDi6yu^;w9$u)KGDV`E+$1Ad$?E^ZLHt5pebBTi8lIi(J$I4 z!9|H^<0meD-L2KpC_eDXak=Uvj;n|fe<~NkP;_b*k;|&_8&Ho!@jPZsL zQYfdAK4v%o;D8x=siK@zLc|yTkw*)QTxOAG^7touh@gsjT+LHSqy&rSq%*`#43W-r z2?kM25QGV$b59%rNcL$(*{EIA00000NkvXXu0mjfC~2(J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_person_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_person_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..e41aa700ae02884c0cd5e040bd78fe214d6916b0 GIT binary patch literal 538 zcmV+#0_FXQP)D<{8y^Mw|G9BdH6IAWJ66*twL_9D zX9?R`vLqyGOkgMNtuDYjB8TSdq|Ij zgADi3aF2|HfwgE^EAE(wrupKEm1tTiuDF7x%i@XxnhN3yWwrs^fNj7w5DD9WF~%5U cj4{T10r;7;riVP(M*si-07*qoM6N<$g3veZw*UYD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_person_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_person_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..1dbe455735189feb46854e940e355848a8d262bc GIT binary patch literal 773 zcmV+g1N!`lP)kiLo2pxw|v_J$?0!XU>?!K}1AE zL_|bHL_|bHM1*fBO)utiksB_sfS#1*Tgz^|KqWSi%vvh*yk#R^r7;J9)b`PsS1g`Hri&lrZ0M370OJ z?>LT2$IW+aBPmVN({X9Kc|;pU9W@-_6I}Y({HN=V6sUtMbu0wD##vptCPfdeU`g@0 zlV_jLEgZBaYOT!yJw2;7ie7tQT;&nlOl@;#cZ1lS@SH5;LjGZ#-pw;w36Fnj^S&n9)?^CG!b?)1Ons=_CXA z$B%wfiN&PLVk+^XWh&mF3&%;f<8&sv-qk8dVee5itts#rXD zljHd4IB!}U=#8)X#B=p^7GIs^b#sk+_^h6}#$sB6vb1m00000NkvXXu0mjf DfoxpLUqZp+S3Y@9j@`usCzUXas&>l4B1zgnXq`9nz$(+*z$?V1hcAHS?)%II7^jcbAVyeiEG!3wE` z3|tkn7BPIPIHk=nx2fhLyML{SgRzZiI79y9m%6M4-1AJ-k6)~?ieg;Twmj4)qksB0 zwRQ7V z=EqyCTr@RRJ#u5q*B`M{-hnB z@)q({pIfy)-!r}_CH?Ak`=GGey&XtkgVpaszVc5N>puzFU+!7QlW4U0>5GH;d(Q5i zbGU9zVvydn^l-l?X7`@es|Bp#{B!>HonxJEyn>^{oDNKzb9(ldWs`n=PXSjW4y?*BV+lU*TyMH#@1fKfHUcPDbQt90V_J2QInazIl>ZNws9sPDk zT=UB2%YQb?XKq_x z`Izz28^+Ja+?U)u{;YS}lF01O$0RQ4SZ}qpQUm5t2Z<~Dw;I~8iT+?e!YOb;&B0+d v17khYE*6dqVTA?04Gl(&Oe{|rfhu8ud21lE#hlZMH$VcOu6{1-oD!Mf>S0ze2zAT;{FHVTt0w%2w5!@3WY+UP|<%!mm~f=x*YM_(dUTYjy^~HcJw*ozoW|$ zza4#!`0eO(#BWERQ|w?z{*F`bh$GfGVvQp_b3%!EGB!BL#8la2$_gi$1{J2QaFV%V z&Jf4VB@<>iZeq&xo8h>5Aa91_CZLB5oAs^DZK8ZSm)<`w_tdWkv z8mVZHG;59YM8+CvAM{8y>fF<$6Tha>X zkbbU*WiHx+Zi&+SD2}ts+n1LM>3*e0IUq)o;XM6g!x(4DOFkG${~Qys#XI6=$Hu{` zz>9m^B(ibR8|KcvE?7BwW*wXZw9V z+wb$)exJ|w`+T&z=#0^QS{Ze?KY|rl`-q6QEl6{ z8P&EK);7cHY}@9Z{d4<%jLCoT?hLNnVWi%J7 zZzP0$v=FOrB$WL$6{~N=m+4dxt8e5ZJ;dr8iDESs#p)Y*PBXFkMm!lJR^Lb@Gvow} zoS?G0!d)t(*W+!)X&xe2qb<5({VkahWia&W$*jAQ5cbhYfpSk{F)GzDb z>jOAOa1IJv6c!w{nZ^HXW(87TW5raJ*?1CbhE+OCzFMrp-clsy2T$u#6|XDVD# zKD*paEWT7gmWn(jmH`OU5NGBiO&`u9&L}M97K_DVu~;k?izN=q=ns+(1wZ8g0000< KMNUMnLSTXn7WT9N literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_all_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_all_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..e5393aae2aec5721d0b15369ce99fbd39a22b4a9 GIT binary patch literal 756 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFzxnqaSW+od~?B&@qhtC%K@+c zVl5>fc|Qi`_(>|Ba3oj!=iD_p5MFcc6&S<#Fd8OKfS#vZnsNT>f^Qe*t#*97&^EmJ z*5Ui-EDzj}WJoM{wL16qw%qN3Z&z%~Wi5@ly-o7Uw%o@#@8e(B8gDe4dHAs&|BVwG zQj_8;=hU1Da|>?1aVq(D>tde;W`$FZUz>ZlL~-J$8+9p~rX8znwr!VmwR*bo?-89# zTK&OGZY~LxTkcWpvD{``zNClF(~Wz*Y@ZeusYgyZ{!MvrCs2L+i4`{6)@QD^@mr_3 z?b8i8WuRGc3av~x?y7Yo6iWf8u>iGXs-6^S=Q@-z?BE3Z1!1QuwAtKky9+&v5#-G zg}0VnoqFcRmmjO_cX+!L-d%d{#+Q;l7vAe}-2I0m>}CgFf4#vW%uFKK)^q)3k%0Nf zC!U+Tb|>T4^jgbv|3G<5p-=9 z+I!*PTMr@DzxrBhCchO7mM#Cy9kwX;fLGj-4$q2@^H#VtbsUP?qv5oqqvFmIX|_cS npA7`J7BIF5IB_T<5g*uu+;j|o=Y;(Rre+3DS3j3^P6UP{MdbEYkMifgq4qT7OF8n4ZIz_sOC0c)1`E~c%lv5mKM);YZW55&vY zIlRt#SH>EpUN}+v!mWuQwR3=K_dVy@vhIOe_=2tC%XcuXU3oxMBldJIP%(pFDQlE* zgZ720`9SsjK;`TGwsFNhci#6z{hylY%aeYNUV$^MOqR;p&Q$ur_vxnGjV<=!A0^~J z%D28eB;<7I?5l~X?vK>$l&sIroO&dk<$85Syh_YL>y$;B#vGj6)*TOXJI?#ZU;CPX z(6eBFfsIT&Z=JN+;Qmi-V?eXZH_27 zwJiIrbvUJf%ii^ePomZGikay}J0?tO;i$R&I%o3n&w_g+q8k1B4~p7^_#S$1;@Watyg-qegFRBrMRWyFyk?gWUjgUxPOS^_@dqMHF8md= zGEn;aQFM-H^r5fI94G5lfW})jjtsIZ$Xltu6{1-oD!M<#x3s2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..18ae7c7da0e9677c027b880ceeea262db1c0cb5f GIT binary patch literal 427 zcmV;c0aX5pP)KqQmM#543P*HK^lMs38?}E0U!hrqB#)05zQh0`v(3mr}&o~P?iJAa)4(}C@@b-M~)X$W|Ju`IbMwt(^_)8E9SK1 zc$ZA*$nj!|^y|p+9?0s*@nQ;e>B#X;83+m577v1JhC-6o<&&r~s4b~NpSGl9=d>l| z^(D<}OL`)uEot95xugnJ?y1utL{==xFX$!1A{*>c=9Ttth=h_{OLQ~IDu>kh$%=C# zNvgLA9u<(J*N-@fwu_r&*CYiA&FU;Tx1_lARI-=+V*wUu4M zdVvDhVgIeU+N%Vo8opi;n0tGhV8Zr)78?)(Y=CGuJq*Z+t?5^>*LvSv7i{^eU<+H zdw`tOtjuHP^%C9w#``QiInVxhW_s4-@$CCwf^-wY1OwJ@kl$a`>ibK7N$W4ss@35? zoVmYp$*)`z_t1**E7#>tU{M6Ke;V_IgLXDiQnY<%*v@nxQE8jixd zjAsAcqw+CsqP=jR*h(k$YX$vBW=!mC-#ujs`*z_ui6Up7JT8^m*tGsg?yLh%&3nE) zRNVO6$FWmX_~y&g*-6H3X(!#~j(wQ;BJP23)aIZWYhA9##bNPn z8E=EVF$`>elTWUiG|VTy4CIea*QSavQ7`lPd55YQ{q^*;}7)?PQ-} zdB~va(AM1B+j5Op$zI*Ic0phEZL{WE+j8gs`?fDQ``zY^#Z9uc*Bd`s1jw> z|5o<0$4VQ&iOVJjRnAd5t1$J`jkrtGR{*6wbe|S(n#yx3x!Sv2NuxhkK6C2vZ*!)d zdYr;~aq981j*3&s*3Lq#n_?B`3f+7+F}O45`^j}K+kU5nDc#P!q&@NNE+I=xZynW5 zYp=F0o_xLy#IsX{l)1mZe#Y`;hx`POISm16BIqPnT~`e(P>?nQsPJKI?P zv>DD7m3hFG|I@VWuep4oQ2(2d1)R1sPle@u*lhC0-=0~`sx|X0Pv3`$@`b%C{{L)$ z;<8vrcxU5DgA1zef*Pk-)_r_CPvEX;dnAWHr&@7;{^gUY#}{@uh=zUWTwmJlp=T4| zF6H*IWBuhjOWln+{lword?WKPwtB_%7bT^AE~4S`-0Ez~mHnw(U$?WKI3Z>8+viom ztYr(#zJE-abIfJ1P zW7o%-4{l|u8A!bPG;hJS%nT!zQ=jHA)TnJ-=H;v)-+$(ISnu6Q?aP16UcK{)L4bk6 zMPc5&YOgOc3@6r~{ALh1v;P@;n3FccwpA_eJ8b$^sy0eu;b*TqILW20 kZ0gL)Qpi(KLV!=K7k6me)|wjy0+TU=r>mdKI;Vst0Lt=LJpcdz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_all_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..4fd6ed45f7c9c374d6a8d506f1c2dd15d6b389be GIT binary patch literal 987 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfq9Xqi(^OyX6Tpn)B zy}b>HM0>&XH=oiT=}$o)32R-Cj2?TaBaT)fnT4QBkJoIUZ3Yr z`1_M_jlF%t*XQgT>J|vkFJM>S#916s|M6@1deQtsTlWn$3v^!VKd#S9v`*_0N&ox! z>$B9p)PoMS*W!=q$DF$~QE6@co`*FD3(w^Jef(MZ*GHAxhHJm3Z+(_EZQH*!iZ*An zuFd~u79CN4%lu8^-^~9-4PTen9=ddGzG;K^jFZ1M&)T&1>vG%kO4sIJ?XF#G|5o$a zrhjX;C?9UTa&jY_iyCi8~1)~ZY!F>oWlFuM%`ogbUTL z`}R9EGu_(p8pE{WrZw_2uW@eD`;xAHDXhF{&HKNM>$Ws6-^N*%pwIUx!|$Pt-UF_@ zM|pA&BjX;|?psv(pnO95$An->oio4QoPBxc(DIVy71Jv>t&!3>doSjo^p>R>%n^qc z*KR$~^ybvjJ#N`vZ!OPjfAQT>}_;%&`t2GA}vdoy6{GU?-aId-1 zV!mSb^4epojzsjPuk2>6IkEOhMECraYd_bX+Q8s*`eMlvv#6gl(j8}X?_SXxTXSxk zL5^Q`)~7apEAft<6}_)`lN0Bg=!>Wa?mb;|Wq-n&L-8SNE5CdTQ?PG{temkbS7eUD z6!`-Szbr4>&c@Gh>=SduRJV|2xgXe)4eT3!{_H)KBRgARmi&P^e>_~jALTpP_L+Ic z-18dituME#bv$P`5SCB-C%9_KqMAA;<4q;!XY~q!mT4j7JYMbD}Fdo(iKD#*{N-)H2 z>XdlLvg?*J&*hJ@8#ehK*`V;&;-XwrM8A8kVwdb&hspNnIqMR~!c~*&SKj-`2F$b! Mp00i_>zopr0D_D69RL6T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..efd749c9e603d2f37541c38e258bb3328fcfabe1 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz!>Q1;uuoF`1S^)3v;5xv5)_k z22E^~P!iN>GGX8r3S#A8a^O&yaE5_3VZsst7KKiS9FGjfAlAuzOl?nI@yhp2X({#p z{7;_YIDf(Y)BjI?wmJXVX8oFDhNgWh3w?T%vt)uF&yYHP#bOy;$fnSzwX#TRP6?-} z*^HovOR|Gfqgp4wn`Ei#cY{^fYR-n1++U>@iQh$l1gGe(5{pE2o{YvG?Y1i(ylhuJ zN`GDPa9`l2^?G93RgeBBS3IgO*agjHD?hTO&Q)t$|CDRqjjq>jEpPme+_V)re)FN|?=7u4^DixaGdW?2_33{%4325Ooc_Ki zrM|E8#uHxU9Ph^op^s*M$n{xLcuD%%v=618PhZSbpRmd*{h>pamh8FDHVGmEs~oyb mm&|%7uyNXp9U#BIXMVphHEOvhPZ}_c89ZJ6T-G@yGywpYVXSWe literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b52a57f9897e8803c4ffcf2a53a961b583b54cf2 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z_`uR#WAFU@$D?;H4+X2F7dgy z^A<}5N^b6xy1FfQc3|%8#9ZSwxzf>}Z`CDFsufQDthVpAD_@n%Ga|A z6Vm24j|995aPYG~A^Pk>hfLP5#6IJWNmaiRd*hy5yTt#w$@7WeW&Tf-PCgL51I9OaqAE1%=^Fm5JxMk zd)2MNpYogMO^QrDI%U$gJ4ZP#`=_6r-dAVCx9qOc%1g6MwNE!!@?I6Yd$!`|?LD$p z%h{G%e7=3;PStU_l`}q{KB714x!L17ADabLA531jx9(Y`o_=?~XogzZ7x9pYg*9cC za*q`~C#Y?I9D30rqrGE-}VMB%H47JZMw=rg-KWA+xt2uE&hBVa@_c)I$ztaD0e F0su{q>}UW0 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..0859b926b8f814f16c43d79248c3a0569963e049 GIT binary patch literal 699 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFg1C)IEGX(zPaGYd%%F<$Ob3* z&u{-t4q_^kcmh-e1_#a;PqKZl`E5YV@a-vNAhDM;i>ZZS5ajKha-I-K3$@X;$)hfHk_?VnK&Z(2EE?y~-+G%!l zzJ6ia0+rI2$2_JL^rTOmw!*9CuT%losmuMUcX|>Q%>MYl`^m|bCuQcfTL;Q7pQ99# z$k%^Z@I~L`zDS{fsjhptk{9uvvu@8iu+4yF*Sj;#yKH=(=V}OFEq>*h#?{vTivQh; z$^BKqMorguBt)OOnf`F)jDz_xJkzry7I3(qy`Gxscv<9aWxKZlAJc^$o?&I|zgr9$ z88YOS>&F*x9-1W;@oAYvc_HT$Bj1vrlcw43VEG{1Y4YjW^o@-|rWbq`)bIMlFK)l? z;)N84Ss(7+_w-RP361Jp|4n)3u{`aMXVovHoKz;v-%gjX~7fv87}-uo41^w zv(owV?Op9vf0q5s-RouVlvS5~Trm1`wDtTev+m#GO}X~xn&0#Cv-z)GSAAahY#a~15~lEX4TK!yY4{cG7zf*7Ln z0|GhMygeZ8m5?3Z6WC{)x?$T&p@?W_&NaGgS+1ppFh!sLykF?XuHN%g4qRKg zXCceBYeywiJ(jX;oA=OMbwjCKzDDEPrv|Q^dY`5Pm9>~pJ#bA+Vlm4?pmJ9reKT%5 zOQ)xI*r&ibpF)y5ttpJXR`xNFWbZWeZ&uwYrAPPOFz ziG8?(R(jVkO?uJuEw!O;*D?gKB|oBWwPI^X=zF z%09Qf=3Mh*$~HT%2{L#55F?Azx;d5PuD@f`Xck;_;4Xu+q4So9 zYR3(n_Z)S~`y`*%k$=-)kVjDPWuvB2r`nFIaxxsCyu|ToyWEp5d8BN`w3d-;#;1pK Pnm}Tnu6{1-oD!M<->JxQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..ce5d5706d764489d18292fe243ead3d8ce5fa4f9 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKN!07Jj;uuoF`1Xde%+y4QV-Jfr zMQ_SYKKpIj_Z{1w9E;k#*7W+Mv%0ru7_EQyX5aF<_x1AYitX<2ykZ}$HPvfrkmlv4 zLXKmK672~xn2b9cZ}R+|+Ix`kLGNF+Oz~Fc1H8p0U56PhmgTGP6}Wu%kf}(X_NdU} zfa+W2!Uw&QTt^-T3i=kLjv zFSzAeZu?Pr>woU`8@e)b7I2E)e&4#j-0k1`eNVKP^j-|x@!Grh%oAgeMCUgLm(QJi z{*7~>F!$b1h0I2Or-a=u%4ayR?#ywvuQ}`otWAyQCqME1D0bkCK=af-ImUOV+Gl(T zDQ3K2c;dy%N!$s3$2NaZUn1SuRy;Mv?QzT;lW#|U#4IVR_5|5v)pPE-Hq?>Ninhn za-5@tubeS=*IYa^|K7#<6VmqG^wm3CQ#@U2*3W0UxgqQZ#T_g9H%#2{i^Ka%yvO9P z?is7?4q0cd?Ef%B>6P*vl|^=k0=~X~_B|v_{-MmnB~pnNk7pi~nYL+KuFM0?jhC%% z%H&M!&N4~Yk>2V1<*s6~kxkSR3EvsVSr;XT7}?!XHD7CS`u|>qVk7&wlHTb^X|4J@w+CERoTi; ztd$DrGL|@@yZw!$*0Y3N9_wx!^u6cn(6ce@c>k$u-JFYa*U!q-`+Ji^yXCr`B)^S{ zM1X6@T!*O*dYg*oo?}c6NhoxX{<`HiD>S4ZDCe6c`0myaIs%M522WQ%mvv4FO#l+E B-?sn& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..c539638a978743bc6a77226a74af822c419c6cb0 GIT binary patch literal 684 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFco{cIEGX(zPVt?c))>!!EniS z%e(atcvOUpfNH>C&y9S&sP=r zYJyRh@1L_}J|)-|C^7HGwzFE>a&Ny%D&LqJ9h!4HFZp)ay_ny1!rA9G*M44C{@ngR zu9?w{T}#5{%)j3}6|hRky)sAM;*iHGq43H(GK;i3ryl>-CK{sD_36esqZuZrlB-XL zT+-lwH*w1GvnD~>{ckO6JJ#83`y3J=XP$j>iOsg_C4qA0)}Bjkwy9qM8rlt1SNBM( z|E-Fr=!vpU z_eh1aa;1m%FQewzJCD*eKhBS1^O51Y+$lNd>G3&#-|MTWo2AY?kh?FOyAS6*V{{0qp{wot3FWNkL9rEeLM4v|&W>@dH{qmvn z-Xlx-zZXuve);&J&f^mIl4rjCnaH?l^W+nIl^U06%1C|gI8kzWM<;*KhI>z$7e6a} zae`YZD2&;g@x)2jL$jB5u2WD+U{17ETIF`nDM2AI^rBCK#+C=dinwCeQR>6ZKa627_z%dq zD;;Kfu*gc{2KSO;6(g00Vr#D+bYR@ewR6ELWhG=#w~rz2-b|iZ`Hw$>l9#8epUXO@ GgeCx_o-^?P literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_reply_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_reply_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..6dad054121800f67ed93581cec9d2cb2afe9b72f GIT binary patch literal 954 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfw|Gs#WAFU@y!KB#s&ihCWA${ z|6F3as(a{DCNoeG5;(B)(5C-$4Bo6K3GuvKPbAWLx&QWV_T1gu6uK6D&AGiT_x85G zk4%n&Xb|eXVde97oAGb;GlDVen8Ys6z4Yhs=a?L!|9=W+`bKkoG%laXe71gtr^s{P zbB5xx>i3(PJmz0#SUB_lf`?BYnF&w-`Te$I{=X+m!bK0$ZA&XA8=LH3Z~5f0+1dBm z+FvUIK38WSKRxSybiLiRKlju=Y<>3q+T7bfCA}%nV}MGe@-yo4dw0Zr{vCBz9H=Z- z@9Lj@&ptLi`@VH<&78GAYk42@0hL+yXV%5PuJr!=`_{33t_Rudl2Z>vv#Ndw3+LQ( zHIOMk703-#{V>g$bI;Nsru=w~#`RzCEN9ubtZ=2!k5^gerYNizs`wqiS+n+`nd*nD z=jUiTTB&~6I?;OSf$IY20+`|>&&(9ES;Df9ZKkp6k9Q^BAI#=|(%t{j{^d!Zysn_W zS0)Qo=e{`2wMCyP z<}iE8V%1`gEp1iXjI{1JW!>7?c%;&gfBUh9?;59bgcdHIr`IQ#{y``;(q+%Q3y<#> zKFrP9)Ocg-#m`?09~&8MZiuj5!OX{b!1B+zh@^`#>OMkk{4d}BDR*$MshD@oW%;~w z5vmgWml`r+);i~L9$(C(95hqsW67xr#y@&pU6Qt`w)a&QX{L4_`E8Xx+horX8NX#) zRr~p@iZyjDH@=NoKKYsF(f#M{FSr<3|1MqUxcOn7Bb+({I~uZN?r&D~OK3dEpYz~` z*Nj%PMph1fgPF-Q)5UJFh-t(e_2_%L^@7@lhKE9J1zWn(6nzsK54(PO;-PI}yo6Jy z!D70e-G2^Cl?@J$WUPvIFr_W@N%*JaZE#0t3g?;lC7gQPsZ5{6Gn?ekI?Xu1)K~W= z{Pdyr7_owwb3Wgqa^za7BM-;*&tiWVx{Yzdu^Nv3%oncg;Ye*redcO0x$!{lGuIt$ sKmR1xwWzO5oYzvmrEyN33s#V#-Yj^U;pVHNN>E<&boFyt=akR{0RODamH+?% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_report_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_report_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..2c75e0ed158fbcb7bc1f587c62b781e2e3b5cf97 GIT binary patch literal 304 zcmV-00nh%4P)o+Pfa{1#vp?XGRPo<45|;xk3k022fcOCR!f~UQ~-_IC|Ya$ zKj^HsGXc7%K6y~vG4~82-mQDJ9e{^okeFY_zwSq^6>T+E*nbQ#p=CWV+SJ!P~sNVW^GDE2J*4z+zZi|TcyV-Ml{B3N$wLOTv{_Dif#Xqku z*d~5;N%W?d|K>jt_%r|F+;f@cN4wK_cWt@4M)mW$f6?x>Zu_P^*n8?k^YUoUJ+q`M z%Wh5#Sakp0ug|~aph%Gku^xL{)91{13T3_SlH_KV%-e-p@m|NVP5`5ftc z&qW1c;G%t&ukF+YU$?ONGX!$Ub=dH`%wu14?4!e#74qCk9S;m$cx~!xO+PGA+hijU zDc7OH@1lF0InbL~R1~CkWrbECx7_~5s1HYkT|YRaR4Qay%XQq6TK4Fp%ZG|ZJT{xX zJVGjqm_iqo+4!d|ShVog%?g_UsYRzI%WHJ32(J9Zd{m(H%hE~m8a*dIJYm)Pb>WWI z%*HdHm>F3F92f`@0dE+XI20OS#Da+>}T>w&dm&y?Pc6G@wFNIg=ViCeNU`{IBze1b}i|_@`HUbyCdgGtag!XwDD(J zl)SUAxl%~r?#a^m4aWss>(AzA$())P76nNubo7cP`KE`0ED=Yx+fGPCEnep&VC*v?C-dk;;XaN@JW zlS+k8HUeL@_+4J!ySQnMc}30Ys%G^jjd|=!=a~bq10&&TS5YWP@B0rwu4xO}%;T5` e3RD+3xWDzP>87%OF4utxgu&C*&t;ucLK6VSo$CPr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_report_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_report_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..b6cefc00edc8ede8cd21adf4ef0b9435f8d995b2 GIT binary patch literal 768 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJf$6xXi(^Oy@XTlDU*HnQ6fc2X28Z1}Q_9tlRr;hVMCXdfVO)@AA&q z{r}CgPTuB0r<=zl6;C+2&LIKJ`=3$4FN~@LCFmc#$2C+sY$V>xZ9Bf;!=@DIl;pwagKU9SpXIUmm-;2&ULZ|h*|`1j9O zhNCQBKZ`Sn2#B2HU!bfpN8Z6bz{0+vZ$VxigY3b_t9~+;lov>{{GQ2Z@%fu^l`+F} zIbbLe3lb_YRI)QPFf$xrWO%^9knxv+p@4zGf?@Z~GoRO_DqAz?{oeM;r1>@(+qAK!Ji7l)Z|;!L=6`?S-!Y`fbG$M(4IT(R4d$>7@F(-Y#DBwkN5 zTEd>oERzyevfpTW;@=g&ZFfCAzk9pU7XHj%+`qM&zVf^+J^lH*;GR<#uHBxuzw1G5 z+qaEhe`a&+OOGi2dH3HRQOO}3nzFw(fqT=4%`hQwYi|?Ftwauyj=hgJ~%=0~B zo38)+vz0}9=fussX6nB^AMgLcvfFZP_0KBZ=lTja&S&L)m7C}PNlpEF`M+82Fa69m zfBSB>>Grq7#TExmHqSDyzpfGtjjrGDsOAJlbpj}=g=g%aa{wGs3IF;Y{O~$!pPTt_ z-BfKCgR?5J9B1Mk68rKC<* zwRBNefMZ?N!5oOhbDRWm020pON$QOQkXktpP0C1p0gm-hPjdhgzyV0k;Ya|-?f{Z; z+CczGbK^ju29ll<2eR(JfrNsrfC36Apnw7jr~n8ppnz(E-a2ceg^qev01aA?mn#kb z2c7KpM1XE;X>Yd&wR9(5^*g)W0}n+b0iTS1-49xgR~ro#_K%m2T57AaKJ^zOenYFj zGV&aL7UoIyw|tbt|9s&|JjY2qha@?NC&8SQQc7Pv5Bmy7gP}eE0000%%z- z%wEOqUtCht+W5Hd6+e}EyUIMn(>ZL_pYX=1&DSQX`&ZeYKOxUK^XA;*bC%EN+?MN{ zH|g8w#hfY(kxZNp(;V0)s7|OXv3&4z5sOiSP9u+kw*vDCp%V<7z+5H;?*#_Cls^1% zWZ?>&df>TvaT13J2lE$U4FR?n>H!Ko7yK7EC@h%I;LqwHme9b+CV@ma)U!zlOkiZw ziTQDfWz89xyvZ|WL|$bG@B6=O@2ADA7N(#5yc$mJo4I{?AM2c(_ln9N9r|`I*_`El z`SaQrZ!+p;&Wh9zS*jaZ`De+(mS_22PK4$L?=dpITX(*3W@vHv|FfuCeBJW?`egeC4&{)y>oc_Sci->`JYNp-esTTnwVfOHniRPGeE6%Amir;Q%6 zKv}C-+6o}qrsD#o4?cdq+NeJD#3zT8N`;{79~_pfW6NTl_^@%sob)uOpDy#%B~A#G zHdit=ENR^J)#j(eSD+BLMuUg+wB>Rd4JSU=c&>C{1S|V)XshtoTY-^9z=44f5nvX8 zs^~(%@>>^|eJfew&C8fozHr&r8!u!Q-0wTSPLBD@<>s{G>(0HBQ^;IW`nm4}#{%u$ zHGj<;-i2ImjI|4hoqw5m*5$pcZf!b!`{;V-tHMv2E9ccLa^77PadxtQNwRtV=1QBu zzvutVas#^GrC<2JhTSqbu@5f(jQvs}fb zb%jyK4#%gR4?enls8H(j-PSqp>7$sHVmyL2Z5(pI@KZkZym3W(g@V!j3{Hir#^cLW z_b&P5@T5}Vla0V$E4hxitrA`jLE7^_+}M)T@xai9)kfgxX8}PNsAb-x!hfkW_IoTa PfiQTw`njxgN@xNA`y}UK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_report_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_report_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..07955afafa9f9617891025de955fdbc6a6b37a71 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfoYGYi(^Oyowzg+s2=-InVSjD5_&&{j6+IuWn%9wCbnejQzqh z>+R6t=XUTrH{_TVPswbiz{^8g(t(k`(q9EkV{c|hlEvWlf)lk*+>*s66SDde& zuV-JOwqpK%h6N1^a_Si7F3128Suoavx~G2_CjDg7w{d!M_=k zPkH_OvDjqU?OdnI2a|8Cn75VlX>WYhVyiQ~Wqvzf&wg^k?s<{*;x%d4?XPakeHLWB zH0ETueCzS=s@HFEJ`LOVbLHL{-#)2?N9$`>&bV&*EwpZ9Zo0Pg%@b*5msZc;KPlne z?3&D(sd;rQp%_to6&%ID1ds!aIej%?0(k_hhx<<_k@3b33V)~AoC1?v3qdi&*|#OY0R^pv2NZ{))NoZUV$RZ)78&q Iol`;+02{bS5C8xG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..b276a69416a48f554a466c8018f29f525ab013a8 GIT binary patch literal 316 zcmV-C0mJ@@P)05XA8jbcaOW*$NPW0O$Z6Dn#l40r03J1i(fxJda&zK4Sg@u=v5k{XXZM3(g>e z3^GWZK?WIQkU<6+B&cCm2JO)FoCgB?5@?UW15M8fk|sgq#D}z$b4Z#7k@MN0BApQ& zNh1(B+zFCac#cVvpu_0uiIwJ!r%B`cW6BBcOHe`zF5w73B;_MV3aXRH5rc9PIeHLD zb&eiHQqIwXQW80OP);I856Vg8=s`J&96cx}k)sC{N#saD)fyVm6_oeCAcG7t=!NLC z7fM~bfo>?Z?grYR)C`v{oC{_sw!mG^xnlv;n`4VXh8eKM9F?4N&bVNj?3TtTk^vOpuUiXVw4iGiEqO81AT&-jFp*o;^dY=E~kH=lfYgSe{EBVgAF? zT+uK;L4f~*FwY~#x+X`P1O5gb>_0f!J~G%JRFHe1E`d!EgZaS+fs6?fHd+Vf!@O6Z zQu?BAOWt+O1L|vMmvI>^Ej>TS%J}~g;l6uT%oWE&_bcB&*k^aHXxbd- r6Is0D_ZQ~uV?6=D(3%p|Tg&Lfx?DnNyfvScjoP~mC4v$yMN1vH@A}%KE1Kt{$YX!v(>wJ>5g+1AH*0M*BBxofeMF^1I&x+87H<|n|_#(!5~$!<9um@-{D{n6XuEO|Jqk|s4ZZc z*O0*w)sSB2;9+uyzoPB8J_}bz+wXY8^S>L77TLeAe{S=h{Z!|>8qNwaCZ#~D4Aw!vx11HcX8$3>4q1(8wa>0VEDVC@@>-Mb}~3 z-T$`5vx{-G6fzvW&&9f;B}&~@`wGMHw?WKzxLC9L59LlQ=31`$Pk!J2@6rz$_4NYg z8wL2!a6jeXe`t#)^VXJ|OL(@Z229uUcVD6Eyvl}|yXo!BOHXFr2y~dN7T~Pte(crb z9vO{{v#s%43-`rD2Hu$?TplONd!pUk{M?xdDxQ;oXi3vQevzN^=WXcK0wxd!Pgg&e IbxsLQ0N?H19smFU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..e66ccd064ac0de8081714d18aa9522374bfb2b5c GIT binary patch literal 809 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJf$4*%i(^OyS!PFjT`pqEDLgCtXU1dH~f2E^Z$DTFfk)ZN7lWz~@HeO+V^5^|-&xC&}E7&vU|D1f_ zkLQI`j8SXae;@vHKfO1M$zY~E=b8B|dwCW-|HE;t}>w3+Awvo*?yK_hR@f9 zbLyFHteaUcw_x6bb7jB&9ouVH|M35J1`&atldnFjZZtj03238jSZ_D4k zw*d;X0EKrSunvs|ZlRg#~tDVLk(X+ADn?#6I=O66=pmv;9iTHfT%tXUus$${FetF|1P79;X zbb43)vDE$NqEg4 za*I-~U1M@Oz;J=JB+#|9jFIud$4xB^AH-dse^hFpZQb&D?E~$!v~L9^GF7`KIP+OP zff0e0s}%dL{5i*CqUyq&mQ}~T;4b&YAI6_2-GAx5T2bo%vL!V& zb}Oo*e45@HZx-35F3Uyi-j%*!ael38^?L4-fN-Ibxoai_2w8oc5I2c9B1*{mc!N+ds{BF2`kUJA;N2YF2#DYw$(P787GVi6Qa+Y c@%hNTGkVKE&PRVFf#Jg7>FVdQ&MBb@0Qf|Q6aWAK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..439a9b5b0e568fc289de0d4a663862a2d3c8745b GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z*y$#;uuoF`1X8b8xx~Q>qE{d zJc0~w_oXmQYUSlPq4$N2QJ{sTam!wJ0fw*oY6VwbZJW8%!k(f1v*^38me1!DpHq}f zXkcWMKqnl2@fauw=(>HG&v+r-Wp(8N8H)?uOfL!%Xmqfhx)h zvG4PGDo_FN1)>nimU7Bkt~x=T>luSftDRJ)40;al##c1`fd|bxaN& z3g3kpoLF|wXAn?2@t37R!10|rLkmZdJ)?rlgx@C_y)OKI$>=rV_fK4eB!g)R%$svg zT+!saF?r>Div*`-YJ~@^(>IkoTibD5Jo1;`yiT)fqbFVdQ&MBb@05*E7=l}o! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..d9ca4444031423f81c661a468b9096bfae536a41 GIT binary patch literal 573 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFtK>LIEGX(zPVt?$iTqDVDQ&_ z@&W$n7FM7Nh68#xIaoM_R6HgqII2VGCKg2yw+SYW!C*-}$$3CeHo<|1#ZhE$0mDHi zX@!U+)^Pm8QzJlltyDSgF`b+Pu5LmLgZa{KJe4;R${_-?{91 z%B92*@?nNXtGn7GhnC|mKqXHcdXBqj+JO17iZ*IV4l|C|{$hv~Qc!Z3b6ozE(j$jC z>Rla-rVlPIigk(F((T?I$M(qO>b`w*mWvChYkm9r*ye46#YC~fd29}II@~Ly81}lQ z%wt*b*X0=}(<7HT>O397h4Ty){Ek!}YOoM|&dH2VaHhIENO_3@kf;Iaxdb%3lI?^G z>v@KmD;`KH2#eYdh3z`X9otBfRd;O9Tpe*CS)`+sZ=dw z&@EWR&$nxXlFYa4q;DH0|M#k3dun__p_#`Bg^<$9QsVa4s&W%s7gEx#^JZm+eB_M4 zi#DGM7R?GyNjfvz>t2tNxOdd5j7S%|vXG74c^jTN->;2uEuT^Jz&*a!(x`KtVanlF qYu?(Aj}Fe%ZGJI9#d8t}{bh7JYi<9CKi~!^(mh@MT-G@yGywo1lGT&| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_alt_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..3758eeb8280535dd8756ab37814d166c1127de50 GIT binary patch literal 789 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJf$5H?i(^OyEwEsAxzF2KRm=-?>! zl`(_yg;{ri)0AxobUk>E)Og03n(`koxU>1Hg%;zSenTPiu6(9|3lkUpnIXSm@dV}@ ze;fpSe(E+#HB9O&)ckb2bV?S3*Si}_Pvn;`4`I6TXPUyN=q4{#2h*qgOhU!4SBfx% zd^w}*`p<`H&d;BmOhWgnUgR87SuU;nbcJ=j9pf8Z+d-y_mtk zAi>5Mu|&C+>D%=72#*Md^$I!*!Ue=GXmfDC5N%=o!gYwLiZzjOZ_|c`I7bSk8MZbh zFizoO5_4Fp(7+m?(P7N}gZt4rrhQF2HaG0ME*Cr7RHT7XC|17%=Kdx3P#DS8rr>mdKI;Vst00-bI5C8xG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..149845172b77bc84ae05d447dd737518d7e4b106 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz^Liz;uuoF`1aaXM^{Gyhl}0n zJE9pqx?DZ9cU1c&?r`qfeVOrycZc!m={I?w`7u9#$yXOSEj6;Tr?}Vqrp|XqRWqWWGRzae`2;>R`oMKXaW{X>gH zvi|P)QTTTU$NmLdgPb^X&n!=OtUjoDmOJk4%EoUWSNZc^X%CrDii6fh>`YxZd tTqgGaMDnE9TN2+%DD%(PIlXC(xqashJJz;etiZ5i@O1TaS?83{1ON$2k{bX3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..dae5deaad554fffa8ad2c67a7a72ba5d6d0cff02 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z&PF0#WAFU@$GFz59UOPV;}c7 z`90YpzP004b*SST&oj5S#tV06g=|qTO_qI|`PyLO*%dvam%rWOzw>Ukbai~iKYxDv z9}nJHTTBV^(p-9F!ZnNMy?SO(pZYB95oe1i4CD}<6;U{mU?FI20Nf_{8{tB$x>yYCaxdv`$&G;jAKm z&2h$>fIWrim&WpveF4&mTG0kcznv+8_Eyn zR-Q8RKP~@Y)|9+IjNd#n&&wxtPucc|G0Zdbs=R{o(ws*OvI}j4Zhd9np|n)HpMTSo zsDBK{1XHcM{uzCLDV%V{Yp>t+jbPhr1{okeyE&fO8eBCwP7z4 z`>rYPY}0m_{6sI7QO`54+3s0N?KQ={*5(b>$5uHVKKXOKL7L=wo(+4SMV6@LK-{2IG{VSK_QJuDQRbs9FPKiow&>&t;ucLK6V)Y{AuU_ON_g z^UZrnSKJJ4yVg44r+NoYa? zi-;W~r$!2xnUcVwqQJ!(eAu|_vy_P)Ue8PxqWKTT$Ke;*Dl<@7BE|6K^~W+M{9{X z^9wcRw`oERr#gdY)-DKnG$l{=g=t}RuCzw~j;E1qtCDyMrQMgtE)Z{d(HgtpaLbDc zu?u9JrX-7J=qg5Ki)XMY&eBwdu-%MrakTH+ zZSxj;FOO;$Uu5m%Zq&cOMhWPh2f>^81O9%HS#axQxeTA|!N-iOIcb8yGtM}f1zYUu zdtmyA$4~j-uXLdo@&|uq3BAxhxC=;X9gNBp$`EDLHas5ebV2N5PS^68t}J=GH5aUH z=|7!Tp=a#zc3JL~$6GcYKIgvWVd1`u8< QVCrM=boFyt=akR{02eYE%K!iX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..3370b9cbb9bf483bca88aade0621af24426dbc51 GIT binary patch literal 936 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfjQsP#WAFU@$H?>i=KwdxPKIt zJ+dwLvtZHf-!g@lj(AFzO5VbNYsx_)Dq#?_-i}UFxko1SdZTt9xXinI?4Scude0m5R=@OICP(P_Xt0oV?&n zP|zKfAKfD6obwh;29m!fKT>m4{FXbNC3ndQ&kOA$mYiu5l++Je1wB!*aO#@FvhvWn zZ;v=xI@ARe<~cM}Ffrois0b)DI5aRYF&g!gKgdG^v8yNf;80RoB zSunB`FmXI!5jeo9aDdkUiHD->$vro>Ppb0+AC$P-JzL0Dedh3Ca$~sjMpUVd~eOmhvaPEPiVh= zuzAal={G%!)VIx?&hf%dY(hczj{XH)e_W39{yX(wovY;=$KU*b7QSDfIl^62Z%Lju u+IF#&dC#r;=Zf4e`*9khgU#M0BJFSZV-6p^aSWIP89ZJ6T-G@yGywoZ6qwWi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..eec41d7694feef82024b5f3a2a8235d2d05f9c2f GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz^Lu%;uuoF`1aaXM^*z7hl}mz zJ8m<0bcdeM+L2wwc33v*&RpIF`=(f&+^%xeTKG=IkTx>jfhW)K*eB4pi-#>~J^dt^UXDoCytNyXU zd)tnMjlxE6TdE4(886?Np!wY=K*39MY0MtxTP7KAJpX!32ZkPlr>mdKI;Vst03`dD A{Qv*} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..d4619f28fd5ad7e56a88481b91495056be4c8240 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z&PF0#WAFU@$C&okLE;y_K(3A zI%{rqZ|=BN9qRbT^USTS^}af*0x!*{HKiV#E z_H2;!_TZ3WsQkikVllgeoGrtr7mO3!`5SDi7@k~Yp5ffUB(i{kRpUTo0V7ucl;Z$q z+EqT85NmYp#={QxeUDi76rY;Zn=mujN{~rw%?*h)AKutLIH&gDSg}Jd>+A;BRdLL_ z)P@~i$sqo>DDuvPiu&-XJnt&P+QM%rr>p@O&i3vxL#esVV?Yj-?;ar#dCd4?5YQOmP8^3S?`Lp@dXSYZ9J zNxch>NY3@hpQ_$>BQ>`!f2!TQFS??pna=6}0grgFf37UD@vy9}_MwaAD@3 zH6_O?WsgD1ytX|PZsrF(n`34BFS_6SoaStBP<~}zaQViXpw_>pz?fq2boFyt=akR{ E0Ne1!dKL6>}ZOeC zYnx}vbA69lNeNq=E|*&FqVtG*r-tC}lfIoZ{PVnyWY|rfEi_TpTs29^b4o|8N}$ra zNiLlgZbGV$*nt8vYnqSvEpeC-xZr>b7mFk-mk%aqfeY7_9v7|_Cd~;Tbac4`*Aj=1 z5KiS{5C;o-(g{_r86ds@q(I-&QMFjoH~yDVmt{y{({%=}lJ28lHo0Bso_fcte8KJ~ z(MF4BSij`?(p-AYC+A7^EvCK8E<`mX#Vyyo5WOst+pu?gCg+#gS=p?se$MT4XkRdd)e3V^rh$--)tOJ_`QJ&?fabwpu*V_GE3nNQLyZYeFemA_!F7^C$cwpE)sR(zIz zA#AH7u=nR1bAc;S3Rwq>7n~OBIK7YAaUrXM{2umI+ZjxL@UyT3owDMlI%BBk=Ki+B zD?JY{T=x9Xl9!R~;@3VZ&pjTWXa4wyx8U~6wGFQl4>7JfYV*Ke_Mo+=XtAWT{V$_g zJ44FXDp$yVe6jfGp<JyZ`_I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..a86d19cd9680373044627b1a28b8c700fe9aa091 GIT binary patch literal 922 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfjQCB#WAFU@$H?%i&WAC93FN_ zZOpx0)AHq;o%@`eM=6qTlWxzxXtvEf`TQEAYgeE3)K<@`zy6?ReZj5RP({y4DsYsk z^eCh4$DI9f^>b!SILWfdO-=ZN?o6KpIYu)ZcvFlRb&u5P**7wN z5|&UPjtT;*RBU7v5|UWJz$~HA$jFlbqz^E#88o0W8<=<$m?a#5;y@LW2N;YR7*iOS zPcX0rOld_x6KFBP0W4D<4T*A+o67fj+thZ*+HK4f@NwJ&uOW7TJ~c6WY@ zIoo+J?A^YIzv3>#-I=EzUSyX!C&FBkr+3_Ket}Lg?}eFx>$>b7dAadk=uBUHzTz6g z+h{M-Up-phycgEBFJ_Q4bEv*n7$b6^aE+;hbzG-Y#Z`v4J1n^#sxfcbX2X>xZ%CQETJ7`bU=;&gMvQ*`I zB*Oe;A7^}0LzvV~d1u}a9wJ8$1GRQ*bm$i`|46>$#k{2~S>zD!1jz&TDRG7l@8T!D z=D9Ghy{Nv+?7$?YWKD0L3;UMKo;fAwyJyq+#hs7YUYt2|=V1)(A#@H3^0Mz-nern^1u{k5@KLI&QVDul7OI zz0^63pJRM`t#{7v=kF~xeH~EzdXdSq1<#(jWY+Z0`fca+*!0Ss*MU;JS7MaC79V0W z*_fymD3`yWbFXCc0m+^PdwUD2c-YP_+-ob|>@@fPg?IlJ$u%FIspDv^`}B&0j$XRl ztt`grM;{al?N|CScd`<@s9f?4=bHxoft@~c4$f}RXi2>Hr00fwKzhgdpR}boFyt=akR{0RBvQTL1t6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_send_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_send_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1166e11b0a1f1f41fada0a3af720a5bfd96d7c69 GIT binary patch literal 414 zcmV;P0b%}$P)+&aBcut;w-EYTYor#Cv@8x@!OyB6f)y#4NmcV3@4v*(u;IF92u zUvZ3iG$JC>DB>1t=!rKPu<&~s4yY93fZG_0L5Kr3z=WdN z++YP==0f^_#Q<~qpMb?cb4>vSLL6}G_W@flgefdy1BbXoHb}skzXz;GFD9{obsXRV zPwIe7tKs^kv4wt^!s}-kP`Q5BSpG#oqxE}EIv`U=LBA6khB3{QEaC55o&H1JZ2Yw! z3%>^Dk(y)s>nPHM+#UJ$gChAB)_#*;u-`@dL6IW~h4`$h6rxB1p%^c$D3U~oB8`I( z2vH=B5MSGAggBCfoIVl@Nh6UE-#&|lD3X{HdcjcRIF93#0KKV^oIReSqyPW_07*qo IM6N<$g7pfl>;M1& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_send_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_send_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..090b269ce0c3f8dca7432b56d6d10bcb4a5d207a GIT binary patch literal 527 zcmV+q0`UEbP)Izp-l#Y<+#zkjf7_YwY!CbHd3NtdAOt}W z1VIpN&__PTT=T*yW-H$ zbD}~y70}$XL<1Sh{r3e_D9-{a)F>rR1q_6G;N?%*qlbKh0+}z=BQO8TJ&QCL7f8QQ zPrM{3$Ba|+1` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_send_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_send_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..87f2b7cc9026fb069320f5802e946111b2b404f7 GIT binary patch literal 686 zcmV;f0#W^mP)_W!yi_T&5X7b<^)Y%){MS~mS_ZUGT zI0c2^6f`!tl{7Ga=#10K9d;=w%^MD}L_w3!r^XBJ?>HKAa61*0=5?b4_iqvjIk*d~ zL_s+?1?AulvY1lxe_A4Pa0&{+-7Z^jO*2!GgHuon?mR0Ml!Mzr!D*(m!t*Kw*8qa@ ze9XZWRFJ{7%&~?X+yNGsNRYv`(pi&f;TGE!G^OAal!7}~&%w1-OGFM%L1|vHKL=N5 zf()*`1`={`H`%VBf&|w=XC2Q6&aqrUIk;^KO7o&t!F3jBK5&-hC@2S~pd8#j7NejX zoPtttH`q!=S;|KCaFVOs<1MX)4Q>%tVIgbS%?Yk>msfl%RB&ffaPHTXf^)x~=iuD0 z_c=KCtA*=1IQQ#0dsA@kR}RkoqM7TgBjA4J;M_0Xb2tr{ebFDx{K?fFnah94{M*Mr4!2P${Oj3^7rgwX@^l!Lm*9C3 zXC-MbRa9O`uAmT=f%AQc1?BsD6jYR3GFy$RP`8CEC`6^8mmW=#qe4OPvIgIn z6+CFw%UqgsU_(>eR|jbpGe-I43)EzT9v$d7RDRic!X73j$4}fHj#evJ8UkDG{kH36 zwjNMXV0&3-+02s6^$Q$!O@Y z>-TSkgC#;te;l10=A4snW?3&JCeXaa&rIL}zYtT>gc7^gj#X-Hk+ypMJREef1A`T$Swz#ic zz9Qh_WwGWKhV%(}e-%AA6g*U0d3Wm@j7mL!|v$yzfM5q+v3pWZyi6q zXLn4pFIsg?PcqRyX~MLVT)!`_m;S_la=$!F=iiKv?45sKd%Xx8(Tw5WxfdTP;@|U}!H@Xn34uvEd|x`!vM{ z=ie6FE-|uiS88}sP+`twv2Px?%#K4XFA6&OnRXoO>b@f|;oA#^1RN2mPO=>OUbFD8C8p$8}eek6s$N3+}Pdfgy*ua z1G>_E`j#M0ro;DLpHJXXI3OikVL15(Y6b!E4pjS|obB-a=sq?O&(qb4{XvOlMq0O1EymTD)Esk7HNq|2=joH`HB+zOvfao0WF1udp7CKQ>cRS zb-*cmA>~p6S_w(Ojf?|QMFNsL+w({EF-{ z6z&o}zwm%&^Sfg$JYeYj-f|D9&?rHF7aB`jp-qzI{?0X;Kh(6P{Mt`i%ph4L+9LaP zpk%)~^5us{@+EA_i~L#^t7zXSY9w1B*{hlgX(R)oC=aYOl8KN;k~1?4A&q1!B*%6J zLUxe^D&~igP)@H-zCl&XL+2+Ci;f;y)tARrVJBmPF41M(RZkPC`2^D*R( zYK8>lf?~p=c;}3QoIoO|EoA|tSWxu^1;q*p{DM*zFq-Vo85HYmvdanAJn_Z|f4U0^%3zfZb~xsWM>>4s#efFo zToQ-%aR^FieY%{cgVI?a3#yb$qO?A*?4^SeSRcor9M)&R4JB=X24&rZ>J&sj#P(Lu z{2Cq7prZRCvuN~xO87rx|J_0Q8H?@DNTahu7T!`Cq|rGg!kd;w<8(GEa8k-t{b+Hj zez-d!jmmuulT1e=aK#jteB*zPCN8?i4$)+J*uy=V7`L%#WCxz4N6ymGNC-%eU0O7v zgRgDf(PN870R|4!(vAWhi$)0gvuHH`g3?b!qXaK1(F8#d1VIo4KQpv?pH*fLg8%>k M07*qoM6N<$f&<>%(EtDd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_send_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_send_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..438b8611dd190ab2f8774fc18bb2b800a724560f GIT binary patch literal 674 zcmV;T0$u%yP)5YUty-?TPeMmTaf9t#d_hx#U^UZr#zq?FC zL_|bHL_|bHB$44IXIQI;Nue8P*3Bf5S1ox!If@6rljDu592<`@(6qJKISh}EL=9|ye!6^u!xy<0Q zAcJFsh2=9RSyMZL431G2hY=ogKtVtbPC+TS>q|H|##lf?a0&{1;sk5T5@c|Uv-B9@ z5eLc;WN=KdlxgBR8x)j-+pnO+$3+T`l4#-@8x%wiPC+@iC-IbSq#B?aev<=_;=ZWEi?f0{qi&d7osS9_r7sfH)3 z583C8%<=U_FPM4B)ft)FyJX(>@y6l)g72()>)D4FeEem?sC)#^hdAdE#%n4nA0$^$ zh)O}tT#r%tI+TLK`#lOO=#|V-qblmPa0P{^6!gi}6y&HBl(%&#D6gMzf6xezUC|Yz zQc#FWK_#!@$}nV9L6EBegCL`-ghAJlWOnDBafQHh9%h=_=Yh=_>DcY<{907*qo IM6N<$f<%BcQ~&?~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_send_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_send_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..dbce6162b9cef7d4a79dcd5fe058bda98e1f92dd GIT binary patch literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfjQID#WAFU@$Fs10-rzzw};UJ zUQ-RdY7^Te8G82xGp4xR&t$w*UZrr+oXb?Hv+jyV7{i9$GFRs&9`QJGyMFWgn%eLC zt9#DAt96~E;t5AVzdtk-noSeA$Y|xWVe1hK28a38GFr`QaUVA?zo}r!@KeFkf%nqE zOEw!%%s*>*u1)A6Luh+8FPrC{XZk!rbq!KWjM+2|92PqY}$Ka$%_m-23OD24JepsQ>u1(crUcb9cH@jxN9nYlai%33fIV3(X4l>LW#@+&gGvjek|R_mr!!+v)AXDV*4)Lnf}ZA zfKB+Pi=7XXtrtIL0L8M1WJ05q?8n3h7cJ*@_AyJ$y})2<6@B{sk?L7y*(E_hfd>rS zF{W0h4_GfY_G11r{`MBVp{uY3Gaw$y`=@LFFLe_(%m6Cbeobb zY`EyqaPuqGsiI3KDbZ|x6J7dEiS`y5?V&WUh>TuTl9h}X8I8A+QrswHcdZi4qrZ?{ zfAeU%6GVlM(RAO43Vox=wii{}S|R4LoQ>__P$#>>9iH*7@ANiaRB4<(zW1JI-RVlF zILw|lvAj9eVK>J*+x71EickG&kSL%*e)XwW-0ym4JJ!y!VG9F9lj~~>6|C-e(ZqhY zvMLtynP^gImAJM6?=9SEDqC=xyWnR_H=W3%xhjx|B zC1OTzTSKkZ@OCjr?CWAm|2bH_4$)Ig={1SWZiq0}&E}WKf^IQR7-DuwY$kkceT`V( s$HJzPIK(j;H=AP}uC1-Dt*u@Y0jn1$YIRnm`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_star_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_star_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..fcd0660984b089456b767e2215149cfffbe9a9fd GIT binary patch literal 852 zcmV-a1FQUrP)p>MXoiHHNshqQg0Xa*>jN}ht zK>je2O4(Hmo}E=lqmRVk`ACDxSV^?f3M%7n(Mor!h{;8(wU}HboFdxjBo#26Uqu`J zYB;60t!SsMm0W{&L_58soO3!R@VJ>-b9))L&MUzyf{{1@wajBr=sxMb3R_DhZA4MUi9A7(-&ixkKdC z9lDqEM{d@Zk{%8gIdzcqaDR?Z-t;u*`04+32i=?zVtqkY> zq*38!7lY?nGwF=kJSzszYznu%Fd*OBOoPs9w7Ktv0ohLBt`_}jac&Ne|1q4WMfB^c zbRRM=noC~h@~Y_5r)j1Y|7d%S^3-GpKMP?pg<4;@)HsSTuFHh=6l!M+DbhlAQ>)c# ewOXxK%cv)I$}mAFFDl6Z0000j|e`<{r#_3|4bCL?POM)tu*0h@Qa#pbrXD z9~|Iv6sAjYXiNbLQvr?L4|D*E(EbEm2H&FyeNVuxg`zZ%Kzj^D=@9~~81kx8M#=ancW}rBlM&R6!;^-a%rUMlyjw@)%-kEJNimXb|i?1VhDJ%RBd^3dA^#6;w=Q3S#r$YZwzV+UV`JQj%IsuNKH9Y>nW zW&!eC0EVl!MhUh#X{#%vc^f6zn~bI_R%=Orrm-3Oa1vK?Kdc{anFG z?89bEr9Uk(N;X{>&D!k9;he`UJjDn6P6_g{5`NiZ$m0gHiE8a!{>1|r!K`sxV z0Q3O4cy>BU^G+v0J5r9)v{H5?31+bZrC}?WN|N;F7nElGLVuE|E$^c=>V4XhWcfUX z(xk`8rvYSeAxeWTAcF?82NlTTD%gVtwiX4*(h69M6d29|WMK;!PKtEl3uIZJ(1jFg z%8SUNo~AJ=mc_NmlCC8aUmQWD1^cbT@X`7dA%iPoeS9{C#mLYWGX?{6=Nn{T-_RXH zwBR*lSg+9ngXC}*GN`-A!8j)&BdX+h47D|-$mdGf6oXCm`SR>CCg2{6_=FG^wiV4XWr3cCaA{EAZ8&se52N^zaB$~Gv)ZRPf1 zk-H45e2h}uhghVU5BFayXofY`LOwJfYn+CB=oGB+67r!Jutc^`w}Ohu#0uk)PmRS2 zha#Uk2rE2*eCj@|umt(k5-iXU`B-m^w=?pw9WdVY$j7e1cweCedhef$wHCkHe9Af$MX8um$s-Z@oJKK<(m;%~ zchqafeMp8rykO_kgKtA&`;E;>rY-m#h3zJc^b-nMDd*CdWNXa%l%bG)XVW~#8w{YK z4CW0KvNjlJOH{7~Y)?bmk%g#Un_`?xQLW0kl;)&Db1ttp3vdC(`2f}E9fp%i!|T1j zVe)JIhfCO<3{owFJz0uYS4KWYnOAk;>pI%tmp0r`b)ju0MmZTFK4Cn58_y>uKGgJi zR&W5Bm>`pbSjkfu-|fL60RR91fS~`cePIFs00000W&x$brk%ys)8_yH N002ovPDHLkV1l5QPEh~= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_star_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_star_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..bdf5533cdfe07d6547ae1b718ac86021a5877025 GIT binary patch literal 1601 zcmV-H2EO@;P)G0000IENklV-E=0;ELr*NPo@9_R*&CZrdm&}=1vZ~P zN6KPFY`#^pB2oqqVhiX2By_bIgDs#j)J8&f7PgSiL_*dXTS%ReQ0pDNhF~SupQ?x>M_~av0&(PbEI_{^POOgwY<W}GF}4@uFpnF@Uc}sn z48lBZ5F3&J%g_PyunsIkLNwq<%(H%^0SQu#S22%zm1-o;b(kkzO+p>UL@eP=RclMfU4nz1Gx$#6H8pzgp!CzI1_#%S%z z7`3a#&1TR-a{ywj)V}$FP|82&vE-i)k%MfqGbs ztB3dY#G*{U=KfYJ#@&qXVm`L}9iFSoq?j*YRK;ssU@>nqymko|^De||?_)9VUA#6J zi+O|b*y>mUS_N;Nj3uBG@YZu!0(wT@hKaTgc&Z7OkecA7gRq3OKVG^wj75qmne*<% zOMhZc`<^ubScC5|r~QV9YC7GI>6`cd_DK3-&YDC`yt9MDAJ4tiC0||cWfJD7Z8Z6#+-De=Aq|Te~zY*qn#{4eX4or{3^Jg`V^x+_fw%+>A9`%^x`ROokhNk z)?o(CLl59sf;g4|Sm4e8G!IP$4^p3?>hoaW%jjh^56$lmE`oLV9Scy8w9i8iWmJBB`2rIJx z(l!sB<53zCwuU@b+g#WSpc-y~u=%JiWhB(S{Cc}K2m0msX;(3}T#91?*&AW_N@@F3U ze>News4k=9{FsLx#+hVEiY#X{9Glit$)AU=HJNeoB-IwQN%pMt zPMl5Box^sNKtx1DL_|bHL_|bHL_|bHL_}mVhA+e<7wVaY00000NkvXXu0mjfMj_;T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_star_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_star_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..1d893f078bf5e742eb5ad1930625f90937b9cb78 GIT binary patch literal 650 zcmV;50(Jd~P)!j!d>z6v3T3b8FO}MGV%N z!4`>nbB0n*iF)&kQhtg0vb%D2jyzb%YPNQOW1Z~=4|v6=e$(G%_UY2i@o# z$2rh8R<~eO&VEjHvD-cF9pC!bFnJi}U*CGi<8F7cQ|%p{v4bJ%ZJ-^ZbJq92divkm zQJUp^r(V9ZT$E>Fud9dGEnN9nal5?T9@TM*$?`HOQzdtZ(eg0bevyr>^^;mZTSs=* z@Vk_Lw?@>)lD?G6Czedp&t8VWOaVz!RxYmE%IQHtOiATHd2cXBQ>Y1#c7e6$JOGoNX_3$ z8EJ%4{))7$pp=)bYIQFuWraw|;X3o5{bLsU`%h;MiBV$};;WjJORmSSb-I0>- zwfDBQq660Pw)Vb@bS!G3)_ORk%*N6~YZEORsn}0TK>CY!u*kf?eMkDYy7Hxjcp?Z$2cX) kqvlk{N41)onwpxX0w89|4&1)H@Bjb+07*qoM6N<$f_(%?0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_star_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_star_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..730d0f95aac3adf38d62e7c5666fb0341fb77c18 GIT binary patch literal 842 zcmV-Q1GW5#P)jspQA3W{om) zo^zwTjOaJN88OPr?qIhlCyhP^A8U*fUwu|!6=v{5St0Bt5vO2PKl!e=Lo%z9# zQFOM@mCd5qGS~cI!+pmYHABw-Bu28nrl4lP2bDH_ulld zYn+~^s@d00_AY`Ew-gStWyTw&1OrzZ#MZwE%- zSkv$N%kS2VzO#TI^oQ>(5ZN%TkEQmpDI+_^@`99JFji#C(C(DVoraF=X>ySi&e0Tk zv4_0v7WuNeU*+XjD@Ojz?Q41X+T4+bNqrz|@0c{wF`8#&>2V{cPv>uzm75J-%tCH= zEgJp7ezLM}^appz%AJv(WH6RkCztq~>#3`aIGynXFA3 zDOpd}){T^$C2MC!N?wz-S0f!G$-_vIij{QFyOy@JcXiK-k&2_#_lx}v9)B@}{r#f8 zBO?`$spk$8MGGc!hk723Gz{(!U3uTC(E+RaNLPMKl-5{C=YDgzA-gD!9qxCXTQE|v zm(Dz3%BaJX9?+RR`*SAo6Kh5{S<|OFa%<#Iqo1_(hvN+!Jz#hzsA=n4jgdDqY3m8o zMlYDr6WW?F@@6Y7ePKfleb~*7e5Iu=BX2JAznU|Q6n$i5XR7(%rRfrxXR^y<&FTff z2WiHNzp<6ZjC&7T`wmPPd9oHRFnZ*`7%s$`dDkN5jU1WRj!~&pDwRs5Qt75Y0mL{6 U^&}PhO8@`>07*qoM6N<$f`%)g;Q#;t literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_star_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_star_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..3150bae73397e83463e51334b22f6406ecf74400 GIT binary patch literal 1227 zcmV;+1T_1JP)EFj4{R-V~k-r zmXpbhySYmy6Q(3Vf+=Ov;}if+kx7Rt`T)>}D)naAmUi2!H^W=BdsC(-7Nn~MWxC^L zy1GfGD<-9du3DH>rW41~(=lpisNyer`b+H$n~~0@GUMAWa226K_gT#^jekjYgt zOh_Y{G%}(6phL;#5c@&Dkj*cOH`XVYbrokkO)gI=zL@I%SR zQ0f&&>_@)#Q5^9t`TADz!|D`bRmBaDP>2T=FHA?0LL`|^al*M2>TJaa^$es?1F2D5 zuscEQqPXBQg7`r3zzPJlgyMjE3F^*xH1G)mipAzCPNNtntFlo;9|DTS<|=leSld+c z{NYl3K(XFqDQ1z+n1cCOm906D)47gEc#9txOsNgx2j1cluH|$NWNTJoKBkaMsAXoB zVgq*L7%t{cp665kp_M4L@;9IIJa=*t$FLh4up~26TmC#T|M)y{#`rw(BZKkD;PLtG zy7BpK)uQto`*9a9@EQM7$^PXtUf?eF43cX;ATB-#l$)sIQR3iH>J${`Q0dN5aoClS zRH`<1Rqp39j4|JD#<5ItPWA)1cC$ip!`3mr|v2 zVIPwCEXh79FV>?GUp2Cx%8y0qgOB>KsKUWae2Z_sWG01&iFpm5yb$`9bgH=tU))4h zRL9^_xGu@jiVhpojLVwYSkYoB`s1qpET!l%D?j3*ADLBdU^3puHE%PSTT4Lq5a4Zen}dh*~RK%3Z9?5TZ1Q<>a)jaR|3x!xouHr=U)yRp|D^JvO5{=~RSh4ap-Lg6iv1W!y95n# z3F|UWikq1_!Y%B#l46`S(9FPCr=)5{^u pzzqtSF~%5Uj4{R-V~jDzi~>X`KGglx)eisw002ovPDHLkV1n96Sib-O literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_star_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_star_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..055d7d24648fb18cb311206dfabf6f66b8685985 GIT binary patch literal 1579 zcmV+`2Gse9P)G0000H@Nkls%Xi%IeD0UwwY3oB4T1uK{o2X_H*r%5r8VmJW9NtuL?lOgLQlkm|1 zvKp9#jm??c<`ypDP3HE7g-KYJ>CA09%UXDZo0#8?79L?B^BZVk5ss!RM_D+8Kd8#@ z76xGhs+M5`D?H&vs`G*sny@5OsLm9Yw89duq9#{bVF|sdNpCA8;b3ZWkQI*b1GV|i z3Po6p47EwKmKBEZB)NFp3PD(m3FKk|ir_q@r&T*GM`z*ekGD$aZQqU@fo^WUCM z6Gv%A&?$Rf?#P~(^&@g#D9P^W)3bZ}hYh`GVm3@1M_oUP3r)}RZLyDqHZ{*Q58BsXg;&^6IHJQQj;Y_U<%YtMqyI43_pFYe>`mnx*hvjL`9MYWS zEnFG5!9s}f2D<00Kk|e9-Y%4DIV-iU4A@W zu(rhmWi-M!jVQDDU=cpWC!ey2#SQo2i@PnJIF*^i-Aqok_+n4S6KCVu)8dVd89-bO zU}K9v%4tm;wWi#kD$Qc7`rVR)6w`>BiKHwk*q&n2ybZ1hxv&WiHjA@N1Q}l9B)42S=@VqCvfjc^AW9Zs{xy5|G8~|Th09(S(V0} zq4U1qawbD@r-H@JHynT~6+Fu_RlKx4O9ig%t2}gdny|T5gUxAz8+R%XU6tXr*XKCf zNeSv#<)P6cxuPi3w;@FqdYWOBRJOr;9N!!+!e}0161-N zWfl-+yhtU%e5^b)v|wuo&EysYF(B!A=#iXH%F#an=QEQ0t)ARGbefkbGly87S4fke z(>%^Y2fuiNWBWWWqnDDHhaSa+qzd?HiV3Ac7O4>zl^3) z>T@1?440C!A|u6RjHNoe_?m~#@FwLJ5tQ>58LD!}(Ok&U9cwU;CGb9?RvV zEP^QEO2#p-(SGHjGrUc?MHnmd?tGWgM*ifXJGj4iLb#01^CJ&Ejw>m#n4pBK8PEUT zihmwD!@I0(F~iEd4?wqA=b^I~PfW2pU1FV;<{+-NnByAuGZ7IH5fKp)5fKp)5fKp) d5fPC*{0)<-&Z3;s4TS&z002ovPDHLkV1l`p0i*x` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sync_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_sync_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..fd9432393659129a1fd35ba607bf275a7968283b GIT binary patch literal 700 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 KFhZ-}Y1Usn^D=?} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sync_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_sync_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..d5f9932c20f0c76a62209c695eb231d08c9a10e2 GIT binary patch literal 684 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..875d199c4602ba982353bbe1e2824a13609e7850 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz-a90;uuoF`1X>b2TPzx>%;kX zHz;MeJ6_Y0cyr^;-t%S$m2OmD(<z2h8#h3s3*G<>A z*`#xNQ{CGF-|)ixGY9hL=kI!DeK2RX{w~IE#~IyT@0r4E{L19ns+d11tN%a#RBo|2 zPW#TZ)#uk-T7CJ`hc-jg=*KH#_PO-8=_MTRc>773=~p8E%HmxMVims1vHfz$l4Ofg zx_VUCk<%++tLloSy$mnsXa;wyJS|`V5`{LCrkpPH2r@ga;CWM~StYfYXVR3jh6DsA z9W?Y{^O#Yo2sHG<0q=k&p)DMbbtY7CFxx6!ZE2KR;&!LK;GKlxwv#ml=jQNUm|bw> kb;68k&T1N|k<(KDA69UFRIskY0vL)6p00i_>zopr0B~@e-~a#s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..b4190199f3f60959f67f06cd1b5cc01d406ac520 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z_{4c#WAFU@$C)MX`+cDt`B>6 zyH{MZ6;5H{VfjA!;kz>o{S!F+3(D1xW^Vswopt?FboSl%N7k?U_W66kIm_pBiWeKq z)Qx$puK4`#6Cv%BcWmN>x$Xo%o4C-^MnPncx{so9I;ZLzA<3H#FYal5GMy;h@-A12 z`E=(l{vDJ5_&%-s{&Ue6{pV7zcJY_DZWKwBd%x>^q`R)>nTN&S7v3|RyGZ9j_4i79 z!|5%@3a2L|luNiP{pN5ho4}IQ!I2i`ozu?IR@QT4-b}6v{~X?BOi>-W60_MW8equb zD^trV83l%rs|*)iLwN-DuFPUwWFM;Oz~dImDc~F^%5l8nsg+@3+bKSQ%#~*tCbCWyRoJx1h{v;5 zizDV8|H{Ds0fhcn-(~Ka3AX=0ebd6f>f4qtW11&;TQ8V#cSo+KEQ|8%1WwL5M#2TN zT+}2hWo?p$IDMZh2`)V18k1tRQYVqu{HM1@Mg7i$QqvyHDFy~{+ZE223(E@BEPhM{ P#u|gCtDnm{r-UW|=W4Zfwh~zC54z{oJExe%@Pu|8C{1$RHohrBi~uphVP$ zS;2dhPu+|wob|P5p^aqNY+e`3`+`yv17jjXE|LZWl#zw9+Y7EuS7@|*yhh^;r-uWR(1ZpS6$M5lW~Cj7*T(t6--bbLf&GUg z9V{Y`JB2wp78?i$F#78V2lS}>sVF@5kKD*CS%11q^2CqnYa$wZ>d$rwp7=3;&5eeh z|7W{6PiT0C={UG~Zcbt_@|xVrmomkSTk=G~#8$499jBaFjAGIjGD@!7JfWdSWm7;y z&l00Q?1wyzKFgl)u=*@{!bAD9=m`()&w?jBj6d_9@UZ^OdE$i9XVw!Zv_3PQIAL_! zdcwrgX|@w4tA6Lj@WX;N>M$Q|7l!)pMeGEd_XXFsDm1QpxTe;T>Fwdj&rK||+BeT) z<-8)(p3B#lZtS=EeEWh5y8!v)ynI|43Y;eD67wuot`yi+_kW(Ls1lKU?ZeUJIi@BG xA6FUo*~UDYYi^Lg^NilHU{RzLGsSDed^J)2>Ypc%6aZ5rgQu&X%Q~loCIBueD_j5o literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..161829c2ff1767cad033c799a2a1fd9ec4371fa4 GIT binary patch literal 932 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfjQgL#WAFU@$C&}9^G&ew}+v( zx2;`}7jS!Jyk8qW7f=KN!OQmWbLnDlN_^D4g;V<8bL8)5F2kD!i!v+uddBHv$s72CaQQ*Q0_m8h5=nDyK*`GKv+%DKB|H-48|TJ|oL z?Vg0!+dCO-afS7}8pG!>Fj+9N6fki-U=cXLsn8(oz@Xm1;K#tY%MKwd(85s3&EV8< zP3@o|2zZe9z?0jM6aN*mc(+mdLgTe~DWM4fi)MJ< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..24039b67e017e5f30a103eb30152b955cd5ce76d GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz-a90;uuoF`1Ty5TT7x$%f~>C zKz5BF20<$a2lJZ^9E&E4IP7v@=MW1Koes7m2a_6jn6;bdGcS9%$gMU=)1+|ET7LQ=1DPh zuXMZ^S1>{HlyveA*O}`K+nZ4e4bc=DD@MTq|VIw%er2zxh(KNPkAj^o3fSk1O03xA%lueR;@ZXyGfr z^k7udM#Z~d)Q>E7TzJF7XPcHtc;`vm)QKUW2~ENf$wdw@V~S1k{yaIVg7cxk_; zk8zpUhFz>PZXI|flJJTlY&t`*`UWeO8M_*e$|byF6Dw|5$-W_i*~hl!s6+x+!%?vW zu9l-B30{odst2YBi8(iDGOu~X5bPE)m2sI&LMZEuqNY&6gj0fHWeu9?5i=Q=F(v$D zTN3hXFU$e2OZiXCXRl~ruQ*_x^vQ4G4kw>=S|Zw=C%syejO;s)`m1TmSa%-PTY8XT zoj~(yo&YPJrwp8-UKR%eQV*)66*rkrdCPlz=H07rtbyTsZf88#Ozl+Tm=}qI3@}R>N7MrG-xemo6w-jz^mnCIP;=`;@h&DDgF%mPP5*7 zfA{adbNmc4{4$ZU#xU?$$N%Sylm_4hmw`@N;y;*@vVU9RO@%p(#eE8a+P{JP_S zd|Oh;ypF?bj8&v%f@PmYBxcwdF4xkz__hD^EKQjQ+LNb+G`sukT0ZlzV4cCs&R@qv z%U)Kkn|Z{u?$XxNU;pjT?q1jb=6cT~nf))MHV6EUeJyj1=dn=z%UdsU4Sz>2%s%6K z)?(cT-|Jk(ub9_o9GaQd`6;d;*`FHSQ2eCkMc)MvL!3;*ge%hftI%Ut`XwtnC8 zqIuH>x9)3GT4kfQtkp3&)hKfU8_IY964&5hpQWeLd7yFG^O-(R9Ol|w7P1V;V0!2f z{JBIJ$l^NGXjQpNSkv2g-Y=I^L6eu;P26vm&+D0jVV1DngJ`=U9=mWY!#z8L|zFResNehPtci9M9YE4G++gX;Sq<0PDd^< zwRQQy-e>S}nHGxirf)^^rw#l+m*tMTK*x#RS{QUFc$e#cqBx?Zvj83;!9MH!fq7 zc`m7b#hkBjc6m+mk${|!bGP4lxZn&NRDF?uYfvSzx}IqvFg-GOy85}Sb4q9e0DC7b A@Bjb+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_unarchive_white_48.png new file mode 100755 index 0000000000000000000000000000000000000000..d8ce71b1f02451933f16868e0c223e3cf1fb0e68 GIT binary patch literal 926 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfjQOF#WAFU@$C&}9@BIIw}&fp zZ-)h#ugJa4)wSc@65g!n!m|-ub8kP(pLeVJcKrQ!_x3*Tw5{~FFiceOoP1-SQFr+qiS*l!+zhgLS0e9{*S49^U)lLWX(Y(${_kb;2RZ%Et^j zj%{|`!tedjwmFGI+kLlzb-sazUBbEy{$t1?A4yJo)Wsk*J^_1Nml?aDwY|3&xY`Yu)QfBjZA<{;-3YR*j5CY7ChTY|r(l9$=6ZZZvTS{w(eR)aB_QwcyX6qrwsj z$wm{{H0paHBC*=96Atd*L; zwqjbK@Fj-cv+;9*Ql`qh0fzO$oIDdQ3J3uSg`x}0DJDHKPZ%V19r&^udZsC`8#=gk zPiPiXSe$yok!!+5rzZk+}I4sL;L4(!ot$VYigRV*d%TKvUdL{No95 z2>vd0fB_g1j64Yp%o5m`SVPWXIZ)U+Am4eB$vv07dnK2CWO((qQKMHoAV1tKGpD!e zwv|_MRa>C%;hA=)9&4?7`Dz6-w*k}N+Z@mOs|v(^ZQr~|@63_UFW%2fTegCq`;+3Y z%kF2Sza~}QbK74v{pq5*Ge?sf<^dBW+vQ@V!;&e7EhoNQ?5T6$Dzj9gMfhfiEsVw+ zxy?WF$Qw*rCw;Kp<}~k{Lp_0xNLj;kQXPv(wM((M>4g=*e8=GF>gTe~DWM4ftI2-w literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_18.png new file mode 100755 index 0000000000000000000000000000000000000000..8cd2b8ab8eb8c4f786b36eb2fbe01955405ca1ae GIT binary patch literal 750 zcmV6i%SpaqMN^+S#X9&MD_nHo zI#v*Ml@7QFv!6u^(7S0isiY1$-2z=i(s%F1Ct5buDCNy-3)K z3%{)qVdDU8tVmgdpGJ$Ie)y}ONE!`VTM;sXK#UM+Z4pX~%W*xC)nX=xc=@vqF_W4^ zw$^9fM@r*ECT{sW{)z0^73Dybo&yxcE<2xmX5JzbFYwJUooC?;&|Hvdi4+L?Z2x|_#|bQ188P%6@D?MZPUkq0FFRQo zFy6@SHy9aoI)|~N3zn>+7#C#sMU0|4oi5msN?+78z*rj4McqJO)TAPkUh>djjE1ti z5yoKI-HRyPToQ*4Vz)hj2jfAJd>J>`KM>axI13 zoZu(N%-j@%ec{)BRxKp31UE-;d4M+uLrcyM%a-AVx%5nwJ{=OApROClE&bt zm0|e|8YeGizq!~f!Zyke#f{gg=J#DLoGl0c)p+3=aHVHl+Q#Y#8X*vY}l9 zU&kc;g_Tf|-EqItQ<`%&#HDA8gtQj!ND5+wi|X;YIM=@xKF9ED;UsJ6OHSfkO7Zh0 g{y7{Dhr{9c0eZNbp!yHz{{R3007*qoM6N<$g0I9|nE(I) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_24.png new file mode 100755 index 0000000000000000000000000000000000000000..dcfc2935077f04977bc1b9cd660da8f8be0ab312 GIT binary patch literal 1046 zcmV+x1nK*UP)O;f2?DCcZuI}G?~+ywJKjhC&%K*k1W<#6h_e5w zh*m}ZN0c3)CK;-te)w68z}5(|)K8%*87Rqa^=PIAnP{ONN$sH|mJ%#MROQl^OtmE! zQMH%^Rwg6Lh7rVYMA-z;8-pktPu`wl6#ub_bDU)p|1z2<$lEwX*%*}SlCA#qKZ0Ln ze#HOL$l*sS;PBLzEpQiPsBAA-#ZC zk|T(+&nQF#E+NX^#j7({6jS=Hc)f!tyHwcpQ$OyxOj%6jIFBg0KzZLaFC)qpQ-DE; zx`lY@$E;KET8O9{1bItX4R}AsR24yARZJfv>h_T!Pp=~A>x1cK1br`K>Vu%~Rq!j$ zAq0JmG0jBKHw#l^1bv4nj?X~EsuGyCBIw(SsRUxx0DM*=R;4kWN6>c;QyQ^qrTq`6 zw-lyxfu2ALv1$=M0}!i9V%mo2V;iQDwjZJ3U*blXW+D2Rjj2)4FR}d(VP8zIAo_R( zQ(yaQ`z6?isQVC8HAElPF?|%q9~le`G?bXCU$P4H6EZNW!Cd)_2Xke@8q7gM{cxK1 z@al>v>WtUB`r$MUD8!eDvLht%dI>3{7x7AR6jAnN^i#^75l$($@(>F3$Wl-0pTMtD z-jjNMq5^)8b5cF2uNVHZ$~f}&eC2||!&5@OX}#xayiTvv&qjAJii)g;n{rfpF07*qoM6N<$g2?yps{jB1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_36.png new file mode 100755 index 0000000000000000000000000000000000000000..ea451ee286544ff23639eb2ed78f3aefa3415394 GIT binary patch literal 1563 zcmV+$2ITpPP)BSIcv5bxEe zq;gm3%e}Zx0*yI`xTJG5CJ`6;iam(S+Jzric#y$}OB=$2q_WbSMO@q&N|S2h>5sTS z`V&toc#Jhj8fguW5oLZ(A&#_{@2Nv^{Jg{CB#^{oyv?^1qc-2O7jdLh_=%!YTu0Qc zr5?`{%=6S^1ETIarHGOi`X^rc^A_QFoBrs3D6KHgOFu+eKb|BKPdf6ky%^+UG@|M> zxzNbPX++gHd>GS zsQQKoBytc@^#S(oWIhr`^SKjyA0Vm@l1SLPBdTU%?{>B#VYZdqu{RS@)txZCqFx{M zW5>fZB!Z^m!H!=&L-i_Qh+#RR>IgB|X^%u$JM6@$cLOXVhLDv`>XAz=k0d_t@lpQ32kkmnxUBZX8oQSd>N;TUE^Z*oZg4l&IwIIk*j+7_Zt73hL zSi6d#?+Vru5l32tt%Zmq#bND?Lz|+k#UYNg(EOj+Jy_d>pl=h_?nWFbFSb1FHTq9_ z275wO$jQQV+LQWPILA9K29_6c?t7DVcEHYCh@v;K(;<3Ot`NgA^-I1O?6fm7X@3M!wVW8j@T$>epQ$cf_IV}R z3y0INcRO1gUO1c{?S(_Q)$r2uTnCq)-&3z=+(HDt;fA3l8i3d^<`;+H128l)-r#E@ zq#YSbqTl{94?lsG)Q`B4^07j>f$C0zNns>cY$nD=l0qXQYPgl&W4!OP``;&ue9=$$bc!|xM3Txezo-+uVKQg%9Hvn zanSd!JBsj(n~oxYhe6710dM1^HNEaNadsMwP zG8!L-_!z4`o?Q@)Lh40@@%S*vLq9~>;D`_P4vxm5UcHv+S0?&}eJs2m`eWg()7r%X z^?8!{a28#N)hU;A)B#^wKXkNxvQ^>PmA8adBrUO)7i9#aDC< z;{ja3&o0De?I8shNp#&cfeE98rC)X%Of31McwO== z3KB~i^t|y4w~y1EXGqiHDU^O?dvI}lLL(+|9{scNWE%4+aom)=yhSyJMDS1i(C_Wt zMFD_7001!B&_4);aCi8hY(@6pM&uQbG+R7U-Qtn5h!X$+000000F3v+Z3Q@&>cap4 N002ovPDHLkV1jS4;Qjyr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..cb0b73d6142d77cdf24cc019abf67feb4bdf1a6c GIT binary patch literal 2091 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 Vn8BzKg>GA&MZQqP$(1% zg+eZ#pcWAV>v;sB4v_#q{vQbe^g6=dt3tqhgdjmq_yh@h!dF=*BsqmUd4tMyWdze% zMlpFTVG;xBKs|oq4K8JSa_%R~gk5-yx{Rd|QLL1SROA{`|BZxu=tePOKk{hDtt7~i zD$0cO*^GGD8p?6()=tPrJZ=P!lfrj(lnIymkRZ(CZhRK8Pw==Q9OZXHBXvT7F9`*_ zMHC-JsjW=7+NT6zC~M2@-hn%^+vHf9_`0`1W_btrTLINb;5j(^8fL@Ccpu7Q75e6 z2(q*fa}gvb3Gj&e`>=#Vu*a^-|VLizQ5>6OXeC?&=`QJ%!TA6d^t)Y(x+WsLK90?Wq1uDC8s*c3>`o z_?oc!uQS+9IK6-u7@bMnMSGv^VIedCP=aZQLY>roQtSefv76MJhhc_BPMtc zQLdEJC_{{ChAKU)%L+O7f~kMND(tJ?T%RO0UX96R@(+sDPobZ7E>Cr+E^ThAy!La z+Jsmn+<+;CSZyQ@_aIi=1Jf)|pH%litadvNah4$#I}uY)#6!Xfh{fg-#l@?L#qPxP z8sZ`0PQ+qQ<0`=-M7^&t9g28JD37SOf+X&^*XsJu1dTl;Oh(ju3m5i(i%QrB(|&Bu zGT~4}y&1$Q!wD9zi$1^vHzHXjoWMr)$LX`k;3rQ%i?3My_813GzivOaW2QRcMVxLW zFJ}qM*dB#r$y2|e+XbfssY+p137a$g_*{e16NqwkaJMUu(V1y%LfFg1qp6_Bo zf3$yy%%ZgPoX`p@35Kh0YtA9Fn8$>Xq_DIH^VPozr>hd$XPvN+-Lc0ZEKw%p@c@~{ zEfVsL$3K`X9bs|h)P)0lN-%FQX0i_+9L{`oLLTpv%9zm2Dq#Y<;nD7lLe!hb3mjF( z<3GY2M4ix!9q>V#28h)bQilgQ5CDMfxs>;!;g`H7W?$1R}o)=Pi{H`9(h#D1)$1{V?mK0+M(h<{O< ztEtEYN)gqj@Ew;4qU=p{75}IFpxDBX!A*FcfU1KaJV9VZs8#mkheDxHDD*SDa>JsVQLM!P O0000oNkO~#u#Ia zF~%5Uj4{TTMxLNQCNj@U2qRsIERR^CaP>hROB9;tSp=~};cA0CmMApO;|OAjqTG)l zmMGd%OiV73CCV@-3$YOgaUl=$B5(5cio@ig?~69%a*X zWE!MObRrVtS~-(0Z97qpTalReG#gQsbfQttM7cp2%teCwIuo^~AdxVYo9K{a zqSn+W5~grIvyzY==}r`EEQeBOiQM~&Rg+3IRFUXzq=LJZIY~e_hLoKsU*SZf*`5S+ zZ9|EK>#0d1QEMAY^bYe;VM_*q^of4rAx>p;7NQ+B)H5FgScxszm&^FpQ=*ZqNCoY} zR0L5bn!??z#Z0($;Q&5B)SJdOR78#|kYJibvs1hQT+cLhq+^L)4G$nl8Hx1Tah*ER zb>xUq9nT<0Vu@fKMky2BPo9`G^CE&IoM=9tP$s%Fo<#M*Rl%ea!PbmYCd%Pio+l9` zHHmsNOqJ*+vUrr?HUvpkqE7sXD0Uehos9%b)3aziqS!J1Uh#sYGSO%9)6A)0vq7(B5OBwFsAI0;1eO6k!e~AJK#YlYAlx>HdSht9>3GD$7AM>_h=)Ws5pGe$!w$fq zhT({ZbtBwsh=)Ya5U!o4vyOQpZGm{%T!i}x@sQ|K!p(|!+2%xg6Y;VJ!c9liiLPKW z;pz}Cdy_~nB3@QaxY39@QHFB}SA%%j+eBI)@v>P6_mQXTMTxz{vYyW4v?JUTNQ{X( zARhKJc^vjZJZw?IU53P%Xi3Dw4#la7QHXlmdU**Cp(CZ(*2_t>1`0SFQSVg3)tC4^ z{l}6LorI`&I0ZE@3{mbeqCAGgmgt%IpFh4XmrW#3xHXWN5;ZV2=J%gKEk7d4Ek=|V zVoJ1@hnrFL6lq69xs!;}ABiQ=b%=6XQM3%NA*y{#hA1b*kf@5$h-&YXp#;6uujmzs zlI2nFi89=XsJ0{}Iy1IUGHBtGlqI@^k~OK{suv>Kj654dqN|az_64<+VL7I&0=dO7Tb5zt#Mm{7gLbv0Lqr<4OO6_%t#?Cawn4$OmrVA?UWy%4^xbp*`3FE zm+zU#NZ#ZQPN%gZiN2;0rB#$CNe`wxJt~lBBE9fnTjfd8>jF!QP#tSshep>>H0d4wSVhOM3Cq@vc&Fab)uo14x|%q{W+SqkYJib%TqxsFcR^yZ@G;9*n$-q$o$k( z$K3Q{c@E-k_YEj_qU6oTJ4ljCf1(<$w?u_(%ScP)HU~FbqC!^SD@){7$Dxe1L~gTj zE>kR#TL*4rswHxpn`8Ld61i2eAx~MNLb`A|Baj&PJ?FCwi!-LJCW0C^;V~w8PxA$* zu`n6u|GQ3qqCho^aR?7FP90_p_pm!%2?U8o>Jud|M}PL90tX zLY-KRZ8?;4xP_;9jSu;jR;K>C(frJpe8B5G!_6GaW(=kYhtwoWKYb!gG!IUe=&QDn z$P!s1OJs>G(GwU)qR*L|NS4U*I1_!u>_oCeA2AD&EYW+G$Cc}d1)O{a-jeK002ovPDHLkV1g*aGaCQ^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_black_48.png new file mode 100755 index 0000000000000000000000000000000000000000..a8d48e27eae58f53b6d2e88a0eb6661ddbba2978 GIT binary patch literal 2225 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 IM6N<$f@@E**#H0l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_24.png new file mode 100755 index 0000000000000000000000000000000000000000..4d380d70b51d20c2f2a1dbc4e542ba965e3102c4 GIT binary patch literal 1189 zcmV;W1X}xvP)i*2BR6KqGLC+w0nLA&uRY$FG`#O)sQs(xKw z_MjV_?^yfT$n<`lf5JWxPw)pTIL1ACMGSbr0cO+jlSr_bOZCg5%em&)mRG{Tu>@24 zNG;yBuhD<(gl@IE-HJKfQjQKLOkaBfp0#Mb1Dbx|1a3A;y%SChC-kU?9-C;cXF{{1 zf(f(MDS=!3zrI%?p3tX0-nV4^0@|HOFkx)wWKRsmkl3_DzE`xw!o`#}jk|2F#tx*h18R3DWn|;!$y;yE#In=q7cUgm@sG97dn&dXxDER}{yt9U|p$?*T5vN4j^ zMP2MawI@{B!Fa+yQg%l4oTx5a>KJCirHCio?@y^V{_IY1&sxhUgA9K;PZLhK(r;4j zbUGfyz2Im|`)~S+Uz^^RF7_S}NT@dp`#|1uPWZnY8$F@fhI(>O$d^&vkb6SjEacfn zPw23c+j36GpV95(4YhjSNr8mCXfv;Kb;;r#hnrec)xSHlP5R;JG^+#LZ$Qk$_As5c z^bI=%P66`gH>R_Ry&da(H+ay?y7hX~)9!VRlkH|L^H!f*+9l_N{MiSJgd(9xaPZGD zVat>nIbp+;qx=)rOpVFWV5QWkG&yqc;TH;pLZR>}cb=hp*=FVV00000NkvXXu0mjf DI_g^M literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_off_white_36.png new file mode 100755 index 0000000000000000000000000000000000000000..95906e90f32ad71cd899a1026cee6f5a3970c073 GIT binary patch literal 1724 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_visibility_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_visibility_white_18.png new file mode 100755 index 0000000000000000000000000000000000000000..e6c0c76f7ebe905e4bdbb94ae95c69376c59650f GIT binary patch literal 744 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 + + diff --git a/app/src/main/res/drawable/baseline_archive_24.xml b/app/src/main/res/drawable/baseline_archive_24.xml new file mode 100755 index 0000000000..d2c5d42dc3 --- /dev/null +++ b/app/src/main/res/drawable/baseline_archive_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_delete_24.xml b/app/src/main/res/drawable/baseline_delete_24.xml new file mode 100755 index 0000000000..e0d3bd6497 --- /dev/null +++ b/app/src/main/res/drawable/baseline_delete_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_edit_24.xml b/app/src/main/res/drawable/baseline_edit_24.xml new file mode 100755 index 0000000000..250655a75a --- /dev/null +++ b/app/src/main/res/drawable/baseline_edit_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_folder_24.xml b/app/src/main/res/drawable/baseline_folder_24.xml new file mode 100755 index 0000000000..d400a70d17 --- /dev/null +++ b/app/src/main/res/drawable/baseline_folder_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_forward_24.xml b/app/src/main/res/drawable/baseline_forward_24.xml new file mode 100755 index 0000000000..ce26499e7c --- /dev/null +++ b/app/src/main/res/drawable/baseline_forward_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_mail_24.xml b/app/src/main/res/drawable/baseline_mail_24.xml new file mode 100755 index 0000000000..ee249cce65 --- /dev/null +++ b/app/src/main/res/drawable/baseline_mail_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_mail_outline_24.xml b/app/src/main/res/drawable/baseline_mail_outline_24.xml new file mode 100755 index 0000000000..8e29f042f7 --- /dev/null +++ b/app/src/main/res/drawable/baseline_mail_outline_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_message_24.xml b/app/src/main/res/drawable/baseline_message_24.xml new file mode 100755 index 0000000000..280fa262c1 --- /dev/null +++ b/app/src/main/res/drawable/baseline_message_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_person_24.xml b/app/src/main/res/drawable/baseline_person_24.xml new file mode 100755 index 0000000000..eaacb65bb9 --- /dev/null +++ b/app/src/main/res/drawable/baseline_person_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_person_add_24.xml b/app/src/main/res/drawable/baseline_person_add_24.xml new file mode 100755 index 0000000000..cf4e563df2 --- /dev/null +++ b/app/src/main/res/drawable/baseline_person_add_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_reply_24.xml b/app/src/main/res/drawable/baseline_reply_24.xml new file mode 100755 index 0000000000..73e5f03408 --- /dev/null +++ b/app/src/main/res/drawable/baseline_reply_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_reply_all_24.xml b/app/src/main/res/drawable/baseline_reply_all_24.xml new file mode 100755 index 0000000000..0a2793bc0d --- /dev/null +++ b/app/src/main/res/drawable/baseline_reply_all_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_report_24.xml b/app/src/main/res/drawable/baseline_report_24.xml new file mode 100755 index 0000000000..d8544cb9b8 --- /dev/null +++ b/app/src/main/res/drawable/baseline_report_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_save_24.xml b/app/src/main/res/drawable/baseline_save_24.xml new file mode 100755 index 0000000000..ebb73527b9 --- /dev/null +++ b/app/src/main/res/drawable/baseline_save_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_save_alt_24.xml b/app/src/main/res/drawable/baseline_save_alt_24.xml new file mode 100755 index 0000000000..7a152d4985 --- /dev/null +++ b/app/src/main/res/drawable/baseline_save_alt_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_send_24.xml b/app/src/main/res/drawable/baseline_send_24.xml new file mode 100755 index 0000000000..882ac5955f --- /dev/null +++ b/app/src/main/res/drawable/baseline_send_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_star_24.xml b/app/src/main/res/drawable/baseline_star_24.xml new file mode 100755 index 0000000000..9e52622cac --- /dev/null +++ b/app/src/main/res/drawable/baseline_star_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_sync_24.xml b/app/src/main/res/drawable/baseline_sync_24.xml new file mode 100755 index 0000000000..4a718cd50a --- /dev/null +++ b/app/src/main/res/drawable/baseline_sync_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_unarchive_24.xml b/app/src/main/res/drawable/baseline_unarchive_24.xml new file mode 100755 index 0000000000..635073ff98 --- /dev/null +++ b/app/src/main/res/drawable/baseline_unarchive_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_visibility_24.xml b/app/src/main/res/drawable/baseline_visibility_24.xml new file mode 100755 index 0000000000..f8a0a5c8b4 --- /dev/null +++ b/app/src/main/res/drawable/baseline_visibility_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_visibility_off_24.xml b/app/src/main/res/drawable/baseline_visibility_off_24.xml new file mode 100755 index 0000000000..a902321e16 --- /dev/null +++ b/app/src/main/res/drawable/baseline_visibility_off_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000..d5fccc538c --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_compose.xml b/app/src/main/res/layout/activity_compose.xml new file mode 100644 index 0000000000..97bcce76f2 --- /dev/null +++ b/app/src/main/res/layout/activity_compose.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml new file mode 100644 index 0000000000..97bcce76f2 --- /dev/null +++ b/app/src/main/res/layout/activity_setup.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_view.xml b/app/src/main/res/layout/activity_view.xml new file mode 100644 index 0000000000..e2f62c649e --- /dev/null +++ b/app/src/main/res/layout/activity_view.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_account.xml b/app/src/main/res/layout/fragment_account.xml new file mode 100644 index 0000000000..d500f15fae --- /dev/null +++ b/app/src/main/res/layout/fragment_account.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +