From e34add8185c66091ee3eb7c087fa3f52ab9d4976 Mon Sep 17 00:00:00 2001 From: bossanyit Date: Sun, 5 Sep 2021 07:47:15 +0200 Subject: [PATCH] 1.1.22+3 corrections --- asset/menu/close_reverse_grip_pull_ups.jpg | Bin 0 -> 96008 bytes asset/menu/dumbbell_presses.jpg | Bin 0 -> 90658 bytes asset/menu/seated_leg_curls.jpg | Bin 0 -> 93847 bytes asset/menu/smith_machine_front_press.jpg | Bin 0 -> 100315 bytes asset/menu/straight_arm_pulldown.jpg | Bin 0 -> 83860 bytes i18n/en.json | 39 +- i18n/hu.json | 35 +- ios/Runner.xcodeproj/project.pbxproj | 6 +- ios/Runner/Info.plist | 180 ++-- .../customer_change/customer_change_bloc.dart | 12 +- .../exercise_control_bloc.dart | 25 +- lib/bloc/exercise_new/exercise_new_bloc.dart | 8 +- lib/bloc/login/login_bloc.dart | 72 +- .../training_plan/training_plan_bloc.dart | 89 ++ lib/library/super_tooltip.dart | 170 ++++ lib/main.dart | 6 +- lib/model/cache.dart | 12 +- lib/model/customer.dart | 8 +- lib/model/customer_training_plan_details.dart | 2 +- lib/model/faq.dart | 2 - lib/model/mautic.dart | 40 + lib/model/sport.dart | 14 +- lib/model/training_plan_detail.dart | 2 + lib/repository/mautic_repository.dart | 49 + lib/repository/training_plan_repository.dart | 28 +- lib/service/mautic.dart | 29 + lib/util/enums.dart | 11 +- lib/util/track.dart | 4 +- lib/view/account.dart | 4 +- lib/view/customer_bodytype_animation.dart | 7 +- lib/view/customer_fitness_page.dart | 135 +-- lib/view/customer_goal_page.dart | 14 +- lib/view/customer_height_page.dart | 13 +- lib/view/customer_modify_page.dart | 112 +++ lib/view/customer_sex_page.dart | 13 +- lib/view/customer_weight_page.dart | 14 +- lib/view/customer_welcome_page.dart | 1 - lib/view/exercise_control_page.dart | 28 +- lib/view/exercise_new_page.dart | 68 +- lib/view/mydevelopment_body_page.dart | 2 +- lib/view/mydevelopment_page.dart | 2 +- lib/view/registration.dart | 20 +- lib/view/settings.dart | 57 +- lib/view/test_set_new.dart | 14 +- lib/view/training_plan_activate_page.dart | 111 ++- lib/view/training_plan_execute.dart | 18 +- lib/view/training_plan_execute_page.dart | 914 ------------------ lib/view/training_plan_exercise.dart | 15 +- lib/view/training_plans_page.dart | 2 +- lib/widgets/bmr_widget.dart | 3 +- lib/widgets/dialog_premium.dart | 10 +- lib/widgets/dialog_trial.dart | 4 +- lib/widgets/exercise_save.dart | 573 ++++++++--- lib/widgets/menu_page_widget.dart | 8 +- lib/widgets/tutorial_widget.dart | 40 + pubspec.lock | 13 +- pubspec.yaml | 9 +- 57 files changed, 1577 insertions(+), 1490 deletions(-) create mode 100644 asset/menu/close_reverse_grip_pull_ups.jpg create mode 100644 asset/menu/dumbbell_presses.jpg create mode 100644 asset/menu/seated_leg_curls.jpg create mode 100644 asset/menu/smith_machine_front_press.jpg create mode 100644 asset/menu/straight_arm_pulldown.jpg create mode 100644 lib/model/mautic.dart create mode 100644 lib/repository/mautic_repository.dart create mode 100644 lib/service/mautic.dart delete mode 100644 lib/view/training_plan_execute_page.dart diff --git a/asset/menu/close_reverse_grip_pull_ups.jpg b/asset/menu/close_reverse_grip_pull_ups.jpg new file mode 100644 index 0000000000000000000000000000000000000000..85520299fcfa720323f32e548237077199eb2ece GIT binary patch literal 96008 zcmeFa2UHYU*EU*BMhOPQfGA=P4V43k2n{GkB$-2XRW%?{f*3|n#~e^mF<{OSMFmvG z9581vfmsw3bX0ToycrH2As=S1Fnx zhH^dde}lrNdV7bW-FIa%xdx;a{NJa*wcA#(eQSCMVgP^TvM=FJD`=Peuhy4|2-3FB zx4&*;q*}7`366}7j0uj6vQw$-a1`V0+V$pzkO=u;djv;u%n4It53|yoCZCmcL_G6^b|Jrt=@B62S{MHc>Dk=-0leH>ODqNwJh6?Qm8Z3YG5rv+Cp^>qP zX|39d|2(Nc^z^@-tb-^F6#9AwdWObECWiWE1e~m^Z_uJ1X6V+BuWvtU5^iL*U~Rg4 z%T^71kEsbVdh%73aqDEi*AIUeVkql%dwy->vCv=iJib1bZg?%=k@RNoloQwE9>4W! zyJ*AIeTz@tc=B#z#;M$=Wr3Q}(^58Np3WT9Bv`eF3sWR+h7A%^_DwUOKa<2KasYtV@G z4MooYI#zmA-GqN`LEAr@PJ# z-EQD|=V?ydxw{eJ2Rg-Xxogtq@;$V1vGd2sm9J-Y$7x-XX6~BjFhLbmGGqdicEa z&HI;j`*hxG`FH_ z@}a`7mB@r67YCdw{5U3y7Y}Y%gr*wQvmcZI$MKBLyYCtY@8 z+4dl&W~Z%~wJWRH z{eXAA1*=w$p7`SM!r29-o%X8Vo*!uOW&8CvuPC$STX!U^JeIe=A(r-QQNZ5D_ilb} zxH@hK{rKtN-qE2JU6$Ef+&8wo*XPODrB5DBv=WLBFKqScY4ZYq^P)07VAaOnZHpAf zPnPA2rr2 zjV#g^Y_CMd=3Xxz7b5ZfgM2>=JEA(ZcxCqFKzi2j3qI--FE4eyaHi1$TRP*9*Y$0( z^A69w-)DQ~!4>fXYzGF1&%5*K%)FS}%?eiU-#&QxXnOA2IXgc0>~=(Txb4RtmwJDQ z7~d@3dLMZ!Xl$L@%lNj>i?;^ezus{9hI%bF_wF3P*F71r@z|UA%*M4AO?wxTf9Ck^ zhlGvojVG=h(ibcqqnLc~aH?%Wz~Kv#-W3-YS0q23u8H?PC26vUFHXMsYsSuZzdt+} z;jr5#t)LQVIH-8w^@AFvQ4W?OJqc(+h$G}3xsAzb*w8DMSh*NVu?|yfs^SE2s z$BmVUr%~rtli9v+o_`vC^YfNn#haosyYEJ+xlgaWce#Hn)aKx+sb#CNrR9n1g4D6E z{F=;K?P-u+;utq~=dE|wGqSfQI8V5BIq1m8r!g=34om2tTbh*=b${@{c^Rqs`lmmP zGkkA;DJcE^hVuINDv`eG)p=dEJe%NORNhm+$+eN}vPG<7&zfuZ!#59q9WkMO#S`4) zT)p&+O5|d3M&*^uIp>cR71&?c?&38kYvLW%p**LogwzR}3x+yGKEK*!N5LFCDIjB7 zz|s$$(>HampWSSA-;cFdoC|F{$&(?oI^-O_IyQFq6{FKP?i``-_Z#-S?AfFK(--&2 z8#gHr`^26s2@Q)Z+|ldHKBLA9TmyYQm;I98lCMOj?reFjv@G9gT!qV~Iq?BEFly)8 zO|}&a>wg@!>+Pb%<7v${-wjx^dwJ>3V`c2~!Gh)P7hiUTF4ZzoOZ^K0Z?0QW=*+Si313Xh zZ-2Ss#U;$X`R?WAyF(pztQeX9<>G?y%V?uPi9J=7$fK8)$kCfj*{W?ZqrAc!ov3%N zyY=q<4F_g->x?FZ(uqsAln?uKx^z~wOON{tX3oDo!7SnOHRjIE16N*My>NJ1D7{%E2NisX>Y9C-22kkC$B5Z+@-( z%!aNrL-tNeFBz4w{*GDw!bIjvu9S4vj=k~d`p4rfzdUnay6*jxTGFChg%SMDHKo^Y z2!ms?T=VB%KNwWve8{!my|r_b5)XU7iCLbpIl0cvMHjv7&%PE9x+`}ykGY%uVX&j? zAI%CAulM>8SlV$^QqTNGt`~x~s(&k;z5Gh?GO4e*)AasEore@=T&hGiOu4+ReAu(j z!sE;wEW4oS*42{o=NV;N9$(-WTpRWJX2s{JO;rbnZy&uo?t&X)yyT`?!(A*p;|(a>%-FPgQzGb%i^$?*LLHrX7^HXO~Bq=e@m zWbhY6_~u3phy7tidMuevU1(N`1Vvu%b-smtYrWQ+pQkqeRWRG$bViYMEn~(=^ZK8Ks9eNg=a`nukxkb>*5%U!R1eto{f3v`9TRRn z=59NL4YJuetvg~_5S0BTmtRIbjx8Q2O|4j4Fkn=Huw#tPp`h_Aix1s9-Tzg&ZQ|h+ zCb#rRc+%N~)|2BxU3SKoXFiMUKgD}*TJHKaL3NLl_sSd`2S>33E?UH-_KO)P+}*vu z@#t55-wysfYkJR&KMn*uD{ z^r}(AKAVfv0y`cXJ=QfubM=_eZN#9iHBnL-=4Pm_r%px-cuLOoSBxLd~@H;$oE4IsfzE7-MjJOJb$tD z^rq|k=H^aEjj2lHx6>u>JNz-FMWaWAomX_usZW0BgNGIG#x!{_?APqdtA#})a*CS^ z2U6dhNFDH{a9Z}gR{>XF790qF`TSK;+U>a->eiDbLF^LYPT}gpu(Tr=65kBk?bIyf zWU*^xG1GkSQ~zf!C-O^9zT6&F{wXDI#EJB>BPI8@ifrnDCWQkGA|iMBhey0B-m&#` zzelY`DUi19UKE#iG3ogs=*?^8!f~aU7kbs&nNS?l-EsZPisF|xnFmrTp7t8ZmHU=% zPCno1wBGiCMRh#LeG?qxUsWPE+PUh#ob)u~xq)-+ywG`jPQ`2~^HNV3e&Y0c=>t|8 zx;*aPouV%56Cb)#ey3(zi5BgC7Z=Sl+YmZ^_Q!0~k?&|I~A z!iB_&zMn_lOOTc&?P~Mvzd`X0vMa-1!gvXhgrJtM^lwR2OhgnXi)8Y09hj(v#`=Cuk zz=G1Up&wtQI%aRsNPhACvdky#wB~a6ycLA;9pgramnAHDUVe7?lCpVQ9@5#75pAe@ zr;RP$J}__NbGs*87@g?&F7fy6U52b#w7>k!94{=*fj$59QX=Moh~RCbY?Xbz#ElO_hkz_S}}vxfYXcTYb2)wY>M{mrpO+ zb{a8n?~)1IbIXRtA6oqRLq_J_50%K3O61tK4}+g;jtq}@cQpBbNjT5+H}_bg_x4}fVsW*?fdL6Hr7kLiVocF)^^k5%mqa$1=)7< z2jzTDxIQ%DRp{-HsS}DDH&8zjZ!T-GBp@sA+Jr%=TY|!~nCJNYccFgGx86?raHM&Y zZ9{|J?kIgfZ(YvN((JnxmIa^4W7F_+EX>jM>o@0EbJ5rF1&GNzXy?$*!&0w14GdqJ zdsE}7woNIVKCo?3*yxg_*+-%`^w%8vlw>;7fBE~TE?DVrP0cHy=~pbq-QJdR2;piQq*cXqtIYEc_q^XXenOA;l?a;? z@owk#j|n?RHj8dnXzFu7RW|?CDa*js4?YFXA9=)h>T`y^G(GqA(94@&>~Kf-y)`@Bx&&m8=U1C(cv?09&i5c}9DsloK-qi^qS zvNW&UF?3n6a`n~;o=4t}oRr`bbbH5yE;B<$g$^1zX7}oK_X`H*-)v|-%$&uAv&tiV ztt*kY{$Vz@CXSWY9_{XS*KyPN4m25_c6xVCv%H+rLvaNvWu8-}=wDpo5WMH=Mi0F~ zIhBaxo!pt%KBZ9acGH>ZWu!4lBjCU+E%hpH9Hd;gcVOnM6-|G4?)835c}bd2&!%I< z&>3~#*d5gSlvbu1R(O7CxW$9K$9qFni-+x+?M0DKh3t3z^E-wPF_=C!t0*Djsh?|? z3#r?Mp61s&hW@&Cjpe3JAr*tH)@=o78tl_B~C(Z38BiDDKoLY}WMV_~C;qk>vMVUwh58i+cC4V)$=| zYv*74aKfwPc+kn_ms~%*`?ze_p>^kNU);L7`&LlsI#v9UqM7Ru6hJc*%=Gp9_!Pe(E}5-l!Q@ zbLaJq&nmBXk?OrT@Mw5u;k-VZ^gf$D2t1c_U|{*o8=e+NT4X%(MV6Oj%-MbRP9C@L zMPwy1`Q5G5h1Q+YcPyxvezR~_@%h5pO&=*R7ju_Q#(DX}_U5McaT)FJ)iQO@(OaQQ z3!R0b{q6?s&EIoyfyMqDyZM2Ry`qZB2OHf9PkYp9MAY_J1^;g6reS&1y_^d5?cx-l z{M5k*T~790+HZWnoJOaa;dz~XKM(GlVKV>p=6#vAYkxItH0V+Mp*uUWhVI+9q*s*D zB(Dog*pDlXKi7E}lrH}vc1f04*!1F`;+zA`gq&TnRSMK-XHYE1zXV1mi zRb-jrqw4Q!M&vYlop^2FksGd+*WccW*qPFE$N&`<_byxq0T^nMez*VH*TyDeXq zdAwxr`f1xxli%O^?TAivzcV9b^35)np58y#<3;MQI7^rp-8CP!^-cI~i_^71Hf;=+zEwGR z*_92k@xS#!fACo28$0G*jQTYEcKQ+Tx_Q5qbegvBSEE+@E*zR0dG%ADFHg*R4mn>t z^@7J2KhagnL~Ru%In7IYqm}APdfZ~2&6Bp#w~iGZ&BJ31&;@%I-b?Iq{|VTrjs8?_*o-}0w>#6H zEc<>Qriz@fYGo{!X*6-jvvB81gn1sY`R%N{(at;0#4HmtPOeOQQvb`A4yTyM{SW_^ zS?f)&fxXMRPWrfGd?gZ>nlN?N;*?LR!*c4~HC48KwC+Z6!sP<-7$MRJgL-KKN`ym4 zvqOl7@8*3xa(3u2hc?#rC!N@Iuv62)SvRsO?q%HXSyhMas(5ggp*(KE}< zz4ty$YWuNSZr1_y6GS(Vs%N69nmX~c%@YMKgzffzVl9#vwCc+1{Ow-$)CJN$SH~?)=51^C!m!Wo<#+BD2W{R1-q4z$bieZ#_vAMXYp5s^y1eKZ zpLl)T;9H5?pYIIIk3Uj8z1O8i6$^hiDVTpNBxcyNaihm4cK_h?>e81}gUN{xu2@E` z=A`8FU(#uq5Kk>onr|Z6N3#;sK|XMmuv8{N8pXr|sE&qD6i^qt%xh z1iswt({XF^l_uRoURoBG_6>Tg|Ma!LtILXV$Jh6}RUG)TXzuV?>*F`Q>U(_!mj0{h z?BS*R&N%&{|0QL+v2wwe!j&h_Rw87l(=m4oH&i6_=;zE6z)Anz7CQr@qu)%)D| zIpNbj7H^xk`eOaJ)oZ* zm#@2)1#EiqvGtQ|+t2fN{;~e!zNX$=7Ji)H_d?0wBx-0`m*j}?L)}`2-fMbuf0xER zJAUeQ>-wSXMwdE$a{2g2MbMigal!9ae{AdgarL@a&k~k2Usj2%t3)0K{E{uaDy=pA zLM6hzcdfi#S<*u9&-el1fFi8BcW(nZ_JAM_n<@q&`Zle*RsV%pg&eNXUej88O`V*f z4WGtlM3mh<%q==vG~aCmSL@NHp>mQ6oGOfs92Wk#N|GMeN{+ggivT;9m*sKSW~S zxcsRVRb2<{X)AXRi;ei&PBV2}NLXx0g!V>o-c)l$=j9bLWS8x+&KdPfxN9($aX>|4M`Ti!iPwENL<-oN zZoS-oS>l#zk5pa%buH_4h3eq{*RgLVZ)u~QRcpVAysJMPzN$t*-qo%tIj)Q}01XqX z)j}c?0=g&&8IB0BABJdPOV&yP60AKV>%p%JQ?8-<^W8DIM(t{?J}GZ}cR}^>uT7Wt zBjUnj9V!omkvcLiLX7zjEg-~Va87FqSaCzXj!+*WJwmL`^85SA+-Qd=(s^7g^^$93~^ofj+$J#VD zG75};jP$+!s}%-{@^44Y)LO;*x8t>8ii7|2a_zcoC*KG$ga3N2ueIA%YtTx&EsO9n z?RD}MNW=N?B`=OO@E>%R;sJteISR*Pkw%bZ@G}eHXBNWGEQFs~2tTtBer6&3%tH8? zh43>A;b#`Y&n$$WSqML~5PoJM{LDi5nT7B(3*l!L!p|&(pIHb$vk-n}A^glj_+QCF z&~o!FfQ?6xq3|Cbx`dEF;)aM2pqB&lb`Z7?hV5ARAEVuhf-4&Smn-ZL75uY9a0Ep# zgp(_-iV9T4{OA_k{#thD+P?C>=@1g zqY0AZI>}FVvW_V0h!IMRb|O(H9Jl-Wv4^`wiy9|i53jHHf;|`eubqmIk9UYC93rEG z95IgL98ug6$CYq}GG=T_bM_(x>GA>$>JV#3ru`T~B?koM--5<8= zuf^f=>cUaqo}T^j{i{!FMd8~WMWOoYD2VN8$5s>^r7$TR8WscBV%p9{IjN#09+DUQ zA#vf`EdQBr^MmJgeAjINg||1 zR9}oKQC5k;#b2NH{maFXVu)sJO)l--+sQj3CYFy7BySHFduWtHNQme}@HoL}2vW%j zIIAQ{30HE2L@5P|XDMD{Xpv{N?Sk?ikwTn29CG<8!51S1sH1vFod^cQC`!^Oab7|} zs!3GIGZ?KTDW1Y;iN)2D^sTn4_%0vzeXVk+R#O@(2l%VnFm%9x5*{H^#$_RWa_KD2GxE%Fu3}ZeA#* zB1q5gOKYQ>y(2}K8{+%p-YOO30ck?Q;6x1M(Aar%nAm<9X*bA~mNzk9F!y!MI zrJ9XLRrz?xaQVBCeG{6hYhofbvGIJg9lKP>ovJstmp9tn{Vawfo^lN7~A zLwa4T6dmJYuZfNfx2qE0sE8oD*ho7*Dhkpscv&_bM@NWX?Pv8``{$7prRb3FMB)3p zR5!uyfAN0*Rq!NS#4ucgDJhg8KnD?^jc^j=P+({cDUxam(|ntPYQg(|bEf`lj|fRr zlQhFAS&WAs@hq-XGXkf?aGp~05`kkl_oE)+N}SNj9_NJN|KF0m{~~U(M1H4T|8d#Y zT=@Q%Zunp43KwynM`3bs8rD9^Y8WL;(zp`SNDRiJ8j+y+|4+@;f9+Atu)^Op-w)Bt z|FY(Dl)-J4k#+n}`&+f|QKg=|WQ7+K3y9I_N0zpxD@-mA=;y!SAsj<_8W+IeX(+%$ zYLZm4B2IxNq)|c53mUF!y~?#!<-q+P;30W!RIBM~u;vDUPX;0}U+uR$A5?A0y8tR; zJ!q2i^rYNyFHg)1C*3KM^m4~(FP2uRI%|hDEacA;6zS&4xqIRsp6)2?g`yrf;m)yM zv^%ZB3DnE;?Or}A{k?>nCrPQ?Ri5qyjpHclrotGG!ATD%H!`P+)08Z-5F0e zoK(57Za5V5q-jqNf^uhQ*313xB~&=ed5{=GxT~Noo}3p+c)8OI%W$45!o!pMdx;-o zWR&DdjfSF>94RtN4kan2S_8ft!&0E!If|gfAB@RA)Wr%MCQ!6eBT-VxL*Xoe)wo@P#8GMjgLbKTrJ5yqCC||sC5#jN;*eU9NQVC()CDk!CX}c~O#$u! zhk|7}@G2xQx*|>r7?0MpE)1nOQbP(#N@N)&Lx4}gg69k#k%mD9kyi^eQS-WZNd&(} zNs5FErsPF}VK`BM6;IZ`An~BT)FSxmz)6TS3(APAxh^C{3FCN?R$`PS`)!N}<0Vgp1S%Eh7y{i*} z4a>nYAcdOOMW7-sg0yoC@Jj?m5=s_lp+dDtF%nH;99m;t$k1vDCwWmxv%E$r(j*N! zng_WDK~aNMA}Nhn)A3?h9_KI`R*qVfI|{lGj3mq`&Z814(gbMy8rLO2Wuho48I0h- z!jdxe0B)d2Yj_eILWv@3+((vxabZCXVmz4HD!s~siQ@pr;gp(#6<_nZ00r^DWhuej zgZC!eAr6HVpypVC=LIn4Y>nlMQXxFloQnvT61gcT=XJp!trK-0)NM?(PD&0#nJYZMkijb&A> zmcY~#Pz?^6S*?{-d0J65s-|#}0SHuM{UwlunxcV!6=W+!=fh%5~n$J zjr%BoF@+%ka|V+DzzN1441fe?2@n$_vH+cGY&(FIfR)IzN)+%RSRcTJJOlH{NEk(6 zJb*K@#(Gr{1p#HioJn#YNfgi%4?_jZ00+Jor36t^WBC%*0)Y}5U|@Ms#uFf`YDukD ziVRAqS%C#5R%5xBaGFvBxc^_Nixn7#(SQ)h<{t+euH*#{1?39fl?ZYnkTo8Ai6RJJTc7O z9d&0hTIB}e0}B6>`hb{R#0RQ`R!t4m`NuHk7) z#wp;J;D9nXOymL7qQDQp664iBn3n3&II8k=!`yLq90gs3u{iF=c@hkT5uWhnrsKW@ zpc)kAlpq6OJ4hHbxG$;Hpe(5d-;Ib}B;md&5CE8$C++148-%B> z`|=u&r*NgH1_&d`ZYH<^qEf&CgKJ2f1F)o{G>LoA9vJwwUYsY6VH^u|0*bk*RG939 z>$)#Rh+3YW6mc-$vXF2R3_Hn5q5#sO(QrRduhruWSb^XH21ZA{kl$ zmRVE-2++}L8W&jt%ss_}PDUw^5P1+}T*HGo0uaK`I!ZGlNASQQ;u_GL0;e?$8kjf% zf^4A6)gq>=h7gtQ8#x_2+zT=(JV|EAQ@6ca=Ii$O$ZuBK$SQN4hTuf&N42l zAsVUSAacWk_~?>MKyR2Dg;7RXfH+#HD#6GLGy}*N0*k2T2WI2jcmuvAX^8_?M1qcM z)S!^nz@#ZjT7)SVL|_1PND0UzpiVhn$g_kJqEB)wI6*0Kr~o~O5DoPM_4Mbx)hsOt zp#3okW>^q`szEXEHGu#@;qDBf)>WDn2^?4_@D)&qaRIpoqXvBd5CmF*2ZM?Kz${hY z8~i#APzL~{!GqUI3QGeygbAP-G#VDg*&jGW)uly7qoDyNi4uq^xIwfMygu+4 zI!SOP)WCJ2v<@kSp(eqd1jYk}sRnHXAOmb15FmmY77mzH_6MNsTfcEaq6rbKEg{J) zJ2nB<96%%Jx;GE33?xtNYDU0xf}7WH?|U zS$V#B0tIeU!vRku>q|n1B_JdG2bMHf;)&x zN(~3h84AD>EHB6`xM^yUP-CQ|%Z8DFrzHZ67Ab*$2$l;pvb+UYgMn&+^wj9OH_#^p zs6J4}z%Y}*Yl62#fGrU;Kn(!N#^}}IPyvVh0ak}* zBEfE>YBi_iI24s#SpfGO01zPgSa6RRfE_w)3CXK@aPGi%gVBMID=ZLJ0wS7MYk*}X z2+$BZ?=6uy5LvQs2+XI}*+fC~)EdBs81Pd#scY0giC{9H4_P%}LqR0~vZNUx`dLn- zL7DTqtN|%Oq!EZOP{ELlBdBFL2YU`0j^%)Qf&jsf9Pn?FN&)H55G<&FLH3okRHhm- za#&goBM1%v6#wT{LZO5RF>3ICG_W?n62XjtoPp>8o2(%)SmZi%Dn(N;#yBW4*%ZQ( z1_Bxk8~H+SfO433n z0Wk6qozeGZU5zsfVI(QOD4nQ0{578VLIvw*&GwxojCjlWzHxC&Xvoy!K zs{op#IN{-i=~$JtC+SYJ?lgEIP|g!9wWqtMigI_OA%^PqBSNvdzc8QBX3*aNw3INq zfKUkyu%-~tB3O5~=}{$YZ+J7Q+IFV>lq0AY(`_4X_Y28z?4lpTIQWlrBUK zpoEb$pvMR>dobn#U}6p!D*{DvjtAzRM|J2ipjKF!@&<(s=0~KU-+(p2CBi`HffyiR z(f_lw0Ea?wETDN-0Pc=d)37oDaRF=r=LB3Sp5}CwhJG>NnF7cFr~`5drD-7jK*Nwc z@D&6w9y;z#1Gt0e8Gr*|MBsivfiVyj12;;|;i876G`jjt^MEEGV~fXtg5z1}GN3Ym zE#T4tLjaLhR0lp|8ITqVEQW@M(%|%fFCZH)h~zL}u>r;Wh~E9SLRk+l$niu;cTfQ` z8N|60B5f(EMta2YKUN%vA5l;tQn zs>eX$t&*0xV^$3a1Iz#{FW|$}y8I6oLqRSqr+PT z#jgRs4w?!a7EmKHufY<65;QYMNj!$qKcW=BjWw8O9vlwvvnlYd!Oj7m=fH{6NZ@)x z2nc*R9qSsL4HTsz4O7D8_L6{Zpx;23Gc*kr0MaVdI`}If0)U+`QHKb4z0;q37 z)TqJi!H5CEF;PD`gujAg3i@?i%xdeG2GAS2Jv_W(AL1rSGv6nb!8kbegD6T*`6d~&D>RZlAxm9+`t{B z+%Y$j(6L@Upi%CSz2*ryVlu{b1J;uBLft`gd2nvJTI+>^YYT$r@jsS$FWD*ncO@Zn z=3ka{V;I(rqQFw3U^pRH2qoPhr~|yb8>d2bj4kBL1Ir6}N`wSyG7zeUFNnbcG=+=; z;D7*~=|CwEe&;a=omuFG>U?3qb{74MhpmIivsqDF_>y4izN=vQsqj!$2gU zDjAIfBBnW!l*5OluBZ=CU!od(S%?yYPYvuH*j?}%0Wm-f59m(da&&lnkQWBLBt-R5 z6p}T-ZIY8)Ahb)W;VBs&%bu|@)Smx3I8m~`3q(*Vy8PYK~bbm%AzcL3f3Tx5vT%BeI!p=p3)#=!Fd_YD}R zABB9s;SB(!;9-KLtS7L_;D_MAZv!xt!059g$xu*hvx^G0636W;2lelIYh#|$+j2VDOh(vt?&%@qh!o)qb8t0YhnP6 zXnCYbn0~-n0Jazra?m&kKmqFb=Y9j90OW=2g#ezE5exJiVn?z^0ZH%#pdLoYd|HMU4TNTuuzc3qGOE-0I_%onZUCq5b*;R2Q-uHgaXS$ z!(%DnIO@_45aXjELzYy69|Un^ZOW?}?k%HQcrp%_ucWKxKv;rr3o;@ma_w( z6%f6IFC2UcNI!+)_~+8_xDE?hRDfzB`B7daK$OBmh_K`sQ3K8lWHIV!IfNs436g=8 zj79{FBD*ml-H_x+Lxu%^Ajx#akmO7{ zISK{t2QU+Wbb-NRAjKHMeQMCr8X#SCXho5Nd^;eL0g3~-2c0U%Ga&g5_8|WQ>?lAq z9W4iM8hCNpLx=eWYXFie2MNIACLz?p0*|M|+ZMsns&R1gVVwbI2!R~1sL419>IW%Np5+Le3JHPgpcS ziUGj_tnm+1Z@+0K5C?d=0{9$MLxA55;S*WRz&KDet_B%od0t1$Aqkm)Z~_RI8sG;6 zHDvBlPThh8DG16zj7OJdlE8Z+0Tn7CSPR+={9G6{ImM7cfw%=hghYmao-xQXgA^km z@-YI)eei~4{RnIt2ibcNpMdO3PKQnfSrH)r77QTd#y~^@)G7FokWeA=@)JjpW39`V z0(_t*P{_arXOROUQfBg4Fl%y13^E!ZdG|*tGSy?w0znG28PIT`o*-RL_TxZO)j;$> z_Nly7bj&xTSuvoJ+w+RC1bI53hF=xTumei0JpwWT-B?vzWki7=sVVRR+pwYZq z=A54+4*X znSft{5CcU0SPU|=ST*Eo>sa5AQv-?#f)Nn(fh=2jeFM6MEqEXnqfnss1RYutL=5uU zHGuXYqe5or<%E8CoE9`1Q2z`hHVZmhu3=z-L9Qtzb?(o%~}o^7hvc z{JPfrysEduTvvAYv9tSjqK1F#3Q^JUJ|~3_Tn}lKF#>E)f$gyP*eLnX+d25h$qiwh5dZTW>lR^bv4@0Br-U+&Q=RuY0?8-;DNXn$XLA(TO9c+Zbn(0AMF z@3v#%Wh!tjqKb?ft9`wQT|1$@9q{g~U3V!yOp1+F`oM30@zEmuGFNyMA2Aj|s`@OK zLhAkPhkmq&tG;xe{O&qkoATUNoqyX;J7)^(3x6K_v*e%0BG@}D=pyPt!6zv>@J zvh%2V8;zYT)dIX-CNA1827Y=?vQz%25dZ6f-!<#Ic65TDRFI-2`0)d~K#($c+ZRlC zgcu_Ktc_hr#9w~O>AM>KWwGySkT0s6ecSJ0Nu~TOs--7Z8K`wGsUxtKf{H zdfs}O2Ewo5AxQt`&#L4ew&A??`!8R5^I%smCPe#&BShuvZzse>kFL7JK>lM0ul%w^ ztdPb?Go&Tb4pG7{M&=`nk>$v0 zWCOAlNkjG^S;%k5G2}FI9=U?#B6pDo$W!D6@)~)Me1V07-YC6sdQ( zwW*V7UsKU^tm!<{4Wuv4Ywe4$j zwfof$sXejw(%QRgpQ-(@_D8dNW*y8_W<$*4%#zGDn;kW~ZT8mO+`Nr>SMx#UvF1tU zTg^|H-!uQiqP~TLg|~%hk!X=>k!f+wqSVsVvbCj~Ppmhk-uikc>OHQnU%zF2 zRehoUuk|<7KUM#!m626jD{rfjRjF%4219BS~uTHm^jwYPPc z^*rl6)_K;S8rn8=YbZ6G*)Xl)wT2%W*);0fNNO~z(XK|hjXpKDYwX!LwDE$*S&a*t z7&Ph7q+gTxCaap9YVy*?%EsA7u$g7E$L3B`y`~+S`ZgWkbbZqcP0MVX*>tjcm54+2LkI&FeSs(mbU3qUJ}M7uz+kbF&MxTWWXG?sbc%ExNaeYq7S) zr52y<+u8@%PqyD>U(m8vOSYw^<)W6yTfT19yjAa3zqH!k>P~CZ)@WwcXw}znytI*LI`Yt!sCqy-|C%eQ5iY?XPsu>p*n~?vUEy za!0+6bjOg6D?488WY~%86wzs2r<+PMrJHiJa=Y@OgSA61hsh3E4yBH*90xfraLjS6 zKq)i~-GJW3>R~;w$=E^c4c-A4@KpQ;VNQ4viNt>5cd{cXk*mmCRDG&9HJv(6mD3Cz zO{dXCOetq^g^PC2aQ~ok zQcX}D_0ad|<}u6Tl4m{70MF%~_q^=Ag1okSz3xVJ8{h3{cf;;IyD#W|)7#ct@ZReE zx(Cx^LXVR@&3gLvT;B6huMWMUdmZep*SkmWg}w9pwC)qpC#x^g*Sqh+z6CyQeMb3Y z_cQ9}(=WAOp)cn9i*Jr!eZS#;+x*`9yZg`czZ=jlATHo|pk?5Yz^#EF`g`iSR<~DlQU>Bo`@JdZuyFBx{}rxdbf?DhhTD zP6>V)q6%3a^83i{BUg|75ZX6%b7*B)|FB)*CgCH(4@A_92#q)y*(`EQj_hQW-G8JA`fGndV*m?h3SHyfRuGW*LM zVa~a^*xaRaE0Z)ym*&y)R?Rn>A2B~~f$M@T$#s**B|l!+dtv4xyG64Wy<0qd@!1qI zW%ZI;OX8M1SlVmp{$;I}&0qFqdGPYwRQJ?fE1IsDx#Gi0apkpDU00>8wp~4Y^`|u< zYi_OWwl;HJn{_Gcjn&+q~_1 z+vBzu?HID-%1)1+`_q(ZYj;`in!Ov@9k;tUeMEZRo}PP-?`8LB_JTmS`+0m$@FOLNs zdwhKO@w+DmoVana-^oj-dY(FS+UxX*9Jib!XI#$wcGl_afphG+tn>8w%nQ_ojEmI8 zj7#*T%*)K>{a3gv2d{R%dia{_wPV*kuAjc)edBy?pWLf?0eQD>4!QZ@mU!#=?XcUw z-x+=9^WBO0hWWD!>J+5hYkF_p{r2~FJ)j>Pdg$@+!Xv*&cOMInUp$F<^5yB2Li56u zXU(5&eU3l>t;nnBO7Y<0r!S&je118tq;AQI(srf$UUhwS;q`#mPk)d8z4FbRw~gO! zen-ALUglGF?|u0D&mU&}(fE%oAK8yNpZb4#_BsBG@t39L?aL2V^sLCQ42M^2mLe9~ zADupIpg8#HLy$==4kQ`@HSX=~q5{@B+w(|*4GsoMF^Z-te$ zwQXZt`$moItt>1otmH2XtEwV(Yf?ewQKYVkK4KWCudqk->MHc>Dk=-$6_kOMCl#*H zN<;bGoQiK?M;}q>85kNFo0!(Bt@zKA@CrBmZzt;@3Im1y&)3>jzt--4hm3W;ac4BY z7ers3Ibc)9fKWcr_~62b_9yF2%bz;v8M5w0POX&Q_Ycmo^X}1c#whodoBVIp{@f;G zH&yG(%S{D==9c2Yq(oZc<%?3FbekDJ7H3{$>z zb_tyLYC}U8&(tXmGA0F&nRltyX3C=7@BvDPRmTeKt{z{R@UU>@ach@%Ldb1@tA@L+ z#+$aM)*oEd#BYfI(!5=DS}2ayb@m$&I8)W)!D2eYcJbtyE89PhTB2z6wcl(@%U`J8=X9+UXE)r+q>n|EBlXMxDfnn`?n42t=~I0sZGFA+bf~y z7{BqKJ1whko7Z`l@9EDj8`mcdF7MwVA#`o=jZYb~owHUKH@JK*w z>0>Q!nEcVgzRnu=mC=iO#6E4+vi+i2>RBo67jE+I;oU0P&u;d>$&)u+OHQ4d+}hph zMeLLn^&6tzPTkjvMakYhdX0FqvelwFxvm~-=XYyY^ejEs#&2MIFN!R$Z+y}Gg7Qi0 z;K2_z+&r+NUF&vRci(L?_R1eqU4)Zk6N{++?km_VpX9CSyPL0DWyxqs2z#m~iSu^mINSrE6@4oXCt1 z2^Aby%S1$qw@04bc5}D!B8@oRa>U%RqulJ4G%k$mbFt%$4b~fTyDwfAGuOhxcGmNz z$7;8AZZ^h8Se4Ow@Yb30I|WbOI?%wu+0yPxN!r8MMhAL3O`fujcP!p`ZIr_I%m+R9 z^xs(TfSu`U>P^W|&7FW;nELC&z8n5{*}u1VNF9f^a?dz_p};XF*>vI5v5x)A1lwI9 za=OXTVXd84 zSr*Q<>lCr@+Wlnabz9He2fWkVVG=oTNm=4p^UNz(ZcXh*Pf9-;{LEy~jQGH2*EcL~ zZ*5Zkw2LsoYjcXTyIG6LnO$}ZpW>${HMK^2&D_0cNAd`V>FdPu6(`;qyxCqp{Afha z^Q&4J-dxdP#@&7H;f-xwJq=yA6=XlVlYBOz^_&A4WW~%%#QR8Yvu)n_-LlGjDv`=7 z3*XGR+Mns$VU_2TWszdT!mf`47B_7&pms?9=5`*oJ)Aq`#}4qn^{DNE!G8o;GcgA` za3f0IwjaGWy6>s}xAIo1t&BV9>)ZCoTeF31G30Emx04O8=*{SUXT{+5lh<9%7@W9& zEjNGX%y_@y?Pd?$_x85hWp`jopIHlRQl?oh9uvC3J=$(lV8irY8{EZ3d)!(raPOKt zqeDo0aYmnH(?MA!9ld6sHyJ;+HaTTb*xY*dr|b@CXrJBPOJ{wSV)h>}%Ic=hw9&jj zcjof1llyX5Yy=NQ=7-tIWe-PHN&jGj)bw`F@9YP^G%D>=JH zUOwsTY)4q{q>;`kEyMHc+AJUW)cc&&Xv3Jp1Jh=14k;~7KbYd9AN#W&} zQEj90YhCBoD-ZiG3_m@jaLd5usx=+vop-#tuAVgE+|ETF?^JPF<0fY0*EJj=`Hmdh z%rML{(xmabhPwyn2R}iZHSYiXV#{uJNyUzK%k+#VFST9Nw849ikZbJ?d`?caa$nQW z&uUie+4f?xcWZ|gZTi&nQ*UnhX6x=_frI=^hFG~v_Un9o7lP&MlZ`+=`s05`2}9|Dh=A094NyQj1V(Q3ibfDny30VRAt5!oYs5x(i4xL+ zG}0}hpkkmXaOd}T?|tt5?>swW&z>{R>;0fHe>#k-|Sc?wH`3aF{@uYRi>A6?NRQ1}AW-8i!rXLr8 z7pAhmo~oUiQr?1<+vma4>6+YwJ~IV)>UbxsL@eKYWZlR8P;ff+;5=sO0)S|JHaBbG zJGsgm$@w#|BCxNP#vDxWZQOfTwQsldx9F(aHdJS$LbbPAO2JvT)K&hWcM{YHwps#6 zRpwlA`sC~p;U9#0UFpR5KTp8LXhrypw7min{>>%S)s-M^?7ro(1&W_fi9CmN-p}?-{be1ckwVD^4D`<>UJL zxdFr29J592xz{{V!?XlMN>78fQuwnkKq!2DQZO(N|~iV&#iW@#wY9@nRJNJyzEkPHP89E;j(#B^T5 z=aZuU%Ci(svPjbJ3fI$ON;H54p%;Ks=ICWJ8KaJ8U|{q}Qc5Zw$Ussls|&vNReNLAL)BM}o_r)s)- zboqOui0zZ4!M8s3Q)WiqLU4wePyc_Z_-z9ZM?(3%oc!$<1&^Dv|>?(ca zST9qu!SMIkGNj;&K=S1aGc{sC$sF*N10h~lunW3K#y1UvA&pD;fk&ayp3SrD;!rBWI&OaJmb?gD?_%TDK83YvF{qoDzGwL*}&h75k2{O5^EIHG@t^eqa4F zS*teucWo-$%pilShuAq)jS{WD-Y4MNVGv+9BqlBTJstY^E2pJ{y1&ikY<|ZFGRKkr8O7G=*sBvIA?(cPQd!?&A(Q}aip)p|!&7hrx69;9!0MP%t*`gf4hx_xIXvMYiUv zu=CM&otf|_sKM}*N{NYRD06I9OYe-%d!}Ud)C&N0vLSKW_Ri0W?4H?og*_(^yy6nobAXSTT$=4D#Ly9pyaLKvK$Jz!G zUQwlLoVV3x?$Y_F*jxY%*FZE61b+`cK~!;ME_hp5mg7t<%OiKBo=sT=NBp?@1onn} z)K(_R{VWyqP!7JpAxSZ+oy>~8bKEB(`r6|T7fCuy>{9$kZh#P}b9oYaMft2>IZTZ@ z(uE^@6h6rqSn{f3mgX%o7KS*ks@+pa48Q)#Z+w^4IK~7Jxh+I;oEPxaq-3iYLgwx; z4CfZ-Qd%6Pwi&R3nL({e0?iHKR|M)0V5tc##dfSW>6Ire@f~AP0JBTCLqpkLDn-b( zzVQS*pQ64Pu7lAVSCCsG4RwpWT6lF!qjInAB1W*}UI0ch=w5_W5n69CFdz1QG}ui) zAF&sInr0SeP$OW&MiP9s8|FP+D~F1P@2 z=JmeRx-=Tt5yA(!k^9`^g@e<$)Q7-k%*cUzl?Sul-?=}o_j-rNLO#HaSejPkk2^}r z#3b2i1Fjq8ynz0>JYI%MT73B~JQdI~Vj9xI0)E5(G&f_$lDh37=}MantpcU)1TVvD55x>C>uVD17iC4NuqBT=htuF+&d?`&T; zQY>bv@)rM;#+pUwrkd>d1>l|QS6X8eIpf_Brl8XcK&18OMc$LEi4S&f=r0oHQ`&6Y zqHt4RyDk74YaXNiJX|&pkl%~^cy?|s9dfW9Nk%a{H*5`F-tk23fm;d zQEMlsXx}&Tmg*22{YvRe`TAz`W7{;bf0x_>S2hMmU;njijmy^@k1x0}X6pDxZ_?%Y zg9?VEumC$8x4{Q%xqasA1>&oo5h`O5>H__Nu5wCv@s{TVN3zu#YsxQ1=4f*4*%k)o(hnhIo{=h)pJ ztzi;q_d27I#Fl^jl8h)2xKJKg;jXzCWmjCX&#dQ}eVts7`QedRzF)He7aqyGcJL#o zeyhi=#_C{I&w0@}Sd4_YZgy0pFQ!&;=<{P>v7-_7!Yw3%@!QX=T)WAk~{Wk5Ua zO4rUR_=Y@jDOE1-`a1iy$bH`1E-MY(>DwGx^vFUf&A`ey8SGLz-E)@@4e_CWkxY1ZTxB?#_VVVzW3V-;>4yC^&*|HhZ5WHK-u57$~xL8OF-O;W2~MU4KqR=);+{X@*O zR|_||W$O~`ZF66CtUa`;>XqA7>bAjQIYsJQ4y8844unS$-yx|;j-$n@_#XK39EF~_ zB0Us}SSMNYiCyZ3m8W<|11By`amhY*PiwTviQKDO{On&jyRc#_oZ{J{ys=mU-dhM!7b`P+us8GF7NlzeOI$u~tJSI6H;b$T-U*|2uk%*~hRDdO?z)tu7uUREC6Q zwmgK*fJKX%=HJmMy4eiP|D826DO=LpMJK~mzh&y70SD}3XAhGN{Sb+Ck+CR)B+b(Ch2(Fhc4G~GRa zRA1KC9knm$9eJG;Ycu_c*Wc6J-FkIJZ#@tFcI=yv2L( z5*jX)>SPZjb6#y@6OE3GVObCo3aCHi>P@Jb$)snHO!k35eAg9#eTh9? zvy%2dNra`^`1~#BAb@v=2L6V1zS)&&?wfH`0#@}O{1Y%w-oFWtuA3P5{3z0olpwR} z9_0rnMDroTK?#U6R&DwQ``&v)hSKskh;NoF&3&6)g5~dTXg&$gSCjt*RVD*G7)o}o z{s-mtf>swfZNC8^?T2<5%(U6NN-d}c9#Hs)^JDkYUJ2?pRZXF7%a2R}8vV|WCh9X9 z7X5NUEXC_f`zLog)gL@HbI>(uX<<0zwXBgZXTIhBtEL-ki@YJN)YO4nFjK4%dgS-r z>i6p}F*`Log}*zOn?fj>j*c4hG}P1)E}(!Pi64uzL-bi{@Beh+$xviAbNu9{NyqQo zE~8YQv_ZqKKL1%r(gnq+Nnu!xPX-c7_VD;N$(!FtTR7nw_MV9s)7=b6qy#@aRdqnq z04ipxSjNn)hplqqCVi$iCrDRMyr`@zX)4o$SUK*+LUGW@g9Of^R3d{Jexi~MZ1Y;3 z7=+Z|m++F<5ZHWZFp*nYN(_|O+Uclho=E=<>4EcLKXh9hc}`zOX7JrN<=yBFRQ%YB zzO1c<6H3E|{%KD13YVxiI>uB}ltcrTG(ZtzISCm+q0(s_Xag*4kJ50_p##5E>tG`>Tvc-BzpUuQZa!AxZBTM z$ICqW#1#38-mtD2#x|noE;sQcS#w)s<{{}W4d3xhvSG4GR`n87*y)XrWYS4kDo6-f zZ~U#ff=aS-K6){#uk+lP(dq)=QG_kqu@Dceo&Ifjf^G5nLiJwUCp};8&+GjfpDN;F zxU0|6T8Qqs9PWOOw6~hRMHKJdyZb(C7l0_p1%PY>S)1fa2@n3NsC-0gC*!&TvJ})D zg7trFwgj|2ay<7wnfQDrPyp?DW$DN=gz?>CncuP01_!_p zkso7>2NR#8zTNI+C%UgaXw}YeNe1)GJCojD09?Kyf84L;uF8O8=x?udZib>aLaTB` z%jt?ztH+Zc=U6yAT&6QuuWVDiRQ?C$D1I}h_ zl6HfTS9?snaeo0tLw$|cR=<{iW-2ax2d>ny=bd+5qa=Qqno|yWB)jrDKv!YE1XTa! zVD2HJh~&`g`j(yD`OTiBb6Ub8^O7UAn0p!^f#l#6+nEPe)P%lOr#IDvIx&pcwMjsQ z${{dcEN~{mN#E5))Lg`fD_U$>^588xI*rqXR~0@#J34nQ3dE#`++^EIII$I6St$D{)mx|GA2hl4bF)Qy zbJ--0#V!ML*yj4pQcc9n4E9Xx)39#xUSXD73z5AA`ikwslrnZ7g+|j@) zWg(-aUu_;f{*^j_u!U>D4T6o*XQD-mJXuBhMfGCf`rux&ZTm2?3xEKnrRGUzK39vqz(?jXGcCpMHCm+j!12a{+)g4)c{WQsKjZ zG|N?ukjTd0-LkGV$CiCBjWz*aG2T@Y&86kx)j!0jtXE!9H!-b}P1NFbjslM6<|v-G z(rYDZqc({eBR@z0U&@U|eMcXanv{b-rJcI`!-FvT-k)LQTaFkP_gaQ2J1Ku(=wDWFe>lt!X(0kG2{l|iut?{MAh&y8*%%Jb34x}%3dF<@QW zQikd8AC9^z8{Y``)QY|64IH)nEW7gkpy&S9vEGxBgN5%JJ1o@<>oETjZPCz&)?}T< zm^&|N-BYpSPp61^)YO&FFL$s1N37WSx&h$!Eutc`YDqKa>PF~FVElEhvLJoVxAJBrb@Zu_z zzY>Hwc3M}4?8tiYv$l@x9qk>qzN)-4{^B679M~u1DEqxeHv!12_g5_V`y&TaQeLws zE66YYAbiVF38RShEiE^xl=Osr0fAVXMFiZLBhOe-lsg<9CaXKp)HDr=5e=|qb52e% z4V6jFrQS+Gow=)wa~x?jrD=$9fh%Hl1d{sX?j!Pe3D}yP;d1J#3rYXXlsMSQ4mo=sfa-ySekB3l!66E12zJoB3XyY=>9LT z{@-*T4u&W>?nCaeL4@J@LV3~%B>7xwmJ)da{3j5|w-Wj70%by!#g=7RLV}THpx*{C zs3pvM6QpNY0XK|V*<{a_zJY2*ZZaJ|`+Nb|X9u9d@x-~S4y(@)Yw+D12=CytjhdXl zYv+BBTz3uo>(j%zd5o1Sl@Ef>69ziZ8FykZwLVwkrwcDv^z?ZOKCyk8ah_t3hY{vW zw_s9EyZ2kS6N#w!MbFV2lREy~xzIYt7w&s}AgiQHg9f`>Qbn@ocq)2U&p;f6ujw}0 zD8)=dkWvk4Za_j7#?AiWv1RIQ=g=&HSAvyxoXAUPer2@#@O#q&MgZ?(5q4&^&=dK!lg5xSQ-C|X2OJFM|mcbWF9>56Ez+aVGs!hp7C zm-MsOYQCCO0_496^euzMLd}83%o*AKNexZ{WYy>yxuH3xCsgKG&cX`20cL%mh0kke zZ;@*e{8nni-=z^Yn>bY$!nF3_?~U^mi=M)0%MgjMcW2YIroY#QS}y?FWvS0^#WRVS zl{h`R8naHyV*gXRSg?8{w=^#H<1&rz%5P>_Jwe@R&M!ZoGt%R`_ZM2WC@}dye^q~R z)H}*&s3!aP$q2lG?L=S-@lzgHiZO#(ftx7A3OBr2ZhIPbME~uhmP(>@m*7oRkz0zd zt$29Bl7H9MD=WRqW)G|<%tBB!?hHH`43lqdXID#kMmnnSa1kPWS_E#)Fhg4K%UMTU zk~qhOjcV51b~^fIegtKfDShXw6vv~{5I_MQp0`(ccl!;~DIDB?>kqE>Vz#@gJ<8Iq z`qP#2jsl;fdVBN1(LkAQMwgvZK7`x!)SV+d?gr8 z-wT+0ssJHs+?I+APU!T^7;zH%ZV~iM?sCYMV~*yDF2p^MRWP~=RN-PbOYS1BVet&2Y#(d+3){t|WGCd36ire}T0&>+Px zogE9Y_=gJc9s@ko=t@zW&{UaLA$ramD|z&Ng(qp5`IlZC$mIK5Z@(ZKxjEa$4o`KT z_d65P^$Sjpm)JJ$kt7~{>C$Wx8`}qkG2%_XKxfhlq4cZVKB>WpL~o8wi`c&!r?P>=T`Av7VQhTI~lC`g(%8c-- zphYw&9AQ9@k3c8s3+;#dgZ`N#>G1!c@!!G!i=oo~cqAEF{~0OdF!&#%)>d*%tvAS% z7Pa^XxQ4(fAUMX=Sqnj-&G=lS_Nj)?-vNAw4iA=A!`q|Q%XdYsp|u-#rPV26$df*$ zw<{Q(4{}NpkVq}2#2dj4A2hMsbSJR4@+lFG=v+Ih|Kcc~iws*V(7grzgiTR67*Z5j zk{=lXJb^hau3wdaSHa6nGr>aj&8vC$6_sc*=am{IB(dqvrxM3$@V5qCF15Fve3G_? zSj)JL%F)a-I%PwQFI<30Q7C+t4rK-fT#M7dnm|BZZKoMP=kA*tQ{u~tWhww=lvXn3a2J<9X~s%wb}ox^6$v zpB{qEpQIV}Zb2mYFXujW?TpD2V2N8*)VRt02DBclc|@W0wKhP$fLbp3J1V{IVakU> za_TaYS9MgxMH{kLfi)@1zZq+v=qvrkl0sujMA}DAW)p&~fg*-B@ zUrhd!cmdG809;C(;0!Ti8(*O(;!<6c0_;x>)U*#T0CY`t^-*_pPT$Vj{VX7-reUUz zDpDdR7>VkY+N(3OZWC}j+T>zhKAH|N{+l^XZse~ay07dg``at^rK@!8A7nSx|D@TL zXF@BQLgc+!Zc_^Dxt@Ml3L3BYt@y4wX&(OdGDjJ+&K}#VDNOwvWuqNoA%8u>A_ZqzL)ghZ|31|Rp{C!{eJy2zxoXxu8M#w#eH(4 zZVRPEJglu+mmLcVczd-vzcX9)Cerg43i`*4B+QFcztUCwE)sdT$!Y z&cayCSJ(xb*k>c=&0!UYW-=WO_b5;2@p*e-g+JW#iHHcU0MO_y-hpy3S0q;p@+vdbj28y z0;9G6qf>kFqAoq!2D!|+>fX=~)D4qX zlY+zY$Vt&a(`6B~(SdfRYT(fkhl{X~ZxdCQ{NuKDQU+%KWz!eTvWOA;SC{tkG-}^r zDaptWhm)4p^`=k_DY${Haz(K(KLfeuqAiqKD!{L;GJ??SjSinN3D2SdGv`s0odkcf zZw#D54vQH4qmGXMdCQQ0u=fum$sL*hF`CIQKpe>#slF&tv>5jfBncbR-edvfKMcMj zvCBL6UYY0VNuGSFhC3JR< zvsjxmPSSJ}&Hd&cP6p9vy2un;GjLFiU17~aJ($gVoB}1wz)HXP@~Azvs+~;Ay?Wvw zRfz}B2%kT)^GfxLo%K&}JnO)tx%Z3^Gzr)o3id=y>p`hQDX>FWTIg@Ir=3!uaR*E{ zvKk%sogCfIO%o~ywM1G>X?c1Srsu%YYlR22_32dlv6aoou9=CL{e1ADk!SHoNnVP;I~L7JSFI zBsVw=$P^Is&?_Ktuz3p;fz?@gNQ-%J$XKVoasNd_zxSPrr?Co^I?qiXFYXhPo}>q= z*0%H=u$B9^8p&;dO*`qYv?isiWb9|`OX0j|H^V~CX6yChFOd>LOjKW%I>ct6D#Ir> zq=YK3DR>6>l#yDsg7$t`&be0iaXay#znmd6$g18uY~cZA$7-j^)7u3rrM}QNx=iIK zX4LUwC3}js_w&L(gfH%SF*LfY7pc+|cC7@`#;A{uaIQZ*(J2jk0T6yw>U z{gr{`L)~X4kJ3aRiCtu~^PA?~XsUiDvC_K^CoKY?YZ`nk2Y9-NZwJ)V(sw2Tu86t1 zta7lpdJ2~EOmXVO2zX3_!KD}T!?LYCFu5%t zaI3TD?!X`wviej5mF_C)_qBd|_*1zX=4TTSQya?s;?trg>blH^n)j(l+N8sebjxAS zS2pvvoiql~B@ZSi%@Z_vlAiD^zbfPF-6rn^WoeDc`Q)=bLfBDpG$JzOnvxcX#T<8T z7gm$_aK?8&A_{C{>+elUOw!CA6uw9=asY!cbhA^jmf82qs&t~|w=PqBGs{DIBqim! zf{ue`TzzP+;M!+=3rT$|75hQ3)F>yOAv;!0pmH2zg$cVX{SYYET;|h_KD488Q*5YklvTb4mQX*l=Tz3yaK4_r*p1$%;cs7j zjOOfJuRgWsTd82Pq>=46!MWi46WMKkghx8n5dA!7=_e1cJio^#Dj%}{qOnb8jOdxD z%-ks@D1K%mU9+d3t$MGIc_3>;lgv3mKtg^4M;v<6uC~zQb(hz|5jx~ttr+(&S921r z)}V_Qg$N{>0(*gudD3u*Ke^|vPavQBkMRBf>=18)H}7>)FpW&=7y9zAAd(_fDh!zh zne_iV`p=lXNrq8;Y2$>%^H+__o)-YwdzEMWf26H;`KcNlI%oX&QH`)_19t3JQfOl& z6SOgTrI>2MI=X@g8XhvC3l*j?*keV}iUM-WDZtWpmI`AtG&*&)(?xUwMj^S$AEF3f ziJD5HRED_-526f_H9H8oNg0t_Y@O*E4|yOoNxE0IqG+_2ey`nBT$=_Szv|GCFv2yF zDQG^$Okqr~2Z}avO_q!=GGsRWsG8;gHfjYCfT&8GZl&83+V;`=OPWsO=#IzQXs@7K zaK=)gvI#$U3V-rc9@>_ag9)j#9$d8QFVze(vo1cLu^*kC%Qq3;&@{ApCC`Dmox z-WEdS+;VHjgz&Lkvn7^3_Ig5myB9hK(&LwfW}5gQO?=@lcQ31MGRB^5VG7(*C+$*r z>6281{nZWnAfr|uUKMMSS#6!;(eJA!QUjZeh>^7{O}`Xglz)$e)92g5L&_dYaCCn6 z=8&DuF#jBTe;4ahIH{}#?#&c^e(%2j=Peo`c9q2vh)f1E!X}`TKUsK%P`?G zGo&r=mKkoI?KU7izv)&sdJd>J&(gcK+6E^wXli;2OISBTDBM6=T)!t&FD&{Wu5I-&ZC z>1I|F1xeK~a^Wot-2dx9>|1p-^ocXe>aI>~WC@9L^{fMzb06*(sx`#H?|;hBlA#<$ z++g9%0!3C;55Q@3dMMnTDTfY>7G>yQI>=JRARd!qREh}Z0WZ-kW`o{Allw~b6EkB` z_GX?ES0dh8Uq2A(76ein_H8%xCh2{tzCW@KiJhb} zYO}K8`~OMf0O3qiJpsZSJ&nhvT-&)bv$8!A{QhUR#4RUPPOPWH>m!m}g1R)8hCaG3u@bbxawVMRCL20Ds__ww9OslndTHq zL25gg$g>uCK_HS&K5pkKu#0h0R%!4|*TzWXHTL?ML@L3-*6-;Z<00=_s@Ykz*!aCp zO_*&AjtjV(%Jau7Ld9>$W`A7?xCWxFYdo@Ed9kQ(>{LFwy_NW*c$jrQaA8tiK(U^5 z4Lc8!=`lhv<1-aB4AA368XzenGEYNzm>97lz4J6m4XJA(JK92^ail2%iIPcmQX!O1 z8In!)n|PQ1D~HK0qMk6Ex&g-uDiul{VB;VPA(7H-5O&sB4g*w~C^6P?2cGt-?~04a zkWdt`w_`Oene_{&+6Fgg=}(nM7l7Q3CnT@4^EYW8p!N;hA3o4i_KX|XdC08fz~E77 z{JFDi!HhE;8(SqF_Y~(TIKci^Z@C}NKw4S=6(s^Qi6u2lZ2y<_E7*4i8MYWJKsb~ zr09{}FUZsV#i?Mefy!BtVV98H!B+Jw2r{>?9J2RBiHXK?XfRoI_R?M+4=hh)hVHre zAD4w%@&m!!=#(OrJ#NmBd233CTv;G70-xGJO2;`|%UPuz1F$<>J9InSg5|x5_4r}k zsBb>U3DEuBKls_cwjaZ5 zx6*iF&YsWb4IDP9Xn{+yayHq@Z-3rUH1ly=-NFBz+Vvn-KBMesx*p8Le||u5uC3g{D*}6TT2)9FknxI3rzM@hqy8Rp_z0 zTtp9OjHTGGIBAyUMH-9vP|kg_7*5*4yegcnIn}TodF*<>Bu)3Rr|0ysUXcDXHsL(E z5Xe#W{l^0vD}LuWnT~-+EfsBR3Gi(mQ+|FnYV_9M!iL7?;9nB*N)W34H&vg?j_@z! zv3Ju7jbem%q_fJ1dS$6YMgL|l!gxF;B{j7X6U9^V71Jwbv>Ar#nmTI+{@rXLZP-t3 z7#g~4yB%Bp`n)`Wy?eW;N#DPgHPo_-$7E<08)N>#$&CL#*3fI2-&z_Vm7%Kqvqal^Vaf-|P=$%~*z%mF-pFF|vzBoc^nU}blh`Nx#nYp*bMG0& z<)l5}8kz*ggHGPok)7Y1^@6LU%i`h;(Yu(prpfj!ZM`|Z492S~bS8fqE~Ov*JoNTX z!iay`LYrZ0RSH(j`)cy))M@)o15F>dvJs8*JyfBsR)TUX$qpG38OkStVj3R;R7i^4 zqLIJiQ)Tg{si~C(7n8*sq}$gdFxvP4Y}Wla0rjc}^%`SPSg%oZSm|)_w0pf(`&|d1 z<^Vy`ZNM1VuHp^H`zxz(H&he-D3AVaKkh2L+L+(WslOK#CQX_=sGlgRM3gx>w;bV@`(^CVWYOxV)VLiQzX#gOpsciXqRIHontYoClLC1)>j{eS)ALDdYy2NcnNCP#svyXx1Uv00nJ*W?k(2cB#Yv#reB4s=c1m( zA-2K|w`F#bXfw~p>K5~?0iUWI=on)2sS%x4z5Nb9za3k$FArtu3bF3{k^`JeFOz~r zgB(Lal$Z87dZ!ta>N?VRb50o9=biq<@~o9R`qr+$^qt?q-`i4<@2II#B{)Ck=Lkxx zxMuoWD4EXTUn-tw!6QfR zTdMp-tEKJ-owZte>0f$HI9Ys_q$+m-SSKRevOWED{eR3l4Tw49eW71lI;i{|YreLl z_PvH&({wfq5Rdcs8@kc4=J4!`kPF9K|IW}H>yg3Z6>_t=g^c6+pMIsCDRY0@Fkf8z z<2$Rhppr)U-DE$cCiZo9>FeuE70onC|N9YIs_Tgl7);T0@Mkr5>7fF@cAix0`G-HuPvXI zcZ9iDGP;Jj-uo`l1f!zNpu^rlB5AWk9U%&3I|}@8h7dcd4-IK#6MXtK~he zJPtQYL|hM$SqQx_JjQh0>Vy>54+HCwHxtpOZdirI+#Z3$uw@!>Es@k2X?laaUKO;w zphNR`FaV5r#7$ZVvCDI$2@8}j!~US=GWaqD8ygASDyI)z4s>}j9cSvm)YX4q;niU1 zCR}wcrvHaQJc6&!k4J({N&dHy5j72gb?`FiI+datyx%J-Dw>;r)BeT%yv44?*W_hn z#cgN9rH^gL*dKIpOc#?*0wI;@euN5q34{#@d7#`7v803(xyFhPVkK{)DHfHlLZtRkHYO>Jd0QL>k*Q<72za4Drg7y_v+fJdM!72d9XnOwo*p3$9Z{LCL) zT>B_I>KHW_)bOFnTN69Z8HIamljPo{@RPyocV)#sIVKW6a!225v1+jqa?Y<`vGTBs zyefaMm~tRp-|4aF0`b6-tv zN!4S```G(N_R%h;S1vgLr5kew8XE4p_@rKUzv=6ZdB4dFbhIt$VjL8m7b0r;H?=H~ z>IT^9uWi;e$G+TdO4TUsAU2H%30e!*B@)tn{%;G*M7_(+{F>c(iK5c4!+|2CDg z-am(+w=NwrMP61%0KvTR_@*HfZ#_9uw|Yt}vFgEsBRgX13u3ns1@12WBDvJ+l8*P|S_k9cP!KKsndxN`|& zrw*;7!qD?iUiQN3YGMbS1Wh7U`>m2g_!4P!eX18FK9Z=##oyUaTJ+zPxJomCO8moi zhun!qq0lrgX%Hql41ZauaVN&ztkopHEY#krI&UP(59+OiyOWpmoYCU5dre9O`es$a z7Vh1(8|)?FPrPZKm?#8`5}BQJI~v*%5)(a0lV`DdsHmwz)2+u(CR*@G(0iahWVCSy zxz4}_K|D1@Q76j@apE(o^T!7n^ z-~wk@nmZVR)irig%Wtke<~@0~POj4y5xC&*XZaOsYAPePgR@ z$E%MQp zJjmiLxd41YU+;+0er?pp%hvq*7gw<@8i^6UMK9b>rza~k^=H_Cz(o*)>uubb@d$-n zqD~E!B*rEKDYTZ>!!y`v_$HX+aasrXl+$=%{9v8B5kBi``*I%ZC2|P?|0B3IUFJ89 zdzM9r;vb^RF|KTdGPLm$qbmh3-I01=Ol7Y~CT6@M(Kj5f3j{>NQp{sH>tp*YC{a=s z4}WrCsh%nHAm$KguHRQr%iW$v|3#ZuHc!M3R)C#IhB+R9WKE{jZ&0Y_)ijP6t@ns~ zy(~=x1_Sfhp(XI8(Fl}wUMguxn1unEF7cF@+&e8B6_1J`SiLwXENV{zJFia2(#MZ~ zV(V!h3pNIBh-w=EO;bZ+T0|&uUzghcvM=u6;;-KRLYn+^`=t7<@Fkh$$9r!`V>hEW zWk&hWQ?xZhWzQSNC2m3cBfAEBjIsvNsW3*vSLOp6t(_2=F!MGw#+%d=k(PH zlh-!yKuZ$~@HF1A6GYX~lSx}g=g9T&?|wjLMfd>PTJKkJQ+?ep?~>Oxpw)Q_st+bY zd6fL*z3#so&2xS;2`nEH82TkpnD<<3ENk*MYt00Zr`O(*Vet*nmnU7unOR~eOsJRe zxBXP;y|SCcmf2gZsqt|-8y!SB5Qstyq^q)1)|;e6A? z%sbQeu$mPk+2I-g;+pxhT}6!o5o#~eWu>qBmr7NY?|uqQ;FgFz$R7&aX!?m3OxIdm zF-LZ<&_bW12k+DeA5lR6SVE*97>$tkeNkvT!ES3ro8DCP;S!Kh>;+&w`x(9YZ3flF*dPyO1UHnTEIQj*jFnVR|3cu7hLV`@1bWG(|uIhl(O3P)WYi|L4Tzc8s!WTE#jWpo#akL}#IU zZzXeeV*E+|Vut=zbLP=YX^QHLy*$jYrx>|KgrF^22kPFugisA^UiPhs34->6@J_mX zVwmbKLYX(e6{%Ss18wE4@Ts+j7Ew#gZzUWw)>EMRMD+{cJ{z{A;sDY3fylrH=6v-) z`_w<+h*5JCei{n&(?Js);CoX)?4 ztlkMSDdW{v_O*=DxFM+{V$b13(~wO%_;85WBL5tCKL5*dE=Zn{ZQzb|f&9swUVz>J zYk*nyM9&dsKg$fq(DYo*=B4-+v9yrYSrn;5VhpWO=tk#0K?#Z0=4!dr`VI_NJ}z}# zJ@)_9xGGf1+2nAUzMGY>0@B~wEVf2uAk(hfkMv2~^z!&q5w${?WekOtA=Mslln`U1 z6;j6vL3F>ha9kGv^TO6|S!5usT?a`dDZcaJ=1Wnkyu~wNt8qyG-a1~2OT@qwIs4k) zl9tnY;-}xreHKz{T&Bx(>H<|8O#ZexlqR;Xs%Gve^T`48rYV94r$8;xW8kkdQHKO( zUv6>+Th^94su-=5^smmOMgvX#88Nl>vvGDWBkKgvuCxum$;zXQcIeOIA0U6?+q z)3c`{zg2U_oeMix_e==-^R83DxJp5cPO{6Oadp8v%gODvhsK?ZwZ-%1&(aQE3Dy(E z?qA@B7l1`3&otSpUrfF+Mh>mQ2+4iJsFx|Ft6H|EDLzOJJVI~z`4T@ZouA~)V zf=lG}wZt+?Kkt$lLRR}0mO{ZGh|q8^!W6CtA{WM{MS$QvC6hD2ue1sU^dk?`guX4Z zhJ*#(r+Zsyu7b&+v7G6B$>%Q$O9n>6^zRX29pT`dD=5Tool zP-pHVh~7jCH?C?RNDJqYS;p20YHg_Uy=>o7M~idKj(Y(*ti`yNjU@O@auk_x@h{oN z?p13XPHJ3pE$3@{6AZ1nvj_d4t>Y-Z#BI4#^uk;(@YH8{@3NUov~S7ud(PnpV%oJL z$+dO`hd-b`(p7vcyY$K60qmdCrwtozq@Z>AZ~l;6ndj1M%?){D5p?ke>9NgANGpB= zPSg7BJ+^y@tj(>QPhllGH9^PN=16tt$r5#t*n_y$zV+VV zc%M?1p%WlQ@ zM&rj1zoQ?D^ss?N#!8!Kpk53&V&CxlUmMUcXX2_*^wpaMEJ~NnQWB=BK%JQutlePV zKYiCfV5x43Z-_Xu67y|$oITN+tJr*16DOzj7#j`-{_*+Hk`Z7AoraEvATBFULjdvd z3WK0_+Dv`7=TDy%6?=sd;lnEY(D?R+*W2sr)aF&NH0N_iy7?iYN^dt5#GELD4#qy~v=BS9&R@A~Lz7%>DLwXp20W5pBf#4AOqXga`^) zz9j)yMW3W?p~mdHlX5kRMeJ|^<19g7AIi;r3Z<1&ykikK`5f$n_A8%k1WrB`P`G8N zW^f7EXy4Wo#FyC+gNAkvIB3GXzmK8H4Q;pJnB#)M#$iju%FWb(RfcU&4fWNx%aqMR znu#?uSpFBnIvy$+-r#Fe=+n!}@ve)LujTF!VvJ1m{W9kL@>(pAk}|#NdFv!c;G+8` z$!XtI_JhSS2hB^>VwMGYK%P^5eUs^=fr|tB7%ilmK7xwDaAF1t=v)LsAZd2z>LdES zSf8Mmss{Z-B-*i*u@9Do$ z7bO9nTZ8US?SPqN?`Jh)KEubwBob)n2i1(86HuLUoTckuJ;E|lZdUp!@7xc3 z1du!XrB3bcsmW)$!P}GmO`XlNs=vi1?l*V}TsZ$Yu)yZQ70=pCH1|dx&gV+2c^loo zRQD}wJ^7cp=k;$IMB)0n!rgwL}?IwKR zG{&KKXTklS@e=dVh|%*E%vXfM@+Hp^*01HNpJ!I8KWq^HteTAs54Qf$R?>}CtVONb zzODACmwN_mDCj%t8~TH7bj5npF)?lM5+g9wNU_-ADuR|wNEX5A+wmo4dSoE@0&+c} zYSQ<+HM*0(Vt&%VBLRi=_qa;57G@411@9&!Bk-`Zf|WzJ0#aiO?F40SLSo(0E-Q&# zmpG8CjHS!<{eGf&VSw1Z`S5GxPx*5>2Kg$M8?r-SW&7`6z)4|-;GK8-P^~WK4X~ic z`Pq5f^Z*A{C`1zj$G}b_u-;TW0!zSG)!?XEwKVXk0i~8k>nS0?L<&wyOBvFrvYmY9 zhP+>h38Gqk*~dR|AglqLK799fh@}jYG-bPnzRsN_32)@{QLHs4AWExHO1U^C0Wp8djKW6^hFCV^USu%4E5`K2_$v1xSh@x>Erc5=|(C)Gn30xyxhK$ zXVYT^N`@3jbFw>7qfPnghNZ(lMAhQqkC~^mj6uX}S;>BCei<_{?-0ia_&a&w312KS zWkRU6@qC)n$gg9;Y9WH<&hHmC_7dy_f85*@a|u!=R?jr5i3yh{lt|1L$*UXdeyKk> z{w4W?Re-PqWJ0 z{V*!d^ynam+q>b`ai*JAa<=We>w3RS|F`WR$#{SMit?W=Yx}|yJ##MawY~H;kd=5C zqJjq@%85SCC2ZChnQJeN5?+*C3fL#c%W}NxfvXCGRO&f-ZYIGA zyFbmj`8)4Pr3G?d^Fes&CYASfw!)0gVC0-sJdZrL>5siz6#;8B8BuU&v^Cxt{Z!Mk zj*7#*Bk(qz0;}-zrBpM#u7RW%wq&-2>WtXn1=mo!xv*PB21uAZD4GJdoo!i{#JKf`=qVDV*dj!gnoKMfm zK{?Qs0bCDGU&M=0y=fl~Crs7v)CO#bpPr%Q2{8Jle%1df9v2h$?cwe=e(}`bL%7_L zd4BHXayQF3!A$*B<#wN=#M{>vUIzgc;uhbi&4MwZmagj#Z|NhyAEgMETtByb#pA2n zYti+q--OcIel^ZW?QpzcJ_Mj`N}2!Q!YQb$YqgkAPlBZqe;8D1K8Np}`tR+p1R z8@MTPcMC27G-P5gq}Tz2fZT!w!pE z-!PXbLn*hXeU42+MA&)oA|(GTd(=FelxbX5bD1Dc@e$`o+2qja-vbB2z8fz6$ML85 zgY@WJ=+mgu6KD3dk3x=uW{xKQAI_?pyXec4qj_|}V9=n`&$|cM*8*C+I0KW5g^~t@ z8yJlENR94yz0L2gXmz$+@o|4nsTaRwb*cLWs6O=KKyYAXbL#2@?`>Et3F>~PUMG9m zCgkeZ?>go$nhOqe2^U_*`~xzd(?(C#*8bjISO3jap77cBp0ZaMX_H&!jd=VCmT|+8 z_2=)))?f0!?E&9ffAx$!U1EfNA=YpG$C2_M$LYW3_do?7u16dxb^W2;7!8}-s+Svs zhm3VES)Vu^z+HO5a%?io)C@53*h=QU?chfxMJ@jaznGMtkBL_C7Mz-G-)-?xzkWP4 zj=sH_&1_w9^*Nx4un9&gL+N{t=t(;tKCFn1I{VcBL`Vi=-DwKP02(h9Y3Vxpo~jlw zgseykBelP}{rqMdf=tRata)uDyqx`zk|R3e{aXJA`h@)-uuyNMbWG0Ju}-093wXhD z-IqFQ)$HL!G#4Sg8sl2>e)l^suc9Y|;$bIhmj*#%I=pQL}r z_hB;0Pfy!Ta7tt+6}1d=9vr)dJAK77t*K_oq52H0T6eOXU!i&;0G48K6=MyBowYJ0 z48Y+09aYsZL|GN}4n4kF?}m+68x!~+hgH)VX#Vd3?iTZpUZW0Btd1o>0B*XC<{oSL zMjD##m5NB~pkJt#>;QZ?Ju}=PMqH);ZjUWrh+SYRk*X3KZ3{roXkYZ}UMP!Eoi4R|qrEx8Z z(z{iAxnhugZy=jUQvCxzw_awwwz(h`Ueho9zGa>^1 z0rue_n9P)%P^>+{5n`ks-MbtBnyF31MMvyUJ=O5it@+y#0wcwW!sYxlfyZ7Mu2l(F zYv1#ow^Ss2tn%7q{4HOB9<@YS@<)09P%`K^UC*g1 ze_Js~NiX_cfCW%{KFD2dbCe9m?JgU|D!ar^`X-d?pwn2^9+FSX& zw!Dln4VAyjkphREEEYTsQ!sBziAczeG6Q5k5azu{w8~09C_R|WKwbMY7AwH- zRLDC77ql3~eBvD;Ox#U`^v5rA7DC#m?Fh)BmC8`H-(-9dR}Sb@4>Q*<9Of=@Msg=UAfT-ajAN;7(?H5X|e zcn=S&vF|~|mXx$V`&);eMnV_A|i_jTLnjZ4Ow4GcU`Uo6sB-7KV$bnKPX-Ed?|) z6BKa+kR#GR#4hANX6PVx3Yp}cOd_9G=mfaSaymi7D|nmt3ry%Qdu73 z*y2>-^PNA{-c&Z3IS0-JFVM_IW}wD`4kdg}yJ=p>rp;Nl4;?S0!0)b+|QL5 z8`M=RajjeO5T3`f0`r8M{VaT%l7eaTmS_N00lZlM5&4@(btx;Lar&2oH}Hy1`LXTf zLF1~8$_@OT`^MLA1kY7R{BV?A>p5TU?&IUGG2ZrxbVudXleJ#$m01M{OR{aiI5ed~ zu;r9BINbp;=1p~H6K4FgoH&fNtZ-<{n>4@nyE&*oTOyQosq#lDC#?SCI19^v|K!p6 zIokt9-epA%)jSUc(XO90BVey46OZp{lJU1P(;816lFtV;$9W!pQ;zz0ZvFVfp>nJx zlPX?U0?fp~%!X=koabk0!yQmM^}+c4*vRB;o!l1vS8ZQmp*sKHum_s~sn-I469_AT(DCn&s>pD#@6 zX;b>yMi9BCmjGAFA4K1x5QC@t9oLHi!G#XJTvC1QO8QH6MkjcFebF>Y?8*HNF5l+H zO@Q*_734}}!QvCf6N+Bs?rjkf=^=y9$dw{2cKRIh#;r$(yphYiApEeCETd^|1-D{I zx$HqUg!bGz`3$j^+>DnCa3L4AKglg2Y-ueR;p2R?s}YFnDVqNLKS1|q5r`!0jf(64 zP%s4wwy%*V9C-b0zoPUT9_kN>%wFJaMMOYKLX4NjFNJ)h$XLd1U!qgo15bZfsTX{H zIVMW>u3hK(+8?^vle1>+@2kEzUz+)%VcDEz^?sh*62yzzE;(m%%&ehH2!i)FkKi(q zHLc;|215NUU46tS(K`DY_uZ>iLS$yM6Uz2%rAkoNYYQxH1u-QwCRz?KGYne*S(?kl(RE7rG zB-Dpy;}EKt6>U^#4(Q(B8Y3gHV5M6mN-S@S6wx=cumhebsUWxsQP4nM$;nunI2Zqa z92Xrh8M25A7^&5{9>c8 z(CKfIqUx(idY0r>M6>g~E!^Sehq39hW7+^A{Ck&k+)+8AoNkPDmQEuHP;-{BwbB1x zoNvqid6O_F=Z{$C_lq7{d*!3M3S#(zd;Tk}!0D%7T8<$&5$F;$jn)yyQr8gM*5+u@ zJl52)6LJ?RIX1oEEsH0AnkuKg2=yag@@5X|lJG@^F_3#(HxYx@sy`srw|tG8R2p|i zqHOMo%ZvL=8wUsdRJwfU#EBoYi#Z*9_ANzn;JB!Ocx~Wt>V-MC`MW)djH$&-K7(h8 zuA`BR)WM07v&MOHd6B1j?Zy_*a)eea^Ncl;@ABcZW|ZxFP4#~GBjnR=WKrmkE*wb* zUAu62|G!uLN%e0#?7PjXm$5Gko?Qt}U~HY~dBoE}l&&>S5z-3g9KAYcc)ZSe%r|+_ zU+_++#EyOQ*vWMJq)kYWv^S#()&edTf!S`u+_hEKdyr1LI&8@Z@N=x6^V!oG{t;hP z<_J*%-x^o!O?<3Gj9vW5d}dzwJ<3~COuN=n)qK?~DMb=)?#xHuJbNFY^;8&x=n&fN zSiQ;-p2g96aqLbl;9_|NIQ$OZ6yF-OX!Ey21VS zQBW-|&2ou&vZ#4TMW+zaDygwnAthz4JdZZfBAgLjZF*f3sJg@?;HM-nm6l(`91Z5 z)i}&EURPf>{ziW4`PBKShCa}^sUVC^M5#Ii!i2y}9uPgGLB*Pv&Wk2t4K&NaMMkGG z{?8MKlg-{@QbjW7npHtJk#&ATqN`V2b(2VD^Bt+rALSjX*^F{NelFHM^+IPjGkYi` zagp4zfy%+wY!5aF?3TEKsKOd0afJXSb&9f6*}F0K)zMil$CbMQHA_^rr8Lk^jSVQH zn>!q4^G#Z+@)W})LR@t=Hn*MEvAS~g%o>Ym%uRXa#hVT_*Gin3&L(%S+ANy$wkNl| zjHt%$S{;W5lK@0Yog~r$k?dZnlX4QL@cKhVT_)50f>p@dznAOv5_nWzEs(h%f`E}$ zy6O!BA^T{V#?^7rMPLc1Y=D^2t^ z#rV}X7XOw=or}H+5_ZB)mlwxs%XBIa=L2r)+&^+~xnezZ<)g$`(y-x64e+prG;LQv z{}#c0D4kixc)T-f;VuUBEDZ8SGG}U#DSc39O z--Gz76kXhq*_b3aM|+NGn|#QvIZc$FE-GWbv!4&@8QjboyhYd`kZLc;s}Ab8NFJZ^ zH41pJZg85f-&WhU>>avDZBO*0n;>_nYX>a%+pMRg2vOGE0d+|cJ<&Y`co1mP?d(h( zOp|V(Qh)f>>TpzhILK_X9PT$7|9g>ou0pp_st}cxh87< z8iBrq>t?|4lAEUn??d>aVG0fjp zpB6XHTtV;-vK`kiBcXRvc+c_dCS;b_#C1B*jt5oJnC@^2WSj%pAy{Mo#?-(%*0RWX{E_f5I;%fLuZWv=fb5ILD!sQ>Xv33t zCsKL&s^ILN-`ZE%9W)&?!3p6_Ou`aS6;JD1GLn@7d>WQED{zTgB@{UA zP!DlqtwDHKODy^RZSy}0fgqP_{V6Zz&;T_w*1on`KP1!2rjkqe z1IKQ8yCEv1T*V};$`q=Py(NvIxP!ytW*y-386;^%K@+kv5{VNPhR< znCQphFpDrwe0-;*Mfpl>(mn4$f+1mMpIWv1M_2;Ic_y8ISfPlUUTQ3;2*`IAba6A= z)a8YF8k#B~0`{5`%6(EcvHUk)i%z+B%(t9H`VCGrO7)#H&RjC0$=>eZ0;IUACCtaM zJlPYO!D2@qA$u5Rj2{+SGY9$~-990f1AASPoc409l}uz}Q9QamsaB=?R|NRqh2@Ve zUH5`gxVQ(Oc2`r{S5hu|IzD)Qq~>fqRH+2I=wtRhAnlQZFr2+YfP#{?pyZnn7|6SF z{+V67?v9PpBo!<-c(Keuoi+*15pFJRUZV>#?e9i`Ys(r>nSM7GA(7O+bGL=Ix%UPz zutv&6m(ozcGjvni{miqd!*Yz|cN4Q&I=8a`W_*w0%*;<`R5-=6Ak?F$mvgT_o->W` zVBe3VAd0>{T9rX2rH;e+?oX~>__6%$LDh}3)|%>Lk%Z~X)cR}}#hv-EPru4@-<4M4 zA`?36j(V`Ir#hIIt+eGI5#{rjsx_k)b2c6xBKq*g+ts5c!x7# z>WRxCT2=8LKviizIOqzeEx|{-DrF1dK&w_fjmXF1sCTdg9|XpF%cy+Jg^Je^;gdZz zAit$Zn`sp)i4Q)nYJ3hZSMeW5ubN0dLB5lA9ObGEoqK-Msx6d!bEn*}_BGG`AJPKi z?SS60z_7E?%x*+v=&22g%VHF-n^5Hhsgvs#`)AZ_^na^M#;5TJ65n-RS5wZl!ac5W zcI>|Q{q~7!wm++OIC}T)2~ReID6CtQ2bT&w;@K^nM9iSbaqv1wM z<>*1xn7X23A76PtmO(up&=EG2K|J$5&6p7G1(HT(b$4ARPI<|Q2@;R4xHye(>f4)pcSim`7Q#!bkTz=Id$(qMcm>K7C8pK9Ff*dF^&wkQx zJj!AAA*p-hp+w<$cWv@gjI ziSk=8M60<)+5Sq7^aUy_%IK2W#{5m)zc_VAP1)szu%Puf>}kBSO%AaFRm;DRR)9PV z(C(W3hi=?v8MmB*>LZla&sx<2v@i&b^%FaEB}v=uXEc#j#^5$;^VG)Tubj=$R(RX| zd&kxKbIeDUP7gklK#TE*6kc#~%!ftm6j!rAhb@5Y_Ha2TIbkZ+S#fk`x+gg^&psUK zPW9el%r(66A9?lujG6iO1CflxE4AKo75hM)!~HOsOy8%R&lS*8hRbb(!azdvG04#+ zsJ(glCl7uBzAKx0@yY}CmTLE-WWnx9ON%BSI9I<@0+4G2b1S*`G-C$R}uD%Cs~~^Cc&+ zH`u))4bMzwanvz8&;ib6vV5D!hKHAt9dU33iEfB3~utG#G4EvSyBF|WW_a} zCHTs?IM`E}-=>8)j5DlzRJg8&w?RL{)Ci@gv_g$Jvdd>i#tH_uz+_t%tRo1%@p+>d z!_TjEzt4M_)1_rC5?GSDabIAC!Tc_|N`9|xYkXd+Rwv!D$ISkn;i$`qiuNcct9j9} z-B|(Rf^BhrVzWiMN(!2D47I+PIEc;QtAY#jLlaDaKpPCAFdN@)%n3;&fSp&ntGauk zzS=JMkZgNtIpU_KlIHpsdnk)o$xkm|LBaeD!4u zYr}#s;7+jxn@$p|97m@A0^T?81e^F=T8fE5gn9PajddN%mQm;kjOqHfb|m1?-k(_Z zcd~lFfqzjAxW=KbNGszgq`Piih5u!Zo;1_NdM0SyPAYuF#@ePUAK|fvN2OHb_Se}I`6=94a2zH(d7)#L;5sjlLRHYGRnhMVo zl5=tUJOQAf;lLkf6L`A?#Ja zn@j0oUWr0dpw@7A4THF{cC|sGAsIsbv^m^FjIT)ATA2`2vP|l^#o|$C3;P=#HLOLg zl8x)=3KhhsyV4DR#7&HyI0M}m;^Aj*WlkT0OLcI(PQ>@&C3g>=Ur6zCIo;Dgc4Xff zzOrBYG~x%B5c8dSFI2^6sKy#$}*t0w~R=BOz-fP4&K$ zj>~YbK9V|Y+@?3y5D{r6#s#tNO&A#S8j?g`ABg2AH**C8}AIyc`81akOsd*WJZO(Bu zvDxT>jl>hKS~NE$m_jsM%c?4_5mM_Ip&k;F#`wU8@@2KUka`!zpbLszis%Gb4O>VF zPs3Dt_1^xALx3nFw@#instRGheko-4)!Uy6PIdJY9fEGKuK`nF@ncA1ID)cSSAG`q z6z~-EKdlj=Ybrqe=o{}3>H4Nd_eCL{d(tJ)3Xr#M6!Gq~X~RiY1~7Lr7he%+OEC@JA=epNgDnD{ANv4Mq=Eh*cKwvTsKG? z06myQ*7yXRaSD*ss279oQB%t4sw-{I1mvM!2=o1@A1D%T?zvMA*wj#c9xi;QMLD@* zG>Sr34a+!bDbyg&`=xDXSyqKxa`J}CWyr{8Rm_tbzd z?x%`7Kac7wui&t`vyp;+Z)*D2+gId{RJ69^POBP>MET#F0%pI|HG0^RgIEdLAp z0qveFr13f{;bVgv7mDzK0=WpoEVZDxq+8H+6IZXDJLLlS8NSm&0jw-a`B?iy0w%BG z+*_h?Z_`eL32`FViY7h%&X4Z%VkYHAeQ?7{6z!;5tnZ5I7WVnLicu$AO6b=zAYvrA#P$W5cYRQ@l*ZV>_f{rqP@gw_P;5-`Vy3R z`BIV}r=3;q+3KToc`9ysyw^Ex!^Bl!`CS6h_F#++yqs3EQi-SrXsyudu(-@3 zkzxY-DdKKbg=j_fObrI6WvRp_4|o;05~^OIEp1+;+k$G5abVg!!1BDXjmPn3n4*w{ z*PJF)_yJ07LR#z+Zs_$n)Zy~WFRcGKX0cyoYu!(TWVEE`YF?;nSc#K(`@qL%oD#?6 z@E;5`1thDqoY*_qw$>oZZg z9q?;1vBcVPRPa4WP+~<>qzLokFWhQMgZSBLTGyBK`2*zB$dFKg34#MREfn7Jnv?9A zs_n;RB3XM+^e0xtqxW3%s_c`dfY$x$dQoSs*86#(Q$zPNgAx~QQ##U0K?wxsh)!&W zdfr;O1{BeOZ6yL*)z-;rJ1!XH-cOr|yElifcND^ns?h>I7r1 zYebcn`yq`;j-2;*CkdZNB=*E{YP&Aa^Mi25?Gyo8feHB6U~Z^zJ?*uk3$LWTJnLfd z6&vkQK{uvH`Z830R-e`vM3Uez@iXHzQ%G{5pD_z=KcilG>oPBS_4flJLyJp)#=bn& zB**ce7Wc#=o)uQTAwA9PV^x2UV0)tLea`$E_ILk$<;W-Db61D}PK(#!%P8$+z-^w? z6hn&AmSq7($$yWEwVpxTGpuVGFx%oPUG#Ek8(3qJ_(fO3Tho__yJ{;svpLt6Ds!Fe z>Ea3t6FG?^r`A$&uKfVTBwIKmIa3m`Lcr6i@|F1!xwybvmZw_S3#C#+X*Itlqq?{G%_jdbYP z=^Gin2IVX&QFN?5>>kl%>~Xriw_xT;Scn&UrID8j3vnO_5-<8%DK3xH2j`EqEDb^~ zP63}_$MbX(%>Z-5<+vUxMb=ekNH%}UZF<4-x%$G-$RGz8CQ!8EOe8U^cte{ccx98} z4X=jeARo5zy$nMhuYM&V7e|G+8O|1Ng}S$#)nd721t7L{dZ^7`O5d3(No<{stYcsp zH>T8I4Onj_mrwEZkolZ{N!I%&uY4Sk*f?XT$ZNi`Jume78VUAm+IAK5XY1l~xv)Dj zMuzaD`7nlK^IF!023Wtk#JlJBZhTultl1x~yQ&WED#f^cv=cV-8Ys7RR#+i60>@aP zi0W8>=S^0(Q!@#vYc6t^E`q1zcHsk(axn-frbh{&kKuPBsQI>3O=p@?Xj@y0?>lX6 z*=D#Lk+II}sqvvjjn?@W!#7kzs4QV-%MUCVW3D2)!TvTtKdUt>cN=ST$Dkqw`hg7{ zT**G0JD|eBx6D+H1}u2{fUsAUtl~j?kL>%_k9z_Gx5K&37#JZAK<>NL`+(~7&rU)I z#J+F%_FFmgztgFZJGh`PHW_t4Swkus>D;ENTuqZkT#|-aGz-I<1IB}KP9kO4BDK%< zutx|)Vt67vrRjteV?6y0Ya#iC+VS)?mmU{$$MVT`v|P z_DY6SURqZd+1VuTzfk`S_pzir^-CECMu!(xy>`HN&NOiBb~+EGjK5W5o9i$sr3GTa zSsg8Vc^vh}pLXql1JYQ<3Q&sv&;{a~=LX{D}NCe8pSZq++rjTU+2eY44a; z-*61iX-HO75#}V`9d)w84fjvkH#gFomY(GF!WRsqaqBH=w!yMf52E7Ig@El@+30*X zAO>KdQ7b!V>N_$mk{{725t>jVslc-QUO%44oVq^F6~oo4CD%0;l#aiYl=;e!)jejI z2?;FOYmzZcxlz&&iez8-<4`X?+tN_r%$SBYbC$xpw1;L~7tL!;_dRno*L86d^)&P| z+b4WEbB38S!Hzrw!UJefJBy8BR1Ma@Hf^xhwW97|PeMFGq(0G0^-WXihIj6^YD+#Vf@V>hB8VR&V~R!h7artY1)A^Y3r2lZFJfB{_Yp zniY_E!1e6*#05l>@nCq-Dbo8XPD~BR9{U-ovk(|r5e~Ws1&ICP8t(ts$|lj7__vF{ z9_vS0UXGfO0*F&191vDRlCHbJnh{bfq4n?ThG*gLr1XIEp=+ zhSKp_j5NXl@ZxL|qtcHsN`5&K*bczmIQh=ZlOy}pv6nVUYryx2kdH~*VaV$tv+DPS zr&q5!|5=b<8V#X!=o7wNX|7zZEuPc_=D5I`AaLStTi3@sMFw@5n<=pbBM~shQNN#9 zQ=M04u|!uji@v*4p#{*L?CFa%A7;96j}Y!3Xw}+0x?|AxrRu4?;%T3Td3!0NIqRiF zzt1EgA9p`~=S64t(vKQk57kBVEm#?0{^Dprw`!f$?NP$$%h#3^lUy8%n)&Su~rq(lI z^A>i$0UGNKPRja;;G$9i+PW1yxz7}uzN6WIUsbI*W24}4=vsZ>3xUR-@(5k}_?DN{ zJ+!LmZ31+N(QeE`(#86#`m@42UNQIU0T*m_q~S0#!Qm5NYzY%!tDNFdm2F9^s#&)1 zxdeSQEuxq6l=$ecsF!GfkgZ92q?)t~_X6L3g`nGMWtEj-5hK!w?a^bO%Te3B2kilT z#hg(FG6o|(O~)Q$XHF}Zit04f2m2*}F(d^zuHdS2GM~CvuY*ADs2N=L$%ei3NOX9I z^_NuV-*rk$CG`QPwC>Ix2#-nn!IjNt!i)E%tDIz5r1-*kC7&1d)qaf=om^m;$irp# zr2O3jVYEmg?VTAH^$yLP22r9>7yNBMuL@S5%%#qE+lqFf95AXgW9)j@A}p>*k=BKP z*V62JLM!fq!Oy@brbr>2QRGPhWxhh}pTO9Ji*oV}x16;;xd_l`nS4!jIb*EBLpK`e zI4_{#N3xAIePLzg@m)NCL~^H>$y6b)dgwv;;ra!F1fW`Pc>}8T6jx#R-5Oh~$_xhQ zl?{hQugKx&N$>r9r&RQe`Ut~>KfZ$lyWjQ#-n$wLa5qW@_?|Al@Y??B5ccNXD?@O! z@c_WT6#b*`sk9oXpWM=OeQ<2)BdDGG&?ygWsiN&J3G@*B9#AEFg8vD+UFIpE(X0sz z3Sm5nI`)j69y9)4RaMdb-`wzTlwS(|lzjKO6v97+~D3={#MPQt^&jCY_X=|XI%n*%44>S~d>pq|NotmUga~x*Ms*K+~fY0`F(&HWB zv1FF9jSYziuP8M0OF56zg14Q7%0oeQgQQezk=rfyfuMSBs1Sqi;*bdB4oyVF!K^(X z^2czBeIRj9O`4LilNMLmg)ZqU=XwOb$InmAEbhqNNRj}?q$AauLRk{Il;{qK;c*pb zF%B`e0?d?6j$##0PIw}MLdz_sJ-h^vc|gRTI>o@k-*pO&7L<`67 zteCHi!2Iu9jj{{H01&n%=k$_Ni(m#1Le@81Wml_GZi-CoCqF}vGj;g$wEa;pq2}Nf zFqUo>I{O=#5C#bFO6}#s`>2D@KEy5ca3&J7bCVA8FPNdvrn|{u)rKhLev31AU!b|0 zUBQ)#woldkZ29>fCDUwdW%BD09)TkO$?k&A9v)B;1b?*;^ES6}>XntY+LR~us*R?| zBn3ay`T=k`7Y*N~Igh4{?v$E_dR?f<5r5!Adz{AOt67^QE+)M`U>ai6uvTM5PyEN! zzc@}v{Z1c0!@T%ncgEmb@_T*R@hAcCvzhP zZ&YaK7lX0~*l#LI%R#*dO?4ttsqd%_!(4`^IrBoV0D1DqF#XDu!}@G59hK>zUe2Q7sa*Bj|7X|6GHt5>G}<2VE-IzDG*#6<{;HEtb?u<2Wk+wN%{BtVN%FNwpR;!9Hufa- z=zq)QiE&J^*O4k)7xprZCN~7Su;?NDn{-p8!b;`Ls#jk!x&c2OP?tuI5&p$|{^b;^ zg1>{5YUIg%$+f5w7<_&mq%CWCu{CY#LL5)^BXF--3}1+2A^*}}V3T!yT9-ZwH!`jx zQ*d4MN&egOA7Db|lVKEb5gjRtr%7tM`uEy;uU)P}I`6B8q%X<6oiuUXnB;PYsO!V! zd}LtZwNQFRAy`iv;>Rx2RY>?Q_J!K;08ne@dpGAP|DgR(jA4(EUu-U`yNRx6p5h!~ zLaFRoEjB}##zXnaXyeEyz?xSokZu@=#RCCb*>8c>MeD|J|2uyx5m+{P<&VYT-Vah3 zT-9QZiv>iFvO;>NEM#B7}i&m{$uy=lG>>$8%#DFc0KL0x4bbILBK zZ0rYMHf2^YEWGT92Qzwv1bxWSqruTRL?xh{aHW1 z+pb~$gc&peI0v&ejp-&+wz-uRnlnRZzMhdI&j%@|Y790#z4JKzf`~pBbneHlZI-2_UDS zFT_TVy><@bM|Y&eOTyU_LV}%_dlk&i-`%Mgl3f=PV9by}JYgHf&G8J3Kt47B$Hyok z*2jSMA<=EDg{*^$qH2R#lO&ZkJ_v^}kQ=&NljCq8cJ5bsN|3LFze@h-jUVp^?}K@U z8C)~V1wjaA^ahhcE(JKRaoD@rd}f9h)y4pQQXx2agR0b`Ety=%B~+J(n5!tv2xouG zll)_p$uAGst{=Se&`4B@n}l+How=|f#pQ)q0d-`@JjJm+m-LSCbmd%hwmI8PKK=N} z!6&cpQNXyByzcClQsI<>E-j~r!LAJnS+d{8@grK+;p!kCu}TBQ?=@8|8>`BX%?|Rb`R~iH#hd}UlcnRJstud&4iZ;A8Rpha%qI4R zYj;5wv*ZRN*yVu$gHnLsT=XQZ7TVHv_p(=Sw8P=0HAnRFImh6o6QeGT1vvxeSCeHn z8kO_ZLig|(x4I{FNv<4Uo!rd#?4xmdvhTj)Kfn7S$XA6K^K$*Ck1y!Vw#&2)i!nIC zqwI7n(HXB5-z_+A2jrnrF*vMs{o|Cg!Pf$CxDt$lTNz0+yd?9}_cjsz71l}qEwyKe z9m#LB{L}7^Do0OD9_4$4hl}puVL4hWYPIc`iBE4lEMsfrMdxZ(O$L57N*MujBhmnz zncNU$XN^qrXT)4Iaq#LwDYfpgx|%DT(w&A zRc*IUXsrWm%Ust^GLZj##aawmh5A7wSL)c2v{$Xg50y364J3(HUW#RI!baC_c>ubKjkd z?Tk*N@xGF-nf~Cp43l}li)I>hts7pnK)`PWoxiug?ifML+&7K#WCyi3gC^IVYhFJU z8hd^feGFu~|KX$o^Fh!ld{8>VX*Pze9f;KlVQXX-HpTTWvFv>ywGqUtW&vOB5!eMd zV>k!?F?jWsK2nQKHJ6yu-kI*(E8*~p>&D77S}vIUrj5DANTQb9u6I%lZ*8n^W6{ZE zhy5zo#VZKJv&J7JZ@+r);L-YpsU!BF`1g~)3aslsDLP`sE7IVI^xSo7z>|xK>W;G7 z)=NvveA3bQHe>p2dDHa2^LnMb*$1s+ckr==&MdnV&&0C}=_2XqM4-=0lc^A)2Og6t z9V5nb;eGNVUwQ%<_ed6+!qRC+<32GxQO6|z@OAYUp2k4nCa)864y`k z6t`TraxLh96r3@An%J1)+mTdfX>}{bCj58;wZ(Xa3wtTVZIT_hc=a~3JHwS3@J}u& z4SHDBAt;}MJ?fw{c~a~Yk)QI~8>E(*lVyW-^8@r?3P){T6Ll9KDdcct+GW%!r$gW7 z1NSH~OJ^$hoQ_^vHW1pRN9}e9EID+w=w~=al~hsD&5|I*Y1})Exge;u`OAlR^S1!! z-!A9VkvHVccRNCYLR-J|OR;L^6UXUy?)ZnjG952LoYXc@neFz`S~!n=uC`pKVyGC@ zpk7tBux0s97F_twg)s>?*V2J|{>5`I%I&?&P4O{ftYy>M>V^-%ra#QxO?Rr)nQXAt z@foopAkv%0q0oe}=M>I(is>gcmjWxT6?A?Rw8ZYX6*G)-#iC+HqV!z4&{u#`-7nN# z|4yW-EsxjVN@cz~U32S+tAa*AF?d(RgRE@Y88$$AqKr#MCCkv)MrV;YgL*YD*Dtli zi|`s=WYhqAhGG)Jd?E#P777YTv`NUWrOg}8{E*>l&AFI|wTP$eXn#HE-ecaFxZJr@ zN^XBc8y04W*)}2Uf9Va~%85+)teT~d z#B}p7#VaH7WdP3S*P#S+#!R_!m1gV#c*)yx^M;wSE+}zfbFNCwed+&rI`?>{`#Xdsf#h$%wb1|=pvMJ5>h&_HnB>~CPdk6v(5P&I-nFvIftkeB}L`x z+*Q~8?f1Cv`>#2VJ$ydz)9d|wo#1I-+L=L0wuQ(IXP9rssVquoB;W%(Aa(@k-He8n zsc-M-9?yGtsx8ir^!Jf9N55Ir96c8oR6>839H|~%B+nZ0W0k?>7B$`(+Qa)FTY!@J zw_^BXpU$ysp3GuTJn&Oza}OoZYa^3dhD;o2^#`NMEKUFR-V)R*$*|cI7iQYj0sc2w zeD6ksjGtldd2ZKi?S|mK^aBs+MSMEv?yH8_a@3}Ps>ep;wd3WRJ2xKrSE;Aju6M51 zIau!4om}~|UGqi%>E&p}_LA|$`y+R^{Jii33uMWCZj)NQoc7H*oSb>ia_A!z-UV=k zwwo7NtS)R;>!xiuZLY~M$Y=2ePUHO8xkpP{AsX@clf39t4pvayC}|; zHn|$?;D@|dN^a`_MN0Uj|C+_DUAyb~KXxp{Ru!GnKJ2ir zJ#U~@P3myLC_Lbl!NDf?lJ!Y-CfgXTtgVC`~YFuIYY4<-RcVsHb&6zWvbIIn?9RwNm*yNNJg z?q>AvhL0c}IGMWd+)8g+Y4cac7rW477DarnM-F;-p*-!!dHA=%BBIORPmgc1blN-Ib>aYtG zth(I53DJe)YfKR5HQYi2O?ZWH?vU7-bLJS~9*s9hE6vsn=59JtfmV5B9Zpi=iQW{7 z#26)EnGq|q8a@+D_owv`d}=yDwNIaB)P!~swyGW4x-?w#?#D?pLLbhKzf))efazaU(mVOQL>Q2jU(F#-~VeNicqNG}$(Po+mp`-%A}+t!^!K^2oFJF}Uun0npu=&^Ne#G1{gK)NYi<1w1p$|xR6mGT z`dIEO2wlzF*m1BU?sJx%&3E%lpeoj^5#s_k;v{M+MUpvjcXXvLbi421^j6i#QP+wa zR0qHCOj)y2TP}(|u)OYBoP%FcpvR#;R9n{yXfaUs7VYHdnb6l+^D-pFD@E-_5320Q zjcyz<5pDA9zu|?=)7S~?QGq+M+S!<{^2np@S12Oj+N$qAbBgcT`*uu3Z&36lYAh@+ z52#%_QV812w}MWCvEhd^TQGHweq&1-@mIAQ9;Dp^d+5e87dyDNzK>g(+n#g|H|yC# z%0HpD`wBLkOkOd2{6PN2{~wuk{fJjws_z%{fc3a+U<#L>6tJ}$ZYSN4pLK!T@+OS- zHc`If=}3;Wlia~+Gs#C)-7+%$)rTi7C}Dn;yct^xSAy%HuhvvoL<_$x6{GOJY`dhr@?>!#Pv1o}C0IDUw7=fk_AE|zH(Z#9w^ z{Fc2VUp&-#-gwn2^R~Wh6H$_CMm*P#ZhZo|g>}Vw1Yh>Mj+6fM<{Z3f<7Ua5*PEsl zyQusW2h0|IT1L?xVe82^t54f0XI zwsrYo>RuM>ghrWy#=^I1-INOr!lJXeuGf3OcLlJ?gfwZ0Hag@&FXYBpQ#n4Xhn8MW z3tW*<@*DBt8wJ+CRyOKuV%x&?ocqGa6Yt~|JvB*LM=3Yoi&E&X&*o5iw`RAu7?+-7 z)%kQ3^-mlMm^6!`to;34a1m46FE9Q6PJ!^Q(YFeJ+SLBBUJlJWlOedsqCBri`%rwV zQ>%t$^n#YDz{_jzQ3X&F5o!-?2zWE2v5Qf!;}lV`^C|XD2B%w2y?<@-0KwO~_F?3Wc3bPv zVWCzn)fMcxEin44ms!1eAxEYx+HJ-GF;*~Rg5Ue_Mxh1f!?u^0Q)N+oF^&gQe!q1a z{Iac}QN0*$3a6RMboJiT;}?UD(aQjp^+tD(ba%9+$0{v~aE}fLx~e_?yyrqurqHHB z#g)n3WCGl_IRxUY$N-{m3R028iHRvJ9j^Eq0AjbjSh9{@`T*Geo38zkQ5|k1@gQc6 zI3}Otcm?v>5kRY;ka)7+ZQ!esh;1FV@R~)F@d{BG%(>#nYnn@g&D-{505CIx6!X261&f{ft$ zD91RrA#=d#2pD108)uR8(~O-|QBwB(cGA|sFzMdFA3pQ2?ydGJCPBarjj{%m$EDQ3 z@kfbc#w_<$7zfG-tJZl7qB}VTJGB^cb9eXxR`fHKm{&@!NQnVE)a z*93O!WaChf%I~-vD?xTP@)7;rXMSK+b6M64W&Y#csDfk;p@4E??~u;=y!$nM4-)cU zY2U4_%m1)p>+)6G^P2a7EgjPu;S1`5(uYcpit!U@^SZ%b22TTOAFpV9uxbeD)VTJs z#eV3>V(i+jA=bSEhCRW>i9z0bAl-nR8DqI(Q6M*&a+41$m9%#b@}Hj5IYwEJ4;iq| zy{VMcVs-eJA%T&4OAN+*^ZR%F79d&v=orxE6?AQt*=jl?U(l1b9Gd$ZA~<#w`|EZZ zryvskEnb3v+FHdLdhpGaiouH5zQEPf5J$LuXVAZ+?K4wq>vglM*qx92Df^wY*ZC%% z+x@C1Sf#?LaezX!g9q=Ocg*3^R%>wbFMu(FgV%^xO}fcC*_jg*ZJk^~(=up^gns1( zEBJiQ=8c%I#F!sZu1xKFJ3#M7TnK1at_YViEaR3@?y!|;v;I*~iL0>{cE0~XGKCl+ z)J@J!k#b9ww3N!OeW+faPcD8=bU~rt6%2y0pZWdtze!*}y~H9|DMh<0^W2xcM&Vmj z@f|uR`JcisQc3GKY2YIjfV^UMP^zvm@{)1-*_)tAn}%B0%OfY<{(ZUo z((fYjU|7e^<~>f%-?vjeMugX6UzbzQAUt9OUQ1C#i90^AJ#lNSuso5OVe?@m^=gwlGLg}nu! zG)Es$lP~8$>B!83|g$IyrX^k~6 zDSX)$v}r)JPQ7n`CH#Kr(NkZs0D5Umex-Sv_2tiT%$B{+uN6pcOw2e*@J{O!w`$O> zlN*Z!QO;jmT40Us?m6hnnjf8k2#bknsiEXv(GFGd6Y!U_=;NnAx)(n951KevM=jS7 zo12tkr$u}drXRQ7I4;PpVmJEp1o+9{so^#3Z94L{35#Ll?A}_RtWJ1Dn40H0>m1C6 z?H8IFt!sw!>kkBmY%o9j*OOHrWRS?N^JuE5*(oE-L?;*fa2vl-y@vEccpY$#dLjpXG8verWKIccnc zpCWPXf_9`co-$^sxHa4;n^Mw;1292+jCh9^ocjR2CWKJYGDFOwt0}N{;Ti6LMWMEL zSYfTp;XC=dsfkaA^tBRMVuVmO)i;>venQ_-^&UR+iGer!{P&C6?LI>{vWBRhjK^i^ zr#q{_^8p!=xP}z>^i{1Q75HBk!t(O%*i^Fgke8eHF-~Eh-mYdc_JwMkgY0lqg#5^f zeG;cl>giq7NDlkvJuX&_Wo~lq1vjRo^Awr7{hiX7tdUNnC_bEubO2i zGbbip=DiWCm+EPVW3Al7%;g4ZzGu&(^WFwb9b2s%;~HtO8EIMc#^2!Q#Rl+qYCTq( z>#BEZmEWm_et>_t1a0D9nWoo3FC;uyQUBTM`I!n+gvzt?FGf7yOgB4{OODiGmQ;mm z1CB>#7cyig=zfPf;V&gQs3!9K9=xVLiWn6RwZ)5JG!I#A9DP6iYc98Qad$vesh##&EU>>W!`!Cy94(=^Tu!1$Jcyi z3oadr+j5Z7Y~GMY@z~-Oc3<6h);ZY)*D^X&?lKnk^VVlvCHAiI?N?`)3_fjK4FXyP zv^$n@uOdqKxxLG@Rii(!x0(djn#_P!-=j~bKa07Zy`tQPtJ*UWxU1|<7-fVbVL4@~ zd|pwaeN}|A5!dd%e7&G%%jIk6z=084ojomr7cC7K-jz8CTni|o{^#zu0&^u0)`Lyi zaQ~@l!xlH!>t}T#n7+hgBM@a83;nL*I$_vooprsnAZnD8>oq#l68*Su-TnMf;N}yu z@8^>8Rcoue^1asq_v3-d$$wvN#vNoaK;aTy z@97~1j}d%|qNX0MX&0q#hc-uHfC=3k?UT*tb-NX8-4XKxRCsHwnbUwDj7yZGhmqD5@-%!*rn^FdD1Zb5Im_eA>}!8K^klhOs}5Qxrz zp~AJ+#9c-7N=i$uwM|gl5&2b3^O(*I!G~6HSVW|4dyB@~;|z(RM{2zLf$ho4fNY9q z4L>j4$|PSM1f~PeFZ5gLRYJ2D#s$fms(Fj9C3tfxYhaYJ#*GBhCJ+>ENSonuA4o7+ zzP4@JQmBUI9!MC~QVa0a**bvm z=Si6bXj#gd00T_j_~s!On}hy6YdCoB^9VFXC9q0}bnx=OGI-HvVD=edmYq5nmQaJ& zbBoJB46g>~{lZB#9#;gY6oH{^>V2Z~cY0_g7YlyBYjph-JL87HF>Mkls&z69jm+4S zs&y)Vj#wBn$hsAPl=N9BHqo|m^-jt=n(kj4HVU}-f?M5rgYs!5vJ&DtuU(_=g)Z7q zr-{H2$+$vR4*?0-oe3ovftSRMMBxDj6}xw~T{nMPO}6jqUan_^_oz8`)m%ksMEJLg zUt7mm(83cVCmUB1ADiswvwJilD3Vk=+|1%sc~Fu{Qj^Xjf@x;Oqcy`DAoXE|+Qw2u zM3XJ#mEZs<@6;Y>hxto8Zs)%OMDnqBX9qhne_T=;!PxT_@uA+$tWAV--63tDrcU#K zkMf}hSa0u|ZrQ8Ns=d89aoPLuUE`5o+*t`_S0IsSLUpMZQG zBwyK~5-SQzNX&V6%f}x){YdrDjSG6Qx7aDPeNttvQ2g-$=x`POsvF~|E9FD^`1D3i$W9mR z_G@{Xhqs0hu<<6#D4(-qU7cH|=taxrFY%Et4YYjmzvq07Jp6I;c$e_G96Nf>EbHZ%5&_ZvT*{^9xQ8E2a-+l4vl_*s}fzi2##dSflC|78IZ{};hnDXMWR}7b?Jaq7wf>F!+3(_*vB%hET-wz|%P=Lf zvce+cs#)Gi2h=b8b>qs(U-EYFEF%2XXN9kte{VIj>1vn;% zMv~x3;mAciKnyh@!l;H4xDw#!0K%|r-XPFeD%#DLLg6qACV(q#-b0snO3WstcyR~Tx|rub;K3WM#9#`r);#GNF#3-9^De5mVf16z%HY!|=H0Uz zZ?8DjYFs*ThP={y!du5};yMZ29{q-KrTT9v?~B!g5(W8}HBH4LM92q(%7ux<+HKk! zE@yX7v&<4wE2B=NS5-mPLuCYS+SXrYP#5~(N4>dFnMcjKCHROqct%63MdCZ||1f+< ziYT4L-9&+4MyZB0W+tYGuwj%0Nuh~hq7u*!3{WCq(u&am*Nz;=ipZ*rh1y@gb+9{y3cznuNWdyt#X{ zf3yCDQ3JjI8-Iz*C&8JqK{h=M>>-Xq40Zx26j>FLPbg=!GJn@{g4SS+PHT406OZ`g z3xiuqT^UKgIXm(M7L#q72>f+ZzBO(6Hh=Hod(3vsW;CUYG3tIEbTA9@=aQMf{VzxLv%f zd8!`gs8=3W+uWj=Va~`&!}1cQ0d!H#Hz$11?k_w^-M{sq2c6MnSDwzWZ$kx-^6p$9 zOVfHYH-kF4_UF*CiR=(_e_Vm|-i$DHT0KTv@+aX+MC&SsF<#U{PG{(S|@|q5fG>JI_ z!J9;UDZyuC^QG5tUak}>t4&k{INK0mlz~y!2fz%I2xH|p z5S-Ep-pDKP%R$M+{W&wQd9HVxuh6!|5+l71srojm19KT9z(IC}iDnkHJb`aZI4leO z+pB&2p7L${;E}<(C40BjgEwVOp<2~lU`|RdDJm{lHdQ;N9qeXt*d9P;A9JCBihqZ}A9$$!xSEi1+Va}GBU#zg|CK?8hgZay8Toq8yA z)IcJEGyt)_oSci6@kGEEApz!bDOITeE#RJ)@HZhP6d_fqSR^6Rg5Crhthw_Zz96e^ z_k3wYcRB0IB6*)A_N>v@5@1)l*VW9fv~p#zzaN3;PQ7PluK}Wt>>TPwmQG`zZVM3` z^%j0(zhp+KSc;Ojc$%Yh+KKz}eJ7VWdJ_X5!;l+6G;e*ZZ0B8SQQ9I9rQYg z;e-LqRSpmexkX1RV9hrRu4*4aJ&8jdY#sUFA2k8ux29w58*p7wne07A-8K;OFsaQr zk(@nb7FsxkSsYDx#CHy zMTf=&fc(Z3(;M_7z&duI4dfe2Q3iOcQfqVs9#<6KiQjzkb>EOCDWG)taV@ zUSjnQT^GH+WH{(5e+6gNLZaOUGYSDeQNGn@`olBAef5zJwCU|0n>qwa0w=z8-)@Hj zxvc6^YSHG?5MdYhSq#mMLV3;?1WO$|E6AY1pENDLwsk_qQTC2>^v1*m`8>Lxr!&>; zVejar;*5h$sLm2rGvBH@ZT9_S3f~XQd!qJG#QS_*5d^+R%jTqrw=1f4rjjwHpq^Zk z7O%(AdyrCMO^DyWP!^~BBKTzeq4$%gO2<=u49BeRUHH`X^7pMTFM7?qtLB#5-#vW& zhH@IPA6feA?X&M6?cAkvTVh}D4U#R2cfeZyiTymiyr-knF$$p3<~HzWqI@KfZ6H71 zqFtGNdpf-~zLFeiP{k~qp0@Dr&0e!L-0H>`oo~M1csd7tS7z)HWcT{1OTO+6dv;C zOKDwPSCYIpDXgF1zNfVWRxpm83OL?s`;_=7^6r6FPFHVp82u@rmZ|3HbDn4WhxF`# zL;`*Q>*m><(bhqkxVch{%4!OEYJSjk5JjRj$pTrQvj##uHB~Pf8DVY>8uXJ6Y zXMaVT5KlIxQaAWU?7vHN-mG+h<*(^&m@`^2If%rWQP!KzLR-CK2n6q5pA;TqZ((LI zXNw8Kl@GQm1rtc^reIqR8H|Y(@4$$W*2F(gQ&z=SpmA{=0FGAL!Q891dnV*n@i1HZ zWi?G!9;m=CziQ!ocByvz?xXVeb90Bz`^y*hui?1*-6mYM`~qMvS4eN@$Rbm)C~f;4 zC1wnHO3*i_+Rn?uhmWvk5Xi^&a(d-C2~+dqw7exqD8pQKJ(gH`;muFx12fU`5U8Q! z9;oVm|DawyNY}?oM5FWMQ6UxB1ie~_o^YT^Yk=S#ORTjx{omxBJEvRBx@%4xeYchP z*4o45%!to`AKK^CJeE=>;sQIH0Ax6e3R;&+twRFKWcVsT8 zf$ws3_43$y{<@&+%Xy^=RLU#GUX|YV*vjw;4;-v@FnqLHDd({pUl)?-nwWb$?CqRo zsz)sE4yCBtBfw1$aTe^}!kQZ7O$@atws!Kbb_91cRllR0iDL%G&pc;T8yMm4sk0As z>Gufy7un13XNNO0pBM_99y{~Zhbzy=Xk3mT!9V2V+o8E{5r$+!i2pttzSU90Ojs;0 z10y{~brO`5g!b(4BT8Hk6F*`flH(=YUt&~Brf^j*cmn)!YSaDS!;b<_ZWkOm{pskh z)B~@`Z=CjwxS%5YJ`5Y-9zadwxpw{Rfip? z^>yctx5=j$5{owN9!z87CS%*zbS;8BYhMrSgy%R(4T9UO)(zIxJ)NsXP#BkQM~#9D zSzIB^mukqzqyc3z(HY^SZMS^k4a<6XeBPw2#SA_$z#F&^w0u?aMTJ@D3w5>_OlAx= zY0Kcj*)0|Ht1-zoqDP$$^w~8Ut+aQ6(x=Ji=FD_2`lwN%!%wwDOhL=uzR_T7-79Fg9JHdS)H8VKM zM`ui5wyqjq3vO>o(i9i5Tdt7Ry}An5vr;^(?WA~Zi4JIcps}#kYi9fl;`sdb7L@|L zRT#uyss0P=X^S{k2$))W@V1i)^%E#cXs&`1{s+QoiU8LC01b`RszDKIP-Z^X>&RM) z;9P?D;4$(#S|(uwmj_VmnJGPv1XcYt15E@;={I%V03$Y9ZIjE5Wb>$S2B#=AL#5Us zUmn%A7vz3^xr%o^BcIdA8>+*0&So{}Dk}+TgIRvw8H)D>7113vrtX*U?!TIvJ92&$ z6-^}0kjqb%$+sV`Nto0=lsIX;tdlrwzSl8W*DjWkFdv7`=@_9vDcM2q# z!zCW`=K<|3-r8BrR~+$R2k470XJhNeWK}W_aDs8 z-l9XN-G@k7_-IPiwxd0PHY@XXuCfbhI&bg2TTHBh5n7Xs{aC8C-a&(gNooMCOcw{4niz&dpfe*lWO}Da6{ANGXd-R(_gRQgG z7vVY7s;hgX&*+upPen=Atsk2}L$k+zY*%x(yy*7hq?XhtcZqsas>saAPW2s|-sLk` zzHA@95DTr1T&}pMQ=-p~8h)SjTvD#xMX5HR-hR?=R&zJ0HS68D198zjakSORJDBXlL9R)lU#nkp}gdf_d=;(ugdmnrd})Ehvh(<>Pl8m&7$I zVGS^oxim>1$YhPlNrGAoSEpXUWvA|sQoWE+wQDBJDXh$fkDb7@HPLRntME)0(o{!b zm+WqF>Z2AaIu@it@c_yYOihSfJFln5479F?`#N~@O&T91#d#D?tL%mI|J_~uE}!5W zc2D)_^C0&x&i?7i#5N)ErPYJw$^*L}Cm0O3j0M3uw}llkaic$#^*5$F`IUm z3)8Du`q(Ghj7cz~I&XG1jUxdpj&lc`g_8xZI9buUASdGr-Y|@q^+Xz)XmNQt?)oKU z=Wg!G_(o$@?U6)BMnm;RdJVbApS=j`^SSFk4|+glz4owP;69K#n9N>@f?FY6TcHvH z$*yWfQs8Eeu*MIf1~4gN9EC>%VwfHf(iUz0DEcn}^$l=DCA?8Cmh6S(dQtoVCkSp4 z>$#~qLwe`ry%`(4de|t*V#B^Gp{vcVEr)*`iG`(N?^pBYwX;J@*(=h7FgD{pICxzq z^9L@~;>Z9=r8-fB9L)3)Jqh)MG&ec=2x--EJ$|6TT*@B<$Oh^PwkI}H#$Z`hZ9q3^ zZOY`-=1q|dKs!*g7|w=RF8nPDr&h4nqq41HoF5$&kP^t=sR(|Lha3@Xh`lt5j|)ec z>s9r-nxK$oT&^n;*vH}c_%LX~5Xc)UuTjo|a-C4QUCYtckxn>;!x|I5 z15d1qjq!+{M|yHKcgKUZ=S@fZb+90kM4fLPL|LiZyZP&ieog0cK&+JiHyRX^;EcS= zRIa@l7ULoKlti@!!Na%SKz+6a?*Y8bdS%o$LKR;SKes$gdHKkjgJ#Rp6H(ks<}UX zw9h+dD_#?GeE^-rXZK<}IuZv0n`sRihN0up-6Eypjx0t~Jt&@M`k?@V_hNYFXfNf2 z&?4~GN4~6`U4HM{^3^@!x%dw8vOsB$xKFN|A~2F5kxy~^qYO){2%ReaNNh`>zTsLe zv6u{Ti-=&^O>w>w>r#^I9T4q4<-D>*nxk`_)p?|Xkf&R(3CT}J-MKd4&PFlw`DYKa z!)wa5V@Zy&jBXXd?P&B~@^j3|vMbsWJF*??Mi-SI6^YPPW6Ug=|I`Ip-34Yt3}<@C z60LM$6#h)Z{kUoy^xaJlm8m;3OruC%pOsg&8Lxm;KmdX-;M-N=#KBU4T(K}>Hs;j) zy;NCLgwc%~-}m1QNIG=p&DD1juT;pi3?zX>2)nL&oZ{b_p>_DK8-1XwIr= zhl(e>i_f8FS?mrEp6h6yP0otTkgzw&x*z=XLEL+zuAh~%ssCNWhvZQ28xm7|-Mv9h zL~x+{hLIJ19^+w5kvXMoOVW25H?m+~Czq4Nbw{o&;+>DVp*kP-AKU&}BlmU-?xf%r zJWS2^AVcvArabA8s$B>XY%LBf_;LxcCc3++SigE|O2f{^CE6beiXTmgngxYL6oHdM zw|pq=)>jzuHa56e{iNo@aG0e%O zW&0haXFn*FhaPUF&2&3wa~r-Bpy-*g>ix4-d&3)h4}Kt@qSt4Jgq<`vn&3vzro1sB zAnQ6U^Np^Sz7D{T{#E>)2U%Ku(n!tVS98SSxphlU}Gn;d1c+%I;I&yn5APJ!8m>qY@dnX~vkRyuUGSJ+mfoVMYtv*EN|faHmuX3f(^RHVhT<{3r?g;P9TT`C zi6qMcWA=D3qYVGFqn|D-Zqw~56AoE!_5##QG1K8exvrNY-Bc--{(?W=! zGz)DXXqNc8nDtTSb-4MCOU+`0(OBHMizzy-ar^am=v+77f*ndlTN$q^m~t;i>M3=Q zaD!dOJt247T(KLvM-5^<~|KQ zO1GC^LuFIPBD4X~ODx4V2O2qLPObhKnE!URCHIfPWKNlS+`E>V#A&m&+@+rf_&A7(kLv z0JwxHSr>2wWYxZNp7^9=^Y`s$hWsor5&L4&k0!o#w=6hf-`pnH`KJ~-p%38Q-;m(x znC18#Pe{V+${*-iyx2J>LtN?Wsm0?p+;yDR2L)K0n;YPx=IMg5wtpfFYewrGG5~-{ zbo}i_HB%Bd`STd78+Lv$b6fZ6~GTQsZ|W6@`7SDUW1 z{!EK)zBv|ZlX&=faiHJBj+L2EVI9FmMxbxP-ypRO|L(@cKb0hV4jY;;6JQklZy4__0*aDOLZOHcI9DN#g>EGLRedoxWGQsL_h{BfwD!lj zT@Ptb7vg5+9fQ^nH#QRgpqM-1Mg&w*#zuApIt3j zo7Tmrz>~gXn?0M(b=nX%%tnEJs3hSGUe0h!`?@7FqfB4fdXpLIkMP~yXKrjKYon&L zjwj$gQ$G7s{`Qe2SUmr=v|E12UnD0b%$%ITv^`I^mTz+Gg$_l=+7M_iIE(w}Ke+d@FpbD#3dbAju-h5`YhtRgt(nC2ksvL-Y@D zN>{nY_cFX9+h>s7UR+>Z@k-IkXt%g&dI^|8IhbcSeO7-l@D0RxRHNPXwdhc@V}fpD zXNiU)i$C=2kd!jG{QerS;V-kBM(n+Pzxb`iV})t>A)NUX;~u9=&6x z*dTkU9Sxrcid6eW$ID%7Cl9+XH@lR*$UR zS%{eF#v!G_E0whG>hLiW=wKm-!zK}PDP&BK+2l$czZ&0NQv}AoRZ+<`Tw=Z<34(uB z`qC2?j=Ec?u3qdoj%cwqjFmq-cFgU_pl-4!qclV+K^dmtxE&Z?l!GrgvIN;L!{fcA zA~6tmX`+EKqj{=+z)6ycwxBbf}{cX=VnUzMNk68X4(6mmYn z${%EA(~GuZ;x3b_Fs+p=d69k0p4t&1qY0PThez43-x;%jU0np%&5(r@L=j9IAL&W+ z!-m;1iRvXgD~64X=U@ZVJFm?A#%h`ow}9gNTpr*e$Ya&Ng zvf2xKv8|9wUJLlP{zBTzZz9P}u@CRYD}{-;i2aPfZBM}ag9P@~&cnzeS&)I^tUXPVsW5)9^jL(Mb%!G6n#x><_>!=z`i*?%!^@HoLs>cDdHk@ocEQs3KO{q5uUN;Ss` z#}&1QaJAvVdP|t!58-S@JMs(o+1Tr^{O9^^Kd%lNukCk^(|jf62=v-Z?|>8*U)X+M z-~_yTeA9QnYv{leYH8S-PT~9A*y@KbQQoTkiA7gNC1xmn8zcK@icC2g6+_;8S+C-F zjX|&R&Y2#4>FceARqhe)2Rpr8J{yK?44+1AY&iSh*dovYSGqz&lL0Uk@w`ZqfX;D) z!YS7v2@r%AQmF)SO$N(8hWE)ffG>jO$s))>%py=L^ZI#xJFF_Lxy6CgkS^Ui`2gBt zT$0baFy^194^hJvfaAqMk@4%cW}x;Qkg=emD7gl-Mn@2+35nwZ%ay4m6l&_fm1}tpMMoEu33y)(qBA3wln9qr{xbO1Ic zE_{|9p=!gVM%l;xMtB=U-08G#$`lkzc zJ&cN+nMuztk9m&~Hr#M~esvsc)Z#`4cwvVz>$o}3XYO0qUvjd){@T8Aj(UNL279BBw0)&c!P*-`puJcmp zCCn(LG#u{c&&p!)TKV?HZZmrT_C(W$HQ}ptqzLy|W6x~f{j60sG{^7)z2wk$q2U>8(4~zodS<=vJuUV zwa~sf5?3FW#S8?vyjQ8YWRwvNg|Z~Zkf_L_B*U=11c?@b64^K0s zOz5R{(Jvfm9W17K+xIHVhMqR^tVZITuo@jL7bRIYe^Exb--!f?WEBewPD$wmZ6% zR-EDv$Rj)?0Du>@(^pFcn2CanXi-i?e=Eso<=|l)_<2PCYj1ixXgK;?^BLI2LU zfw9>YrMKIh4fK0LjzO8)7$RUQnDWQFp#-<{aM`PV)l_hjTAJKF2&Gh|(&XsHjxe#0 z&h+|KyIB*^Bg&j}4Z=1IPgqL%OdoA!Uz}{?oUcYc=v-SZ2+lk7cDVFh7T#Ixi}A_z{J= z7`N@ei5E;R^Oz46^kK{chmP4=sM4!fgl zU{E#M8)24eksTy=9MiK;(qWKSuDwrl^8&AWF9Z{yUXRqenddyIt^3MaI8#2#vPkp9qE?_cSD>YU=pzDQhuZQVi0y_t74 zBqgmL4k?}i#MOH$B#UNA4IK2UWt5JD*owjoWCC5EHI=OXqL2REbk+y2xyc+MD?8Q!y9 zbOA&IZ{fuKz+@3nPl|0s+yKB_c~dX(Ack1?mgd7YquYIzcJ@)nG3{^*o8nHQ2TQ%r z;jkM4Oc3B*fbL#4ktgK=zeu?aQp`mGU}#KX2uD8?-a`QU%0Y${l(rQDWmGw*B8p+d zBwG;bNK26r@ahC1doTo|30%B~w?ZKGrt~=A)vD&L_fse<`u}b+POCGkTaOEHPIOVC z5+tOg7q^x>25^?+^Rnxto1+G@FO>;iD%T2EKxFrtBy||$M)BlWNJ*x6cuH;VMd!K0 zM+2h%w;so;IpqZ6h|1C+fkMN=cRC51)0J$PH~TQR;i%fpGbm2 z!g^B!K72UocX&R!%y3I@wfRVH#aV?mxN3m4+0+YdT-EuS;8!YUyLLbF{ZjZ6(nvB` zhqJy2C!IdFF>%`p#_~jJ#8SccVeb8(H9t>r2e`2vvaf-Fmr`ILDt6YwY%*=HkS zUILLEHK>EYYbVxOSc*A)@Y66be=TgNQ=3^*4 z2?0WRLyQ4(EJ!gr%t*ywm`x^Xbr8&mXjgn(K7urO5xnTZQ{oZBqIP(hVv2#kC=)YA zyo6Gf@l|j5I`53`sEN$io~fM{ zxY;Aj6vPl*P}+bAWP&IHS_xoDAT%?C zkW2!KfC7RQalr_6>un_jWN`_@pn#|>Sx9iH6a?HVQ7cJ%6%nv*y`rFiORL@Mwf#1@oaC3;a^7>E^PK0L*KLln&~1ugq9u-2;(%s&9$i<9BD*q@)5Y>RIR1UL9wfVn zGNS@C#xNz>fz)VkvY=yvts^ftE0u)95lJ@`?ksW?!$(-msnRO?gL<8UgaTgKL9&vj zh8ZzpV~V$mXT&n8L+mGUdJ|>KWuuk zamKm#Ya)f~uX+{Itd)3yzpHe7n3C$*vCi#4&yN3cym$FuC@D=i<@Ib+cZ%Ba*acTD zrKji1oZ-u%X<47A_vhTtpYF^&_KqRx#{J5!?B6>-74R$wSrRuHRXiBQMN3fD`+weg zNQ-w?+pxw#=eM~6@C8V)Hr+t> z;1yMj8gs1#m(X`fDVS6{@4>ENh4M$zgi`z)Y z=(%2fU&=zG>EqGIsC7LOXa;Po_TwPlwP*qKnSf)KF~I!6C8IGii&LhJ&?K;+BRD=< zHMl;|Jwf{UgSO4aDRDs)1Pc-wX+-(Ldco!!%lzc{HQ5f8FIk?+-xrmjE&nc1*@r1i znlE`$TJgZtqK4#=%mPaC)z4F9r!0H@KNRCpu2l$VEZYfVYU0r26X!2dBo{Ep<-DBY z4N}gfYeY+Ej9@{*C~RCTWd|)JulUGOfrtbv^VA&J5WQBq7ANVT?WaLsV+{>v*fZr% zAMR~`@47sbTRa%D%}(2e%@jW~-{1w9VJ{M1c*Bdhb4<-y;$Gpn>f6sy)Li9KFnKWU zDXUR7N+YMHu%0>|N3}ukHdFsKhSceh4wz=7DM3*V9$}nM+v^<3uUb0+nsX0*JITp) z2b$8gc*Mor!8o9(uytEotm-R@M=&LBw>(fo!#~*0hQ&$=ii6Hzj`jdLZ&1f+IoEFw@dt@8O3zd7RlN!2?s4h)8sXl zQd!HGqifHOkEam+F1c0pcPF=%OrAY$7VkBHV_Y}JC%<4DTw$zcHn&vL{0eVgrD zW*ajn2Cv@E31`&Uxy|vQfkOChCTv3l`*-&~Bt#(Tg9$fp9j-M2$aJ?tpEISn2$wk! zf*?++(3hIV)cTQTh7L#!hK{PJ(IQ#|ja|}giEcJw(xB=^;eH~Hgo!8{>saeDG57xd zIaLPFJo8PmQ(VKP0z%@63gS7=eUL6?R{B_zbQI4VtN0&M`kO~kgWqQ%OGI_d1L-1f zRSan=8Vbu3*DQ*wT|P&mP|^18)sS<(&>UIZw#Z$FhWhK!Aatco=$vQvDS~W+GM`3* zc;uYEicVOeBLZ^e{Q}mDTdI`xo34Etp*%Ba%4VO=4}33j|7R`|Peu!4RBbQ(HZP%c zVEOihlzah_Y(zZQ79#qGmXOqBJE|$o4K!~d3m(9gx45&Onedi!6#433HvO8gk+uj3vYTmubaYNF27O&;}zGJyZ>JH83*5M@IRrNu@d`0 ze%Ap@ThCgksL0sYPixbY4Qv!6Up3Y-bv&VmodyJ+WjDMX=LVWM%Zp}3D`vsBkK`8- zduJq9=WhL;*@TP$hAWjKr69q|pKidYDX;!hR{2^L6d6$I*?9iBU$nXPA-8k;r369t zhvT2i(>s@;LBfXo8G6w$-@Lv^= zEYV%x+#4X>^GyNc*JIDr54nzR1uu4%X+Lp4KCo^;`rzje7DXl$izke&czJp-XLC-M zQ}pqT9f?;LUAj>IPT~pV3PctZ+s!jq-zMVJ=c+JFm}a+4r>Lo z^TS(qvA;eUS)AWww`&TrTX!FM&$;kA)!tk>5bnYJl-kmjI9bEFHnKzuGt)1na_ZRw zhb6p?i62n2maVJ!*bhnMI=W)I9HQh^{JT4f`75%` z3sqzTqzB4e5?DbQ#RX+CNpgj}g8u-axXA$%j>G_-Ij03RB$|os87D1i1Od}r3xssC ze|+)!oKFx#=hdLy{r6jDzvOA}G`9w)-}hbFvgEk`<)Ydb^35B}@OQ+oI3r*ZyxZV@MVQ(6yOc25PKII;b}d**HbOq=P`KOlVNZaTX*& zq6*kDW4KuZwq!MHP?%Cc9}&*fRwDciD@_DG8?J{#r~n8LL~srF9|r*1g?n#A`m{HD z1Ur(J4eJz_?{H#>Xuc3pOHVC9zS_!oFDi-o!7`_Has$(vHXjbM{rn&`nOeeau{XKN zR(dZHKVtcw7BRJpv|l=O#d#YNFZS-C2UQu=G78V9xOt6Gx}az#$I%BeC8W^I&hmX# ztNTG*vVhwdGOGHCE1%}6^r*d4z!RCI6S4$nd>rZ=$eA$6KpWn8;Cz*X$9toR<=4s= z-}E=h>E0cxj zx2Ov%XE3$qIF2KvOJ74n9_Jcs_WjN`Ze_>M?_Z_67DAG-^dJ<>6Lc$mwRkLqi*6?UEao%Cu-m6NO;1LcF>9wJfEHFT zpeQVp?D2pm@ius@x~`IayrTPod)q$#B2qwO~tpxuvFO^%CM|R{pXynvw>*Djlb0r>=8$Y_`K$kHEs)(gaWh-xlw`}Z) zXI*;~`b5wo*c32)?1yO%s>eOIzQ~;M_L7$FUvhcH!cV(B@9(L z-ljCp__L77)g}z}L;k!u)c02n0fAM60cPNUg;}#TsMGb!paIAi^_X9aqbv?i5-LCy z*0dcB(Ga8zTr4S<>3B8>VP#%|$Z;AJ?W=L8G=sA2AjcJ#DyV5TV}&%+1~4E){2Ost zr2;m_lQf@eYPWApC|31pcIlwJN?KaY^Pd&?;EMNur>)! z5u&l6OydfgYK&RC!d*31CiGU@8G`x6Q;@dtf~XBzH~RFdP)T2ZpT=#)k1<_B`Zap2 zTpL_Akt{Ifp^fyCcby}^Twb7~^fh%w9EkjZ@A^{Q{$KPx7POakO;32e z-?os*UQXxg4N+fLrD5vz$_;ghBlICPY^6i2sd64-YFQlG9THw|vTVAZ>{BMHdbNNd zlEO74w5^61?CRgp@Yj_a`SYdsh|2F`6%&VF6L>Zz*@{fkXbcTeI{=DTP-)fYqZBCG z72bg5;<8Y21Ko#|O817Uk$r?oQ7uzNOwihmWET`b`r{lM@C#r>_!!GSWK5 zm@ysom!w>D?5NtG<2=oDw{y&1e!4zdFLWB$*PT*%Njj55XZB5xIDTgoUtLY`GQi3V zpZ?kZPn&*gZdU8G@!B9iuu&0^?m@V>k#&TKsDTwm8myHn+t5h@=o%y_&up6ke~=Qc zbMC`mlc-SlmL{?N)apaQ75}dU2g~Q}rLY^_3AO1SC*pAVl|V&wJyu=i02wqdRxgDW zG9ob1mE{%AQ)no2ne~paF{@M0Gxzb5!o)_zqIyRbGS9H+`@*ip!+mad zr^a_BxC(MAvr&G&i@BV@(PGtQMes#L;{tMkRs~3&u(GIs7Hne z7CT4fZt3(y8 zk!5Ghy?(XWTq7?;ix^kpfQQj6PMm14vOZ=_n3=|4CF)~NwbyT>ght&X4e|q7%m@pw z#{i}&f}sjp#QK<|R=_0BX%WI6z^Dsuk43^BmD)h%Q{}WS*5a*pg&PP-Tv3$58Q8BF z9GwThC8%&MGgFsL+-t01!5(ThhcXn6ILdqI51NY@M2#ssR#9f9qxXPS`in*z8~f@= zbq^g*VI|Ot?BoTgh@iy4FlnZ4XM^T97CXtc%p%;v@_p5arHxAN9OjD4E=Z!UepD99 z)w$g5y7?Ixo0n}|pg4AG<&`O|n@8Q+_sq^u`8j{*yLw9A z;+f06cth6;ZpW#l!nF|JA3phWV5rXu8X*_d{=@(N(^jn!9)dc2MBuN~fF^9P0(>dV z;s6J1l~pKhIKU55HXV-(8`@?x%1I1@IuIIGHt#Pp1=S@S{Db53b3)YA^k~00Ss>YL z#v}kbUR4NvwEPSW^uaq+Ryw{wy_IOCem)KoF1QOJxET(Q<+BihShFVzl-hN$?S z)GIRSot*TZ>|Ss5U(tmf-o+OGWaqQq{vqhtqF}Nx^Ar`YuVcu2bfSlc>vavu@?Ax2 z#4p#tiV69Ek~k!aaLbMZ2sx==ns1neY<*fU@>ks@yW@QN_x?L_XL{0h>hXQ|@5e?%A z&37t$g)s!`W7QDaL`2IV8&j!aVm9uC5AtOMjKp_7tx59;(2D8AePOwbAHsHnzAqog zg^dS>5tLtEIf*&^vb9>jiNg_bHJXA}oo9_!EVai}{{=G8V}AW}x|TQMP#nyek4rX- zyhTNYXIAGrxhl#y;wJ}R)lA{Ke}{6ma#%}8XgL0g)OofftS%n^5Liz(lR64-CybgrSnlV2W*_!LV>o9AcJD?P;F9Ku1vY3})w;PK)sLtwjL3Q*i zOwuB2cC3(v^g>5~5QkSIKMeH&2v1hklvOc-!4+#|n1IERHDkF%4ZDf~%TtRQp@0xX za~7%02!S!6NAa8ia3^#wCcP1k-*~yKAnAVOAL^-gL~S;KQhculChiVMs+#F9t!)=X z++DJ7uYZiu=~fBbspv^QI3Zyw(~{q@S#>%&Kz&}2^2Ix|J3o@&Y+}Uh&4L$i$-I_u zW`J=b!C3BdXdW#+CCAPwFTw5Mi5+Rp_ECwCH+|??RQG#ISU~p*uK}gozPL|~`ok}X S@Tn`q`w~z7QMT&O+y4g}T9k|c literal 0 HcmV?d00001 diff --git a/asset/menu/dumbbell_presses.jpg b/asset/menu/dumbbell_presses.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23d13fda540621beee76b1cb4929410022c678e9 GIT binary patch literal 90658 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 literal 0 HcmV?d00001 diff --git a/asset/menu/seated_leg_curls.jpg b/asset/menu/seated_leg_curls.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9ca760a343bb6884692e471988f80b1e988342b GIT binary patch literal 93847 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 ZF+zkftR4;8jBID#+*tx*3(H==@gD~M=*j>9 literal 0 HcmV?d00001 diff --git a/asset/menu/smith_machine_front_press.jpg b/asset/menu/smith_machine_front_press.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1bf3f103b32dcb207dd6743978e1ea033366b105 GIT binary patch literal 100315 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[>ds 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 literal 0 HcmV?d00001 diff --git a/asset/menu/straight_arm_pulldown.jpg b/asset/menu/straight_arm_pulldown.jpg new file mode 100644 index 0000000000000000000000000000000000000000..182b95f1b207f66aeaff765a762a5083caa76fc8 GIT binary patch literal 83860 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

q@jS!sdhtew*vxO~^98y&>`=pa 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 ckV-Yy6Vhf1^1DpU<97BB2~J_K - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - WorkoutTest - CFBundlePackageType - APPL - CFBundleShortVersionString - $(MARKETING_VERSION) - CFBundleSignature - ???? - CFBundleURLTypes - - - CFBundleTypeRole - Editor - CFBundleURLName - aitrainer.page.link - CFBundleURLSchemes - - wt001 - fb584181112271127 - - - - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - FacebookAdvertiserIDCollectionEnabled - TRUE - FacebookAppID - 584181112271127 - FacebookAutoLogAppEventsEnabled - TRUE - FacebookDisplayName - Workout Test - FirebaseAppDelegateProxyEnabled - NO - LSApplicationQueriesSchemes - - https - http - fbapi - fbapi20130214 - fbapi20130410 - fbapi20130702 - fbapi20131010 - fbapi20131219 - fbapi20140410 - fbapi20140116 - fbapi20150313 - fbapi20150629 - fbapi20160328 - fb-messenger-share-api - fbauth2 - fbshareextension - - LSMinimumSystemVersion - 11.0.0 - LSRequiresIPhoneOS - - NSAppTransportSecurity + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + WorkoutTest + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleSignature + ???? + CFBundleURLTypes + - NSAllowsArbitraryLoads - + CFBundleTypeRole + Editor + CFBundleURLName + aitrainer.page.link + CFBundleURLSchemes + + wt001 + fb584181112271127 + - UIBackgroundModes - - remote-notification - - UILaunchStoryboardName - Launch Screen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - + + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + FacebookAdvertiserIDCollectionEnabled + TRUE + FacebookAppID + 584181112271127 + FacebookAutoLogAppEventsEnabled + TRUE + FacebookDisplayName + Workout Test + FirebaseAppDelegateProxyEnabled + NO + LSApplicationQueriesSchemes + + https + http + fbapi + fbapi20130214 + fbapi20130410 + fbapi20130702 + fbapi20131010 + fbapi20131219 + fbapi20140410 + fbapi20140116 + fbapi20150313 + fbapi20150629 + fbapi20160328 + fb-messenger-share-api + fbauth2 + fbshareextension + + LSMinimumSystemVersion + 11.0.0 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + UIBackgroundModes + + remote-notification + + UILaunchStoryboardName + Launch Screen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + diff --git a/lib/bloc/customer_change/customer_change_bloc.dart b/lib/bloc/customer_change/customer_change_bloc.dart index c599e9b..5123564 100644 --- a/lib/bloc/customer_change/customer_change_bloc.dart +++ b/lib/bloc/customer_change/customer_change_bloc.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/model/sport.dart'; import 'package:aitrainer_app/repository/customer_repository.dart'; +import 'package:aitrainer_app/repository/mautic_repository.dart'; import 'package:aitrainer_app/util/common.dart'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; @@ -29,8 +30,8 @@ class CustomerChangeBloc extends Bloc weight = this.customerRepository.getWeight() == 0 ? 60 : this.customerRepository.getWeight(); height = this.customerRepository.getHeight() == 0 ? 170 : this.customerRepository.getHeight(); - // selectedSport = customerRepository.getSport(); - //print("selected: $selectedFitnessItem sport: $selectedSport " + customerRepository.customer!.fitnessLevel.toString()); + selectedFitnessItem = customerRepository.fitnessLevel; + selectedSport = customerRepository.getSport(); } Sport? selectedSport; @@ -95,6 +96,7 @@ class CustomerChangeBloc extends Bloc } else if (event is CustomerSportChange) { yield CustomerChangeLoading(); selectedSport = event.sport; + print("Selected Sport $selectedSport"); yield CustomerDataChanged(); } else if (event is CustomerSaveFitness) { yield CustomerChangeLoading(); @@ -137,6 +139,8 @@ class CustomerChangeBloc extends Bloc } await customerRepository.saveCustomer(); + MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository); + await mauticRepository.sendMauticDataChange(); Cache().initBadges(); yield CustomerSaveSuccess(); } else { @@ -151,10 +155,6 @@ class CustomerChangeBloc extends Bloc bool validation() { if (customerRepository.customer == null) throw Exception("Customer object not defined"); return true; - /* return (emailValidation(customerRepository.customer!.email) == null) && - (passwordValidation(customerRepository.customer!.password) == null) && - (nameValidation(customerRepository.customer!.firstname) == null) && - (nameValidation(customerRepository.customer!.name) == null); */ } String? emailValidation(String? email) { diff --git a/lib/bloc/exercise_control/exercise_control_bloc.dart b/lib/bloc/exercise_control/exercise_control_bloc.dart index 44f176a..a7cb02a 100644 --- a/lib/bloc/exercise_control/exercise_control_bloc.dart +++ b/lib/bloc/exercise_control/exercise_control_bloc.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'package:aitrainer_app/bloc/timer/timer_bloc.dart'; +import 'package:aitrainer_app/model/exercise.dart'; import 'package:aitrainer_app/repository/exercise_repository.dart'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; @@ -26,7 +27,6 @@ class ExerciseControlBloc extends Bloc controlList = []; + @override ExerciseControlBloc({required this.exerciseRepository, required this.readonly, required this.timerBloc}) : super(ExerciseControlInitial()) { @@ -53,29 +55,29 @@ class ExerciseControlBloc extends Bloc 25) { quantity = 35; } - origQuantity = quantity; exerciseRepository.setUnitQuantity(unitQuantity); exerciseRepository.setQuantity(quantity); + for (int i = 0; i < 3; i++) { + Exercise exercise = Exercise(); + exercise.quantity = quantity; + exercise.unitQuantity = unitQuantity; + controlList.add(exercise); + } + timerBloc.add(TimerStart(duration: 300)); } @override Stream mapEventToState(ExerciseControlEvent event) async* { try { - /* if (event is ExerciseControlLoad) { - yield ExerciseControlLoading(); - step = 1; - yield ExerciseControlReady(); - } else */ if (event is ExerciseControlQuantityChange) { - //yield ExerciseControlLoading(); if (event.step == step) { exerciseRepository.setQuantity(event.quantity); quantity = event.quantity; + controlList[step - 1].quantity = quantity; } - //yield ExerciseControlReady(); } else if (event is ExerciseControlUnitQuantityChange) { yield ExerciseControlLoading(); print("event step ${event.step} quantity ${event.quantity}"); @@ -85,7 +87,8 @@ class ExerciseControlBloc extends Bloc with Logg final CustomerRepository customerRepository; final MenuBloc menuBloc; late AnimationController bmiAnimationController; - double quantity = 12; - double unitQuantity = 30; + double quantity = -1; + double unitQuantity = -1; double bmi = 0; double bmr = 0; double goalBMI = 0; @@ -148,6 +148,10 @@ class ExerciseNewBloc extends Bloc with Logg yield ExerciseNewReady(); } else if (event is ExerciseNewSubmit) { yield ExerciseNewLoading(); + if (quantity == -1 || unitQuantity == -1) { + yield ExerciseNewReady(); + throw Exception("Please type in a real number"); + } exerciseRepository.end = DateTime.now(); await exerciseRepository.addExercise(); // exerciseRepository.initExercise(); diff --git a/lib/bloc/login/login_bloc.dart b/lib/bloc/login/login_bloc.dart index 69ed7c0..90457a4 100644 --- a/lib/bloc/login/login_bloc.dart +++ b/lib/bloc/login/login_bloc.dart @@ -2,8 +2,11 @@ import 'dart:async'; import 'package:aitrainer_app/bloc/account/account_bloc.dart'; import 'package:aitrainer_app/model/cache.dart'; +import 'package:aitrainer_app/model/customer.dart'; import 'package:aitrainer_app/repository/customer_repository.dart'; +import 'package:aitrainer_app/repository/mautic_repository.dart'; import 'package:aitrainer_app/repository/split_test_respository.dart'; +import 'package:aitrainer_app/repository/training_plan_repository.dart'; import 'package:aitrainer_app/repository/user_repository.dart'; import 'package:aitrainer_app/util/common.dart'; import 'package:aitrainer_app/util/enums.dart'; @@ -19,7 +22,7 @@ part 'login_state.dart'; class LoginBloc extends Bloc with Trans { final AccountBloc accountBloc; final UserRepository userRepository; - final CustomerRepository customerRepository = CustomerRepository(); + late CustomerRepository? customerRepository; final SplitTestRepository splitTestRepository = SplitTestRepository(); final BuildContext context; final bool isRegistration; @@ -30,7 +33,12 @@ class LoginBloc extends Bloc with Trans { Color testColor = Colors.green[800]!; bool emailCheckbox = true; - LoginBloc({required this.accountBloc, required this.userRepository, required this.context, required this.isRegistration}) + LoginBloc( + {required this.accountBloc, + required this.userRepository, + required this.context, + required this.isRegistration, + this.customerRepository}) : super(LoginInitial()) { String colorString = splitTestRepository.getSplitTestValue("registration_skip"); if (colorString == "red") { @@ -40,6 +48,9 @@ class LoginBloc extends Bloc with Trans { if (emailCheckboxString == "0") { emailCheckbox = false; } + if (customerRepository == null) { + customerRepository = CustomerRepository(); + } } @override @@ -87,56 +98,44 @@ class LoginBloc extends Bloc with Trans { yield LoginSuccess(); } else if (event is RegistrationSubmit) { yield LoginLoading(); - /* if (!this.dataPolicyAllowed) { - throw Exception("Please accept our data policy"); - } */ + final String? validationError = validate(); if (validationError != null) { yield LoginError(message: validationError); } else { await userRepository.addUser(); accountBloc.add(AccountLogInFinished(customer: Cache().userLoggedIn!)); - customerRepository.customer!.emailSubscription = emailSubscription == true ? 1 : 0; - await saveCustomer(); - Track().track(TrackingEvent.registration, eventValue: "email"); + customerRepository!.customer!.emailSubscription = emailSubscription == true ? 1 : 0; + await afterRegistration("email"); Cache().setLoginType(LoginType.email); yield LoginSuccess(); } } else if (event is RegistrationFB) { yield LoginLoading(); - /* if (!this.dataPolicyAllowed) { - throw Exception("Please accept our data policy"); - } */ + Cache().setLoginType(LoginType.fb); await userRepository.addUserFB(); accountBloc.add(AccountLogInFinished(customer: Cache().userLoggedIn!)); - customerRepository.customer!.emailSubscription = emailSubscription == true ? 1 : 0; - await saveCustomer(); - Track().track(TrackingEvent.registration, eventValue: "FB"); + customerRepository!.customer!.emailSubscription = emailSubscription == true ? 1 : 0; + await afterRegistration("FB"); yield LoginSuccess(); } else if (event is RegistrationGoogle) { yield LoginLoading(); - /* if (!this.dataPolicyAllowed) { - throw Exception("Please accept our data policy"); - } */ + Cache().setLoginType(LoginType.google); await userRepository.addUserGoogle(); accountBloc.add(AccountLogInFinished(customer: Cache().userLoggedIn!)); - customerRepository.customer!.emailSubscription = emailSubscription == true ? 1 : 0; - await saveCustomer(); - Track().track(TrackingEvent.registration, eventValue: "Google"); + customerRepository!.customer!.emailSubscription = emailSubscription == true ? 1 : 0; + await afterRegistration("Google"); yield LoginSuccess(); } else if (event is RegistrationApple) { yield LoginLoading(); - /* if (!this.dataPolicyAllowed) { - throw Exception("Please accept our data policy"); - } */ + Cache().setLoginType(LoginType.apple); await userRepository.addUserApple(); accountBloc.add(AccountLogInFinished(customer: Cache().userLoggedIn!)); - customerRepository.customer!.emailSubscription = emailSubscription == true ? 1 : 0; - await saveCustomer(); - Track().track(TrackingEvent.registration, eventValue: "Apple"); + customerRepository!.customer!.emailSubscription = emailSubscription == true ? 1 : 0; + await afterRegistration("Apple"); yield LoginSuccess(); } else if (event is DataProtectionClicked) { @@ -162,10 +161,23 @@ class LoginBloc extends Bloc with Trans { } } - Future saveCustomer() async { - customerRepository.customer = Cache().userLoggedIn!; - customerRepository.customer!.dataPolicyAllowed = 1; - await customerRepository.saveCustomer(); + Future afterRegistration(String event) async { + Customer tempCustomer = customerRepository!.customer!; + customerRepository!.customer = Cache().userLoggedIn!; + customerRepository!.customer!.fitnessLevel = tempCustomer.fitnessLevel; + customerRepository!.customer!.goal = tempCustomer.goal; + customerRepository!.customer!.sex = tempCustomer.sex; + customerRepository!.customer!.dataPolicyAllowed = 1; + customerRepository!.customer!.emailSubscription = 1; + customerRepository!.customer!.syncedDate = DateTime.now(); + customerRepository!.setCustomerProperty("Weight", tempCustomer.getProperty("Weight")); + customerRepository!.setCustomerProperty("Height", tempCustomer.getProperty("Height")); + await customerRepository!.saveCustomer(); + MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository!); + await mauticRepository.sendMauticSubscription(); + TrainingPlanRepository trainingPlanRepository = TrainingPlanRepository(); + trainingPlanRepository.generateTrainingPlan(); + Track().track(TrackingEvent.registration, eventValue: event); } String? emailValidation(String? email) { diff --git a/lib/bloc/training_plan/training_plan_bloc.dart b/lib/bloc/training_plan/training_plan_bloc.dart index c4f1210..047f809 100644 --- a/lib/bloc/training_plan/training_plan_bloc.dart +++ b/lib/bloc/training_plan/training_plan_bloc.dart @@ -7,6 +7,8 @@ import 'package:aitrainer_app/model/customer_training_plan_details.dart'; import 'package:aitrainer_app/model/exercise.dart'; import 'package:aitrainer_app/model/exercise_plan_detail.dart'; import 'package:aitrainer_app/model/exercise_type.dart'; +import 'package:aitrainer_app/model/training_plan.dart'; +import 'package:aitrainer_app/model/training_plan_detail.dart'; import 'package:aitrainer_app/model/workout_menu_tree.dart'; import 'package:aitrainer_app/repository/training_plan_repository.dart'; import 'package:aitrainer_app/service/exercise_service.dart'; @@ -29,6 +31,9 @@ class TrainingPlanBloc extends Bloc { CustomerTrainingPlan? _myPlan; CustomerTrainingPlanDetails? _myDetail; + TrainingPlan? _myTrainingPlan; + final List trainingPlanDayNames = []; + bool started = false; final List dayNames = []; bool restarting = false; @@ -38,6 +43,9 @@ class TrainingPlanBloc extends Bloc { CustomerTrainingPlan? getMyPlan() => this._myPlan; setMyPlan(CustomerTrainingPlan? myPlan) => this._myPlan = myPlan; + TrainingPlan? getMyTrainingPlan() => this._myTrainingPlan; + setMyTrainingPlan(TrainingPlan? myTrainingPlan) => this._myTrainingPlan = myTrainingPlan; + CustomerTrainingPlanDetails? getMyDetail() => this._myDetail; setMyDetail(CustomerTrainingPlanDetails? value) => this._myDetail = value; @@ -88,6 +96,10 @@ class TrainingPlanBloc extends Bloc { yield TrainingPlanReady(); } else if (event is TrainingPlanSaveExercise) { yield TrainingPlanLoading(); + if (event.detail.repeats == -1) { + yield TrainingPlanReady(); + throw Exception("Please type your repeats!"); + } if (event.detail.weight == -3) { print("DropSet"); event.detail.state = ExercisePlanDetailState.finished; @@ -293,6 +305,83 @@ class TrainingPlanBloc extends Bloc { getActiveDayIndex(); } + void activateTrainingPlanDays() { + if (_myTrainingPlan == null || _myTrainingPlan!.details == null) { + return; + } + + trainingPlanDayNames.clear(); + + String dayName = "."; + _myTrainingPlan!.details!.forEach((element) { + if (element.day != null && element.day != dayName) { + trainingPlanDayNames.add(element.day!); + dayName = element.day!; + } + }); + + if (trainingPlanDayNames.length == 0) { + dayName = ""; + trainingPlanDayNames.add(dayName); + } + } + + List trainingPlanDetailSummary(TrainingPlan plan, String dayName) { + List details = []; + TrainingPlanDetail? prev; + plan.details!.forEach((element) { + if (prev == null || element.exerciseTypeId != prev!.exerciseTypeId) { + if (element.day! == dayName) { + element.summary = getSummary(element); + details.add(element); + } + prev = element; + } + }); + return details; + } + + List getAllTrainingPlanDetailsSameExercise(TrainingPlanDetail detail) { + List list = []; + getMyTrainingPlan()!.details!.forEach((element) { + if (detail.exerciseTypeId == element.exerciseTypeId) { + list.add(element); + } + }); + return list; + } + + String getSummary(TrainingPlanDetail detail) { + String summary = ""; + String set = "1"; + + set = detail.set.toString() + "/ "; + List details = getAllTrainingPlanDetailsSameExercise(detail); + int index = 0; + + String quantities = ""; + + details.forEach((element) { + String delimiter = ", "; + if (index == 0) { + delimiter = ""; + } + if (element.repeats == -1) { + quantities += delimiter + " MAX "; + } else { + quantities += delimiter + "${element.repeats}"; + } + + index++; + }); + + //quantities += " / ? kg"; + + summary = quantities; + + return summary; + } + void addExtraExerciseType(String name, String dayName) { if (Cache().getExerciseTypes() == null) { return; diff --git a/lib/library/super_tooltip.dart b/lib/library/super_tooltip.dart index d9b8f61..d6b08ca 100644 --- a/lib/library/super_tooltip.dart +++ b/lib/library/super_tooltip.dart @@ -307,6 +307,60 @@ class SuperTooltip { isOpen = true; } + void showBox(BuildContext targetContext) { + final renderBox = targetContext.findRenderObject() as RenderBox; + var size = renderBox.size; + print("Size $size"); + if (containsBackgroundOverlay) { + _backGroundOverlay = OverlayEntry( + builder: (context) => _AnimationWrapper( + builder: (context, opacity) => AnimatedOpacity( + opacity: opacity, + duration: const Duration(milliseconds: 600), + child: GestureDetector( + onTap: () { + if (dismissOnTapOutside) { + close(); + } + }, + child: Container( + decoration: ShapeDecoration( + shape: _ShapeOverlay( + touchThrougArea, touchThroughAreaShape, touchThroughAreaCornerRadius, outsideBackgroundColor))), + ), + ), + )); + } + + _ballonOverlay = OverlayEntry( + builder: (context) => _AnimationWrapper( + builder: (context, opacity) => Positioned( + left: left, //offset.dx, + top: top, + width: size.width > maxWidth! ? maxWidth : size.width, + child: AnimatedOpacity( + duration: Duration( + milliseconds: 300, + ), + opacity: opacity, + child: Stack( + fit: StackFit.passthrough, + children: [_buildPopUp(), _buildCloseButton()], + ), + )), + )); + + var overlays = []; + + if (containsBackgroundOverlay) { + overlays.add(_backGroundOverlay!); + } + overlays.add(_ballonOverlay!); + + Overlay.of(targetContext)!.insertAll(overlays); + isOpen = true; + } + Widget _buildPopUp() { return Positioned( child: Container( @@ -675,6 +729,122 @@ class _PopupBallonLayoutDelegate extends SingleChildLayoutDelegate { } } +class _PopupBallonLayoutDelegateBox extends SingleChildLayoutDelegate { + final double? _minWidth; + final double? _maxWidth; + final double? _minHeight; + final double? _maxHeight; + final double? _top; + final double? _bottom; + final double? _left; + final double? _right; + final double? _outSidePadding; + + _PopupBallonLayoutDelegateBox({ + double? minWidth, + double? maxWidth, + double? minHeight, + double? maxHeight, + double? outSidePadding, + double? top, + double? bottom, + double? left, + double? right, + }) : _minWidth = minWidth, + _maxWidth = maxWidth, + _minHeight = minHeight, + _maxHeight = maxHeight, + _top = top, + _bottom = bottom, + _left = left, + _right = right, + _outSidePadding = outSidePadding; + + @override + Offset getPositionForChild(Size size, Size childSize) { + double? calcLeftMostXtoTarget() { + double? leftMostXtoTarget; + if (_left != null) { + leftMostXtoTarget = _left; + } else if (_right != null) { + leftMostXtoTarget = max( + size.topLeft(Offset.zero).dx + _outSidePadding!, size.topRight(Offset.zero).dx - _outSidePadding! - childSize.width - _right!); + } + return leftMostXtoTarget; + } + + double? calcTopMostYtoTarget() { + double? topmostYtoTarget; + if (_top != null) { + topmostYtoTarget = _top!; + } else if (_bottom != null) { + topmostYtoTarget = max(size.topLeft(Offset.zero).dy + _outSidePadding!, + size.bottomRight(Offset.zero).dy - _outSidePadding! - childSize.height - _bottom!); + } + return topmostYtoTarget; + } + + return new Offset(calcLeftMostXtoTarget()!, _top!); + } + + @override + BoxConstraints getConstraintsForChild(BoxConstraints constraints) { + // print("ParentConstraints: $constraints"); + + var calcMinWidth = _minWidth ?? 0.0; + var calcMaxWidth = _maxWidth ?? double.infinity; + var calcMinHeight = _minHeight ?? 0.0; + var calcMaxHeight = _maxHeight ?? double.infinity; + + void calcMinMaxWidth() { + if (_left != null && _right != null) { + calcMaxWidth = constraints.maxWidth - (_left! + _right!); + } else if ((_left != null && _right == null) || (_left == null && _right != null)) { + // make sure that the sum of left, right + maxwidth isn't bigger than the screen width. + var sideDelta = (_left ?? 0.0) + (_right ?? 0.0) + _outSidePadding!; + if (calcMaxWidth > constraints.maxWidth - sideDelta) { + calcMaxWidth = constraints.maxWidth - sideDelta; + } + } else { + if (calcMaxWidth > constraints.maxWidth - 2 * _outSidePadding!) { + calcMaxWidth = constraints.maxWidth - 2 * _outSidePadding!; + } + } + } + + void calcMinMaxHeight() { + if (_top != null && _bottom != null) { + calcMaxHeight = constraints.maxHeight - (_top! + _bottom!); + } else if ((_top != null && _bottom == null) || (_top == null && _bottom != null)) { + // make sure that the sum of top, bottom + maxHeight isn't bigger than the screen Height. + var sideDelta = (_top ?? 0.0) + (_bottom ?? 0.0) + _outSidePadding!; + if (calcMaxHeight > constraints.maxHeight - sideDelta) { + calcMaxHeight = constraints.maxHeight - sideDelta; + } + } else { + if (calcMaxHeight > constraints.maxHeight - 2 * _outSidePadding!) { + calcMaxHeight = constraints.maxHeight - 2 * _outSidePadding!; + } + } + } + + var childConstraints = new BoxConstraints( + minWidth: calcMinWidth > calcMaxWidth ? calcMaxWidth : calcMinWidth, + maxWidth: calcMaxWidth, + minHeight: calcMinHeight > calcMaxHeight ? calcMaxHeight : calcMinHeight, + maxHeight: calcMaxHeight); + + // print("Child constraints: $childConstraints"); + + return childConstraints; + } + + @override + bool shouldRelayout(SingleChildLayoutDelegate oldDelegate) { + return false; + } +} + //////////////////////////////////////////////////////////////////////////////////////////////////// class _BubbleShape extends ShapeBorder { diff --git a/lib/main.dart b/lib/main.dart index c823fb2..0f97e89 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -41,7 +41,6 @@ import 'package:aitrainer_app/view/test_set_edit.dart'; import 'package:aitrainer_app/view/test_set_execute.dart'; import 'package:aitrainer_app/view/test_set_new.dart'; import 'package:aitrainer_app/view/training_plan_activate_page.dart'; -import 'package:aitrainer_app/view/training_plan_execute_page.dart'; import 'package:aitrainer_app/view/training_plan_exercise.dart'; import 'package:aitrainer_app/widgets/home.dart'; import 'package:aitrainer_app/library/facebook_app_events/facebook_app_events.dart'; @@ -180,8 +179,8 @@ Future main() async { BlocProvider( create: (BuildContext context) => TestSetExecuteBloc(), ), - /* BlocProvider( - create: (BuildContext context) => TutorialBloc(tutorialName: ActivityDone.tutorialExecuteFirstTest.toStr())), */ + BlocProvider( + create: (BuildContext context) => TutorialBloc(tutorialName: ActivityDone.tutorialExecuteFirstTest.toStr())), BlocProvider(create: (context) { final MenuBloc menuBloc = BlocProvider.of(context); return TrainingPlanBloc(menuBloc: menuBloc, trainingPlanRepository: TrainingPlanRepository()); @@ -283,7 +282,6 @@ class WorkoutTestApp extends StatelessWidget { 'myTrainingPlanCustom': (context) => TrainingPlanCustomPage(), 'myTrainingPlanCustomAdd': (context) => TrainingPlanCustomAddPage(), 'myTrainingPlanActivate': (context) => TrainingPlanActivatePage(), - 'myTrainingPlanExecute2': (context) => TrainingPlanExecutePage(), 'myTrainingPlanExecute': (context) => TrainingPlanExecute(), 'myTrainingPlanExercise': (context) => TrainingPlanExercise(), 'myTrainingEvaluation': (context) => TrainingEvaluationPage(), diff --git a/lib/model/cache.dart b/lib/model/cache.dart index 9c68999..b4b712a 100644 --- a/lib/model/cache.dart +++ b/lib/model/cache.dart @@ -71,7 +71,11 @@ enum ActivityDone { tutorialBasicLegPress, tutorialDevelopment, isExerciseLogSeen, - isMuscleDevelopmentSeen + isMuscleDevelopmentSeen, + isBodyTypeSeen, + exerciseSaveTestTip, + exerciseSaveTrainingTip, + exerciseSaveTestsetTip } extension ActivityDoneExt on ActivityDone { @@ -641,8 +645,8 @@ class Cache with Logging { } if (this._exercises == null || this._exercises!.isEmpty) { setBadge("home", true); - setBadge("Muscle Build / Shape Toning", true); - setBadge("Cardio", true); + setBadge("Custom Tests", true); + setBadge("Start Training", true); } if (customerRepository.getHeight() == 0) { setBadge("BMI", true); @@ -726,6 +730,8 @@ class Cache with Logging { sharedPreferences.setBool(activity.toStr(), true); } + bool isActivityDone(ActivityDone activity) => activitiesDone[activity.toStr()] == true; + List? get evaluations => this._evaluations; set evaluations(List? value) => this._evaluations = value; diff --git a/lib/model/customer.dart b/lib/model/customer.dart index 4aa19d6..df20a9c 100644 --- a/lib/model/customer.dart +++ b/lib/model/customer.dart @@ -24,6 +24,7 @@ class Customer { DateTime? dateChange; int? emailSubscription; int? sportId; + DateTime? syncedDate; DateTime? trialDate; LinkedHashMap properties = LinkedHashMap(); @@ -71,6 +72,7 @@ class Customer { this.dataPolicyAllowed = json['dataPolicyAllowed']; this.emailSubscription = json['emailSubscription']; this.sportId = json['sportId']; + this.syncedDate = json['syncedDate'] == null ? null : DateTime.parse(json['syncedDate']); this.trialDate = json['trialDate'] == null ? null : DateTime.parse(json['trialDate']); this.dateAdd = json['dateAdd'] == null ? DateTime.parse("0000-00-00") : DateTime.parse(json['dateAdd']); @@ -96,9 +98,13 @@ class Customer { "dateChange": DateFormat('yyyy-MM-dd HH:mm:ss').format(this.dateChange!), "emailSubscription": this.emailSubscription, "sportId": this.sportId, - "trialDate": DateFormat('yyyy-MM-dd HH:mm:ss').format(this.trialDate!), + "syncedDate": this.syncedDate == null ? null : DateFormat('yyyy-MM-dd HH:mm:ss').format(this.syncedDate!), + "trialDate": this.trialDate == null ? null : DateFormat('yyyy-MM-dd HH:mm:ss').format(this.trialDate!), }; + @override + String toString() => this.toJson().toString(); + double getProperty(String propertyName) { if (this.properties[propertyName] == null) { return 0; diff --git a/lib/model/customer_training_plan_details.dart b/lib/model/customer_training_plan_details.dart index dfcb7f9..75c9653 100644 --- a/lib/model/customer_training_plan_details.dart +++ b/lib/model/customer_training_plan_details.dart @@ -59,7 +59,7 @@ class CustomerTrainingPlanDetails { this.exerciseTypeId = json['exerciseTypeId']; this.set = json['set']; this.repeats = json['repeats'] == "null" ? -1 : json['repeats']; - this.weight = json['weight']; + this.weight = json['weight'] == "null" ? 0 : json['weight']; this.restingTime = json['restingTime']; this.parallel = json['parallel'] == "false" ? false diff --git a/lib/model/faq.dart b/lib/model/faq.dart index 3e15174..2f4dd2c 100644 --- a/lib/model/faq.dart +++ b/lib/model/faq.dart @@ -1,7 +1,5 @@ import 'dart:collection'; -import 'package:aitrainer_app/util/app_language.dart'; - class Faq { late int faqId; late String name; diff --git a/lib/model/mautic.dart b/lib/model/mautic.dart new file mode 100644 index 0000000..aa212f9 --- /dev/null +++ b/lib/model/mautic.dart @@ -0,0 +1,40 @@ +class Mautic { + late int formId; + String? firstname; + String? lastname; + String? email; + String? fitnessLevel; + String? goal; + int? databaseId; + String? subscriptionDate; + String? language; + + Map toJson() => { + "formId": this.formId, + "firstname": this.firstname, + "lastname": this.lastname, + "email": this.email, + "fitnessLevel": this.fitnessLevel, + "goal": this.goal, + "databaseId": this.databaseId, + "subscriptionDate": this.subscriptionDate, + "language": this.language + }; + + String toForm() { + String form = "mauticform[formId]=${this.formId}"; + form += this.email == null ? "" : "&mauticform[email]=${this.email}"; + form += this.lastname == null ? "" : "&mauticform[f_name]=${this.lastname}"; + form += this.firstname == null ? "" : "&mauticform[firstname]=${this.firstname}"; + form += this.fitnessLevel == null ? "" : "&mauticform[fitness_level]=${this.fitnessLevel}"; + form += this.goal == null ? "" : "&mauticform[goal]=${this.goal}"; + form += this.subscriptionDate == null ? "" : "&mauticform[subscribed]=${this.subscriptionDate}"; + form += this.databaseId == null ? "" : "&mauticform[database_id]=${this.databaseId}"; + form += this.language == null ? "" : "&mauticform[language]=${this.language}"; + + return form; + } + + @override + String toString() => this.toJson().toString(); +} diff --git a/lib/model/sport.dart b/lib/model/sport.dart index fc41fd2..31a94c7 100644 --- a/lib/model/sport.dart +++ b/lib/model/sport.dart @@ -1,13 +1,21 @@ +import 'dart:collection'; + class Sport { late int sportId; late String name; - late String sportNameTranslation; + + HashMap nameTranslations = HashMap(); Sport.fromJson(Map json) { this.sportId = json['sportId']; this.name = json['name']; - this.sportNameTranslation = - json['translations'] != null && (json['translations']).length > 0 ? json['translations'][0]['sportName'] : this.name; + + nameTranslations['en'] = name; + if (json['translations'] != null && json['translations'].length > 0) { + json['translations'].forEach((translation) { + nameTranslations[translation['languageCode']] = translation['sportName']; + }); + } } Map toJson() => { diff --git a/lib/model/training_plan_detail.dart b/lib/model/training_plan_detail.dart index bc299d8..58ae838 100644 --- a/lib/model/training_plan_detail.dart +++ b/lib/model/training_plan_detail.dart @@ -10,6 +10,7 @@ class TrainingPlanDetail { bool? parallel; int? dayId; String? day; + String? summary; TrainingPlanDetail.fromJson(Map json) { this.trainingPlanDetailId = json['trainingPlanDetailId']; @@ -35,6 +36,7 @@ class TrainingPlanDetail { "parallel": this.parallel, "dayId": this.dayId, "day": this.day, + "summary": this.summary }; @override diff --git a/lib/repository/mautic_repository.dart b/lib/repository/mautic_repository.dart new file mode 100644 index 0000000..f00136b --- /dev/null +++ b/lib/repository/mautic_repository.dart @@ -0,0 +1,49 @@ +import 'package:intl/intl.dart'; +import 'package:aitrainer_app/model/cache.dart'; +import 'package:aitrainer_app/model/mautic.dart'; +import 'package:aitrainer_app/repository/customer_repository.dart'; +import 'package:aitrainer_app/service/mautic.dart'; +import 'package:aitrainer_app/util/app_language.dart'; + +class MauticRepository { + final CustomerRepository customerRepository; + + const MauticRepository({required this.customerRepository}); + + Future sendMauticSubscription() async { + Mautic mautic = Mautic(); + mautic.formId = 2; + mautic.databaseId = Cache().userLoggedIn!.customerId!; + mautic.firstname = customerRepository.customer!.firstname == null ? "" : customerRepository.customer!.firstname!; + mautic.lastname = customerRepository.customer!.name == null ? "" : customerRepository.customer!.name!; + mautic.email = customerRepository.customer!.email == null ? "" : customerRepository.customer!.email!; + if (mautic.email == null || mautic.email!.contains("privaterelay.appleid.com")) { + return; + } + mautic.fitnessLevel = customerRepository.customer!.fitnessLevel == null ? "" : customerRepository.customer!.fitnessLevel!; + mautic.goal = customerRepository.customer!.goal == null ? "" : customerRepository.customer!.goal!; + mautic.subscriptionDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(DateTime.now()); + mautic.language = AppLanguage().appLocal.languageCode; + + await MauticApi().sendMauticForm(mautic); + + customerRepository.customer!.syncedDate = DateTime.now(); + await customerRepository.saveCustomer(); + } + + Future sendMauticDataChange() async { + Mautic mautic = Mautic(); + mautic.formId = 3; + mautic.databaseId = Cache().userLoggedIn!.customerId!; + mautic.firstname = customerRepository.customer!.firstname == null ? "" : customerRepository.customer!.firstname!; + mautic.lastname = customerRepository.customer!.name == null ? "" : customerRepository.customer!.name!; + mautic.email = customerRepository.customer!.email == null ? "" : customerRepository.customer!.email!; + if (mautic.email == null || mautic.email!.contains("privaterelay.appleid.com")) { + return; + } + mautic.fitnessLevel = customerRepository.customer!.fitnessLevel == null ? "" : customerRepository.customer!.fitnessLevel!; + mautic.goal = customerRepository.customer!.goal == null ? "" : customerRepository.customer!.goal!; + + await MauticApi().sendMauticForm(mautic); + } +} diff --git a/lib/repository/training_plan_repository.dart b/lib/repository/training_plan_repository.dart index 640e1f6..0072069 100644 --- a/lib/repository/training_plan_repository.dart +++ b/lib/repository/training_plan_repository.dart @@ -63,6 +63,7 @@ class TrainingPlanRepository { TrainingPlan? trainingPlan = this.getTrainingPlanById(trainingPlanId); if (trainingPlan == null || trainingPlan.details == null) { + print("trainingPlan null"); return null; } @@ -274,14 +275,26 @@ class TrainingPlanRepository { bool isWoman = Cache().userLoggedIn!.sex == "w"; - if (Cache().userLoggedIn!.fitnessLevel == FitnessState.beginner) { - trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner") : getTrainingPlanByInternalName("beginner_man"); - } else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.intermediate) { - trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner_split") : getTrainingPlanByInternalName("beginner_split"); - } else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.advanced) { - trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_advanced") : getTrainingPlanByInternalName("man_routine4"); + if (Cache().userLoggedIn!.goal == "shape_forming") { + if (Cache().userLoggedIn!.fitnessLevel == FitnessState.beginner) { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner") : getTrainingPlanByInternalName("man_routine1"); + } else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.intermediate) { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner_split") : getTrainingPlanByInternalName("man_routine3"); + } else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.advanced) { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_advanced") : getTrainingPlanByInternalName("man_routine4"); + } else { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("man_routine2") : getTrainingPlanByInternalName("man_routine2"); + } } else { - trainingPlanId = isWoman ? getTrainingPlanByInternalName("5day") : getTrainingPlanByInternalName("5day"); + if (Cache().userLoggedIn!.fitnessLevel == FitnessState.beginner) { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner") : getTrainingPlanByInternalName("beginner_man"); + } else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.intermediate) { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner_split") : getTrainingPlanByInternalName("man_foundation"); + } else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.advanced) { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_advanced") : getTrainingPlanByInternalName("basic_mass_building"); + } else { + trainingPlanId = isWoman ? getTrainingPlanByInternalName("man_routine2") : getTrainingPlanByInternalName("mass_building"); + } } print("Generated plan $trainingPlanId fitness ${Cache().userLoggedIn!.fitnessLevel} - ${FitnessState.beginner}"); @@ -290,6 +303,7 @@ class TrainingPlanRepository { CustomerTrainingPlan? customerTrainingPlan = activateTrainingPlan(trainingPlanId); if (customerTrainingPlan != null) { Cache().myTrainingPlan = customerTrainingPlan; + Cache().saveMyTrainingPlan(); } } } diff --git a/lib/service/mautic.dart b/lib/service/mautic.dart new file mode 100644 index 0000000..3abab2e --- /dev/null +++ b/lib/service/mautic.dart @@ -0,0 +1,29 @@ +import 'dart:io'; + +import 'package:aitrainer_app/model/mautic.dart'; +import 'package:aitrainer_app/service/logging.dart'; + +class MauticApi with Logging { + final String mauticUrl = "https://mautic.aitrainer.app/form/submit?formId="; + + Future sendMauticForm(Mautic model) async { + final String body = model.toForm(); + log(" ===== mautic subscription:" + body); + HttpClient client = new HttpClient(); + + String url = mauticUrl + model.formId.toString(); + + var uri = Uri.parse(url); + final HttpClientRequest request = await client.postUrl(uri); + request.headers.set('Content-Type', 'application/x-www-form-urlencoded'); + request.headers.set('cache-control', 'no-cache'); + + request.write(body); + HttpClientResponse result = await request.close(); + client.close(); + if (!(result.statusCode == 200 || result.statusCode == 302)) { + trace("mautic response: ${result.statusCode}"); + throw Exception("Network error, try again later!"); + } + } +} diff --git a/lib/util/enums.dart b/lib/util/enums.dart index 4277ff0..0660e94 100644 --- a/lib/util/enums.dart +++ b/lib/util/enums.dart @@ -57,7 +57,8 @@ enum TrackingEvent { training_plan_execute, training_plan_finished, training_plan_custom, - trial + trial, + feedback_email } T enumFromString(Iterable values, String value) { @@ -103,3 +104,11 @@ extension ExerciseTypeTrainingPlanStateExt on ExerciseTypeTrainingPlanState { bool equalsTo(ExerciseTypeTrainingPlanState state) => this.toString() == state.toString(); bool equalsStringTo(String state) => this.toStr() == state; } + +enum ExerciseSaveType { test, training, test_set } + +extension ExerciseSaveTypeExt on ExerciseSaveType { + String toStr() => this.toString().split(".").last; + bool equalsTo(ExerciseSaveType type) => this.toString() == type.toString(); + bool equalsStringTo(String type) => this.toStr() == type; +} diff --git a/lib/util/track.dart b/lib/util/track.dart index 5b0dd7a..46115b9 100644 --- a/lib/util/track.dart +++ b/lib/util/track.dart @@ -5,6 +5,7 @@ import 'package:aitrainer_app/service/tracking_service.dart'; import 'package:aitrainer_app/util/enums.dart'; import 'package:aitrainer_app/model/tracking.dart' as model; import 'package:firebase_analytics/firebase_analytics.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flurry_data/flurry_data.dart'; import 'package:flutter_uxcam/flutter_uxcam.dart'; @@ -21,7 +22,7 @@ class Track with Logging { void track(TrackingEvent event, {String eventValue = ""}) { analytics.logEvent(name: event.enumToString(), parameters: {"value": eventValue}); if (!isInDebugMode) { - FlurryData.logEvent(event.toString()); + FlurryData.logEvent(event.enumToString()); // Smartlook.setGlobalEventProperty(event.toString(), eventValue, false); FlutterUxcam.logEventWithProperties(event.enumToString(), {"value": eventValue}); model.Tracking tracking = model.Tracking(); @@ -32,6 +33,7 @@ class Track with Logging { tracking.eventValue = eventValue; } tracking.dateAdd = DateTime.now(); + FirebaseMessaging.instance.subscribeToTopic(event.enumToString()); TrackingApi().saveTracking(tracking); } } diff --git a/lib/view/account.dart b/lib/view/account.dart index 72b46c3..fbc7c8d 100644 --- a/lib/view/account.dart +++ b/lib/view/account.dart @@ -65,7 +65,7 @@ class AccountPage extends StatelessWidget with Trans { return ListView(padding: EdgeInsets.only(top: 35), children: [ ListTile( leading: Common.badgedIcon(Colors.grey, Icons.perm_identity, "personalData"), //Icon(Icons.perm_identity), - subtitle: Text(t("Profile")), + subtitle: Text(t("Profile") + " " + t("and") + " " + t("Sport")), title: TextButton( child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text(customerName, style: TextStyle(color: Colors.blue)), @@ -108,7 +108,7 @@ class AccountPage extends StatelessWidget with Trans { ), ListTile( leading: Common.badgedIcon(Colors.grey, Icons.perm_contact_cal, "FitnessLevel"), //Icon(Icons.perm_contact_cal), - subtitle: Text(t("Activity") + " " + t("and") + " " + t("Sport")), + subtitle: Text(t("Activity")), title: TextButton( child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text(fitnessLevel, style: TextStyle(color: Colors.blue)), diff --git a/lib/view/customer_bodytype_animation.dart b/lib/view/customer_bodytype_animation.dart index ad90ae5..8a31e82 100644 --- a/lib/view/customer_bodytype_animation.dart +++ b/lib/view/customer_bodytype_animation.dart @@ -7,6 +7,7 @@ import 'package:aitrainer_app/repository/customer_repository.dart'; import 'package:aitrainer_app/util/enums.dart'; import 'package:aitrainer_app/util/trans.dart'; import 'package:aitrainer_app/widgets/app_bar.dart'; +import 'package:aitrainer_app/widgets/app_bar_min.dart'; import 'package:aitrainer_app/widgets/dialog_html.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -34,9 +35,13 @@ class _CustomerBodyTypeAnimationPageState extends State with Trans { ScaffoldMessenger.of(context).showSnackBar( SnackBar(backgroundColor: Colors.orange, content: Text(state.message, style: TextStyle(color: Colors.white)))); } else if (state is CustomerSaveSuccess) { - Navigator.of(context).pop(); - Navigator.of(context).pushNamed("customerSexPage", arguments: changeBloc.customerRepository); + if (fulldata) { + Navigator.of(context).pop(); + } else { + Navigator.of(context).popAndPushNamed("customerSexPage", arguments: changeBloc.customerRepository); + } } }, builder: (context, state) { @@ -103,15 +103,15 @@ class _CustomerFitnessPageState extends State with Trans { changeBloc.add(CustomerSave()), } }, - backgroundColor: Color(0xffb4f500), + backgroundColor: Colors.orange[600], icon: Icon( CustomIcon.save, - color: Colors.black, + color: Colors.white, size: 26, ), label: Text( fulldata ? t("Save") : t("Next"), - style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.white), ), ), ); @@ -141,46 +141,19 @@ class _CustomerFitnessPageState extends State with Trans { SizedBox( height: h, ), - getButton("Beginner", "I am beginner", FitnessState.beginner), SizedBox( height: h, ), getButton("Intermediate", "I am intermediate", FitnessState.intermediate), - SizedBox( height: h, ), getButton("Advanced", "I am advanced", FitnessState.advanced), - SizedBox( height: h, ), getButton("Professional", "I am professional", FitnessState.professional), - - /* Divider(), - Text( - t("Your Primary Sport") + ":", - textAlign: TextAlign.center, - style: GoogleFonts.archivoBlack( - color: Colors.orange, - fontSize: 20, - ), - ), */ - //getSport(changeBloc), - /* Divider(), - ElevatedButton( - style: ElevatedButton.styleFrom( - onPrimary: Colors.white, - primary: Colors.orange, - ), - child: Text(fulldata ? t("Save") : t("Next")), - onPressed: () => { - changeBloc.add(CustomerSave()), - Navigator.of(context).pop(), - if (!fulldata) {Navigator.of(context).pushNamed("customerBodyTypePage", arguments: customerRepository)} - }, - ) */ ], ), ); @@ -233,98 +206,6 @@ class _CustomerFitnessPageState extends State with Trans { side: BorderSide(width: 4, color: Colors.white24), borderRadius: BorderRadius.circular(12), ); - //return return returnCode; } - - Widget getSport(CustomerChangeBloc bloc) { - Sport? selected = bloc.selectedSport; - return Container( - padding: EdgeInsets.only(left: 65, right: 65), - child: DropdownSearch( - dropdownSearchDecoration: InputDecoration( - contentPadding: EdgeInsets.only(left: 15, top: 5, bottom: 5), - labelText: t("Sport"), - labelStyle: GoogleFonts.inter(fontSize: 16, color: Colors.indigo), - //fillColor: Colors.black38, - filled: false, - border: OutlineInputBorder( - gapPadding: 2.0, - borderRadius: BorderRadius.circular(12.0), - borderSide: BorderSide(color: Colors.blue, width: 0.4), - ), - ), - mode: Mode.MENU, - compareFn: (Sport? i, Sport? s) { - if (i == null || s == null) { - return false; - } else { - return i.sportId == s.sportId; - } - }, - showSelectedItem: true, - selectedItem: selected, - itemAsString: (data) => t(data!.sportNameTranslation), - onChanged: (data) { - bloc.add(CustomerSportChange(sport: data!)); - }, - dropdownBuilder: _customDropDownItem, - popupItemBuilder: _customMenuBuilder, - popupBarrierColor: Colors.white10, - //popupBackgroundColor: Colors.yellow, - items: Cache().getSports(), - dropDownButton: Icon( - Icons.arrow_drop_down, - color: Colors.indigo, - ), - )); - //items: FitnessItem().toList())); - } - - Widget _customMenuBuilder(BuildContext context, Sport? sport, bool isSelected) { - return Container( - decoration: !isSelected - ? BoxDecoration(color: Colors.grey[300]) - : BoxDecoration( - border: Border.all(color: Colors.blue), - borderRadius: BorderRadius.circular(12), - color: Colors.grey[100], - ), - child: ListTile( - selected: isSelected, - title: Text( - t(sport!.sportNameTranslation), - style: GoogleFonts.archivoBlack(fontSize: 20, color: Colors.blue[600]), - ), - subtitle: Text( - t(sport.name), - style: GoogleFonts.inter(fontSize: 12, color: Colors.blue[600]), - ), - ), - ); - } - - Widget _customDropDownItem(BuildContext context, Sport? item, String itemDesignation) { - return Container( - child: (item == null) - ? ListTile( - contentPadding: EdgeInsets.all(0), - title: Text( - t("No item selected"), - style: GoogleFonts.inter(fontSize: 14, color: Colors.blue[600]), - ), - ) - : ListTile( - contentPadding: EdgeInsets.all(0), - title: Text( - t(item.sportNameTranslation), - style: GoogleFonts.archivoBlack(fontSize: 20, color: Colors.blue[600]), - ), - subtitle: Text( - t(item.name), - style: GoogleFonts.inter(fontSize: 12, color: Colors.blue[600]), - ), - ), - ); - } } diff --git a/lib/view/customer_goal_page.dart b/lib/view/customer_goal_page.dart index 2e00963..06c0fce 100644 --- a/lib/view/customer_goal_page.dart +++ b/lib/view/customer_goal_page.dart @@ -81,7 +81,7 @@ class _CustomerGoalPage extends State with Trans { customerRepository = CustomerRepository(); } PreferredSizeWidget _bar = AppBarMin( - back: false, + back: true, ); if (!fulldata) { _bar = AppBarProgress(max: 14, min: 0); @@ -107,7 +107,11 @@ class _CustomerGoalPage extends State with Trans { ScaffoldMessenger.of(context).showSnackBar( SnackBar(backgroundColor: Colors.orange, content: Text(state.message, style: TextStyle(color: Colors.white)))); } else if (state is CustomerSaveSuccess) { - Navigator.of(context).pushNamed("customerFitnessPage", arguments: changeBloc.customerRepository); + if (fulldata) { + Navigator.of(context).pop(); + } else { + Navigator.of(context).popAndPushNamed("customerFitnessPage", arguments: changeBloc.customerRepository); + } } }, builder: (context, state) { @@ -136,15 +140,15 @@ class _CustomerGoalPage extends State with Trans { changeBloc.add(CustomerSave()), } }, - backgroundColor: Color(0xffb4f500), + backgroundColor: Colors.orange[600], icon: Icon( CustomIcon.save, - color: Colors.black, + color: Colors.white, size: 26, ), label: Text( fulldata ? t("Save") : t("Next"), - style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.white), ), ), ); diff --git a/lib/view/customer_height_page.dart b/lib/view/customer_height_page.dart index b8d9410..afba844 100644 --- a/lib/view/customer_height_page.dart +++ b/lib/view/customer_height_page.dart @@ -64,8 +64,11 @@ class _CustomerHeightPageState extends State with Trans { ScaffoldMessenger.of(context).showSnackBar( SnackBar(backgroundColor: Colors.orange, content: Text(state.message, style: TextStyle(color: Colors.white)))); } else if (state is CustomerSaveSuccess) { - Navigator.of(context).pop(); - Navigator.of(context).pushNamed("registration", arguments: changeBloc.customerRepository); + if (fulldata) { + Navigator.of(context).pop(); + } else { + Navigator.of(context).popAndPushNamed("registration", arguments: changeBloc.customerRepository); + } } }, builder: (context, state) { @@ -76,15 +79,15 @@ class _CustomerHeightPageState extends State with Trans { )), floatingActionButton: FloatingActionButton.extended( onPressed: () => changeBloc.add(CustomerSaveHeight()), - backgroundColor: Color(0xffb4f500), + backgroundColor: Colors.orange[600], icon: Icon( CustomIcon.save, - color: Colors.black, + color: Colors.white, size: 26, ), label: Text( fulldata ? t("Save") : t("Finish"), - style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.white), ), ), ); diff --git a/lib/view/customer_modify_page.dart b/lib/view/customer_modify_page.dart index 13bce29..5ce0475 100644 --- a/lib/view/customer_modify_page.dart +++ b/lib/view/customer_modify_page.dart @@ -3,7 +3,10 @@ import 'dart:collection'; import 'package:aitrainer_app/bloc/account/account_bloc.dart'; import 'package:aitrainer_app/bloc/customer_change/customer_change_bloc.dart'; import 'package:aitrainer_app/library/custom_icon_icons.dart'; +import 'package:aitrainer_app/library/dropdown_search/dropdown_search.dart'; import 'package:aitrainer_app/model/cache.dart'; +import 'package:aitrainer_app/model/sport.dart'; +import 'package:aitrainer_app/util/app_language.dart'; import 'package:aitrainer_app/util/enums.dart'; import 'package:aitrainer_app/util/trans.dart'; import 'package:aitrainer_app/widgets/app_bar_min.dart'; @@ -385,10 +388,119 @@ class CustomerModifyPage extends StatelessWidget with Trans { }, ), Divider(), + Divider(), + Text( + t("Your Primary Sport") + ":", + textAlign: TextAlign.center, + style: GoogleFonts.archivoBlack( + color: Colors.orange, + fontSize: 20, + ), + ), + getSport(customerBloc), + Divider(), ], ), ), ), ); } + + Widget getSport(CustomerChangeBloc bloc) { + Sport? selected = bloc.selectedSport; + + return Container( + padding: EdgeInsets.only(left: 65, right: 65), + child: DropdownSearch( + dropdownSearchDecoration: InputDecoration( + contentPadding: EdgeInsets.only(left: 15, top: 5, bottom: 5), + labelText: t("Sport"), + labelStyle: GoogleFonts.inter(fontSize: 16, color: Colors.indigo), + //fillColor: Colors.black38, + filled: false, + border: OutlineInputBorder( + gapPadding: 2.0, + borderRadius: BorderRadius.circular(12.0), + borderSide: BorderSide(color: Colors.blue, width: 0.4), + ), + ), + mode: Mode.MENU, + compareFn: (Sport? i, Sport? s) { + if (i == null || s == null) { + return false; + } else { + return i.sportId == s.sportId; + } + }, + showSelectedItem: true, + selectedItem: selected, + itemAsString: (data) => data!.nameTranslations[AppLanguage().appLocal.toString()] != null + ? data.nameTranslations[AppLanguage().appLocal.toString()]! + : data.name, + onChanged: (data) { + bloc.add(CustomerSportChange(sport: data!)); + }, + dropdownBuilder: _customDropDownItem, + popupItemBuilder: _customMenuBuilder, + popupBarrierColor: Colors.white10, + //popupBackgroundColor: Colors.yellow, + items: Cache().getSports(), + dropDownButton: Icon( + Icons.arrow_drop_down, + color: Colors.indigo, + ), + )); + //items: FitnessItem().toList())); + } + + Widget _customMenuBuilder(BuildContext context, Sport? sport, bool isSelected) { + return Container( + decoration: !isSelected + ? BoxDecoration(color: Colors.grey[300]) + : BoxDecoration( + border: Border.all(color: Colors.blue), + borderRadius: BorderRadius.circular(12), + color: Colors.grey[100], + ), + child: ListTile( + selected: isSelected, + title: Text( + sport!.nameTranslations[AppLanguage().appLocal.toString()] != null + ? sport.nameTranslations[AppLanguage().appLocal.toString()]! + : sport.name, + style: GoogleFonts.archivoBlack(fontSize: 20, color: Colors.blue[600]), + ), + subtitle: Text( + sport.name, + style: GoogleFonts.inter(fontSize: 12, color: Colors.blue[600]), + ), + ), + ); + } + + Widget _customDropDownItem(BuildContext context, Sport? item, String itemDesignation) { + return Container( + child: (item == null) + ? ListTile( + contentPadding: EdgeInsets.all(0), + title: Text( + t("No item selected"), + style: GoogleFonts.inter(fontSize: 14, color: Colors.blue[600]), + ), + ) + : ListTile( + contentPadding: EdgeInsets.all(0), + title: Text( + item.nameTranslations[AppLanguage().appLocal.toString()] != null + ? item.nameTranslations[AppLanguage().appLocal.toString()]! + : item.name, + style: GoogleFonts.archivoBlack(fontSize: 20, color: Colors.blue[600]), + ), + subtitle: Text( + item.name, + style: GoogleFonts.inter(fontSize: 12, color: Colors.blue[600]), + ), + ), + ); + } } diff --git a/lib/view/customer_sex_page.dart b/lib/view/customer_sex_page.dart index 5cef9d8..55a9178 100644 --- a/lib/view/customer_sex_page.dart +++ b/lib/view/customer_sex_page.dart @@ -64,8 +64,11 @@ class _CustomerSexPageState extends State with Trans { ScaffoldMessenger.of(context).showSnackBar( SnackBar(backgroundColor: Colors.orange, content: Text(state.message, style: TextStyle(color: Colors.white)))); } else if (state is CustomerSaveSuccess) { - Navigator.of(context).pop(); - Navigator.of(context).pushNamed("customerWeightPage", arguments: changeBloc.customerRepository); + if (fulldata) { + Navigator.of(context).pop(); + } else { + Navigator.of(context).popAndPushNamed("customerWeightPage", arguments: changeBloc.customerRepository); + } } }, builder: (context, state) { @@ -84,15 +87,15 @@ class _CustomerSexPageState extends State with Trans { onPressed: () => { changeBloc.add(CustomerSaveSex()), }, - backgroundColor: Color(0xffb4f500), + backgroundColor: Colors.orange[600], icon: Icon( CustomIcon.save, - color: Colors.black, + color: Colors.white, size: 26, ), label: Text( fulldata ? t("Save") : t("Next"), - style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.white), ), ), ); diff --git a/lib/view/customer_weight_page.dart b/lib/view/customer_weight_page.dart index 25ee9cd..1f5bd2d 100644 --- a/lib/view/customer_weight_page.dart +++ b/lib/view/customer_weight_page.dart @@ -1,7 +1,6 @@ import 'package:aitrainer_app/bloc/customer_change/customer_change_bloc.dart'; import 'package:aitrainer_app/library/custom_icon_icons.dart'; -import 'package:aitrainer_app/util/app_localization.dart'; import 'package:aitrainer_app/repository/customer_repository.dart'; import 'package:aitrainer_app/util/trans.dart'; import 'package:aitrainer_app/widgets/app_bar_min.dart'; @@ -65,8 +64,11 @@ class _CustomerWeightPageState extends State with Trans { ScaffoldMessenger.of(context).showSnackBar( SnackBar(backgroundColor: Colors.orange, content: Text(state.message, style: TextStyle(color: Colors.white)))); } else if (state is CustomerSaveSuccess) { - Navigator.of(context).pop(); - Navigator.of(context).pushNamed("customerHeightPage", arguments: changeBloc.customerRepository); + if (fulldata) { + Navigator.of(context).pop(); + } else { + Navigator.of(context).popAndPushNamed("customerHeightPage", arguments: changeBloc.customerRepository); + } } }, builder: (context, state) { @@ -85,15 +87,15 @@ class _CustomerWeightPageState extends State with Trans { onPressed: () => { changeBloc.add(CustomerSaveWeight()), }, - backgroundColor: Color(0xffb4f500), + backgroundColor: Colors.orange[600], icon: Icon( CustomIcon.save, - color: Colors.black, + color: Colors.white, size: 26, ), label: Text( fulldata ? t("Save") : t("Next"), - style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.white), ), ), ); diff --git a/lib/view/customer_welcome_page.dart b/lib/view/customer_welcome_page.dart index 3f37c60..cf9b164 100644 --- a/lib/view/customer_welcome_page.dart +++ b/lib/view/customer_welcome_page.dart @@ -1,4 +1,3 @@ -import 'package:aitrainer_app/library/button_animations.dart'; import 'package:aitrainer_app/util/trans.dart'; import 'package:aitrainer_app/widgets/app_bar_min.dart'; import 'package:flutter/material.dart'; diff --git a/lib/view/exercise_control_page.dart b/lib/view/exercise_control_page.dart index 9b13066..5c42e3f 100644 --- a/lib/view/exercise_control_page.dart +++ b/lib/view/exercise_control_page.dart @@ -231,7 +231,7 @@ class _ExerciseControlPage extends State with Trans { Divider(), numberPickForm(exerciseBloc, 3), SizedBox( - height: 80, + height: 120, ) ]), )), @@ -263,12 +263,10 @@ class _ExerciseControlPage extends State with Trans { } Widget numberPickForm(ExerciseControlBloc exerciseBloc, int step) { - final String strTimes = step == 2 ? exerciseBloc.origQuantity.toStringAsFixed(0) : "max."; - //print("step $step, quantity ${exerciseBloc.origQuantity}"); + final String strTimes = step == 2 ? exerciseBloc.controlList[step - 1].quantity!.toStringAsFixed(0) : "max."; String title = (step + 1).toString() + "/4 " + t("Control Exercise:"); LinkedHashMap args = LinkedHashMap(); - final TutorialBloc tutorialBloc = BlocProvider.of(context); List listWidgets = [ Text( @@ -294,7 +292,7 @@ class _ExerciseControlPage extends State with Trans { children: [ TextSpan(text: t("Please repeat with ")), TextSpan( - text: exerciseBloc.unitQuantity.toStringAsFixed(0) + + text: exerciseBloc.controlList[step - 1].unitQuantity!.toStringAsFixed(0) + " " + exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit!, style: GoogleFonts.inter( @@ -324,7 +322,7 @@ class _ExerciseControlPage extends State with Trans { NumberPickerWidget( minValue: 0, maxValue: 200, - initalValue: exerciseBloc.origQuantity.round(), + initalValue: exerciseBloc.controlList[step - 1].quantity!.round(), unit: t("reps"), color: Colors.yellow[50]!, onChange: (value) => {exerciseBloc.add(ExerciseControlQuantityChange(quantity: value.toDouble(), step: step))}), @@ -335,12 +333,6 @@ class _ExerciseControlPage extends State with Trans { onSurface: Colors.blueAccent, ), onPressed: () { - if (tutorialBloc.isActive) { - if (!tutorialBloc.checkAction("Save")) { - return; - } - } - exerciseBloc.add(ExerciseControlSubmit(step: step)); if (step == 3) { Navigator.of(context).pop(); @@ -354,7 +346,7 @@ class _ExerciseControlPage extends State with Trans { children: [ Image.asset('asset/icon/gomb_orange_c.png', width: 140, height: 60), Text( - t("Save"), + t("Done!"), style: TextStyle(fontSize: 16, color: Colors.white), ), ], @@ -436,9 +428,9 @@ class _UnitQuantityControlState extends State with Trans { height: 20, ), NumberPickerWidget( - minValue: (widget.exerciseBloc.unitQuantity - 30).round(), - maxValue: (widget.exerciseBloc.unitQuantity + 30).round(), - initalValue: widget.exerciseBloc.unitQuantity.round(), + minValue: (widget.exerciseBloc.controlList[widget.step - 1].unitQuantity! - 30).round(), + maxValue: (widget.exerciseBloc.controlList[widget.step - 1].unitQuantity! + 30).round(), + initalValue: widget.exerciseBloc.controlList[widget.step - 1].unitQuantity!.round(), unit: t("kg"), color: Colors.yellow[50]!, onChange: (value) => { @@ -452,9 +444,9 @@ class _UnitQuantityControlState extends State with Trans { onTap: () => { if (changedValue == null) { - changedValue = widget.exerciseBloc.unitQuantity, + changedValue = widget.exerciseBloc.controlList[widget.step - 1].unitQuantity, }, - //print("Changed new value $changedValue"), + print("Changed new value $changedValue, step ${widget.step}"), widget.exerciseBloc.add(ExerciseControlUnitQuantityChange(quantity: changedValue!.toDouble(), step: widget.step)), Navigator.of(context).pop(), }, diff --git a/lib/view/exercise_new_page.dart b/lib/view/exercise_new_page.dart index 65a8516..ba9cf0c 100644 --- a/lib/view/exercise_new_page.dart +++ b/lib/view/exercise_new_page.dart @@ -8,6 +8,7 @@ import 'package:aitrainer_app/library/custom_icon_icons.dart'; import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/model/exercise_ability.dart'; import 'package:aitrainer_app/model/exercise_type.dart'; +import 'package:aitrainer_app/model/workout_menu_tree.dart'; import 'package:aitrainer_app/repository/customer_repository.dart'; import 'package:aitrainer_app/repository/exercise_repository.dart'; import 'package:aitrainer_app/service/logging.dart'; @@ -17,6 +18,7 @@ import 'package:aitrainer_app/widgets/bmi_widget.dart'; import 'package:aitrainer_app/widgets/bmr_widget.dart'; import 'package:aitrainer_app/widgets/dialog_common.dart'; import 'package:aitrainer_app/widgets/exercise_save.dart'; +import 'package:aitrainer_app/widgets/menu_image.dart'; import 'package:aitrainer_app/widgets/size_widget.dart'; import 'package:aitrainer_app/widgets/tutorial_widget.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -55,7 +57,9 @@ class _ExerciseNewPageState extends State with Trans, Logging { title: t("Warning"), descriptions: t(state.message), text: "OK", - onTap: () => Navigator.of(context).pushNamed("login"), + onTap: () => { + Navigator.of(context).pop(), + }, onCancel: () => { Navigator.of(context).pop(), }, @@ -114,10 +118,12 @@ class _ExerciseNewPageState extends State with Trans, Logging { return SizeWidget(exerciseBloc: exerciseBloc); } + WorkoutMenuTree? workoutTree = menuBloc.menuTreeRepository.getMenuItemByExerciseTypeId(exerciseType.exerciseTypeId); + return Scaffold( appBar: AppBarNav(depth: 1), body: Container( - padding: EdgeInsets.only(top: 10, left: 20, right: 20), + padding: EdgeInsets.only(), decoration: BoxDecoration( image: DecorationImage( image: AssetImage('asset/image/WT_black_background.jpg'), @@ -126,37 +132,38 @@ class _ExerciseNewPageState extends State with Trans, Logging { ), ), child: ExerciseSave( - exerciseName: exerciseBloc.exerciseRepository.exerciseType!.nameTranslation, - exerciseDescription: exerciseBloc.exerciseRepository.exerciseType!.descriptionTranslation, - exerciseTask: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit != null - ? t("Please take a relative bigger weight and repeat 12-20 times and do your best! MAXIMIZE it!") - : t("Please repeat as much times as you can! MAXIMIZE it!"), - unit: exerciseBloc.exerciseRepository.exerciseType!.unit, - unitQuantityUnit: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit, - hasUnitQuantity: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit != null, - onQuantityChanged: (value) { - exerciseBloc.add(ExerciseNewQuantityChange(quantity: value)); - }, - onUnitQuantityChanged: (value) => exerciseBloc.add(ExerciseNewQuantityUnitChange(quantity: value)), - //onSubmit: () => confirmationDialog(exerciseBloc, menuBloc), - exerciseTypeId: exerciseType.exerciseTypeId, - )), + exerciseName: exerciseBloc.exerciseRepository.exerciseType!.nameTranslation, + exerciseDescription: exerciseBloc.exerciseRepository.exerciseType!.descriptionTranslation, + exerciseTask: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit != null + ? t("Please take a relative bigger weight and repeat 12-20 times and do your best! MAXIMIZE it!") + : t("Please repeat as much times as you can! MAXIMIZE it!"), + unit: exerciseBloc.exerciseRepository.exerciseType!.unit, + unitQuantityUnit: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit, + hasUnitQuantity: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit != null, + onQuantityChanged: (value) { + exerciseBloc.add(ExerciseNewQuantityChange(quantity: value)); + }, + onUnitQuantityChanged: (value) => exerciseBloc.add(ExerciseNewQuantityUnitChange(quantity: value)), + //onSubmit: () => confirmationDialog(exerciseBloc, menuBloc), + exerciseTypeId: exerciseType.exerciseTypeId, + tip: ActivityDone.exerciseSaveTestTip, + menuImage: MenuImage( + imageName: workoutTree!.imageName, + workoutTreeId: workoutTree.id, + radius: 0, + ))), floatingActionButton: FloatingActionButton.extended( onPressed: () => save(exerciseBloc, menuBloc), - backgroundColor: Colors.orange[800], + backgroundColor: Colors.orange[600], icon: Icon( - CustomIcon.save, + CustomIcon.ok_circled, size: 20, ), label: Text( - t("Save"), - style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 12), + t("Done!"), + style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 16), ), ), - /* bottomNavigationBar: BottomBarMultipleExercises( - isSet: false, - exerciseTypeId: exerciseType.exerciseTypeId, - ), */ ); } @@ -195,6 +202,11 @@ class _ExerciseNewPageState extends State with Trans, Logging { return; } + if (bloc.quantity == -1 || bloc.unitQuantity == -1) { + bloc.add(ExerciseNewAddError(message: "Please type in a real number!")); + return; + } + String quantity = bloc.exerciseRepository.exercise!.quantity! % 1 == 0 ? bloc.exerciseRepository.exercise!.quantity!.round().toString() : bloc.exerciseRepository.exercise!.quantity!.toString(); @@ -209,9 +221,9 @@ class _ExerciseNewPageState extends State with Trans, Logging { // ignore: close_sinks final TestSetExecuteBloc executeBloc = BlocProvider.of(context); - final question = bloc.exerciseRepository.exercise!.quantity! == 12.0 - ? "Did you try the MAXIMUM what you can do? Are you sure we save the exercise with ONLY 12 repeats?" - : "Do you save this exercise with these parameters?"; +/* final question = bloc.exerciseRepository.exercise!.quantity! == 12.0 + ? "Did you try the MAXIMUM what you can do? Are you sure we save the exercise with ONLY 12 repeats?" */ + final question = "Do you save this exercise with these parameters?"; showCupertinoDialog( useRootNavigator: true, diff --git a/lib/view/mydevelopment_body_page.dart b/lib/view/mydevelopment_body_page.dart index dca6181..f866a83 100644 --- a/lib/view/mydevelopment_body_page.dart +++ b/lib/view/mydevelopment_body_page.dart @@ -37,7 +37,7 @@ class _MyDevelopmentBodyPage extends State with Trans, Co setContext(context); return DialogPremium( unlocked: Cache().hasPurchased, - unlockRound: 2, + unlockRound: 4, function: "My Whole Body Development", unlockedText: null, onTap: () => {Navigator.of(context).pop(), Navigator.of(context).pop()}, diff --git a/lib/view/mydevelopment_page.dart b/lib/view/mydevelopment_page.dart index 5a55dc3..8553ccf 100644 --- a/lib/view/mydevelopment_page.dart +++ b/lib/view/mydevelopment_page.dart @@ -163,7 +163,7 @@ class _MyDevelopmentPage extends State with Trans { builder: (BuildContext context) { return DialogPremium( unlocked: Cache().hasPurchased, - unlockRound: 3, + unlockRound: 12, function: "Predictions", unlockedText: null, onTap: () => {Navigator.of(context).pop()}, diff --git a/lib/view/registration.dart b/lib/view/registration.dart index 1f99566..532dd6c 100644 --- a/lib/view/registration.dart +++ b/lib/view/registration.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:aitrainer_app/bloc/account/account_bloc.dart'; import 'package:aitrainer_app/bloc/login/login_bloc.dart'; +import 'package:aitrainer_app/repository/customer_repository.dart'; import 'package:aitrainer_app/repository/training_plan_repository.dart'; import 'package:aitrainer_app/repository/user_repository.dart'; import 'package:aitrainer_app/util/trans.dart'; @@ -23,12 +24,23 @@ class RegistrationPage extends StatelessWidget with Trans { @override Widget build(BuildContext context) { final accountBloc = BlocProvider.of(context); + + CustomerRepository? customerRepository; + if (ModalRoute.of(context) != null && ModalRoute.of(context)!.settings.arguments != null) { + customerRepository = ModalRoute.of(context)!.settings.arguments as CustomerRepository; + print("CustomerFitness reg ${customerRepository.customer!.toJson()}"); + } + setContext(context); return Scaffold( appBar: AppBarMin(), body: BlocProvider( - create: (context) => - LoginBloc(userRepository: UserRepository(), accountBloc: accountBloc, context: context, isRegistration: true), + create: (context) => LoginBloc( + userRepository: UserRepository(), + accountBloc: accountBloc, + context: context, + isRegistration: true, + customerRepository: customerRepository), child: BlocConsumer(listener: (context, state) { if (state is LoginError) { ScaffoldMessenger.of(context).showSnackBar( @@ -67,7 +79,9 @@ class RegistrationPage extends StatelessWidget with Trans { } }, builder: (context, state) { final loginBloc = BlocProvider.of(context); - + if (customerRepository != null) { + print("Customer data ${customerRepository.customer!.toJson()}"); + } return ModalProgressHUD( child: loadForm(loginBloc, accountBloc), inAsyncCall: state is LoginLoading, diff --git a/lib/view/settings.dart b/lib/view/settings.dart index 9ccd6a0..98d01fd 100644 --- a/lib/view/settings.dart +++ b/lib/view/settings.dart @@ -1,5 +1,3 @@ -import 'dart:io'; - import 'package:aitrainer_app/bloc/menu/menu_bloc.dart'; import 'package:aitrainer_app/bloc/settings/settings_bloc.dart'; import 'package:aitrainer_app/bloc/tutorial/tutorial_bloc.dart'; @@ -19,8 +17,8 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart'; import 'package:toggle_switch/toggle_switch.dart'; -import 'package:flutter/services.dart'; -import 'dart:async'; +import 'package:mailto/mailto.dart'; +import 'package:url_launcher/url_launcher.dart'; // ignore: must_be_immutable class SettingsPage extends StatelessWidget with Trans { @@ -87,7 +85,7 @@ class SettingsPage extends StatelessWidget with Trans { //getTuturialBasic(settingsBloc), getTermsOfUse(), getPrivacy(), - getFaq(), + mailTo(), getVersion(), //getDevice(settingsBloc), ]); @@ -264,25 +262,40 @@ class SettingsPage extends StatelessWidget with Trans { ); } - Future _printAndCopy(String cmd) async { - print(cmd); - - await Clipboard.setData(ClipboardData(text: cmd)); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('Copied to Clipboard')), + ListTile mailTo() { + return ListTile( + leading: Icon(CustomIcon.mail_1), + title: TextButton( + child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + Text("Feedback email", style: TextStyle(color: Colors.indigo)), + Icon( + Icons.arrow_forward_ios, + color: Colors.indigo, + ), + ]), + style: TextButton.styleFrom( + backgroundColor: Colors.white70, + onSurface: Colors.grey, + ), + onPressed: () => { + launchMailto(), + Track().track(TrackingEvent.feedback_email), + }, + ), ); } - void link1() { - String? cmd; - String cmdSuffix; - if (Platform.isIOS) { - cmd = '/usr/bin/xcrun simctl openurl booted'; - } else if (Platform.isAndroid) { - cmd = '\$ANDROID_HOME/platform-tools/adb shell \'am start' - ' -a android.intent.action.VIEW' - ' -c android.intent.category.BROWSABLE -d'; - cmdSuffix = "'"; - } + launchMailto() async { + String from = Cache().userLoggedIn == null ? "" : Cache().userLoggedIn!.customerId!.toStringAsFixed(0); + final mailtoLink = Mailto( + to: ['service@workouttest.com'], + subject: 'Feedback from app: $from', + body: '', + ); + // Convert the Mailto instance into a string. + // Use either Dart's string interpolation + // or the toString() method. + print("Mailto: $mailtoLink"); + await launch('$mailtoLink'); } } diff --git a/lib/view/test_set_new.dart b/lib/view/test_set_new.dart index a8b246b..ce17367 100644 --- a/lib/view/test_set_new.dart +++ b/lib/view/test_set_new.dart @@ -3,13 +3,16 @@ import 'dart:collection'; import 'package:aitrainer_app/bloc/test_set_execute/test_set_execute_bloc.dart'; import 'package:aitrainer_app/bloc/test_set_new/test_set_new_bloc.dart'; import 'package:aitrainer_app/library/custom_icon_icons.dart'; +import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/model/exercise_plan_detail.dart'; import 'package:aitrainer_app/model/exercise_type.dart'; +import 'package:aitrainer_app/model/workout_menu_tree.dart'; import 'package:aitrainer_app/repository/exercise_repository.dart'; import 'package:aitrainer_app/util/trans.dart'; import 'package:aitrainer_app/widgets/app_bar.dart'; import 'package:aitrainer_app/widgets/bottom_bar_multiple_exercises.dart'; import 'package:aitrainer_app/widgets/exercise_save.dart'; +import 'package:aitrainer_app/widgets/menu_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:google_fonts/google_fonts.dart'; @@ -29,7 +32,6 @@ class TestSetNew extends StatelessWidget with Trans { return Scaffold( appBar: AppBarNav(depth: 1), body: Container( - padding: EdgeInsets.all(20), decoration: BoxDecoration( image: DecorationImage( image: AssetImage('asset/image/WT_black_background.jpg'), @@ -77,7 +79,7 @@ class TestSetNew extends StatelessWidget with Trans { backgroundColor: Colors.orange[800], icon: Icon(CustomIcon.save), label: Text( - t("Save"), + t("Done"), style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 16), ), ), @@ -89,6 +91,8 @@ class TestSetNew extends StatelessWidget with Trans { } Widget getExercises(TestSetNewBloc bloc) { + WorkoutMenuTree? workoutTree = + bloc.executeBloc.menuBloc.menuTreeRepository.getMenuItemByExerciseTypeId(bloc.exerciseType.exerciseTypeId); return ExerciseSave( exerciseName: bloc.exerciseType.nameTranslation, exerciseDescription: bloc.exerciseType.descriptionTranslation, @@ -103,6 +107,12 @@ class TestSetNew extends StatelessWidget with Trans { }, onUnitQuantityChanged: (value) => bloc.add(TestSetNewChangeQuantityUnit(quantity: value)), exerciseTypeId: bloc.exerciseType.exerciseTypeId, + tip: ActivityDone.exerciseSaveTestsetTip, + menuImage: MenuImage( + imageName: workoutTree!.imageName, + workoutTreeId: workoutTree.id, + radius: 0, + ), /* onSubmit: () { Navigator.of(context).pop(); bloc.add(TestSetNewSubmit()); diff --git a/lib/view/training_plan_activate_page.dart b/lib/view/training_plan_activate_page.dart index 5f146b1..cca0a8a 100644 --- a/lib/view/training_plan_activate_page.dart +++ b/lib/view/training_plan_activate_page.dart @@ -6,6 +6,7 @@ import 'package:aitrainer_app/library/custom_icon_icons.dart'; import 'package:aitrainer_app/library/tree_view.dart'; import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/model/training_plan.dart'; +import 'package:aitrainer_app/model/training_plan_detail.dart'; import 'package:aitrainer_app/model/workout_menu_tree.dart'; import 'package:aitrainer_app/util/app_language.dart'; import 'package:aitrainer_app/util/trans.dart'; @@ -58,7 +59,7 @@ class TrainingPlanActivatePage extends StatelessWidget with Trans { title: t("Warning"), descriptions: t(state.message), text: "OK", - onTap: () => Navigator.of(context).pushNamed("login"), + onTap: () => Navigator.of(context).pop(), onCancel: () => { Navigator.of(context).pop(), }, @@ -197,21 +198,45 @@ class TrainingPlanActivatePage extends StatelessWidget with Trans { icon: Icon(Icons.list_sharp), color: Colors.blue[800], ), - children: _getChildList(element, bloc), + children: _getDays(element, bloc), ))); }); return listWidget; } - List _getChildList(TrainingPlan plan, TrainingPlanBloc bloc) { + List _getDays(TrainingPlan plan, TrainingPlanBloc bloc) { + List listWidget = []; + + bloc.setMyTrainingPlan(plan); + bloc.activateTrainingPlanDays(); + bloc.trainingPlanDayNames.forEach((value) { + listWidget.add(Container( + margin: const EdgeInsets.only(left: 4.0), + child: TreeViewChild( + startExpanded: true, + parent: TreeviewParentWidget( + text: " * " + t("Training Day") + ": " + value, + fontSize: 16, + color: Colors.white, + icon: Icon(Icons.view_day), + backgroundColor: Colors.white24, + ), + children: _getChildList(plan, bloc, value), + ))); + }); + + return listWidget; + } + + List _getChildList(TrainingPlan plan, TrainingPlanBloc bloc, String dayName) { List list = []; bool restricted = (!plan.free && !Cache().hasPurchased); list.add(Card( margin: EdgeInsets.only(left: 10, top: 5), - color: Colors.white60, + color: Colors.white24, child: Container( padding: EdgeInsets.only(left: 10, right: 10), child: Column(children: [ @@ -262,7 +287,7 @@ class TrainingPlanActivatePage extends StatelessWidget with Trans { ), )) : Offstage(), - getPlanDetails(plan, bloc), + getPlanDetails(plan, bloc, dayName), ElevatedButton( style: ElevatedButton.styleFrom( onPrimary: Colors.white, @@ -371,13 +396,17 @@ class TrainingPlanActivatePage extends StatelessWidget with Trans { } } - Widget getPlanDetails(TrainingPlan plan, TrainingPlanBloc bloc) { + Widget getPlanDetails(TrainingPlan plan, TrainingPlanBloc bloc, String dayName) { return SfDataGrid( headerRowHeight: 30, - rowHeight: 60, + rowHeight: 70, + columnWidthMode: ColumnWidthMode.lastColumnFill, + defaultColumnWidth: 50, source: TrainingPlanDetailSource( plan: plan, menuBloc: bloc.menuBloc, + bloc: bloc, + dayName: dayName, onWeightTap: () => { showDialog( context: context, @@ -438,18 +467,23 @@ class TrainingPlanActivatePage extends StatelessWidget with Trans { columns: [ GridTextColumn( columnWidthMode: ColumnWidthMode.lastColumnFill, - maximumWidth: 160, + maximumWidth: 130, columnName: 'exerciseImage', label: Container( - color: Colors.green[50], + color: Colors.black38, padding: EdgeInsets.only(left: 8.0), alignment: Alignment.centerLeft, child: Text( t('Exercise'), + style: GoogleFonts.inter( + color: Colors.white, + fontWeight: FontWeight.bold, + ), textAlign: TextAlign.start, overflow: TextOverflow.ellipsis, ))), GridTextColumn( + maximumWidth: 0, visible: false, columnName: 'exerciseName', label: Container( @@ -462,47 +496,40 @@ class TrainingPlanActivatePage extends StatelessWidget with Trans { overflow: TextOverflow.ellipsis, ))), GridTextColumn( - maximumWidth: 40, - columnName: 'set', + maximumWidth: 60, + columnName: 'Set', label: Container( - color: Colors.green[50], + color: Colors.black38, padding: EdgeInsets.symmetric(horizontal: 2.0), alignment: Alignment.centerLeft, child: Text( t('Set'), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), overflow: TextOverflow.ellipsis, ))), GridTextColumn( - maximumWidth: 50, - columnName: 'repeats', + maximumWidth: 100, + columnWidthMode: ColumnWidthMode.fill, + columnName: 'Repeats', label: Container( - color: Colors.green[50], + color: Colors.black38, padding: EdgeInsets.symmetric(horizontal: 2.0), alignment: Alignment.centerLeft, child: Text( - t('Reps'), + t('Repeats'), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), overflow: TextOverflow.ellipsis, ))), GridTextColumn( maximumWidth: 60, - columnName: 'weight', + columnName: 'Weight', label: Container( - color: Colors.green[50], + color: Colors.black38, padding: EdgeInsets.symmetric(horizontal: 2.0), alignment: Alignment.centerLeft, child: Text( - t('Weight'), - overflow: TextOverflow.ellipsis, - ))), - GridTextColumn( - maximumWidth: 50, - columnName: 'day', - label: Container( - color: Colors.green[50], - padding: EdgeInsets.symmetric(horizontal: 8.0), - alignment: Alignment.centerLeft, - child: Text( - t('Day'), + t('Weight_'), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), overflow: TextOverflow.ellipsis, ))), ], @@ -512,19 +539,25 @@ class TrainingPlanActivatePage extends StatelessWidget with Trans { class TrainingPlanDetailSource extends DataGridSource { final TrainingPlan plan; + final TrainingPlanBloc bloc; final MenuBloc menuBloc; + final dayName; final VoidCallback onDropsetTap; final VoidCallback onWeightTap; final VoidCallback onRepeatTap; TrainingPlanDetailSource({ required this.plan, required this.menuBloc, + required this.bloc, + required this.dayName, required this.onDropsetTap, required this.onWeightTap, required this.onRepeatTap, }) { if (plan.details != null) { - dataGridRows = plan.details!.map((dataGridRow) { + List details = bloc.trainingPlanDetailSummary(plan, dayName); + + dataGridRows = details.map((dataGridRow) { WorkoutMenuTree? menuTree = menuBloc.menuTreeRepository.getMenuItemByExerciseTypeId(dataGridRow.exerciseTypeId); if (menuTree == null) { return DataGridRow(cells: []); @@ -539,9 +572,8 @@ class TrainingPlanDetailSource extends DataGridSource { )), DataGridCell(columnName: 'exerciseName', value: menuTree.name), DataGridCell(columnName: 'set', value: dataGridRow.set), - DataGridCell(columnName: 'reps', value: dataGridRow.repeats), + DataGridCell(columnName: 'reps', value: dataGridRow.summary!), DataGridCell(columnName: 'weight', value: dataGridRow.weight), - DataGridCell(columnName: 'day', value: dataGridRow.day), ]); }).toList(); } @@ -557,9 +589,9 @@ class TrainingPlanDetailSource extends DataGridSource { if (row.getCells().isEmpty) { return null; } - String name = row.getCells()[1].value; + String name = row.getCells()[1].value.toString(); return DataGridRowAdapter( - color: Colors.white60, + color: Colors.white12, cells: row.getCells().map((dataGridCell) { return Container( alignment: dataGridCell.columnName == "exerciseImage" ? Alignment.centerLeft : Alignment.centerLeft, @@ -573,8 +605,7 @@ class TrainingPlanDetailSource extends DataGridSource { name, maxLines: 3, overflow: TextOverflow.ellipsis, - style: - GoogleFonts.inter(fontSize: 10, color: Colors.yellow[600], fontWeight: FontWeight.bold, shadows: [ + style: GoogleFonts.inter(fontSize: 12, color: Colors.white, fontWeight: FontWeight.bold, shadows: [ Shadow( offset: Offset(2.0, 2.0), blurRadius: 6.0, @@ -590,7 +621,7 @@ class TrainingPlanDetailSource extends DataGridSource { }, child: Icon( CustomIcon.question_circle, - color: Colors.indigo[300], + color: Colors.white, )) : dataGridCell.columnName == "weight" && dataGridCell.value == -3 ? GestureDetector( @@ -608,12 +639,12 @@ class TrainingPlanDetailSource extends DataGridSource { }, child: Icon( CustomIcon.question_circle, - color: Colors.indigo[600], + color: Colors.white, )) : Text(dataGridCell.value.toString(), style: GoogleFonts.inter( fontSize: 14, - color: Colors.indigo, + color: Colors.white, fontWeight: FontWeight.bold, ))); }).toList()); diff --git a/lib/view/training_plan_execute.dart b/lib/view/training_plan_execute.dart index 7ad2875..be0b6b3 100644 --- a/lib/view/training_plan_execute.dart +++ b/lib/view/training_plan_execute.dart @@ -45,8 +45,20 @@ class _TrainingPlanExecuteState extends State with Trans { ), child: BlocConsumer(listener: (context, state) { if (state is TrainingPlanError) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(backgroundColor: Colors.orange, content: Text(state.message, style: TextStyle(color: Colors.white)))); + showDialog( + context: context, + builder: (BuildContext context) { + return DialogCommon( + warning: true, + title: t("Warning"), + descriptions: t(state.message), + text: "OK", + onTap: () => Navigator.of(context).pop(), + onCancel: () => { + Navigator.of(context).pop(), + }, + ); + }); } else if (state is TrainingPlanDayFinished) { bloc.celebrating = false; final HashMap args = HashMap(); @@ -368,7 +380,7 @@ class _ExerciseListState extends State with Trans { bloc.getMyPlan()!.days[widget.dayName] != null && bloc.getMyPlan()!.days[widget.dayName]!.isNotEmpty) { bloc.getMyPlan()!.days[widget.dayName]!.forEach((element) { - if (prev != null && prev!.exerciseTypeId != element.exerciseTypeId) { + if (prev == null || (prev != null && prev!.exerciseTypeId != element.exerciseTypeId)) { tiles.add(GestureDetector( onTap: () => bloc.getNext() != null ? executeExercise(bloc, bloc.getNext()!, context) : Navigator.of(context).pushNamed('home'), diff --git a/lib/view/training_plan_execute_page.dart b/lib/view/training_plan_execute_page.dart deleted file mode 100644 index 0f4bdb2..0000000 --- a/lib/view/training_plan_execute_page.dart +++ /dev/null @@ -1,914 +0,0 @@ -import 'dart:collection'; - -import 'package:aitrainer_app/bloc/training_plan/training_plan_bloc.dart'; -import 'package:aitrainer_app/library/custom_icon_icons.dart'; -import 'package:aitrainer_app/model/customer_training_plan_details.dart'; -import 'package:aitrainer_app/model/exercise_plan_detail.dart'; -import 'package:aitrainer_app/util/app_localization.dart'; -import 'package:aitrainer_app/util/trans.dart'; -import 'package:aitrainer_app/widgets/app_bar.dart'; -import 'package:aitrainer_app/widgets/dialog_common.dart'; -import 'package:aitrainer_app/widgets/dialog_html.dart'; -import 'package:aitrainer_app/widgets/menu_image.dart'; -import 'package:aitrainer_app/widgets/weight_control.dart'; -import 'package:badges/badges.dart'; -import 'package:extended_tabs/extended_tabs.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:google_fonts/google_fonts.dart'; -import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart'; -import 'package:timeline_tile/timeline_tile.dart'; - -// ignore: must_be_immutable -class TrainingPlanExecutePage extends StatefulWidget { - @override - _TrainingPlanExecutePageState createState() => _TrainingPlanExecutePageState(); -} - -class _TrainingPlanExecutePageState extends State with Trans { - final scrollController = ScrollController(); - TrainingPlanBloc? bloc; - - @override - Widget build(BuildContext context) { - final HashMap args = HashMap(); - bloc = BlocProvider.of(context); - bloc!.activateDays(); - setContext(context); - return Scaffold( - appBar: AppBarNav(depth: 0), - body: Container( - padding: EdgeInsets.all(20), - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('asset/image/WT_black_background.jpg'), - fit: BoxFit.cover, - alignment: Alignment.center, - ), - ), - child: BlocConsumer(listener: (context, state) { - if (state is TrainingPlanError) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(backgroundColor: Colors.orange, content: Text(state.message, style: TextStyle(color: Colors.white)))); - } else if (state is TrainingPlanDayFinished) { - bloc!.celebrating = false; - args["bloc"] = bloc; - args["day"] = bloc!.dayNames[bloc!.activeDayIndex]; - Navigator.of(context).pushNamed('myTrainingEvaluation', arguments: args); - } else if (state is TrainingPlanDayReadyToRestart) { - if (!bloc!.celebrating) { - showCupertinoDialog( - useRootNavigator: true, - context: context, - builder: (_) => CupertinoAlertDialog( - title: Text(t("The training is finished")), - content: Column(children: [Divider(), Text(t("Do you want to restart, or select a new Training Plan?"))]), - actions: [ - TextButton( - child: Text(t("New Training Plan"), textAlign: TextAlign.center), - onPressed: () => { - Navigator.pop(context), - Navigator.of(context).popAndPushNamed('myTrainingPlans'), - bloc!.restarting = false, - }), - TextButton( - child: Text(t("Restart")), - onPressed: () { - bloc!.restart(); - Navigator.pop(context); - Navigator.of(context).popAndPushNamed('home'); - }, - ) - ], - )); - } - } - }, builder: (context, state) { - return ModalProgressHUD( - child: ExerciseTabs(bloc: bloc!), - inAsyncCall: state is TrainingPlanLoading, - opacity: 0.5, - color: Colors.black54, - progressIndicator: CircularProgressIndicator(), - ); - }), - ), - floatingActionButton: FloatingActionButton.extended( - onPressed: () => { - args["bloc"] = bloc, - args["day"] = bloc!.dayNames[bloc!.activeDayIndex], - bloc!.getNext() != null - ? _ExerciseListState.executeExercise(bloc!, bloc!.getNext()!, context) - : Navigator.of(context).pushNamed('myTrainingEvaluation', arguments: args), - }, - backgroundColor: Colors.orange[800], - icon: Icon(CustomIcon.weight_hanging), - label: Text( - t("Training") + "!", - style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 16), - ), - ), - ); - } -} - -class ExerciseTabs extends StatefulWidget { - final TrainingPlanBloc bloc; - ExerciseTabs({required this.bloc}); - @override - _ExerciseTabs createState() => _ExerciseTabs(); -} - -class _ExerciseTabs extends State with TickerProviderStateMixin { - late TabController tabController; - - @override - void initState() { - super.initState(); - print("init TAB ${widget.bloc.dayNames.length} index ${widget.bloc.activeDayIndex}"); - tabController = TabController(length: widget.bloc.dayNames.length, vsync: this); - tabController.animateTo(widget.bloc.activeDayIndex, duration: Duration(milliseconds: 300)); - } - - @override - void dispose() { - tabController.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return getTabs(widget.bloc); - } - - Widget getTabs(TrainingPlanBloc bloc) { - return Column(children: [ - ExtendedTabBar( - indicator: BoxDecoration( - color: Colors.black87, - border: Border( - bottom: BorderSide(width: 4.0, color: Colors.blue), - top: BorderSide(width: 4.0, color: Colors.blue), - )), - labelPadding: EdgeInsets.only(left: 5, right: 5), - tabs: getTabNames(), - controller: tabController, - onTap: (index) => bloc.activeDayIndex = index, - ), - Expanded( - child: ExtendedTabBarView( - children: getExerciseLists(), - controller: tabController, - - /// if link is true and current tabbarview over scroll, - /// it will check and scroll ancestor or child tabbarView. - link: true, - - /// cache page count - /// default is 0. - /// if cacheExtent is 1, it has two pages in cache - /// null is infinity, it will cache all pages - cacheExtent: 0, - )), - ]); - } - - List getTabNames() { - List tabs = []; - widget.bloc.dayNames.forEach((element) { - final Widget widget = Container( - //height: 50, - padding: EdgeInsets.only(top: 2, left: 5, right: 5, bottom: 2), - color: Colors.white24, - child: RichText( - textScaleFactor: 0.8, - text: TextSpan( - style: GoogleFonts.inter( - fontSize: 14, - fontWeight: FontWeight.bold, - color: Colors.white, - ), - children: [ - TextSpan( - text: AppLocalizations.of(context)!.translate("Training Day") + ": \n", - style: GoogleFonts.inter( - fontSize: 14, - color: Colors.white, - shadows: [ - Shadow( - offset: Offset(5.0, 5.0), - blurRadius: 12.0, - color: Colors.black54, - ), - Shadow( - offset: Offset(-3.0, 3.0), - blurRadius: 12.0, - color: Colors.black54, - ), - ], - )), - TextSpan( - text: element, - style: GoogleFonts.inter( - fontSize: 14, - fontWeight: FontWeight.bold, - color: Colors.yellow[400], - shadows: [ - Shadow( - offset: Offset(5.0, 5.0), - blurRadius: 12.0, - color: Colors.black54, - ), - Shadow( - offset: Offset(-3.0, 3.0), - blurRadius: 12.0, - color: Colors.black54, - ), - ], - )), - ]))); - - tabs.add(Tab(child: widget)); - }); - return tabs; - } - - List getExerciseLists() { - List list = []; - widget.bloc.dayNames.forEach((element) { - list.add(ExerciseList(bloc: widget.bloc, dayName: element)); - }); - return list; - } -} - -class ExerciseList extends StatefulWidget { - final TrainingPlanBloc bloc; - final String dayName; - ExerciseList({required this.bloc, required this.dayName}); - - @override - _ExerciseListState createState() => _ExerciseListState(); -} - -class _ExerciseListState extends State with Trans { - final scrollController = ScrollController(); - double offset = 5; - - @override - void initState() { - WidgetsBinding.instance!.addPostFrameCallback((_) { - animate(); - }); - super.initState(); - } - - @override - void didUpdateWidget(ExerciseList page) { - super.didUpdateWidget(page); - WidgetsBinding.instance!.addPostFrameCallback((_) { - animate(); - }); - } - - void animate() { - offset = widget.bloc.getOffset(); - if (scrollController.hasClients) { - scrollController.animateTo(offset, duration: Duration(milliseconds: 300), curve: Curves.easeIn); - } - } - - @override - void dispose() { - scrollController.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - setContext(context); - return CustomScrollView(controller: scrollController, slivers: [ - SliverList(delegate: SliverChildListDelegate(getTiles(widget.bloc))), - ]); - } - - List getTiles(TrainingPlanBloc bloc) { - List tiles = []; - tiles.add(getStartTile(bloc)); - tiles.addAll(getExerciseTiles(bloc, context)); - if (bloc.getMyPlan() != null) tiles.add(getEndTile()); - return tiles; - } - - Widget getStartTile(TrainingPlanBloc bloc) { - String startText = ""; - String explainingText = ""; - if (null == bloc.getMyPlan()) { - startText = t("No Active Training Plan"); - explainingText = t("Please select one in the Training menu, or create your custom plan"); - } else { - startText = bloc.isStarted() ? t("Continue your training") : t("Start your training"); - explainingText = bloc.getMyPlan()!.name != null ? bloc.getMyPlan()!.name! : ""; - } - - return TimelineTile( - alignment: TimelineAlign.manual, - lineXY: 0.1, - isFirst: true, - afterLineStyle: const LineStyle( - color: Colors.orange, - thickness: 6, - ), - indicatorStyle: IndicatorStyle( - width: 40, - color: Colors.orange, - padding: const EdgeInsets.all(8), - iconStyle: IconStyle( - color: Colors.white, - iconData: Icons.emoji_flags_rounded, - ), - ), - endChild: Container( - padding: EdgeInsets.only(top: 30), - constraints: const BoxConstraints( - minHeight: 120, - ), - color: Colors.transparent, - child: RichText( - text: TextSpan( - style: GoogleFonts.inter( - fontSize: 14, - fontWeight: FontWeight.bold, - color: Colors.white, - ), - children: [ - TextSpan( - text: startText, - style: GoogleFonts.inter( - fontSize: 20, - fontWeight: FontWeight.bold, - color: Colors.yellow[400], - shadows: [ - Shadow( - offset: Offset(5.0, 5.0), - blurRadius: 12.0, - color: Colors.black54, - ), - Shadow( - offset: Offset(-3.0, 3.0), - blurRadius: 12.0, - color: Colors.black54, - ), - ], - )), - TextSpan( - text: "\n", - style: GoogleFonts.inter( - fontSize: 16, - color: Colors.white, - )), - TextSpan( - text: explainingText, - style: GoogleFonts.inter( - fontSize: 16, - color: Colors.white, - )), - ])), - ), - ); - } - - Widget getEndTile() { - return Container( - color: Colors.transparent, - child: TimelineTile( - alignment: TimelineAlign.manual, - lineXY: 0.1, - isLast: true, - beforeLineStyle: const LineStyle( - color: Colors.orange, - thickness: 6, - ), - indicatorStyle: IndicatorStyle( - width: 40, - color: Colors.orange, - padding: const EdgeInsets.all(8), - iconStyle: IconStyle( - color: Colors.white, - iconData: Icons.thumb_up, - ), - ), - endChild: Container( - padding: EdgeInsets.only(top: 50), - constraints: const BoxConstraints( - minHeight: 120, - ), - color: Colors.transparent, - child: RichText( - text: TextSpan( - style: GoogleFonts.inter( - fontSize: 14, - fontWeight: FontWeight.bold, - color: Colors.white, - ), - children: [ - TextSpan( - text: "Finish!", - style: GoogleFonts.inter( - fontSize: 20, - fontWeight: FontWeight.bold, - color: Colors.yellow[400], - shadows: [ - Shadow( - offset: Offset(5.0, 5.0), - blurRadius: 12.0, - color: Colors.black54, - ), - Shadow( - offset: Offset(-3.0, 3.0), - blurRadius: 12.0, - color: Colors.black54, - ), - ], - )), - ])), - ), - ), - ); - } - - List getExerciseTiles(TrainingPlanBloc bloc, BuildContext context) { - List tiles = []; - if (bloc.getMyPlan() != null && - bloc.getMyPlan()!.details.isNotEmpty && - bloc.getMyPlan()!.days[widget.dayName] != null && - bloc.getMyPlan()!.days[widget.dayName]!.isNotEmpty) { - bloc.getMyPlan()!.days[widget.dayName]!.forEach((element) { - tiles.add( - /* GestureDetector( - onTap: () => bloc.getNext() != null ? executeExercise(bloc, bloc.getNext()!, context) : Navigator.of(context).pushNamed('home'), - child: */ - ExerciseTile( - bloc: bloc, - detail: element, - )); - }); - } - - return tiles; - } - - static void executeExercise(TrainingPlanBloc bloc, CustomerTrainingPlanDetails detail, BuildContext context) { - CustomerTrainingPlanDetails? next = bloc.getNext(); - - if (next != null) { - String title = ""; - String description = ""; - String description2 = ""; - if (next.exerciseTypeId != detail.exerciseTypeId) { - title = AppLocalizations.of(context)!.translate("Stop!"); - description = AppLocalizations.of(context)!.translate("Please continue with the next exercise in the queue:") + - next.exerciseType!.nameTranslation; - } else { - final HashMap args = HashMap(); - args['exerciseType'] = next.exerciseType; - args['customerTrainingPlanDetails'] = detail; - Navigator.of(context).pushNamed('myTrainingPlanExercise', arguments: args); - return; - } - - showDialog( - context: context, - barrierDismissible: false, - builder: (BuildContext context) { - return DialogCommon( - title: title, - descriptions: description, - description2: description2, - text: "OK", - onTap: () => {Navigator.of(context).pop()}, - onCancel: () => {Navigator.of(context).pop()}, - ); - }); - } else { - Navigator.of(context).pushNamed('home'); - } - } -} - -class ExerciseTile extends StatefulWidget { - final TrainingPlanBloc bloc; - final CustomerTrainingPlanDetails detail; - - ExerciseTile({required this.bloc, required this.detail}); - - @override - _ExerciseTileState createState() => _ExerciseTileState(); -} - -class _ExerciseTileState extends State with Trans { - GestureRecognizer? _tapRecognizer; - - @override - void initState() { - _tapRecognizer = TapGestureRecognizer()..onTap = _onPlusMinusWeight; - super.initState(); - } - - @override - void dispose() { - if (_tapRecognizer != null) { - _tapRecognizer!.dispose(); - } - super.dispose(); - } - - void _onPlusMinusWeight() { - showDialog( - context: context, - builder: (BuildContext context) { - return WeightControl( - initialValue: widget.detail.weight != null ? widget.detail.weight! : 30, - onTap: (value) => widget.bloc.add(TrainingPlanWeightChangeRecalculate(detail: widget.detail, weight: value)), - ); - }); - } - - Widget getIndicator(ExercisePlanDetailState state) { - CustomerTrainingPlanDetails? next = widget.bloc.getNext(); - bool actual = false; - if (next != null) { - if (next.exerciseTypeId == widget.detail.exerciseTypeId) { - actual = true; - } - } - if (state.equalsTo(ExercisePlanDetailState.inProgress)) { - return ClipRRect( - borderRadius: BorderRadius.circular(24.0), - child: Container( - color: actual ? Colors.green : Colors.orange, - child: Icon( - CustomIcon.calendar_2, - size: 28, - color: Colors.white, - ))); - } else if (state.equalsTo(ExercisePlanDetailState.finished)) { - return ClipRRect( - borderRadius: BorderRadius.circular(24.0), - child: Container( - color: Colors.white, - child: Icon( - CustomIcon.ok_circled, - size: 40, - color: Colors.green, - ))); - } else if (state.equalsTo(ExercisePlanDetailState.skipped)) { - return ClipRRect( - borderRadius: BorderRadius.circular(24.0), - child: Container( - color: Colors.white, - child: Icon( - CustomIcon.stop_1, - size: 40, - color: Colors.grey, - ))); - } else if (state.equalsTo(ExercisePlanDetailState.extra)) { - return ClipRRect( - borderRadius: BorderRadius.circular(24.0), - child: Container( - color: Colors.white, - child: Icon( - CustomIcon.stopwatch_20, - size: 40, - color: Colors.blue[800], - ))); - } else { - return Image.asset( - "asset/image/pict_reps_volumen_db.png", - ); - } - } - - @override - Widget build(BuildContext context) { - setContext(context); - final ExercisePlanDetailState state = widget.detail.state; - final bool done = state.equalsTo(ExercisePlanDetailState.finished) || state.equalsTo(ExercisePlanDetailState.skipped); - final String countSerie = widget.detail.set.toString(); - final String step = (widget.detail.exercises.length).toString(); - String weight = widget.detail.weight != null ? widget.detail.weight!.toStringAsFixed(1) : "-"; - bool isDrop = false; - if (widget.detail.weight == -3) { - weight = "DROP"; - isDrop = true; - } - String restingTime = widget.detail.restingTime == null ? "" : widget.detail.restingTime!.toStringAsFixed(0); - bool isTest = false; - if (widget.detail.weight != null && widget.detail.weight! == -1) { - weight = "TEST"; - isTest = true; - } - String repeats = widget.detail.repeats!.toString(); - if (widget.detail.repeats! == -1) { - repeats = t("MAX"); - } - final bool extraExercise = widget.detail.exerciseType!.name == "Warming Up" || widget.detail.exerciseType!.name == "Stretching"; - - bool buddyWarning = widget.detail.exerciseType == null ? false : widget.detail.exerciseType!.buddyWarning; - setContext(context); - return Container( - color: Colors.transparent, - child: TimelineTile( - alignment: TimelineAlign.manual, - lineXY: 0.1, - beforeLineStyle: const LineStyle( - color: Color(0xffb4f500), - thickness: 6, - ), - afterLineStyle: const LineStyle( - color: Color(0xffb4f500), - thickness: 6, - ), - indicatorStyle: IndicatorStyle( - width: 40, - height: 40, - indicator: getIndicator(state), - ), - startChild: Container( - child: Column(children: [ - SizedBox( - height: 1, - ), - SizedBox( - height: 55, - ), - done - ? Offstage() - : IconButton( - padding: EdgeInsets.zero, - alignment: Alignment.centerLeft, - icon: Icon( - Icons.skip_next_sharp, - size: 30, - color: Colors.orange[300], - ), - onPressed: () => skip()), - ]), - ), - endChild: Container( - padding: EdgeInsets.only(left: 10), - child: Row(children: [ - Container( - width: 120, - height: 80, - child: Badge( - elevation: 0, - padding: EdgeInsets.all(0), - position: BadgePosition.bottomStart(start: -5), - animationDuration: Duration(milliseconds: 500), - animationType: BadgeAnimationType.slide, - badgeColor: Colors.transparent, - showBadge: true, - badgeContent: IconButton( - onPressed: () => showDialog( - context: context, - builder: (BuildContext context) { - return DialogHTML( - title: widget.detail.exerciseType!.nameTranslation, - htmlData: '

' + widget.detail.exerciseType!.descriptionTranslation + '

'); - }), - icon: Icon( - Icons.info_outline, - color: Colors.yellow[200], - )), - child: Badge( - elevation: 0, - padding: EdgeInsets.all(0), - position: BadgePosition.topEnd(end: -8), - animationDuration: Duration(milliseconds: 500), - animationType: BadgeAnimationType.slide, - badgeColor: Colors.transparent, - showBadge: buddyWarning, - badgeContent: IconButton( - onPressed: () => showDialog( - context: context, - builder: (BuildContext context) { - return DialogCommon( - warning: true, - text: "Warning", - descriptions: t("Attention!"), - description2: t("The safe and exact execution of this exercise you need a training buddy or a trainer"), - description3: t("Execution at your own risk!"), - onTap: () => Navigator.of(context).pop(), - onCancel: () => Navigator.of(context).pop(), - title: t('Training Buddy'), - ); - }), - icon: Icon( - CustomIcon.exclamation_circle, - color: Colors.red[800], - )), - child: MenuImage( - imageName: widget.bloc.getActualImageName(widget.detail.exerciseType!.exerciseTypeId), - workoutTreeId: widget.bloc.getActualWorkoutTreeId(widget.detail.exerciseType!.exerciseTypeId)!, - radius: 12, - ))), - ), - SizedBox( - width: 10, - ), - Expanded( - child: RichText( - text: TextSpan( - style: GoogleFonts.inter( - fontSize: 14, - fontWeight: FontWeight.bold, - color: done ? Colors.grey[400] : Colors.white, - ), - children: [ - TextSpan( - text: widget.detail.exerciseType!.nameTranslation, - style: GoogleFonts.inter( - fontSize: 14, - fontWeight: FontWeight.bold, - color: done ? Colors.grey[400] : Colors.orange[500], - shadows: [ - Shadow( - offset: Offset(5.0, 5.0), - blurRadius: 12.0, - color: Colors.black54, - ), - Shadow( - offset: Offset(-3.0, 3.0), - blurRadius: 12.0, - color: Colors.black54, - ), - ], - )), - widget.detail.exerciseType!.unitQuantityUnit != null && !extraExercise - ? TextSpan( - text: "\n", - ) - : TextSpan(), - widget.detail.exerciseType!.unitQuantityUnit != null && !extraExercise - ? TextSpan( - text: t(widget.detail.exerciseType!.unitQuantityUnit!) + ": ", - style: GoogleFonts.inter( - fontSize: 12, color: done ? Colors.grey[100] : Colors.yellow[400], fontWeight: FontWeight.bold)) - : TextSpan(), - widget.detail.exerciseType!.unitQuantityUnit != null && !extraExercise - ? TextSpan( - text: t(weight), - style: GoogleFonts.inter( - fontSize: 12, - )) - : TextSpan(), - widget.detail.exerciseType!.unitQuantityUnit != null && !extraExercise && weight != "TEST" && weight != "DROP" - ? TextSpan( - text: " - +", - style: GoogleFonts.archivoBlack( - color: Colors.blue, - fontSize: 16, - ), - recognizer: _tapRecognizer, - mouseCursor: SystemMouseCursors.precise, - ) - : TextSpan(), - TextSpan( - text: "\n", - ), - !extraExercise - ? TextSpan( - text: t(widget.detail.exerciseType!.unit) + ": ", - style: GoogleFonts.inter( - fontSize: 12, color: done ? Colors.grey[100] : Colors.yellow[400], fontWeight: FontWeight.bold)) - : TextSpan(), - !extraExercise - ? TextSpan( - text: repeats, - style: GoogleFonts.inter( - fontSize: 12, - )) - : TextSpan(), - TextSpan( - text: "\n", - ), - !extraExercise - ? TextSpan( - text: t("Set") + ": ", - style: GoogleFonts.inter( - fontSize: 12, color: done ? Colors.grey[100] : Colors.yellow[400], fontWeight: FontWeight.bold)) - : TextSpan(), - !extraExercise - ? TextSpan( - text: step + "/" + countSerie, - style: GoogleFonts.inter( - fontSize: 12, - )) - : TextSpan(), - TextSpan( - text: "\n", - ), - !extraExercise - ? TextSpan( - text: t("Resting time") + ": ", - style: GoogleFonts.inter( - fontSize: 12, color: done ? Colors.grey[100] : Colors.yellow[400], fontWeight: FontWeight.bold)) - : TextSpan(), - !extraExercise - ? TextSpan( - text: restingTime + " " + t("min(s)"), - style: - GoogleFonts.inter(fontSize: 12, color: done ? Colors.grey[100] : Colors.white, fontWeight: FontWeight.bold)) - : TextSpan(), - ]), - )), - isTest - ? Container( - child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [ - GestureDetector( - onTap: () => showDialog( - context: context, - builder: (BuildContext context) { - return DialogCommon( - warning: false, - title: t("Why Test?"), - descriptions: t("This is your first exercise after at least 3 weeks."), - description2: - t("The first exercise will be a test. The following sets will be recalculated base on your test."), - description3: t("This is the most optimal way for your development"), - text: "OK", - onTap: () => Navigator.of(context).pop(), - onCancel: () => { - Navigator.of(context).pop(), - }, - ); - }), - child: Icon( - CustomIcon.question_circle, - color: Colors.yellowAccent[700], - size: 16, - )), - ])) - : isDrop - ? Container( - child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [ - GestureDetector( - onTap: () => showDialog( - context: context, - builder: (BuildContext context) { - return DialogCommon( - warning: false, - title: t("Drop Set"), - descriptions: t( - "Execute at least 3 sets with maximum repeats, without resting time, with decreasing the weight."), - description2: - t("The goal is to completly exhaust your muscle without lifting a ridiculous weight end the end."), - text: "OK", - onTap: () => Navigator.of(context).pop(), - onCancel: () => { - Navigator.of(context).pop(), - }, - ); - }), - child: Icon( - CustomIcon.question_circle, - color: Colors.orange[200], - size: 16, - )), - ])) - : Offstage() - ]), - ), - ), - ); - } - - void skip() { - showCupertinoDialog( - useRootNavigator: true, - context: context, - builder: (_) => CupertinoAlertDialog( - title: Text(t("You want to skip really this exercise?")), - content: Column(children: [ - Divider(), - ]), - actions: [ - TextButton( - child: Text(t("No")), - onPressed: () => { - Navigator.pop(context), - }), - TextButton( - child: Text(t("Yes")), - onPressed: () { - Navigator.pop(context); - widget.bloc.add(TrainingPlanSkipExercise(detail: widget.detail)); - }, - ) - ], - )); - } -} diff --git a/lib/view/training_plan_exercise.dart b/lib/view/training_plan_exercise.dart index c8dba62..de8a641 100644 --- a/lib/view/training_plan_exercise.dart +++ b/lib/view/training_plan_exercise.dart @@ -2,10 +2,12 @@ import 'dart:collection'; import 'package:aitrainer_app/bloc/training_plan/training_plan_bloc.dart'; import 'package:aitrainer_app/library/custom_icon_icons.dart'; +import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/model/customer_training_plan_details.dart'; import 'package:aitrainer_app/util/trans.dart'; import 'package:aitrainer_app/widgets/app_bar.dart'; import 'package:aitrainer_app/widgets/exercise_save.dart'; +import 'package:aitrainer_app/widgets/menu_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:google_fonts/google_fonts.dart'; @@ -26,7 +28,7 @@ class TrainingPlanExercise extends StatelessWidget with Trans { body: Container( height: double.infinity, width: double.infinity, - padding: EdgeInsets.all(20), + //padding: EdgeInsets.all(20), decoration: BoxDecoration( image: DecorationImage( image: AssetImage("asset/image/WT_black_background.jpg"), @@ -75,7 +77,7 @@ class TrainingPlanExercise extends StatelessWidget with Trans { backgroundColor: Colors.orange[800], icon: Icon(CustomIcon.save), label: Text( - isDropSet ? t("Done") : t("Save"), + t("Done"), style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 16), ), ), @@ -92,7 +94,7 @@ class TrainingPlanExercise extends StatelessWidget with Trans { unit: detail.exerciseType!.unit, unitQuantityUnit: detail.exerciseType!.unitQuantityUnit, hasUnitQuantity: detail.exerciseType!.unitQuantityUnit != null, - weight: detail.weight == -1 ? 0 : detail.weight, + weight: detail.weight, repeats: detail.repeats == -1 ? 99 : detail.repeats, set: detail.set, exerciseNr: detail.exercises.length + 1, @@ -100,6 +102,13 @@ class TrainingPlanExercise extends StatelessWidget with Trans { onQuantityChanged: (value) => bloc.add(TrainingPlanRepeatsChange(repeats: value.toInt(), detail: detail)), exerciseTypeId: detail.exerciseType!.exerciseTypeId, originalQuantity: originalQuantity, + tip: ActivityDone.exerciseSaveTrainingTip, + menuImage: MenuImage( + imageName: bloc.getActualImageName(detail.exerciseType!.exerciseTypeId), + workoutTreeId: bloc.getActualWorkoutTreeId(detail.exerciseType!.exerciseTypeId)!, + radius: 0, + filter: false, + ), ); } else { return getDropSet(bloc, detail); diff --git a/lib/view/training_plans_page.dart b/lib/view/training_plans_page.dart index 90436f3..60b1272 100644 --- a/lib/view/training_plans_page.dart +++ b/lib/view/training_plans_page.dart @@ -44,7 +44,7 @@ class MyTrainingPlans extends StatelessWidget with Trans, Logging { title: t("Warning"), descriptions: t(state.message), text: "OK", - onTap: () => Navigator.of(context).pushNamed("login"), + onTap: () => Navigator.of(context).pop(), onCancel: () => { Navigator.of(context).pop(), }, diff --git a/lib/widgets/bmr_widget.dart b/lib/widgets/bmr_widget.dart index 3246869..aca4e21 100644 --- a/lib/widgets/bmr_widget.dart +++ b/lib/widgets/bmr_widget.dart @@ -286,7 +286,7 @@ class _BMRState extends State with Trans { ), ), mode: Mode.MENU, - compareFn: (FitnessState i, FitnessState s) => i.isEqual(s), + compareFn: (FitnessState? i, FitnessState? s) => i!.isEqual(s), showSelectedItem: true, selectedItem: FitnessItem().getItem(fitnessLevel), itemAsString: (data) => t(data!.stateText), @@ -301,7 +301,6 @@ class _BMRState extends State with Trans { color: Colors.yellow[200], ), )); - //items: FitnessItem().toList())); } Widget _customMenuBuilder(BuildContext context, FitnessState? item, bool isSelected) { diff --git a/lib/widgets/dialog_premium.dart b/lib/widgets/dialog_premium.dart index 9f2e85a..188f728 100644 --- a/lib/widgets/dialog_premium.dart +++ b/lib/widgets/dialog_premium.dart @@ -88,7 +88,7 @@ class _DialogPremiumState extends State with Trans { alignment: AlignmentDirectional.topEnd, children: [ Text( - widget.unlocked ? t("Keep testing") : t("Go Premium") + " ", + widget.unlocked ? t("Keep training") : t("Go Premium") + " ", style: GoogleFonts.archivoBlack( fontSize: widget.unlocked ? 20 : 24, color: Colors.yellow[400], @@ -257,11 +257,7 @@ class _DialogPremiumState extends State with Trans { list.add(TextSpan(text: t(" "))); list.add( TextSpan( - text: widget.unlockRound == 1 - ? t("the first") - : widget.unlockRound == 2 - ? t("the second") - : t("the third"), + text: widget.unlockRound.toString() + " " + t("week"), style: GoogleFonts.inter( fontSize: 14, fontWeight: FontWeight.bold, @@ -282,7 +278,7 @@ class _DialogPremiumState extends State with Trans { ), ); list.add(TextSpan(text: t(" "))); - list.add(TextSpan(text: t("100% test circles"))); + list.add(TextSpan(text: t("100% completed training"))); return list; } diff --git a/lib/widgets/dialog_trial.dart b/lib/widgets/dialog_trial.dart index e3a3f8b..9c8a5e5 100644 --- a/lib/widgets/dialog_trial.dart +++ b/lib/widgets/dialog_trial.dart @@ -120,7 +120,7 @@ class _DialogTrialWidgetState extends State with Trans { children: [ Image.asset('asset/icon/gomb_lila_b.png', width: 100, height: 45), Text( - t("Nem"), + t("No"), style: TextStyle(fontSize: 16, color: Colors.white), ), ], @@ -132,7 +132,7 @@ class _DialogTrialWidgetState extends State with Trans { children: [ Image.asset('asset/icon/gomb_orange_c.png', width: 100, height: 45), Text( - t("Igen"), + t("Yes"), style: TextStyle(fontSize: 16, color: Colors.white), ), ], diff --git a/lib/widgets/exercise_save.dart b/lib/widgets/exercise_save.dart index f715382..893d2a8 100644 --- a/lib/widgets/exercise_save.dart +++ b/lib/widgets/exercise_save.dart @@ -1,21 +1,113 @@ import 'dart:async'; -import 'package:aitrainer_app/bloc/tutorial/tutorial_bloc.dart'; import 'package:aitrainer_app/library/custom_icon_icons.dart'; +import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/util/trans.dart'; +import 'package:aitrainer_app/widgets/menu_image.dart'; import 'package:aitrainer_app/widgets/time_picker.dart'; +import 'package:aitrainer_app/widgets/tutorial_widget.dart'; +import 'package:badges/badges.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:keyboard_actions/keyboard_actions.dart'; import 'package:keyboard_actions/keyboard_actions_config.dart'; import 'package:stop_watch_timer/stop_watch_timer.dart'; import 'package:wakelock/wakelock.dart'; - -import 'dialog_common.dart'; import 'dialog_html.dart'; +enum Explanations { intro, introBold, explanationWeight, explanationRepeats, explanationButton, explanationButtonExt } + +extension ExplanationsExt on Explanations { + String toStr() => this.toString().split(".").last; + bool equalsTo(Explanations type) => this.toString() == type.toString(); + bool equalsStringTo(String type) => this.toStr() == type; +} + +class ExplanationExt { + final ActivityDone tip; + final String? unitQuantityUnit; + final double? weight; + final int? repeats; + ExplanationExt({ + required this.tip, + this.unitQuantityUnit, + required this.weight, + required this.repeats, + }); + + String getExplanation(Explanations explanation) { + String expl = ""; + if (this.tip.equalsTo(ActivityDone.exerciseSaveTestTip)) { + if (explanation.equalsTo(Explanations.intro)) { + expl = "Please take a middle weight which you are able to do 8-20 times with."; + } else if (explanation.equalsTo(Explanations.introBold)) { + expl = "Execute your MAXIMUM repeats with it!"; + } else if (explanation.equalsTo(Explanations.explanationWeight)) { + expl = "Type here your selected weight,"; + } else if (explanation.equalsTo(Explanations.explanationRepeats)) { + expl = "then here, how many times could you repeat it!"; + } else if (explanation.equalsTo(Explanations.explanationButton)) { + expl = "After you done, click to the OK button!"; + } else if (explanation.equalsTo(Explanations.explanationButtonExt)) { + expl = ""; + } + } else if (this.tip.equalsTo(ActivityDone.exerciseSaveTrainingTip)) { + if (unitQuantityUnit != null) { + if (weight == -1) { + if (explanation.equalsTo(Explanations.intro)) { + expl = "Please take a middle weight which you are able to do 8-20 times with."; + } else if (explanation.equalsTo(Explanations.introBold)) { + expl = "Execute your MAXIMUM repeats with it!"; + } + } else if (repeats == 99) { + if (explanation.equalsTo(Explanations.intro)) { + expl = "It is time to exhaust your muscles"; + } + } else { + if (explanation.equalsTo(Explanations.intro)) { + expl = "For your optimal development we calculated a suitable weight and repeats"; + } else if (explanation.equalsTo(Explanations.introBold)) { + expl = "You can change the weight, if you could not set it in the training room"; + } + } + if (explanation.equalsTo(Explanations.explanationButtonExt)) { + if (repeats != 99) { + expl = "If you could do less, then modify and click to OK"; + } + } else if (explanation.equalsTo(Explanations.explanationWeight)) { + if (weight == -1 || weight == -2) { + expl = "Type here your selected weight,"; + } else { + expl = "Here is your tailored weight,"; + } + } else if (explanation.equalsTo(Explanations.explanationRepeats)) { + if (repeats == 99) { + expl = "and execute it with maximum repeats!"; + } else { + expl = "and executed with this number of repeats!"; + } + } + } else { + if (repeats == 99) { + if (explanation.equalsTo(Explanations.intro)) { + expl = "Please repeat as much times as you can! MAXIMIZE it!"; + } + } else { + if (explanation.equalsTo(Explanations.intro)) { + expl = "Please try to execute this exercise with exact repeats what is suggested"; + } + } + } + if (explanation.equalsTo(Explanations.explanationButton)) { + expl = "After you done, click to the OK button!"; + } + } else if (this.tip.equalsTo(ActivityDone.exerciseSaveTestsetTip)) {} + + return expl; + } +} + // ignore: must_be_immutable class ExerciseSave extends StatefulWidget { final ValueChanged onQuantityChanged; @@ -33,6 +125,8 @@ class ExerciseSave extends StatefulWidget { final int? set; final int? exerciseNr; final int? originalQuantity; + final MenuImage menuImage; + final ActivityDone? tip; ExerciseSave( {required this.onQuantityChanged, @@ -49,7 +143,9 @@ class ExerciseSave extends StatefulWidget { this.repeats, this.set, this.exerciseNr, - this.originalQuantity}); + this.originalQuantity, + required this.menuImage, + this.tip}); @override _ExerciseSaveState createState() => _ExerciseSaveState(); } @@ -72,12 +168,6 @@ class _ExerciseSaveState extends State with Trans { @override initState() { super.initState(); - _controller1.text = widget.weight == null - ? "0" - : widget.weight! % widget.weight!.round() == 0 - ? widget.weight!.toStringAsFixed(0) - : widget.weight!.toStringAsFixed(1); - _controller2.text = widget.repeats == null ? "12" : widget.repeats!.toStringAsFixed(0); _nodeText1.addListener(() { if (_nodeText1.hasFocus) { _controller1.selection = TextSelection(baseOffset: 0, extentOffset: _controller1.text.length); @@ -98,25 +188,31 @@ class _ExerciseSaveState extends State with Trans { } SchedulerBinding.instance!.addPostFrameCallback((_) { - /* //final TutorialBloc bloc = BlocProvider.of(context); - if (bloc.actualCheck == "directTest") { + _controller1.text = widget.weight == null || widget.weight == -1 + ? "--" + : widget.weight! % widget.weight!.round() == 0 + ? widget.weight!.toStringAsFixed(0) + : widget.weight!.toStringAsFixed(1); + _controller2.text = widget.repeats == null + ? "--" + : widget.repeats! == 99 + ? "MAX" + : widget.repeats!.toStringAsFixed(0); + if (widget.unitQuantityUnit != null && widget.tip != null && Cache().isActivityDone(widget.tip!) == false) { Timer( Duration(milliseconds: 2000), () => { - showDialog( - context: context, - barrierDismissible: false, - builder: (BuildContext context) { - return DialogCommon( - title: t("Attention"), - descriptions: t(widget.exerciseTask), - text: "OK", - onTap: () => Navigator.of(context).pop(), - onCancel: () => Navigator.of(context).pop(), - ); - }) + TutorialWidget().explanation( + context, + ExplanationWidget( + unitQuantityUnit: widget.unitQuantityUnit, + unit: widget.unit, + tip: widget.tip, + weight: widget.weight, + repeats: widget.repeats, + )), }); - } */ + } }); } @@ -189,82 +285,139 @@ class _ExerciseSaveState extends State with Trans { } Widget getExerciseWidget() { + ExplanationExt expl = ExplanationExt( + tip: widget.tip!, + weight: widget.weight, + repeats: widget.repeats, + unitQuantityUnit: widget.unitQuantityUnit, + ); + return KeyboardActions( config: _buildConfig(context), child: Container( child: SingleChildScrollView( scrollDirection: Axis.vertical, child: Column(mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text( - widget.exerciseName, - style: GoogleFonts.archivoBlack( - fontWeight: FontWeight.bold, - fontSize: 24, - color: Colors.white, - shadows: [ - Shadow( - offset: Offset(5.0, 5.0), - blurRadius: 12.0, - color: Colors.black54, - ), - Shadow( - offset: Offset(-3.0, 3.0), - blurRadius: 12.0, - color: Colors.black54, - ), - ], + Stack(alignment: Alignment.bottomLeft, children: [ + Badge( + elevation: 0, + padding: EdgeInsets.all(0), + position: BadgePosition.topEnd(top: 5, end: 5), + animationDuration: Duration(milliseconds: 1500), + animationType: BadgeAnimationType.fade, + badgeColor: Colors.transparent, + showBadge: true, + badgeContent: IconButton( + iconSize: 30, + onPressed: () => showDialog( + context: context, + builder: (BuildContext context) { + return DialogHTML(title: widget.exerciseName, htmlData: '

' + widget.exerciseDescription + '

'); + }), + icon: Icon( + CustomIcon.info_circle, + color: Colors.white, + )), + child: widget.menuImage, ), - overflow: TextOverflow.fade, - maxLines: 4, - softWrap: true, - textAlign: TextAlign.center, - ), - SizedBox( - height: 15, - ), - InkWell( - child: Text( - t("Exercise descripton") + " ยป", - style: GoogleFonts.inter(fontSize: 12, color: Colors.blue[200]), + Container( + padding: EdgeInsets.only(left: 10, bottom: 10, right: 10), + child: Text( + widget.exerciseName, + style: GoogleFonts.archivoBlack( + fontWeight: FontWeight.bold, + fontSize: 24, + color: Colors.white, + shadows: [ + Shadow( + offset: Offset(5.0, 5.0), + blurRadius: 12.0, + color: Colors.black54, + ), + Shadow( + offset: Offset(-3.0, 3.0), + blurRadius: 12.0, + color: Colors.black54, + ), + ], + ), + overflow: TextOverflow.fade, + maxLines: 4, + softWrap: true, + )) + ]), + ListTile( + leading: IconButton( + iconSize: 30, + onPressed: () => { + if (widget.unitQuantityUnit != null) + { + TutorialWidget().explanation( + context, + ExplanationWidget( + unitQuantityUnit: widget.unitQuantityUnit, + unit: widget.unit, + tip: widget.tip, + weight: widget.weight, + repeats: widget.repeats, + )) + } + }, + icon: Icon( + CustomIcon.info_circle, + color: Colors.orange[100], + )), + subtitle: Text( + t(expl.getExplanation(Explanations.intro)), + style: GoogleFonts.inter( + fontSize: 14, + color: Colors.white, + fontWeight: FontWeight.bold, + shadows: [ + Shadow( + offset: Offset(2.0, 2.0), + blurRadius: 6.0, + color: Colors.black54, + ), + Shadow( + offset: Offset(-3.0, 3.0), + blurRadius: 12.0, + color: Colors.black54, + ), + ], + ), + maxLines: 3, + textAlign: TextAlign.left, + overflow: TextOverflow.fade, + softWrap: true, ), - onTap: () => { - showDialog( - context: context, - builder: (BuildContext context) { - return DialogHTML(title: widget.exerciseName, htmlData: '

' + widget.exerciseDescription + '

'); - }) - }, - ), - Divider( - color: Colors.transparent, - ), - Text( - t(widget.exerciseTask), - style: GoogleFonts.inter( - fontSize: 14, - color: Colors.orange, - fontWeight: FontWeight.bold, - shadows: [ - Shadow( - offset: Offset(2.0, 2.0), - blurRadius: 6.0, - color: Colors.black54, - ), - Shadow( - offset: Offset(-3.0, 3.0), - blurRadius: 12.0, - color: Colors.black54, - ), - ], - ), - maxLines: 3, - textAlign: TextAlign.center, - overflow: TextOverflow.fade, - softWrap: true, - ), - Divider( - color: Colors.transparent, ), + expl.getExplanation(Explanations.introBold).length > 0 + ? Text( + t(expl.getExplanation(Explanations.introBold)), + style: GoogleFonts.inter( + fontSize: 14, + color: Colors.orange, + fontWeight: FontWeight.bold, + shadows: [ + Shadow( + offset: Offset(2.0, 2.0), + blurRadius: 6.0, + color: Colors.black54, + ), + Shadow( + offset: Offset(-3.0, 3.0), + blurRadius: 12.0, + color: Colors.black54, + ), + ], + ), + maxLines: 3, + textAlign: TextAlign.center, + overflow: TextOverflow.fade, + softWrap: true, + ) + : Offstage(), widget.unit == "second" ? Text( getTimeGoal(widget.originalQuantity), @@ -289,29 +442,60 @@ class _ExerciseSaveState extends State with Trans { ) : Offstage(), columnQuantityUnit(), - Divider( - color: Colors.transparent, - ), columnQuantity(), Divider( color: Colors.transparent, ), - widget.hasUnitQuantity - ? Text( - widget.set == null || widget.exerciseNr == null - ? t("Step") + ": " + "1/4" - : t("Step") + ": " + "${widget.exerciseNr}/${widget.set}", - style: GoogleFonts.inter( - fontSize: 22, - color: Colors.white, - fontWeight: FontWeight.bold, - ), - maxLines: 3, - textAlign: TextAlign.center, - overflow: TextOverflow.fade, - softWrap: true, - ) - : Offstage(), + Text( + t(expl.getExplanation(Explanations.explanationButton)), + style: GoogleFonts.inter( + fontSize: 14, + color: Colors.white, + fontWeight: FontWeight.bold, + shadows: [ + Shadow( + offset: Offset(2.0, 2.0), + blurRadius: 6.0, + color: Colors.black54, + ), + Shadow( + offset: Offset(-3.0, 3.0), + blurRadius: 12.0, + color: Colors.black54, + ), + ], + ), + maxLines: 3, + textAlign: TextAlign.center, + overflow: TextOverflow.fade, + softWrap: true, + ), + Padding( + padding: const EdgeInsets.only(left: 35, right: 35), + child: Text( + t(expl.getExplanation(Explanations.explanationButtonExt)), + style: GoogleFonts.inter( + fontSize: 14, + color: Colors.orange, + fontWeight: FontWeight.bold, + shadows: [ + Shadow( + offset: Offset(2.0, 2.0), + blurRadius: 6.0, + color: Colors.black54, + ), + Shadow( + offset: Offset(-3.0, 3.0), + blurRadius: 12.0, + color: Colors.black54, + ), + ], + ), + maxLines: 3, + textAlign: TextAlign.center, + overflow: TextOverflow.fade, + softWrap: true, + )), Divider( color: Colors.transparent, ), @@ -476,3 +660,168 @@ class _ExerciseSaveState extends State with Trans { return row; } } + +class ExplanationWidget extends StatefulWidget { + final String? unitQuantityUnit; + final String unit; + final ActivityDone? tip; + final double? weight; + final int? repeats; + const ExplanationWidget({ + Key? key, + this.unitQuantityUnit, + required this.unit, + this.tip, + this.weight, + this.repeats, + }) : super(key: key); + + @override + _ExplanationWidgetState createState() => _ExplanationWidgetState(); +} + +class _ExplanationWidgetState extends State with Trans { + bool _selected = false; + + @override + Widget build(BuildContext context) { + ExplanationExt expl = ExplanationExt( + tip: widget.tip!, + weight: widget.weight, + repeats: widget.repeats, + unitQuantityUnit: widget.unitQuantityUnit, + ); + setContext(context); + return Material( + color: Colors.transparent, + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 10, left: 10, right: 10), + child: Text(t(expl.getExplanation(Explanations.intro)), + maxLines: 5, + textAlign: TextAlign.center, + style: GoogleFonts.inter( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 16, + ))), + Padding( + padding: const EdgeInsets.only(top: 10, left: 10, right: 10), + child: Text(t(expl.getExplanation(Explanations.introBold)), + maxLines: 5, + textAlign: TextAlign.center, + style: GoogleFonts.inter( + color: Colors.orange, + fontWeight: FontWeight.bold, + fontSize: 16, + ))), + Stack(children: [ + Padding( + padding: const EdgeInsets.only(top: 13, left: 18, right: 18), + child: Column(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ + TextFormField( + decoration: InputDecoration( + contentPadding: EdgeInsets.only(left: 25, top: 5, bottom: 5), + labelText: t(widget.unitQuantityUnit!), + labelStyle: GoogleFonts.inter(fontSize: 20, color: Colors.yellow[50]), + fillColor: Colors.black38, + filled: true, + border: OutlineInputBorder( + gapPadding: 8.0, + borderRadius: BorderRadius.circular(12.0), + borderSide: BorderSide(color: Colors.white12, width: 0.4), + ), + ), + initialValue: ".", + keyboardType: TextInputType.numberWithOptions(decimal: true), + textInputAction: TextInputAction.done, + style: GoogleFonts.archivoBlack(fontSize: 80, color: Colors.transparent), + onChanged: (value) {}), + ])), + Container( + padding: EdgeInsets.only(top: 35, left: 35, right: 35), + child: Text( + t(expl.getExplanation(Explanations.explanationWeight)), + style: GoogleFonts.archivoBlack(fontSize: 23, color: Colors.yellow[300]), + )), + ]), + Stack(children: [ + Padding( + padding: const EdgeInsets.only(top: 10, left: 15, right: 15), + child: Column(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ + TextFormField( + decoration: InputDecoration( + contentPadding: EdgeInsets.only(left: 25, top: 5, bottom: 5), + labelText: t(widget.unit), + labelStyle: GoogleFonts.inter(fontSize: 20, color: Colors.yellow[50]), + fillColor: Colors.black38, + filled: true, + border: OutlineInputBorder( + gapPadding: 8.0, + borderRadius: BorderRadius.circular(12.0), + borderSide: BorderSide(color: Colors.white12, width: 0.4), + ), + ), + initialValue: ".", + keyboardType: TextInputType.numberWithOptions(decimal: true), + textInputAction: TextInputAction.done, + style: GoogleFonts.archivoBlack(fontSize: 80, color: Colors.transparent), + onChanged: (value) {}), + ])), + Container( + padding: EdgeInsets.only(top: 25, left: 35, right: 35), + child: Text( + t(expl.getExplanation(Explanations.explanationRepeats)), + style: GoogleFonts.archivoBlack(fontSize: 23, color: Colors.yellow[300]), + )), + ]), + Padding( + padding: const EdgeInsets.only(top: 10, left: 5, right: 5), + child: Text( + t("Don't forget, the app can give you only the right values, if you execute the task regurarly and after the exact instructions."), + maxLines: 5, + textAlign: TextAlign.center, + style: GoogleFonts.inter( + color: Colors.white, + fontSize: 14, + ))), + Divider(), + GestureDetector( + onTap: () => { + TutorialWidget().close(), + if (_selected && widget.tip != null) + { + Cache().setActivityDonePrefs(widget.tip!), + } + }, + child: Stack( + alignment: Alignment.center, + children: [ + Image.asset('asset/icon/gomb_orange_c.png', width: 100, height: 45), + Text( + t("Got It"), + style: TextStyle(fontSize: 20, color: Colors.white), + ), + ], + )), + Theme( + data: ThemeData(unselectedWidgetColor: Colors.white38), + child: CheckboxListTile( + value: _selected, + onChanged: (bool? checked) { + setState(() { + _selected = checked!; + }); + }, + checkColor: Colors.white, + activeColor: Colors.orange[600], + controlAffinity: ListTileControlAffinity.leading, + title: Text( + t("Show this tip no more"), + style: GoogleFonts.inter(color: Colors.grey), + ))) + ], + )); + } +} diff --git a/lib/widgets/menu_page_widget.dart b/lib/widgets/menu_page_widget.dart index b69cf1b..4132f1c 100644 --- a/lib/widgets/menu_page_widget.dart +++ b/lib/widgets/menu_page_widget.dart @@ -83,16 +83,16 @@ class _MenuPageWidgetState extends State with Trans, Logging { context: context, builder: (BuildContext context) { return DialogTrialWidget( - title: "10 days Premium for free", - description: "Would you like to try all premium functions for 10 days, without any subscription or bank card data?", + title: t("10 days Premium for free"), + description: t("Would you like to try all premium functions for 10 days, without any subscription or bank card data?"), widget: Column(children: [ Text( - "If you click to 'Yes', all premium functions will be available right now.", + t("If you click to 'Yes', all premium functions will be available right now."), style: GoogleFonts.inter(color: Colors.white), ), Divider(), Text( - "If you click to 'No', you can use all basic functions, and you will loose the oppurtunity to try the premium functions for free.", + t("If you click to 'No', you can use all basic functions, and you will loose the oppurtunity to try the premium functions for free."), style: GoogleFonts.inter(color: Colors.white), ), ]), diff --git a/lib/widgets/tutorial_widget.dart b/lib/widgets/tutorial_widget.dart index f17e9ea..4318820 100644 --- a/lib/widgets/tutorial_widget.dart +++ b/lib/widgets/tutorial_widget.dart @@ -25,6 +25,46 @@ class TutorialWidget with Trans, Logging { } } + Widget explanationFrame(Widget widget) { + return Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(24), + boxShadow: [BoxShadow(color: Colors.black, offset: Offset(0, 10), blurRadius: 10)], + image: DecorationImage( + image: AssetImage('asset/image/WT_plainblack_background.jpg'), + fit: BoxFit.cover, + alignment: Alignment.center, + ), + ), + child: widget, + ); + } + + void explanation(BuildContext context, Widget widget) { + tooltip = SuperTooltip( + top: 120, + left: 20, + right: 20, + backgroundColor: Colors.black87, + popupDirection: TooltipDirection.up, + maxWidth: 330, + borderColor: Colors.transparent, + borderWidth: 1.0, + minimumOutSidePadding: 20, + //snapsFarAwayVertically: false, + showCloseButton: ShowCloseButton.outside, + closeButtonColor: Colors.grey, + dismissOnTapOutside: true, + outsideBackgroundColor: Colors.black.withOpacity(0.6), + hasShadow: true, + touchThrougArea: null, + //onClose: () => bloc.add(TutorialFinished()), + custom: true, + content: explanationFrame(widget)); + + tooltip!.showBox(context); + } + void tip(BuildContext context) { final TutorialBloc bloc = BlocProvider.of(context); if (bloc.action == null) { diff --git a/pubspec.lock b/pubspec.lock index 84233de..4cde0b3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -707,6 +707,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.1" + mailto: + dependency: "direct main" + description: + name: mailto + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" matcher: dependency: transitive description: @@ -1294,12 +1301,12 @@ packages: source: hosted version: "3.5.1" url_launcher: - dependency: transitive + dependency: "direct main" description: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "6.0.3" + version: "6.0.9" url_launcher_linux: dependency: transitive description: @@ -1320,7 +1327,7 @@ packages: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.0.4" url_launcher_web: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0594500..f3dd53d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -58,7 +58,9 @@ dependencies: upgrader: ^3.5.1 web_browser: ^0.5.0 flutter_fadein: ^2.0.0 - + mailto: ^2.0.0 + url_launcher: ^6.0.9 + firebase_core: ^1.5.0 firebase_analytics: ^8.1.0 firebase_messaging: ^10.0.0 @@ -280,6 +282,7 @@ flutter: - asset/menu/close_grip_front_lat_pulldown.jpg - asset/menu/close_grip_pull_ups.jpg - asset/menu/close_reverse_grip_lat_pulldown.jpg + - asset/menu/close_reverse_grip_pull_ups.jpg - asset/menu/concentration.jpg - asset/menu/cooper.jpg - asset/menu/crisscross.jpg @@ -294,6 +297,7 @@ flutter: - asset/menu/donkey_calf_raises.jpg - asset/menu/dumbbell_alternate_bicep_curl.jpg - asset/menu/dumbell_bench_presses.jpg + - asset/menu/dumbbell_presses.jpg - asset/menu/ez_bar_burl.jpg - asset/menu/flyes.jpg - asset/menu/forward_raise.jpg @@ -358,6 +362,7 @@ flutter: - asset/menu/seated_dumbbell_curl.jpg - asset/menu/seated_dumbbell_shoulder_press.jpg - asset/menu/seated_lateral_raises.jpg + - asset/menu/seated_leg_curls.jpg - asset/menu/seated_triceps_extension.jpg - asset/menu/shrugs.jpg - asset/menu/side_plank.jpg @@ -372,6 +377,7 @@ flutter: - asset/menu/sizes.jpg - asset/menu/smith_machine_chest_press.jpg - asset/menu/smith_machine_squats.jpg + - asset/menu/smith_machine_front_press.jpg - asset/menu/squats_with_kettlebell.jpg - asset/menu/squat_jump_weight.jpg - asset/menu/squat_jump.jpg @@ -388,6 +394,7 @@ flutter: - asset/menu/standing_single_arm_lateral_raises.jpg - asset/menu/standing_triceps_extension.jpg - asset/menu/stiff_legged_deadlift.jpg + - asset/menu/straight_arm_pulldown.jpg - asset/menu/straight-arm_rope_pull-down.jpg - asset/menu/stretching.jpg - asset/menu/t_bar_rows.jpg