From 81cd9b50cc87aa36b38682d8de13ae7da4b91d0f Mon Sep 17 00:00:00 2001 From: Mikolaj Kieres Date: Sun, 28 Apr 2024 15:24:58 +1000 Subject: [PATCH] 1.14.0 - Overall stats (#259) * first cut of the most played section * updating the most played games and totals * fixing incorrect logic to select history tab everytime * fixing an issue selected sort order not being highlighted * progress on getting setting up period for stats * adding dockerfile for cache worker * updating docker and readme file * getting docker to run * adding app settings to docker ignore * updating android's icon to support adaptive and themed icons * making the icon a tad smaller * fixing a problem with ties UI not updating when scores are no longer tied * adding basic overall stats * Fixing stats material and font awesome icon spacings * handling preset period change to show stats * Hooking up selecting custom dates --- backend/.dockerignore | 2 + .../BGC.UpdateBoardGameCacheWorker.csproj | 8 +- .../Properties/launchSettings.json | 11 +- .../BGC.UpdateBoardGameCacheWorker/README.md | 21 + .../BGC.UpdateBoardGameCacheWorker/dockerfile | 18 + board_games_companion/analysis_options.yaml | 2 - .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 48306 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml | 7 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2427 -> 0 bytes .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 2124 bytes .../mipmap-hdpi/ic_launcher_background.webp | Bin 0 -> 44 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 2536 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 3872 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1364 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 1374 bytes .../mipmap-mdpi/ic_launcher_background.webp | Bin 0 -> 44 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 1362 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 2392 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3779 -> 0 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 2948 bytes .../mipmap-xhdpi/ic_launcher_background.webp | Bin 0 -> 46 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 3794 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 5676 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7136 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 4718 bytes .../mipmap-xxhdpi/ic_launcher_background.webp | Bin 0 -> 52 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 6546 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 9348 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 12494 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 6508 bytes .../ic_launcher_background.webp | Bin 0 -> 52 bytes .../ic_launcher_foreground.webp | Bin 0 -> 10660 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 12572 bytes .../assets/icons/adaptive_icon_background.png | Bin 0 -> 150 bytes .../assets/icons/adaptive_icon_foreground.png | Bin 0 -> 336555 bytes .../lib/common/app_text.dart | 31 + .../lib/common/dimensions.dart | 6 + .../enums/plays_stats_preset_time_period.dart | 8 + .../lib/common/enums/plays_tab.dart | 2 + .../lib/common/helpers/date_time_helpers.dart | 3 + .../playthroughs/playthrough_details.dart | 4 + .../collections/collections_filter_panel.dart | 128 +- .../edit_playthrough_view_model.dart | 2 +- .../lib/pages/plays/most_played_game.dart | 16 + .../pages/plays/most_played_game.freezed.dart | 197 ++++ .../lib/pages/plays/plays_page.dart | 978 +++++++++++++--- .../plays/plays_stats_visual_states.dart | 25 + .../plays_stats_visual_states.freezed.dart | 1042 +++++++++++++++++ .../lib/pages/plays/plays_view_model.dart | 136 ++- .../lib/pages/plays/plays_view_model.g.dart | 68 +- .../lib/pages/plays/statistics_period.dart | 13 + .../lib/pages/plays/time_period.dart | 19 + .../lib/pages/plays/time_period.freezed.dart | 202 ++++ .../playthroughs_statistics_page.dart | 296 ++--- .../lib/stores/board_games_filters_store.dart | 5 +- .../slivers/bgc_sliver_section_wrapper.dart | 27 + .../common/stats/pie_chart_legend_box.dart | 22 + .../stats/vertical_statistics_item.dart | 97 ++ board_games_companion/pubspec.lock | 4 +- board_games_companion/pubspec.yaml | 13 +- .../edit_playthrough_view_model_test.dart | 59 +- 62 files changed, 2990 insertions(+), 488 deletions(-) create mode 100644 backend/cache/BGC.UpdateBoardGameCacheWorker/dockerfile create mode 100644 board_games_companion/android/app/src/main/ic_launcher-playstore.png create mode 100644 board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 board_games_companion/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 board_games_companion/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp delete mode 100644 board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp delete mode 100644 board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp delete mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp delete mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 board_games_companion/assets/icons/adaptive_icon_background.png create mode 100644 board_games_companion/assets/icons/adaptive_icon_foreground.png create mode 100644 board_games_companion/lib/common/enums/plays_stats_preset_time_period.dart create mode 100644 board_games_companion/lib/common/helpers/date_time_helpers.dart create mode 100644 board_games_companion/lib/pages/plays/most_played_game.dart create mode 100644 board_games_companion/lib/pages/plays/most_played_game.freezed.dart create mode 100644 board_games_companion/lib/pages/plays/plays_stats_visual_states.dart create mode 100644 board_games_companion/lib/pages/plays/plays_stats_visual_states.freezed.dart create mode 100644 board_games_companion/lib/pages/plays/statistics_period.dart create mode 100644 board_games_companion/lib/pages/plays/time_period.dart create mode 100644 board_games_companion/lib/pages/plays/time_period.freezed.dart create mode 100644 board_games_companion/lib/widgets/common/slivers/bgc_sliver_section_wrapper.dart create mode 100644 board_games_companion/lib/widgets/common/stats/pie_chart_legend_box.dart create mode 100644 board_games_companion/lib/widgets/common/stats/vertical_statistics_item.dart diff --git a/backend/.dockerignore b/backend/.dockerignore index 3729ff0c..c273a03e 100644 --- a/backend/.dockerignore +++ b/backend/.dockerignore @@ -21,5 +21,7 @@ **/obj **/secrets.dev.yaml **/values.dev.yaml +**/appsettings.json +**/appsettings.*.json LICENSE README.md \ No newline at end of file diff --git a/backend/cache/BGC.UpdateBoardGameCacheWorker/BGC.UpdateBoardGameCacheWorker.csproj b/backend/cache/BGC.UpdateBoardGameCacheWorker/BGC.UpdateBoardGameCacheWorker.csproj index 740364e2..41813c44 100644 --- a/backend/cache/BGC.UpdateBoardGameCacheWorker/BGC.UpdateBoardGameCacheWorker.csproj +++ b/backend/cache/BGC.UpdateBoardGameCacheWorker/BGC.UpdateBoardGameCacheWorker.csproj @@ -4,15 +4,17 @@ net7.0 enable enable - dotnet-BGC.UpdateBoardGameCacheWorker-6fbee60d-5a99-4c79-9457-147dcaa4e3ef - true - Exe + dotnet-BGC.UpdateBoardGameCacheWorker-6fbee60d-5a99-4c79-9457-147dcaa4e3ef + Linux + Linux + ..\.. + diff --git a/backend/cache/BGC.UpdateBoardGameCacheWorker/Properties/launchSettings.json b/backend/cache/BGC.UpdateBoardGameCacheWorker/Properties/launchSettings.json index bb376a6c..692a09c7 100644 --- a/backend/cache/BGC.UpdateBoardGameCacheWorker/Properties/launchSettings.json +++ b/backend/cache/BGC.UpdateBoardGameCacheWorker/Properties/launchSettings.json @@ -1,11 +1,14 @@ -{ +{ "profiles": { "BGC.UpdateBoardGameCacheWorker": { "commandName": "Project", - "dotnetRunMessages": true, "environmentVariables": { "DOTNET_ENVIRONMENT": "Development" - } + }, + "dotnetRunMessages": true + }, + "Docker": { + "commandName": "Docker" } } -} +} \ No newline at end of file diff --git a/backend/cache/BGC.UpdateBoardGameCacheWorker/README.md b/backend/cache/BGC.UpdateBoardGameCacheWorker/README.md index 02275ec9..f606e246 100644 --- a/backend/cache/BGC.UpdateBoardGameCacheWorker/README.md +++ b/backend/cache/BGC.UpdateBoardGameCacheWorker/README.md @@ -7,6 +7,27 @@ and causes the cost of running the service to increase significantly there was a # Deploying and running +## Docker + +### Build + +Open termin in the `D:\Dev\Projects\BoardGamesCompanion\backend` directory and run the below command. + +`docker build -t bgc-cache-worker -f cache\BGC.UpdateBoardGameCacheWorker\Dockerfile .` + +### Publish + +The image should be pushed to the public docker repository https://hub.docker.com/repository/docker/mkieres/bgccacheworker/general. Do the following to upload a new image. + +1. `docker login` +> NOTE: Use `CTRL + SHIFT + V` to paste in the password in the termin + +2. `docker tag bgc-cache-worker mkieres/bgccacheworker:1` +3. `docker push mkieres/bgccacheworker:1` +> NOTE: Increase the tagname with each manual push + +## Self-contained + This worker should be run on a machine that is always on. One of the approaches is to have it running on a ARM single-board computer (SBC) (e.g. Rasperry PI). For more details on the build and deployment process go to https://learn.microsoft.com/en-us/dotnet/iot/deployment#deploying-a-self-contained-app diff --git a/backend/cache/BGC.UpdateBoardGameCacheWorker/dockerfile b/backend/cache/BGC.UpdateBoardGameCacheWorker/dockerfile new file mode 100644 index 00000000..60df134e --- /dev/null +++ b/backend/cache/BGC.UpdateBoardGameCacheWorker/dockerfile @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build + +WORKDIR /source +COPY cache/BGC.UpdateBoardGameCacheWorker/*.csproj ./cache/BGC.UpdateBoardGameCacheWorker/ +COPY cache/BGC.CacheCore/*.csproj ./cache/BGC.CacheCore/ +COPY BGC.Core/*.csproj ./BGC.Core/ + +WORKDIR /source/cache/BGC.UpdateBoardGameCacheWorker +RUN dotnet restore + +# TODO Remove this, to avoid including all of the files (especially the app settings) +COPY . ./ +RUN dotnet publish cache/BGC.UpdateBoardGameCacheWorker/BGC.UpdateBoardGameCacheWorker.csproj --self-contained false -o /app + +FROM mcr.microsoft.com/dotnet/aspnet:7.0 as runtime +WORKDIR /app +COPY --from=build /app . +ENTRYPOINT ["dotnet", "BGC.UpdateBoardGameCacheWorker.dll"] \ No newline at end of file diff --git a/board_games_companion/analysis_options.yaml b/board_games_companion/analysis_options.yaml index 951f5e44..0b80e5e9 100644 --- a/board_games_companion/analysis_options.yaml +++ b/board_games_companion/analysis_options.yaml @@ -151,8 +151,6 @@ linter: - prefer_const_literals_to_create_immutables # - prefer_constructors_over_static_methods # far too many false positives - prefer_contains - # - prefer_double_quotes # opposite of prefer_single_quotes - - prefer_equal_for_default_values # - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#consider-using--for-short-functions-and-methods - prefer_final_fields - prefer_final_in_for_each diff --git a/board_games_companion/android/app/src/main/ic_launcher-playstore.png b/board_games_companion/android/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..38d0e316ce5e1b1da0d2dc3811b9272874681711 GIT binary patch literal 48306 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 literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 76bf0574..1a4bfc93 100644 --- a/board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,6 @@ - - - + + + + \ No newline at end of file diff --git a/board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..1a4bfc93 --- /dev/null +++ b/board_games_companion/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/board_games_companion/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/board_games_companion/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index e58f4a1eb15a1e10008a7aed5e4bf1e0888452c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2427 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 r@-xk;=MIAvW>tAL|EDi z((#eo|D4%)=^a)* zvnqC31oG`J41YSuGr^2SF1tMCqtb5P+8cnf;PPWd>&v^Jw<@vdC!YgSA6D$gDdeMT zYT>D$Tm;RO41?QMI{VSBlFwWPl+)#v8-PiBGuBc?iqWd=k+x={hhn_;Nn1VDLm}Qs z;sLJ+88{h$ZBEp(it$VOL;dGqMEos;_6Gq9S(2+K<4?o(A6lDzi(*xfw$6)oEA zSK75t2`(b|z-8LrtI4Td){TGllV3HniGR)T z+dgpjj(v?^vf4^-?o50xC}e;r4gfTqo!g%ue7eWJ2D(%9v;Mn3xqfonAjrNprE=Of z`ZlkOzYQy=PMumg)wa(G3;(tgL}5#8`JwBaJo2`(8-Ckj%l81_XjoS)GGzE^ubQ@) z6r7v+iLu)3wsY3N+cWU>uX-~wOyymMj0;M>hu(*O3AO?yPxK#G<##Y88@ zy5#0@=RLXa8DQ6VEb+3LeCS$|Q(5xwarZOEp3(abHf+oNTp|y6-6Wor(D;9Ua10e9 zn^rLMhBKYd4&8I??w-rd?FB_sxKwO+G| zr-LR9qoCDlvdflT?f3L;sP&wk*4B`MzUTe=YyGi2rG230 zToE>gm4B-D^}pJv>0VGU9rMVM6tY-sPSJd*>00pXug%vyQUXI{!?~pXTvoE~Em`)~ zoy*I%9ii#p`V)!mv+84A{k8PKfy>Mel&-sXInJkccWaI{b;pX5Wnaa%_3|}R{C#ZA zxh7+{E~9cOQH7VktBwupxzibwhHm#zsLb(7^|5}PS^2g-rv9Ly5;4|2U$*UBf5b1u zONd4%X@9*yimy+s+&B68c;NB)_C>|9Wq054piD_D;Nrw|b~y#0L9daz{QlRcj| zTaW-cHG-AcJuTVyEbMq4;6YD9_xuVeR-aM09!eSRZ3o0eTeuziWTDLIve|;1N+$I2 z$-CD>tH1fnamI@D@y2#Q!Nj@CslxRzDHfNVyPi4{QvMe}=aR`lk1)$!P9^lulw9zs z)n{hTmycvE7lO+WFQ1+^-a2w5dpV~T97w1-zJGD#7gEd?l(}BIn6X|?93DrupVO8b z7uf}*sO_oqt&3^%4P%byWB}YWhTf1e--&MDr%ZP)Ud&uBk>Y7#Y10i``K8$H$>aTx z0;{m+0F~gS&NtWBKU#n7we{5b7AYPEnKV7Hl}||89X~w((Wr62lF35YLlUP)q_}BJ z-0&i9eDUgK#&w~~uUcdJ?wJ0~t8NAZycf}aWz3-0#0@V=F=#?m|G`#fpCdqy@b23S zK~3-}jbsHjp^On>?GN7+A6SP)4j*42MW2(y+i$iq72tg#?Vm+9T#zyO(mwwxDy;iK zidNA>n!g*tzkiHp^yglu|G>i{1kiEeb;bnxb1KONH~=s?aPaRxDQd+IsKfo62pbtK zmXBP1RWy5oPZ@s{;6k4{Wc$~Vq^Km$`&48F{=_w`;@+e@Q z9-`A^3Y$3@Kn!q5Dfw&e9)9VP&X74E0332&QYsz~dfgoA(smb+54chzJ;mL@^@b>> z8hQ*tZ~=KjY*i_a!Qzb;`;Y)R01gbim>Q?E%u(8HJ*Ub! zf2$N{`IF6ELTm%<132@nLJ8>pd~O&0y?qohb20$-0~``_^@$U%)W`t=sgR#I{n|r- zU13>(9N$ye{Gym?oKFGv25>-t2fdsOII|2pkgb)q&R>)EcBTPwa5{rJa(WC!<|BMM6+kP&iD~2><{up+G1Q3ASw`IfCvk)AZl)*|%{-|0jSC zt|uye*?|C*t)XifnLULQ;D!XV)l0%|!|)duKtlNcUW@2|db5Utwr!+@KkfZ@03u=n z@QchW!VvTb8vwS*pK(MD>>~I>X3qPzZCh=tZQJ^ovYlMaH}knMGs6}$-v@zb!`l}# z+le*DhNf-hE@gUmHD@hbO1Uq^xk$RvSA+yw+s;P%|CEEe9j$HKwr$(CZQHhO+qS)1 zZl_MZT?{^l}zw22$GT}c$H61725d^IJa$^dhWTOZQDlA zxO39lC~eziQss|)WlGz&(>eD|fH>Fwf6bVO4E6J2T6?lov9-oYm}(UiL+^crPOdN8 z)?B^#Nb0nW(A)K7li$!HEy590DpAX9mi+6-Fn&CqZr9 zwV}GVP8`b3kW>ksD@xY(a=iYo3x^D;F#{r{C?HgNV@S0OAivF+tyF9+I7~IO66A*a zF!KFp+w85InkJ+m5jDs`)h>5%xdU{n9I20aJLG!BUX$VS`V+anVp=hos{lMGWXi%` zff;p-+@*eN^22+ih~@b(5KKypdo^zNG+GaHbS}N<@+u6C`hvdbwRzpFe9Aej1Xs4R zn4y2U8Kw`ENvB9iLZ!C^Z$N5+LFYB=!@(AYU*`>Dya@~eL^cSCfff|7`S+}sn3dg# z8519M#Q`07ei81AMyJ|!D^>M$+(Yiv3+Bl>FUvJe(f)FwTzs6jIoM1}zbr$O@pOXKsss6K zYdC9PFQl1e9@UE7%)u3%hew*O=MeJ$dY@Y7VEt5xlgy0Cl^{X|o1`2y03NmQYp+qO zoLczNqXIv%j)z(ssmbB`p-{-TEL|)r!Y!J4J0B!N9d%2zZ7-}+&!sINh z@4fMcJZjNL&$ME{vT3k4H}1?BT<*?9TmZjj^Ysl>#>RRs7+lW6>b4;i?UCl|EqHz# z<3;%gw69@-ZbD46;a+nKU_usF*M&qd#KWUC^6_E*i~2TL_NByIhIUbUD=6d}kM>An zqJOrFb&-ywR9RSG$&nZ+-PgbMkYt{WpLMsku3e%=hv*V5{{LVqx{S98^U%R?h&*@j#eP9*r)sp9xN_#YV+dK+oekeFn>8 z{gkJ2X{@5(zFzm>G-=XZRY==Wt)n{nCSsQbCs4e^1Z7WalA_VMlbs6i1^)Buv5Q$q zD&qTZJ|>9=wRbjCE9po#;~sA$woc?RQeb#4eMzaH&sYE+(4MEyN#U*W(^hKeY7qRo zZYiB3f;=fu(h4zFTfIM_Hf#E`?hXik4Q(R4vQu zmR2UbsEvWhvLI@}ig^Z|tynql&x$7M#M7rG>g$z++p2_CZg50`Ao=f&tSNIoJ?aX$ z+fhz&6BH~9PJsd5{>C#WMBHsG$18aii0)#c{@r1YLqirZBj|PU=(vI(;XkYGZ4>z6 zPoEU{QU1`=EI^4YY$5}UV?Mn?#XNx;qh0LOrVNn)gLdf}2s#&EC|`n??5|Rl**QR9 zS#V-W!*+@N7T9mQ2*z*%!&WzSjcRyawnzbn%6^*#NxLO#Ex;TmAuhOh(=oB6BC$!MpS&oF`0Q3j?1N4VPvOmCe#)t&Spc|EA-L$tk zmT(x)NRXOC&l#R`E(uV<_pFx;f70LD%CoZiAq$aMzH3$~!5EPMH-|6rW)ZbaWqCKU ztVH{1h*_kDeHKJ3tUdy#*ifszc;Tv|99cp;C5YwG=!{H(wwCxnHx&i>?6#^=vMjh{ z9B^;|dJgml`UCv|=s7S4=bN4b{h@~g&>x_;Kc7D=0DQ-`=>yL~q&?uAj^!IVl4Ee; z5(}G-WYf)$=?~SLdg^~i!W(@w@)(}7GPU0k9nOo*83$5X72Cgh{VWhNAase}N6M_s(xc((V zPIm+V(R=cpoDU0Ii~$D-Zso2p%I0?97`%u%iNT3MA1jmOGBa>}@}10ESdbe{K!e=t zlY2=#VL8oO@Dl&Ln1Wj%0t&q;c2H@SI5`vEE4W36K zQ#G-aU)h8E?sKvp4zrWTBLWB9F*Eh^ zlyOmJW@hHa%p@~&#_Z09%1ntYNs<(~iXSmEOUn#1TisJ#*^(ZeLHBt_hu}z(BB#vE z%*@PeADWJDc5bk1{1iVOf+WeNt$5$IZQHhO+qP|P!M1H{3yk2o<=CpKRLZt(+qUigz4Lv^`{g%G+g4WX?yNdTE4#66&+K|Nwkyxr zo?6Xe+qP$_cC{PZwigTo04y56YpyAqV@`qq00a}wwr$(C?d2ZO*|u%lwr$(CZL|Ll z+(>eisUyQ;GH;-;1b}n!|DUE4oue+KgC9-15IMR`wiRL{x~7!&q}1SC;~&O(%=3-U zR(vkAvYUPL_HD9_iI!Q9m{tQ2a#k_sce~eAsxgBe6<8 ztI2u>5%pwIsvbv##R+0aEY>uG;w_3`Fa)GDW+@b>k64q)^+ctzl!%GOT&V+5PMu8wlAblup4?J{>e-fzs*|;rNWW7ELQ%kC^j*qk2B4Qk~w3s z$iEHEwl!R7{>f1GIgOX7q0)(I$2J1SZF}js2Z ze#Ry?GA7pYq60PM=Y$Flk-9L$CBVGnqGdfaJ{h$)wcQX_9SWR?YssKV#f?Y&;Z0LZ zqnOfM9yw5QVltvdnYc_U&om=k#(epJH^NouDddA(I2I~qprE0vd+3i#Y3q_4L z+wOj&{+1<6`v2Bdak^^-Ho_$pOrja<%%V$`IWEc2bYoQTZ{Iau!kg#6*UTgs|8! zcVAvpk*7=!R2zsk{X6Hx)-&DkUs&McvT^=g%$)i#oq<-G3*Q zIx%@YDi-Sh(Z0ko%Qjpp$zgZ{V-<^2g+i0bcAZZ*J+q#iSZWj6D~ujg8x z0cW+py?#-Iw0?cd<81f(zcDVL54@y$si!Gd`O^GzUuV{LQDA)K6 zy>)iOJKVkgr+`ssm|e4PosFpR8J4)7q>?0pi6T0+)>KnFhYSFYmoOzC(`bxJ5>%WF z9AA_i3+msIsEXoJ3nkhC$gtrs@9t~WJsBmbeaGhe)piAO%Wn~H;l%pZUI0MTC;-5b zxBTM4BG>Y)-!e;mOFO?>!B;neCviz2h-d3TKYhIE$BGWuAH?arLPYRCZZ@*oB z&p-|PB(`y_tyMH$$=O8auGh-pRKqtbz88G|eaSUHem`xg`DD<r#9aj(YIMQ5?BR63 zGjhA0;`TqBf3ApFZ}PcGEfB`VdB>`Uk!2m5{KmItG&x06gdPc2-pjti=ALV^<3>I=YZ)vUvOLN;*1ewM_j`1|Hky)*ykI2R zBga( zJ)h|Vk6Whjgk|?6e^~R(Gn!{&+_`B0AP|OwC!^*q!#exbF?rBvps>y>s$f+x6a29O zmkxM60GHbbl!~-htxBeD3K=#Y=Gy;{b!P?=+_7kPG0vUB81uQ@1~A)yel?Kjj}T05 z@}Sv3dHgDa5#AI7S;6`4yJ&a8se_)*Onsi?x9^mT_7{AYw|DY{ImF!m^}8^0Tcp&c zIP+k*z46_5zj_QmnJmEJ4)@{Luit%#_#PDlmd$(q<4T26M}?0gVT^dIfMw2$^p~%^ zGSXcMHV=aLhvTkPDAHZVPW@#@Q|6iY$}2<7ogDzcr3d1sVDm84-oY?Y?$Q+Gu-v)J zJ#I>oXaseSZ%}+l){!@IVqB*|m|p!S@;qA;jQjMuh~0dR;2 zKbjT*GfTQ(0g09e?9Y@6*q$q|gV-eH$rL|O$vg3UZ>_TOHjK*+K6O=axKOgtaX z^|$phBZo+-eAaiwdCcEUNKT;i^XEJEFf)?U38da*`KIXbT0XgtKj+W)+1}1ZK!4{Y zKy_AVIJbu=13*`qms}N})k3B9T)q(JI{h8tOXIocUgA7}90!>D{8N!(-=W6bcZB=$ z!*l(N8pGT{vG*A8M~lb-pc(qKCCMXP$tUua!F~GaHvb~bc?21g!m~()V-I^9Kxf~h zent!zkqJ!Q47puV06^o2s0DyC=*+CV@T~I)B+j8nXt~0MLO6|}H2`qEbw_fZfD}}x z>`ZKJTUi0XC88(*V5x2^8S({3+8qWsakd>!%N9-)!nVUwX&eB|Xws&`PeS|(qlmbB zD9&?5Cr;poz5xe-e&o%jGP=8y+A7-~Yu8~2vu?;b7I&i%@|I#s(*PjKR41RT^n-_; z4op3axLnqnF_>jA+qYI@{X*Syd|5L0$LKKvX~^7VhCByG(x2@ zn8K=|ag}9PmT*7)*=Gmwr1^RsN7$`es;prMwWj$!^*axN>gsb80M98+-vcKW2KR0} z1f;K+$5`BBS#mbKgtvj7gaED=X6lz-vZ#25xWY&SFTEtISZwZE2`e$gOR|b7&gGIq za{nLHBu0h}O&iH2RKq$0`PXwl04y!)Oc?Dl0ub_2wywAZHXD+bB8!rTwa|oS0YJNG zmfjFmXlZ2DEP>MDVzzY5!ux+R>d$3jYn#e00O5t3oLT_b^P_wJjTP^_#Ungr5*ISP zUQ$SDNdy4Y+v-KR^08C&dU_hdJ=^N_`q50`*=!{M;*eznxsU7cd%E3ImPP1({pT9D}sP>orV7(LpIB>=#P6or|3^k|N>ji7m0_`iR3 z^|`R+Qxd1_-ceWUW;~lWqx_y!FWiN%4Rjv76%27@moK^6Vt{H*S^CQ_8N$C9jBsg) zml@g8aqvncO>_yY{WkJq#rocs48+-FdZ9EcRPhpkS7Iu_shhm4L#t_Nc=ay34Bcu< zGP~@;QMNJkG`MPLzyQ_~(Jp1~pg4MLe8FRlS?c6g1R&#WYRmgCV%5T!{%HH*22%zfWrBuctWxh!tN?V*&PY*hSjK&IBB-jKiRj`QaL;2oy_9J61Cb%8xaN-yyxBPXQR%?c>zf0Zr45hra|8LV=kg7)LkEM>}_l0+{LQ*F}Lfw zu+it^JOCtNuTQ_W`dne11+&ODVbwN^n5!zQ&o$WVGx%jWeJ64qOmPAb1)x?QKGyq5 zy=*K*NVTzV?U!=@z6pT(z!Q!rjKT9V3mgv%15g-ozT{Y0e$EA*0WJZ;|CGalac@nHNUrXyE-vWe!tY1-e$s!vG0nozrGzT0H3wOUZ^mNj?(7!9MuD+JNws~rFwC{j)Yz<42?j0jHu0)P?#wLw685YS(4 z#L2Y7@as9}Jr7-O5YXFU@-<&fhm#S(3pbib(Q_gIh82Gt$%p`)j0jyYecfMvS$Fyc iJFM{Iisw$GE~A_H#~c{#GD2^Y>8XY1{4p`~DFpy`Td0u$ literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 725b3c1b858a1e9a2ab5124284247e8242d81a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1364 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 literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.webp b/board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..40314b4f31d261ba64eebb104df97c2ca69b460d GIT binary patch literal 44 zcmWIYbaPW-U|#M6}9{)Yqx00_28JKMHx+qP}nwr$(C zZQHhO>v!a~kt2ZDP z5+g1{V+I6u0gD*jl0ZyVIY8RCXd+AeZb>BmM81y+vKVO9M%>=1OWcP}RWQ&b_{E&~ z3BNP(9sc}$I+Jf%cKYYj+1@M@%R&S|4q|*fQ4)Tn7F33WAm%&B&^^2gUYA066Zlr4 zL5YwK7Q@Hj@z$-^@)`-dLv^33N*StzZL;F^YZ(&>Rsuyj9|^LcI=DL-+)A-=4^D>V zZ2-vqlvqfOlR<+|1ri29Lcj3DzpTUOMT|@LZymvD5W*oqLBQg-`=@mTmWT-qF4o}> zyMmy=Q_tJJmOtko)bJ1G=l+gw`!zCPA@23J-X-!^eTym>d`S@C?RqreHC30B=93~oa=iHH)YSU*Q&aze0C$KFy7d+@1A1J4bi2IE zF<{`}>`qBH5wCHD^Fa_>g|~LQHym>daitUA<-;Jr>2-Rz4gd$=X&xCFdExS)=cx0h zks3~$W3(R@BhMa@xE6rMNDcz*cDv0M0{~lpF5-k%@UYQ#aa!jh-2XH;?C(UTycoRLZa*T#_JDvr_b@{y#NN+t-XB$mQk->Eqen%i9RuA3kWFtr;=$Xa-4w= z{9JTTt^ol>&w@u9M@(cnuINw@D=4n7=_nc(87oW$+sprffRc03DGd!xN9rakC^Jw% zC+!-}Ai%ImM$XZcp6CSfCk zPmK7iQ38O@^!W`4(6tQBG#Fw5Zak4n3!tN^j;{g%8o4H~DJReg2SKi>V$lXy7;H38 z7eCTh@N^})fhPSZzotsvG8E*p1Te@kO}2)@4S<2GA~GO*B**EZ90GvG5ew2KckR+y zPJoCz8rO1FV)^prEtMVsikPidt5bq$wU&PYfWkTN4Z!bmU(YUR6j^SOK7| z@V|Tah(W)5rwQ}{KxK}4em<6i6b3p#GNJL@z556NHr~Da+ljk(6?OpFb60v#@W1+= z0jhK74)uYljpxqod2#OCVzwU8UwQ7FM*SN|(veoGjL-XzTAfbk#AK(_Sw#A%f3tIF z3#e+V7>s&l%!|qR2Co@r8-(=~oJHi3Nd_KUiQ)bR;`THKi00>i>&bDAJ)keot~Yv9 UjeoKn!@?j4L!6qr)5o$l032q4-T(jq literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/board_games_companion/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..4b13efda7d18ff0c46f7a4fc2a2a89f4c4bc6e44 GIT binary patch literal 2392 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 Kd}P)O3<3aPV|_-Rg=h>5w06RJG>96v~qS1)2aV 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 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..90db99db5b568a709a0db63b96f098ddbe92885b GIT binary patch literal 2948 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 literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp b/board_games_companion/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..505fed5ebfd3f1681a1b31b94c8fd2d82e8c7fac GIT binary patch literal 46 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 AsQ>@~ diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..e200b09857ad3f7f5439a50ad03f5e0018ae0fae GIT binary patch literal 4718 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 literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp b/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..cd1c0c9b85be29b617723d907b881c652ab002a8 GIT binary patch literal 52 zcmWIYbaT^TU|pe6T$!h literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..cce6a4e5d7466f4611a19af613c3ec4e53bfe02f GIT binary patch literal 6546 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 E0Dr?QN&o-= literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/board_games_companion/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..65249534d036c45236133ee03b9ba3bfcb14089a GIT binary patch literal 9348 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 literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b6d32dac73103581108198ef8aa5334361d4eba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12494 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�LAw;gW1U#woqq zsDXG=-8)fx;KJ~B7X z3?cw>$KqIh>-k%(Uc#zeC(>9IHWSE@*vUy|jz28&IB^Ax-=;FCMJL3m< zv#+8ytvh|lpmcDM8@D?6Rd$R?H+FQk{3rvB{M)`~3hh;J2O;T#;L<@y?h05D_5N`~ zye9kEnVOhAcq;sMS{#~cJSwnN0=)l^_wWDrrT?415dK&)odF*Ee}4)<(&7qYbs~mA F{{yER*<1hs diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4038b4e8e63a8f44ce7f9fc708cce6f1a840b513 GIT binary patch literal 6508 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 SL3g=c%B-y4fjRm91seb>om1%m literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp b/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..724341ce66ccb58118d5edfcad37082593427b5a GIT binary patch literal 52 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

L;(PvZ}nf&-(mYNBZ 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 K|F8Xj{S{wgE90jC literal 0 HcmV?d00001 diff --git a/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/board_games_companion/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..67820027722b1a46acd69e131e064a515ccd1699 GIT binary patch literal 12572 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 literal 0 HcmV?d00001 diff --git a/board_games_companion/assets/icons/adaptive_icon_background.png b/board_games_companion/assets/icons/adaptive_icon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..6d21400195f19ea710fa1c4f8aaf1dbc27658582 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^IUvl!3?yqky#4_x#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6p=fS?83{1OPsXCbj?o literal 0 HcmV?d00001 diff --git a/board_games_companion/assets/icons/adaptive_icon_foreground.png b/board_games_companion/assets/icons/adaptive_icon_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..04fc2c918dae18cb8f329d73ef393d7da2914ce9 GIT binary patch literal 336555 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�Ah7g+D1YIBmL!9)wZj?Fb8*^+Y%hY+h~JF|A_2 z^9TX@fKbZ1fVqH~W6>$FIq7#wz?+~yH=hNxrVHi8Ph;stm=jT-wN3qPC!1fv%NE|e zw82zCgT@h|4whqz?aWO@{oEsgGl@v{Ikg1r38m^o-QCb`2$F6Q|Eul+8vo+GQjwHK z5KM%}2J}f<8h+$bFeL4iv(FANPUXIo&NrxKd!snzNJ%;p?uT3d0@NPeUrL0|n$q=# zp0j)5HMFi4QQaLuWUjU#AC1Ax!-L4hkENj46>@to1REle|1%6u~an_Ve(J)6$By+ zQvxVo%KX(+BPBVdjo#r(Z>iSm=yL(?zb4jm_J7F!J4N?%krcrF_fI~?hw&~;28We| z8Z})HIQ9J`-Y~JdqVgG30Pq}ZbvVK22{$!%szyI5^3T~}SGVyM#v6ieUDYeh8es|CuEt_ABNdQj74aJ-GifmlPJ@E`@+Bc`D zRelSez}GR-Tf}8HLVdD<{Tbd)B>OK430+?eJM zhXGtz-@hRVDKEVuMU6XJju$ykXyd|%U}j5QsCIgMNBR3zV6cf6SQp0HJ5$Q)NHIU1 z;-*^MEYJ&YkFm_FmVqJXMbodU>GssSc6>cV^XXK~XPFpT|~ng~awyguW?UHi{$E5^m3`d4x66VLUz8TlV7d{FiDFXbSXILNw+ zc}Tb?Zdx#7{@JwuGyIUtP2f?AEzbr!IsbQHGc4}PX#i*Pqt{(w{#-4XLw4Zeu*5yL z7I8nJSq~h(7vyfTpsQx&hbFJcs~qK@r9nDk)am6Pw{N?C1#_L^W4{<9i}EK37_LV~ zH)H}%*a*a9@oTnmku3zR)M#Ystrt=!1_D8Hj;Q`b5<|&`)cg7uf~H@;rD=?_`@sbM zSUe|wc4fn|=_zeH9ka*NX5zPo=K{S5=gNYXYkL>8;dGNKx7A5syeXa%P)fn7gTB8# zxHMvwy*vf2$Be`m(fb>wIgY%MZWlH_33;f`21@v?2_Kr z$1ePC8=iG1mo1^zr%lVoVO_?Kp__^9+Iz_Arq$+B!V|k6R?b01e~1@k3y^iy&z}GA z{a*i6FgHj2wf}^ePu6*rL4EvZnV~8;!IF0+Ns;23wKAnddVk->hV^`FTYYW{>z|nG_)AuAcgUm+FkN(u`U9aD;7r+|d2(oc~ zv1R^oo8zfo`m|a^Q?H>MN8atF^XnZcmKa0+Q|Hia*|}_foK@Uz&#`sy^*a3gVKl(9 zYyo8EAHyHkqMfi`y?3ei5t459(N`IHZ~j1SWI;RQSLl>hFtJnUo-=K{XiYagDMkN; zoAPajF>)hGW*`efeE7?xRdxdaaLH`y`Z9xM*xFy2-Lfsg%B)+K^q;{`ORJ;BWV*x6s?O>c za@lXLi*XBaEq?q0dmxm#=>2dd^k_S%d^b6$BS`6-qB_XJMYPwUyvO;jo4i7F;ZNQ`N%ulqzA&uZr1=w#0gk> zBzy@pq~^_auf|*=w;V9y{UGcD!@%4HeE=Ty-M!%~vDyA-GT3ixfH}p~ga?VCZWiu3 z4x%o*kQnSrWU^h^KM)_JMsCD0yR<5&>YxIJ;tyhY^9m^i0BD8IA+WgPl)EA$-QP7xeg@k}&PpLqZ zV2J7mptfc3VWREUw?{V>g)yv5=I*V)PF>mzv@9j+0oFc!L`HVr3+$o4w)%eMn5RQ7 zwcgLqvY_$x#4iENRQ2Cb!Yo7MT~g2PN@TL`R-KP@cg*tzTD!4yq8apuG9Abe)TpFT zHCXpPgnNU*@?Y8){jie{7*EA!{MvQOdhnd(34vpHfZ)SOM(l;ri?c2_xIGWa%64zm>?jO8CEUl&yr=T=UNV+1-5p|Pcw&&=PrC20zZ?GGRC45!y@CS;e(ca3*Nvd4JYC*ga44Ees_r$VF#N>BY%{{6#g z8q01`CR{yOF&VOf&QqYGcc=7*r~z%D-$gC$rtEe!s{i{*=oK&6XY<}1FNqZto$hm( ze+IZ2-RKnR_i4u(Ys5|bVg7V8&xq5Uc=Rgo1fg|`fbN>)c|AWpWrh+JB)u1b*3Cti zwwi-f9ecH^uis1oVLD%OXC0z`t%@84o8x3FF39y7o#7@be}wV7Y>AhW%j)+fTr7RB z_LpR>Zz~hl>8byA{B0iSBDt7VsGQ2#)YAT3!ZL5$NC1%o5BWKoa+!~|$JvX8sl&$w?y zynRO%dR@>#m~47(gFDC)@6SDjCcceuR5Pj@Uamkw`DNiBy$w!4pO`=+LNNwgKWa-z z<)iB-;w`90)DwBzzaQg8Sq{-H3E7GZuZo?j;>)&*yAS7W9?IhtdpbEPfg4{7y#Wka z{VwkqE48W>YE_w=ivgjt`xxJnq32i6d^_5a0Ymg^Adz^wg{RR`CCuMXL-4zZxn^zS z629Iq&h;$NFCEC+`hIV$5K5yb2g%GemsO{WKzTAbT|36H!{;f4u~a8xZ110alueo1 zJ&NK?w2z7BTbcYa+^F{!L%dVT?M{>}buof%4GkZV?PB8=?R6nOCsCit;~hHrec&?`Gv#bx54&Io;Utt_S&>d>pu32De5 zshU+BGasisjWJi$U&g&w1HW9f+tS-UW+tQps}$(Qq>I645xqPp*$edjb+T(K7phOQ zil5y&bqhrtEumVDDV5}D@BCUyea)pUlg5C__0B@C?xX|wcfYlBM@yZ$sXLtlA8CM) z@M(W69inN|kox8Wiwi?;`FZ_I3>Ti=+GvpWkh`NhZmJds_&~m#)YO;J^x~E2t5|pb z8IAH=5f3hY*7*FAQS2$>Kf*sZ9L{uGPbrU)>Aq#v+2l;$EZ?(2k{l(=HcqWa0%Puq za6t^##4><49196*hO$OjcvB~2bQ9!bVFODRf1qMR#Kvrk1bCu(l*2}mZ;7QL%xA%8 zh*PLB!b=VmuwQDsHBK^)Dw^EFDIk~4Ql_(c2{ltRTxSQ5&DPTemMIV`ET;D)`qs%U zS$h=mKy7Ph>`d+MmhON^(1Cea26FTDiRcK4H#pE;@sEtrbm4?G;GFO~MzXevMyqu9h@l zvOW_1frr`U#4uh|-6tS4l+ zBgoLrE7j)YI@QqIq4P&IT53nCOICcl^K5EHsJiMz@gjadl~2^otl?!kMYlhw5DuJ{ z@g1I&^omXtmG!ZvFn=od?b(EclFC~bPA?*uOO#waBY0{=Ba=RYPIfHvR@W;U%?Was zV69)-w{KS$JgXCQ!v~?f;%4`+^rAv;IwRF|y)uncLilAm3BhI0*UVS15N?QIMxE?b5p(-!+ikrwE=p!L3Kcd$A?y|bw?5O?cwPP*8UY|WdD?R|$ z+lv1WQD6SZg#X81dDnWU=#m_xQYmK=VUBkxl%k8diCFGq*^If14p+&QIZ7&-ImYIk zE9TsC%r(rpm5pJTVcXZ|`~BhjFT9@5*YkKhpU=l5(XjZRJa@{!x0U4|sF|{+?I84@ z=kuXao$RY2{iE?KrZK>VVfh1@GAh?e&;P*pR+OJ09jf{SZYt>G2Y;N)Cf*+)j1A3t zS@br#x*AXMPK@{s0u78$QD-dwYUnKKT5A z1!eow61&ksXg9nlBj!dAeUkJiaLR$^uE#-_c~BQDO}eSdxV=6vbr3U4gk#jme+Y6{ zZ?>=hh^{jjSy`%d!b1Iw=NE(EvIy^PTSMf!C=k6laWTB@+Dx$uU7IrufS?jw&W~u! zrMC;8cHj?Bs~B2>Ce({SI^ML$<^S&o71*{o(8K1qho{Lu8a)p-+Rvw(HjUE{RnWP| z8cbfin-0Rq{!v;C{>+4o_!mOZHelR$Qg$x)ZexoT2>iP7>b70zFIz`sZX(|D4Cnju zPQ!ktf;fuzI^)QOxQ@>3$~NlPdJx*Bh=|MGKXHoRk+*Jz%MaCxH43NDTW^d_P|tsK zO`eqf8>)!ePV{p=;tGgO35h+`cpiRw>P({gW5P4U!NVcX{G^5p*6L?N zhLURdkaa`L>U6Eb3L>PG3O{cUi>Q$L$w}b*I1qw^x{fY+U`FunK9H5H$ zac5oJ+kaxbsA=;1%MApO@_VPh%ggEe{X5^3W^Y)1`(xmWyga9^Ng{sBv8*d$ zF*u#mFw|YUvAC$*GwwFm;4qBVnpIIVY)=g&&e(70M0wN%rm@)K)6Hjg#NuK#g}Dp6 zG>I#yw%XsmOmb&HIP4(w)=hCmQyeZ6zj+>YRj_Usa4 zuAK<;eekN&kQT;OzPDk9R%Fc2$to`mOa~LRVrydK+0qyfPSa625_HFD_k9l#7&>oS zPkiB@DKRvq7e=tps2+_pVsE^6vEniSp0yJXL01K?^m+#+`|Cr3T>Xmn(XN5BOXc4_ z#a?xOhQ1{GwY(o00@2=>W~b`%i)HrOa`)eSM&!Q0Yq`v4MTS(khSygQfhEmK zN6M~VkBdNl7|&rrLaqrcN?`<0up{)e;)XpTB0#vgxf5$#o%Tlgm+WBBd?vz4v*sR? zA^qY)5V$yu8aUKtc(d-9J;mO)YN;!gU+uJxtlNp}&Jn@5-WUcWNWW*3&Dy)FC^$z@ z`D23Da4;z7#uP2Vhj#U4>@|y!@L$~kvf*acEa!RxIZyLt_&s$_Eep(<^6?wNe@ZT{ zE=C-bC2B8q>zZxT5@W>spI3ia_NxJClJ%aksz-Loa10#{_u<&;^MoCa(IV2hoGsiw zVsQ79X8TThRIC>4LA7ez59}0ae5`=1+#0VQ#$vYDzHP&iM;kf~7zLF-;lQw4yOBU@ zvs8E0iS}UilEb$2MlQuG?>gb2^N(?*jVj}jX?M^xV6aSKSiVMeH(>3YbfBzX3S~_= z%mhAqmlH0ieR;w@K>|>bAgX9?qxiICVAY8-?7MFWi&(ql(EU@J{?)F6FmFk43qvvA z!wfH&oN4I;u1>p0gpSu}t>+z?P7V@|mn~B@1+E_a30!x$BzUE=?@{3Y!oMd|H~z$x zM!$m~#~rp5_;*N4KnVt^TyxLwuyAP7w(2xmL4@SrA0n%S*ACAN zS?EX9xVS&PTA{E=J9a+@!_pMN2Z6h=ic$FPg_|FjlrHq26q;)Hz@>}cnKJ-VTmmU zUkE`1hh6y3B45>s3#MOBoj*h+Cx?u>P`gxrH@Y9(&LnV_4&}y%`#JRXzOB<2A#f}K zo`eq@X7j-0Usg*Pxb7VkEqb9_acmM_k~RNL$GtI5%W!f!b8LimQ!S@-pzgzn-&_07BKF@vq#x zpFJHvdW|ke+x0zpTBAeXTz&!##kVxpneL!nLYHn@*Za}PGYwzCI`62wrOIIX6%+l> zD_rsEJ&B6fD_YwI#-@VybZqSXx=mm zo~^s|i(nDas#~3tt2`DNX`_=hgWw)hmvqo|+iqs}EvWM0d*E7;OQfQ@`a_XM$cU70 zRG?9Km1b)Rt~aD(dl8q8{XDer&P!YpajGBqbkbldyn7(CqZ-%N`KmQPvg9!uei~Sdo#du$5a}BH#QWR zQt0&g0*x{JNe0EMv()jmMh|f{)K6BXKdo5bn`2`v&S+0{sF|i zs7ToSW0PNu^CuMxMy$__d$c2Gwaw`AQ@e`c+85RwN@L|B)3$#Sut-QXeZ`B-+&u89JI#2O)b@O{~wO@Sa8(w!!B$?Mz{{)if5}8=2=AScD zbT7?U_sh`NbVd6Kf^O;lo^ruj<`e%E7Vj3ysBHZp<^8?Nie%es`0onV>yP?5du+XO z6^JWxn%z=EvP1S8cYegKuV=?E{|U$Z{9k4Uc=#Bll**dFUu4!V9&~j~(@)h`G+@GN zt|~W74mreVZe3XJtk3p?uVu}Bt$3cQ05ZG$12=Z9P3GEJ<%Ab0bP|#ibEQ~Z8937; z!#xP4cEH0)yi4rZ0P8GTVW5mO=qlQb&}+)(^t`re0;~356-0Wh*Q7y=mElE=c3e#^ z>9O{($_rA$WV$YFLx$dg;mRq7p@}P5XFX2mWWz>UzjqVI+yb8@X1{-!;ZORe+TlZG ze2R9C94AMb2R60u1&9N8Yhb`|K+D_jazWiR{hQ#L(%-Y}Im2R(3QcNhwNkUke^6(- zEv+h2*R{s?$OU#woLq4O>1lQ-a~7_r_e4r&P_yE5`t@BJe&S3 zBDr0#YFh78);m8Z^aq-68Oe1g#rhJsqj(m!1$yJRehcw1Dm)x_OH%#)`&?QRBpK14 z1y$Vb>CSBk3T3(4qT;T*E#-?F|wA032Z)B z=ez>`<(mXF_%LkCAqb3|!b`VtFTZ`Z^NyOX;t=9^GqQ9qGsLdX09Qizlf?Q@L&9|F zCqaU~_)3$)b)&uvbg8}{MzMfZPBi)kZ1Saqi1s@tbMuMZ=7`b#Rf_bdOpR^X)#q=_k2fa&v>~TU zg?Xn1Q(vV8H{hP%%dNNwEO!eXH}E6EX5Wjmw)gjly3xBBdd+?QsCAHy{eI*@s)5>` zWyMuAwn~s3k~O6y-FSQZzH!77#QcLurJiu1qSXBw({AW3yl4R!J_MXzzhNfmQ5L&o z1Tvdd$&09F#a8khUVi92UL4?aH&ZM2MrVz0aB3~3@XX?s59R>RJi-`alV~j50FNh! zI5$}w0&9lc`YDVWNq%TZx_VZVSYIz64U7gspWVm(r;)U8!|wVsXM4z6mSa_o@2AC_ z3Hz=vaZcg^S?H(4spFSy^BE~Qy;A_X_8nF9w{IL-=bK$MHaao^313uIvZYDv(NKN z|0%ZiS*IZG)V$Txi7ZrI0X0;OS!`49lt)V0tgY+z=Mq8=DjJnXa6^RV1wGAK!aW(- z)h$8;X8sdYF@8Ew6INbI#W3rU&XEI0{k(T3jH}Lz;a4NO$w&XqjE z<1qeolsi#!ZTQIaDJ9sah7+@LrSx03O}<6yu4mdd;*Br<5c6Hye|PjYh^}i#7d&}l zK9pv&ZS$lj7=+=JkSCWcCtN10v^4_~rbiT@CKKXHl2`^6pzkETJYR@u6!n>IzK3j2=wiS7!Q@uzkt%HqH2?jXi+ zMa_U*IH@LSWH>EIr-5$O9`?ZK<#zbbA2`mRU5+mODpgR(VH9KtuETXI<+$X{hK`4> zC8>g#TDn5Y@6E`{$g6XvP6)%3yerMz-=(rGo$^clGb2%KRr169ntf|>&O)_A1DUD@ zPMHdNECc#Czl}GIYwv``MjB%MbY)MX)#Jqb^IKjY4B-l&M*mnT)%uwyPTVfk+GkB6 zN$ydmh>Io4!wva8T=U!P?fAXvQpxu8?rixadGMulw!X|92RSIaeE5CugRd{TlCGVc zRr#~B&U2owZdz$!<$0Ghe4aCFRI(J*94R*s6`e16J;@_I)v-qDVm6xC%c<(f>5=0> zPa<}zo@DsE+MGD#gEi`Y{6qVOxuj*a-h=HIJx2B~jOv8vVtfx%B`|}-5A{t;B%U;E zC**{`sv9>Ag2}q^awPEo1<4!*;G8u~UKV?!8+Q>0zj0ho=2dHsgH3OOAJy~Y*Itf> zOV&`~1XDZcZQFyQis9hrLmWQOs$fUL__R3Yu<1sqK1l?VB43x64 z*5m)$QE#hknf8)(jh}lq@_FSus;sWgtdcg|a`~et|G*QZdsfD5trKvR3ky!cCj7j_h!)NK6p53;T& zxp(JW8JB7me2u&*^2AljTWoFKUpd8;33FYQx_DIP>-lGL%Bu&5`!HYEXTxva}{M{kg#x(n3Nf$c9z@UN| z=PS6U);xP=O=Vfh*v@?=YhFJxnv8xfF>;iV^U%IF9(rCxwO_&!_yW0JRyNHr0#{eG z<6hCwyghTW4g0OwhHj8uW+Y)BN}||i@d;Gxe{&+xZ~PG%fEwz>bQDhQe%j^RB6cPf zh3SOxdMDAh78_YIm#~a{`~2Gen783-H=JzNQtcNnbAVg$xE;8$VCHDr`m4s(YL;|9&ayan^k=wo)8}L$89-6wELqXYo(2E z9@n1b*jlb ztk|_`-5Qbs^@T~D`un15;!KWfgZnn;miAZ}1|Fx+8XG$q61)zQuW$CcWd%Y`b(pSZj5z zMn{to|8{x!n2#~4M9#i4j;%FFRWJ_o$yP1FZ?DG=dxi zXc0nV9Q*1amwVk9g{54CV-Kk5#E}>612>eB-~XjvwmA2YzHn9u-w;ZV(WLX%GGZwX z5?5g*)dRK4NqkPnL~FLEWTbwt!aA?duo1K^V!WAm&fgb~Ywgs`&ac zXRSOvWW1F}5U$)mT_3VW>=O%vm>W!K;$qGEA>P!ZFZ-YNuB^)1|5oigVFab?6B8tu zdSOeBNu!uTrdj@oU)C}65ZvX6q2y(&YhI8Xf$3~&Y^69S`h~pMX2kR@rQ`{QmvrO( z0hkH)5huEEEMprzT=JIjTh)yBM>Afp&-k9!4lzv&5kh~n)k zvQq(ZDa8-Q_nBU!`Xu8r8nInhGhTM>`-LF=!W700oA*f<&Y8dLu2+`78RprT>%!|S z1{5NRzY&)@^5k2@WI_Jh)O@ca5}>d)34l>}(JWMwOj8?rMbkyfqWBvtowKEU(5$?S z@0!lB#S8nqa5aj=(1re!zt@h_sD@Clc0{&@aXC^c<7h;$+n}t0^Q&-Dv=cQ!Hhg1^ z>t^0F+zmzcW&~r%`3}K*&4Zo@mExKE{mj?v?x~b$T|)3rDm{K}8DM#X?5^Q8%F+YR z5Wg#XZY?h26DW( zS!;LQz1+E@R_d8r1T3XpVRO9|Lh`AYEx#N2vbON8_x_LGNeh}RN6G-t3hqdu2eHaF z&++>|W3jv1Gz5<3_Aa=v+}0~`Ew`i9e;|ba%O=QnMh&5Mx){OKjebItRqRn_po-~t z(5C~G^(51~P1g4^D@wdhJz9`!-s*xpsiWdzIhl{COv{WL>s%+zf7ZPEt zz2#|zR|{%f0U->#)I74BugsVDr_1N{uH~9_4cyUle3PwQg+3@4V@|7y;jqk7%C` z+%husL2KG6H>68L*2{NSWx5{LcvQgUj@b9kVXruakGtn~+*^|6U#JZ8EF#BPqc>hv<1O)UAhZLvaRn?&v6U2#lM zo$4x!^G^=+6qe&iQ84m-e7QD7gY&(bSdI!lYVIhOW($pROM08e)&DZoEs^i=mje4} zzop|cd;PjBI?y^RS%q3SO}AstW98S0)o=CitA5)E zmJ*&*UT`lf^&VO{-ojrwvp65)D`u22eI}7wQUi@;pZFDy3afP{C-+D}I9`lm=GNP@ z*^@>_X0vzgB2r-nIj>&$_$A%_yQV=M^LRlk2>s81b*(&LGyETbm;8aNtIZLzlh*?- zByPW!*ENG8X$nUWQQ|;g!xb0ZETnDq+*}aD-2(t{Z=Mh!wEGj88278s*-d=FwC; zlOVTV69=+Gt05dsOXppNl2D`mYrc11t&P^wU&xlggAhd0hNDp!s+>-)?W#NMLTc=8 zV`y}bK8L-ll)kaeZ4i~sf=}zg7KvT;?x3mEYqDR%Ln4{~VA}u8$I1nK$Vi1_&Pf_uhEMoorv->`K6TJ^$b%}3&=M9s3e6xB;H-JL3g{MFsY zPqGf6V@Igr)(^8Jpn1R0<))7J^0n<3Dt<=9WkP>O*JbI_{CL8+|5W`FF`cw5LHN(!V zv+3MK(5>}nC(}GnQLS1&oT?cLUtqVg>>X>!M8b1n-YP$;F|5N-)umcA-@Fh6i4Qam`iB=oBM|sY7o*_pt5> zzQ#}Si~jVtp{8>BtI~tb>(v(JUfSCUqX3pwRP$6HFB)FK8n-RFS9ayr+HU9Vc@1=g>b9WPj zF|&&Cy;PrerS37e;f&UVpWF(@HAO{Rxg9C3^%=K#7CCuUc*T$>V(&*8BxNlaxD2hSUn|>}&hQfxEm<3*0zni2#Q)T{M7uhdA@($^O(Rh-WBf-` z4{9=huzvGpk8)dAT!_c0Hd+0bSS#+ZB@DsFVrgQMVrsOH@gtM7*Y?+a_5Xk(yv1W4M@E9yqP%+h zr@Nb}ySxxP;M4fk^3?9;F)~n(dR}Z$C)3_-m!)I81kzULUHm%lLc4`HK01gf0xsG- zavEfoFab`oY)_J`CtSPy*UDfu&Mp1FoCvd1!GV-i<^Pb^170O7R7jO--dx6EF|dJ@jM#6RIB9UAs@W<3`!K%k zwioi(gZmQ~@2FvYupX>y8L#giVB{b=(OH*Xx^Q?5p$tP1|dxI0CIsd zap7h-09&1&>v4YJ^@AmawTc_wH4Q5=CU2;vqsfDNKV`tT3MSnb4{oU(WgK)jyBvDE z>Wc7Ju~cuFJHo1bGoyC}Yvc&msBZ-wLqPfd!WzjwwTA}rU0(w!P3yP4Ad z#g_hItRHM+2PezDvrQXmmSXyw9~eYAS!Y?S)mJSR%XNFb?Izmm>lTm9 zt{I8*A`kN##dzv6>uiBRGzS zb~Q^G{bC#%V@s`a;sa(^zxCH^{j6(#6SXHXZlVcaXlbs7ZM#?)6CZ`^wUB9b;?IqxMLms$) zqXA{q+@OKf-JGNB&!p+T{I0i}DwX~|g5dtF;l~hW!r0Ye_4y*UL?473>$+147N%+& z#Y9TrN@4q*f1VgzLj+PIS?Ma9r3;mLme0atZ`kPB%r*{0xExeQotiQ~)pUF><$zbs zY!7#J7j1&vTHAa=v#eiwoL-|l-OC9O#9$jp*MV1x4z~a%)G(}y<)qi{`Mp^&(w^0) zZiEL=pLNzPz>7r0j?><{e-*=qPH2tQh;VNQ=)TvKDH#&^V00lv;=Zlwn6c~wTP=l5 zO&yc)`+{3m=C0GyyK3^mL(fUeE1lYJOgDszt=&?)G;Y$)SLTYi{f!9p!r1zk8BEEH zzIr&sc3H+1mLOP4k(X+**-gq;rilbGq!!%{W@{LOw)>fIofeGb1^yZ zzrOnGjvrN2?k|<(=g?L(Z0ax{?%2cY8#w?4sTnm1vBnX?qq&c|npL3#@E;*kn~(qG z{k2kQ(ny!6WNltEuK5c2^#xGnxT=$39z!>w@Uv>$_D)Md>%01cpkG#BgCGG;%{4vT zlCaC|AY*FrekpbpDr6wn-}qV@tXfG9p|{ zLDvUU-4>Bgv?#8$8xXgUcK!=}6eN{UI(OCI;v_ zVsveCm?OOJ;zv6M5_SomV}ixfm8qV7x94zrx&L%VqF3y#+TV)c)cHPd7Px>c4V%l@ z)V63Tu!@xT@$1>32Gnm0%zt%xPl7&rb;9?admqyaHq7zO%nSJ%8@WdcSzf3u6Gz>Q^F@{Jhs|^zpDZR5WD%zH-Cj zL!*9IV}TtTr9S49?6hc_Z4M=ukqX%9R#a4JXurBG6O{i^WBL0?G4MC=k>wZq=@;w& ze4eXtk8oBPmon(D@3P{vSPDj3*DP3^>`Hb-VWYYWvY`hS(8v$~)VS`#g?NhxJ&_yZ8lF;D(00+OkI`8vH%$wOc` zmiqz=Ega_NGv)MSVQ{er^13th?o29VvqZ#MM_oL4U-i8_uSVQUmL>vV4zH&tojgGN8QV_tYrLVV0l-_rt?eE_ffHNVw2RJ5c7!m7{7)}<({$wKd& zPJNFnUTj5q((R}vfm|r3XjS%@FHSzV6;|ch`(gdh zJv)p=F{hsY)q$)@dzeA&TTZl$stYn&H!Rx~g;|>sj(6%}ww;JB-~*148NdJ4*^rFn zUSb;EVVt-FDXH@B&4T1~Dbw{raggvPFI|x;4u5^&Orq)X_L)R6xmfUD80E=!=e^z(`d6v3kDv?1F)CPz)|cgQ|D z$ng=~-?HWPYILB7n|odIq&5=*{ye<+W4ZRJ&@kgS=QAjFST@jS{&D{>y0})B`$7kn z(aNJ#R4UHmye_0Wwre?%cSlPlR|fSu>u(iz~k&w^b*IBSV>U4~_!Rr;I zr`y4P5J>iIIrIB0$tw!2q~#aV4GMZ5%Lud2 zMj}4)8tfaO&l0y6$Eb>F+)iQk%9Y&_`kWD&5ITbFw+88Z89Q=FE<=cJ zu#-Uk_utU{1)$Q63 zG8XNcJ;5xr)yv)eo@_jC+Xr;C^wMN%_a7;Wv|J-uv9V$9u3;pBoK~5E2x^RVk_!uc z`TtGk-?v$6;(UAiO&-}o(^ai}?d+5E2 zANQMTj~-xq;zux|W^lhzrKI=MB%k?@!5f1xreonGcbz-? zbwovHD8+RCAW?VG&3U zP)7mmH`>f2$1N9x<&JbjtAbS{eJY{+3A4)E?1es`cN0TZOBH>l5J~0-)<^7o3w_+m z%P(+0C&Pde@+b_oWGlmC_OjgtctiEDu&0p`PrYYj9vT}Z-*ssuF5xCT8?*HS%P|s z#vP@`J9)4sk((nCfiZt2k4%SsUQ(C#DyNIO^EA17w1e9j@hp-J>XPCZ)6;S^jBB( zxNXvw_sG;Q1Wt*eDJf(C$wX zjHNV!d}Qam089)1)C#P@a0$2gcR5W{tY@>_052LC)t$MT@(;*G&ITz&1&o*UBSt09pBMPFK}6x~XI@o@>u z_`)_>!p#(6cl^?+qq>>78R4&H*2IRk9Cd0J_8JvAM+VwqdUCt6cZI^;$#CT&PMOLDivZ#!oHeHQvf6V-z9i zI*Y2F5`9zL>$7`bTYzDVM&wj2Kcq>?zYr?uCc!MKSDv*;>LGU`-l{Vj4dxnUT2zx{ zdlq2>FSmmY+QYk$^;8_OiM_gs1b-@V_SSdN(vJ8jZ&O7SRS;V$)GHRQ{ZO1^*zZX^sCx;5zE^dun}G+B0G{6HT1Mqa zabpI8Z2l)ABf$>5{-mxCYCXk-z1Zr`I2B=SNGi)!pTZ|1^uL1bxnO+?_iEE2V)Br# zncIho*(qzIik)(>J*7@uM|@f8F4?Afqx-}l%4EJS;RR;BDfp8{0p0O4of+H{*zZNq zBJ0?dUo!E<)I@PQjS7Y(mW~yFvNa4xc_m3h(`A}U76bkAlIJIQUZX#Dcd-NPftH9i z{oK9uHrSiRtIT~6(QtctCZKU*j+Z?J#M6pM1{;o zB?6U55t=aRVQKjHh_VXW{3GT%OXmw`seQ2-HT`x}UcP0oG+=9o{{BQ-kGeccs_sd2o%cF0#oO-#uAYA%KA-W%)bvOu zm{(U3?du*1a>-hzB{q7SHO#)9RDh^56`t@Y0PEfJW?4yEy`Quzd`WJ3hqqf9TyG@} z$7ip3EU&TNu8w-1Qn7sG_7u8KpNMLMLHZih^j$~Y5m}pSl!1>n+UVEppM`QIZhXtU zaCM-(A9*tJia781j2ECK?HbOWc5Tk`$aK2+5;>BaUziRT!F(!LXj@G7mv0cVBNAtt za_wcZ6eC>@DmI10sBzvDCy^tqrh;+j)uGBSC|~dsGZ|Oz`WFb`6PBfIrLgq)GUrtc zF+3TL?+wp(X-uJcMz$XHqtgF5NxdrnwZVQouUwOP{+ry_oM|+tcnw!FTehS*RtMRQ zwXSI*+5Tr|K3v8R@%~%1AaP~D1zVWUwA4*)OdWK}m)qqFZKxVAub`T2PXIDdX?#{09qW;Xe3L5mOt6ptxmUgyr zxIbI|H}d(xMvWOR%5Zyoe2t+!7IGoe_&T`8};*xL$kq-*B>xplfnxzQ5Kp7_E&+Avnz z=sM3Vhpe#0#^bt@Z|FW3yfU^q)zj_hUEX>_kD(hj!nj4rdz3uujqYy1yv^}XW4{%h zq7~u4324-brm_&3CX1k#SU5oqTPrEG^M?^Svx`5oAnXe@+S5E zPN}r)oFMIk9h6u=@Tyyl15@9CpQ8!g@sMy=vISVjcoer^71Jyuc}4C=rnE;26!ABaqB(4eyrOlJngP4>h?V zKQ0Ku+0lhb`dyZQOfCW32L`CXw#w#m! zs3q)5=_=g4U<{_fMLhtjymQv-+GSs7YKo5JMmvfw{CPq0np<+Ac>5H;*QlMOx=!d@ z;M5{h4+N&6sjxp1BCe{gXq%>lahjAz>ION=E$Z49v)@J_y0v{Sl z+0awqdNfzK%+G2+F|x?Uo|jm9lOeA+Q?c?~-Fs5E*2A#?w|DS$4$uWpo)7RS`C|5G*JTxV(noEUjw?5X&XswX-kj& zzLvCbWfuk4W9x|>z`LzD-;hNG?q9@{CH z9w&_|x%$eU-pQdGUdNyr-BJFdRic@#(Nf#-G{bBBy#n(lt8RAF|FTh{ zpRw~wt|SUM^M0FlWvf>tIl^o3FW-2W^cq!_l=b-`2q$R{?8C&m4UWM8b1=cDRvZ}M zIcWn9;=e#7YjqC=?@VHEW^x|LVn>d9<9~^S^pweI^@xcii|ld=kswnZ4oxcoGrE)8*`Y$z2EP;ulxF4_h0aNJU;LD>-{=C4-fK# zHqPU=G=e`a9;DG*jC4Zfh};@Dr6XF3m|x)a1D|t&Q^)a=qy}&Rd4}u=s6{GriXX~Q zc)~3<-yx2}IR>+k&k)LsC8~aX$0%~*T)BaFO$liGG)P{cpg00U-tCG;&Nucg{s^%j zpw68Vz`dw+kl3VmL`n*nVB0o-^YyjkS9Wb1lri|R@GF#CJNb$v&kfMuBjt4!tRTUo zd1RaLhE`p5gE2yBkNh{m%?_9b7~-?gcNiv_>RdIv|RD77JZk z%nrX8e0m?QLnj|7|11c~>&2rZdWby*^8sM(pk~2mfv6DM+euImav_s@{_&KAcvrOW z@#o%9`exab=`-BXZq9a7p}vt!B$-dV1Z^r3h2sl+iOrr@WFk(_Wi}nR~W+fJ}1&n|ltlcbpU#z|Tv+c3MS|lSij2Eo7xjn8Id`kwc z6ui^mwim}z7a*GDTYn-6x5HT)`6hP#+~zIfKDdYwx_)q>ZMS{@g2R>r4UkxbM9us1!_xNQ@)4)VgU%A&k7cg%xF-MgH zlkJ-P1KCg!1P-wGMp_l5dn1GJL5dE5CHJ_4DanJn*b5v1y%*?8-rGQ6~{F0R$X6tPjXBjH+)$r~x-^Hw2mDC5ocU5-m z)7@y#nY>f;@encYz@?BAAAQWbi`!rm-@oZ5O)jeqMqq;K6_PHWBzR2^v@Hgbh>qF5 zK7Fh&cZaj1?xKy(S`0JRJD?#-A_I&gCMWCWwrJ<5wc@|SAS)8Y@IYrXZtkScQ-ftIr$=U`#x6H z^G-Qs<3f7UXa6f(;eLC9anq=hyNyRN=Z@p!eAvi3LaIE;lR7)-G{9`2GW)!pedXDV zpGG0!sB|5a<7{%pI$>YIiyF%StpY_81AE&-UnKhob z_*R3>=log3vH!U6NsaoTOj0XL6Yy$2OWt6cnU@4t_+Buxy54_JpSDLVeFL|(y2x1}fRQ0%kEQ6xkzci!p(;}k zWseW%cCW~8W*bD_Nef%gCS<)_+!j?PRRSWebp^7vT7NxT;Qi4EzVTwgE;8ACoGZH> zqNGT9I3@c_#Imvl`{w6Z+)SOL*V6~Xu!mIc7Qy|6ummG41BIY$r5fk&ZuJNe8iaj~~af_q+Xjo|Tp%-Hax7?NsdM_Sk zCQ#)~sB9PvlL@uKE+G;P2&<8#Ux;or^bNHa8S_Bx5t3DUw^f)p)7+ganr*OoYpSbe z@f|-CJgTgBw8eLHHmO9Fddk?kpMt^~b!}T535BA|j6%j~UiEl#pPi1{qS=c!U+Hy) z0$JYRd|MdSPRFzIDBb?qVFtg)?54S|=DOHeRt_i=1}+0g=OqQiNBm>7K%3mjpB2U5 zue8^0z{S|mLQFVjpSJaGJx%DzKNsnLqrAa*pmVvWWD#Z2WqKEHwq6p@3_{@D=i(vC zsiH+RO`i1~!rjFDoTOlcV+`^e$pO%J1dFYbqZ@9c^2mlk@5klTUJf@1H1}=iMOZbg z5l#EPP%Wyp2-{iPAHssKECggu<~L2F?J=gI1i@bQoVfT6X!2OcxFFB(BP>wC<$M z)@nh-qsI03R!0abe$9(f>e}it16JnH6wNOduKptFu2+)&U*StP=Qg74KQLkH-CPdy(cKdyiKf~z!or#S_{$k5z3vls(S7x za&g-awkTXX93cK8uQp5oSWZeB`nG11zDEiqwu+lH){^bq$~|kxo>jQM9}c@UaC)Cx z5|gDIUBkK0MF&=D6F-{#c-%Xp;918uh9kd@2h@5hyTPt3ysTgTfX581sb_%0lx2T52@P`%6oZ0-<34L9w$|)rT$Pvbb7RF;DyQige>g;#m@>mO1 zA6El6l1!iKZ!lTDCCsh>{6e&t?E$oyaC;VNg{uU2HZ0`rS!i$LD}QD@C+sNUw=23t z!_D&AGi2TJMwkU&bu97bZ~15yI(w842e0b_dOoODTW5tXx($(Scd}om4CvPv>71Ws ziId_Tu5r+Q*UY{T1f;|>|9scoNnC*B&D4ThM>S5J`Ay6Gbvys#U` zpI3r1%eJ_|+xs&n4>kjj&$LEs)!8JgUki*cL|MONH#3z;PpWh?zYkf7A}8ypzf&Ai zOgJ_sI;O1&wh7JCSqk7EeY)-%PY>Ca8_KHAi5g@{|4{6`5_j-2hp5I7k0E@%942C> z7x7IMJWL_lqtiVQ#?MgJSCg+X28iK5jLXYqFEugBRSkkG8#i#WU!AXvw&gH{dt~qr z^)t^+0li!-8fHFmjwZEC>vRXEzt1t=l*IEfUdH{7 zdRU=;vFI?gQM%PQ8yqXdG%uSdz;T6fVV>=6>VumtOkVWZ67|tVp<>F!@d@(7n>I}8 zu8Td7aBG7P3(^)<(xd{S$AFA!i$V{T%B#s2Gv>op>WQ~8)nc10?x|DjJZo7%wpx}R zJC6(*P1l3F8$9wButf82V`;iyEB#PCiQ+2K+_@d^bdYJA}2ef&0KP?rc z={_}0aM7-}?e(h)Q%3mnf#d2vPh?)_5?v#bwU@ai{yAPBU$63(68UHo2QoTEg$5=t zyd@Ucn>TWm3pzpq@+nUjXCS|Gd*R**jmtd0Xw!>Z58LikCrp>zNnu1pGtjEZ7c6Wi zSB^*3eo)V$S=&Ab@867y?(M#(X4&2M=th3l{>k?R>!pKkP48c}l~y?2+rfms_gEp? z8MMU;Mf+V%O(mMDYdb=tgCLx<+Kh1lrCu;yw!{4AuBcivfe|+ywzUQ?2-}tj`8yt% z0b0gwhT-|weF`9<$4d2kHz#zCLh`eD9SgX#S&zn^*V#L1erZ(d)&|lw*M4cP zIq$m+(f+jdi`wgzUuwc!X0h>C?m^iKgtohh>!oOw6x*7w3)Q0e>zV>rL+VA*PbOKH z&IZMj&(~IDuxQ*xbN%y2yY^m6O2QYvUbwM|yChU6I-=0JhqH%C;IHrV&~dBwnK-|Z zdmaA0+KB3`Z1lBb;f>ePXdZ%7)}}W-iVewZD7IUT4*8n_7~9+8XBLi6ESwSyyv6V_~oASHwDPUsAXi(GG zdqXV4i-Tr8*z3kF8jQW&T`%lw;)RfFu?kEG+s8$}mh*uAncjf--ZoC$y}A@Y?6GDX zfUcaSS!jQ^LLtWbv>oMNg$jAidU;iK%V0s1i6Q**iJiXs_CrApsy_v~55Nz$z}Zh2 zX8gbxhg9%83pB&gC%+B7mkaB>iWuQ{&$#@LdzM&6VZ#}lp3A&6GQwbk#x^7so_?R( z@QhhgOrt*GaphB#dR~^t@z0PU&GmpvufInsoxE8m$q;53VPSyTgJm_SI;|(t84BN zr~u>3)nzXTe5H*i%CpaviuH52>DYDkfriUVvC$Fy5Pq5NZEE9Ud0_+I`%Uj?HDXd5 z`QxcuW<|A`>$Y%!ZMwywl*MJ%y}Nd65L4CFj>h~bRH-eTH{(DCrwI8?doaZAYE$VG zaWAoyG?0Qk@7nf{&fXVA3952jcrPEyEt1LpmT4&KR{hP+2g$FlF|*wZGQrUs7HNbT zqEw&E4!jMlP#*-|7&KEBKhuTcJU+KKuIHcnn7zyTR!_(t>u`SKX@=+a6Z>Iw&e>pv ziAL*a`^5$1J^$fSl|H4`qfgn=hTi#8r;QUDuZ{Dr1qPuUW9Kxs6->%5XGy}`?=4in zPjwG^G-YM;=AgyqLtq;COxkd!))Pm0)g6_+Q~u##KQv?K$%nR?xM85j(g9>Xwb8njBVS1mW_`RFWLqpge;8S`(3rEbcoaqy#2AU-09+L z^K=OA*yU3DD&!6hwb&Iys3~|ereO-gL*O5 zE;VsyikP-kk$kPLMMd$ZgFVPpEH)ye>=87@5|g7EsHWF13M*c91_5xzUK*R#(O`pe$+B{P}3%(L+O)%EA>V9Y^gg8Si`#5{Tr>dif zt396iP6%*`IF#D1I*I&}PelS8U10xG&Jl>p*m*j(_fXS$F{pl8WrNX|MOBM9;?b2Z zVMeBT0ej3Yr>p%%d&qgkVX1$5sVcZZ{Fj}c$Di-y?WR96SK^l}C8=>zVg~~3EfhXT zt9Is0zO?>qLE#_wes(r-3&BwFk}=z4OrLzyEA{0T@wDbQlqD7`=UW* zt@~unVfR4P_sy@ib)V63Q%!b4{;i7x-dXi9_w*9nZ;6k*!4s^;LMwsZM&_%JAp2qp z8-RbVhkfLJW^b9mE#rzFS!jS2ur50jRC6Lno{Z4qCj`eekcTQ z9W2|C*1}}+lIWpVmx5j&=*P(FOzSY-vn1Wm#IPHWIG4PyUW!r@B$f;%5nc}ub{J9y zY4V5eq_xoX{aIJ2y~cq{C%-2=$LeT?&r5f{dIP}Jy{mVpth8T&*8CKud1a`wzdXP% z@N&mPq3ks4(;(x(0E{S(@WM?BOvPJ&q$p8Au8K;L3o@;rXG3iak4{e>WAt@RwReA9&oIB zaiBQd;8)bp>GM*@zKuh`f5yVKTWFu$&;v zeqe;D7%_i|3g}5c<}p`CQR$nZ|0In`Yicf%K2*^x3~A?DhAc! zRs2~0amHanO&f6rpf~JipS=B~^dL=z5vCbfYu_APIm#Luj|RG)#BexSH_3%XfxwdmI~=08Mj?$xG|=^CVh7V0nOJw@^z~6yp9G`z$Socg z=kvu3jh_2He}Cb{tcu61_5i6Wa`5_b>!$iK(y3Bn>!32m8dHWRl(LpjwGiWY8X|j> zXK#k*`4Y^Z8R`2D9<+<7LX-WjWV;bT6>wJff`d@BFx!fHe7)ai&x!nTq4zoQsRvqJ zP2ninuNfO`R<41U0=Lmaz_y+f>DwrIckR0ice5#C3t8xW7^@h7$>5E8xmPBndgyS0 z-8NuvwIjam@na*{_G=n|qmY;mG8Y{JsMB32C2fwA-Dsby0p5w9pVSK;0`Hsp=THtd3t6 zI=Hrj;etXRFdretgnh{h$2crV@@P91HeH2y!D{tfFCSPpH2DtYN7n#%41K<6a|=`V zL*Kt|6{fSdb$pX4VHdo6Y4~%)7aT`D+;3;!4v?7`Vi{7oc{k7sbi$*lwVrAXWH>-a=XeFMGShc=9E@$N>hxm!(v&*%Bs3dWnT<` z{mRLFprgZPb0oK_U%USj1E{zAr>j!DOW>UsKurU5v2?m#vhe}uW&@FW``AjGiJ z(yFVnv7%y16%m~D&He5Et7e;Pb}nFz6~StVEked2vergvbmlx#!r)RP`P_N;uRMH} z)I+89 zeh!-?)r5C?07ZU{vv?fXXG$0Ns*t@Csdti$;W7t^%^$Pn?wcVG?Mb1fiTg*=$&HL|DM-kmt`Os% zXqqpTUxFPJuCwO|nJVp7X$&lHv6N8DhJ6+~K@t@*%tuGadB5VinT-= zh>a&=ZAhtMAV$86jps{@?Wgm%VnZ`8ZcW`?o}yfpFv&!)GTp+uphGnmM@qmhkZTUsIQ~fCNgvL%nZA4vJl3P4r#7rB0j(_v& zKG(Pos4j5GanQ=pmDjp&2aEg!T$;MLH(`6N?XUw~12+~v*NY$VXer*?b1tPNgQv0~d&vxyLnub_@`3?zKa1c;xV z``kE?w|ucLO6i?J=`n47-kCTXbrqVBziw=A$KQ#TXNtrz73u)4lhw+rjou>_2_u`` z1jnR^lYYs>u(*7Kdeaq|e4Z2IUK0{Lf3Z$3hod}1w*xdQnJv z{jy{3u4e4t6Wn1F`2n$R{1a_b##v;oz&n_UEW-8Wor7th(;=qb6%tN^Z z@~ZMRq{26~M_5?;a(7ThRfq3TQuy-oMr6>}tLJq(A!5&UZbsvpkGhM%3-4ntw3+U5 z8wYA6(wYi*sH3C!9YROhu=SbnsG85iymQAJeBz~D&}WDXNbEs#=fawh?MFYCM?F&R z@-b@y5UsRXuDxP*`}K>L=%T>f5TtNAte93If`~$S+k3#Qxe=}kWD5zkIZ2&a#p$kJ zW{4>DcTkz|K|Y=Vro#EbXGzhl`Izp`+cYbNo^0vFoGobmb5h8Ll%D@@dcPXq!O}Rn zi?pO1w+oY4;VL~0Y`;uL)oGhshM)ywdSo7NJg>|MDJaB*Ce`+qJ$G?D=Z3eo!1g~= z7XugEY~9*C`>K!{X71bM;F5Vau{a?=|23V#B)jd8-^R=tSINe}gKYP>X@LP1ROYrt zTRf3+YF&=01u_==Ns6gcTs@mdIh`eLW+=AVbUS%HeP%E!mN3YLxpu5%vyyPT`)U*l zzc{Vj#p30j?>(Ze^N^N)+rf+UD2Wd^v#g1I;8gk4ZnMhjROWdr7x7df*@Ep)*fq^_ z96L~i@3Lcz?y`r7$l^9r${SzwpASpJf&&8^vS_eH`t8G?s^q*rZ~RkwFOS#LPOtt; zSoYhs`XsdYzeXJ>m)~(^>~Jyw>{6kB_a>{e)Tq=1Iat`%VC{UlDQ19o&5v#J=5Xm| z#=yr4P@ZzO^t$bOY4#B8Z)k5e+QdkChs@Re4SSceDNMwQtsEFQA_NV@<-a?en`!Iv z_Q5Ln1$@LcZTK$V1y+?&)C)=8r(vp5)U|gPbizT%#oXAVZ6*=X;`vsXw7Bpy%=6AB z&)0h+w+z0F|DCMY4>nMpbcNBH**;#>2y-36^I!r*Q)CntMF@zXcf*687-C z2+Z~4?#(@Uy#}{FCb(cUob6pqDZ_IuPj<#6lFp6I21OJ`I+!iqO{Ls}m-_yu#5}2u zx4(5VTcGarfTGg=DCuSt;m*pYabCb&jdhE@nsQ*HE9_Fd!OCBq?oVX7)|nCWXK!S6 z51>~VC^-Y3jve+LkPmn5cRL}Hwex?RzeX&(;bE#0oJ5Q0=8Mc6jFcc=7to*vNu3Ub zjt@lT71gjKv3H3)_7Bt?&`#wZGiz8Wi;OkQ{$kt1QFEI&6=Vm>})P~ z59~L`Z2&`2!mjx3?D_QTBB*s`1*%AE#=OS$ zO6suc>yPmkldg4DHTg~}B@yFrKhNfy2y+dknqI`fg)LEjgfvbpCiR=!C@cy6vjVt0 zc#wPuXzOaRghhFYJ;a;cf6U+N`Bn$yEm0rrdG2@hrE+8>AFIR7X{Qd;OO3tn10d1{BY>*#I+#on z2T3D41wsZr7ra;ONZW^8pYm749(NK1=y zoUUt0OnMpuDO$Sec+T7sH8;%e7KFq6$242kc5_ENLsNE@BG#1+3iKBgNkaSDpP~;X zlx_bla9=rn1LoZ7hq{T0uZ#bwC6dfvPcXFY^&lqv#Z)xLs~lseE?Fm$D^ks8Wncbi zlT!Svy-Eb!1Dy&(PsN#&H&KA9x^k%rLqDxl$6lVL8Q-!)OUl5@(yxdC=1F`KZZ}&T z%!V0>{!EFP-Sa6_rCe!uekFoN(J;Jwta_1yRn_u~$I5%HY_qJQh1E}iaubG6gNH8U zK2`=n2mfyJ8#s9Gq|A;85zc{t&n3;5;g?-DS%jepI_v;|Z<=(XpJN~Y?Z_}@u-8LT zv;F)_niGEa3AU?!+B(Fy$D&NNsfn}eqfWC4aWuZ(=A99Um2)=PU?Smg)N;9fz`WSi zYy5@wEy4%0Czo2SX|18o|2kbw*VBwP#FMNb(d3O)R z)qT}#8+fo{Ng!D+SJb7qcZCpqFD&7ZP>}Y$ZT~Sjd=*xefpSX&5uoH(523P}SkpTV z=}*PCB2HJ)2Q(O8Dq6&7A8ti%$XjTI?^Dz3{cac3HLsXu6noZ{nhkU?+9fo)#7>8n zas-LIVtlCLo+~pYlMQ<;AgaeXoBcfO7URTT-87=cJkg9KN#LrQT*=whrW+Agc zv|luHRf>nh%?iBqG84B`pg*fBmaa@xN=WsHu^$|sN)Roq@GTz(P7_qCt`0gOf6V&S z9%V<3h1##u4vb%{yiOttxxTx4ofo+G4KTBbhMZ)7?IFrRpvs%b;KNQPe{^f`_sHX` zdpRGl-XaLtxGmTmRC;$gx)?9tf2WvQ76sBdd5vqv9o6BN{(Yb4$W+ris1Ag@ywHBn`&*%$ zN}u|)_Ja+tBtE>{Jgd!ad1+Il!PfO|PcU7GzF|+aS0>NgdcR`2?hoKxRtX2M}3Y1`MfLnaan|i+Pwvy)1Psq`y>Yo?!V~ zwni<21@&p_KJ$zW$^=E+MVy0L@4#8FvNoa1e9k+r1oI(at~?@l2QRkNUxCx&&@H^t~H9 zeLPrK{_AY`GpWBviNeNF&b`Znd5DlFWA0m1Bd`jF?7txttzG=be~T%A-pwHH*-8m$ z_{iTKVHI49higRb5LpSLp%fsrJQMg6OV;cfw7_naphMZD% zSRe)a@t?91Bei(8XvC<$69Z2Dg2IndM&cbbwWH`T{8CS@(a>5Y@g=cLE8nb5KRGR@sG^|0%IYL*n0)|IP0KZcm|4)A9K-*%^B{~`*t=jf@XPg z7T^KkdxsO=^K`Cg#?+tAYi{`@JJT@W4P{b$Iw0CaE?SCBZ1(2_{zdH_-g3V%=iZW* z+_MJd9=eG-sIQF?GnFAOHdCiZjdYjQ#b2Clbc@g*b}A3%uU(f)DqatdZ+ zfG(1QRNnSu8}L`Vpj&5Uzf->oVN{r2@iJ!ox*ARCIlj;f3rPl1C=D3s8Qj?O+k*+)HPfByZfVG#o9r(% zlM8mVA^D0~Iy>)on8-MLRxdXTiE_`f?-nZ=(7607^6v zjsnswlF>E)XoU0^Ja}`qggL2jIXN_VZ?I40VX8rggv}1>cNV&1g$w+%qS*x!L>~u4 ze0)~(qFK_Rp0cK`=f<*bm(KVd$;~bYZP}Ms0B^?`WH+A*`+=Dqe)9YkQ_EKE5QtEfOXB&V zKnO6cP>tcFY4P5V?S?5Yjet0Ql*<%l#tOF@YCio|K*{qIjjJG@u&J$7<5vzs+lK^_ zCKVEU-`@N^jqg5YuU@E8?#cwPyM@C?-0%Ib^WWXARt6OukMVh(dx?xYYC^;0W&+JG zlpbX_L(<0E+RE_VkT|Wj=E=9}_El|zfyl_-)kxx0`F+=4em~F3G9d9Fip^reY{UfN zn-(zNcmmP1RLc<-x%04+5_HqRg|vUYzy(0tejd)ro3JaR|%_whp{&u{)+#$ z|La%!<9CPu1cvW9AiV!=BiCI7%r(B{fC)VHuZV6Auv@NY_B`#Lw$F+wd4HYloS>eu zFIPyf7?j3rT(vc%+Mg2nT%i7M3v{w`(Utxpqu!>r zxrQfjf2Vdi7j(0W_HSz-g;*`SV&&hMN(bo|9bNO32;^BlA1W=0?7rSqcC#svnmw0ivRjjq3vI2^ z>4{d2a@K}EEcMZJ3u6Y)`1*fUY3jVf;G{##qr99$&GpoUB9pezhY|sICPih-Jt$|q zo8`wWT#j3#cgA&vFMNz1dn~^7JEBa*O*<3zv{1-kb|~9-#YQh?GuZYwF7Qrfh-lXC zMT67%{fCKqN5335jx}trtK{-54DbrQ;s=-(4@o5 z^f{~Y;(OM`(Yu!mxyy8N5Fff)>&P#On{b2G~Iysw;gu5?$lU?`*^x-^*Px_8w1f z>ykmAF|HuWv`2*TfKymc=wu~`fw1N6VH=vh^ z{pOSvDcxHr9?Qm5o3Ynz_KVVEQX9CFS=Cn7H+f_*&)sq9{|`Ik?=DrZL~RE#cQlzS z^{Pi-B&V-FkU&7|^}UDTsvWu}wH19qab{Ydq)S>N_Q;O-A$9${Wi?tfVmg5coBitB zT+BNPsMe_3j=nV^#u>PGH?g&hb#mN^=~CuDVFC|1U+#F!PvObyK0E=?&PvZ<6+szQ zo&Rm5+VL}q6MB?fRJT-a_Fv~Z|Epve|6~3*CUTZ(T2VD})F^@GtX&=ve`Bx*3P#x` zz4fiwZYFK&w`>&=_{9C7~G zC`I;_XyIm6@}ehgUAOmtpF@3$FHRKL%_6LMJgvY5pd`RqiS`+GQ6I5MeZpJ4HJ@fC z-KP2HG`|)QGwkk_U7M7!0{s-&Ljs+cgLtZ~LS?q*9X6DRV3&zKr&S zRW#@)=F^6RY}ZAB7VgUqwXgDl5xoH}xhWoap*a%O5Wuu-sqqf7P3lyE_Z2fFDv;qZ z4Q|9n$_m+sq_D%Yl8f6u6ZqtWX4SD9N75MKM50dVk%iQk39;lKpyp8v%Vn$iAOA|? zl)P>uQFga-Y0?20d4|XbM2Jhw4+XLJG`rLuT%U&6!C}*_Vtq2MnFJY>+Wtz!BCJlB z1O$(NJOmsWCPZj^Os`bHx=_y%bvE29!6&+=$z^R=Rh9&@vdNab{bp zs>D~bUo~+358kfimngsdqCTyhFc(T)8Ag{mSPsH&_RmPGX|jrb^%YrC6i+GdX}Zr7 zCw*$%10-*?7Z^?gHEQ&L7P}&Tl{ZXh4pGntIE^+nH8ooJ$=X;0_p|2AdBPdzh%1yc zObb$4Ksj~h^=j6Tt~2rWs1r0 z{4~|3YGCo7IXr0CDM9VypsujyVH@}xS~JPB*NQGXhQ;)=qWsJby(HGB_5~}{`m)h@ zFsj8CTi|0doNr2+^_}aB{Cs5ocG>#Be}2)S%v2Z4mHL}U15TSUpRveAkoxYp(RMEb z9wDbYV`@XL4H!)K%EOWKt+ZUzfiA?G$ivppcanp8)#G!SAb?fZw>STuS{=mr-LEYh zN&%Ov__gxIC`XC$E&a-mD<=flCfZHPROy^SUUzU?V>V}Ss1hh<5W*?jVZp^KV(%5R z^ie&pb?%1lf$7eTO-?(5a~`@b%FTTRp3({DCkMvJ!He zJ{@pPuK)L8@Je0{N3AQ6jF_OIGt9J$CZ?hz2xlF~4z_J?X_1Z~*4=ra)1mcto#8uv z7znWiVyo<~Rai3-fO>*=PY7_vxc)x0(CDap+t32Cp8(fDrh9{4#S@o}3+`WQe`8NW zkyHXB$1Ur3Xc_HE>>SGS)ax54Rq|EwubU!VJeL@{)(+v5-fDj~X3E`J&3}@<{=edj z$AHMGi6YrD+=Mp-EBp3&Y`aA(mt|}OWhyX?lISO^#W%fyfu-UD4?QicS1YpA4Vvfu zs9ERC2}AZQP+pG{I6#Jwbo03a?2S_H^0R5fIz+j6Bi zwEP#-I+;d28;8o~Q7}M6uRPyVLYJ-Eg;hc8$L+;^sM~ss{Ke0+1&345Xo|v3luCN% zWSK)vYQH_k-H9Jx;n+MQF}Djzub8kK9C>GzyXTnR47$Bl>xdh&G8oIzAT63MM|f;! z=^&sdG09JAQEL@+2+-#DggQuEO+Thl+gn&7#?Kkqodp(w1!jemtmg#uwhx$*19tQ* zYu81CrtEQCbD?3G4G}XdH+X&VPQj1bA1#vTm7*1kmlDPPF-mUi?VQ&0Y;TeuMFL$e z*cxQ4Ca9nHgc7Hv8!`}i3&F#D*K=K1a(I#D_hxfwDA8Ts*nH^|OzLb@*k3?vO1ty# z3P*jkt0SdNHsZZm0e^utX69h0BeZKrVYZVb6+SGe*Y|w38x|U9c=e4_wv`*hmxlzd z@EwmWwhKT7kP)Ib;zQ~Q0S<|4TDN8(Vhbe#){6df+pAd0%GY|HiH1bJy^!uc&d>~L z=^mCr%MpG=;QfO%ED~g+A0e7n?Wxyb^9JT3nzmVZMd8dVi9hUz*1#XfWtAsuUq=~* z4sGXn`V?fcmMjrk~=lmK8I)PkF%!U z`SlN96x>ErQSM4x%SLth(eU+ZWg6?^XKC9_38iD#-NPQ~qaZSS99ks$=g4G*2sVtU zeHh-|*$3t4KXi}FN659iZCFLWR;hQ|mvP)L)L3zG@%BzC8p*9tDIS0&fP6gf8b16c zCrRL)F!XkPG4~?@e~r<}yd_wf>!A={pvp`A$_p>*ZsBkSr}A8KiCV5W%vlIYXhxZk z`h7=RRd+bFpi;`?@oreSi83dmmu%xwI)nvQxc4Zv*|@1n;-rfEOd#w-LSfoAAoB(l z8TllTelQ8JA;RwE%>Y9=afl$!z?VnZS2GggP+POb9Uc5>PGn^Nm&oB_Nyi@=mWfX+ z!F4?-n*mfoE47lSS$t}m4v&!niI0Q;V6o_ty9GJME(FbewtD4@CScR&!yhxAmbxS- zfQ@c~ED0COV}J!x64!GxdM(=fV{V(JJ-GV96Y`JqpRikfO~N;C63TK0(_AC+SF>0O zLD90t`zu4E#GWiC?NZablV>Iku zd1LnsGSZ~Xd=hi0!c@Csj?&=OTEJm8k9_bIy~M|ZNwpmF)#Q0bT-^Qe>+G*-sTY3R zomOe`D>L8I9ky4htaj|xcnLrJur;lMxd^v5#o6sCe1u*|A%%rAHX;VA4)Y~7?y{;} zz>dG0(e`*auA4;m;abSzck?QqsHJMo%0$WQa8J9?aB&Cllz5vl%M$7gpc0|$Emi8N zzK^z^nk)-@kI#_;3)o17T`X*9iCJe?v3I=Kd}?hU7CxFpV@eUWiX%}&e}86dzZn|q z=oDo4U^3jP3kGo}t~zMxrN%W9^m?^oAB$P5dlJ$pPJ|bt=u`|90_9CZ0#(ph$|qqmHDy-1(5 zNH^>pxbHoGF8AAxPeTqYOHL9xQ9hCLeCsK6EB?wM?fCA~(R9i6+@e5a8GUd~aBk!u zkBX~GE9aiSj$8XN$;RyFdK8-80>|5i`yNq=dXK6^IyH zD_tZ43(t!x5%*n<W-n8z#=0x`3`xiP zC!T@|g%ndyF;((k+V}#001I4f1M1nvo?JRS14KzS4Ar^BE_P14;$}|QJqh)cC?*awcz1a*OU?Y@SF$jWP;NW05-;$7C^{E^rv5*U zch{BZOOZ=L%3MP3w@NipNzB|=ZY#`fhPhR)DYhv0%altP8`kDJa-Hi$<~EmHCx%=$ zm!aQ&|G;^i$9a4n=kvb2Ua#llr%T=D*E**M?Kb4CB)J=RMC8Vop|QI}X`ZL!6+68A zTnUo-VuSK`FLBJ6SYnLqCX;lzLsWt^pbDq{zSN=&7#Mp{>OL2s&)}J_*WX4R)Ff098}h$3=lD_O zgvnH-r~RN9WmCCHb%{$)e}wuwS1!Q^rXAw=GmpAsOuIf^SYf_yd``Z@^Y`Zza`OC6 zMWgd%_Jy^94()HD2COqE`ZK=%e(~pzA1R4Bo>PJ;y9;-(CCNnIKxWkaKAW>aU_H`|&Z?Vrrp!xLoW4I&GcHe`dcHz2-k){rl0e zVm;o9U&8F@q5!_;uQV^rhACI54NVhFus?OKM zNvV?USU%K$Pg;EoJ6)fL+W}WV+P>vXIR{LI8j0>>#z^AzjTk+8Nx{JKeu@}iCb#Fx_09jUX zP)jic4z*7u%Y6WEAR|%YSG>^JKBUH2*UT^;DL9{(ZPo3cJgOwQo5{lry1x17$}($P zdaL`s>cx`9#bhbNLZqCw*Eyn=oy{{_Y`-1Q#`oKJG?OwGPFH69(K_TGsdUv}dT|-0 z-Ld&!Ap-v)=wsXRZPC2)eYk-oaZ^9t+(}MWOE;O4f5kpQuc6QBc2?tq-Vr_2d4WmW zC`%KrpN1zrVS8`C`QSvr>%A<=*P$n0TlH)`RjKmKg_0zKwUJe&-bJe4LVY3yK%EEH%1S zmW*JCdVa7mgEp8cz#qq2?sXa%Rtq@!nV^rBTn@L1-OkgNrHt^#=1zJanb5i-8y<1X zkNxX9A(ZG@W?(cfR9RRFB^e(LJ=Vu|XcVd_%B&+!blT<)+1nP_5hg<>pk71sVV6Vz zl3{c?gB=UwOeW}JKdHrS=jktO#4Xd4C)FA=&(;VND4I6EHgnM@s(c6#mx*4L)9!<3 z&*81WW4yp?hGm`iF`J9Z1fdd-7r^3z087jI-@_-RLdstpE%{lJ8B(#)TzY=&bvN2< zWas%&YH3`eDFil#)RuxyR+T1nP2nQya51JsUtAK{R@uC)^|S0%M!dd4&XT(*nUb%$ zL=u_0OwixZsdR+$&?>2o!<%c$8|@CwWA*hQrf+_Br>5&^zD*Y;Jjc;9atpUHv0;%3 zYs`GXn4Gejw5|(DnyT0&tkpMZ=XMRHxo5U&j$$vi=cYWzZEo5G-PZ+9*50?dcKBex zBVBR=Cox{*daCo8@Q!C}R&S?PS5^3oSc=*)XX-FFbNFNa1OMR_)2*o03oGltl{t2I zW`uxZIdAPre8-_u>|1}2b-z~jUB6uL+MtErD~z{gl#df!vU7FX4S@c`?w&N43pJ%G zSo@Ri3Sk;S5ZA{>B|j0iu5@111I;o=Ocy6`xbD$N0K-|kiK@$i9oUbgoV|8rh~qtb z#||euCZl+~!uc8qKSDx~Blfato0)V1M_!|gAJ?}V$Gw8VY?RH=>0z+c!wx5Wz>F%l z)eW-JCdXiRO=hB9Y6D1K5^UZM0=}8b1>D5ZCp?r!Dq?c(v`UU z)G;>|U^Gea4bN^bM9MuaXc`bDiUvzhuwz z-XO?dt5FWEur4!WKC3mg_GiDk7}(WWr~t3tZR`}vjAxv7wjpwgH0PfMui_=w#6fcQ&-0PU_`UvIy6-m4JS%bMt8+J)WKl=+OV>ZN-j|Yy#=;ZoByC-4o z*?`ED(sAK`?}9xR1OM~9T;(~mpNvl}ewsWMX)32wx-HAxXTL;4;4ha5gA|yeQ@Cp*000^x=`&VZ1<-( z$^l5Bx>iSs{WHcdtm%+Pfj74l|7oq|1!)oHa!R`4>0u614oSP#=$EJx_1}b} z>|pb&kpO?cFUdFl%!yLT(IJT~CqApK*?%CrLFCn_`juY{{fFk;N1u!&`b2MB_3r1P z$oM81W`16OMtx5`<4nj(p*tN$nK`_wh@A3WjyW&k?KfH&qOU;KD2ShwF@@6h-TAegFjz1eOttTD{i;>q|LmUnA1 zBzJLIr{9OhYX=+x%$kT!s~asEwMb|hr#eBBEpo7P;sM4hCdR6c5BJ_Pb}c8eV8?xe z>31qh94~t(a!Q0Oe#P~^jkK5FnN{Lr8o_Y1znW3LF1iCXBja`x)$rOv z;hJz;rwoN4jUb1SLAz#H{D8VvMu?zZh81lTAz263hdj*axOGK|e)R?R%c6&T-)-X~ zHL7nrEwm;&LD(am!D6@*>%&(Mb3zg(8{ay=QM3#+;i@w{a(Mt;5UdI-7o~5B#Tkv`E!4CG5bi;xD-bwcKzL-@epf( z6!AKRnb0FNf>LS)vLIh z%=1LQhgI|{tErrXC{w3vU>7q>cL8H4k&JDTEYbekdo;lI1;2kK8%K)iGmb`RdwFsJ zU5t@qwER&LBKOrJ8-_cr3EoZ$*gOMgicqvyzWPeUBeI$h&X-;-#mVRJdf2m{qB@s? zxJmtk`siv|haBWn<*lXi8WqdrfpbCjSsA^kEc=D7FO`O&>2!e-Umed@4Hf@s+IhzrR*zXWUK^AsRTE^N~!^?Z5rBCGpfi#wO`3+&h zKOfDoq}*Mul-B4?tdb4D=CG98q${p#CsGF;idL?9 zT(@z6gXh=llur%RjIC5Jx5=$$Vw+|{Md9(i{Izxg9(w9Ei}+pPmc#HdC?D^s?;pKg ze%!+;`SHC`xO;*Uc1Ky@Y1i!<9c9&xrb(%I&(-Q#DHCE(4aaV&NdLLmfC|?_dfVx0 z`^Dtt9Lh8Q47uK#okbI4j964d#i7>pzU4bARemMdCiRZa%h%EKC&U?#!-f`(k{s1s z3-r0DtQki-o&7keFZrkuiK>oV#Fnd?6gvH=g{%wfW&D0t+FMq-D}cPm%1{10 z_QZF@%_r<<=*d+gMzAx5OQDt(dY#g#7h^T=Kq(mi4EWYoO6K^V(0kByrvCZmpQ7rb zQ)4;FM_Wxc7Ym(2Hcxl(uhmZN(Tp?3R^k|$-#&couZ`yX4trDGgUtpHRNqS$f#Hb` zU|nKZBR?=zhha>buyluuy`Xv+X3waUD*d+n`!Qlww8`t|!QjsZ3C6{~4;GTD8I;F`*q6Rw*4JaExa@8LhY%KPsu zL-|u2XZDAA8xgx8%EgvX>aD9H(u$>y05`Gr1hY^fvJ=)jZ-*_bD0-7#tj^p2GF8<0 zQ>5Hl;%h#QLy!I_%Rk4c)Mi8zt)3aOK!>M4_UPHbzq)@Ji1Kn^#bWA6H?H|i1=LP} zrlXYjNnP`zg6xj;1v#5%#h}&olUBtb#FeQ-9JhO#uWaXJQm#NQy}d*&ap262iYldE z9>$(k#5&u*Q?%vExM(v5vIQrcrz5tw#(hnaL}?KaEk8L;QI&Jjdw)o^g@jo>8G~4;; zv>Z^^)x-|n^<(1nPW#K%guZ=ZDHT=)o4=u=fH>vDDOs|Yp$rNXGPlor9DL^{o?L(u zD0bG9dSl`_ebaOPwMlYA>)qzv{qqLwYH`N*ykp?i z#Lv=iY(=%M&nya~NB@Bh^{0E@e$!q5eIA!*Ht1Vq($dx2McRGCNYoWXbZlLxygTfi z@aCR$3s8YGU)HShyYxO3(-RW^Pl_xct!`|9J9ZI`MIh^_Qp92Czt>5uzerP}nh=q7lBV*Rt}7((n33muTgo7}q~FZiOP4 zyCI*)9O1P2m$z5%mQW*ck90I$Wr*ris<41sr*D|4_lR!W^3|uU^=dYOv`U7!G8_~n zJ>h-EzZ|;5Tq?K6n2{0p%X=_)C31zct*|aH==wn?>U74O>>U!egdNG|U433AtL{(- z7l#)Y%{45elOHfCN%pfE2OoD`CLpxDTZ~zb8u(}Y9coBqk3pU zEyxyy0B5c5kGX3C1#_1k5PLI2~sY1KY~rl}D=Q8uQuGXfJn&$C|M6&L-Q zqSjzC_A&G-CB}9JS~4A#OG%zx`_b)958r%Xlo4)yq5s0pkSIAu%L!^qU#7>){;2O% zhCabG_j2UxzMT`CKS?;j4ojI)3z`hN7sK?#qzsMGMV8im^7?2L@3_u*V1AqlET--| z1$K9@_@loE+9^xPyM9vlzra=v%HflbZ(&vOQzy|b@!1^72b#Ez z(*c^e7dTUyR?2h`zb%-Qbm%qiY4E%2--2;NcBY{n*Ni3&C(=z)3Edxim5Jv>Dn;n@ z3+H*5_?<}5Ky6d8f?G9EQ|1aJN`WhKnh%LqrR}21dY$C_1-0E9!44pWT3^u@(>0W_q<?(Tp)vz{9Je3UJ|) zQP7OEYYAP}ix}FrCbbRi`+e>9lpsw-=|n^Knq#`!i}_IpmfJVK&HSwS5#QOXY&loY zTG+d`+YTQci~?m+w%`Al4xzr4(6ro{XunQx;q}r`?v*Uu0E_+uYR_KF%(zr{*EjY4g`A*QjT$J_3Hi!%okjw!; zpatv_l&lmy-%obJ_~U95o3W(obC0M`V2zib~z4Ps-6UAJFX4 z9-X-tbI8*sV+8|5cJ7)3`9|zfu7h^SHnbSx^a`uCv<6V`JETCqnOHekunz5)5LMAK zxR~fS+#l-MHufJ>rKH!NB3)l~}o@qxCGedhHZ@ z=RS5fFi_@~=C)eyQjUuKpgWIlu|$H9@^x&MfV>{OM;T~BxL!YMr!rkWULCc9hQ^GN za%ZDlarsU1Yoe0n;5jKb{S9c*JDA!;hoA$HH9&gi|D-uxJ}5v8cOmcii;QnGc#Eak_B!OPdsldsFV1+(}rBkU$hy)$MSgk?O{<}}{g z++DYHu0Gn!cfJ5-QxAy#xN|tsB;2!ywD5q~A~k>3!?i288(qjq0z}Va?>R}mli;^~ zI-(^5XlINO?ZXipTngKP7DdFB6B<|&RfyhBowRFZ-LbEz}=wzp}p3;idY*b-*@dYCQ}crtEgOuGpN=M3&SpusF&YXvxtitnb` zX*Dr*QaNhC(nT9asalOZIVf`EpWncCHlW76c>nuJadTBHpEUTqCq?v3_qo@&21jZv ziQ(Wx^^dBK4|flf|3x?S+9>9ukRWJi&!_FBzEnLh{lCLc?D6?P%R>L8p-`3H82>%s zkbziJ#NGPPlRT#-)Ts~FmLuq*Nbi$8ow`#AE)@>G?si)bCS9KQB1*U1{89S>z1on{ z*OSSMwhV(0O6{{0q?+`4n#ehaDyE_VRC+4bTL6Ze3 z69c#*W!bV7%hX)m_X#PYJ-m+eV`-$fTs21s|Fr;wbE85tCU@t^0cfzyAC9z9i~snbOzeLD6Z;}44y zDOanAB&{=lp>vn#A6n4)lO+9;g#!nsMWWhmztnU;h2-`Yia+cbCYWTv058uF7fqrN z`ch$Hl31C1t2q59oJ_TJws^`jG^oQ8_-(eFr?a5WA&hd8fH_gQ%gR&4gKG0KUg(vK z$o9tFWFq|LxYru&`iD)cBzt|OP)6UdEwF`nEm`=L%S1%y+^79mjJWbY-*$sb>!#6E zSb&87ZhM`r_tU**!$8pn@n)s6Tg1FEM|{k}p9nvt;9QksYtk$-RrIj?qDsqs$AHVw z`idx}dkituSNlYu{@i<70wVN>WANtp=H&NorzmPYA7yp*@63%(CTM;bwNU0Paq1o) z9R>)PY_y_Z{9Egsw#yfeZ36G*tlY28P43e-klJB736#Qt&J4bL7z=m|XRY9Hlm#+#!7r(~76%yg8e9 zwOh5)^;9=EvqaV5!5lSz@s3Hs2!RmgHLQfTO?(#Qm@!kTW9a*K;97m?UzRm|#NE?R z_1I9_$)&;17knQ7P)@p$X14EI^`x?Nw*<#gnjR^p7;DQ=oy*OyFc+@30QFfxDC zTnZ9KB^lUFux_M6uLE1O1f}$=IoY`Io14(kx;p?vU(L0c&Sak^jKlaQCx=g=jx$WrLhhT8 z$^$}cV&YSJ;`-^1#lRuR7xpDjOtqdmBHuX`3tqP@xHMJpAMU>XoN+yO9q*nAH!H5` ztUDt&H}3nrRjTm8kVL^!d@Jkz&?Tyi?Ve({e()I7wn%lq>(awBy$VHzV~e1X!NB5z zIQU?0{@uQHj-JA*Kq^2BHNrG3>9XX+%AABKJ&(4v3_ao!t0_2Do0TZ#eD2%g`*<)( z*fY3l!=zrAZ4LJi6dF=v1e`5&dHy;uc=KPNU%uLT4@iX3I+c6*Pn`DL?^OiOOj8X^vss)UmrVzX{mbezdoS`(d44Wb`KrE2)q!8+f(a>&(%d#S`XRR z#jjRqoI?MB$1UX|>y-X#BMj)<42@S0JO5?;tlRY^fKwQ*q>vgOn}12+o;ft&nzq9T zEqvh1a0`%|XjP4gt9!RkVx4@OZg=9dU`DdEfSHFv#K;i+qt9*g5!Ql>9=|~4WZj5u zRDe$uEmevN9bXs$09QLHU0R#{*Dc#SFa5n?KXaoe6cSs-??IF&55_*md^a1bo4#0_ z?0-XPwa5g~&2km5KG%n|{*)S#<9?Q0qM9AsSJyZ8=i{W4MrBuxyNTF*)iwBkGrI$K zKiauJOt!&?%H8-D`2ME}BEzL&lAov%az{ZOn2uCS-dc#>j3aN3hB5p{l;9v8jEMQ1 ziY@ms%4@D2o{`@|kcX4z_onFh6gQlaL{Bec%s8h4ZibtgO_RjSQ?H=r$$=el@0OGa zN{Akn;JqC`r2fDh^oxOb*2*sdsRv7IeH!%Nmq^0m7sxgBo++aReUQ1q^_)EQ2X@am z7ha^s5J!{FeB^LPMVOb9s`}OMH`rgqsjz=dC#1Mo6^rkAw|Ksb?q?&f*p54hPhEnR z1Z~gWl+~5=?*-)O3cxhv-K=4sJSxEai5H$yNtWe;6}7lom6Tp>LPgJqLW7BDn~QeE z`mIF{9*auCdw(kYT2EAfp2QpORZM8r)n<`;mCGX^T04D#WgdHimncHWq5X_e$Aypj zZP*KZZd^lF^C}4b7Hu3e&FQW)hx+D+F&1E0yOB7N00mEiF@O--^p_KHA*@@=?4r??33*fx3fexS1J*cd>b&?Ca2$; zmBNt{1+bja|IR$uL3^y(rnDBOhg77xf4HYLO{+yVd7do;71$JmVG!RV^d=TSKX&Qy zWvBzq{)ihubG_Kp#A7gOfN%D3gGW*RDAbU<1KTFA-zIXYqw$IK-zkX7TjdK=r`Qke z7TJn*VCSRmPwr0-9(f733EVvTCkW)_XRCSwAwOnJkO`{xk1eg!o|OL`WWlo#!nH6a z^LpS;Md}QVNTMJF@fIC=N5=IXkige!i#ZobgJ>`2WV*Sn?kq%oeg|%cvgsEX z=}r*$>PZ-J!a&r3CD`G#KZ#~qYa@>1s+A-%6e#D6-G9ab3HYz|qtzCYk{4u@enLZV z0D0xSGmdRMuJQ8GX)EX;70#!}&mebM;BK~iv^xggn_hjxgkkSwUK+x2Z8;>O*V8qo zMN)CC4IwJJd>@v;n{-%67W9#?sJGTC20yEG3ycb?oslcz+PMC^Rb==$Os`~prK}j+ zW3sQlC3JTjs|MS)nMd@NfD^ zVqmlbZSTt%0HoENzN76F0GiBTLVL)?-{{oclUpmg$H@m`E8hN9wiJ^V6PU(wkh9ih zQ+uI3p>sR+lK;Fi(>LhtyudOLquSf?n`eC9P)VMld|^79iols(>Iz;}49QskeoCF~(eYbzrH{U(7j zm1=JS{nuS%j*$|7MK|AlaeiqVtIOS8`g3=ejJwOtbdRo#LZ$tmA#7&s_`6laO~$d_ zgi1yrIg_GZf3C0xw}n_-EjRtsD>u)j+*Vd#=8)j3MQ#hho?P34>!KL#ud{Q52)ut3 zMfVSwm~%T+Nu*VK%t>@JM^gVX0W5qg&wj7LGcQkmb4y_r9= zgO7W8d~ZycyN*@8KiHGT|6#wP8}W7Mc8jk+sKvYI*p5lXC#Xi! z2-HzCZi0X@%1OOPhW`Zx3b0CKZ#bqXCF0m5E|SM6v+nk(ka$mdUu7SNF&%SZR~XIT{OZu-eJVQ&~76s zBcLm8w$v_l*K6fjN5& zO)Ae*xbwh#H_*g`U%BM6jy-d1aG@h(_k-K3L&o&-(Z%eY^ChN0pPQV}EWnAJ)Osc6bbez5$I$r%Thpaw6 zSoIB{Pc;_wFRPI{-XqdLD?5^7=FH(2>fika-hSyTlodnIh z9-sxA{CMGcc$E>)haJ^3T3<)ad*uO-!X_)cqiQpCbjxNOT6J*iHDMP6oT%&cfTXSi zv8^Y2ivBU3_O1HqUQs%0I4F3M8Wx33U4hUD733RLxROnpke@B9)LV$|lZ2g-n-pGY z)1QXS+5Q1ca8KJ~Vri{9ICw7NTZ=9aZgCl5Gr2R#qnl3-;2_(OD?T-y40UjJ7t^C` z^6!k{wt`5d*1^w@*vwUNrG}{9bE}crUz8ZUoSr{5W~`)tr%~0HYp0phmPoLAS;bq` z1N-gU&r`6u@Rc^<`SCde*`O@wG6}znEgc0HX6k{n7x6yPu<D zN(W9zm!q^H*aH?=x!7Ufli~5nFVm-n*K+qsToT`5IlK+PuZyXc`KA5{C3B>v7cL)>_)t8lhIK;|Vu1t7RH<@l^^=HKf+Ss) zJC-9gTz{l%Te*QC%Al=Od1JAk-!8-L(fsGLw$u1`l|yAQ+we24noGj7_(v&Nn0<3G z_4JN=_H!B~ZDb!9c9Rq2xrx+E>e1bz?khLvzb7KRc)_nLtEi=1HaNCG`Q3$P&=BeMNfg@TVRA!h!++ zdp3styf(4{uGSp`oZsFyacb6C3A9Z?5(`Zmi@-8n{!A9P^?&LcsrW7Ja4^9L&Oe zY16&vpn;+LeS>8M$hIw%w^4biA#I(LFz8yF9J+kNehq8E^zahFRSr$E1i7-VWnSt! zVzSf!Vy)GZ&cCIv4Bf7OFUP@qwL8D{Y_a$aBJg*Bv@*5>dk(wl6ZfBcyIDXZlE-{wAKW;RjQfe z8<$ktbkK>N126;iVpyK|g?hn%#*oH?p;$GXWAUn-Mpb8JleuH|QSR%lu6H`H-e-+3 zARQ!mUa_q3&A^fbz07afA5Q*u8xOKioI_&d)Mg4TQ_QJj$2Wm>J8Vo$nA$X`LvU?74 zc6GxTMyPaKt;p{cHh0kRyw31UM?C!k>1w!}L1%ds;WZZz83r1kThy558td^=7oZ*M zrDa~?PO%CaZk)_*yEnj_0;=%bDRIJgzGzLhlmSaW^;0?7*M7c-R1NH# z(-=s0{-nr8lFM<%cVST>)Qh!m_rF1Q=H&_3S_&wfLH-3ti;SzT76z&NG}YXo`TEg% z&kRYj?QvTvMzu%mxXH8q(lOi_(p9+p(|zjdvodVH($X-$LwHHY7olPChB{SCk`$^O zWa_ykmSF&OjsIS-z5Vra`Adu9H`||@Wqk57E~GNnN=o&Onc?z5{8|KspnRD@7wh;> zSMRtSa|9ng_z!ZDqEshD2blU3)e7Y)m)Ldp@@UD$Jx0BCd2-nGxpD)iKXWek&Vc(9 zYG#sLmol~N)>xhvxKueG_nB{y&1S>;fX_RS?;5ONazF$!ZX%#cwj0+SAxxR`%ww9} zY3i-J`QKFfG2`UZ3~U;pawBSFDF7C~nFwC(^s@i>Et&cF1X<2-IzWp3`B%oaHWRLQ zckwtiS3mE2jN>Q10gwKs;!swX=nIh3o(LkgO3hMe2i0#<+`&(!Nj7{u`+jwA@hD2I zH>`wuss)`2d6BVRG*#$*qR4|+B`R2ED zX>O3H>hbKV9ABwdro_vD%O6*)zS}&Bn>!0{@d+7dbHgJLYn-^WDHmu_!n>u6Qh-G* zatiFVb(}V_?}_OYvfi|o84h+387v(m2D@N?Y9}U~a*Pdi6`ex<-bp^$gPOhNe5xz1 z^KsE#OWyV{zjnTOE8d^_-T&@yoUHrTR6m{)-=7jUmt=3oIhS-{4(y@ReV`W1y;jDY z;^@B^bJR}Ur*VXNEVs(H0gs50pITA>s5g@TZz)K6vL%kD_4#&T9uw}8sE zaIL9z2f8%C=;6tRpxsMd{<9z$`&+!~YgD0rtEJZ*wG3Y&sDtiF0DrmE8U<3bj_mES zdzg_`RQC16(LeB+NJL1?Qs#yOh03y9>)nTsi%}bJz;gG=86%VL&&E5d840kVO1DXF zs>AwNEIu&vwVn{ie@wW!GR9s92H9#XoXPQx$Cm5V=7vvv_p9u~^0Pq4QU+9RRVwMaOtJOHr(;@=Cf+Gh7P^xb>~ISI zgRM4pk?N&2DVzKFRY0lXL@}tHOSUxF^UPSUO%iDEOMd)phwZeLR@LcSbX8e^QwlO& z^brqL!3f-9yR2WH-AD7l+Ahj91;1o?z^s%Kx^=N^)1^?0bR@Yh>)mU_l`n^ z&y_X;36`>LEVJbNt9>0@!mWOZO3l!sA#8OFV2eF;|IAv48*2H$0ihr`;t)IT^tNm8 z_@b68Q@69&5H{0#NBFhPes9bcPxN(4%ryz#`apSA-k+LQGxyUdzn z##GxOAM3X>nO(vb4}NJndrSvllMKU>u$tMv4(tA?`}N;XY06bkBTSqzr4C`lXe4t! z=orTXU$ZVbYZ+e*a+tVdV*}}sEZ0*=+8+1z%gNSM96=?N|K0h8^ftP`eEOC~!-u+e z0KvT*d`5BS?Z>v=O61|5bg3W^>Us1RmC$l&?QR=hk1R4lND~WrVcefmjLp0xa*;x5x&QqMAphQ0GvxP-fXnq;pS7KrM-_z(wVKp_PJ(>Q_83(7QU1R2vHyh2 zr|}(gpd&I0P(N{8Io!$Cwb50f4DaOnwmPe^^NHW+VGH!)GaY8-HmF*lk<~q66SJ9~ zuYzr@>2xpDX9NshA(rfsB5Z`lQic*3k-mfVM^efukWhdoaPGPZcbL~drUY-UG+>$7 zofd^+;3D=sQ}m4shMGnkZ!g52_YW0Ln$w^C?zN6zVtT6c7l@=_-qz`Sam;+GW;Bd# z!Cxa&qwt_-N|+*B(TNMd{QTZyEvFh9+d4PwCr~1Osa5GgRgi`qVA&{`m0pc~NqlU? zTzdl?(Jlj>>RyGZxUxl1J?jwK>>eS{K{~spB+rCU6^}FDbAGDRau^7U-V3^6$elJm z4SiL+59gH(O1iz~8hc|ib^OjZ1A}1ic9AC)&1rnheQ=sY^SDQr)A)z!(>TTx`v>uB zUl-Q^uTBiP&eFr;0zeHa1%Ng zET#*rCy0)3UEB4JVie=&|Lm7Jz)TzEpuo!2K!Bak@@gg_HHDA$lBQHfILh(&K~E=y zn0D}OdpgTXc)wxm8HUX!u_eEtW@98FDzn&_ke;6*wKJztf#!v!L1LM$25SF6nfu^s z{9f-{o#nt!fvDZkAH;~Io8Oj9@5fKh)f7_>s3RlsS^wluJkl5Mk&9@uY@~5f8p!X9 zf@N}BA$~Smq)XayYi2k{fX*`3QnLQG8f8NE;VrnOKozk(8Vvu2ZyGbXfP(M?)&i^N;BzZsC1EM#e1^%p zt78Y>C+z66MDp$h#68U`OGdsHZ9a-W3~WBTppv*DSof8HZL1-`=qo6C&^h21>7kuU zi?^+SQ@7Anv@SFoA|~QBbfMuZv?X~foqoVQudSKoY^9n12K=p#v3h2({4?fCK10m7 zPC-}HQZXC2VlCfL^ESuYX~*ouMj}mx&jRJb7EeGl zs+K~#*m=Q2H@hCC}0}SaWmgH-SUu_jV*Bhe6-lqY;ETSnEYNv}`E3lbO);9?7>9f}T032|kuk>n}=}c%@*5{!Ssf2lu~N6-)h4V#B@9 z-yB_GH-$Xy`rT)zbn3enBy;g?{Z^0?hR1o_g~W&SlMm49oeJ~Sp`zpZ8!k0TSpAcx z@|{L_7@XY^HmsucRqC*9i|wNKb-l*}`l?Z{r7243*xtjCd^VQMrnrwY`sed+c z%dAkAvF~Hse{G2D_5t4NpH2Q+VTY^6obkHKxR3+<%P?t&JcMuj)Qc4P+_}zKjLNbv zERH2#ER!?YJyU2;XxOmFJ}A2nJ}IIc8#^O95<y_789$42|9ILb*)cPe#38uMV=js54Jz@?? zx073X!j@bMGxrj<DS(B+ZRQx;( z0_aji*YSIRAPvO<58^RtawD(fZb`vT{!(h~;%j*t$4@`o3Od!YiXXwr%nWaHb6$9D zV-$LAD&_($Gb-gKeiTXFYf@s-ZHa+IJKpaG1vGl@^N?RKv!qBX!&KPA{<&mbs&i zs~YzTy=cClM5q{V1$9$jf1|F{b{==Dc7);!4}euacEG+oS+&2grC)ckm+TD;=WveV zYnR9Ug#zYnU(D%rmCs;yV`8qh1fhD09SNF1d)t|y9LU*>fwrHzu1)I>aCSaYNH!F@Vs%2%X;M6?V zX`KXCpXmnoEkk{>YMZ!&z_=vx1~~IQRil{90kan&Uwn0#OPR$OE>P8}^^YT0q$&cg z##RY>#Za;3q}5Ge`G?w1tDa*Z9GH(c4ZZE(u8a|QkFS8`%qJS`94~hlGR&X#WuA^L zDNR>hyk5DOw4B(v@jB!v~MVTVQb$8+55cXWJGZxx*alO^RIo z{OQbd+(i;^Lm9Ebc~k+>`{k4+kM*? zT<_i20RK?rcN$a(TSeTT)o{!ZemD7PshzpA&pU?ME)Ebp<7igLEi?<_Vv92G0hs~v zBw^C^yEY1EP>*Z#8qW50Ij!hpClhR%p!Uf>v@$RL%QW{HyyIIa{h-Br1W`D)gPU3~ z&vLY=4WjCR`?mE)V>rY6e5QUf@pSP%EU=3n46v$rbnZ`@X>hlhnkm}e#oX4S|C>q` zGsX2Q`R(*ffIj8AX{+2Bql1-ZDX*yYp(;7W`+RO0V+SI0`kFBu4XBDqsKu#!z{sR? zn$TV{MH%fVw)`j?GT%90e<(@JJ^R>Y%RBjH^UvCb*FFP^y_P|tMds@Fl%JET#ihM5 z$95POjh^^qnyyh{Y^;1h_R96$xU79MU2wKob|R+;7W8R95c0PMYNN;QRZb4@)dkzH ziqwW#&~cbrtC`M*h?#7GU>+}RgTPPK4Ilp&r2MLFiWyb9hd_pgw!VyeIwhquF=BERW~sO%Qv>JI^9g+`>; z+q`;tx4R#s>fY#S7spw&s0Wv}io^%_YU8^ez&^eBCkmi;Giy5AGc}yz{)Qd%C%bWO zmqLy_TS1(<0Y=N)R|>W))_*ckssmluvh;xu2@c9e7kr7 z$jWRUY0rPx@a;(h6B)iV8JpX8^`kg)QQ z^-}2&DJ_{!Np~8{m$%^y9($S#$8F6G6vTzdh3BS420)NN0aij+QNxTonHf5 zt(;Fae>{%rGBQ4b@wC+pDt#edIQRXynbvZNZl`O3=S@l-N>_Hk5*>R#bx9zX^o1h2 zKmE5@xo#SCO4D-8d*0_*=L-(=C;=xwU&GtLEm$iJxkn1k7wSpjC`w$bca-nIsLr}a zhjc7Jv(8vg*v#KfR&y)SBxYJw2vZd^qEfBY4*FoW42L^)i*R*c%?bv+8NqQ0%)XBC zqrd57+qg=%>94uz9eRR?$N(8GXv7ddI%KMqclr~{D!|uL{3h0hpnFyE@arS3UD!R< zdD8X%E{cAuwtE#eL^TswUI&E4N{(B$93Kc^5%PdRjPoG94 zzSY(!?eN(PR%)G0VeusqkkP#KkaIB|-@YOO;(aC2F2?3G zu2Lav;VOq5ib63nbDq%wBW#Y_m_rQ1PS|X04qu<&@Bi0d&)4hmc)p(Z$L)E)U!YSY zMsQUUa>2FZrB?&w!Dvr(%@htn}5!MfUg(zZ!cT z@73%VdEfs<3|W=(Z_Ces=-x9?&RwkK+}jgt7U&%{!#b)SM|%WOcMyN=^(YNbETeYx zd7Bs^U{`C%u#hjcZ%WLh=T+q7))F)2ZZ*Q+v#7^^=wcoe#;#=FV-MeP897KbCVUc3 z-CH^Jx?0gM)H&InlH9RCoi;%BxH_Qrh>2h&kSaXPD{j{U((P3^JKS%+qRpj{6bF(0%(rT3H`%7%X(3^|RrvI7Wd&h#k@^)RSA`W?X_?@#wL@d8f zt0kYvihprWR)+lUs}GCYsM5>zDmp^d$rrd%;$Hr3TH4ufA_E(FAcVSA_s=~im~RTu zKDlXCrVPJ*{-l56qMA5_cNu^Gb8$_S!}+J&`U3MzK~vQM%A?>5w7@$|f8r2=aIRt8 z4aV%4%2IJ=^64s*XA69uErW13VDjxJeZQOCK5?1^Xl)!f+wCW;K$PmDYq38}|5B{D zJmagUH-t0#*YslLSfFz@Qd+TB_Mg4*dgDk=T^M@P7Z<5(!>9m z-(C3@`SsW|C*~UJZl~t^)_-Df#LyQa)9V|Qh0&|{w+9CI(?8=A(WR-11jvl&y>hsJ z(0iQ+HIlK{wuw%9Is$sL~J zC<%*|H}MfQQMpN^k~Gp|A|7@wF*b0jKeUywLa&8~`G1u0%6rK-gkZ!>_~DafB9>Iw z35Tb!gJmTvb8~hTYB8>i5%cok4 z3t``5>u#r*CVcXztyEd|4OOIf9qkSObBuSz3|aBVC*IqboXGYmwK|VYu-yI+J?g{D_LpA&7@YWOZm-eFbJ=$a9sJVmtyOl{nNzKF&7xDWC5GcpGPH8wAG&8F=>~dTK_sLdj@G+ThzT zO5T++>Yh8zhWuLwm+aZY95lC}Sxv0nzk_Rs+i#{5TgW2Jy?d+Q{_~a({!-nQHG@6Q zBegd}ldjNI+a4twgxUXBIpJlceN-lWqGs7AeyN_^ovJPWWe>op`#l3y(CNFLlBj+F zQzpR0Wr(AqeB$m#R_`fTP$wZFf;$2$!BE9!NocH}M!)6T@$vVVn%cVVrBhO$F|f?4 zTbR$4Mh8;$dhV^mLe-Z7QoKIRZ`sP;T8VaPLe@lUJ_+lcR>!%A!{c zcMWLcRkexU0E&5V3y5G?pp8eUcjO*?{28J%HM4RW=a*KC#a%ju9{@E8+bD9=xF6?G z$NekP%D>|l41%p}GtQ^4+y0OFn%!ZMr!#1Om|&axu~_qR%MCvo!R4mqSyZ+-sfN%F zKdHvTbE^FKX@>L zoCPG{)R@gw(E&D&gUk(38{2^`DgHJf-{UV-Pw*1lS4m8~7 zmXkkeRMEH(Jf=|iTsy^}Y?dbs7h<9o?JVf#2NN-S|EWb zqWw*~HKUyZ+Q@5gRX6+Y*MZ!=Y(nZk0s`0zKQ|PZ7--n!g>R%X=C)% z=DD{Od(gQ^4C`k+fDYGEoA}EO_Og2_@-3@@+Q@qDGaIAEN#iikZ%5AJ|9FoXG`2SX zCCc(TJv~)WqiR)rMWeG)E?VZ6;EUBNuj?^$?%-gfSf9baPd~&P+MHAf z{q9zI9*%-BL);D`W(&RJXKp%F53x;&{Dt5-&j_`^r!Hl#A3SIdsMZg7xuX}LiSNok z8T;J|04c<$K1dwA)_geHy{`Be+w2vd+`oR`GcuE+UU2(zBeAA&9G zmtk|xC>|8=!}t0`nv)IZei=O6gPil3iiyg&ofg6FjW>)>^^ANwk*y{;jQU`oLRPvk zxTq_9C|B{lyH)$_Tb`X7loIvoyl7e<;nHuEylA3iOUq))&$pQm;Mpo(cG2I(ViTjP zvLjCe-pljvma8+}onBk7L|d}8_f~mldl?7*|$_VJ+`175p&*)SBXUekFhh-lMFRP|f67zyI5SK4FGLik}57REn*VZT|W82nP=)=bz z?FrDdx9bCk8ITC!S&fhOrTc-=bpxbq_~)Tu+9n`DmlM_Fte1h#sMj>8$<1!a5UPAT zK2TtG--BH+L|dPCRQ%Ad5?Q-9$}SZyuI^s@7E6&2Gg9o{4q}(|v-}`?C`*F2CO!>V zc{xt<@2zUoIgVsDwhCZI`eeQMZ)E5Pld(O@sgiWsh%55{rOUunEhL&BEb;T!2gupc-v;< z`vyj?&-^JzVxAGc+Z$b@nl%XS?0A}rWTl%o@#*P~>CYA!%;w{gbI4_f z^}Ma&_2UwU{QB3!!$?CsZ))8q3lSK*`RS~bm10giP~!Mv;60(rz~d7 zVdLH_FK7!Ex$VI7H*r0a7W=gPH)uDi^$vuDYq1+}U5c9-uw^^MVT!l393iU9Kdo{y zJr7Wq`=iw2=+wO6%PiWcu#}Y)2$A6!ZQY|pcY}(CU)i^}DwMkGL1F8J?L~Mi48W=p zN9lu6_Hv8;Dy_&{oWO*(S>>mkVC%hZf!OS(-H#tTo*M@dT#o*_QI1{JMIDRj4LO7; z1ki$a9B%q8XOKlYwj+x7y>MJ@TTzcsdpTQGvhe8OyLG{Rfdr82*CrdD+ErRUt0 zi^zUrbC;U(yHu_I3Vi=N#Z*Hl76CL(41zZ8dcT1u$JO@jGE@If`o=#G`1QyI zGN*5%G~rBHSUELDFF}28Hef8R0nLwCt^oYrF%C)!R75=IxwU^4i{qMhFtun|g!bHu z7+PW@n>*oKC~I1ul#7+UfdJYev&q%t&-AQB7e@+!lziYqDL$at)})AbA$F%<3Z1@E zja@1x`vK2(U_KqLNjxdnHImd`Yh(>KX|GDI-8*%HIilWWiU22kfKZ?7H7uEHUM~+H zYX|MJxVKKQqwm^ouV^3=CzXDjoi z&yPu7?M`xZSU{Y1j{#I6#JMxf7CW7vb>&Zsb<0GLJP7R-o9YFVVJ})`RRx|s&+-ok zKAm`+>Y0sbXOuw7#r&;>(+40szw0bMQJljw*0jWnaW`*F*+Vi&8!?+mS8I=B9$jBQ%q_++tps zI;!Vdu)gR`EYo;C>)p0CgdF}10wBc?s`b7Y*!-gxbx0R$Xhe+U&>IS|XoVnze4%z|g|U!;C$BP&z24Oxfj7`q&Yexqed4J9MzT z`TMNKx%&C&){9VVIQGG@mtx$gM@jkPVuD~Kh{j$pL=0V-{RY%RlUoC^Bi&0j)RLde=0}ail^%3UY;K-L zoP@h}Ch_-X*R_d-)sn+~TbN>GAI0^%%u^Y%mcGiM|7_Z=0nWgz7ibX;!8ipDeXCol z16lj!+PwT07ZVTpv@y6{>wDs+_q1&FXjsSmy*xv@I`CQ)SF|x>CDL?^YDpGvKR9Cm zasof6!xQTVO1|AH=+>4G747Ry(b{YQPI){)>7LD*Rb(I2B1I1<&A=VQ8eMQNWm;`UNkW9~eHLN=hWbP{SsVT6uG@~smA6_#)yv9nP?0@jt zHK*)i?YHf4Jc6qB$YrIJ zxakbuY~x!%hJRm#vK7qD&6>YBRd5xi_%?Na1g1W);Ra;np=QTArvo@~d5&zYUX~g% z)^GV)pkC!dCkegJ{C)jvQil3`>`LC#tp?UAqVgsii_aTCd^18}A*n4ajB0Vl(!-iO zpHIRQhfa}v+@UFR#(bpUwjmnw5k2o82*N65n0E`f6#mG=Y%WUaN>~>Tc+{`ee4d~MV)~NVej{q{7 z+&S0uu9(iLc?RN0?`G!eEY@*9R3Xy=VAecLd(oG4W8i#sp`O4dC-!><#$*8|S&1v! z=k>u**rFNeZEnvyh|e7v+ffE2 z(M|fdQuh$RzQz8whiFRjBrNw$utG+nb$<2|8~)p1LS_QDFb86=lfjMS+3-MHc0+s& zG)~-E_UqA9&A()|;TjUzJj#Y0)o$3V2Kj-IzRx+485$d7${2sKH>*Qp!X{vTnp%cLK`(B3f54Phg}u*}k#`jDF4RM8Vp zCEZyu+e8mW9M*)_d}h^PtQ|VCWN;8Q zR3maWdv4H(ST<{TJ3|T}m%Jo)6%FPgs7U$&uhhuH1hs&t9v5o;L{X(7;ABN9>qgYG z;;j>ok^;+-NSA)sMGxeP473$lv#G?>i!pBowqWckKtMhRu-x*hqLUFNO$vO@UcXR- zX@OEQmPDRQ0iK!#$>YLvTU_>1FD8kzf9cY~C}{Xl8r4QH-!SkK{-(=0b{B9;BHWG* zN)2h!!K_a#gV0H1{DZt5K^3~aKJ`^LG}lqgr1Q%D6~2yq8}9{|BMmG;2K?e?9p7?q zY;TwyI!Gs8`dHlR`oGX(A7o~@%=Io(V9B{wwg}PRpoQncNS`*}V%xZyxCd}*N9M((CIOMWW31LWdMA~z zR%i67-^3}YByyUs7c~>=IMqjTpj|P&}NcGDag5&xpnn@H1wA`9V;RFknduXWKWsmGP=JsPC;pz|i}bKk82-b#&rVCyg+CUmH( zFFc+1o_)GAo3!HJ3;_E`4A`hW&nbVPuBtobKJK*u2IbH26UioB~SQMRNw;^ex*>9_!V!5v`vCjMcGhp z=c7c>?=*0=hDWuhYca3ybk9PUsXMPMQ9b#KWjqTf*5*8YTHNF8H<%B`Hs^V-{t?Nh znw8@=8SKc*=4vNc$NyXsL=9j&8hjNaXsZNny|5;s-f+C=DQ3$e2=%AR(I#(K&8LGH>6%y2fdq!)*&ia>-l>W#ZG=_XFE(A_}-%a(HsP zWg6tVrg6>{GAsSBLC62$4HvGfz8d)#t(&c5a9AvU`dQmmS#6RX@gf%h%g;9ARxZFa zeweEMHd&~-(g%jO^QUt}-(o%WVSZcQOgR5ub?lknAq%-5m8IE=rM3gg36+(9bMCn*Pk&R^Pa?c+*WHxf*~0c&_YF?hvJj?z zl=)G0juD(Z+h-PZMO)}Mng;xPKGo}oM$CzU+xF=UZs40&d+D_i8YsObbz~To@MGhPK{tHK&Ub-Pya3mYB(Umyei7=o`)}Z7`*^vni$CaR z(r!|dk+GM3gtGvw+^H#_0jrY)q{4VL%lQ#6$B+`rHf;nQF7%lBaL;OGakvGzl_(DJ zTGFZej1s971e9qAR9MQ;0?9<-%IjtaQK5rg?`Hd{4NYE?e}TX*KQr&6K2-}fw%Q0w z%vjAT7vI;U1F+#qN7RX#wvACRGmN~^(CsEVtAXSnZ)Gw_kQA$B)PaZ znO;#Yuq7K8ieh{yz596Ag=fx`8;_h?Z|5nFuww#<{?9!>mWHvUJf}cruV-GVA@t=O z!T8<%n*TYMBz}?P5WZU1#LWcQ>rKBe<0e8=Y@Fu`UEjGK(2_5^G0{kUo4%Le0x^|& zmV{UWDN0DaM_yq?dzm)sHDM#!b2mbHlPt#VLUiWm zI7(W!$pT@daebSkr=%mONlLiQirJ?Xt-h+z+Px4p3N<{UBD8jOscO~~>2kx%7AN@60SFC6or^HjcfO!>4atvkZ_u}2Ryd>K-yd(5DG)L)4{Ty>@lQn!T2ole1y zJ7UbnjeG#)UxV|XSlMk+5)|bffadk~5rgU@oH}2gbEmF%^D*?a z*(?#znOwbn6#D;;Pr!>DO9x1#oHQXG+G~3Iu%+Cbjr$g2Ri|LLC9(rzK8;gf7ADL! zp#ZKEmJ^#M8*gz8&>?*YM?A)SrU^%miAJGVU|K1Ncthu6j^o5H-NOOSnUDF;FhkY?1P@a z8{?i>ne_BP_N1zuIBd^s)WzYsfoi_$M+?_aMzJy)^9V|clRjv>#1^%U16V62*{~7lZ@x#AZ<_| za4}6I%Uqt;s7yVfal_tH$-6Vq+b+g-&_8%CXGy=RST;1JDtSyIwVN#^%aRb` zp_oLB<6boTD(J5hsmJE}<9uASJxp zjlT3~)?5c&d2IH-+kMfc1^Z$nI@l|Jzn55Skvs~}b1`!#)V6-$DUj9n^p?qIp1Tr* zhEF78f3W6uBukDSk}pe@U+HUj$%*oAmkMV5?q3K@O)ZjjsF?eu18%BnJsHKY`8kw2 z^dTJ}eZl9mFbNVJKZ>lf4Ktnp|&muS>ydE492_>(e4^&96M6+(bpIe)$R4MkpS}lo$h|-qzxdsQDcv zJqWw4EHBP2dugpwMZW+VF8q0?x#lzdbNmzhIAWr+z3?ZI^I8+1M1Mv$X(TXxa54|! z3o@8kv>3`X^6oJUmiFrU>@0nE@yl!NM)czs^KewTsfFz-H5v`bE~fvj z3d5^s6U-_|z>`WE@QZZ2*ppgbV>dC6{a{IA-3{ymB{v_7qM3mBF9*mW)xN;p;h)+c zgfUsPLlSQ_BHOx-#t8_11F4%&Q(f4Pd$oU=>yJ8LsU&frhn3&K>GwS^eQTJ%*S6vV zoG*-}2;AuU*$o?{380IrGL{j8$Uegqp#v(UgZZ&RkSvJal$k?1IA36`p>QN_l+fQnbKvA0zP-E-{c0^vjfu6&() zDsJNl>4uDzFlVtbeu|pU1eH>vhorZAx3!L3!+dO{BGNaycoq!}E%*ZP$^XJ^I<3SH z^)lOv7Czx)hM39hNt+yX(Rk}vndLs*<}3_2nKgZ@k)rn1L5=!^6YE8O;S8-9^k8d; ziU-BwkK|^4Mu=SVp>8Mb*HFh!#px2G+C;bT@+7%Iydd8YKDFkSY$Acu*0{nP&9e;# z5&ZT~Mf@zSchacE4Ja9{i9-C%zfMio?#a*gC z^r>WF+%lw&6O$1gys)7DprPVwOK_UpF3#_m*Iqu{B|!Vq;FGY_f5IH5F1y+;;qW>G z%?tfNjPg?wUr#wNA&#}ZkOO43@E|cnX*q|q_<#~_l%~-TZx$PCU_qZ*;~zAL9##9` zsMpxQ@4>^umIpFtJWG6Rrgn}~o-*BaK5eIOX1fh2=YQdGx@Hr({!#dZaQo8P8x#Ad zn0j_tMVUByz-Y4OxZlZ(OG)ybH6~rCk%uXdETiV`}@rP zPiMXwrk3!d>GY2j(zwupG8X!c>HGjEXL43quFlc-QN7_dvTwB!SFWd+hqmON>iQae7MA@sjqB*24oA0LjIx}P zY)jSGRn|zBJIs%CVO?zkJQsXN{~W65(~b^O$v&anHOW+$}y`sAsW@D9s$ z7tx)IpyvA)bdUdIA%=>^A*TGeunvK0Ka?5~$XVE-RAuIkwVogz49L^H`yHA^&|f-? z6y=VsTFfQ4#-{=}Z6J&nWgdzu#|W{4}{b&!jU&fhX~A{4-T|S-T&YI@R}N zg;jIr(x1)X?mSBFRlPtP@~r7+eWIxcrM}q)|AnJSjagqZjl#s95^9axnX}?z@1H$% zvOjwN+3FbwJ?lHuZ)zw*h^glQrE3=r`;tt^TAd&Dyjw+MAM3#f4Hs|Q86LNqwNGIy zS$mLGn*4@4p{fu;^grt=8T(}s|Fphde>ZsKD^E7``jWBcY=rlgyF5i{K+IiAX{IF= z*Nrt6zf5zTKWH~=3{Vo;#t=pj@*?O*CDc#gz26Un9lUV2umjWOocO#$cR9K58^C{t z{AJqi{!a_+g3ChIDwo=r^uMoTlgIC}Q`jLJHTf*wo-5ma*e6n>lyFp_8Ywst50Qvo zL!$hTT8;gds!u)w+A+1ow>QFKS?DqHtB70N-jI~E zPP2kdb;p+KjY;HELHhdRB@hNKbj5^ktypbNpBj0#u7POSJ!|TDW)sl54})?D!(L-& z4fW%H!{XX6-HR%5mA*^RZ?8n5MssL_L;>g0wd63S)iBe>4(sYo+zgWJ?P5BhVvwKFVF!~mZp04;KCAV&+4 zy_-KynQ5DWHuT9(Yj{yU=?g8I9<7I{87EG3CX{cu14TInGlqbe0urQWBhS&PHR_D< zgABiB1o_uHS+12-jKJ`ll7opDn4IMR#=exFuA6sMGjt;#m z*GbT2WY+~Uem)2uwGaJ+s4ITJG0rj9`mKGo{_ux0O3A)8*`!+co?L+bmjmjAAJ)@Z zLx?rfQD&6{rrXBQC?x)h8aGpcP-&Mil@r6Y+kV`ww}KVo25N9^kFCi|0#4$%<;NR5 zFWSX4oaCmPb}~p$DJIFz@Vq;110S*3iYV4qipd+3avyNn{_h_G@Fh;Y5q`yH;q$|3 zZnW}&seGx{#^9fz0pBj>qeFsI3-r7`om?#X3hJWE2oUwFu+Um< z?^LA+#1M~2rn4%=*w&xhaRdDWvoPO$Uzfy_@9aj%<)Qh=K~D#An*VX?Ui)O zrIi9iHV4w8&|l2A*;`3%@vBql{Xd*h50iGvTs_E_adPqnzAq_OQMGhQB6RUW?KSVy z)?tSGPNy3Z6}ZvGnRp$x3z(Q6DDs(K+s+sm;hQuzts%$`yR-kH8UVY%(;{mk<&szb zucGZCPJ1Pvz|P^+XS&#N!)GZY(64%b;gd_Gkz~K7npWK9hN`w$zHWccZ?A~a@j78l z4LVe*fh43_iGK}y(*OpwJWhF7H>c6JcsArSyAejyj$}AT*g0F-E@%~!GjwG3^<`Uk z^Rb2ndtB6=O=QvI73=kPH5=PsM7gTP?SG<6QcpAN0VlByO^C=dE0B9DjqiuP7VH!4 z;DN}Vu@I7Cq8REikDjM%-$F9ATS9Qd4Ny#YRtyDgHcv>dLVYExz?u=!O(=z zlp;Ju)T;3eJOfXxsIl!T_RyG9Glm1|=sBM73QR%iU^-*>wB~b%S!0oj!QIULOLzZ# zTF`2gn9ocM`a&?D!)?G~591f6OJ1GKxKpi~FXv59i#SjNw(JK<=e%f)v125m4ZT;l zIh$8MC&ulmiTPv%e@0UO?Ec}0#Z}gz7fe2hF|kzWb8OewN@Y@ze?5B6r0_z@$g7!w z$x-F#nsk%sW4MsvgxMx&-bC{Q99*lj#!^$Q56hvrEzG$<-YpZzH}sU6VzhoxTNvSSAwS~_5!Wg$^4NP@pN4vev?n6zmuGJ7weszd-iW z?x&@7%$d@-h-p%5tDT9F3$gtDv*Dzz!!kF|V>^iJ7gp z%rci?FvkjiA0q1ve%p>o;Li_5;0&=^H}H4uKx z$($R2`3Ji)kx?c!r-pNVa=Y;T(u!s{#mR{@TDO@=_ z0B*3I((e8*#oBmUXhjlj4@~Yal4Miq47Ojz%B6|{=Uy;ijsI833(gzlZk)jjAvo`N z>D!35$7eI#)kEIM`|0-eH9CfKUmZ)n{hv=vmi6t=fxkzGe#RF6c_VxhZ(u-JVSM>d zUNoA)I3DS0=y$rmh>g((QU~&*5ip6g@fGxaNMOdfUn}XvS%!8P~<1`o!|m0SmC+<&S*iNUlA%>MG?@!s=byY2STho-8xh1Vhl>J>dQ)7eQ1vwYbHe z)sp5&Wu7tyzj<*%>ZIAcJU;gl-`u$rthQW&!RH$;%Y!JHe8B8MkH@g&UQz+dQ@A=Z9kmvJG-_Wi<=?U#mx+_ zgY<*vuXO{9HyakcP;qG3)?W{|EZaB7dRFvj;|?H6aWh@dh2NgUGAkhg}zO1=nl!h1HdrHTT5dL|_Z zD?&~1fdiU@ zi|SN`1Bkwm=WfjK$3QpuQCtYfl%ESd5nZXUR@!ySPyP7ZlMG_klcmVkCg`JTP6-~D zE&trVn5v7Q!YO$Mh>9RxV9Lf(rn`&yU9DH@sU?^kjYS5A%QG9=RffZ8udyVjvweW6 z^(qME)>aUaT4a~P4l+Bt@v+WWYj*ir=BV2aBPN_kt54@M&E62z#oVT) zV+Dkck*$UJC+d^K5@X#%UQ}4`0RF`a&ZX-s=~n5MdjE$4Vn8vLH4>B>$=Em5JCMLj zds}->xW0Ob7RE8{ee2W5qpB_+Am0#hV^G?>pGC@#rRLQw;fb4nZbt=vF&NP64Q)3u ziLNBfEM@-Ge}~TB6!SX6S$I1y|4EOeiR$s1&ovtZ86)!kmZd*6gV` z{xQz3%Nm8EwK*XIv~D`l1GL0@Dt~j9$2)ps0gX;AO6PBmps%pk6h3?SiMc69XKtjW zHK0K%0rO12Ol?~j);!Xh+&wCOCixM45wQeNy0?cba~rFOHu)X|L7vf-4bf;hxj55; z@Q0)N+(fy6qYGFsZ)?mL&LDop4T}9Dpgk_@M$v7-g$fhns~$(+ zo4UGifV=z6O@O4IuMTLj%bSnI5JCc*_)h* zs6Kph2xcH*d}y{<*^ERfR9F5P_)ytH8)ERU3gIIX^hStu+bgTOB z7n5wP>Aa}e`UFG7P1~kRz1U`pX(!bm=H?noSXaX1G0T1br-kv}#7T~9V|3IQVr;?N zcJ>S5&bhKY*fsC64Ix)z=%+9GPy~AflXVA@;NhcIGt(zmiAHrvcwgVt37f?3Q;80* zqNxn6EI>6k5#`0{H_vE<#r0@y9q$PN3Y22LvR{``VPx8A`Uh=V5tyHyZ_{5>PBm1R zkJN50*>S{a^Vdil(9btj*s;e5cP4%H22GOMG}B4H*OXcWfJ^5q8FqK#zDPiS4G0&1SG0uc1%;* zC#rG_cYCtF)qP5O^Z=Z*bLCrJ+mrF@;f19~>5T2Ak2u!_f ztES>Q^Kk-Ak?TkeH)aQEK!`1RGgg8&LQG1{=BK5xhCGdJ>%3+2-SV-h1=rUZ=;)pJ z$c?>owLFVU;g-D!8Ykh6=2H6c`Jc6&Dca|?2F&1&i4Ra;%us~j#O86c{0lo<9+k^# zjaLz}%VdB8J`pOn6!JoSB2C4Qa>(FTQGT6|_8JLva?hi29Y2f9@X=^w?Pa04H#?)3 z`IQ)zJQrK}l2~z% zPOQa+jc#^YiR7Cs&yx2{{>&vfsgbVAgxh{gIPn<8T9pRuPe?g&2qp#mUiP(Iz$V8w5QsI0${@8cGk zwj2CBgn3oE9sw@$iy19a8N7yIK=n+|3N4Nj+)E9kE9nlTr;w=qJb?-$+xU0qla+$- zqI>U424Sk#REty#$%itZvMU(svk^Dv{Goc)B?9&_0HaZIJcbx%C$B-%mXN!jQ$yqX{+?ZlR+-S z!ve4aZGnkS3*P)Te%e?b*y|$DLg1y$b0m{(I-cVbsqt#XOnUiuihcc#&@*!Tk3hT-5FL%-!>0|_jr56QS$Xi1?$(%*kb>zBb{mtm$IE+W!&Lv&*Vm+a6YDX>+l|K8Ge7vr!jV2y?*9W$QNsi+WCjtD_ zpc_|#J5s)A&+Bi}@ZTx5S|~}{I_yzvAl)ou&S3QdHoLYps8B{HR;X$V5faW!dflpgtO}8AX#o#1Hs)q_Mvn?O& z5D&RbZCe0SQ5^is$Juk8vOzm4eFqYVCnP-uQ7L|dmC3*<%K|G5vdX7@&VHMpy)F=~ zS5{QiB|m&uaG^RgO0tb8h-zdbKBOBNi49ugpSjL5e0wylhB+_+{UdQ0>{{97m_MA_ z_Xw)sy5zmmH+ggY52ncRgb$4ltkg~D@TxWxdHqp?tcq75Mp%nH2W)f0>@d4xAA@9m z0USo_AhO#+P*_uYK%_+b-l(oG6nq+9G2C^vS?sXmqJCu8sDWUE zmUfevW6p#%lo_Jt27;t_pSw|-Gr!wJyY88&$jD50hkb?*9mgk>lGBh)iQ7WA`BL1V&fftnYdY^!1;L2|CTLhc#_ZTNFf|T|+iC zH%G!Y**}KNAcWXZuN>n@Ow2~RtDty3@5%;PMWa*pi_>?&3pLcd`E#KqVz1!#@`)`S ze#O2R9TA~fpQx_H+HM#XxMfj+4{^ZEuE{-SI(PmOso z_GKMx4J`9PgcoGP+AUryPj@%vfw=)x_;^AExqic(5?hhM0W@#Z4&amm^;FI(0^~tY zga_ZhMrqoV7H~NUWkB_rylggOgDSnZbvq_eN*u45Ra0Xwd2c&5xgH^QJy`LyA~N*k zaedGihBz4YT&2@^nE_^Rdl~QUWn6bL5efinrj;u6=91PJ-vj{mkVAd3h@+ z@VL>(4KkO?B{%jAvpi~`k>Gccj_N{FBnjwk8Ncyfw$^rv7XWTG0&qSLZ^Az-YO37POuO~cON;R}?5a|6xSb<^BsH(NEU z&VV3iuG2^4)Zl9Omtzh4I>Gb#Swx#&SBy$qpWb4fRl8bL^?qSQN-?usezA5h-5XVV zw!LvH|FQH)W747Y;4~Wag@s3X=dBpFJd<%TS5GYjaAks$BR)3#g42=FQn#=w1iA@K zEEsNh*WZ*2Kd2hhZZ5^3nwZ3S-V%4LA+R$I?J}yvcKFeF5N1xc%V8+;ilDyMxdpCY z(gUurE{s*kUo#W-X@ng|MCr=A}RRgNcKUo4&x(A_W-@O3HZ_H zzE5iBjVIO@fSN~Um+CAw2kRgwFBf@f-QVoI%ARsk<80K)^&PmfQSihvj=@O!e>}a3 zTaxMf#{HdXv1QWCG1FW!%Vsh&GtCW{(y}r$rxJHdOiElTL{tQ)Rn3LWau-TVD;07< zMFm<^G!5@q4FX1Uyw5q?QT$~^4U zE9rP34MILyVa~|W4R<(Nz*+Ropip<0Pt_ko3DLaa{PJPv@PotN_w#9sKsQS6^Q)N| z&P1$j{Z!!hY+krdb>={FC+*KcQ@nkM6XEldEm(PePfWyAJ8N1j!|j{`JPowuzK8mo z5VD4i;*36HZoRDOrC-C;C1a=)OB=*vuXyWL1c9+uXF%&Yl=%$Q*-TF-I*3+Q+*bpc&b3>d_%g5TVB zq8jg&vhH&7PSDYCy{*tfdvcen{l43WlBaK9#8W}*be zI81EyfO+V^)cJ)VD~7V)RQ4^7a!dYAG{0$N%3h)r8ZJj0FVodcK@h7X;j>93!-esZ zxb?p0YJxxfvt5bN*Q$HL)u5mbKJkamW(-A1uvDA-{JYrOoD z)9Yral9{R)rlU@3vz%3;`oj{jpNWZWEo{h-gUrb2Vi6$R`K!qy_j)|w*2-ef0A$KG zn~ho(T^OuvnnrI4e_j~QcxW3X$+th1?xxdIbQl&9@xJ-O`u@^(o64VwVW&b}bf{4C zL|_N!SQRnEAL69Q%MA9lY+dbbWRuz-Oz#^RwqzBmF@)nLvP&$*lgzD|k$Y_!+?pPR z?0=j+?KvzzEu$N+%QO8geC@r_53tp&XKw$C|J}XgXq{V*?QsaWw2YtLD?3;9_c8j) zOt&Ok|HeiZ^zqA3Vu-{bC$77Q>uBfHugp<&#Ms4#RF-QYci~r>$7?TJI8;PGK#CDK z2mi^bzKe`Vx)%P40FhLWl2e#I}#4(od?_PoMFy7u=1znlrB;N7Yxb z)WYLl$%2g(2praVZYD>Y4bXt?=9_M?knj4fW{>ZqszJQARhBOCR2`n7V`5dhS`#$} zj%ND-I7^ob;Cyt^ugNbH)U{Z^-k>X$Mzo5z{x??-6%8SG@4t3i2&xq|cdh&t#?(RN zYW5&_4bPGNgwx2D6R|&M1KIJn70tuBgEC+oEE>N&YF-Ow^h_8SuOS0wTgq6Oxr6h= zYzD0hAHz;YnER4{saV+FJh`n1 zDLAUKWd5+4{h)F8X7s!$e^~mH09`Uoh(Ezeo|6~Jw@Kbe!;llyI;k&wxk`u~+|XvO ze4lRg*U2_lf4%{{2)z?eNlnuj-IdQB?hMc)CLqb&-`)>YXLU{zo_1SCg0Z+aRm0D5 zJM!U178N~a5jljdNcc_c$J2|xO}{_;+R|tF-zAbw<~;B~4 zx5D9qRo0T`dS*V!g-(hlc@TYI^#OM!hzvwknMF9(A+{1DC|o^J?pBZgT=;InVOJkm z{u!n+=ey6=oia&rpwsh2Y6kN8nh$mY+sUahmnFi8_^*D!U)))u_v)7HA4dBqTl$hd zRbqvT1sCeBm4<`_FNx5oB>LWZTJpT=lzR9+v4HP)ND>AC-;&UR77l6oxgWS%IMf9u ztVIcvR^5|?8Y^MO=EH!Jq419qBP8;cx61`qy_=@RizTdlQj;lx!y6wSxi)2fRQFGa9AjiK5)FWW zp+>k)yCd)CZmBW`qK!(ER;uP{_s;d?cF12LK`R>?CUw{POlk0QvH!)(#?!i)%J#Xy zEmwjqIZcsX8oWajmF#0w-%dN|qhjE6z!ln{;)iv=LcN%;NcKS09_LO}Gwuq&yd6`|AfgI0Z?l2y2ySWgPxf4ii)kR+vx!+o&bD{n!peu7gKyb`If-nyAuwG$2RxJ z>`gl-EI~gFfLwW~9Y_CoaKNs!5<&Qlu@FbxHZhs+Z*v_xsq%&8@fL=^^V0)_93IB8LZQ`eEv#w&xzv4 z4fD-g8jNjIk!Rh`A$2+b{-!;iwgS0rLLw+>kGmn2+(}h#w)_SDLZy$};@=Mrcebg+ z*Q6XD>^pT(9?5NIIVzESvo6GGB4NBzzrWwD9hNy)Z$B2q3O%uCtozdWJiB|ij}a0k zr5ZC1dG?h=z8|{WHI2TAGLW$-(B*)dYPuxON@hr`E5=lNZ5U0`;D+au9+f1t1tzsa zjex(@RnE?u6utLumb{s55@x(d_^KV;T9sMpdD&&Z7I$f#%Bf!TO-CeVdf?ypp&ONc zZry-?FP7{O(L-oawo~cMaq4CV^JbFQLWJ~wAR38rydFfq6BRfh-|)?ocy(7%QsOu1 zwj+`&%=)XUl~#7jufw%b-aX%HFA&En>Hsj(U&+~iVI~gS+itR)P=Wl@!qzbC#U&cI^WglBWdiO7FOI|;WZ9=qwk5Of>p7t<_9!zrorKY2h zntj_@!OjxDV8ar$U(z0bq=Ia7N3j~O$pPUjRx2#TH(Ll(LLH)_&ta6v#Z0N&G6NQ$ zH4xYT4SSh;6_F%$U{@qQ$-NmYzQ>;OcVO2)4vK{bj}ZHSAN4$ok|^hDn{}AoXMcvatbDFP^z4Vl zE@*Stu-Ig8slIi*`5fezF?M<`%0oyF5-S>|o;PzrK(<9vCvK;-adc8{-Iu1ND1I6A zX5I{=Qku$q-USt{hyF?it?DGNi(Tqs)d=ABYv?xW_f39`L8YDt6W=4n2z=tH*iJO7 zD_mkw8%z}PNvrG!9Ea)v{Pu)11hu^g?mRV#m)69pZ9Bz8@`t3G(YxSAYZr?xCZCTv ze^{!I?1SJBJ(&)bQu;c4mk+tG_z{@%04uf8=a7jje~&NT5vHy!D|A-yr+%dt?YO7u3{Z`%~2P^2U(R&>^`$|TQqW}H- z08kyJ^991hM{BKSz&gG#_Q;++j<^5S$<0gDoE$=Lp_4N$Q+ojA{?`Q{=gBoU zR9cG_>>9SE{47Liym{0l(Kuk52N-kAfmioyL+wEhZadhyMC%VbtwzlQzQSt%0tfFe zLB3S~_5*GvstlKvGZw)HveqoBp{t5BqT=mDw|EJ03!qhH-%0srGnbV$sAp=2u_*35 z?z`h}%O4YjWKRHlCH}N|>ocd3*%R=i)|_w^8F|3hXbQH=6>;(0jy}xK>Uc~V_n>E8 zj`O`obf1s0Xp}?wKSBEo218z?4CXwev@hfU3cWbCI4!qbdQP1GMjhS(Ubov8y9BZY z`AkH_-50HhUhDY-VL`b)ixKWQp$T{|4)T7XkU6tWQH7z$Ou9V zEuZ4!;;SN6qq)&eF5lnk7*$NH_>>ZKTr~O?ukG^v?H-^QDI3Lx@G@KPmBr3TZ+xc# zZ)x&)W^n%MPR)CT`VGesM_N(o)OJzYMv70LQ@C2kQcGKJ*E0&dE2CxW?sNqW-jQ@C zMX9Q#-RrP23{pJzm;cc7-!Jb98Y!`tWN-PZFSV}La~uP2h;JUZorL=wV%x#?SDWig zDlx1#0rZ(?yOSaYJ35B7-WO6wt$3f4!SP0T{|_YE+f>50S}j&6F%cM{&1salHso-U zE(gjtBHqPOG}-4ZM;ZeG51I&;?;bw0;a9{+8J{$atnyy=Jq5G_!5QTW0~D?0Y2{Y6 z=J_a#?r^c?!KF~H-%2V-KXoCZBVc#?HTj5@rq?fBF!cmHim!PRc~b4GV0du@nhz6H z-G<=5q8p44gHDrM2}@9}jlAp@i{DK;>oV?_8+XrJNdF;A>=sNu0JlGU!D=1)JYQn)A|LMl}q{!?@BNK4XnDafq|%@_&X@oV0%5yxa|aK3RW19xzC zHmBWUBDzH_ZW#dZOC+kfmLF#)_+uh5k0j{0$ZhfaT8h|735$*LZyTh6f|4>PA0kZV z2rV@YYV=*Tq@ik_4)U~LPfo+w4(rToj4JQGIt1rAQcjGqhuu6%ouU%TZ)TL(H3^{_ zKR?KxuAgI@6ZyZRToUQ2`ge)6jN28)cVGm7u`9hwIRJU2M)@M_ z1q}uK(}tB06f+5^xSXmV2wMK*ef4RK?3fYV+2(8!J@d;^56GJ=ActH!jTFar+qXB- zDoC}q#a4#RK|0uFlQowU1gG;%t$|Ctqd|6egOYC~>NRkGY@6K|QvQ(p?}YJsMRbqO z6^)UD-$D&n0z@{-$Y&-;QaZ{Gy@wQ;-F@@($k+5haM{?9)m6Gzg%(QEtH1JAJGmO*Yx4!* z^kt|lNjKyHA`yL{UOlcf*TflBwjBW7{g3(l+{B^7-f&51P`E2SgC0m#dBZR#i}DLbgW)7r4smxcRfQZ6AN8c>H*vn19tR3bU%9!*b~qMHKVR5@x2(S6 z($U+I%MJOC(o_R*Z}yrs}GS1vmU&6QDT~W<0u#! zVLBGHXjTkER~^}9@hkgOJ^tFRPTdz&=9}lF6!gl$C2ir0?&%c9%Z)!F4QSoDkYGZjUUbcKM9 z3c4GtKv4W#fxw=)B)31w>{(;cdmXorPRE5V%<(_T_F44aC>TO%VWE5gcS}v~byzDQb>d}!wR0O{RS$Jy@m z$aQ(GE%o+PROW<%qsCmL*eRuui>c4e{U^BFw6{4{j=#Ywnjs5s^6tgLeUqGB+-_Cc zdX62iQ)+XjGoQ1Q#+T5)=thdj$I8Z1+0DoafaE1*cG2%wBL*q^k8a&`)XSfga)Qb*ZNv1PD$linb=Vv zl4v7Yuu}}W(kltuo@Ubl$pDsV4g>HDcWwA!t{$^no?g{Cu0PS|#k`rvk=xS+_k?pe zk~*EIWH{gAH8ywff$x=9pewoSyNCJAqXc@k?QTnN+7$ww=_)+tzwUTiXjfsD1poMp zxxHqMoa(nw7$32ePMiix*S;aM22M&%QcxK0Q?`6D7PF|O8ZcQulziUP4+M1GOUb#? zcw}OucJ-{u*i{rJk+OW+_-7ZEqg26=c>XHH&PW%;r5m+PjQ=C|$W z%e>e|E;l$>CA|gQWuZ>f1I0=emDGMKl9i7$>XkPxcMu7MMe? zlY|TT4#BXK-P$lV_Sy&l2@9#h)oQzgVZRP&q~M)8Fl&;Ql9jUohf`Z&2mIIN1=3?_ z_MEr%(f-2tN)7tS>c67J(zTCJf}?#6Gb>srHvochE#TSBy}*kAmqTk{uQ1 zjl0ym9rus6MZHHdDF>{%Ml)Vca+*;J^MKB>ABrSIhwA4}%5`~0G&>t`g7>}7C3pvA z`(!e&bKEBO?}X{b%zv6$V>U2p%Y%Td^>*(Pc;uGF1&w2r%L7^v8A_Uj?f`*iOiW@G z6R+E8h`4y6%eB;@d@gI14k+C-(g-HB7sCRL#czNsh&9>#PrL(9M%;i|+DSt?wIekGlhO3!Mt?U^hlS@$ z{=M(EJ9y`trD&5c)810q!5mo*LGM<=-LgbLLvxNX3Ule1WPpwaP5xOLzp@8m6s8xm zY54}c$d>5=u?gfT*XUK2NOxhokvO&`VMRqsLTwDs?*M0p>GN%J#(O;r{m!;rKc{G@pmF&d756>!a&kW( zpZf(<_LAKW(vkPim&tb#?kJ8~H`~-hV`Bw%mia?k_U&bynnz&#wsPv8zXSqYc=Z{dp+BVxqj! zpW|+PQ?zui__e-hKVK{9R}x4dKFz-pmnAVVqAcy_H&6rnN=Z;p=uAA(q|XUSOT*5S zk=Fz$(b}JK%~*<;msI(q3-ob8!;!K_h1Xo0by13c^i3*PQwCST)U~alV2|bXv=g^w zr+R}!OZ2WQ^*LB$X#!a2X)+DMq>G~pA`)`3;YvQu7OWHZxIKd(=`pG63VPbzg4s9; zP=*DE@FVff30H2S!~WzuNtfeta$7x*HyjVjfyFX!sIldzD8k{+$$D}Avi0EOKy)Kv z@!bU3gPNF7*w7EE^!1vn*O?y^m0x)Y`Q`5=ei zNe-ejex+}QCJQ_}sk1|0J4Ob5ta5!FbStZd;^ek0%wgfk`xi0{Dt6R)F4FHloAy$N zcV)Th0?Q?_3AT&&Q)4H&g#Bj9?idYDIn?I?=I6^k$KmALX6<9a4W|8YK-bZJwJRp3 zmqa!Xrj)`hI5V&J5BHEvX|m6<5iI&zmLjSlbAj0%#?Y`Jeg>vNK|b;_eZ2Q8z_g&0wdfz1rC*D} znUygVI=v5rX%-f&eDG(ou^PmFC8D9@0og<+Jnx!QHqg03T2`CgTyYQAvm1g!?HvL8 zAAy=Qzs(fFKWBBOC$-~ z)lYBj1-nMrxa^$OyPec+)xZ9x%|GwW&3nGFJqB&0=!~L*&p8hJv<#;Fq9c12WU#Vx zf>AT)>Fo<1)IiPgAzcO?g-b`*T`q~h*NdCR zhQcTOzy;T?bRC!rfE{FO^1?qmo7fCYHm}8Ah8J%|`<;@^Q>l4V({T%bZnv%C?oRV1 z&Dg>+bl1F{*t9&R!zmmlORdQQUt*n*{!}z529s>n&|MYR z?S(O(2A@y(tsDi|t@!yj=>gPw8Ih~pl!m!cifk4S&)of>cT2VluV!`Dwj9U$237Xt zw?@T2BRXjhXrX622GrIE4o47R{`>QrvL=5UBk4q1ooYoxRStP|=wr({vyI~y{B1mj zJrsY1fU*UA2l>Ma-eOw*R?fC|vnsWh;zt0=?~NzcZL&GAOjC+ z;;rM+axm-!_yPrYO)|LwsqKNQbiC}|oo_B-+NNbnT3}UzA*B=HFn*~3ko?PDgc5WH zq7Mt4sTqoZk#4es9;^l0^r8AoK0HQ9Add}IZs~p3-@Hlgr?af?Sg<6;5R)p!S|s3R z>237*U369~?a=ZW8}3to9V3c&P{lUi=fpk*q6YVa;cX(~r42o==#mIr-sI;0Jx9_H z%_W%pq4@eb_`d~?X3s%d48=aXgR$LiuYl4VE{OMe5hek5au`v;^1nTFAPU z`m!-j!;Gs&Zwx4ehQ6}4C+w&Hedu9?atTX1V?gN}y#uoO>Y%&@b&uD5EVX5UXlO0# zsOc5`19msMi+)^HOS%N=6~E~zV83JxbNtzz*Ital)-S2Dt@@q4{Dpqal1V6FgKjI; zy|Dn2ao!D^Fvb=f$>5)_bd#r*!QS293Wl=fQd!puMRcu&KFj)j}Y4U{)<22dv>o4%DEZz5B$HOe|gNulTGX)E@ zLn8)&Oj=k^L(U=xNVDqaP)k?wH!?83N4tR~sMeuM@SliB(^ecM9iAH>jAawwNEq0#;nVaZsAKXka zlajuW3oUR{fv@LR%DWkU;tFGl+R_}^XkfFIO(T%3uS0FeSN3kVQ~VTI885Rl^Jp>STnArfTS9sTaw{THK2G|0 z8ssEMWPUPutR|QUiw#!&b*9W?Y1Fr3C*z@)Ch=O6ep~>G{L`gUOqjC~_4rk#6|3}9 z&>jM54}D(zRt#MaR1%UR!0})Sw6Q|I8+diXGebHo7ea_YNutTqTtcZ7m5aKjh2jLY zeJNIX2{NH`<9BmQr@lALCm)@(y@JEoWz8oar?`}v^gdH=F*AYux&G@cpnb*a2Gwm` ztW3cP0mDP1Lm2E@EPP_Ae^u=d@D`bdW3~uniCqTk_RHJ-Df%KS&9&s@b$0SPO=~U5 zcv-5oMpsiIg+NKi^e;#$y=?LfyWz7^n*2@;@=uBhK=Z*8N#esGG)$Shl9Pi|a7a!WSvAEwQ;p$H`I2M4a0~)VYH*giG0t3@wfW^pB=C81zU)VXWMh#}{om-fqR+}=fD1$&Wng3>m-f$hHuTiF3WGvR!%CkLnoetyHdbdc(=60$ zg``5F$!`e`z=1Nl6riB4i(E$)sR8swAPA1VKhXY2zY3{!EVfv0?; zw|8?xtKjBv2l`7J|3we%M-0L98YQo9>c0i+*LuJNQ%SIqED1BteauWkb$}dPgSRZB zlOEhC(Symhlm-2xgeK2#daE??prriCE5J^Qo&mayZ%oHBmAp&;I*ISczZ;l-Y0JJl zWei$>OOrlS@o)5|4xUe(J9+U_=wTXuHJ%VoAql?4>!{b$)oySetG;lroI2*_oO@<4 zN(sHJ3}EUS$!`U=?y~AYZ4NmI#}StL6R`W{q9RS6LQ#oUvh|OX6YDGD=aYn=W0G#; zDY4jK9(GcCjnm^`FzAf6fIh3wx9Q5whmZ z>}1SJ@zI{4=$B&>AjkaU$w{I(LTr5LdF_Lv_~6Do(z5MST7ixUW&&x_Q46=7*(PAN zl-+A2z>L=pVVf4v@tfO_nzA>LXKJ&Dtzcf}^sYe^JiGBGXsR#J#KJ0Y7RTYBx=a05 z@%h+5uFpb3!`5aXLE(w*1KA5y&0l3&nth_mpt^;}z46#sS>0y_MiczaWoM%Pp zt#&F)YA1QVV%p~^n}^FpK?WdlO;1sU#&_7fdW}hU3Uhuna43N;@wuqb2CrGYUkX}j zfhV>V3lDY!s3r0T#U9Qd#NJKHq4kc;AknpMck&0sNqTYgY2H!gK?Lv&&{YLipGr+N zBwk!Qa+Vg-?ylO&<^iO&y>xf^!YWi`++(enx6HmxODj}cndfEc{)FMS{U#4_+`g7o zXg5rRyOAp$^*bgK4^Nl=C(CIM20lVEl)=gCCzIzV{-)T=sY&{hU3F&_l%mON1AfX1 zmz5ztx-E8Jf9dWRWrKk)_MM9F1$Ie}HoJMv9t-DwmTAs^7$BukDnOqxv-D9VdOV+T zo4^Be@8{S0AL17PtB0kga4REHZS}0_+o7kn_8jn ztz~Cot6{SSU;Yn&)?<60ZFOD*$2ea{ou3TkmH$r>B(AiUZ$gLdA)Od7F18uJPJ%L; zA0~u&!yGlsA~XFT$xg+7=Njgb{OGKUp#8D+MgwlqAG@HDt7YR$9U$@t7@FgIgLeOq zn$fA3j%QcmmY)wB*-(kXK)${f5_qcTm>5M^6iS3oD-0qb-3n(nXNF9a>Is;WhVEHzowtLPNI)h>>5a- zUmGkgmg_^%0MDLuJ#|X7ya*)`fj-!%W4C96M%qR&MiZ#BSKSzuw&taT-}Ld)$K7JT zrW^}F2&C3lhHDKvlNYC+BSzJ(ED}s|tx&t9it&9X4>3kq@C(U&P5&@;_rFNl9uPar zfkR|Ji%3bKDzy>3-SF}=_}Io}{>tqQlGDNKzy6-KEdrlbRfkVWlRh1NcW3q_*I~B} zmAel-zGhra;1`UzVcUX0Y+Qm3tdb{PKdKQNGTukF$ZiBwfL?yAQr1R&Y)55witlCu zx!Dq(f$7}kh@(zFH~4d)8wVax&!!TZ)F`WLc-PY7_nxE7)eD02p>%>bDx~(-!4~_0 zB%X3Fecr^x>Y6fbI>;n)aQhy#X-X~a$O`g{YQ~3?gicX1E~#;I{NQ$BUsL%5${4_t z4prAMq!9E2D`uaz+DG@>9++zRoffinT|z~`>r*l_PNrGQHf^oLWD*g*XN2__L#bYaig;z4uwdW9tqs2KaD; z&itm-chf>=s?!0#Qjenr3Uv-QCDlq>|E4qIR?=8sgxc9Bu@9pFS2VEg;T5RBZg6*;-@n;3fm?d0E~8#_@b5Jl#^VHk=i3Hnlcq?8&(| zHzE~#e&=#0bp~o%cUKCz1!%kur|kCxSo)WhZBT@vvVN1Ktq8&F# zX)%dhR~a=;ddLT!Xib`h$Z-;@SOkJ_m3_j9?oP!dN<@kpG>r^VZnQXnJX5kTtc! zwgVWsLo5s-42%2XqMVH=jOMP1A2x(}coo!CbkJdr{0Gr@-urn_u+zzxvApof9vk!m z<2oD7fsK=!B%;D^y7$J$ND^MnAI2?CMsXMG`I*q4f13S3Rw^y|I5$|kr^iM?M9MI%qNZFhTAsZn8xq^uaP>?vLf<#g>KDiv#d$O@LGi;g%LZA&2HNd9cP?9G(d&K_T;~)6rSdDDWL@YQk$iI z*b_lw;W%LeKtkUeY8E&1BnupbqBx&=Avg(HhE*uiTvn1a1Sm3BsE;1K4y8S%OP>4n ztoXBo)>p@tm?qry$J0ToviXag{7YPpaZxR2)NSbMXq#Y;j6;DvtxhEQsXB|F!7toN z(7at!MLw%sb!GQA25+g44kygYYnfv)j9>`Vd$|L^;rW)HfsR9^xQ|wYS4^(HeF`bl z9oB_Q2>oVRVizWpTIoBYn}nDtRjVM25yX@ z*9pWM!woW6d#1|0kB5By0$e+`dT~GUIJ{6ll3>XrrP54y-+%8}#x#QT00XPuE?oRP z9E(q0z*Yf{Q5MYD_wy(R>1On^$R}FipDKqC4@x5@+B5)VO#3l5^p)GxwzJh6xOCLq zs2R_fXz7bSksv)M%u#%W04Wd4kXdhn*~;<0u9v8_9v9_jQ&o?tYJFG-5Zz_N+`>@@ zeos^vaa=jKV7TqgnwT3-Ax%%_tGW8jFwBLt`A@d#Us)Fy&V!wTs^>;`ZLP11)*Tx7 z%Wfie;+SRT57V=_Py2^MnWX34TjHGAiJt6{woAkHTm*dFZ^EqhcB!3h8vQV4^}`E@G+jb5{h}X_T7cz= znGs!+Y2pBzB@W=f$_6uU?$N#O%%=7^eN~Z%q4Dj|Wn%K{C+7zJX8^u1e8m9qwyG(! zmlfBt;Y#jXZY?;j$FFnM@uZ{*Or>Kkb|DG(+q`8ykaV=+fL+$X;v&c!)3Q=9t5IbC z#mvOTlzt5SO|nU*B))N&(x?Nh7!o%9f-#r z>80JD$Ju1&lCkY%d!R;;FffS|A$-43eG8D^EaNoom=u55(OoMoC}!F)x>riZ;t;x( zpnnQm@nq3Nd^azC(W(tb#vy{ImKeHMK&4w|3ec_BdeoP!&qmF_SXid9FzRNU&RsWo zU?g%DeR!ORxGDW>ls-vBim4IN48`cZq1wipGzq0L`#bq1Kb)1JqD)UYx3xs;lU@jRaZDNJfgzG%YhuimdGs$38lkK+=M9jpjpJ=^ysdqkW18Qcle3_}$hgpgm#V!1BhTvuTsGoSw z3S!k!d3Je!hDKfyd>gL=xo{8T^fNE*UeuT)Yw7*X-bnWzf{Eez=sqLtQC{*8H`6aI z+HHT6$=IBA_2WdDU8WlY^<*CJ*!-dj2_+1jw5X7lcB=t_OO zQn#dg(UVDdehb!A?#cZfMBOr6=mOL{T;)iP|E<3|HMK{6^eSkYvgL5n;g!iiu~mX$ zQ7x|$B)6QoN)nE`cwMGE8_In@Uu=s`zua7)*o^NgO0^ld5X$TO$XDzN){4~DmyZ+K z?WWZKCEot{3~=e~|8y|^XP-n{vUML=0m09^NBS(AC||t>!(;PXZ^zF0RO?QyWJfng zRTr7!0Vw@%3rzEqwH2@wo@Pyx!m#E7uJG}#tryXr(0&i72fAVRsUnr}8x`{)tMe(e z%+y5U^%;HHzfTb#GBAny^9S9fZcDALGbSa^TEbTe|AvlCy-aA|%q4FJJ!s0l=1iL@ zf?d5&e-gb{jGSa|g?~Dl&|c(~ys!+!sdE$q;lq0DH_L=MN6{M!+i2?mnY#Qkgo~0TT`zb#_&?$+k^;rcP`dfFKL4+3m*OBjnRI>aLXhyG2#x5}EdNR*DC? zTBGM4;@U9s%yH(3JOOF{wSh|$7%+Xk6-{*LeA9bF?uTNsblT&Qw5Rp!JBmdrTEDq= zY&Q#j@HH@F4s#8~LhyfeW9qm{I=zaz zZ$^bmQD%pu`7PA8UtP)YPc~ee66`~n#ag^+Gwu1LMi`(L|8Ru=w$|s;eA4{x^_}k5 zm8VkP?908BGBxZOk!idAmt#GocWI1m7c+-VBDuT9+yhuW4>0M4XixMp#93>++7o?% zrcnCjMu=X8Vyq_c&aoTkM!)xTicHMe577xRUFGE&j3PQw2)$y5sQVLg1Y5diG219Y`4$(i`&)FZH@G zL7X5nbxew#t0<)jX4QSOnyrEP)W38EG$6XvLY?$qVcgJ!bU91JIv$$0H2uv=IFBU{ zV?xHb+VGo3IXE4f&Gn&;q$1BpRov<>%->hzqkl^fJ7mUOv=O;@JFCeiuo^fQ+1&G3 zFdit>guaE+wHIk3q~iB+FF2<@2s}`fFy$AKRRI#2+M9y ztw<9Rv|n0$VY^8t9oHNpM86r2vF$PK@y4zBueqZxm859-veRwcN1aF6j97^0(~vCV zu%o`l@wKbmy>qGYq56KY5A2B_*MTHA+1#QJ{tIQRn2j2 zDo{U3UCPaL=^5dP#m5D%(^S6%V)=ayF6_Md@9XLwH5&*V8&%YKYGAe+PncB|vxm$+;S4#c4xSIAK#uwZ z7hBZ3AAxlmzNN_DS!4Sh|9y^r`HGz2R)TDC`x1*yJmIrbCoPIC?tQ4m&Y3vIzOej0 z&tOR)-BF1`8m0E+gw1UW+ddOx`AA@2M%ZxtlE5}|Dcp!0{zbQMMx43TS=(r71BQJT z+WopH-4a?Hq3zMo?S5%}X{-Mz?P=J(%8ET15pP-LmX&89CVqNxfxg9b_*B^z?E9%E zvyZ8(%wYjxPct$j@zq25zNZkkT|c#yd@muwC<2EGI>f9+0|lPVhM7dQW!a z?qum}3Zo>19oeJZy4`;thCXal)gBl}sx}{`oT?$)24yS^eLq>fniGF!(a&Y&%TK&f ziQX+0-&A%w9sfs-M)ZB;z)F^z5+1E=>2ealUyj&Mr=Z)jmWU4ZaMpVsRcs-yRDIqOzW`Ervi!~J9PgsH zIC0LPSCGT_hU69Gbtm~GNLhNXdZU~v!|YZC{tYV^j9~8GNLBovRW!Q4tF)C&Xt*|q zFtG}sYAT@gTgDv=A5h@mnQ0rG+}OK9@hcDCa~i2FM#JM8`d#)ad@i z5Rf-0!94Zi{x9*)R|S!*3#z`&n#J!0Z>KQiv6rTrJ~7lW2`SxF=9v$C+R+$7ZQDBu zGih&z+j4l@TR&<2Wowf_nVbAZU=Y7@ivpon7JE&uw|P0cGIriJ@utU!GZ>0Nt9nBL ztTk_2`TK0JH|5bz_+sYx#C9<(c71#R#s6j%ZzLFn%h4N)l6Q++V=(jThNYPSC&IIZ z;F`30CPP9pSr#SM?>%*IW(}8c=bH+}1@LRzUcVvplAH|;dBE?JrRy~o_aKZ>SVdqS zl&oWffKu_1)U`1JAPo_O!ls57SS;~p%1FlIyyTUAByu-pMgm$fK&Jj*w@*^ZLdAoE z^<$f`r!dN0t+OF7>}!Cin_jPX-$d1a8;7XC~qxo?hzpbG^x9`MaO}S1!4Drk_F|7calBXI%6%9+i90 zrp@rLVVhCuaYyh=9`Ecwv}G5ALjsckSU0?ZJNYa7Pf3>=hmpB1YN_%Y1MH%vyK;$X zi2pI8c4Zj-TM{I<-^d|~<|OesFofm97;xk_E^t&1dxUf;^ra!}HIPK}eI=5pBV#Jj zc=FM{k`-fjycF|w0gyMM6sVf~QRDGI(@QNE(zKABoV6)6MzZ*v6tUwkNxz9wW}N8e z4`W-l%@PxS>`0D+jsZ7huJ;u9OchTp<7$cCAivU~0xKk={ti?3djf6YuJ4ufi0}m5 z_V=~-H&3K`zz&u>_ZUuIN=>l~xRM<&E5}+=`0XV zU3kvLD0-?9?gFRB>B~;a$BZro4hLpHn7ob{c&1fz=*IVC&VNwZbV|ScO1|qm*_;D!iPE*gN(Dyj=TJlnto2W-KD1m8q^}w;AUHQ<6ySkf zr+pk+?>{6JtSUdrx_k}n;ZVFLbNL##R*!?nno`ubgc@jq zNpe2@+48waWmJhwL-+cB1lJ#V)e{Zx%A;9;b5zF_InMa&EU=V)IrQXJo%j>={-?W~ zun33y`qd3+(}{xA0X_eh_91>5Y;UMF^GeK#SguL8nMGbiE9yu*`!M`xgr)t>e3qsE zB^e4XWms1?w+9T!9(PUn7nIlHeva@m50rU3DeEgDiwP~s*)F6{pcAEpNp9u)3S z<^T5)h)(aV{JTMaqkB}-Y|u4XWk&5PKZsSc)&aCHOzNExrM8(dxrMvJ{=xYA_kFytO|R>%G-xd);JuMXOzlbE zzyv?b@5}wSLPtH5_#RLRC&fb6CGxqFKV9C71!D20!Q5(E1f`Q=_4f6@VeHRN;|x5o zKkq0|9KmHjKC>>qp7O+2cPE;ARd+6Ou#(u=Lr0^UG z>DOn+B~f&8_c;@BHDeG-ufQ4F`X=LTPg-S{D4X+nrrsupboG!_*SG`#Cp-GqEl$c$ z?`kh@D(a!Nw*y{i;EoP|>hezps=6VT0LA=!i;niBRYiEATMWt71z)huptz?5Dx|_xP{W+2xU8 zS?s5VD(C^6#HJ1$@0w|;k{pY6SyjTi%9WO4#!HBJrz8%)*CCiP(lAT>V~#ca#cBo< zqC0nyeW%8plyFZYRuHJ5Mo+N3dbJuAh1~&0PnM78b$%@`)-vZt#jeI00)B5Pl_-*b ze%t$m=ZHrM7HQ0F@4GEQyBCw_l4bD7k2glY-b?D#5xh6#HC7D^6rs7vyOcw~NXbYm zQ_D&q5vH$v}-$<3avVp|Jz1J&f=lxhR>5=H`3v~bfq2-RZ zyOJ`^#e4@pa{e5HM_Ht7>2ndTXq znMUmDDy(xxd1SbpP7%6zdyAJ#Hgvd^Z8gnr!x+Iu@O+Y342W|$RMJwVc6LoERYSsq zuI+1TSv$pFUj?*+YwY_8H%adMeemYW4S9gg0E#+s5svmDvia@eWn5B`c#BoTKf7tl zYX1*r98=Cmfw8C!(H_`u0!{88X^_NG(TKH1tMe-MmVGn9;ULR&QRjceU>_g3eIJ!F zh2Y)Tdp<_o1BksT8{PhmJ9l?8(E<;8!#{J771?-IlcRH}@VsW3N7`C+}Moc|Z7EXKZzfV=Hj_6!Y=Fax0DX(lltcZK;qJ z`4#V4p;Djag;z?xoelA>ZQHHK4D;Wr5cJb+)VggJCaVk88tn@gqQMS<+_d^%vagFX zv@u*}XWZ)Sm}ee-M&U%1p$vs2ACe}ChPWS0P|Mh+rIuFhqYB$*6$@B|49(_ z}6we9CeH=Oxf>+6QfJQ~7I0+Eh- zAV+bqlpByoEogdM7n^4+xCr}yp?e)`zBoFoZk)*0bZPix4=V#`FN|`&{91pu?3R9l zJi!bBgDei4nQwQ?pNBd(o`+rPKX`w`H(i)N!Q+mkXpYU)H|PwQsSJ68u!zp0hn*6X zpxv7W)diNf-`6FYwm4VO)-LPnm&CFaIB+QYO69#7i=r-~MvNF9a(c?%uim@@|;Qz=&$-+VUgR|Q-TYYBVxmv8tjH6$;594!mY=1g7T)W%+ zz3Xn~4=YoY zH2y54em)-uMmiY{;hG1&W}i&A zPqW3OSZ$h@!f;ZoF%4P8KjyBdbkXTo(5bA!zGAHykNfEWWv27Tw3IDFcPM|+m5phO zE-B57^h;3QKwv!M#wtYMMcM9qfV;1 z-1g^FO0^u`v1NG!hY-^qf5uXmU?-@)<6v@)B4_I!XgL=N&SVo76D=wAUlI>pbQ6t7 zT(KlIR^{a%B;DAs#7ynI$i@690YS0X{Z_yiVm3>dAdW#j=kP{-&1*rU^vn{n5eiIVRzT}|Lnt|;XtiZ0E2-1#5)mv3#jTAA zLw2hQho0|!#O#DOg*^@a^G#t7yR&>3eyjxvKY|@VE+9MW}BuIGAaU4%&d|!O%39klVQ>W*)m95IA=p23RwdHwXWp^&}yTnR+j#r?xBcgdQ z2C%B-J^-HN&y*CC693^l(7S`LDy~79-Q?}HO&uREc_!eLCUvOHjYlprjQdv72C(`seDawg&A zp@O`|&RcrI*ZthWQd8(@KeGzykS$o>NHfYUS*`P0$TYB)Qds@PNOJ!OURNC>ZnNOC zH!*aViJ4U60(s^EDC~1r&-^#Qbi;;kk-??Ms~Pye;3dX&-QTO8DPLe2+U(4>2VaGT zFy>RjbmMrgk_TAm@4!*k^=}xi&yce=YQreEsRYIsMU!MDN=vVdmHg9KYWbj1R0)6c z-jlyLW{rEu&ODiB`wTU^^@yJi3}saKFxZD4^%EbbPCO-9hWd`0R=+CtLQX}Vk81qh zZ<-Fo>XigtN|70_(0mclg*Sf;NP+Tx0A;*?8?kn_8#`y0dLnBe>}6=S%I))aof@jF zUYg1TKAev2EMz2aG-;-GN!2% zvsc<2UJ;p0I!R5kQQBijqytv6Uz-T0rn~@d-4Y#-ELF-rebx4jEbyz8-z^`;K~gA< z_-RBnHu@hY=^?wKs*>+uS(5M&>CEz&cVpKm4H#3OH7Py^m93%H%n$3~4<+z~g%or0 z3_-Kl$zKj3Dm-?ijF<`mtO%$apCn>=ZgCgfALBl5Nr~Q-|H0oP|za?W^$nbzK9OjriU8)R@iBx`j z6JTYKW+HX*p#Cg@XXd4@mw82S*3E6E2wGicNhZphe9$s@ovY?DQ;003==p^&kHe&e zxYWFV4LD`?(NlkMKakTlL18sj9qc|4XU=+BQal`AujFjM6*``GDh*endSgxrW^p*c zej~k~?uqnP!ByeDw-q8cT|X^mV0fF|k6Gf`P4(xEJ0r8MkFYbpGG6%!Ckp+sh;*+y z%&~>CPz`qJnd%CJ6+0EL`FbR@<4NrB0DSqWVh!;-mQib0U2Qaf-Of(z-mhtamA=j` zgfQWlj5dMK5afPz^n?h>(R}wKlhggH)P2Bt0$58nLLz>?sg(gA!Xr! zM2Gb?$+W%{6r@yN54^RTWuYNBB`EhaXMHgb`lo4Kojzh${qxA8jy`Qf)8d3CynE}H z08?@3;`ng*Se^sHv- zYGW05M3Z{3>!_fQ0pCYHJig_jv^c|u}p&Gco|AL-4T%sk( zPIdgPWoTn}0vY=Zqtl+QBeQJ4{e@;=P+ltM6kFW*5MuLy(qB?wOMNfyqe~)5@m%ZsH(yRCcc;5!t^A zl-^$3j>ee4%24J@&mYK;=r0F0 zceL1J26@FwN&6iHJ8&g;Kcwbautleh-V$PgrmnFXyj zpx6yt z!O^)?@9Sf!=pl3$U4Qpy@Met7r6KEOJlM%EM<$(T>M|g{{YO9a!U)@c8hI&$GGbPq zaH2nB>&f}eUvEp?JnZBT;s5uW&`7c_Qcm#U#>|LqbtxNYclQ3xzG2&n3}#F>+ou}W z#M8GkR+eywbVw68xeH;M50X^r2l$Oe{A}r%$dR3=20+udRQt%cY%VTe^!vWo@$s%v z^0T$^GtDY9CAV6WKkb_AjcJZ0o%(GEtAmN6n*SF-FlsT2U^64LSOabR0AmKRw7sEk zDpB;iKz?Ryq5lt3L42C^nA8>~e^UaZ-hVY{09bl353r}k=Y^|UzC%$+(@H}eSB~NA zfasnACd%uWCqGi@uf)C3-iqU5^@6I-Fn!sU3D=np3Y{BE-+x{L4m|>d^8J`b&?t;> z&zwTQ1n7tE@`cV>CgShro^w81CE#=e+VI=SvD|es3U8-5}H=yj_O=LDv9P2@2g!J;q23kH#N zx>FX`n?&)|CtG+ArmG1mEsMC%&c-DS$-Cjk%?x|Q7;*nkPb~PPC$_tGX$U+)eX$Ht zK6^_%4D)k%c$VQy=Gkzu49JnC3{aB53_LKwQBKMPb9)NpNS3rHPa5uIQP;b>{+X_e zX(gbkV#DR+tRTctyksNh4BEuXKsMZ@C2^3F+ntVqBV7j}Lw2W*m0NB`vWZaTv=aV_-=_NMogyHf?=aQnE)`t~qL$3&t^b(zVDv5^)$t zqh7EaHC5C&VIBl*2PWL>>Cgsl`X$}>ox6Aj(YI~_%FA)jkXYy>;mjTC)(Wd@6FIX3 zn4~myGcUG~y(S=-X?}3OlF*_CVYU{zVM>Jh&A6tr)+`t_U98~^0iKZ3lAbh6nt5+p z&{vQFw2UI-BL`qRNCF~!NXE^L4Zz^0$1(qflGjx-x09EkGw@t+X(mLlNoC)iy=1Jc z$f~>@Gl_&f;d4pfVI(YUz&UJ#h&&!Iro_I$X>RscN~%N3khX{bg(04lUsK=cc4uxl zSQ4B{vJu_{$Zzzj?Ux#g3KIM<)BX%9UA7G&DO1q)lRt>7Vk3x3qEXKoCx?ycTkNO8 zGesptxsg!~YUlWONmb(RCR{my0w}HJ)%EL42NUlPM=C3rT{NBlMtu3vIp)@W zMhX1?l=WdEcAO?PBFjtI*#5i?7BaBmwFr#f$!HM_^pwmMVs3b&G?m2}Pr0k34N+|L zHc;e0hVgU9#OdfThO-Q<)Np4FZDx?ES+_S%$3*&)K6vc_k}}_qIdf0_aD~)}3Jm=e z5CJXa(9>4mwqG^!8`?5zK%w*$0|Z)IqVTBK@|Ha&j`K;s_lEo{vb%sl|DCzvfjW>x z<}NgPaYyIvCv{w+YyK`H-zG2nc~7H1hbtJsB2Q_Rt{S4Ii_A-KyzCodcMV`n+^j-p ze`7s|y{M{Erdv5kR@z@Y2aj9{=tzI-q|j#4$KYd?h1<+NkxKFgK$_anyNz>f&w5 z)dTe6oBk6$xKm>V^tCmm^yMmge4!H;*vbs| zReYG>4N`lnP*E)~!vZ2rQ-qzEe@pp%Y&WDv;kW&zlgRQJ;d*G+x_WQ&JK%oMkootz zC(iK!S^u|LhFFwK?0_s9|6NJ(Z$~ZC5YN3wJmRsXDyxO20GDvpC)7~o77nKk(|WNSQO$Fu@Y;kN~tvTMaD|Xa#cBFn;`{pNLQU7xxTX33N=uYoR}oAEuJ9 zOiE9ZUyCIaEt1MXim_p+A}uj~!_x~=!HS%dSa`-%hDkHD@ny8=6l!`**tD|_U_8wV zT^jgIAf_kjVuJg!zBsbb)-|X<;_IoxrJ%K!+p1ml`xgZ|q^564M_SJCouTwn zk;FjZeXn8N484kyq5*mPYv)8BSCHjD^9I<$yQ25(iB+*e`PvGxpH;B;Z}mbFK@!EElTw!jo=f*hr#CYluUpr`gFVJy;9$9J8G!d7rZXz zS(095cqH&@T}~FdP+Mhl1U^)X2X6J_8i1?bjG0~Z3x>F^8>_}sOdg)j|FOI))3T5| zavGL7a!HHoD%AUx>KMb_p(DBmtFBL)>eLIUQ1!8-Of}geKu_1>$%ho8R8f^uM@Uu5 z#PHajG7!LiPp+~|8-!tRhzcm?*6P6Y&(E0uId)P=_#~zdp>W_9D(KdWVeLBtXnxes8agz6; z0_C$T#RPZe1tR`13hMY}W`ibK$V)sQQ6tAc2wru=Elg47p6gNcq^`09@O8&6tm!3k@v{Upy%Aj3U&PvSh z4s6v8wg1?xB6*#2=7N<{PuW};`kaThEvVceK2gG`+J7;VpW^q${A#t@ryQjorPVI^P=cxBVBVq$Q&`vi zzx8wDW@dCiq5n}nJldAeCWKqonvbp4RpezAo%(>eB(;6NeOF!ftX?)f;qx;yF{jM% z!7D{*&4t3>ysF_`zv27wUYWSp(35SU{xzjr+NEk$f1+};|3)*wz61X$R|{LW5Alc2 z?{2SD2K0f@mfY)d6ZR34oq8`PJ#sE86(6`5S!JPI)o|m$JNpyEPdPP_klgE1XrPo> z?gmz=Mo!&hJ~Wbu^b>vhNVytgMaJSLKb4xRP2r|JPoM%~Psh|Ozbv&X$7?K3W*{ES zDHmN=eZ1Wi81P=#V?-_{-M$Se!^uS8{~_DmAEIx;xi=Ti6Oby;VCP}{Qc#0#Lk&A# zg9@?4N`uvng^FMo-`fPk@6;cp$R1tQGTmbmew>fdWG>YjaHuHN z?b!ZeuM;6dQn9A0MJ@4604T=v$2IS7&S6ZZ@uqP4{rXQ*S^=@D(dh_$a&tnsOnNd> zHSQellu$M7Ia+Hl*|nU%Piea#)E*zeai;D#&2ppAZ`XG~!-g%Ul9QAv9ki$?OL5&e~OReDX;;{*_?)L?Bv7~M7#8dIihO`vFgt*;%ksLR}j^XyL=gJlFY>vzr;c#hud z(7Ja#_nstB>+KVoI`M?DTa9{lDrUC{Za&`x@!#BGbG@qDhfLWC%#&b3Poj6rOzd!} zx>~-L~vEjcK%%mvn6BOQaG(pFUngxOwO1W77E84VLW?k()MKDp0qc!lq9Ix z*?OU?AmBn@S*~X^PzvP5N6o8LZvdWxnqMz|`>}15hBCi7eg34w&C_!~o%Ygp1u|MP z5IZ|%5WRUB%54%uGmj{GwS>ys{TOm}6@D{|DH)1+(=GZUX#2ved~I0YZf0uFE2Bhm zT$9lub>~G%D*AVsY7B<&vB=orRa5YU<^pczxYlf^T&A~r2KJ55bgxWoyj;{dg6kZ& zi*s=L04U0aY^V11j;S0c9{2BJ|EOA@d$}8@+dpfao1lhOti zAfCXpzOR&f$4Z|ef0_GG$f+^e3t_oYBEJJY0?mMNzYkyXPG;y^E;0?aWm?nUms_q` zv-927D{qoZggvieRv~XSV4vD+qDjUjb0%H62;w!YH zTW==g4XJO3G2-o}HyD|Aovm@Pr^vNn^^4)tnqB;JWGNYbo&mwCsKsk$rvC`4T8JSS z(t|#?wOqFyys$TG_G=3JWT$MNd*^4aoxJj_kFwSp4+v?p%)?c!*P z4{S~*VCtXnBE~Q=YprmCpMkfpK7-TBGUY>Rjo1;|f{txvy*tlQJcTl*u{NOA;yFPh zz5o9NRf5Eg>hN5Hp&aN;qyS`@5_DHH9uHqzUObGNk@j+sghyX2UN?Zb(TSh@d{smZ zrIGwhTa)J&77Gu14gDicbS@b8pYa=LD2CzPYvGttL`0jZadR6NWni8paPVd#CSPB! zQQ@3y17aM2^>Bd4!Vr9BVf3uPU<614;}S6kC_yCX-DF&i={r;1`qC$H!I0wOS;MT_ zTHSA39jZH9Cy{QF-tugNWH{ABOrX4!0aLd;p{`_RWEnXkiyyC9zv-DV&=3!|91o1R zYvZ|yGPU=f8>@$d$CuisTQ9OF0rigc^%*dZ&W7q!|5&_{uPp= zqF>8+!oR8`fyL_&HjCL`>fHI~1d%?vHMcjM>7RYNdJFN*C+NrM)5 zrWPZ^-onqVzomL(eKBCshkf-IPMHh!Hdc82vth_`@wvW@uE5hE*0u-wmg;ItagYQe zVR>v-8)zZ7e#wi|JlPhDLTk3vYi*5c!t+H>i)VRu)X1#1N<6BV9#k~5=;J2z&t&c* z@cTj>bn`?ODZX=|5=V9SC?|={eB}?H9+3k1XKMCX%XW=cnVt`ck$Y8yxgB|}D zNMcdker((5_Xg#u5Wauy>yJka>G7We+k>6HsM0;B2i=paT9I1iB zW-y~eE>H8TOl=Z=$bLHMQbKX-vOpvBi^^N<23=n+lpbIXd6xvQFv=&64A za_d4Z{)mwA5>u0{c6-L{J&gQ&<)6UFS`k8iC8W1OhhivKl%cAsCQ%SF$gZjyJFO$j zJ$b2=JnSq0Ayyt#W3k7oX-$61)KFB^mmitvQwANexf{koS6*Us{-{#}U+K!_-@16m zCm!0KQdQr1_Uy3|GaQ8z=fKH$w3p(g4*dm?GkUMd0LB3=|4|I`sa6J8g$*5``SL`D=Uw<|$W)0)_}98%?Z@I5hn4Tc<|zI;Q@GfRqrI=*7$f(tI408PPG=6PH{ZtG z$y%qpc>kpJ^(k^^P9a7O#lHJH-Vgd2YM_b3xyh|v24464vyZ;z;xX^wjEQF6&%-@) z{}kN~vs{X=J@+GvT6(H0WwfvQxvjsy8MO(b?cuWUEz#a2d?0tE9N}=Cd((cvb0TKb zpcFOcr4@ak@?W$eSARL@5LRnT9s!OSuXrxzCAN6HWB8wqkBhqS8X4?REvO#JDKOUn zfw73taHhlz|6BwhYbk4fcbM61$lNZ*G7ACYZk%YI$*_Uq9#p-XMAB`(^ zY;{j?Y(~;Y<|!j#^OO=0Iz4-s+<-ciG=3+dsVV#K=H-spB_l0M4?pbAGXseQJ{PLW zJ53d|&jw{1-l_7MhCTmbDt-z*Frgl(+!dZ#xSFz|wqinwshg0F0k@=e#?;LS&kU}N z$x1hcraOAI3XX9$o{V&l-=ntq*Cg20HyPy|7jz;YklBdZK&v~wUYthu$Z@xqroYBE z7a>k%EvP77p-#jg=pvig;ziiu(NODJOyq|d&&cJm)!x(!&{MyjP2BXEWoo<9r%<|K zbz+Fd?lH!rO513D&jXt zaTtQ{In?8*`QTVgm;J|U+WN72y|Jj1```HWW)I_KRRsu`0F zNjZV@y9WPmslR~c2@9KZsuF^&){<_iY;L3!h_5I8O`Qi69@;N&4D9xvb7bnwEAp0n zMvJ`qC1Z(n`%QinKkk+Fgj>?mWsrA=!x~1EZ*jI^#;{59tsg6Lt{&+kJ-3Hp<`b6_ z%qLqW$+MW)gk`iu4mbdbdOBU2i9DiPLJ}`Xrunnkr1%@$EXJ%{QZBRJt6zsL6>O2i zzyVi>8q(3C&gbfl&pGcfQlqC8t9gHUKaGDD%~Mm7P`|aCoohzi4OTa6A{1J+CWwat zv>8RVXSM~+Fu)q*C0nQX_FVH^DGsKJ`{{(`sd=;J3%*oKbl8{68Ffc#pH4j*=55dL zXo)n?rp*oX@C%y0PD+8h}KYNX1wKn{2NMZmyr>a4p`Zjazr3JQ(u zTtBoVTG^pl_&9X9uZ)rC;YuYPVjAHSc>m0D`3#fj#~cseAZ}h4nkt3UPM7?K?waHU z%`@rmFt!DcLmu7M{k{?VP?8T1PXg`AzN5i~x^Vzwn#04k>tfp5-Ic+F1OH)PcZ1Ct zcQJ}@7akf&`G7|$uyMFwuN*65=hO}|`=&zOD9__VRKcmJr)`~OEQ#>=iadN3H})I- zg-IXADJ@3+ zX|*?M4@z8@zuM25_Lahch?=p+B^fu@8~r+j_VQy|3I4IkMicnf3EU4Z)!E9s@*y z1qaQ#XGMSJcZ^!staK&a+P_Pbg8+{)NziPXj70EvxbP za65vb3S#vawYJ{33PJm8wL5t0M9x`i-ub3!(jU?43tpcklW{1!>OHVvoe$}%KiC2) z!#0^c#op-JAf4@Is2irhEO2CP{yWPu2Peg9aCG;BUgt>Q}i=R)6@nuLt&#qsobi8-z zL=M;wpux50(-5nlYBt;A1fHbl40hsSW>KYP>hC zVpsd$3bX@eDSVkqypDKYm1=b=Fq}WifdpHQ>F!`ZP4p+Z#=tySyVmbC(bOs7MXErk zM_+wN!X%6(&B`cOz^U`8dA#=WEik)n`u%Q#YAY-=0#@o>cL-<*&8Zy~dO9t$_3y4gi8|QUcBLU6MX1%p(<$}V zRxA5FTv`%roKv1fg1S$zFZpP|BLxy4H20ht8Ql?_w3JNR5GJmWEDnki=K0EXMCC)5 z!1f8m<&i1}h}Wgt(_UngW(u^*t=S$`FJMmj6Btk)&e&t7T) zm`M&C14As)-Zxbvb)hlo_(7>dZad#=feWsbQ*Bh2)9!R}cSW-%9#g~vR z^_Iz+gUVo3ta<^Jdo?&_bDikamhEI9V}Kwh`+RnC6(&a49Eq1>_WY2xAW2ZYma}N3 zHRQgX`+my)cDU_+Er-c$CAaN$H-`bGUr*lK_<)Qsls8~S$5KYT?g>7eFZXg9Z|E$i z6`rCt6+vS;#UOwY^Z1nKgUxUs=+AL!ISY*Y~b}{Fn zK%|q`^t+ygV{TH3f)c{Z%HQiN)Uv3^f;Mv_;XWgD{&jSKef2F5fsH>^HlAl#W+f+D zv`*ZWFzc=N$kvGoJwQNc;?xULTyX;_qKB#sc4aqGcNHn75zY@hpw3#1;iY4tK3M$- zWm2j@ZPzMDKcec_D=MQ`<<=K#3@b4N|IMj~qd`g&WgVu2ZuGmc0q&GGjC;hK^0!*X z@Z-&mP~9@-o~KD|7p$mc;)ueJE|w8 zXPiGi(+GUlDI7=UcM^OQIfgUq-Hzsg(xq9fbaSZojTP3b4e7Gfb}(*0S!Ss0%#S;t zv3lE4fRS@9bDq`rz+On{i%myA{jsP-_1)#>sWeOHD5Zv( zOIKOeA5d{vE{a?Rdch-ZQ|HzLC-(Z$pm~p5KAIHS&I?Jp=VhSF8dSVCTXVne8stH6pXrP zAu!rAyqj$2mL9I2nl`z6x-|>$!*QhKZovKZHkd{Wp2z3{-(HMf9x|>CzGTxAe9q;C z>PrVpmGqXjH+(G@?8T^Ek^9=Ef+x-YvE&056pTrUJEwPbv&1Y>w@97FUhF&BR=Y=w z+}j&DCt5q{hRlL~P_&)4JuZm*Xd=C{K~v$dAq;u(-cKZem!BDDE~#17#HG7W76~y; zSO(%o=QzuJ_q`W!WBhNGCQkU+&u=>SQHTDUllgXi+<~4rZ0^Z`_g?DuIx`@Q^U|Wk zZ@1=v=iig^HhYdD-ead~wsiwa_;3M&dWt($p5LBd5z^(1>NG293ywjE;@?tKFi*Z#lcj!zStLp|fO zT}<1oilrtlpI+=50|KNs*6vA|Rn6>siBfmNS({|w$}#f@89Gs3inIiMwb~MW2eXH7* zPjl8qwmzi{$>>AiZG}nKcsem)>Uf(jq8Od=V?EURm3V$ZNy4eW{>)8HFN2XH@X3Cd z9bY}QzK3Y-J}gej=PX^9bC5(jDhY=pe}ybSM@>sXc4wJpWA<E6*bwE5Np5p1|Drs4%wR2h@9(Ke*E`L{W0l7QM@;fk zmy0tP>%4~?UfHg|h<;BykpZDQUh_~ZMUXVwO}=l({uC;iRZsQyR9jx?c*w&H-Dath|PPSb(PGeSp4KZD7Ej$byushBV=W3(qUvW{*6OFUca z1137prCz{jS9zIq*w25r`%E&Zd)1WA8FW1&m?0$ zAyi~$w;~*CwUO5~HC>$y(}V9g7fMqfoz$|hr^5nMY)$XC6 z2B{Id0{t-GKPGAqRXbg_v$ED!U66T#vV5R=YkIk8>^XK~&Q;Py!Hl8q7^860EOxo8+SJW?t(c(lm}nE$dqNp}S`$#OED(-cdW%250ZomL zI}92O{qKMK8#ipO-iJq7d{6)EV`(P}v`0?S@@)Bid1|7)OjTvbkOFbxC;#kOTcetL zM-mMGMxV+0X~uC~flZkDkA|^&1PaL}DK^*KHA2D7S>ZA&>}%mZPb~MKP7g{(%RL5x zk(N<0k)yK*Nf8GiBdY~aX4w|Us$iP7zY0yLXu$8k(pmq%nUc268)8MiDC~n2 zWx&iF6Y8y+3}o!x5RZ|TRD8|T!+=Hk$XjNBuV+ksIE6BebseA4Gk1N8v4=dO5rP7h zbV0+v<)L5941>{RWyKE!11fR&`D6^rz$2P@p~dn=eg@`xYwT~kjy5P;v4>4`EE7P3 zcW?XtuBsM-d%}3oOFYtD($FW2*Zd~2Avqn2ZHlotfZ^7TG01QKk?ecF9cBN#MTR$%06kcJ4rzc;k1oSu_)>L?|cQp`j?BMSeZ=nbF7Ay3*EK*BrBJT ztudTGSt2hDvY457S)@_UEFa(7J@Cl5Nw|vB1d%7JJdfc|J9Y<0{!ag7)z>$p1`cr^ z@ahl4czLFPmEAypuvGj;SoWUFsg!i;K>Q>iTpXg$ZA;4tP+sN^seNE@ZWqtD7BVCt zyybx61y>ibncYmn&vFCq3-Xiq_O!=_=UuSDz7UoYwzKae=z~=1dulFH3Wv~r*tywL zScrLih0g34Df6KG#y&h6DX3B8Rj6?tY`)a5w`npqSz!7kso`kb_tECOpD863qqZjN z8GhLESjE6iJ5GiQ>EImRYQ7*Xt+!Ir8>{OwV_SMj&MtF8F;$@V+mYcO=?`Eu;QqIz z8-aT@Pv|M`lG!E%V!xn5cs}Xs5n2U6*8j0#tBqY81awowLwdwm!FIy(|5@@WlMcXmmMDxU$Tu%=c2eY%1w>P7@ zliX}IE0l__SF}7W`sGnp4YG=C@OdBZXj?N$;6Yn8H2*3(x_1cz-1tjXq44D2KB$^= zx>FYuYq~xn>M~hMj}YkogvFN=XEd{rHx9md!fnS_6<^x7tE;kPif1pPU74x+4`tV; z51i*Mo4 zowCE5Fa@DC>-{?=@dF$BQ#kU%8oZRaqIQdHBWu4*zPyy8p|_ zTKKLQn?zZhS5YZwqJQf@<&&Z4Yh-R<+_18ubN+#7c>GlrKW)rA^8mSzjOJH*br8kx z+v^xA_jbYDTu)x_nd;a0Tm5Np+qD=v$e$o>x*uG%+b$3xigregn}uE5DXq4RU8|}g zYbc}bc8zL-NzJiDC2TuB`-@RI7Hm%O)b_LyJGQ-)j~FWQs;gM~%L$!}3HE2PeaHpG z2b9SAFA=2%G2-HF^r&ECt|d2iV0q4Clsfh+69@oDMrgTkY{tLAtdJI2qDL`U7PXRDg)zg?hkL zOhxgB^R-4|zuo(YGfdua7qk)koGCk119O!{x6o=$T^rEtza~Y&9*frqThM=@_1(_c zo5MgcE_}@?81pR>lNJ3P!?ho25LKyU!gq#~<&2V=d(q)*8#y8I@BGF9~+gv9flC!d)nk3QWH7JFokdXy}hgjs!I?=^hvSiIG1cVpi@ zNmuM?AB{EGZypo=XGv>L71C3CFmYfm1Q{9U(ar?__Pg~MY>(1zW)vYZoY)^&C^{3r zB-5{r|E8JAnij{*8qKsa+e|IZazoqA)YMc^QJgfT#3dJ8Kyaqba>2CRa-rN6ffNBZ zaLR=gm0SQ7mvR?G69p7RU*CV={@l;!d7k^6`<(B&t|=&sw5tgttnnVw;%GvJv_lfq z&3-bJxjf<@36swDn%5to22NT=1)HVTx1URZyZOvcj&VvdL&CZRmvNSE(PSGNt8J_J z_h#esmPG;eS?b7lI0+?FI*3?!FnGGL6Ylu=nufK8h?_h2_X_P*#pH(M1$p(E!&>j3 zA@IF$X7x-L|IoSFAjxpGnT8~smC5pV-_zXCuIsbrvm?x?}D{6JtbO$uCa zzJWvTvxh3UqJt!gSgWGBX3nEk3y`KdqKDfzy1Y> zjk-2xWE0uQx<`WOj~32iY$_3+=aAlGg7)ctlmD*0KMK9iEkkuC z27=e~+I)Z5f9)&_^!9{ZXS*s3{^sNGH8rt+&*#bxS8kmIxF{JYixdDX$PF41a5l#B3!z*p_@fs1~y(P^+G5$@JC(A|*J zz^5KCt;~IVMQ?Pf3tGY&nIrX=kmBC*!G6GHiTBXop^f+ocvhJ`CQ@%J!pFngx=2>F z;SHrl^2U(F*rOwSZY_45cbPGG|Fr?jW{2KrakKIDaYAB_4IJizgS(ix6@2l)WGtSo z63I-0%Lm}TZUig#SOw(s@Y(Mm_aW&5es=SL%yj=ya~TrlkE@yZx`}m+Dxq?H?wFh$cg8BfwXbrlYP;|k)2x^y;a9f!;Ur2+DNqGAap9eLOb}&R`F*`b$F6ls*7j8kYGC* zTMJc$tp9W$UmO%jjUv{`i5~19F%KkJds8CZ{%ugHOL#x|O3&&7iqM+(BMO@i)h4lO zJ87w4c}x??>;vDMfVMH86Vz}6yi$CeQP6!=^TV_r|M`AxRUg)9&T)I;Fw9YVcXguo zG&S1;TZf;I&`W^3C~yBqU2*EaW>n(uPX_tS|2>>x?dtPsT!q50IWj@mO>PQo{KG!q zrm)BSp%I*H<>!SpcVS)~MPbqXQWFwiPT%Tv)rOI+{_J+-o|ar8?e9>tAd(hj#lx^| zXInS{ToznVA}3@ozcoHmHIeFDNxZrAQjM*=;ko@m`*_Ts!sHuO(8!9fhl6lddPloN zX~AuXgGj9`P<`p*S7?bej)W4fh&F;?D~8tFx_U{7qdu8#f+vtSpFW+4I&H)<%i_zSd z1lC`0Yy6Y!%iP9zF7LA7g5Z>SMuVewmL+$(2uhj@i5 z)t)3q@N zE3O@->0|H*XwJ!5RK!Y?2&?gc_Rs`P8-KN}Cs-3T6V9%=+aK`h;YbiETKsOw!|ogG z-O-49?KjmA_8ON!n8YJuQB|{ge)6@pY7-m%8$@JRiI8j%zyYC#-K=LpK<@4l; zWHNYD@waL`8TZFXC5!;}tw8rJ*lN~D-dZh1f72X5&gzXXz8dTnpMzE{7*jYPUxe8n zpaN*_gz~S5Y`lwh*8__0?rc`RU<#b*+s0dPWA#7<3~&)C346a6IYCaHha1BsNmk^* zq^QxX!3UVzpV0m;BfaG@gykwpK2%1Gq&nFTTfbEU#htT3&p*?C&|c>y?jO??5GYQ5 zt&p+?Zevk#cSNL#ry3fAkRyxGm>35gx-EV;dwvm zNM5Mtk|;k#Z5agbn3474%%s~<_xO_+1f>EaYasn^?|d^h*Pm?y<0EjAM@V%by0hPe zHnzQf1raXzo3k_-6-g!BW;|Ry$v#yYee2>_^phdP>w5eW5MVP&@h*TDHMF7L(uR*s zzyBy-aHh*llgc?{##q_iJ9ecqH?V$7?ffyJKw0T=ygWjHOp_`p`EUFyCWeYy90m;} zx{`3Idi@s)4NzTqR9r$CjL3{u8*KoktD}<*~+w z5QIHUK1C3BR0`GOaq-Y~JqCIV(9IYTe3Z%_HJy{hR`{EFDoJOg>0T*~)5uV(2;!Ey zF&AGSh><j>m}ay zQ?`S~Wj&{wn=;n?Z3yMDXH&B%7#lG`jI6&xm!Vw>s1_Q{cvh(lF3BNG695hEG(|={ z!ez1uFp+z0!;Gp^&`!>q#gAKO%7bu+s&Zu=`WA!GaS-{5EN=VEK9rdjRA&Y%N`uu7*1^-ITC+L=XKy?gn<*$NnMyHERI*?sdM~b8J z%$XbYPq1%ROv2y*fYNX|V3@?w`XO~F#7w608b@b>Q~f0RUa*x{>hnRkWGdJ!(d(ij zpsKT%Z&s#XxpY%-p?X$x-9fRQhml%wAuhI4Y740N)`&ZpoD}CDv(okW+UBi#F`g-Z z@vAYRcv*n)N*3+Q_Yj@m68F|E*59tiohJxJ4-2?HD1~9Ocx(9JhN^Tt=!@ex>o>Zl z_1i>0X7E7%FktvT%t?HVSNjJ$hB7*U2)`lP6D$I*LwoiEW0{VA;#0Vz@A#@z;U%-Y#Udp`%S z&JFY!?~xv8_T0(+2sJT5rV=1d0PX+~)Z4M0j!CKR%cir6u;&}eoRe^YrhtpsS{GWG zb<)1}-Cr_3dq^%^L1O+{e4!L60ohB9du;_WdVZpDQgTp90DtovZ=M{nut%%0wb8`g z-!E=$W1Zx%nHBn+#BnT=OwT{rDcNf3*m|sLwP5zF$Nr}V^D9SJU^j#`lACZ-vejM3 z<-V^8o@!|xb|~#&hwkvCVQQ<6u^st(l>~lMdJ~Ki2RSzL^2j>5cO~V1|LYiijY2f+ zH$j9F)6`W8RN|x8JM-<}nd>=-l(gS#Y99%~L#ghCDS(F_+z+XL`omTi-fo(l8W?;X zo*~1eLF}IPCRXpU0hqa0)SR|l`QKfe%6GTo zHp zTO-(~Y1St$*6{Sul+u%FJ@~)(fs7WbRX0t>fui5?4L%W#CFOuS@5| zl?em1pi#zjr7EhsH2%(#u5WN;ALl%Wr>7haj#)^H3dq(dSGdv$%0DQsF9#=YdC2Go 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 literal 0 HcmV?d00001 diff --git a/board_games_companion/lib/common/app_text.dart b/board_games_companion/lib/common/app_text.dart index 5f8413f5..f4b98287 100644 --- a/board_games_companion/lib/common/app_text.dart +++ b/board_games_companion/lib/common/app_text.dart @@ -313,6 +313,37 @@ class AppText { static const playsPageGameSpinnerPlaytimeFilterAny = 'Any'; static const playsPageGameSpinnerPlaytimeFilterInMinutesFormat = '<%s%s'; + static const playsPageOverallStatsNoPlayesTitle = "You haven't played any games"; + static const playsPageOverallStatsNoPlayesSubtitle = + 'Start recording your plays in the app and this screen will automatically populate with statistics of your playthroughs.'; + + static const playsPageOverallStatsTimePeriodTitle = 'No games played in selected period'; + static const playsPageOverallStatsTimePeriodSubtitle = + 'Select a broader or different time period to see your logged games statistics'; + static const playsPageOverallStatsTimePeriodFrom = 'From'; + static const playsPageOverallStatsTimePeriodTo = 'To'; + static const playsPageOverallStatsTimePeriodLastWeek = 'Last week'; + static const playsPageOverallStatsTimePeriodLastMonth = 'Last month'; + static const playsPageOverallStatsTimePeriodLastYear = 'Last year'; + static const playsPageOverallStatsTimePeriodCustom = 'Custom'; + static const playsPageOverallStatsTimePeriodDatesFormat = '%s - %s'; + static const playsPageOverallStatsTimePeriodInDaysFormat = '%i days'; + static const playsPageOverallStatsTimePeriodPickerHelpText = 'Pick a time period'; + + static const playsPageOverallStatsTimePeriodSectionTitle = 'Time period'; + static const playsPageOverallStatsMostPlayedGameSectionTitle = 'Most played games'; + static const playsPageOverallStatsTotalsSectionTitle = 'Totals'; + static const playsPageOverallStatsGamesPlayedDistributionSctionTitle = + 'Games played distribution'; + static const playsPageOverallStatsTotalPlayedGamesFormat = '%i'; + static const playsPageOverallStatsTotalPlayedTimeFormat = '%s%s'; + static const playsPageOverallStatsTotalGamesLogged = 'logged games'; + static const playsPageOverallStatsTotalPlayedGames = 'played games'; + static const playsPageOverallStatsTotalPlaytime = 'playtime'; + static const playsPageOverallStatsTotalSoloGames = 'solo games'; + static const playsPageOverallStatsTotalDuels = 'duels'; + static const playsPageOverallStatsTotalMultiplePlayerGames = 'multi-player games'; + static const drawerVersionFormat = 'Version %s'; static const drawerReleaseNotes = 'Release notes'; static const drawerAppWiki = 'Wiki'; diff --git a/board_games_companion/lib/common/dimensions.dart b/board_games_companion/lib/common/dimensions.dart index 280c040a..b4f589e1 100644 --- a/board_games_companion/lib/common/dimensions.dart +++ b/board_games_companion/lib/common/dimensions.dart @@ -33,6 +33,9 @@ class Dimensions { static const double collectionSearchResultExpansionsImageHeight = 80; static const double collectionSearchResultExpansionsImageWidth = 80; + static const double mostPlayedGamesImageHeight = 110; + static const double mostPlayedGamesImageWidght = 110; + static const double boardGameRemoveIconSize = 40; static const double boardGameDetailsLinkIconSize = 40; @@ -56,6 +59,9 @@ class Dimensions { static const double largeIconSize = 36; static const double defaultCheckboxSize = 24; + static const double defaultStatsIconSize = 28; + static const double defaultFontAwesomeStatsIconSize = 24; + static const double floatingActionButtonBottomSpacing = 72; static const double halfFloatingActionButtonBottomSpacing = floatingActionButtonBottomSpacing / 2; diff --git a/board_games_companion/lib/common/enums/plays_stats_preset_time_period.dart b/board_games_companion/lib/common/enums/plays_stats_preset_time_period.dart new file mode 100644 index 00000000..de957d79 --- /dev/null +++ b/board_games_companion/lib/common/enums/plays_stats_preset_time_period.dart @@ -0,0 +1,8 @@ +// ignore_for_file: constant_identifier_names + +enum PlayStatsPresetTimePeriod { + LastWeek, + LastMonth, + LastYear, + Custom, +} diff --git a/board_games_companion/lib/common/enums/plays_tab.dart b/board_games_companion/lib/common/enums/plays_tab.dart index 521ca73b..765dc25e 100644 --- a/board_games_companion/lib/common/enums/plays_tab.dart +++ b/board_games_companion/lib/common/enums/plays_tab.dart @@ -10,6 +10,8 @@ extension ToPlaysTab on int { case 0: return PlaysTab.history; case 1: + return PlaysTab.statistics; + case 2: return PlaysTab.selectGame; } diff --git a/board_games_companion/lib/common/helpers/date_time_helpers.dart b/board_games_companion/lib/common/helpers/date_time_helpers.dart new file mode 100644 index 00000000..fe6a18f4 --- /dev/null +++ b/board_games_companion/lib/common/helpers/date_time_helpers.dart @@ -0,0 +1,3 @@ +/// The [weekday] may be 0 for Sunday, 1 for Monday, etc. up to 7 for Sunday. +DateTime mostRecentWeekday(DateTime date, int weekday) => + DateTime(date.year, date.month, date.day - (date.weekday - weekday) % 7); diff --git a/board_games_companion/lib/models/playthroughs/playthrough_details.dart b/board_games_companion/lib/models/playthroughs/playthrough_details.dart index 61d16df0..2108adee 100644 --- a/board_games_companion/lib/models/playthroughs/playthrough_details.dart +++ b/board_games_companion/lib/models/playthroughs/playthrough_details.dart @@ -69,4 +69,8 @@ class PlaythroughDetails with _$PlaythroughDetails { bool get hasAnyScores => scoresWithValue.isNotEmpty; bool get finishedScoring => scoresWithValue.length == playerScores.length; + + bool get isDuel => playerScores.length == 2; + + bool get isMultiPlayerGame => playerScores.length > 2; } diff --git a/board_games_companion/lib/pages/collections/collections_filter_panel.dart b/board_games_companion/lib/pages/collections/collections_filter_panel.dart index e618c08c..690d56f1 100644 --- a/board_games_companion/lib/pages/collections/collections_filter_panel.dart +++ b/board_games_companion/lib/pages/collections/collections_filter_panel.dart @@ -31,52 +31,50 @@ class CollectionsFilterPanel extends StatefulWidget { class CollectionsFilterPanelState extends State { @override - Widget build(BuildContext context) { - return SingleChildScrollView( - child: Padding( - padding: const EdgeInsets.only( - bottom: Dimensions.doubleStandardSpacing, - ), - child: PageContainer( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(AppStyles.defaultBottomSheetCornerRadius), - topRight: Radius.circular(AppStyles.defaultBottomSheetCornerRadius), + Widget build(BuildContext context) => SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.only( + bottom: Dimensions.doubleStandardSpacing, ), - child: Column( - children: [ - const SizedBox(height: Dimensions.oneAndHalfStandardSpacing), - const _BottomSheetHandle(), - const SizedBox(height: Dimensions.oneAndHalfStandardSpacing), - _SortBySection(gamesViewModel: widget.viewModel), - const SizedBox(height: Dimensions.standardSpacing), - _FiltersSection(gamesViewModel: widget.viewModel), - const SizedBox(height: Dimensions.standardSpacing), - Observer( - builder: (_) { - return Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Padding( - padding: const EdgeInsets.only(right: Dimensions.standardSpacing), - child: ElevatedIconButton( - icon: const Icon(Icons.clear), - title: AppText.filterGamesPanelClearFiltersButtonText, - color: AppColors.accentColor, - onPressed: widget.viewModel.anyFiltersApplied - ? () => widget.viewModel.clearFilters() - : null, + child: PageContainer( + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(AppStyles.defaultBottomSheetCornerRadius), + topRight: Radius.circular(AppStyles.defaultBottomSheetCornerRadius), + ), + child: Column( + children: [ + const SizedBox(height: Dimensions.oneAndHalfStandardSpacing), + const _BottomSheetHandle(), + const SizedBox(height: Dimensions.oneAndHalfStandardSpacing), + _SortBySection(gamesViewModel: widget.viewModel), + const SizedBox(height: Dimensions.standardSpacing), + _FiltersSection(gamesViewModel: widget.viewModel), + const SizedBox(height: Dimensions.standardSpacing), + Observer( + builder: (_) { + return Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Padding( + padding: const EdgeInsets.only(right: Dimensions.standardSpacing), + child: ElevatedIconButton( + icon: const Icon(Icons.clear), + title: AppText.filterGamesPanelClearFiltersButtonText, + color: AppColors.accentColor, + onPressed: widget.viewModel.anyFiltersApplied + ? () => widget.viewModel.clearFilters() + : null, + ), ), - ), - ], - ); - }, - ), - ], + ], + ); + }, + ), + ], + ), ), ), - ), - ); - } + ); } class _BottomSheetHandle extends StatelessWidget { @@ -102,34 +100,32 @@ class _BottomSheetHandle extends StatelessWidget { class _SortBySection extends StatelessWidget { const _SortBySection({ required CollectionsViewModel gamesViewModel, - }) : _gamesViewModel = gamesViewModel; + }) : _gamesViewModel = gamesViewModel; final CollectionsViewModel _gamesViewModel; @override - Widget build(BuildContext context) { - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - SectionHeader.titleWithIcon( - title: 'Sort by', - icon: const Icon(Icons.sort), - ), - const SizedBox(height: Dimensions.standardSpacing), - Wrap( - spacing: Dimensions.standardSpacing, - children: [ - for (final sortByOption in _gamesViewModel.sortByOptions) - _SortByChip( - sortBy: sortByOption, - onSortByChange: (SortBy selctedSortBy) => - _gamesViewModel.updateSortBySelection(selctedSortBy), - ) - ], - ), - ], - ); - } + Widget build(BuildContext context) => Column( + mainAxisSize: MainAxisSize.min, + children: [ + SectionHeader.titleWithIcon( + title: 'Sort by', + icon: const Icon(Icons.sort), + ), + const SizedBox(height: Dimensions.standardSpacing), + Wrap( + spacing: Dimensions.standardSpacing, + children: [ + for (final sortByOption in _gamesViewModel.sortByOptions) + _SortByChip( + sortBy: sortByOption, + onSortByChange: (SortBy selctedSortBy) => + _gamesViewModel.updateSortBySelection(selctedSortBy), + ) + ], + ), + ], + ); } class _SortByChip extends StatelessWidget { diff --git a/board_games_companion/lib/pages/edit_playthrough/edit_playthrough_view_model.dart b/board_games_companion/lib/pages/edit_playthrough/edit_playthrough_view_model.dart index 92010eea..4505f452 100644 --- a/board_games_companion/lib/pages/edit_playthrough/edit_playthrough_view_model.dart +++ b/board_games_companion/lib/pages/edit_playthrough/edit_playthrough_view_model.dart @@ -396,7 +396,7 @@ abstract class _EditPlaythoughViewModel with Store { /// NOTE: Ensure this is called after player scores are assigned places void _updatePlaceTiebreakers() { final tiedPlayerScores = playerScores.onlyTiedScores(); - if (tiedPlayerScores.isEmpty) { + if (tiedPlayerScores.isEmpty && scoreTiebreakersSet.isEmpty) { return; } diff --git a/board_games_companion/lib/pages/plays/most_played_game.dart b/board_games_companion/lib/pages/plays/most_played_game.dart new file mode 100644 index 00000000..75e480c6 --- /dev/null +++ b/board_games_companion/lib/pages/plays/most_played_game.dart @@ -0,0 +1,16 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +import '../../models/hive/board_game_details.dart'; + +part 'most_played_game.freezed.dart'; + +@freezed +class MostPlayedGame with _$MostPlayedGame { + const factory MostPlayedGame({ + required BoardGameDetails boardGameDetails, + required int totalNumberOfPlays, + required int totalTimePlayedInSeconds, + }) = _MostPlayedGame; + + const MostPlayedGame._(); +} diff --git a/board_games_companion/lib/pages/plays/most_played_game.freezed.dart b/board_games_companion/lib/pages/plays/most_played_game.freezed.dart new file mode 100644 index 00000000..94dfb44a --- /dev/null +++ b/board_games_companion/lib/pages/plays/most_played_game.freezed.dart @@ -0,0 +1,197 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'most_played_game.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + +/// @nodoc +mixin _$MostPlayedGame { + BoardGameDetails get boardGameDetails => throw _privateConstructorUsedError; + int get totalNumberOfPlays => throw _privateConstructorUsedError; + int get totalTimePlayedInSeconds => throw _privateConstructorUsedError; + + @JsonKey(ignore: true) + $MostPlayedGameCopyWith get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $MostPlayedGameCopyWith<$Res> { + factory $MostPlayedGameCopyWith( + MostPlayedGame value, $Res Function(MostPlayedGame) then) = + _$MostPlayedGameCopyWithImpl<$Res, MostPlayedGame>; + @useResult + $Res call( + {BoardGameDetails boardGameDetails, + int totalNumberOfPlays, + int totalTimePlayedInSeconds}); + + $BoardGameDetailsCopyWith<$Res> get boardGameDetails; +} + +/// @nodoc +class _$MostPlayedGameCopyWithImpl<$Res, $Val extends MostPlayedGame> + implements $MostPlayedGameCopyWith<$Res> { + _$MostPlayedGameCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? boardGameDetails = null, + Object? totalNumberOfPlays = null, + Object? totalTimePlayedInSeconds = null, + }) { + return _then(_value.copyWith( + boardGameDetails: null == boardGameDetails + ? _value.boardGameDetails + : boardGameDetails // ignore: cast_nullable_to_non_nullable + as BoardGameDetails, + totalNumberOfPlays: null == totalNumberOfPlays + ? _value.totalNumberOfPlays + : totalNumberOfPlays // ignore: cast_nullable_to_non_nullable + as int, + totalTimePlayedInSeconds: null == totalTimePlayedInSeconds + ? _value.totalTimePlayedInSeconds + : totalTimePlayedInSeconds // ignore: cast_nullable_to_non_nullable + as int, + ) as $Val); + } + + @override + @pragma('vm:prefer-inline') + $BoardGameDetailsCopyWith<$Res> get boardGameDetails { + return $BoardGameDetailsCopyWith<$Res>(_value.boardGameDetails, (value) { + return _then(_value.copyWith(boardGameDetails: value) as $Val); + }); + } +} + +/// @nodoc +abstract class _$$MostPlayedGameImplCopyWith<$Res> + implements $MostPlayedGameCopyWith<$Res> { + factory _$$MostPlayedGameImplCopyWith(_$MostPlayedGameImpl value, + $Res Function(_$MostPlayedGameImpl) then) = + __$$MostPlayedGameImplCopyWithImpl<$Res>; + @override + @useResult + $Res call( + {BoardGameDetails boardGameDetails, + int totalNumberOfPlays, + int totalTimePlayedInSeconds}); + + @override + $BoardGameDetailsCopyWith<$Res> get boardGameDetails; +} + +/// @nodoc +class __$$MostPlayedGameImplCopyWithImpl<$Res> + extends _$MostPlayedGameCopyWithImpl<$Res, _$MostPlayedGameImpl> + implements _$$MostPlayedGameImplCopyWith<$Res> { + __$$MostPlayedGameImplCopyWithImpl( + _$MostPlayedGameImpl _value, $Res Function(_$MostPlayedGameImpl) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? boardGameDetails = null, + Object? totalNumberOfPlays = null, + Object? totalTimePlayedInSeconds = null, + }) { + return _then(_$MostPlayedGameImpl( + boardGameDetails: null == boardGameDetails + ? _value.boardGameDetails + : boardGameDetails // ignore: cast_nullable_to_non_nullable + as BoardGameDetails, + totalNumberOfPlays: null == totalNumberOfPlays + ? _value.totalNumberOfPlays + : totalNumberOfPlays // ignore: cast_nullable_to_non_nullable + as int, + totalTimePlayedInSeconds: null == totalTimePlayedInSeconds + ? _value.totalTimePlayedInSeconds + : totalTimePlayedInSeconds // ignore: cast_nullable_to_non_nullable + as int, + )); + } +} + +/// @nodoc + +class _$MostPlayedGameImpl extends _MostPlayedGame { + const _$MostPlayedGameImpl( + {required this.boardGameDetails, + required this.totalNumberOfPlays, + required this.totalTimePlayedInSeconds}) + : super._(); + + @override + final BoardGameDetails boardGameDetails; + @override + final int totalNumberOfPlays; + @override + final int totalTimePlayedInSeconds; + + @override + String toString() { + return 'MostPlayedGame(boardGameDetails: $boardGameDetails, totalNumberOfPlays: $totalNumberOfPlays, totalTimePlayedInSeconds: $totalTimePlayedInSeconds)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$MostPlayedGameImpl && + (identical(other.boardGameDetails, boardGameDetails) || + other.boardGameDetails == boardGameDetails) && + (identical(other.totalNumberOfPlays, totalNumberOfPlays) || + other.totalNumberOfPlays == totalNumberOfPlays) && + (identical( + other.totalTimePlayedInSeconds, totalTimePlayedInSeconds) || + other.totalTimePlayedInSeconds == totalTimePlayedInSeconds)); + } + + @override + int get hashCode => Object.hash(runtimeType, boardGameDetails, + totalNumberOfPlays, totalTimePlayedInSeconds); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$MostPlayedGameImplCopyWith<_$MostPlayedGameImpl> get copyWith => + __$$MostPlayedGameImplCopyWithImpl<_$MostPlayedGameImpl>( + this, _$identity); +} + +abstract class _MostPlayedGame extends MostPlayedGame { + const factory _MostPlayedGame( + {required final BoardGameDetails boardGameDetails, + required final int totalNumberOfPlays, + required final int totalTimePlayedInSeconds}) = _$MostPlayedGameImpl; + const _MostPlayedGame._() : super._(); + + @override + BoardGameDetails get boardGameDetails; + @override + int get totalNumberOfPlays; + @override + int get totalTimePlayedInSeconds; + @override + @JsonKey(ignore: true) + _$$MostPlayedGameImplCopyWith<_$MostPlayedGameImpl> get copyWith => + throw _privateConstructorUsedError; +} diff --git a/board_games_companion/lib/pages/plays/plays_page.dart b/board_games_companion/lib/pages/plays/plays_page.dart index e263f536..84053559 100644 --- a/board_games_companion/lib/pages/plays/plays_page.dart +++ b/board_games_companion/lib/pages/plays/plays_page.dart @@ -4,13 +4,17 @@ import 'dart:io'; import 'package:basics/basics.dart'; import 'package:board_games_companion/extensions/date_time_extensions.dart'; import 'package:board_games_companion/pages/plays/historical_playthrough.dart'; +import 'package:board_games_companion/pages/plays/most_played_game.dart'; +import 'package:board_games_companion/pages/plays/plays_stats_visual_states.dart'; import 'package:board_games_companion/widgets/common/section_header.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:intl/intl.dart'; import 'package:mobx/mobx.dart'; import 'package:sliver_tools/sliver_tools.dart'; +import 'package:sprintf/sprintf.dart'; import '../../common/animation_tags.dart'; import '../../common/app_colors.dart'; @@ -19,6 +23,7 @@ import '../../common/app_text.dart'; import '../../common/app_theme.dart'; import '../../common/dimensions.dart'; import '../../common/enums/collection_type.dart'; +import '../../common/enums/plays_stats_preset_time_period.dart'; import '../../common/enums/plays_tab.dart'; import '../../extensions/int_extensions.dart'; import '../../extensions/string_extensions.dart'; @@ -32,11 +37,13 @@ import '../../widgets/board_games/board_game_tile.dart'; import '../../widgets/common/app_bar/app_bar_bottom_tab.dart'; import '../../widgets/common/bgc_checkbox.dart'; import '../../widgets/common/collection_toggle_button.dart'; +import '../../widgets/common/empty_page_information_panel.dart'; import '../../widgets/common/loading_indicator_widget.dart'; import '../../widgets/common/panel_container.dart'; import '../../widgets/common/segmented_buttons/bgc_segmented_button.dart'; import '../../widgets/common/segmented_buttons/bgc_segmented_buttons_container.dart'; import '../../widgets/common/slivers/bgc_sliver_title_header_delegate.dart'; +import '../../widgets/common/stats/vertical_statistics_item.dart'; import '../board_game_details/board_game_details_page.dart'; import '../edit_playthrough/edit_playthrough_page.dart'; import '../home/home_page.dart'; @@ -46,6 +53,7 @@ import 'game_spinner_filters.dart'; import 'game_spinner_game_selected_dialog.dart'; import 'plays_page_visual_states.dart'; import 'plays_view_model.dart'; +import 'time_period.dart'; class PlaysPage extends StatefulWidget { const PlaysPage({ @@ -70,16 +78,20 @@ class _PlaysPageState extends State with SingleTickerProviderStateMix super.initState(); _tabController = TabController( - length: 2, + length: 3, vsync: this, - initialIndex: 0, + initialIndex: widget.viewModel.visualState.when( + history: () => 0, + statistics: () => 1, + selectGame: () => 2, + ), ); _tabController .addListener(() => widget.viewModel.setSelectTab(_tabController.index.toPlaysTab())); _scrollController = FixedExtentScrollController(); - widget.viewModel.loadGamesPlaythroughs(); + widget.viewModel.loadData(); } @override @@ -92,7 +104,7 @@ class _PlaysPageState extends State with SingleTickerProviderStateMix @override Widget build(BuildContext context) => Observer( builder: (_) { - switch (widget.viewModel.futureLoadGamesPlaythroughs?.status ?? FutureStatus.pending) { + switch (widget.viewModel.futureLoadData?.status ?? FutureStatus.pending) { case FutureStatus.pending: case FutureStatus.rejected: return CustomScrollView( @@ -122,59 +134,61 @@ class _PlaysPageState extends State with SingleTickerProviderStateMix }, ), Observer( - builder: (_) { - return widget.viewModel.visualState?.when( - history: () => Observer( - builder: (_) { - return _HistoryTab( - historicalPlaythroughs: widget.viewModel.historicalPlaythroughs, - ); - }, - ), - statistics: () => const SliverToBoxAdapter(), - selectGame: () { - if (!widget.viewModel.hasAnyBoardGames) { - return const _NoBoardGamesSliver(); - } - - return MultiSliver( - children: [ - if (!widget.viewModel.hasAnyBoardGamesToShuffle) - const _NoBoardGamesToShuffleSliver(), - if (widget.viewModel.hasAnyBoardGamesToShuffle) - _GameSpinnerSliver( - scrollController: _scrollController, - shuffledBoardGames: widget.viewModel.shuffledBoardGames, - onSpin: () => _spin(), - onGameSelected: () => _selectGame(), - ), - SliverPersistentHeader( - delegate: BgcSliverTitleHeaderDelegate.title( - primaryTitle: AppText.playsPageGameSpinnerFilterSectionTitle, - ), - ), - Observer( - builder: (_) { - return _GameSpinnerFilters( - gameSpinnerFilters: widget.viewModel.gameSpinnerFilters, - maxNumberOfPlayers: widget.viewModel.maxNumberOfPlayers, - onCollectionToggled: (collectionTyp) => widget.viewModel - .toggleGameSpinnerCollectionFilter(collectionTyp), - onIncludeExpansionsToggled: (isChecked) => widget.viewModel - .toggleIncludeExpansionsFilter(isChecked), - onNumberOfPlayersChanged: (numberOfPlayers) => widget - .viewModel - .updateNumberOfPlayersNumberFilter(numberOfPlayers), - onPlaytimeChanged: (playtime) => - widget.viewModel.updatePlaytimeFilter(playtime), - ); - }, - ), - ], - ); - }, - ) ?? - const SliverToBoxAdapter(); + builder: (BuildContext context) { + return widget.viewModel.visualState.when( + history: () => Observer( + builder: (_) => _HistoryTab( + historicalPlaythroughs: widget.viewModel.historicalPlaythroughs, + ), + ), + statistics: () => _StatisticsTab( + visualState: widget.viewModel.playsStatsVisualState, + onPresetTimePeriodChanged: (presetTimePeriod) => + widget.viewModel.updatePlaysPresetTimePeriod(presetTimePeriod), + onCustomTimePeriodChanged: (DateTimeRange timePeriodDateTimeRange) => + widget.viewModel.updatePlaysCustomTimePeriod(timePeriodDateTimeRange), + ), + selectGame: () { + if (!widget.viewModel.hasAnyBoardGames) { + return const _NoBoardGamesSliver(); + } + + return MultiSliver( + children: [ + if (!widget.viewModel.hasAnyBoardGamesToShuffle) + const _NoBoardGamesToShuffleSliver(), + if (widget.viewModel.hasAnyBoardGamesToShuffle) + _GameSpinnerSliver( + scrollController: _scrollController, + shuffledBoardGames: widget.viewModel.shuffledBoardGames, + onSpin: () => _spin(), + onGameSelected: () => _selectGame(context), + ), + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.title( + primaryTitle: AppText.playsPageGameSpinnerFilterSectionTitle, + ), + ), + Observer( + builder: (_) { + return _GameSpinnerFilters( + gameSpinnerFilters: widget.viewModel.gameSpinnerFilters, + maxNumberOfPlayers: widget.viewModel.maxNumberOfPlayers, + onCollectionToggled: (collectionTyp) => widget.viewModel + .toggleGameSpinnerCollectionFilter(collectionTyp), + onIncludeExpansionsToggled: (isChecked) => + widget.viewModel.toggleIncludeExpansionsFilter(isChecked), + onNumberOfPlayersChanged: (numberOfPlayers) => widget.viewModel + .updateNumberOfPlayersNumberFilter(numberOfPlayers), + onPlaytimeChanged: (playtime) => + widget.viewModel.updatePlaytimeFilter(playtime), + ); + }, + ), + ], + ); + }, + ); }, ), ], @@ -191,7 +205,7 @@ class _PlaysPageState extends State with SingleTickerProviderStateMix ); } - Future _selectGame() async { + Future _selectGame(BuildContext context) async { unawaited(widget.viewModel.trackGameSelected()); final selectedBoardGame = widget.viewModel.shuffledBoardGames[ _scrollController.selectedItem % widget.viewModel.shuffledBoardGames.length]; @@ -207,6 +221,721 @@ class _PlaysPageState extends State with SingleTickerProviderStateMix } } +class _StatisticsTab extends StatelessWidget { + const _StatisticsTab({ + required this.visualState, + required this.onPresetTimePeriodChanged, + required this.onCustomTimePeriodChanged, + }); + + final PlaysStatsVisualState visualState; + final void Function(PlayStatsPresetTimePeriod? presetTimePeriod) onPresetTimePeriodChanged; + final void Function(DateTimeRange timePeriodDateTimeRange) onCustomTimePeriodChanged; + + @override + Widget build(BuildContext context) { + return visualState.when( + empty: () => const _NoPlaysStatsSliver(), + init: () => const _LoadingPlaysStatsSliver(), + loading: () => const _LoadingPlaysStatsSliver(), + stats: ( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged, + ) => + _PlaysStats( + timePeriod: timePeriod, + mostPlayedGames: mostPlayedGames, + totalDuelGamesLogged: totalDuelGamesLogged, + totalGamesLogged: totalGamesLogged, + totalGamesPlayed: totalGamesPlayed, + totalMultiPlayerGamesLogged: totalMultiPlayerGamesLogged, + totalPlaytimeInSeconds: totalPlaytimeInSeconds, + onPresetTimePeriodChanged: onPresetTimePeriodChanged, + onCustomTimePeriodChanged: (timePeriodDateTimeRange) => + onCustomTimePeriodChanged(timePeriodDateTimeRange), + ), + noStatsInPeriod: (TimePeriod timePeriod) => _NoStatsInPeriodSliver( + timePeriod: timePeriod, + onPresetTimePeriodChanged: onPresetTimePeriodChanged, + onCustomTimePeriodChanged: (timePeriodDateTimeRange) => + onCustomTimePeriodChanged(timePeriodDateTimeRange), + ), + ); + } +} + +class _PlaysStats extends StatelessWidget { + const _PlaysStats({ + required this.timePeriod, + required this.mostPlayedGames, + required this.totalGamesLogged, + required this.totalGamesPlayed, + required this.totalPlaytimeInSeconds, + required this.totalDuelGamesLogged, + required this.totalMultiPlayerGamesLogged, + required this.onPresetTimePeriodChanged, + required this.onCustomTimePeriodChanged, + }); + + final TimePeriod timePeriod; + final List mostPlayedGames; + final int totalGamesLogged; + final int totalGamesPlayed; + final int totalPlaytimeInSeconds; + final int totalDuelGamesLogged; + final int totalMultiPlayerGamesLogged; + final void Function(PlayStatsPresetTimePeriod? presetTimePeriod) onPresetTimePeriodChanged; + final void Function(DateTimeRange timePeriodDateTimeRange) onCustomTimePeriodChanged; + + @override + Widget build(BuildContext context) { + return MultiSliver( + children: [ + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.title( + primaryTitle: AppText.playsPageOverallStatsTimePeriodSectionTitle, + ), + ), + SliverToBoxAdapter( + child: Observer( + builder: (_) => _TimePeriodSection( + timePeriod: timePeriod, + onPresetTimePeriodChanged: (presetTimePeriod) => + onPresetTimePeriodChanged(presetTimePeriod), + onCustomTimePeriodChanged: (timePeriodDateTimeRange) => + onCustomTimePeriodChanged(timePeriodDateTimeRange), + ), + ), + ), + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.title( + primaryTitle: AppText.playsPageOverallStatsMostPlayedGameSectionTitle, + ), + ), + SliverToBoxAdapter( + child: Observer( + builder: (_) => _MostPlayedGamesSection( + mostPlayedGames: mostPlayedGames, + ), + ), + ), + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.title( + primaryTitle: AppText.playsPageOverallStatsTotalsSectionTitle, + ), + ), + SliverToBoxAdapter( + child: Observer( + builder: (_) => _OverallStatsSection( + totalGamesLogged: totalGamesLogged, + totalGamesPlayed: totalGamesPlayed, + totalPlaytimeInSeconds: totalPlaytimeInSeconds, + totalDuelGamesLogged: totalDuelGamesLogged, + totalMultiPlayerGamesLogged: totalMultiPlayerGamesLogged, + ), + ), + ), + // TODO Add games distribution section in later iterations + // SliverPersistentHeader( + // delegate: BgcSliverTitleHeaderDelegate.title( + // primaryTitle: AppText.playsPageOverallStatsGamesPlayedDistributionSctionTitle, + // ), + // ), + // SliverToBoxAdapter( + // child: Observer( + // builder: (_) { + // return const _GamesPlayedDistributionSection(); + // }, + // ), + // ), + ], + ); + } +} + +class _NoStatsInPeriodSliver extends StatelessWidget { + const _NoStatsInPeriodSliver({ + required this.timePeriod, + required this.onPresetTimePeriodChanged, + required this.onCustomTimePeriodChanged, + }); + + final TimePeriod timePeriod; + final void Function(PlayStatsPresetTimePeriod? presetTimePeriod) onPresetTimePeriodChanged; + final void Function(DateTimeRange timePeriodDateTimeRange) onCustomTimePeriodChanged; + + @override + Widget build(BuildContext context) { + return MultiSliver( + children: [ + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.title( + primaryTitle: AppText.playsPageOverallStatsTimePeriodSectionTitle, + ), + ), + _TimePeriodSection( + timePeriod: timePeriod, + onPresetTimePeriodChanged: onPresetTimePeriodChanged, + onCustomTimePeriodChanged: (timePeriodDateTimeRange) => + onCustomTimePeriodChanged(timePeriodDateTimeRange), + ), + // Consider using fill up space sliver + const _NoPlaysInPeriodEmptyPageSliver() + ], + ); + } +} + +class _NoPlaysStatsSliver extends StatelessWidget { + const _NoPlaysStatsSliver(); + + @override + Widget build(BuildContext context) { + return const SliverPadding( + padding: EdgeInsets.symmetric( + vertical: Dimensions.standardSpacing, + horizontal: Dimensions.doubleStandardSpacing, + ), + sliver: SliverToBoxAdapter( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: Dimensions.emptyPageTitleTopSpacing), + EmptyPageInformationPanel( + title: AppText.playsPageOverallStatsNoPlayesTitle, + icon: Icon( + FontAwesomeIcons.dice, + size: Dimensions.emptyPageTitleIconSize, + color: AppColors.primaryColor, + ), + subtitle: AppText.playsPageOverallStatsNoPlayesSubtitle, + ), + SizedBox(height: Dimensions.doubleStandardSpacing), + ], + ), + ), + ); + } +} + +class _NoPlaysInPeriodEmptyPageSliver extends StatelessWidget { + const _NoPlaysInPeriodEmptyPageSliver(); + + @override + Widget build(BuildContext context) { + return const SliverPadding( + padding: EdgeInsets.symmetric( + vertical: Dimensions.standardSpacing, + horizontal: Dimensions.doubleStandardSpacing, + ), + sliver: SliverToBoxAdapter( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: Dimensions.emptyPageTitleTopSpacing), + EmptyPageInformationPanel( + title: AppText.playsPageOverallStatsTimePeriodTitle, + icon: Icon( + Icons.query_stats, + size: Dimensions.emptyPageTitleIconSize, + color: AppColors.primaryColor, + ), + subtitle: AppText.playsPageOverallStatsTimePeriodSubtitle, + ), + SizedBox(height: Dimensions.doubleStandardSpacing), + ], + ), + ), + ); + } +} + +class _LoadingPlaysStatsSliver extends StatelessWidget { + const _LoadingPlaysStatsSliver(); + + @override + Widget build(BuildContext context) { + return const SliverFillRemaining(child: LoadingIndicator()); + } +} + +class _TimePeriodSection extends StatelessWidget { + const _TimePeriodSection({ + required this.timePeriod, + required this.onPresetTimePeriodChanged, + required this.onCustomTimePeriodChanged, + }); + + final TimePeriod timePeriod; + final void Function(PlayStatsPresetTimePeriod? presetTimePeriod) onPresetTimePeriodChanged; + final void Function(DateTimeRange timePeriodDateTimeRange) onCustomTimePeriodChanged; + + static final DateFormat _timePeriodDateFormat = DateFormat.yMMMd(); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(Dimensions.standardSpacing), + child: Row( + children: [ + Expanded( + child: DropdownButton( + iconEnabledColor: AppColors.accentColor, + iconSize: 42, + value: timePeriod.presetTimePeriod, + underline: const SizedBox.shrink(), + isExpanded: true, + items: [ + DropdownMenuItem( + value: PlayStatsPresetTimePeriod.LastWeek, + child: Text( + AppText.playsPageOverallStatsTimePeriodLastWeek, + style: AppTheme.theme.textTheme.bodyLarge!, + ), + ), + DropdownMenuItem( + value: PlayStatsPresetTimePeriod.LastMonth, + child: Text( + AppText.playsPageOverallStatsTimePeriodLastMonth, + style: AppTheme.theme.textTheme.bodyLarge!, + ), + ), + DropdownMenuItem( + value: PlayStatsPresetTimePeriod.LastYear, + child: Text( + AppText.playsPageOverallStatsTimePeriodLastYear, + style: AppTheme.theme.textTheme.bodyLarge!, + ), + ), + // TODO Upon picking this one date range picker should show up + DropdownMenuItem( + value: PlayStatsPresetTimePeriod.Custom, + child: Text( + AppText.playsPageOverallStatsTimePeriodCustom, + style: AppTheme.theme.textTheme.bodyLarge!, + ), + ), + ], + onChanged: (PlayStatsPresetTimePeriod? value) => onPresetTimePeriodChanged(value), + ), + ), + const SizedBox(width: Dimensions.doubleStandardSpacing), + Column( + children: [ + IconButton( + onPressed: () => _pickCustomTimePeriodRange(context), + icon: const Icon(Icons.calendar_month, size: 32), + ), + Text( + sprintf( + AppText.playsPageOverallStatsTimePeriodDatesFormat, + [ + _timePeriodDateFormat.format(timePeriod.from), + _timePeriodDateFormat.format(timePeriod.to) + ], + ), + ), + Text( + sprintf( + AppText.playsPageOverallStatsTimePeriodInDaysFormat, + [timePeriod.daysInPeriod], + ), + ), + ], + ), + ], + ), + ); + } + + Future _pickCustomTimePeriodRange(BuildContext context) async { + final pickedDateRange = await showDateRangePicker( + context: context, + firstDate: timePeriod.earliestPlaythrough, + lastDate: DateTime.now(), + initialDateRange: DateTimeRange(start: timePeriod.from, end: timePeriod.to), + currentDate: timePeriod.from, + helpText: AppText.playsPageOverallStatsTimePeriodPickerHelpText, + builder: (_, Widget? child) { + return Theme( + data: Theme.of(context).copyWith( + colorScheme: Theme.of(context).colorScheme.copyWith( + primary: AppColors.accentColor, + ), + ), + child: child!, + ); + }, + ); + + if (pickedDateRange == null) { + return; + } + + onCustomTimePeriodChanged(pickedDateRange); + } + + // Future _pickFromDate(BuildContext context) async { + // final DateTime now = DateTime.now(); + // final DateTime? newStartDate = await showDatePicker( + // context: context, + // initialDate: widget.viewModel.playthroughStartTime, + // firstDate: now.add(const Duration(days: -Constants.daysInTenYears)), + // lastDate: now, + // currentDate: now, + // helpText: 'Pick a playthrough date', + // builder: (_, Widget? child) { + // return Theme( + // data: Theme.of(context).copyWith( + // colorScheme: Theme.of(context).colorScheme.copyWith( + // primary: AppColors.accentColor, + // ), + // ), + // child: child!, + // ); + // }, + // ); + + // if (newStartDate == null) { + // return; + // } + + // widget.viewModel.updateStartDate(newStartDate); + // } +} + +class _MostPlayedGamesSection extends StatelessWidget { + const _MostPlayedGamesSection({ + required this.mostPlayedGames, + }); + + static const double _iconSize = 24; + static const TextStyle _textStyle = TextStyle(fontSize: Dimensions.standardFontSize); + + final List mostPlayedGames; + + @override + Widget build(BuildContext context) { + return SizedBox( + height: Dimensions.mostPlayedGamesImageHeight + Dimensions.standardSpacing * 2, + child: ListView.separated( + scrollDirection: Axis.horizontal, + itemBuilder: (_, int index) { + final mostPlayedGame = mostPlayedGames[index].boardGameDetails; + return Padding( + padding: EdgeInsets.only( + left: index == 0 ? Dimensions.standardSpacing : 0, + top: Dimensions.standardSpacing, + bottom: Dimensions.standardSpacing, + right: index == mostPlayedGames.length - 1 ? Dimensions.standardSpacing : 0, + ), + child: Row( + children: [ + SizedBox( + width: Dimensions.mostPlayedGamesImageHeight, + child: BoardGameTile( + id: mostPlayedGame.id, + name: mostPlayedGame.name, + imageUrl: mostPlayedGame.imageUrl ?? '', + rank: index + 1, + ), + ), + const SizedBox(width: Dimensions.halfStandardSpacing), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + VerticalStatisticsItem.withMaterialIcon( + text: sprintf( + AppText.playsPageOverallStatsTotalPlayedGamesFormat, + [mostPlayedGames[index].totalNumberOfPlays], + ), + textStyle: _textStyle, + icon: Icons.casino, + iconColor: AppColors.playedGamesStatColor, + iconSize: _iconSize, + ), + const SizedBox(height: Dimensions.halfStandardSpacing), + VerticalStatisticsItem.withMaterialIcon( + icon: Icons.timelapse, + iconColor: AppColors.highscoreStatColor, + iconSize: _iconSize, + text: mostPlayedGames[index].totalTimePlayedInSeconds.toPlaytimeDuration(), + textStyle: _textStyle, + ), + ], + ), + ], + ), + ); + }, + separatorBuilder: (BuildContext context, int index) => + const SizedBox(width: Dimensions.doubleStandardSpacing), + itemCount: mostPlayedGames.length, + ), + ); + } +} + +class _OverallStatsSection extends StatelessWidget { + const _OverallStatsSection({ + required this.totalGamesLogged, + required this.totalGamesPlayed, + required this.totalPlaytimeInSeconds, + required this.totalDuelGamesLogged, + required this.totalMultiPlayerGamesLogged, + }); + + final int totalGamesLogged; + final int totalGamesPlayed; + final int totalPlaytimeInSeconds; + final int totalDuelGamesLogged; + final int totalMultiPlayerGamesLogged; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(Dimensions.standardSpacing), + child: Row( + children: [ + Column( + children: [ + VerticalStatisticsItem.withMaterialIcon( + text: totalGamesLogged.toString(), + icon: Icons.casino, + iconColor: AppColors.playedGamesStatColor, + subtitle: AppText.playsPageOverallStatsTotalGamesLogged, + ), + const SizedBox(height: Dimensions.doubleStandardSpacing), + VerticalStatisticsItem.withFontAwesomeIcon( + text: totalGamesPlayed.toString(), + icon: FontAwesomeIcons.chessBoard, + iconColor: AppColors.averagePlayerCountStatColor, + subtitle: AppText.playsPageOverallStatsTotalPlayedGames, + ), + ], + ), + const Spacer(), + Column( + children: [ + VerticalStatisticsItem.withMaterialIcon( + text: totalPlaytimeInSeconds.toPlaytimeDuration(), + icon: Icons.timelapse, + iconColor: AppColors.highscoreStatColor, + subtitle: AppText.playsPageOverallStatsTotalPlaytime, + ), + ], + ), + const Spacer(), + Column( + children: [ + VerticalStatisticsItem.withMaterialIcon( + text: totalDuelGamesLogged.toString(), + icon: Icons.people, + iconColor: AppColors.averagePlaytimeStatColor, + subtitle: AppText.playsPageOverallStatsTotalDuels, + ), + const SizedBox(height: Dimensions.doubleStandardSpacing), + VerticalStatisticsItem.withFontAwesomeIcon( + text: totalMultiPlayerGamesLogged.toString(), + icon: FontAwesomeIcons.users, + iconColor: AppColors.totalPlaytimeStatColor, + subtitle: AppText.playsPageOverallStatsTotalMultiplePlayerGames, + ), + ], + ), + ], + ), + ); + } +} + +// class _GamesPlayedDistributionSection extends StatelessWidget { +// const _GamesPlayedDistributionSection(); + +// @override +// Widget build(BuildContext context) { +// return Container(); +// } +// } + +// class _PlayerCharts extends StatefulWidget { +// const _PlayerCharts({ +// required this.playerCountPercentage, +// }); + +// final List playerCountPercentage; +// final List? playerWinsPercentage; + +// @override +// State<_PlayerCharts> createState() => _PlayerChartsState(); +// } + +// class _PlayerChartsState extends State<_PlayerCharts> { +// late Map playerCountChartColors; +// late Map playerWinsChartColors; + +// static const double _chartSize = 160; + +// @override +// void initState() { +// super.initState(); +// } + +// @override +// Widget build(BuildContext context) { +// // TODO MK Probalby not best to calculate this with every build +// // Need a better state control strategy (mobx?) +// playerCountChartColors = {}; +// playerWinsChartColors = {}; +// int i = 0; +// for (final PlayerCountStatistics playeCountStatistics in widget.playerCountPercentage) { +// playerCountChartColors[playeCountStatistics.numberOfPlayers] = +// AppColors.chartColorPallete[i++ % AppColors.chartColorPallete.length]; +// } +// if (widget.playerWinsPercentage != null) { +// i = 0; +// for (final PlayerWinsStatistics playerWinsStatistics in widget.playerWinsPercentage!) { +// playerWinsChartColors[playerWinsStatistics.player] = +// AppColors.chartColorPallete[i++ % AppColors.chartColorPallete.length]; +// } +// } + +// return Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// const SizedBox(height: Dimensions.halfStandardSpacing), +// Row( +// children: [ +// SizedBox( +// height: _chartSize, +// width: _chartSize, +// child: PieChart( +// PieChartData( +// sections: [ +// for (final PlayerCountStatistics playeCountStatistics +// in widget.playerCountPercentage) +// PieChartSectionData( +// value: playeCountStatistics.gamesPlayedPercentage, +// title: '${playeCountStatistics.numberOfGamesPlayed}', +// color: playerCountChartColors[playeCountStatistics.numberOfPlayers], +// ), +// ], +// ), +// ), +// ), +// const Spacer(), +// if (widget.playerWinsPercentage != null) +// SizedBox( +// height: _chartSize, +// width: _chartSize, +// child: PieChart( +// PieChartData( +// sections: [ +// for (final PlayerWinsStatistics playeWinsStatistics +// in widget.playerWinsPercentage!) +// PieChartSectionData( +// value: playeWinsStatistics.winsPercentage, +// title: '${playeWinsStatistics.numberOfWins}', +// color: playerWinsChartColors[playeWinsStatistics.player], +// ), +// ], +// ), +// ), +// ), +// ], +// ), +// const SizedBox(height: Dimensions.halfStandardSpacing), +// Row( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Column( +// mainAxisSize: MainAxisSize.max, +// mainAxisAlignment: MainAxisAlignment.start, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// for (final PlayerCountStatistics playeCountStatistics +// in widget.playerCountPercentage) +// Padding( +// padding: const EdgeInsets.only(bottom: Dimensions.standardSpacing), +// child: Row( +// children: [ +// ChartLegendBox( +// color: playerCountChartColors[playeCountStatistics.numberOfPlayers]!), +// const SizedBox(width: Dimensions.halfStandardSpacing), +// RichText( +// text: TextSpan( +// children: [ +// TextSpan( +// text: sprintf( +// playeCountStatistics.numberOfPlayers > 1 +// ? AppText +// .playthroughsStatisticsPagePlayerCountChartLegendFormatPlural +// : AppText +// .playthroughsStatisticsPagePlayerCountChartLegendFormatSingular, +// [ +// playeCountStatistics.numberOfPlayers, +// ], +// ), +// ), +// TextSpan( +// text: +// ' [${(playeCountStatistics.gamesPlayedPercentage * 100).toStringAsFixed(0)}%]', +// style: AppTheme.theme.textTheme.titleMedium, +// ), +// ], +// ), +// ), +// ], +// ), +// ), +// ], +// ), +// const Spacer(), +// if (widget.playerWinsPercentage != null) +// Column( +// mainAxisSize: MainAxisSize.max, +// mainAxisAlignment: MainAxisAlignment.start, +// crossAxisAlignment: CrossAxisAlignment.end, +// children: [ +// for (final PlayerWinsStatistics playerWinsStatistics +// in widget.playerWinsPercentage!) +// Padding( +// padding: const EdgeInsets.only(bottom: Dimensions.standardSpacing), +// child: Row( +// children: [ +// RichText( +// text: TextSpan( +// children: [ +// TextSpan(text: '${playerWinsStatistics.player.name} '), +// TextSpan( +// text: +// '[${(playerWinsStatistics.winsPercentage * 100).toStringAsFixed(0)}%]', +// style: AppTheme.theme.textTheme.titleMedium, +// ), +// ], +// ), +// ), +// const SizedBox(width: Dimensions.halfStandardSpacing), +// ChartLegendBox( +// color: playerWinsChartColors[playerWinsStatistics.player]!, +// ), +// ], +// ), +// ), +// ], +// ), +// ], +// ), +// ], +// ); +// } +// } + class _HistoricalPlaythroughSliverList extends StatelessWidget { const _HistoricalPlaythroughSliverList({ required this.historicalPlaythroughs, @@ -831,128 +1560,6 @@ class _HistoricalPlaythroughItem extends StatelessWidget { } } -// class _PlaythroughGroupListSliver extends StatelessWidget { -// const _PlaythroughGroupListSliver({ -// Key? key, -// required this.groupedBoardGamePlaythroughs, -// }) : super(key: key); - -// final GroupedBoardGamePlaythroughs groupedBoardGamePlaythroughs; - -// @override -// Widget build(BuildContext context) { -// return SliverList( -// delegate: SliverChildBuilderDelegate( -// (_, index) { -// final boardGamePlaythrough = groupedBoardGamePlaythroughs.boardGamePlaythroughs[index]; -// final isFirst = index == 0; -// return Padding( -// padding: EdgeInsets.only( -// top: isFirst ? Dimensions.standardSpacing : 0, -// bottom: Dimensions.standardSpacing, -// left: Dimensions.standardSpacing, -// right: Dimensions.standardSpacing, -// ), -// child: PanelContainer( -// child: Material( -// color: Colors.transparent, -// child: InkWell( -// borderRadius: BorderRadius.circular(AppStyles.panelContainerCornerRadius), -// onTap: () => _navigateToEditPlaythrough( -// context, -// boardGamePlaythrough.boardGameDetails.id, -// boardGamePlaythrough.playthrough.id, -// ), -// child: Padding( -// padding: const EdgeInsets.all(Dimensions.standardSpacing), -// child: Column( -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// IntrinsicHeight( -// child: Row( -// children: [ -// SizedBox( -// height: Dimensions.collectionSearchResultBoardGameImageHeight, -// width: Dimensions.collectionSearchResultBoardGameImageWidth, -// child: BoardGameTile( -// id: boardGamePlaythrough.id, -// imageUrl: -// boardGamePlaythrough.boardGameDetails.thumbnailUrl ?? '', -// ), -// ), -// const SizedBox(width: Dimensions.standardSpacing), -// Expanded( -// child: _PlaythroughDetails( -// boardGamePlaythrough: boardGamePlaythrough, -// ), -// ), -// _PlaythroughActions( -// onTapBoardGameDetails: () => -// _navigateToBoardGameDetails(context, boardGamePlaythrough), -// onTapPlaythroughs: () => -// _navigateToPlaythrough(context, boardGamePlaythrough), -// ), -// ], -// ), -// ) -// ], -// ), -// ), -// ), -// ), -// ), -// ); -// }, -// childCount: groupedBoardGamePlaythroughs.boardGamePlaythroughs.length, -// ), -// ); -// } - -// Future _navigateToPlaythrough( -// BuildContext context, -// BoardGamePlaythrough boardGamePlaythrough, -// ) => -// Navigator.pushNamed( -// context, -// PlaythroughsPage.pageRoute, -// arguments: PlaythroughsPageArguments( -// boardGameDetails: boardGamePlaythrough.boardGameDetails, -// boardGameImageHeroId: boardGamePlaythrough.id, -// ), -// ); - -// void _navigateToBoardGameDetails( -// BuildContext context, -// BoardGamePlaythrough boardGamePlaythrough, -// ) { -// Navigator.pushNamed( -// context, -// BoardGamesDetailsPage.pageRoute, -// arguments: BoardGameDetailsPageArguments( -// boardGameId: boardGamePlaythrough.boardGameDetails.id, -// boardGameImageHeroId: boardGamePlaythrough.id, -// navigatingFromType: PlaysPage, -// ), -// ); -// } - -// void _navigateToEditPlaythrough( -// BuildContext context, -// String boardGameId, -// String playthroughId, -// ) { -// Navigator.pushNamed( -// context, -// EditPlaythroughPage.pageRoute, -// arguments: EditPlaythroughPageArguments( -// boardGameId: boardGameId, -// playthroughId: playthroughId, -// goBackPageRoute: HomePage.pageRoute, -// ), -// ); -// } -// } - class _PlaythroughDetails extends StatelessWidget { const _PlaythroughDetails({ required this.boardGamePlaythrough, @@ -1207,12 +1814,11 @@ class _AppBar extends StatelessWidget { Icons.history, isSelected: tabVisualState == const PlaysPageVisualState.history(), ), - // TODO Add stats page - // AppBarBottomTab( - // AppText.playsPageStatisticsTabTitle, - // Icons.multiline_chart, - // isSelected: tabVisualState?.playsTab == PlaysTab.statistics, - // ), + AppBarBottomTab( + AppText.playsPageStatisticsTabTitle, + Icons.query_stats, + isSelected: tabVisualState == const PlaysPageVisualState.statistics(), + ), AppBarBottomTab( AppText.playsPageSelectGameTabTitle, Icons.shuffle, diff --git a/board_games_companion/lib/pages/plays/plays_stats_visual_states.dart b/board_games_companion/lib/pages/plays/plays_stats_visual_states.dart new file mode 100644 index 00000000..1178d4c7 --- /dev/null +++ b/board_games_companion/lib/pages/plays/plays_stats_visual_states.dart @@ -0,0 +1,25 @@ +import 'package:board_games_companion/pages/plays/most_played_game.dart'; +import 'package:freezed_annotation/freezed_annotation.dart'; + +import 'time_period.dart'; + +part 'plays_stats_visual_states.freezed.dart'; + +@freezed +class PlaysStatsVisualState with _$PlaysStatsVisualState { + const factory PlaysStatsVisualState.init() = _init; + const factory PlaysStatsVisualState.loading() = _loading; + const factory PlaysStatsVisualState.noStatsInPeriod({ + required TimePeriod timePeriod, + }) = _noStatsInPeriod; + const factory PlaysStatsVisualState.stats({ + required TimePeriod timePeriod, + required List mostPlayedGames, + required int totalGamesLogged, + required int totalGamesPlayed, + required int totalPlaytimeInSeconds, + required int totalDuelGamesLogged, + required int totalMultiPlayerGamesLogged, + }) = _stats; + const factory PlaysStatsVisualState.empty() = _empty; +} diff --git a/board_games_companion/lib/pages/plays/plays_stats_visual_states.freezed.dart b/board_games_companion/lib/pages/plays/plays_stats_visual_states.freezed.dart new file mode 100644 index 00000000..3b03681d --- /dev/null +++ b/board_games_companion/lib/pages/plays/plays_stats_visual_states.freezed.dart @@ -0,0 +1,1042 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'plays_stats_visual_states.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + +/// @nodoc +mixin _$PlaysStatsVisualState { + @optionalTypeArgs + TResult when({ + required TResult Function() init, + required TResult Function() loading, + required TResult Function(TimePeriod timePeriod) noStatsInPeriod, + required TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged) + stats, + required TResult Function() empty, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? init, + TResult? Function()? loading, + TResult? Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult? Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult? Function()? empty, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? init, + TResult Function()? loading, + TResult Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult Function()? empty, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult map({ + required TResult Function(_init value) init, + required TResult Function(_loading value) loading, + required TResult Function(_noStatsInPeriod value) noStatsInPeriod, + required TResult Function(_stats value) stats, + required TResult Function(_empty value) empty, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_init value)? init, + TResult? Function(_loading value)? loading, + TResult? Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult? Function(_stats value)? stats, + TResult? Function(_empty value)? empty, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_init value)? init, + TResult Function(_loading value)? loading, + TResult Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult Function(_stats value)? stats, + TResult Function(_empty value)? empty, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $PlaysStatsVisualStateCopyWith<$Res> { + factory $PlaysStatsVisualStateCopyWith(PlaysStatsVisualState value, + $Res Function(PlaysStatsVisualState) then) = + _$PlaysStatsVisualStateCopyWithImpl<$Res, PlaysStatsVisualState>; +} + +/// @nodoc +class _$PlaysStatsVisualStateCopyWithImpl<$Res, + $Val extends PlaysStatsVisualState> + implements $PlaysStatsVisualStateCopyWith<$Res> { + _$PlaysStatsVisualStateCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; +} + +/// @nodoc +abstract class _$$initImplCopyWith<$Res> { + factory _$$initImplCopyWith( + _$initImpl value, $Res Function(_$initImpl) then) = + __$$initImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$initImplCopyWithImpl<$Res> + extends _$PlaysStatsVisualStateCopyWithImpl<$Res, _$initImpl> + implements _$$initImplCopyWith<$Res> { + __$$initImplCopyWithImpl(_$initImpl _value, $Res Function(_$initImpl) _then) + : super(_value, _then); +} + +/// @nodoc + +class _$initImpl implements _init { + const _$initImpl(); + + @override + String toString() { + return 'PlaysStatsVisualState.init()'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && other is _$initImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() init, + required TResult Function() loading, + required TResult Function(TimePeriod timePeriod) noStatsInPeriod, + required TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged) + stats, + required TResult Function() empty, + }) { + return init(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? init, + TResult? Function()? loading, + TResult? Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult? Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult? Function()? empty, + }) { + return init?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? init, + TResult Function()? loading, + TResult Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult Function()? empty, + required TResult orElse(), + }) { + if (init != null) { + return init(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_init value) init, + required TResult Function(_loading value) loading, + required TResult Function(_noStatsInPeriod value) noStatsInPeriod, + required TResult Function(_stats value) stats, + required TResult Function(_empty value) empty, + }) { + return init(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_init value)? init, + TResult? Function(_loading value)? loading, + TResult? Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult? Function(_stats value)? stats, + TResult? Function(_empty value)? empty, + }) { + return init?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_init value)? init, + TResult Function(_loading value)? loading, + TResult Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult Function(_stats value)? stats, + TResult Function(_empty value)? empty, + required TResult orElse(), + }) { + if (init != null) { + return init(this); + } + return orElse(); + } +} + +abstract class _init implements PlaysStatsVisualState { + const factory _init() = _$initImpl; +} + +/// @nodoc +abstract class _$$loadingImplCopyWith<$Res> { + factory _$$loadingImplCopyWith( + _$loadingImpl value, $Res Function(_$loadingImpl) then) = + __$$loadingImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$loadingImplCopyWithImpl<$Res> + extends _$PlaysStatsVisualStateCopyWithImpl<$Res, _$loadingImpl> + implements _$$loadingImplCopyWith<$Res> { + __$$loadingImplCopyWithImpl( + _$loadingImpl _value, $Res Function(_$loadingImpl) _then) + : super(_value, _then); +} + +/// @nodoc + +class _$loadingImpl implements _loading { + const _$loadingImpl(); + + @override + String toString() { + return 'PlaysStatsVisualState.loading()'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && other is _$loadingImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() init, + required TResult Function() loading, + required TResult Function(TimePeriod timePeriod) noStatsInPeriod, + required TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged) + stats, + required TResult Function() empty, + }) { + return loading(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? init, + TResult? Function()? loading, + TResult? Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult? Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult? Function()? empty, + }) { + return loading?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? init, + TResult Function()? loading, + TResult Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult Function()? empty, + required TResult orElse(), + }) { + if (loading != null) { + return loading(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_init value) init, + required TResult Function(_loading value) loading, + required TResult Function(_noStatsInPeriod value) noStatsInPeriod, + required TResult Function(_stats value) stats, + required TResult Function(_empty value) empty, + }) { + return loading(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_init value)? init, + TResult? Function(_loading value)? loading, + TResult? Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult? Function(_stats value)? stats, + TResult? Function(_empty value)? empty, + }) { + return loading?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_init value)? init, + TResult Function(_loading value)? loading, + TResult Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult Function(_stats value)? stats, + TResult Function(_empty value)? empty, + required TResult orElse(), + }) { + if (loading != null) { + return loading(this); + } + return orElse(); + } +} + +abstract class _loading implements PlaysStatsVisualState { + const factory _loading() = _$loadingImpl; +} + +/// @nodoc +abstract class _$$noStatsInPeriodImplCopyWith<$Res> { + factory _$$noStatsInPeriodImplCopyWith(_$noStatsInPeriodImpl value, + $Res Function(_$noStatsInPeriodImpl) then) = + __$$noStatsInPeriodImplCopyWithImpl<$Res>; + @useResult + $Res call({TimePeriod timePeriod}); + + $TimePeriodCopyWith<$Res> get timePeriod; +} + +/// @nodoc +class __$$noStatsInPeriodImplCopyWithImpl<$Res> + extends _$PlaysStatsVisualStateCopyWithImpl<$Res, _$noStatsInPeriodImpl> + implements _$$noStatsInPeriodImplCopyWith<$Res> { + __$$noStatsInPeriodImplCopyWithImpl( + _$noStatsInPeriodImpl _value, $Res Function(_$noStatsInPeriodImpl) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? timePeriod = null, + }) { + return _then(_$noStatsInPeriodImpl( + timePeriod: null == timePeriod + ? _value.timePeriod + : timePeriod // ignore: cast_nullable_to_non_nullable + as TimePeriod, + )); + } + + @override + @pragma('vm:prefer-inline') + $TimePeriodCopyWith<$Res> get timePeriod { + return $TimePeriodCopyWith<$Res>(_value.timePeriod, (value) { + return _then(_value.copyWith(timePeriod: value)); + }); + } +} + +/// @nodoc + +class _$noStatsInPeriodImpl implements _noStatsInPeriod { + const _$noStatsInPeriodImpl({required this.timePeriod}); + + @override + final TimePeriod timePeriod; + + @override + String toString() { + return 'PlaysStatsVisualState.noStatsInPeriod(timePeriod: $timePeriod)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$noStatsInPeriodImpl && + (identical(other.timePeriod, timePeriod) || + other.timePeriod == timePeriod)); + } + + @override + int get hashCode => Object.hash(runtimeType, timePeriod); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$noStatsInPeriodImplCopyWith<_$noStatsInPeriodImpl> get copyWith => + __$$noStatsInPeriodImplCopyWithImpl<_$noStatsInPeriodImpl>( + this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() init, + required TResult Function() loading, + required TResult Function(TimePeriod timePeriod) noStatsInPeriod, + required TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged) + stats, + required TResult Function() empty, + }) { + return noStatsInPeriod(timePeriod); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? init, + TResult? Function()? loading, + TResult? Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult? Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult? Function()? empty, + }) { + return noStatsInPeriod?.call(timePeriod); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? init, + TResult Function()? loading, + TResult Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult Function()? empty, + required TResult orElse(), + }) { + if (noStatsInPeriod != null) { + return noStatsInPeriod(timePeriod); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_init value) init, + required TResult Function(_loading value) loading, + required TResult Function(_noStatsInPeriod value) noStatsInPeriod, + required TResult Function(_stats value) stats, + required TResult Function(_empty value) empty, + }) { + return noStatsInPeriod(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_init value)? init, + TResult? Function(_loading value)? loading, + TResult? Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult? Function(_stats value)? stats, + TResult? Function(_empty value)? empty, + }) { + return noStatsInPeriod?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_init value)? init, + TResult Function(_loading value)? loading, + TResult Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult Function(_stats value)? stats, + TResult Function(_empty value)? empty, + required TResult orElse(), + }) { + if (noStatsInPeriod != null) { + return noStatsInPeriod(this); + } + return orElse(); + } +} + +abstract class _noStatsInPeriod implements PlaysStatsVisualState { + const factory _noStatsInPeriod({required final TimePeriod timePeriod}) = + _$noStatsInPeriodImpl; + + TimePeriod get timePeriod; + @JsonKey(ignore: true) + _$$noStatsInPeriodImplCopyWith<_$noStatsInPeriodImpl> get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$statsImplCopyWith<$Res> { + factory _$$statsImplCopyWith( + _$statsImpl value, $Res Function(_$statsImpl) then) = + __$$statsImplCopyWithImpl<$Res>; + @useResult + $Res call( + {TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged}); + + $TimePeriodCopyWith<$Res> get timePeriod; +} + +/// @nodoc +class __$$statsImplCopyWithImpl<$Res> + extends _$PlaysStatsVisualStateCopyWithImpl<$Res, _$statsImpl> + implements _$$statsImplCopyWith<$Res> { + __$$statsImplCopyWithImpl( + _$statsImpl _value, $Res Function(_$statsImpl) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? timePeriod = null, + Object? mostPlayedGames = null, + Object? totalGamesLogged = null, + Object? totalGamesPlayed = null, + Object? totalPlaytimeInSeconds = null, + Object? totalDuelGamesLogged = null, + Object? totalMultiPlayerGamesLogged = null, + }) { + return _then(_$statsImpl( + timePeriod: null == timePeriod + ? _value.timePeriod + : timePeriod // ignore: cast_nullable_to_non_nullable + as TimePeriod, + mostPlayedGames: null == mostPlayedGames + ? _value._mostPlayedGames + : mostPlayedGames // ignore: cast_nullable_to_non_nullable + as List, + totalGamesLogged: null == totalGamesLogged + ? _value.totalGamesLogged + : totalGamesLogged // ignore: cast_nullable_to_non_nullable + as int, + totalGamesPlayed: null == totalGamesPlayed + ? _value.totalGamesPlayed + : totalGamesPlayed // ignore: cast_nullable_to_non_nullable + as int, + totalPlaytimeInSeconds: null == totalPlaytimeInSeconds + ? _value.totalPlaytimeInSeconds + : totalPlaytimeInSeconds // ignore: cast_nullable_to_non_nullable + as int, + totalDuelGamesLogged: null == totalDuelGamesLogged + ? _value.totalDuelGamesLogged + : totalDuelGamesLogged // ignore: cast_nullable_to_non_nullable + as int, + totalMultiPlayerGamesLogged: null == totalMultiPlayerGamesLogged + ? _value.totalMultiPlayerGamesLogged + : totalMultiPlayerGamesLogged // ignore: cast_nullable_to_non_nullable + as int, + )); + } + + @override + @pragma('vm:prefer-inline') + $TimePeriodCopyWith<$Res> get timePeriod { + return $TimePeriodCopyWith<$Res>(_value.timePeriod, (value) { + return _then(_value.copyWith(timePeriod: value)); + }); + } +} + +/// @nodoc + +class _$statsImpl implements _stats { + const _$statsImpl( + {required this.timePeriod, + required final List mostPlayedGames, + required this.totalGamesLogged, + required this.totalGamesPlayed, + required this.totalPlaytimeInSeconds, + required this.totalDuelGamesLogged, + required this.totalMultiPlayerGamesLogged}) + : _mostPlayedGames = mostPlayedGames; + + @override + final TimePeriod timePeriod; + final List _mostPlayedGames; + @override + List get mostPlayedGames { + if (_mostPlayedGames is EqualUnmodifiableListView) return _mostPlayedGames; + // ignore: implicit_dynamic_type + return EqualUnmodifiableListView(_mostPlayedGames); + } + + @override + final int totalGamesLogged; + @override + final int totalGamesPlayed; + @override + final int totalPlaytimeInSeconds; + @override + final int totalDuelGamesLogged; + @override + final int totalMultiPlayerGamesLogged; + + @override + String toString() { + return 'PlaysStatsVisualState.stats(timePeriod: $timePeriod, mostPlayedGames: $mostPlayedGames, totalGamesLogged: $totalGamesLogged, totalGamesPlayed: $totalGamesPlayed, totalPlaytimeInSeconds: $totalPlaytimeInSeconds, totalDuelGamesLogged: $totalDuelGamesLogged, totalMultiPlayerGamesLogged: $totalMultiPlayerGamesLogged)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$statsImpl && + (identical(other.timePeriod, timePeriod) || + other.timePeriod == timePeriod) && + const DeepCollectionEquality() + .equals(other._mostPlayedGames, _mostPlayedGames) && + (identical(other.totalGamesLogged, totalGamesLogged) || + other.totalGamesLogged == totalGamesLogged) && + (identical(other.totalGamesPlayed, totalGamesPlayed) || + other.totalGamesPlayed == totalGamesPlayed) && + (identical(other.totalPlaytimeInSeconds, totalPlaytimeInSeconds) || + other.totalPlaytimeInSeconds == totalPlaytimeInSeconds) && + (identical(other.totalDuelGamesLogged, totalDuelGamesLogged) || + other.totalDuelGamesLogged == totalDuelGamesLogged) && + (identical(other.totalMultiPlayerGamesLogged, + totalMultiPlayerGamesLogged) || + other.totalMultiPlayerGamesLogged == + totalMultiPlayerGamesLogged)); + } + + @override + int get hashCode => Object.hash( + runtimeType, + timePeriod, + const DeepCollectionEquality().hash(_mostPlayedGames), + totalGamesLogged, + totalGamesPlayed, + totalPlaytimeInSeconds, + totalDuelGamesLogged, + totalMultiPlayerGamesLogged); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$statsImplCopyWith<_$statsImpl> get copyWith => + __$$statsImplCopyWithImpl<_$statsImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() init, + required TResult Function() loading, + required TResult Function(TimePeriod timePeriod) noStatsInPeriod, + required TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged) + stats, + required TResult Function() empty, + }) { + return stats( + timePeriod, + mostPlayedGames, + totalGamesLogged, + totalGamesPlayed, + totalPlaytimeInSeconds, + totalDuelGamesLogged, + totalMultiPlayerGamesLogged); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? init, + TResult? Function()? loading, + TResult? Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult? Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult? Function()? empty, + }) { + return stats?.call( + timePeriod, + mostPlayedGames, + totalGamesLogged, + totalGamesPlayed, + totalPlaytimeInSeconds, + totalDuelGamesLogged, + totalMultiPlayerGamesLogged); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? init, + TResult Function()? loading, + TResult Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult Function()? empty, + required TResult orElse(), + }) { + if (stats != null) { + return stats( + timePeriod, + mostPlayedGames, + totalGamesLogged, + totalGamesPlayed, + totalPlaytimeInSeconds, + totalDuelGamesLogged, + totalMultiPlayerGamesLogged); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_init value) init, + required TResult Function(_loading value) loading, + required TResult Function(_noStatsInPeriod value) noStatsInPeriod, + required TResult Function(_stats value) stats, + required TResult Function(_empty value) empty, + }) { + return stats(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_init value)? init, + TResult? Function(_loading value)? loading, + TResult? Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult? Function(_stats value)? stats, + TResult? Function(_empty value)? empty, + }) { + return stats?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_init value)? init, + TResult Function(_loading value)? loading, + TResult Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult Function(_stats value)? stats, + TResult Function(_empty value)? empty, + required TResult orElse(), + }) { + if (stats != null) { + return stats(this); + } + return orElse(); + } +} + +abstract class _stats implements PlaysStatsVisualState { + const factory _stats( + {required final TimePeriod timePeriod, + required final List mostPlayedGames, + required final int totalGamesLogged, + required final int totalGamesPlayed, + required final int totalPlaytimeInSeconds, + required final int totalDuelGamesLogged, + required final int totalMultiPlayerGamesLogged}) = _$statsImpl; + + TimePeriod get timePeriod; + List get mostPlayedGames; + int get totalGamesLogged; + int get totalGamesPlayed; + int get totalPlaytimeInSeconds; + int get totalDuelGamesLogged; + int get totalMultiPlayerGamesLogged; + @JsonKey(ignore: true) + _$$statsImplCopyWith<_$statsImpl> get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$emptyImplCopyWith<$Res> { + factory _$$emptyImplCopyWith( + _$emptyImpl value, $Res Function(_$emptyImpl) then) = + __$$emptyImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$emptyImplCopyWithImpl<$Res> + extends _$PlaysStatsVisualStateCopyWithImpl<$Res, _$emptyImpl> + implements _$$emptyImplCopyWith<$Res> { + __$$emptyImplCopyWithImpl( + _$emptyImpl _value, $Res Function(_$emptyImpl) _then) + : super(_value, _then); +} + +/// @nodoc + +class _$emptyImpl implements _empty { + const _$emptyImpl(); + + @override + String toString() { + return 'PlaysStatsVisualState.empty()'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && other is _$emptyImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() init, + required TResult Function() loading, + required TResult Function(TimePeriod timePeriod) noStatsInPeriod, + required TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged) + stats, + required TResult Function() empty, + }) { + return empty(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? init, + TResult? Function()? loading, + TResult? Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult? Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult? Function()? empty, + }) { + return empty?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? init, + TResult Function()? loading, + TResult Function(TimePeriod timePeriod)? noStatsInPeriod, + TResult Function( + TimePeriod timePeriod, + List mostPlayedGames, + int totalGamesLogged, + int totalGamesPlayed, + int totalPlaytimeInSeconds, + int totalDuelGamesLogged, + int totalMultiPlayerGamesLogged)? + stats, + TResult Function()? empty, + required TResult orElse(), + }) { + if (empty != null) { + return empty(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_init value) init, + required TResult Function(_loading value) loading, + required TResult Function(_noStatsInPeriod value) noStatsInPeriod, + required TResult Function(_stats value) stats, + required TResult Function(_empty value) empty, + }) { + return empty(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_init value)? init, + TResult? Function(_loading value)? loading, + TResult? Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult? Function(_stats value)? stats, + TResult? Function(_empty value)? empty, + }) { + return empty?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_init value)? init, + TResult Function(_loading value)? loading, + TResult Function(_noStatsInPeriod value)? noStatsInPeriod, + TResult Function(_stats value)? stats, + TResult Function(_empty value)? empty, + required TResult orElse(), + }) { + if (empty != null) { + return empty(this); + } + return orElse(); + } +} + +abstract class _empty implements PlaysStatsVisualState { + const factory _empty() = _$emptyImpl; +} diff --git a/board_games_companion/lib/pages/plays/plays_view_model.dart b/board_games_companion/lib/pages/plays/plays_view_model.dart index 220c8579..58ea3369 100644 --- a/board_games_companion/lib/pages/plays/plays_view_model.dart +++ b/board_games_companion/lib/pages/plays/plays_view_model.dart @@ -3,9 +3,15 @@ import 'dart:math'; import 'package:basics/basics.dart'; +import 'package:board_games_companion/common/enums/plays_stats_preset_time_period.dart'; +import 'package:board_games_companion/common/helpers/date_time_helpers.dart'; import 'package:board_games_companion/extensions/playthroughs_extensions.dart'; import 'package:board_games_companion/pages/plays/historical_playthrough.dart'; +import 'package:board_games_companion/pages/plays/most_played_game.dart'; +import 'package:board_games_companion/pages/plays/plays_stats_visual_states.dart'; +import 'package:board_games_companion/pages/plays/time_period.dart'; import 'package:collection/collection.dart'; +import 'package:flutter/material.dart'; import 'package:injectable/injectable.dart'; import 'package:mobx/mobx.dart'; import 'package:tuple/tuple.dart'; @@ -43,8 +49,9 @@ abstract class _PlaysViewModel with Store { ); static const Map> _screenViewByTabIndex = { - 1: Tuple2('History', 'PlaysHistoryPage'), - 0: Tuple2('SelectGame', 'PlaysSelectGamePage'), + 0: Tuple2('History', 'PlaysHistoryPage'), + 1: Tuple2('Statistics', 'PlaysStatisticsPage'), + 2: Tuple2('SelectGame', 'PlaysSelectGamePage'), }; static const int _numberOfTimesSpinnerCanTurn = 3; @@ -59,10 +66,10 @@ abstract class _PlaysViewModel with Store { List _shuffledBoardGames = []; @observable - ObservableFuture? futureLoadGamesPlaythroughs; + ObservableFuture? futureLoadData; @observable - PlaysPageVisualState? visualState; + PlaysPageVisualState visualState = const PlaysPageVisualState.history(); @observable GameSpinnerFilters gameSpinnerFilters = const GameSpinnerFilters( @@ -164,9 +171,11 @@ abstract class _PlaysViewModel with Store { int get randomItemIndex => Random().nextInt(shuffledBoardGames.length * _numberOfTimesSpinnerCanTurn); + @observable + PlaysStatsVisualState playsStatsVisualState = const PlaysStatsVisualState.init(); + @action - void loadGamesPlaythroughs() => - futureLoadGamesPlaythroughs = ObservableFuture(_loadGamesPlaythroughs()); + void loadData() => futureLoadData = ObservableFuture(_loadData()); @action void setSelectTab(PlaysTab selectedTab) { @@ -177,6 +186,7 @@ abstract class _PlaysViewModel with Store { case PlaysTab.statistics: visualState = const PlaysPageVisualState.statistics(); + updatePlaysPresetTimePeriod(PlayStatsPresetTimePeriod.LastWeek); break; case PlaysTab.selectGame: @@ -227,6 +237,20 @@ abstract class _PlaysViewModel with Store { visualState = const PlaysPageVisualState.selectGame(); } + @action + Future updatePlaysPresetTimePeriod(PlayStatsPresetTimePeriod? presetTimePeriod) async { + if (presetTimePeriod == null) { + return; + } + + final showStatsTimePeriod = _calculatePresetTimePeriod(presetTimePeriod); + await _loadStats(showStatsTimePeriod.from, showStatsTimePeriod.to, presetTimePeriod); + } + + @action + Future updatePlaysCustomTimePeriod(DateTimeRange dateTimeRange) async => + _loadStats(dateTimeRange.start, dateTimeRange.end, PlayStatsPresetTimePeriod.Custom); + Future trackTabChange(int tabIndex) async { await _analyticsService.logScreenView( screenName: _screenViewByTabIndex[tabIndex]!.item1, @@ -237,7 +261,7 @@ abstract class _PlaysViewModel with Store { Future trackGameSelected() async => _analyticsService.logEvent(name: Analytics.selectRandomGame); - Future _loadGamesPlaythroughs() async { + Future _loadData() async { await _scoreStore.loadScores(); await _playersStore.loadPlayers(); await _playthroughsStore.loadPlaythroughs(); @@ -247,7 +271,76 @@ abstract class _PlaysViewModel with Store { .toList() ..shuffle(); _setupGameSpinnerFilters(); - visualState = const PlaysPageVisualState.history(); + } + + Future _loadStats( + DateTime timePeriodFrom, + DateTime timePeriodTo, + PlayStatsPresetTimePeriod presetTimePeriod, + ) async { + playsStatsVisualState = const PlaysStatsVisualState.loading(); + if (historicalPlaythroughs.isEmpty) { + playsStatsVisualState = const PlaysStatsVisualState.empty(); + return; + } + + final boardGamePlaythroughsInPeriod = historicalPlaythroughs + .where((hp) => hp.boardGamePlaythroughs.playthrough.endDate! >= timePeriodFrom) + .map((hp) => hp.boardGamePlaythroughs) + .toList(); + if (boardGamePlaythroughsInPeriod.isEmpty) { + playsStatsVisualState = PlaysStatsVisualState.noStatsInPeriod( + timePeriod: TimePeriod( + presetTimePeriod: presetTimePeriod, + earliestPlaythrough: + historicalPlaythroughs.last.boardGamePlaythroughs.playthrough.endDate!, + from: timePeriodFrom, + to: timePeriodTo, + ), + ); + return; + } + + final playthroughsGroupedByGame = groupBy( + boardGamePlaythroughsInPeriod, (BoardGamePlaythrough bgp) => bgp.boardGameDetails.id); + final mostPlayedGames = []; + for (final playthroughsGrouped in playthroughsGroupedByGame.entries) { + final boardGameDetails = + _boardGamesStore.allBoardGamesInCollectionsMap[playthroughsGrouped.key]; + if (boardGameDetails == null) { + continue; + } + + mostPlayedGames.add(MostPlayedGame( + boardGameDetails: boardGameDetails, + totalNumberOfPlays: playthroughsGrouped.value.length, + totalTimePlayedInSeconds: playthroughsGrouped.value + .map((e) => e.playthrough.duration.inSeconds) + .reduce((a, b) => a + b), + )); + } + + playsStatsVisualState = PlaysStatsVisualState.stats( + timePeriod: TimePeriod( + presetTimePeriod: presetTimePeriod, + earliestPlaythrough: historicalPlaythroughs.last.boardGamePlaythroughs.playthrough.endDate!, + from: timePeriodFrom, + to: timePeriodTo, + ), + mostPlayedGames: mostPlayedGames + ..sort((mostPlayedGame, otherMostPlayedGame) => + otherMostPlayedGame.totalNumberOfPlays.compareTo(mostPlayedGame.totalNumberOfPlays)), + totalGamesLogged: boardGamePlaythroughsInPeriod.length, + totalGamesPlayed: playthroughsGroupedByGame.length, + totalPlaytimeInSeconds: boardGamePlaythroughsInPeriod + .map((bgp) => bgp.playthrough.duration.inSeconds) + .reduce((a, b) => a + b), + totalDuelGamesLogged: + boardGamePlaythroughsInPeriod.where((element) => element.playthrough.isDuel).length, + totalMultiPlayerGamesLogged: boardGamePlaythroughsInPeriod + .where((element) => element.playthrough.isMultiPlayerGame) + .length, + ); } void _setupGameSpinnerFilters() { @@ -283,4 +376,31 @@ abstract class _PlaysViewModel with Store { boardGameDetails: _boardGamesStore.allBoardGamesMap[playthrough.boardGameId]!, ); } + + /// Calculates the [from] and [to] dates for the given [PlayStatsPresetTimePeriod]. + /// + /// NOTE: [PlayStatsPresetTimePeriod.Custom] will result in the same calculations as + /// [PlayStatsPresetTimePeriod.LastWeek] as a "default" option. This is an arbitrary decision + /// of how this method should handle [PlayStatsPresetTimePeriod.Custom] option, which is not + /// a preset value. + ({DateTime from, DateTime to}) _calculatePresetTimePeriod( + PlayStatsPresetTimePeriod presetTimePeriod) { + final now = DateTime.now(); + switch (presetTimePeriod) { + case PlayStatsPresetTimePeriod.Custom: + case PlayStatsPresetTimePeriod.LastWeek: + final lastSunday = mostRecentWeekday(now, 0); + return (from: lastSunday.subtract(const Duration(days: 7)), to: lastSunday); + case PlayStatsPresetTimePeriod.LastMonth: + final firstDayOfThisMonth = DateTime(now.year, now.month, 1); + final lastDayOfPreviousMonth = firstDayOfThisMonth.subtract(const Duration(days: 1)); + final firstDayOfPreviousMonth = DateTime(now.year, now.month - 1, 1); + return (from: firstDayOfPreviousMonth, to: lastDayOfPreviousMonth); + case PlayStatsPresetTimePeriod.LastYear: + final firstDayOfThisYear = DateTime(now.year, 1, 1); + final lastDayOfPreviousYear = firstDayOfThisYear.subtract(const Duration(days: 1)); + final firstDayOfPreviousYear = DateTime(now.year - 1, 1, 1); + return (from: firstDayOfPreviousYear, to: lastDayOfPreviousYear); + } + } } diff --git a/board_games_companion/lib/pages/plays/plays_view_model.g.dart b/board_games_companion/lib/pages/plays/plays_view_model.g.dart index b7fbdd19..84deafd6 100644 --- a/board_games_companion/lib/pages/plays/plays_view_model.g.dart +++ b/board_games_companion/lib/pages/plays/plays_view_model.g.dart @@ -94,20 +94,19 @@ mixin _$PlaysViewModel on _PlaysViewModel, Store { }); } - late final _$futureLoadGamesPlaythroughsAtom = Atom( - name: '_PlaysViewModel.futureLoadGamesPlaythroughs', context: context); + late final _$futureLoadDataAtom = + Atom(name: '_PlaysViewModel.futureLoadData', context: context); @override - ObservableFuture? get futureLoadGamesPlaythroughs { - _$futureLoadGamesPlaythroughsAtom.reportRead(); - return super.futureLoadGamesPlaythroughs; + ObservableFuture? get futureLoadData { + _$futureLoadDataAtom.reportRead(); + return super.futureLoadData; } @override - set futureLoadGamesPlaythroughs(ObservableFuture? value) { - _$futureLoadGamesPlaythroughsAtom - .reportWrite(value, super.futureLoadGamesPlaythroughs, () { - super.futureLoadGamesPlaythroughs = value; + set futureLoadData(ObservableFuture? value) { + _$futureLoadDataAtom.reportWrite(value, super.futureLoadData, () { + super.futureLoadData = value; }); } @@ -115,13 +114,13 @@ mixin _$PlaysViewModel on _PlaysViewModel, Store { Atom(name: '_PlaysViewModel.visualState', context: context); @override - PlaysPageVisualState? get visualState { + PlaysPageVisualState get visualState { _$visualStateAtom.reportRead(); return super.visualState; } @override - set visualState(PlaysPageVisualState? value) { + set visualState(PlaysPageVisualState value) { _$visualStateAtom.reportWrite(value, super.visualState, () { super.visualState = value; }); @@ -143,15 +142,53 @@ mixin _$PlaysViewModel on _PlaysViewModel, Store { }); } + late final _$playsStatsVisualStateAtom = + Atom(name: '_PlaysViewModel.playsStatsVisualState', context: context); + + @override + PlaysStatsVisualState get playsStatsVisualState { + _$playsStatsVisualStateAtom.reportRead(); + return super.playsStatsVisualState; + } + + @override + set playsStatsVisualState(PlaysStatsVisualState value) { + _$playsStatsVisualStateAtom.reportWrite(value, super.playsStatsVisualState, + () { + super.playsStatsVisualState = value; + }); + } + + late final _$updatePlaysPresetTimePeriodAsyncAction = AsyncAction( + '_PlaysViewModel.updatePlaysPresetTimePeriod', + context: context); + + @override + Future updatePlaysPresetTimePeriod( + PlayStatsPresetTimePeriod? presetTimePeriod) { + return _$updatePlaysPresetTimePeriodAsyncAction + .run(() => super.updatePlaysPresetTimePeriod(presetTimePeriod)); + } + + late final _$updatePlaysCustomTimePeriodAsyncAction = AsyncAction( + '_PlaysViewModel.updatePlaysCustomTimePeriod', + context: context); + + @override + Future updatePlaysCustomTimePeriod(DateTimeRange dateTimeRange) { + return _$updatePlaysCustomTimePeriodAsyncAction + .run(() => super.updatePlaysCustomTimePeriod(dateTimeRange)); + } + late final _$_PlaysViewModelActionController = ActionController(name: '_PlaysViewModel', context: context); @override - void loadGamesPlaythroughs() { + void loadData() { final _$actionInfo = _$_PlaysViewModelActionController.startAction( - name: '_PlaysViewModel.loadGamesPlaythroughs'); + name: '_PlaysViewModel.loadData'); try { - return super.loadGamesPlaythroughs(); + return super.loadData(); } finally { _$_PlaysViewModelActionController.endAction(_$actionInfo); } @@ -216,9 +253,10 @@ mixin _$PlaysViewModel on _PlaysViewModel, Store { @override String toString() { return ''' -futureLoadGamesPlaythroughs: ${futureLoadGamesPlaythroughs}, +futureLoadData: ${futureLoadData}, visualState: ${visualState}, gameSpinnerFilters: ${gameSpinnerFilters}, +playsStatsVisualState: ${playsStatsVisualState}, finishedPlaythroughs: ${finishedPlaythroughs}, historicalPlaythroughs: ${historicalPlaythroughs}, hasAnyFinishedPlaythroughs: ${hasAnyFinishedPlaythroughs}, diff --git a/board_games_companion/lib/pages/plays/statistics_period.dart b/board_games_companion/lib/pages/plays/statistics_period.dart new file mode 100644 index 00000000..5af3167a --- /dev/null +++ b/board_games_companion/lib/pages/plays/statistics_period.dart @@ -0,0 +1,13 @@ +class StatisticsPeriod { + const StatisticsPeriod._({ + required this.from, + required this.to, + }); + + // TODO Fix the dates + factory StatisticsPeriod.lastWeek() => + StatisticsPeriod._(from: DateTime.now().add(const Duration(days: -7)), to: DateTime.now()); + + final DateTime from; + final DateTime to; +} diff --git a/board_games_companion/lib/pages/plays/time_period.dart b/board_games_companion/lib/pages/plays/time_period.dart new file mode 100644 index 00000000..8d57360b --- /dev/null +++ b/board_games_companion/lib/pages/plays/time_period.dart @@ -0,0 +1,19 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +import '../../common/enums/plays_stats_preset_time_period.dart'; + +part 'time_period.freezed.dart'; + +@freezed +class TimePeriod with _$TimePeriod { + const factory TimePeriod({ + required PlayStatsPresetTimePeriod presetTimePeriod, + required DateTime earliestPlaythrough, + required DateTime from, + required DateTime to, + }) = _TimePeriod; + + const TimePeriod._(); + + int get daysInPeriod => to.difference(from).inDays; +} diff --git a/board_games_companion/lib/pages/plays/time_period.freezed.dart b/board_games_companion/lib/pages/plays/time_period.freezed.dart new file mode 100644 index 00000000..33b88814 --- /dev/null +++ b/board_games_companion/lib/pages/plays/time_period.freezed.dart @@ -0,0 +1,202 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'time_period.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + +/// @nodoc +mixin _$TimePeriod { + PlayStatsPresetTimePeriod get presetTimePeriod => + throw _privateConstructorUsedError; + DateTime get earliestPlaythrough => throw _privateConstructorUsedError; + DateTime get from => throw _privateConstructorUsedError; + DateTime get to => throw _privateConstructorUsedError; + + @JsonKey(ignore: true) + $TimePeriodCopyWith get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $TimePeriodCopyWith<$Res> { + factory $TimePeriodCopyWith( + TimePeriod value, $Res Function(TimePeriod) then) = + _$TimePeriodCopyWithImpl<$Res, TimePeriod>; + @useResult + $Res call( + {PlayStatsPresetTimePeriod presetTimePeriod, + DateTime earliestPlaythrough, + DateTime from, + DateTime to}); +} + +/// @nodoc +class _$TimePeriodCopyWithImpl<$Res, $Val extends TimePeriod> + implements $TimePeriodCopyWith<$Res> { + _$TimePeriodCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? presetTimePeriod = null, + Object? earliestPlaythrough = null, + Object? from = null, + Object? to = null, + }) { + return _then(_value.copyWith( + presetTimePeriod: null == presetTimePeriod + ? _value.presetTimePeriod + : presetTimePeriod // ignore: cast_nullable_to_non_nullable + as PlayStatsPresetTimePeriod, + earliestPlaythrough: null == earliestPlaythrough + ? _value.earliestPlaythrough + : earliestPlaythrough // ignore: cast_nullable_to_non_nullable + as DateTime, + from: null == from + ? _value.from + : from // ignore: cast_nullable_to_non_nullable + as DateTime, + to: null == to + ? _value.to + : to // ignore: cast_nullable_to_non_nullable + as DateTime, + ) as $Val); + } +} + +/// @nodoc +abstract class _$$TimePeriodImplCopyWith<$Res> + implements $TimePeriodCopyWith<$Res> { + factory _$$TimePeriodImplCopyWith( + _$TimePeriodImpl value, $Res Function(_$TimePeriodImpl) then) = + __$$TimePeriodImplCopyWithImpl<$Res>; + @override + @useResult + $Res call( + {PlayStatsPresetTimePeriod presetTimePeriod, + DateTime earliestPlaythrough, + DateTime from, + DateTime to}); +} + +/// @nodoc +class __$$TimePeriodImplCopyWithImpl<$Res> + extends _$TimePeriodCopyWithImpl<$Res, _$TimePeriodImpl> + implements _$$TimePeriodImplCopyWith<$Res> { + __$$TimePeriodImplCopyWithImpl( + _$TimePeriodImpl _value, $Res Function(_$TimePeriodImpl) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? presetTimePeriod = null, + Object? earliestPlaythrough = null, + Object? from = null, + Object? to = null, + }) { + return _then(_$TimePeriodImpl( + presetTimePeriod: null == presetTimePeriod + ? _value.presetTimePeriod + : presetTimePeriod // ignore: cast_nullable_to_non_nullable + as PlayStatsPresetTimePeriod, + earliestPlaythrough: null == earliestPlaythrough + ? _value.earliestPlaythrough + : earliestPlaythrough // ignore: cast_nullable_to_non_nullable + as DateTime, + from: null == from + ? _value.from + : from // ignore: cast_nullable_to_non_nullable + as DateTime, + to: null == to + ? _value.to + : to // ignore: cast_nullable_to_non_nullable + as DateTime, + )); + } +} + +/// @nodoc + +class _$TimePeriodImpl extends _TimePeriod { + const _$TimePeriodImpl( + {required this.presetTimePeriod, + required this.earliestPlaythrough, + required this.from, + required this.to}) + : super._(); + + @override + final PlayStatsPresetTimePeriod presetTimePeriod; + @override + final DateTime earliestPlaythrough; + @override + final DateTime from; + @override + final DateTime to; + + @override + String toString() { + return 'TimePeriod(presetTimePeriod: $presetTimePeriod, earliestPlaythrough: $earliestPlaythrough, from: $from, to: $to)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$TimePeriodImpl && + (identical(other.presetTimePeriod, presetTimePeriod) || + other.presetTimePeriod == presetTimePeriod) && + (identical(other.earliestPlaythrough, earliestPlaythrough) || + other.earliestPlaythrough == earliestPlaythrough) && + (identical(other.from, from) || other.from == from) && + (identical(other.to, to) || other.to == to)); + } + + @override + int get hashCode => + Object.hash(runtimeType, presetTimePeriod, earliestPlaythrough, from, to); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$TimePeriodImplCopyWith<_$TimePeriodImpl> get copyWith => + __$$TimePeriodImplCopyWithImpl<_$TimePeriodImpl>(this, _$identity); +} + +abstract class _TimePeriod extends TimePeriod { + const factory _TimePeriod( + {required final PlayStatsPresetTimePeriod presetTimePeriod, + required final DateTime earliestPlaythrough, + required final DateTime from, + required final DateTime to}) = _$TimePeriodImpl; + const _TimePeriod._() : super._(); + + @override + PlayStatsPresetTimePeriod get presetTimePeriod; + @override + DateTime get earliestPlaythrough; + @override + DateTime get from; + @override + DateTime get to; + @override + @JsonKey(ignore: true) + _$$TimePeriodImplCopyWith<_$TimePeriodImpl> get copyWith => + throw _privateConstructorUsedError; +} diff --git a/board_games_companion/lib/pages/playthroughs/playthroughs_statistics_page.dart b/board_games_companion/lib/pages/playthroughs/playthroughs_statistics_page.dart index f7163e53..b39b5dde 100644 --- a/board_games_companion/lib/pages/playthroughs/playthroughs_statistics_page.dart +++ b/board_games_companion/lib/pages/playthroughs/playthroughs_statistics_page.dart @@ -24,8 +24,10 @@ import '../../models/player_statistics.dart'; import '../../widgets/board_games/board_game_image.dart'; import '../../widgets/common/empty_page_information_panel.dart'; import '../../widgets/common/loading_indicator_widget.dart'; +import '../../widgets/common/slivers/bgc_sliver_section_wrapper.dart'; import '../../widgets/common/slivers/bgc_sliver_title_header_delegate.dart'; -import '../../widgets/common/text/item_property_title_widget.dart'; +import '../../widgets/common/stats/pie_chart_legend_box.dart'; +import '../../widgets/common/stats/vertical_statistics_item.dart'; import '../../widgets/player/player_avatar.dart'; import '../../widgets/playthrough/calendar_card.dart'; import '../../widgets/playthrough/player_score_rank_avatar.dart'; @@ -132,7 +134,7 @@ class _NoScoreBoardGameStatistics extends StatelessWidget { primaryTitle: AppText.playthroughsStatisticsPageOverallStatsSectionTitle, ), ), - _SliverSectionWrapper( + SliverSectionWrapper( child: _OverallStatsNoScoreGameSection( noScoreBoardGameStatistics: noScoreBoardGameStatistics, ), @@ -144,7 +146,7 @@ class _NoScoreBoardGameStatistics extends StatelessWidget { AppText.playthroughsStatisticsPageGamesPlayedAndWonChartsSectionPrimaryTitle, ), ), - _SliverSectionWrapper( + SliverSectionWrapper( child: _PlayerCharts( playerCountPercentage: noScoreBoardGameStatistics.playerCountPercentage, ), @@ -175,70 +177,72 @@ class _ScoreBoardGameStatistics extends StatelessWidget { @override Widget build(BuildContext context) { - return MultiSliver(children: [ - SliverPersistentHeader( - delegate: BgcSliverTitleHeaderDelegate.title( - primaryTitle: AppText.playthroughsStatisticsPageLastWinnerSectionTitle, - ), - ), - _SliverSectionWrapper( - child: _LastWinnerSection( - lastGameWinners: scoreBoardGameStatistics.lastGameWinners, - lastTimePlayed: scoreBoardGameStatistics.lastTimePlayed, - ), - ), - SliverPersistentHeader( - delegate: BgcSliverTitleHeaderDelegate.title( - primaryTitle: AppText.playthroughsStatisticsPageOverallStatsSectionTitle, - ), - ), - _SliverSectionWrapper( - child: _OverallStatsScoreGameSection(scoreBoardGameStatistics: scoreBoardGameStatistics), - ), - if (scoreBoardGameStatistics.topScoreres?.isNotEmpty ?? false) ...[ + return MultiSliver( + children: [ SliverPersistentHeader( delegate: BgcSliverTitleHeaderDelegate.title( - primaryTitle: AppText.playthroughsStatisticsPageTopFiveSectionTitle, - ), - ), - _SliverSectionWrapper( - child: _TopScores(scoreBoardGameStatistics: scoreBoardGameStatistics), - ), - ], - if (scoreBoardGameStatistics.playerCountPercentage.isNotEmpty && - scoreBoardGameStatistics.playerWinsPercentage.isNotEmpty) ...[ - SliverPersistentHeader( - delegate: BgcSliverTitleHeaderDelegate.titles( - primaryTitle: - AppText.playthroughsStatisticsPageGamesPlayedAndWonChartsSectionPrimaryTitle, - secondaryTitle: - AppText.playthroughsStatisticsPageGamesPlayedAndWonChartsSectionSecondaryTitle, + primaryTitle: AppText.playthroughsStatisticsPageLastWinnerSectionTitle, ), ), - _SliverSectionWrapper( - child: _PlayerCharts( - playerCountPercentage: scoreBoardGameStatistics.playerCountPercentage, - playerWinsPercentage: scoreBoardGameStatistics.playerWinsPercentage, + SliverSectionWrapper( + child: _LastWinnerSection( + lastGameWinners: scoreBoardGameStatistics.lastGameWinners, + lastTimePlayed: scoreBoardGameStatistics.lastTimePlayed, ), ), - ], - if (scoreBoardGameStatistics.playersStatistics.isNotEmpty) ...[ SliverPersistentHeader( delegate: BgcSliverTitleHeaderDelegate.title( - primaryTitle: AppText.playthroughsStatisticsPagePlayersStatsSectionTitle, + primaryTitle: AppText.playthroughsStatisticsPageOverallStatsSectionTitle, ), ), - _PlayersStatisticsSection( - playersStatistics: scoreBoardGameStatistics.playersStatistics, - averageScorePrecision: scoreBoardGameStatistics.averageScorePrecision, + SliverSectionWrapper( + child: _OverallStatsScoreGameSection(scoreBoardGameStatistics: scoreBoardGameStatistics), ), - ], - const SliverPadding( - padding: EdgeInsets.only( - bottom: Dimensions.standardSpacing + Dimensions.bottomTabTopHeight, + if (scoreBoardGameStatistics.topScoreres?.isNotEmpty ?? false) ...[ + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.title( + primaryTitle: AppText.playthroughsStatisticsPageTopFiveSectionTitle, + ), + ), + SliverSectionWrapper( + child: _TopScores(scoreBoardGameStatistics: scoreBoardGameStatistics), + ), + ], + if (scoreBoardGameStatistics.playerCountPercentage.isNotEmpty && + scoreBoardGameStatistics.playerWinsPercentage.isNotEmpty) ...[ + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.titles( + primaryTitle: + AppText.playthroughsStatisticsPageGamesPlayedAndWonChartsSectionPrimaryTitle, + secondaryTitle: + AppText.playthroughsStatisticsPageGamesPlayedAndWonChartsSectionSecondaryTitle, + ), + ), + SliverSectionWrapper( + child: _PlayerCharts( + playerCountPercentage: scoreBoardGameStatistics.playerCountPercentage, + playerWinsPercentage: scoreBoardGameStatistics.playerWinsPercentage, + ), + ), + ], + if (scoreBoardGameStatistics.playersStatistics.isNotEmpty) ...[ + SliverPersistentHeader( + delegate: BgcSliverTitleHeaderDelegate.title( + primaryTitle: AppText.playthroughsStatisticsPagePlayersStatsSectionTitle, + ), + ), + _PlayersStatisticsSection( + playersStatistics: scoreBoardGameStatistics.playersStatistics, + averageScorePrecision: scoreBoardGameStatistics.averageScorePrecision, + ), + ], + const SliverPadding( + padding: EdgeInsets.only( + bottom: Dimensions.standardSpacing + Dimensions.bottomTabTopHeight, + ), ), - ), - ]); + ], + ); } } @@ -332,7 +336,6 @@ class _PlayerStatsDetails extends StatelessWidget { ); static const double _statsItemIconSize = 32; - static const double _fontAwesomeStatsItemIconSize = _statsItemIconSize; static const TextStyle _statsItemTextStyle = TextStyle( fontWeight: FontWeight.bold, fontSize: Dimensions.largeFontSize, @@ -366,9 +369,9 @@ class _PlayerStatsDetails extends StatelessWidget { const Spacer(), if (personalBestScore != null) ...[ Center( - child: _StatisticsItem( - value: personalBestScore.toString(), - valueTextStyle: _statsItemTextStyle, + child: VerticalStatisticsItem.withMaterialIcon( + text: personalBestScore.toString(), + textStyle: _statsItemTextStyle, icon: Icons.show_chart, iconColor: AppColors.highscoreStatColor, iconSize: _statsItemIconSize, @@ -379,9 +382,9 @@ class _PlayerStatsDetails extends StatelessWidget { ], if (averageScore != null) ...[ Center( - child: _StatisticsItem( - value: averageScore!.toStringAsFixed(averageScorePrecision!), - valueTextStyle: _statsItemTextStyle, + child: VerticalStatisticsItem.withMaterialIcon( + text: averageScore!.toStringAsFixed(averageScorePrecision!), + textStyle: _statsItemTextStyle, icon: Icons.calculate, iconColor: AppColors.averageScoreStatColor, iconSize: _statsItemIconSize, @@ -392,12 +395,12 @@ class _PlayerStatsDetails extends StatelessWidget { ], if (totalWins != null) ...[ Center( - child: _StatisticsItem( - value: totalWins.toString(), - valueTextStyle: _statsItemTextStyle, + child: VerticalStatisticsItem.withFontAwesomeIcon( + text: totalWins.toString(), + textStyle: _statsItemTextStyle, icon: FontAwesomeIcons.trophy, iconColor: AppColors.totalWinsStatColor, - iconSize: _fontAwesomeStatsItemIconSize, + iconSize: _statsItemIconSize, subtitle: AppText.playthroughsStatisticsPageOverallStatsTotalWins, ), ), @@ -405,12 +408,12 @@ class _PlayerStatsDetails extends StatelessWidget { ], if (totalLosses != null) ...[ Center( - child: _StatisticsItem( - value: totalLosses.toString(), - valueTextStyle: _statsItemTextStyle, + child: VerticalStatisticsItem.withMaterialIcon( + text: totalLosses.toString(), + textStyle: _statsItemTextStyle, icon: Icons.thumb_down_alt, iconColor: AppColors.totalLossesStatColor, - iconSize: _fontAwesomeStatsItemIconSize, + iconSize: _statsItemIconSize, subtitle: AppText.playthroughsStatisticsPageOverallStatsTotalLosses, ), ), @@ -418,9 +421,9 @@ class _PlayerStatsDetails extends StatelessWidget { ], if (totalGamesPlayed != null) ...[ Center( - child: _StatisticsItem( - value: totalGamesPlayed.toString(), - valueTextStyle: _statsItemTextStyle, + child: VerticalStatisticsItem.withMaterialIcon( + text: totalGamesPlayed.toString(), + textStyle: _statsItemTextStyle, icon: Icons.casino, iconColor: AppColors.playedGamesStatColor, iconSize: _statsItemIconSize, @@ -574,8 +577,9 @@ class _PlayerChartsState extends State<_PlayerCharts> { padding: const EdgeInsets.only(bottom: Dimensions.standardSpacing), child: Row( children: [ - _ChartLegendBox( - color: playerCountChartColors[playeCountStatistics.numberOfPlayers]!), + ChartLegendBox( + color: playerCountChartColors[playeCountStatistics.numberOfPlayers]!, + ), const SizedBox(width: Dimensions.halfStandardSpacing), RichText( text: TextSpan( @@ -631,7 +635,7 @@ class _PlayerChartsState extends State<_PlayerCharts> { ), ), const SizedBox(width: Dimensions.halfStandardSpacing), - _ChartLegendBox( + ChartLegendBox( color: playerWinsChartColors[playerWinsStatistics.player]!), ], ), @@ -645,26 +649,6 @@ class _PlayerChartsState extends State<_PlayerCharts> { } } -class _ChartLegendBox extends StatelessWidget { - const _ChartLegendBox({ - required this.color, - }); - - final Color color; - - @override - Widget build(BuildContext context) { - return Container( - width: 16, - height: 16, - decoration: BoxDecoration( - shape: BoxShape.rectangle, - color: color, - ), - ); - } -} - class _LastWinnerPoints extends StatelessWidget { const _LastWinnerPoints({ required this.points, @@ -767,15 +751,15 @@ class _OverallStatsScoreGameSection extends StatelessWidget { children: [ Column( children: [ - _StatisticsItem( - value: scoreBoardGameStatistics?.numberOfGamesPlayed.toString() ?? '-', + VerticalStatisticsItem.withMaterialIcon( + text: scoreBoardGameStatistics?.numberOfGamesPlayed.toString() ?? '-', icon: Icons.casino, iconColor: AppColors.playedGamesStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsAvgPlayedGames, ), const SizedBox(height: Dimensions.doubleStandardSpacing), - _StatisticsItem( - value: scoreBoardGameStatistics?.bestScore?.toStringAsFixed(0) ?? '-', + VerticalStatisticsItem.withMaterialIcon( + text: scoreBoardGameStatistics?.bestScore?.toStringAsFixed(0) ?? '-', icon: Icons.show_chart, iconColor: AppColors.highscoreStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsBestScore, @@ -785,15 +769,15 @@ class _OverallStatsScoreGameSection extends StatelessWidget { const Spacer(), Column( children: [ - _StatisticsItem( - value: scoreBoardGameStatistics?.averageNumberOfPlayers.toStringAsFixed(0) ?? '-', + VerticalStatisticsItem.withMaterialIcon( + text: scoreBoardGameStatistics?.averageNumberOfPlayers.toStringAsFixed(0) ?? '-', icon: Icons.person, iconColor: AppColors.averagePlayerCountStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsAvgPlayerCount, ), const SizedBox(height: Dimensions.doubleStandardSpacing), - _StatisticsItem( - value: scoreBoardGameStatistics?.averageScore + VerticalStatisticsItem.withMaterialIcon( + text: scoreBoardGameStatistics?.averageScore ?.toStringAsFixed(scoreBoardGameStatistics!.averageScorePrecision) ?? '-', icon: Icons.calculate, @@ -805,8 +789,8 @@ class _OverallStatsScoreGameSection extends StatelessWidget { const Spacer(), Column( children: [ - _StatisticsItem( - value: scoreBoardGameStatistics?.averagePlaytimeInSeconds + VerticalStatisticsItem.withMaterialIcon( + text: scoreBoardGameStatistics?.averagePlaytimeInSeconds .toPlaytimeDuration(fallbackValue: '-') ?? '-', icon: Icons.av_timer, @@ -814,8 +798,8 @@ class _OverallStatsScoreGameSection extends StatelessWidget { subtitle: AppText.playthroughsStatisticsPageOverallStatsAvgPlaytime, ), const SizedBox(height: Dimensions.doubleStandardSpacing), - _StatisticsItem( - value: scoreBoardGameStatistics?.totalPlaytimeInSeconds + VerticalStatisticsItem.withMaterialIcon( + text: scoreBoardGameStatistics?.totalPlaytimeInSeconds .toPlaytimeDuration(fallbackValue: '-') ?? '-', icon: Icons.timelapse, @@ -847,17 +831,17 @@ class _OverallStatsNoScoreGameSection extends StatelessWidget { children: [ Column( children: [ - _StatisticsItem( - value: noScoreBoardGameStatistics.numberOfGamesPlayed.toString(), + VerticalStatisticsItem.withMaterialIcon( + text: noScoreBoardGameStatistics.numberOfGamesPlayed.toString(), icon: Icons.casino, iconColor: AppColors.playedGamesStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsAvgPlayedGames, ), const SizedBox(height: Dimensions.doubleStandardSpacing), - _StatisticsItem( - value: noScoreBoardGameStatistics.totalWins.toString(), + VerticalStatisticsItem.withFontAwesomeIcon( + text: noScoreBoardGameStatistics.totalWins.toString(), icon: FontAwesomeIcons.trophy, - iconColor: AppColors.highscoreStatColor, + iconColor: AppColors.playedGamesStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsTotalWins, ), ], @@ -865,15 +849,15 @@ class _OverallStatsNoScoreGameSection extends StatelessWidget { const Spacer(), Column( children: [ - _StatisticsItem( - value: noScoreBoardGameStatistics.averageNumberOfPlayers.toStringAsFixed(0), + VerticalStatisticsItem.withMaterialIcon( + text: noScoreBoardGameStatistics.averageNumberOfPlayers.toStringAsFixed(0), icon: Icons.person, iconColor: AppColors.averagePlayerCountStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsAvgPlayerCount, ), const SizedBox(height: Dimensions.doubleStandardSpacing), - _StatisticsItem( - value: noScoreBoardGameStatistics.totalLosses.toString(), + VerticalStatisticsItem.withMaterialIcon( + text: noScoreBoardGameStatistics.totalLosses.toString(), icon: Icons.thumb_down_alt, iconColor: AppColors.totalLossesStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsTotalLosses, @@ -883,15 +867,15 @@ class _OverallStatsNoScoreGameSection extends StatelessWidget { const Spacer(), Column( children: [ - _StatisticsItem( - value: noScoreBoardGameStatistics.averagePlaytimeInSeconds.toPlaytimeDuration(), + VerticalStatisticsItem.withMaterialIcon( + text: noScoreBoardGameStatistics.averagePlaytimeInSeconds.toPlaytimeDuration(), icon: Icons.av_timer, iconColor: AppColors.averagePlaytimeStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsAvgPlaytime, ), const SizedBox(height: Dimensions.doubleStandardSpacing), - _StatisticsItem( - value: noScoreBoardGameStatistics.totalPlaytimeInSeconds.toPlaytimeDuration(), + VerticalStatisticsItem.withMaterialIcon( + text: noScoreBoardGameStatistics.totalPlaytimeInSeconds.toPlaytimeDuration(), icon: Icons.timelapse, iconColor: AppColors.totalPlaytimeStatColor, subtitle: AppText.playthroughsStatisticsPageOverallStatsTotalPlaytime, @@ -918,9 +902,7 @@ class _TopScores extends StatelessWidget { child: ListView.separated( scrollDirection: Axis.horizontal, itemCount: scoreBoardGameStatistics.topScoreres!.length, - separatorBuilder: (context, index) { - return const SizedBox(width: Dimensions.standardSpacing); - }, + separatorBuilder: (context, index) => const SizedBox(width: Dimensions.standardSpacing), itemBuilder: (context, index) { return PlayerScoreRankAvatar( player: scoreBoardGameStatistics.topScoreres![index].item1, @@ -932,69 +914,3 @@ class _TopScores extends StatelessWidget { ), ); } - -class _StatisticsItem extends StatelessWidget { - const _StatisticsItem({ - required this.icon, - required this.value, - required this.subtitle, - this.iconColor, - this.iconSize = 28, - this.valueTextStyle = const TextStyle(fontSize: Dimensions.largeFontSize), - }); - - final IconData icon; - final Color? iconColor; - final double iconSize; - final String value; - final String subtitle; - final TextStyle valueTextStyle; - - @override - Widget build(BuildContext context) { - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - Row( - mainAxisSize: MainAxisSize.min, - children: [ - FaIcon( - icon, - color: iconColor ?? IconTheme.of(context).color, - size: iconSize, - ), - const SizedBox(width: Dimensions.quarterStandardSpacing), - Text(value, style: valueTextStyle), - ], - ), - const SizedBox(height: Dimensions.quarterStandardSpacing), - ItemPropertyTitle( - subtitle, - color: AppColors.defaultTextColor, - fontSize: Dimensions.smallFontSize, - ), - ], - ); - } -} - -class _SliverSectionWrapper extends StatelessWidget { - const _SliverSectionWrapper({ - required this.child, - }); - - final Widget child; - - @override - Widget build(BuildContext context) { - return SliverPadding( - padding: const EdgeInsets.only( - left: Dimensions.standardSpacing, - top: Dimensions.standardSpacing, - right: Dimensions.standardSpacing, - bottom: Dimensions.doubleStandardSpacing, - ), - sliver: SliverToBoxAdapter(child: child), - ); - } -} diff --git a/board_games_companion/lib/stores/board_games_filters_store.dart b/board_games_companion/lib/stores/board_games_filters_store.dart index 9591f028..0134fbd7 100644 --- a/board_games_companion/lib/stores/board_games_filters_store.dart +++ b/board_games_companion/lib/stores/board_games_filters_store.dart @@ -1,6 +1,7 @@ // ignore_for_file: library_private_types_in_public_api import 'package:collection/collection.dart'; +import 'package:fimber/fimber.dart'; import 'package:injectable/injectable.dart'; import 'package:mobx/mobx.dart'; @@ -143,8 +144,10 @@ abstract class _BoardGamesFiltersStore with Store { sortByOptions.firstWhereOrNull((sb) => sb.name == _collectionFilters?.sortBy?.name); if (selectedSortBy != null) { + Fimber.d( + 'Sort by option ${_collectionFilters!.sortBy!.name} is selected [${_collectionFilters!.sortBy!.selected}] and orderd by ${_collectionFilters!.sortBy!.orderBy.name}'); selectedSortBy.orderBy = _collectionFilters!.sortBy!.orderBy; - selectedSortBy.selected = _collectionFilters!.sortBy!.selected; + selectedSortBy.selected = true; } } } diff --git a/board_games_companion/lib/widgets/common/slivers/bgc_sliver_section_wrapper.dart b/board_games_companion/lib/widgets/common/slivers/bgc_sliver_section_wrapper.dart new file mode 100644 index 00000000..dc7205ef --- /dev/null +++ b/board_games_companion/lib/widgets/common/slivers/bgc_sliver_section_wrapper.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +import '../../../common/dimensions.dart'; + +class SliverSectionWrapper extends StatelessWidget { + const SliverSectionWrapper({ + super.key, + required this.child, + this.padding = const EdgeInsets.only( + left: Dimensions.standardSpacing, + top: Dimensions.standardSpacing, + right: Dimensions.standardSpacing, + bottom: Dimensions.doubleStandardSpacing, + ), + }); + + final Widget child; + final EdgeInsets padding; + + @override + Widget build(BuildContext context) { + return SliverPadding( + padding: padding, + sliver: SliverToBoxAdapter(child: child), + ); + } +} diff --git a/board_games_companion/lib/widgets/common/stats/pie_chart_legend_box.dart b/board_games_companion/lib/widgets/common/stats/pie_chart_legend_box.dart new file mode 100644 index 00000000..0de01d74 --- /dev/null +++ b/board_games_companion/lib/widgets/common/stats/pie_chart_legend_box.dart @@ -0,0 +1,22 @@ +import 'package:flutter/widgets.dart'; + +class ChartLegendBox extends StatelessWidget { + const ChartLegendBox({ + super.key, + required this.color, + }); + + final Color color; + + @override + Widget build(BuildContext context) { + return Container( + width: 16, + height: 16, + decoration: BoxDecoration( + shape: BoxShape.rectangle, + color: color, + ), + ); + } +} diff --git a/board_games_companion/lib/widgets/common/stats/vertical_statistics_item.dart b/board_games_companion/lib/widgets/common/stats/vertical_statistics_item.dart new file mode 100644 index 00000000..8635f843 --- /dev/null +++ b/board_games_companion/lib/widgets/common/stats/vertical_statistics_item.dart @@ -0,0 +1,97 @@ +import 'package:basics/basics.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +import '../../../common/app_colors.dart'; +import '../../../common/dimensions.dart'; +import '../text/item_property_title_widget.dart'; + +class VerticalStatisticsItem extends StatelessWidget { + factory VerticalStatisticsItem.withMaterialIcon({ + required IconData icon, + required String text, + String? subtitle, + Color? iconColor, + double iconSize = Dimensions.defaultStatsIconSize, + TextStyle textStyle = const TextStyle(fontSize: Dimensions.largeFontSize), + double spacing = Dimensions.quarterStandardSpacing, + }) => + VerticalStatisticsItem._( + icon: Icon(icon, color: iconColor, size: iconSize), + text: text, + iconColor: iconColor, + iconSize: iconSize, + spacing: spacing, + subtitle: subtitle, + textStyle: textStyle, + ); + + factory VerticalStatisticsItem.withFontAwesomeIcon({ + required IconData icon, + required String text, + String? subtitle, + Color? iconColor, + double iconSize = Dimensions.defaultFontAwesomeStatsIconSize, + TextStyle textStyle = const TextStyle(fontSize: Dimensions.largeFontSize), + double spacing = Dimensions.halfStandardSpacing, + }) => + VerticalStatisticsItem._( + icon: FaIcon(icon, color: iconColor, size: iconSize), + text: text, + iconColor: iconColor, + iconSize: iconSize, + spacing: spacing, + subtitle: subtitle, + textStyle: textStyle, + ); + + const VerticalStatisticsItem._({ + required this.icon, + required this.text, + this.subtitle, + this.iconColor, + this.iconSize = 28, + this.textStyle = const TextStyle(fontSize: Dimensions.largeFontSize), + this.spacing = Dimensions.quarterStandardSpacing, + }); + + final Widget icon; + final double spacing; + final double iconSize; + final Color? iconColor; + + final String text; + final TextStyle textStyle; + + final String? subtitle; + + @override + Widget build(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + mainAxisSize: MainAxisSize.min, + children: [ + icon, + // FaIcon( + // icon, + // color: iconColor ?? IconTheme.of(context).color, + // size: iconSize, + // ), + // const SizedBox(width: Dimensions.quarterStandardSpacing), + SizedBox(width: spacing), + Text(text, style: textStyle), + ], + ), + SizedBox(height: spacing), + if (subtitle.isNotNullOrBlank) + ItemPropertyTitle( + subtitle!, + color: AppColors.defaultTextColor, + fontSize: Dimensions.smallFontSize, + ), + ], + ); + } +} diff --git a/board_games_companion/pubspec.lock b/board_games_companion/pubspec.lock index b69d361d..e263a224 100644 --- a/board_games_companion/pubspec.lock +++ b/board_games_companion/pubspec.lock @@ -524,10 +524,10 @@ packages: dependency: "direct main" description: name: font_awesome_flutter - sha256: "52671aea66da73b58d42ec6d0912b727a42248dd9a7c76d6c20f275783c48c08" + sha256: "275ff26905134bcb59417cf60ad979136f1f8257f2f449914b2c3e05bbb4cd6f" url: "https://pub.dev" source: hosted - version: "10.6.0" + version: "10.7.0" freezed: dependency: "direct main" description: diff --git a/board_games_companion/pubspec.yaml b/board_games_companion/pubspec.yaml index cb97d38d..be2178d6 100644 --- a/board_games_companion/pubspec.yaml +++ b/board_games_companion/pubspec.yaml @@ -14,7 +14,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ">=2.17.0 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: animations: ^2.0.1 @@ -39,7 +39,7 @@ dependencies: flutter_slidable: ^3.0.0 flutter_speed_dial: ^7.0.0 flutter_svg: ^2.0.8 - font_awesome_flutter: ^10.3.0 + font_awesome_flutter: ^10.7.0 freezed: ^2.3.2 freezed_annotation: ^2.2.0 google_fonts: ^6.1.0 @@ -87,6 +87,15 @@ dev_dependencies: json_serializable: ^6.6.2 mobx_codegen: ^2.0.7 +# Run `dart run flutter_launcher_icons` to iOS update icons +flutter_launcher_icons: + # Use Android Studio to generate icons + # https://developer.android.com/studio/write/create-app-icons#access + # https://developer.android.com/studio/write/create-app-icons#preview-themed-app-icons + android: false + ios: true + image_path: "assets/icon/logo.png" + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/board_games_companion/test/view_models/edit_playthrough_view_model_test.dart b/board_games_companion/test/view_models/edit_playthrough_view_model_test.dart index 9855767c..7177f05b 100644 --- a/board_games_companion/test/view_models/edit_playthrough_view_model_test.dart +++ b/board_games_companion/test/view_models/edit_playthrough_view_model_test.dart @@ -3,6 +3,7 @@ import 'package:board_games_companion/common/enums/game_family.dart'; import 'package:board_games_companion/models/hive/player.dart'; import 'package:board_games_companion/models/hive/playthrough.dart'; import 'package:board_games_companion/models/hive/score.dart'; +import 'package:board_games_companion/models/hive/score_game_results.dart'; import 'package:board_games_companion/models/player_score.dart'; import 'package:board_games_companion/models/playthroughs/playthrough_details.dart'; import 'package:board_games_companion/pages/edit_playthrough/edit_playthrough_view_model.dart'; @@ -19,13 +20,14 @@ void main() { const String mockPlaythroughId = '1'; const String mockEmptyPlayerScoreId = '1'; + const Score emptyScore = Score( + boardGameId: '', + id: '', + playerId: '', + ); const PlayerScore emptyPlayerScore = PlayerScore( player: Player(id: mockEmptyPlayerScoreId), - score: Score( - boardGameId: '', - id: '', - playerId: '', - ), + score: emptyScore, ); final mockPlaythroughDetails = PlaythroughDetails( playerScores: [emptyPlayerScore], @@ -80,4 +82,51 @@ void main() { expect(updatedPlayerScore!.score.scoreGameResult!.points, newScore); }); + + test( + 'GIVEN players are tied for a place ' + "WHEN updating player's score " + "AND player's score are no longer tied " + 'THEN their tiebraker type should be null ', () { + const firstPlayerId = '1'; + when(() => mockGamePlaythroughsDetailsStore.playthroughsDetails).thenReturn( + ObservableList.of( + [ + mockPlaythroughDetails.copyWith( + playerScores: [ + emptyPlayerScore.copyWith( + player: const Player(id: firstPlayerId), + score: emptyScore.copyWith( + scoreGameResult: const ScoreGameResult( + points: 10, + tiebreakerType: ScoreTiebreakerType.place, + ), + ), + ), + emptyPlayerScore.copyWith( + player: const Player(id: '2'), + score: emptyScore.copyWith( + scoreGameResult: const ScoreGameResult( + points: 10, + tiebreakerType: ScoreTiebreakerType.place, + ), + ), + ), + ], + ) + ], + ), + ); + + final playerScoreToUpdate = mockPlaythroughDetails.playerScores + .firstWhereOrNull((playerScore) => playerScore.player!.id == firstPlayerId); + const newScore = 20.0; + + editPlaythrouhgViewModel.updatePlayerScore(playerScoreToUpdate!.id!, newScore); + + for (final playerScore in editPlaythrouhgViewModel.playerScores) { + expect(playerScore.score.isTied, isFalse); + expect(playerScore.score.scoreGameResult!.tiebreakerType, isNull); + } + }); }