From 16e9c82b9b59a839c1ab7b94f19675081fa61086 Mon Sep 17 00:00:00 2001 From: Irene Date: Thu, 14 Sep 2023 13:25:08 +0300 Subject: [PATCH] Irene Maniou --- class-diagramm-user.png | Bin 0 -> 43248 bytes domain_model.md | 22 ++++++ .../java/com/booleanuk/core/TodoItem.java | 22 +++++- .../java/com/booleanuk/core/TodoItemTest.java | 71 ++++++++++++++++++ 4 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 class-diagramm-user.png create mode 100644 domain_model.md diff --git a/class-diagramm-user.png b/class-diagramm-user.png new file mode 100644 index 0000000000000000000000000000000000000000..bc97598ba76ae7c4491990da9a1260f254694a8e GIT binary patch literal 43248 zcmeFZcUV)~`ZcP!m8OCsB2r^RKtMr3I)X|S5C}+@-b1e;6a^8LqDT`$QEF&X1B9kX z@4bY8N-qi05=cn+R<^p&KHu5ryZ8Qc@AKT}_YXd1k+tS}=bZ05#(2jhQd?8`1jBiT zLx&EXP*u6BbLh}f(4j+z-_acdKKaq{Oa%Dnu&0i);-TVR&gDagcn_)Gy`$%6wubQy zG%-+u=od0lN;Jb97 zZ-pwx0UO>mkf(9RfzQ}kdBeJ|ibP%f z=j)(Lp8qr-z-OWY3UtX2&CVTX8=^YyUU?th*r=Kq;U zh5wnz|JjlMvm^f}wf=MJ{GZfH$NT@+8p(V)6f28zo=p=+i}mwlLk8G>fs5NAH2#v3 z`YGm?VlO+H9*dM6WYdGngJ0Ds{YD>OGuWza+C1^)Tq5IJsFafdjE8>V7Ty{KmphU5 z4ucm+NdA(FvO2{i8b)TtW5=>3e}DN<=n`GwDx^|SV%kc}N8BiSe!QtE#4vh7!K+q9 z>(_n09%7tZYI{0WFVAy4=|QJpl}MjVPeOd3T$5~9aUx$>ck#v?0`&tN~XgEp9f zMAgGbOMbj&{9W)>?(mLz6wVx5LznkejOll)eq)!p#0sD=y|;eH|3YC+)hvEv?`F`= z@RXt%>_L(kj;Iy!3;29JL_cRw4l`8M48^#&qYHB$e?PpU;!}SOWbG5h=lk@pjq}*H zai(Tc*f^N)>~FBul=R26AuP=F7B=ff<)=9Fvj9-L@-Luf4R3;uQUM7=*VZcTK*T+5V{<`lSLANFO1}Es0sPkU{_pvigV`^}y z5Pv?0@kN;wwZFq91s{6nb&O4$JYjaNmLGTQS9ne)HJvC=m{=89 zdhqG4v1n2p>fa_{`-yYf*&^>D|CI_-7o)0P>mQ*v`ZB)CKmRdR*Xi0 zJ~aQjjS=-WKd86yDhhf%RQ+vvHEyc<08YxQ&T9wwi@)wcG%BLY1#q$Q^SKZof8 z?$H}%2l|QN6+Ebc5_<}S^MfoB)zNFdSD;Wd@YnWXJ{p=B*S_8@H`JS##1eiodzeoxSbzqe-Z zBb;dv7CUR1v~=lbh-U9oW2k*f@t9j+h1E;biUs^3p@BbsXAkBFhv9FEhRWKS@6kze z-;b30^~50R6JJrEsLZ2?lf5gd@bc#G?L&80{j2(rRwYtX?xqp^{CkQ2_P|SF$3s+D ze(if^2Vf#pn3&*7KUaR}ae$*e`vk1IuPSuxhhG1F9o|7;{lDhsmWpVqK3yF&Dhf57 z4;)*ZSvPS>ENS#K*^!Tfo63}qQa<3$LGz)xFv!-^aM<}a#FDe#^E#((o85SGU$Mi@ZWwlD{--&u8vaKBQS`=E)(*g8GMnr zdIHRdU0LQs9r%yr(5{Up#6Kkx=h<^7jIVH67NCsQx>@CYgBOpCnTt2tV_{HB*x*d% zjyD?PvTAA!C(A;3+6iOVd_FnvXMeAnRI-tDzVkC^hl?y+cwFzCVS<6ZDY;(wDmh@51-IUI zS`mU>_6l7prf@qgEq{DbccFm)sykM0ykS7tf0@Z=V6GV}6vtFL5zear&R~f_GEtRbCKMpkrVDmgz}%*GwUErf;Ef`ecf> z3!$P2Nhl`At!@z(QeAQr`#f^*@NsL4<>q~EkY037G1hYstbK>oy*?BPsM) zlC-g>1v@)DExs9?=N1cI@qwBnO=qg7f`+$WLD$@~b+L>?TJG50?3uCN+db2dD%%5! zW`Zin?4|aco>GO8?j{x>bN!b@!n;YsrfFoI4i9+GI=65_>Uk@V-Ukj9nT*y0 zIO4QCa_T+S|&;#t1NiYnPQi2Q~pxGGIaToVtdXsrg(F!0e_-&OfuIa4HiV?FTSv~ z;G%_=!0VfwR=odzd&~`L54-Z^%P1#FZN)CdeF&d@N~))`{=*hI+Tp3&tH-609%)4@ zj#Z2Xn3V(*Chz)kA|2{I#c!2o3F%ZNW8DZbyYby>CuH?JcO{R6EUM3{B*ne9-hJ=_ zx&qm_^+G_oo-Ye=yU%dr<(-lZ#GnI&pP02z4`kK!dN1a~p6g?bh_i|}?gRPk2F=Ry ze_J$0ymI#YN^d%qc(idUdFNiqt3tDy4fj6@_tc}XRvfr0WhrqchwnV-L9~s5a~+!7 zd8VSzifrW-(#XunPIr7n#SEsq>iyz^VV1@PVYaU*?FNxji-F zdgN(>4k^1MKb0A)l{*T$p8qVi`DlV%*zh+=sZT~@_F8RM!d`7}XL-_PT>>if>7nOL z7s5DS+t1MgNznPr#b3qoaUeA*u5WxG&~d694&Hr5Q=b+}$ui|{@2LEoT6c$b_-^Lu zK?8Noj&v0|e_p;*B~eX>0i=6e?9l%qi#{)G%C`~23W{kVJN8)C2+{`V`PFreNdvCI z&8m)w+SoxJZO^ULa%aOmXJ1jD?`ba_=cs8%LQCq)(L_R(i(5p`(q1}dzez4)e2F)y zAQx`^LV*V|W8EdNP#qLD$udZr^E(Z?FtNQakIzE>v-r5ARk3Xir}sPm61ZPv8vbwUuax^xX)B#*!kH76w-A23~v}`#MAqU zr=Ev2VHszvBee3W7JVfq(E0~H<1EF&;s-lEK&fM7D4BALaTy;v&q&Zav6ml3m>5D; z)uM=Z$s71$er2PXrVv==w;QB~Lt+a|)eh^cRjV9{DEXnvLdz;sS*&$|(A83Tob0*9 zNua)P6r43I*+Iut$y*&@e&j)&P47g)99r{zbe50n?)sZHTlsWFFCK$`CqHUCOImt{ zDlE+%QuAQc0H>A|q`Css(&{A0HQ6_f%Ur4l=WJ}ZZcbXHd&O%Clp1OtPNx0avN5D; z!r4c@%sJ4U?#^7FGDkn!Idvx7GU!qKG&sV{XWT+F9#u~h%bn< zCgF2HHAUCuVqSP`IXm7-h7z&T1`}-(Q&TZU&B-K&R9w2m$?jB27T zpLnC6Wf3*~GM=dHnI!1kvlhoqTd`sQgUA5>zw~*UN%mbi$DnIC(>_Mk-55M|+ zPpDph$I6>>m*5MBLD#17C-6WCsb0Akyj+?%#x;vL$Lb-lueV!mNjOPzA1e28>gt63 zA!p?K3gGb|eO>ME6wOcb=0@gaIccW&hIcK%{CSt87Y4_3iDypk*yWM0x81%e13fnM zO~k8PVS)bZnavf@XD$G7mL}B}3Y3fs9Ue4O-XQTtYR8N;r~>I3BDNz0m9ivVaX5HS ziw8@dBRv-CJ{KrV3XNj$%(Lp)vy$_nM!?>JSYruneq| zUi1Acp#u>p4U3)BBj*^}RqLLwTpUQOlHt@P61&I#M2a=YE;zTpIq4V_ynGV{Sy+bX zdbwCqmLCvMQDffqB@6NR%y*X|JlW|uKjEs5TKU&dgJ9P+>yB$&3=lvTX$9s$^1eda z?_SC5Po7C7H@_f)b$%02t0nY=DhhJboh5C3dKMzq5_?2i-zt z!+*%JTiY7aDn&k!8?GX(mBqMJqq&#IWmI-r4eiDySj#G z%d7~zS=a@aU!~Z%BH?W52fh?gx|C>NRqVk|uGXJ)Ym%LV~Ks{kv*ucTh z08PyDHF{(G7%5!WzrYGMvZPy1&p6^}W_+Wqw=l`7BJcx{iibi^0UIXy!Y@+l_K`|L+5P{mRQ(`bU%^AhYo{7eSXb3` zJ=&f;M-LCmAEXCc3@FQ4+2$ABBE@9~$==U|uBKUQd5ce`7|hrPn{1yo){}8)XBIPj z8Ww9PwNWkfhbSPxCLh*&clQ_Pbq7&rF6rN9?(1+_GCn>z*Vvo#2ehnwV46J0^CnG! zypvo~x`kLUHV95P9s7|-u3k1I*<)_tqgO6E8w8iYWI7zi4kXrPq%*yYu7&Aco&%IH zW6yO6X&az%B}GoO`DTW}sivaySDjXYns}bO++3pMu~z#vxbM_inq)wc=nfNb`N{V~ zn*4zO9~V>m`_x`@n=KSuOYQW>oiy;meoPmabwySddRfdFvU*~_uQX%F-vl6MX2nod z=zC5O-{4$@4S>=a8$vS4L5q%5HfeQup(cK74dK9N2o5SGJGU|7)+_W#09hzi1#nZc zDSGW)57VFZe9Tn;2D&)Sr_8vR>)^beqV2|)*->V?Ye2ltyHkjc+fW@tOo*8~8fFv2MaWWPuII;NgL7 zDdzH-AWFM<8@z<}W>>0X>u;4@$KI$xHI9j|JNSOf2@bT<$|aArk}ON^&?UF9#272_ zemn$PXdMms?FF!Yto`n{mf?PpIvDIZ%Gs(F9*tQ6U@o_~5APc27By->Pd{kdem;|-NVZPl8 z2(+8wHl7CfXZcRYBkwG;2xiePK5k@$f&u{JLy~U(*63!{sL9CfZz=KT=KX&zzx>K> z?9@H~RGsd>3KYNSrYJQj9s4KlZS6^Cn3Q65ug3p1KG*ZN9Hg01kCZ5C1r(d_=Qlt7 zZQcFW{&>+!?Uz~O|Nfo(kF^d$WJhYnetz#l*zxB0I#$JYjg>+1Uy9bV{?3UxjSx_Cls@z)Cb8p5be&u&Zix0(ET<#`2= zgR>$cdVlMR$EXSG>)(?8|L1Z3t#SMeptUxz5RMD~E1~|H&({FEdA0qc|94BHJp*{L zb0+`VQvV?z{Cu(4JHSG_Ui}Xf1w7|ZY3-NF{gf)gxB>Fp@8b0TdH`==n9Huo&p5t# zK~pFCTTwei^MPf26yt)eujiLfW)`&(;C}uqB!*Y0yH|laii5)HW{v zsV{N|Q{=PoB0XYB*u`2!VI9Mwo;x9JPJ}%(14*X<@~l`fbE&$rM7Ik3{Tn-{go(Jri2i(H;SHil#*xMBM{6=#ppi*=% zhpeys2TK39ou@Sk=U4~L0cskcI#&LYUhDhF1>e_9N0g0+h?N>fS>=UYNS<2OH3=Z+xfU4o3Ch8K_?}~Nn;fMbkf1Z{uuhn zcU4HfgE!^Nk@JcTRhH3I1Ux#0wplkOJy38pfgQmD0aZd*`eMTQ3yM2Osd7E z)msGu{MnA#3)KulN~W8~ANr?~))2XGMWT3?X} zR;(AfW(uJUarL1{28|3Jdg}X|m9+&eLNg=vZ|7OxH5?IqJO;G~8CK#(4_{bl&6H}hAROg4=ApMj54z&T`LKbRF>JZLkT^M{+QcC8Ln*w-y+R7Q(*b- zgK1g5l|{&P*8|k5xs-vx>;hUn&~>?dc@Oj8shr66qnU;M_i6_DMK4@nX(s3&_JzR# zOo5J*^!Uk5N&RH=H8aI@{&%j#eTONOh8(<)KH2_N@c8yCE`1sQ_C9S_w)Hu}=!5xk zDXtmkK%keL^f3GMf6?3raZ~n6DzH#W2aqJ&BX0?-?2?LIMn`6x82L2Hj@|=94q8&G zp{cPyz&>%LCO1w`BO__fSSXgEkfU^%Q-XB;N`gnMFthvICP3hi~35d;? zrq%8P@6e`S*@Cruzp)@(G#_UF0?HFfpW=7gCQ!MYHu5tYPmFcW^C%)NY+S5VH?7{B z!d)>&*AEG7zL+{J9`AqeshOZ*yw-8E_5~W>wI#@c~(xmx9ODV z2`J(cweaXJy3p93kWj~|LUCU_Pr5%l>*Kz2%Ex2kc#7#GNQ}4m_%ob73B1K1ol_x~ zy|?{o^0H6hvYzhOd<9c0FJ-ipw8!VSZT5P9%kquW6BGIP2TpN3Dm>^oY-wUMNtLdv7DlEAJ~Hq<*8Q{MtE zQ=P@nt3b{ye@Wnezk{8yo20iH!q}w}3;UE|qx`YMekL^=+=MjEMbFP@?`^_uC)l(P zfq>m&573`Ck^T@^1=o=q^1=JmG}r6<+(Ie6(Ag{G?zn|MNCUtz-QNVB|Gji(lNO|3CXU1(wCKA0<+CZAJzz?-ZY2UyX`EMeu9yewy;c z_S28}s1KDFE4D|#7$yTB<+LFXD}d_j5$}*b;nm0(_FYK@>}{$Ct0p@vs`~&<220GC z&RTd&+?riU53V?! z5Se+3Xl%GnK0|0BH*#=Srr(scb4>}%tM?wv%z3QGs*N}fwtvs?5%^p>&r)>6?GA*> znpYUrsC=uYUnNm7321qD9j%ZW*fr=8nH1XUMK<&4qt}h}(aI82tf-QhF&?{h_$GtF zx4i7H3?e)C0@Oa;B~3)L9b^AO`!<;lL?Do}Hgo*8vXs`!hcqjmrD;N&JI&i#RpWhm zilkf52S}}L?)cUSOjy$ny|R^SNx#VxAiSTqoczcy-p`|k3Bg*mI!IEB|5AW5HgU_9 zTrc>sO;7?fM=%^Q1$CXm(?sT4kroSx8{hB`@SnVcBlm(_dnbGX_O7AIUEpZVPX;0d zPYluzBiHFrh;l`B?%MpD^uFpep2a~9SK&sL_>HdR3L>1Xmi+l{WsLhhwa@9QOH$xGKBOg zm=B6OZt~SSe%SqLoyVrWKUgSIg|MzgdDoj(?uFhttQ^QeVXQzrnXV&N-RTkh(eGhv zjy=btC^rc70N*0kbeeK(rYQ~Ec0dQ%nAGz`0$0un&7-VVo;kZ~Q`Nk)N)@mG-fi-H zvl-j>C1Lf7zU&ofkzVsrp2?nT*L?5HCL(3tcUPfNdIu-~t(}d@O^H=B9+N}*Ny|WVTkO&(pS0aOX z8&jp^!uCHeM3}_CNq9zlarfvE#J=v)_X1oj>FelGa=Ny74|XRnL-S5|qNYu#6gTI|^TwHVm&Dk&NB0{|oKFhDN ziGj8)oXG7!h`Wt5k3RU*bboc=II}2)?Fi*o1Ow=$$Cg!mcVx_n&etsiN~d0O-aM`& zXd?6DX4zymMACPO*(1w+$WDF#^j2md*)IHGO&x!`o~b0gvb!^4_o%}6Z+DCu(pQ2q zFT$Q_id-w_s1o-5t)X-GCCN+n&MP^}K=22@=w zE!j`gHK>8rv=g_}fDRS?+y22 zvfHpKV(1X*y*&cBO+2940_Ql3Pm4BKjw5gA(Iq<q$Md6& z+kvR}O)-P4%a|oL#N4j->B$x7?m4$Fv{7|T)BnceCtN{uw2o)d%8oHUwC(%;i|Tk3 zya1D5T)Xe_d6#*xAm2j=DzkFeC0ut>>me)5NK`g~c~Iou=rqiHa`QRkWwMSlxU?ns zut8E@JxfgL?G_=7{;f=WiJseRqL2Zb#+03;PniflNHV`qY`k;xM?#C=7R9(Seo_NJ2@JP+q$LU(72KX>en>C&<{sD5;wr)~w zi{XthIeL)1OB&-2ld7BjGU!k&<>MQyRoE#$(J^lY*J=hUM%xP8r;l2X#Vj`Ta=rS{ z9C@an4|PV-^kHyaCBYjNVq{R(B;}s$|D4&QT1{o9L;I-`8a3|*WP~71>;LPN@EYL}_%xDLO`=b-3$S%o{VC-`3%JNuWVuMAH+e^N zw_B<&P$h!>3~4>vypI>)BK?u%hZ#RskGfvx3d$6a2is5A`tnzqi2xn#{HjUw;_H0A z>Dn56SOiaGd@RC5z3R*0%qovhF}v5*=tgDO>&7giiZtLmU@X`3UPfUY4PMNMd&OF{Vphq9;Q~b9aAl%caDLBvk7OH{rRP>vV~x0? zp5jUH{5knk@_9|QkbLQIgUkdxPt+vYUPKYgxCiKyz6viI_v_x70xEtOi;_wd)_y^^ zOs!qp^OFHDUl6Z7`wu{CMrAKBP-YX8No~Xp9q`AK%LC`uOPEFBvLNzexB$X?H@fOf z|EGuf`k^^u)Hb6M4vFypfLLiwJBjQGn~qtn^~II*Wd&Je!fx+O3-$SW?`JOMqzaO3sZ8nv9 zU>yIVr`{BIh|7FpWDtcGekpCSZ?)4_n>|vKF#ALV3*W;?+M!>4_IN4pZcs9>bzw~I z-5A9GOM@gy!&uv7{<9gpc2(&L&~^qyquPwSCE2mJ?$YJU<++v!r`s6eOP)sHoK4xR zwD08!TwY`~s3Eg@&oJEm;3Lmwz=K;TN-zr+#Z_2>(d6~i@&~kHd-dCabjyj0q_0w# zy{x#mCF6cE_Uus>dT8J+Wrifi= z^H_Tk<%@obO)-f}&I{96^jdSuNq469C39O=VXtxVz10pWw6JI)fi!32x`_?Xj4=o? zHf)zk(*s41q9u@W^O|k?mn&%oN^Z$;lbrVekld60zDQu`n`T?uLp^TkO1Y7m8McZ@T0{%`qu7w-!(n?*7-B@aGf{b2~G*08M$Sj1Qszm~hQ8<{o&BKX!n=R7yb+ zddKWxa4O^8ncFL+fUu5@zg#JP{rY1G7uaA!Id&OnYmY{ecvVa45e5F*mj|_>YPhx4 zsy6AW+eibALU(WgAVw8lD!Hz|x1iJ>#NqaBZnO6o!H;Y1VQO5X*45W5yjPbV+UJo8 zXa0}@3}Jwa5N-j8^Ft1wgCwh%u8dS^p49KJ{pj~b+5!n%r*ATPgDu*bx@9T^>3eWA zB*3KP#Frisx)7SCg2#+MOC$k+N>}C)qx?*AMxvP1*cFD{^76+$|ImN z^e$U8JuutY(>#%Jn=(aw!%@)hX_2S&w1O>{=K9eAqx&U49udIF2F|*he2*ZS#Ra1% zk6GELRacYD9^n=!y1-5{;Nb33q06uN7M$GgM1~Y2@!lzjZGlbi7rxQu=T{!T)0=@( z+#B9Y#k;HTbLz@(n~jjvpD~bcHL@)F=&s|&WsC+Yo5`m$EVPuJ8`4P|->*lX5nY1H z((={54%TMlx)SiBL!!J`*6ewhk&j<6sr8Q5(CLOP#MyDGai*d0xGy%Qul`60e1iK@ zP;pF)9>;cYo=>DKre>s}5}V)c6UbSqNhcY7OfbAShv;flmX4Vgo4?9tYfoPx48K|k z1FhSe+97lX7iZ%+aPH>aJBGWiw@NAiQB3&lU}HxC%6F1#oaE}y6a*?s2XR(#ZQ%@f zvgDn)7wzz_;Eganx16Wm(L(SQ%_Gt4eX2HMCN^-;KOh({)m)$In16RsO4bafO_%LLv(2r2j*>W9N!m{hbinGMtUF)h`me~|UuOi5 zJ(EjnZH%FKt`w|2K^%n?6PS*VKa+J4&Ku&+itKu$Oqw3r8rt=1UI%c*PY1Z$`diI2`^VsFAzFle<1@?hD&kv<~neW<-lhvI}NwVXMD%w zgVIL&N*4=v@2RDaSl#G*ws;zVT=#xLuKbJ91ZJH^b}pPm^W-Hzz*cnx6vpXq7IqS} zb9t^dxunWKv#^qKsqys~8!cEi&~XR`Q6j!>*u6A;2Vp*bzrmCH6lG zVINjGVp);7%F>B-whW|KoRnU!MF(ify^DN%r|N2s98?*8zk#b$m^@*8XIMuyj z@l&`?miq2@5>$DHZ^pxTHYwSYn}90Zs-GL38d?l70ZUol~JPa z@SRapI6Ov`0i9}nYIXZgTGQoUKE_jQXbCI>AN5ztMhx$Wbhh}{Rwp3$-sPb)TLI%XP+e{fWWCk=Ztp4LSjZo|3u{D@?bn zE}3Bf(oPTs0jE2jOR93rn)A*rcJ7XyGxyC1PN{6mz>5yQu`9M`Tw2UowN1m}zYV9Q z^kE?$=ri_>`sBcQf}Y0CA8YnALiHRa)CSu9=$|g;mFE}3?>h2Nl-`35L!=7TavtX8{_8>!^@ zSjm_Ah>Cq(K1Q?3<r^2$AjCIy+$^RTm<*{j)c^{sTAZ07nXMj z7#}wtq_$rGUSDFu3i+8?GUT?3Vi z`ulYT()rO*+$o(dC z*x&CJidUqM9Y9Da(l>5SG~C}Uv zcNp5-c&xSIc>z2%HT4ePNANrwN}(w|jE(1QKF!K|z=@(IZC<86HggK)?xI(8IhldH zog(d`wx*=Q73(ol!BTXgWL)1DIsO78ZSv!5a5>UJ3+hatdtf2aV9o%p;4ghr0vOagcA zAtXMs`3m^0ias>9ZF+iOtXLQ9j}T^1r$>By~@1bPrleVxm9lR+I8S@UmiHR(qpUn?gL*RasDKD)}vRfTI*kCs$Ryg>#5zn|$mm-lw(R>Sf?5-oaG`IqHLhN=^#GsPv?>1EAYz4#y7pG9>)K6;zN!CMl;Dg(SqtGO<6_G-<##em#bE~>(Th`yvnmEsfX=t2 zbT}`_eY+I!)rO?`Aqu7&iJO@rzSZudo;wrLdUW~jbq=FW*jV~FtCCC>3GdD#8ddU} zZyZrE=#~-X>LX`u*%HuJ@Do*;s1bO`O7M+aZ?wb@WI@*AF~Wr39>C^5&A&Xq3(+?4 z+`b?2N<Xt08H7whz!j!-PjdU_6v0|AFSxxJXE{oEdpP`x&Nza zu=qsvs3fth5XxCxrur$7<~rEEW&Py`x&6LEF^ybRB1}J!#|Q6?%ARTn*alSPYJm^b zlPel~fY-X%HK^P^+;OpFKi-)521x2BL9@;J;exe#z*z*lM8v@>Q< z>Ck;fQ&1%cy)u(?OFX|W@ur=tsbA&@+uQM5DLfvZQX6xrZHzOYSLQUqpav9Cg>9+M zs%L%5>ZX=(YDGJl(2A=XCw27EM~&G@VAi|eU|aGY>wW?&Y2`9*u&%ArJ_SzxnEogx zlr$Ct!sXGAz)8v~LJ8UP+FJ@>T1^so3NBg}#5|LFFce{pSQ^eIq$Jp_vN1B?&iDyt z5XQ8-O2PE`Hw@-Y_ovI0>e=+j=ML0qDi7)(0iDxVD4ScN>rQFHQ(ar+H%f z(}MxGIZmuKIIXoW^Gl}#W~f!xrB^GyUn!gboN@3_wFz3fgf?D)yGCdgR?SovR>eT7 z1xFu{-z(($Av}i0a|7()elS^1jQXxYCtIQ)-B2ytyn$m?p1pnEQ5Xp>HU=0UwzN0)Oz(<>IuNB;QLkOjRIgaVbjx}Zs zXvJcIhL%^n6wowqBWvxymo{k(q+5DQ>ze#%CuwbG`_YcNIsU+Nw*D#iccr`Fq)y8` zIX@?`S4(gx!F&zqlH-zl$vLMLbL3EzJ(cjY2y4B0BeSVDkHW7Zu8_VbMD&Op;Svth zv-cjD?$;<{VpF`*d->>lhR0_P@qg91?PG}5VY}H%JML(p9wiSPQUw};QMIRa&}Vif zS1$*GGmi)6$-TAvZlW%4p2(^QAdF7BKW2Bfq~J!?RK!>ue%#@t7JIRWDSUu>)G0+eGQKHt7KtdhynMUs z`UpTfRQ7l@|LTYtzy&cYiSa>-D?G85F2{qg2 zx*DdZ@|7t`;J-tw_rzKOi+WBV|i(Wqea z#e-Z3Y3w|%tA4#r9V3lRWo>l(v`C*lgf|R;JKyxuB8rx%-3))ck(i*Lt}TVBS_2H2 zNt!w8XWtXYg3HP+w68A`y0)ObdsVtMGaBKs8=m*USqxEUc=zUWMb@S*cnl8=3_7Gt z==K2D?=c}1k8l{Lqp(9N_>OeJM*tGY&$R!yqmO`__j1sf*y zW7KV&bzmZU^Hr0kkj1P8#UQbxjTYU6=c_8yJB%kNFUSuKpP~}*ruq!IJv9EaC4{3ZJ zz8l2jpw(`@&fgO*Cb&?YUFZ2y&f*Wbu|9VQjA{|t8a{0!1bNoCIzkw|#xq&15wQ$A-xK4QSaq^$Ii-VY zaBf4G7F5F0p~wdEjqJ2kd)WsW6SY87%;UtiSWfI&u8?my>Mgg~K$Cdjs8^ zxT6Xip;ZYZC&3`;gt)h4&&mk9z;Hw(VOMS+vbgeg@qJo)CsZ|NNN04+Kk5-a|@nV)G30^%{%nqTPx5H z`+_J24)V1oSgta9SkmRoV$DqDy5Ow^hZY*}QKd(ODlUO(aalU_%ZZPPE4jNQPTb@3 z*wP%EPY7=Cy)>HMZ^fC;rxP1U;-{6O0b~mQYLkUTD84!X&VM1Vjf(6&z;h;x@aMk- zM`25tb#fJ$!1T#}=UyT%>()PGyiWFTkjEn?)xCvV8!2w<*}HB0UnLto8sIwOLtKT6)49&_qcHHZ}f9#O_F{9o-*W2MWGw|Sl~l&n}fdMm1nvj z0Z_0E!5f!ICw1N#}3kI!O1WO4v42mEtmeK|Cjz^O+0bhDZDxIBasS4gHvCaZtA z&&UETCR3E6wm&GBz^vm!y!@=u#c=uL^8rc%gG6O2wW9+%CD9|*43@s4FF_PpBW|Xg zQzQy>`dI~+M5>3)^29xwm{YOJL$W$*@oDEqoY7Ub=UklOd&dNB?ox#J-F-Myi`%sjSmC*Cc21G9*O{=c5YylWs`{t&FP4URv$Pvr@r?3BU$N;Z8Vj|gM?5;3loZ|Nz1 zj!4byQHQ3Zk~PIT%A~{-zWLvmsK?X>!a8taPGEPcRhKbXu6!>DRqhRk)+(M0zb92c zo_bj~KWsbO8FA5GvxM_YH z&XIM2NFNC=C*ErYOt;1dO(D{m;|65{A?KI9oR4CqPEDmp!vW7$u(`yn7wYk#qJaZj zaKNsCUBhH=iOFNrBL^~E(i0>#J|}ZovbA8BPz9h6OpK)PaC$Ap;}IifA6M30dIT{t zo1T~3JdR=SB}b~Ydug^c{PLUnzNyi4;OUtc>^Jbb#l&F4A`9Mm=iJNJ8{>qOv7AYT z`r;K0{;!z6Ci{3G68f1~a1o zy{n=t!IszZ@IZgN=*E4k1fjmn(|`Y~E}>q4qAW&m4MU9R< z*uF(2qUx$fbkV_n^1YlII(1W$nQ%;Tu{N` z@U=+V{VxP7u{;&KUTK8DQH((&m&j>DlB? zyJ}%49nD?*xOf z?;X`-yM2q=Py`h|5fKoO&w_w}3W#(C3rbU})Tl^r(t?x_K@kfGsPrzqOAQ2)h;)$N z69OW=gq{Qv63!FLxA*V2_rCX@anHEtjx#?0a11eTc;DxJ%35>HITzO-*hEz~wWS(l zfDS@=mLXIcpM!6v!%dES-v)KES*{2BsMndjK6UI^6!<}r_J3x`kkAbNWC?2Uxkw47 z8N)k1q?+zXmOvr(gtLCtYZkh?zlh2Vj|UtLyt!?#cH5Ju=ukk{PVQgjnv(|HGX1yJ zh&2*jrue?&xij5KLNCH7-*Y+2IPNL=sKE$L@>S{bAS^f!wS zclx~pTC0ot2SP|X%HoCc4ehzH&V8F4W=t8oWD|J&9BWgH-Um1GsARZdQdHH3W{Ar7 zs_OJm1}5jb5)unGyM_>rOz_cRN}BwhdI*bnVS-<5Zl~@E;u>Fv{F=t|Fh6m7qf)Kc z{qw?4di~E~PZnicN6Dv{WYJ^W1P2*+byOxf+pg+V#xzDqdrg&E(%lKQvRsD3iZ#VV7V|mF8C0SdpGcTdB zQK_RRx*9VTaj7t?rOhHR5pk*Tao+$?2TIy#H|b3W`AX!Q%=y*meR$7B&D(P6ktEST zkso$!J~519`P^?M85KZOf3*SEUN`T$Jgeg|o0*aD?a<|U?ipTpr0@AUmq8%%y?k5> z`CA8k6$lESo#*+BLN>PN1?x@07W19(Cru!?XSns$Iq5|_%Z%)B*U!l*R)>ZhL0cB` zct*Z{TDab)R1#Ia9;BD}#e)5q4v^P2|F+rr7kMqSV2SUcEFR62kB5vl>t6Wm6(jVb zy?}#<6yJJ^ovhg#p?)lvb^Kh8pZ;n2-s{XUlN>^UII0?;bHc;1h=6p&?q8L0rR;HqqLdL4tGj4RYp z|Fn&^kHdv(QJ=Mo!~aJu-Q-;P;65!rQvx%t#@RqHc-#!JRGv(W#oaPNPYpzK7PYSWkD<8crj9$UCv(61LYwkOfqSv&WFN>gdY z3*Ym9t+(In<-ZHt)KtNII+*vA4TSbjL5BNZET)EztK8s8{4M4KE^o<)frJ}){rwh_ z{}*ET|AcAPubcgUubTYdHTeI(Q}g{loxK)F!AEzUoSqt{{}z>B0j`308ckRRz+V?R z*?x<#&v7t{#>u}_ZLOB5f^L zgftK!bvXOkgtZA9a1F zm?RYgx13BuHL$>d{S!5$G%0D3LrW~q782`{gX%@~j1*0I&MGOs3*E+eO%DN(YyoKN zRY!VwbB%b21@C&HxDsX{S{qjdK;sE0T zZ*r&{)ji04CGoet+Wpd9W;ELKu+;i-FJV?+pi|6PUgiQ40N~lf>oXE$7dg1kjtd6} za17OWzGA}Sk{#>qJcYt0rh7jq2+maH;Ur9sd+aQ0azWQ#6PC`m!r6#8grei9jqjh6 zKF8X2GlX+fverW>013{~WE))aEa2Ca4EJe&!YpVBZ>?U-N8S%GD;i6r@dw;+>YM>y zdwc!>@8pZkuXplqm4?z1k>~!cQV)t@2}A#48#vC+e%ihV&s0R&&sVStDuYvrjw0Dq zRXL)}ko32C+#M_IDlGCQv=Xa7T~0Cwt1|GfXE*+nx|!;(rLHpyDH%+hak!kU?*Be8 z?4;O0U-2xjl~_q^z`J{W-=E|>UypbK%tjfYcPY-qAf&KaQp33sFbgki00?mqSTB)& z)iABvjy*ofeB$wahG|E|KTf*en&_VvdD@@Yb!sMoIg1sMDLpdky@k(Sii4wPF3b}* zx=2i*ZziiB+0yd;Ym zTy=HDkG%74S9F}m>&&E{>90s1Hl8CCw$u5^o{f=Onn=@OG6wyrS8)+oxMe)n>kDa& z?60z%cvYBs$-~SPRsjRPRh~%~uIGcir_eTf@EH1;pqN)j4l>}AWVOKOygR?Kk~nPTbtm9Xp=^{c|jYn!u~gC;_J zc5nwX3*ZVUnNA(Q3I_4>9Y)+T1z?_kPv>9gsqE5IF$YOuAPhL1h{xLz2<5eB^l;VR zMeG;xe7R?JKRuy+wS+c3Z)UjS=$jm!oEqwW=Plaa94b~se?oI%$gH?VY;O@`3yxN$ zIwnxJje)$1th$5dbF0evCAOPdlEl3)&6~ay_5};!_CKeBtH@t;DqyQ-cJqw!_r zTr-n9NNJVSDg$1;3@lwotn5DF=YdIy#8YTM?L+NL#al1{P)OqyZvtCBeizD z(BjF#oT(}+itr+_K?H3q|y$i<~Mz_@Le_4qzbO9>HrY&)>MM;b|ggr&NF) z$PH28B4b=x(*cY{|LuVBuTjs5NF86it&lE9FJciaQ`lVWCoBL~VSz4%R}@6utOfjQ z2NOfUiD$ToxtSXovsnkv%1@Kbkj(bsBr#&6p ze9KrJ3Wv7BauxX6q+@TZ38?VDq=M`a8z*^zoxcsWc6<-}<%%ChF3SID309!El}$mW zs+pm#{+yF;Q@LI~Vpi0?Z8>dRZTkjX0I90~y3mXkiR2Q%1>ML2%>MEpWi% zPV&WBAY$#9W9IBPN&W6i!`8x8A~M<{2~O85H=$;=spUDj^?_j&x4?HmYAew9oL`es zb_snH^@_R)oYfdw*Jn9CH$BD`_V3(t$eVG_=z`el-#b&1W`}J^&-G3&WLeoQT6e0wwsqFu@6* zjN_A}qWE}a!Ty1Ev|@Q>W-Z}hWl@!w+Uc}I8C~YlQGMe0Ojk*?om<6w4A>5IVPXQz zhh!va53W$qA0;}Ghikjst;#V$LGqW_yyhrWJM-E2Qsqo|zTUz`7iDzYn8?$fN;v-; zVEt6cSnEaqWc~EZ{Nbm0YvO&uG-tJl=Rn2$324iaJ?Z-TS-WlM*7NV7_+Uem2Tta< zsSBrBNBkIY|7V^AUs`1w+nGT9W8T+kEB$DhrtW8lRizSM=3gm2hv?*A7_`CIn$K$0 z8R&n6(<2oLK+ZLNM1PPx9dFUc#6dPP$Vc03x0cYiNs9{T#hmu-4I!V{bjR2X+aCAS z4=O3=(jCN3oNax&`*rg8OZqTp(9X@2Z!B*wi=3Q$+H{^ZIJjlY{YKyar2LLXmw&$?HXb(i=>*~Rp*4YD^@CpNR@AoNj57JH6MBYyHd@1j+@yTM8#d0Ud4<0l_t{z1BqcNiR!Q(Sv0OS zF-$oc`r5<86Gyg7EYIi5ziOqD5jPp_y@J0ue-5EA(h=Ev+43P*{pKg3i6-ySj|k>E zBL)gE^RJnhJy=2a*gC>g)ufl>b}N4)xmA14->&i{)V{g|OP@s;BP!Cn1~ldSlrE2* z@IiRQ!C-g`(rUXLd5|rV?~$RV*@BhkNQFx_zIt}@8nf4Q(yVCl58c7(XE(%9^sOA~VSQw%Xm&9?8k(co zDk063nPf)1$#sMBMXI?E1LJKqL98=hgDcQb(8Ueeek^`WrRjUT0yQ=+rm_`XwCLhf z?UFCgB_>Hn7+DXc4gXn{;*^c^`GlAoOi8jIYHt(2r>8%Un~NGMlkPw&2_Hi}Xt0I0 z4069pmN9!NA1!LEKB*sW;saM2D6K&wN#Xn!nPIEWXT&~L=Q$X1Zzai~90Zb{*xZ1o zbTmRFv0U%x2A^>|(t&OIJI2;*%J!3_^iS@{bqsgp{#uSSH!SPwYvIO9c6I-8T)xRL zf7s2VhQ^+ro`34;EN6txfBWJpQ>)cl%3ADZdY7BC&MU(O6~~m#{Z{D-u6t-Mpq7fj z*t0o89HX?A8k9_2p4*ae1&dm__Ri2yfh1iU&Pt1O@}f9SlS)^7s<`R8dSvceBer|W z*vHm7K@ndu68QN2>T5@R+$A5!X{)#oh7&B|Gk5OKM!Dr)2`(JYzpt~s?P(HOHLdM5 z-WItx&g}9CC&G5t0a3khoJ)mnOBJc|nu;mUD#dbAyJYP#^-T27CNH>R$}2E_*zWNHvp;zO4T zA@48`2Hv7_g7$gUbTaQ^UNB??rZ3|DW&ghi>`5EEp9FX;o&@*Rp)J>KH4*9&XsdVH z#}ap`%5g0><2ygSGclayT-k!bgAa%FgAK}T0-=7d%67Hd=W4sOW|x!{FCY#&4mCF^X}+VA03^Z5NbD~-Vs??E0OI;IzLcQ zVC+yv(DVs}q$H^)bVkE+zCV_KtbIXH*(x?7yJf0*XBOSl?m?{oi!i?h@d5?xA@TTc z=e7p>N@Z}{_D^a9W14SfKn2?yl?%UoV~c1j8+G#PX?s4wICfqDdW-B4)HcoJXHjS; zyT#yhrBOy5INxbjX!9oJ1tISaE8fkg-E!-j5MgN4&+)rrnN``hHm_P z24>*xxt!91Me$r)=iBELdk)_a6Y@o8H=xVtE7vNL3UnMGsN)6f-Gr`7#A_z~#Y0NO zMS;Eh8X+Ne;O_1!R>zy(_kW{zFLTv~tV)_Tz;ji2#LjD92@H`^C5`dfFLX<@k;sqf z^5B6w8L zdC}1%U`=)~8M}0s9AqWBWkbn^QU;C0uTU`d{I0wU)>x>i%hT#C3pt~)@JTX zfQdC16wPtqY%=u?Jch^xZHj*7B#W?Wa61tCbip|ZR)7KTpt3*XTwjk2Tx)J)F3w`nJPT;vKDPEehQx17o?ka2hQ zy?ggkv1dn|n-XntC!61(t;EA-sWFk~B}8Jd^X06gxk^Jy#(pnFk36Qot}<;Bm}c)@ zvd9o)xq%Hm91|)YdOQ!W9RhuT!%VbfL*{7t&JE7MXaIN1&O>S{@ZRo)?^$P0SZv zsOz@lI%?aq95-)XY;p-xJn&-J5uZT1p^n0x^1Y?2`S1hn%pCSkwN&Q)juA(Ee`nXj z?Gi_jtuG5oh{~^cBE8mqE>U1i`d*(-hzb=w@L8Q2rPS8E2=hUVmcY@vv%}qv%u5~9 zHH6&Zz4O?${Ic9yznhN|qR-wV@1qDQ9rHG}SbIYTF8c^gFOlx1u zA!;LA;ty;0F^6N}nWft>Rr{uAlp=^1P;lRj@63iYsY>VUen3=__E?!y zCP*Iecd%I z5L|u+c-P`yx+?vqKQY{OGjw3eKea9sPIVgAhfcqrXI*NO>?pmS-naOs=*w}w#v_JC zR}IQppC8$pQ71ETOvR!P~h`CO$Lg$b6pj}zW zuIE~r43)FI8UiI`+7xQF&Lu=Xwx6GK7mWQ9ZOt=)i!xCDMww{59(ZwmJIT4gW9(VZ zHIWbR66j*GHr#4dp18HvL&X^d(AKsVs72QO#ld$X1J?SlD^ku=+FhnN>PcaL5b-EjLe4zUx+)GbcDFUxkmiwH0v%gQloxNJk z@s+{^`OmiFRvD^3q4lI7A-3=TT|V5tj>{n6HO8W1s2L zs6)X$_;>k^eEIFS$Fr8z#?OSJS&kD)m!?qe3D%aDLrHP-ra;JgDS z^vX!MA#i%j z)q!bRVrh7Sl5;x^E#fdY=Zy`o*B5nx#I7g3{IjrT8b}M4}t#%|Rsa24~G( zbdyBvvoWkx$O~@IPIYcH55blVo{!=h~zcVKWlhJVUS&iwz6|| zBYxL_a@$DHssmFJ9E)zLJbRva6KVf>+vK`=I4xsLvr42n4}lg|(>xT|M;9w;FV<~r z{}cqxE0-uhjuLpY&OZT}0~IIDhWw_{Xqa()o^Dn$@ZzwF$o(GTx2RJI7n~yF!ZTUM zw(n5m^Br*y2K15~(q%VE_z(6IbJ=eQbfuUrP_PeL%J&)!45XR0iuAkA=araUpS1_6t$g`8?XM>yTs(m({ztzU+NUWauIkYX z(+Y9#48QZsSKar;qK*+0lX;)dZ56%x)*GrhM-7T>wmtL7m$>^2;b5V>CymOMiE88& zTTLmZE1EIK93K>Y*_&ci9f$Ko?pOoIFFB_v#!0puzO6x)(-hMf-!}JmS!ENLj%;%& zvGs7A$LgK%r3Lqx_BpjJ_Lfc6b_r<13lrr1-g+33&4H~!2PWI}zNj$*IdFF048iCQRI+>F_qnXqxZ;XKJ1tjSyEwv@w3$iif+AYqNW z@WNbJyPwfEHcUk=@HES_QU_Ul%IV}e3uMe~r3u~pn`054LMm!)QyPatdKU$z{p!Rz zv=a79hml|>KE~L1E5V=i^iC564cZDa>JF1f8m`kizg`-}fW{~2g6m9rN!gc&#k>rz zI|%U1I!n!KCBh+V!S){kbM*mUnl}+zB24Qt87*BHg>cY|lpIJU3yZQdyJRHW_BjDC z)i%%S9lx8^+dLpZ5RCo7xAiSR5%p2o_2y{woYiP`7h$o@9xju+Wa4fIMLsl`jzSuR#K}R=JQ5fzZ}BrgNaefFMa_@AsD;~Z z*CwVX(p~7IL`!)O+x*DSiT89InT9GA(NE`Dk)#~?oF~PaZK6f9Ocway%&ok5RAl#@ zm+!ae>aT`1*XB|_IovjP`BRPOtA-lpxqb=ih`G(JqDTk3Q2Dm%wIHm)a%Ea&znHAH zQt7(a-CJdS3wG`gLPXZ>Vy24~Q_|phY+6E7oRy!y7br>|BaZItrh`zY&w{(ydDJJp zeNN+G+17X&B!Ok(xZdTO46b0e0UaZ)2ca>>s(`(o@CY_lVdTWUvNLd;!)H!-x%$C) zx00%wnMrmH)EU-8oVHF+$J$h)tU~R|V*}cHT{_1(yAv)!r^0|W&&~{iBv10!$GvXC zb=~vE1Frghuj20J4!kiR_uF3#c?)ZbcJ&OgyEGCfMsy0jYL@DkVU{uAI>)wSv=Bt* z0OzBXk7;r#*p=rLjE92VRMJMk(bOK{;9VaRqRFv$UO|WT58D^XesyZF?d5V$CnG1r zJfG6Wd7JZ+ReevZrF!(PA_A0{p0ZSpI@o?v@84=}d$%b1TmzOs8L*ghbx6=g?l3Ae zLqVOgOy;ae<{(Q)lq#5AJrg+UjY_98kHJ6BE-aRd_A7obPy2S|3V<9;_uXY(H(U^% z1BeME_YbAJe$gh)DJba8+6&P>J!1;ac#C1FHI4alC&X%V;Q{V;rDanPoLzBdz!e1t z85t(ko;l{WOtb`HH$aSQkHAZ?1LrAU*pU8P(7r#b?tiHfU+x-XwR3QChDt^snLEwJ z*=4a6h&l9QB_oFl}ceTmty5ThhC7*AcDRj%lTf}>se&%x{xh-Ti5zM z$y00;xv9VAAH{Oi7SfcPb988Dprv?){t9mhhE9e=b(EyO5yFM=Mq!gYo#uM-5bVVW zawu8_OK0g>C;Kgz2{+<|M5n6KCt3DNAB6#`bYdYQCTy0H0Pqb*95s(6Nv>xwN!@wr zAT2?38@A49Swp`tGGHCujOuy3-sRj{lnt|f7>XZzGLn^aauMV%5R+ZD>gZ!bBNq?7Rk(+~O#y0AJ;p9`_)t zR-$!5^!a+Ly0nkjdsugAuc^MHt~KN|#1*}r-Fl5?ab(%{X#6g@wk#cXFCs+93H%9p;j+WM4N9%uR_S5-ht&X+wwJbK;n;HBqVB#ICv9*7i}*e*Tq4X$*D$N4IX z9%JOi2C)gw+S2(Y@`!4JId5#=jG0tPzu`-5QV&-d<{12GT)lAw#7@kNV4EwFSrw@- zMp{o4 zOCL)h77kSmt03YpN?%(ZONsm-QmR&oc_o?=w%e9HNoF=v*0MPiN4wF9NitRU`XdY?)yW$uj|;E1g{|G3`+ADgsLOSA z1QeA7!(~i(7XmmviL&A-!v5^XfA)}qfc5YGJW^hd1EP1xTj`YkC+S}HZm#Lh;s>0< zw+$-?xo+uj+7lA8C&z04P!Sn?t?jZCodyL-M=IMd!LOjgu zAx)XF{Z%SL^kr&A`*2BPR>8bRfu-Z_c$wxwP{(&3|`H_@5 zbn3;PcaJeqk5)~*oPAVCB>LE!Q>PIrO1Ax_=F`m)C4*I&vmcsM9%w0}iO`Nug$aA9 zTPFpdua64r4KD&ktq%5@$9izvGGhFH$ z@nIQ1qLIcb2)mqV6oBZHD6zLs^hoI9+UB*2x5^Ao7$fEOXr`eza@m7O_qHbFG1`0X zvgnnb&55}Bn+xzrXXi(W^>4Vg;=H;<8^5Gj*+5IDS1&2^wdX+fyXm>AgN2XoM{fk? zRo_DKsI$pzk)ovUp#mB{p$U*n1BA?J z*75_7${(z%%X^*UA1T6e(ry(z&sS7o)IH)tJjsy=JpJixf&W=6#(PJ~LG3s#QHRiy z#A`AoclwIT$f+cg-tPI1LZn2|zW0&3+qI>-j>dl3wzCx^tKP#7D03;QMA^lvoEUA8 zBul#M2P&A=FZJ3R6`mGY_Vn;H@`Ju*oiBw2NZin!D?iA{gXi0+H{V#fLLDKzr2*X6`IS{BZ~7Y;pm>Y%Qig@Y!&< zy)m^n&VNkq=X^yyM~ho*Rnm8MLIdsM+^*nvujl))=TDZBIQuBwx;7+Jje0J5;ceN{#GL1jSR z@gDvveq$=9f?ozM9QsPQTbQE34 zwHLTm6%-3M5Ysdm47WD|=4-KDS#jtgFlUW2ot~E+Ag4|SRV=4nmLJ8Rm}e~~A$u%L zs^o?>vjGKO#qX%O2mPK2*3@2tkmn}T9P9t2{=>KiXDCqt+10m}RqPVvL1w<#t2`>h ziR#i!m-sU^2A@FyqB-8&!Sx+U_E9f5fx zn%9MT8_Nr{$d?1N<&-fgo)CzNw1jsJIAL5hj%9so- z%TLI^biq^Od+XIRf{$Exrc69M&ZthA2~j?l=2rED1UfA?P9HJ8zIcplIj5p4VxHea z&=hI^ZMK2v)An|K;K3Q#TBs&I^g`v}n*a#vP{ZVr!SMPBr>zpP+(xc64fM5{O5Y@8 z9xf1%)N)TlqkWHMN=WBo%ZKdcWxz}N6QO4q^yLXg!|Xp|+)cL$hj)5}&3)SsD^L&+H= zlv!$X;a%F2vdloGgomAlX+ch=H8FZWum!yCy=70L%w`VNShOTW(9QkR8Z;o@Z`@YR z9vtKBSz$tMX|#zY-Yre`VtxZ~i~8%EZZ*#=SZz_0X`^|iM1S>(8a}BRqX4Pg^J|)O?D4i-@QI2Z%Gs1k; zvpGq;Gpcl9<-82;tKnfo=8VaFgri?s<5yu?zSC=u-C4X|z#Z#dBg(`O8Dl^IDN>KMTfkzc50?y4D2KZTzM?g70(Q*V)0^hRW+S(YXN^NY027$~NXz*l;eUNozJ zp`k+nX0cF~?_asC4sp}rZ1opb>5a%9x`Pe}jULmuc z!pbAFITmEY=mtZ#KIwD;?XBSBA^Cotom{KJUZ=rH;N~={2^aVLD%*j&X?GN9g@1hF z8z`vX>@PbX&E8#j=kC2I1)SMZIMNV@?fULFv9&r8xVSb4>eb|Eu^H>CY0JsMKHfz4 zB|*BR=;l71TXQ84Wp>O^ci5o4d=I;hWIqjh4B_Ng@268$wGlfKN?fvjD}Q1ob+A5y zwY&W*Sun#&ghJL;-VIUKqEeNV=VCyyv}5uIi08SeX)5&##w#&|Iu(ba+(Jb^e?+wq zDUQ@sw+qR~F=elp;>v3)z2_e04)uLF>l5Zt+RIfK7`Ho9JUqX?cq8K-ze(3I6k2me&q0MD~{+PF<3YcSt1TG3+}tj zp1M2+kETA5!L0z6#)8!gYHi2oY+Gkn69pTq^0y{d36>0dO`LXc#_Lb1k8Q}!!hfhN za*%?P^h&-+GeWM;Ja0tX^_#hlbAvH9)BcXRhjFTDmlBaQRk(Hm=l(ahGm%3i79QzT zQ^_9babq8zoQ-I#o^mPV@hUZpO|$G^^J#m2cax8gcvR-x*3!CdBdZZkt`M5naFt`A zm`FC%M~6Z`rQF_8P6lm9wj-qm7WF@z>j4T{NWV{^RlU7!MdUI2$q>>!DTvLQXzEwR zzdc%d_!`Z?tdtEnRL{8S0dl#QttL1;I%@eFZ%HJQ5PtkCIk1KIcvtByj{25 z0Cel14!JtXgI2Q848gR>hwxmxaNN{Ylen2q1Ic+$X(YQ2&>RPa!8qM*=Y}H&zn|)1 zFUB-(u5HwoM-+6%m*2m|rIO*NmEn~CPT>$(cNE@D(_dId`Ms5(*F81@BQnN3!~8wi zlhuW)V`=4ZS%iZYc2~%5lorKJ*T*k%wkjWYxa2Ciesd#CZj*9sW^?rkBMC`kL};47 zi}|(>lUOzaF5~f_AhN0Z(4bd|(CbHBMsr|&hJL{6zS?*OjrwC*`& zQCz{$aw+b1oq(TmLzcA)Wyrhvx}y%2y*@F_*eTKUt9r-mGj*n77D0V8AD3pm>5sc0 z^yT{Xt-PM+PP%aW|m7-o94=B?wcuyMudxhMbVCnAEq&bJmxX1}FPCGIjw$+5`2Gt7u8 zA&t3!#?wAjcuKb7({S4!eP%CE=jk>WCq>i(q7QzwLoEJV`NMFcK5ycupz=bfqexz_ z0gwLX=~vS%(j48+Rd)esf*CFECZ6;%;R^g9Ago*$k`!4ue}OvZyCti9&0`^)*r4kC z$FX|Ge)ew~w*96gxochh{wrB1NN!_oD>Dd77=N94dg<;0`Dib_u0y7;Vp{2=%{v_F zYRW?wEi{h0EFgpa#?o`ZU0aRwS!IBGr_5wPw%i50KW_s;qG!*G*1kBgbEE~OB-6$(BN{pAc5@&39 zXnUnp=4T+OZ6wu9fK&lDIPyqBdZ2PzHsi_bkPflZo6tNLrkZ#8`c2lhZuw;%9>~TB zP{;$h9BERTt@3e6A$#|>j6eX%Q}BsQ+Yx-%P~_RysWjonsUy*^$MBUNm8>c6pY?g(V|j6qo3sS3pF0C$qM>_j)drRv`*L z0nk8mkM3xJ@uS8_Jy6Hi3Po9IpG&Z^4oxChb!9)r-UkH?tutP?R;@)3A+$B(lLobo zBsY$X&>Y5fd_KCEedK0(21#?AzBAh|fbETAHS6PTT^rydQJiZ~ zATo6E2bI!qob}aEkl*NtTg#!+SC!WbnnHIqpVpLyIuhK(pZ5N7@wuK)PAToxtDvF0 zfR$Hvb0X)`PETf2ndVn&y_CF_Fz#mlSpoL~(Z?B53^W*)1Cn5l?K}?7%oE*verZd8 zkquR+_X;KtL4!E;2bKF!k7W8$Gses69nx_+l1Dkex*RBc8u=6sxC&KpYL$4?6r+^- z9W>MAwmR~!t@+Bp4w?sA^AZ0{e%)!TRe(B&iPJmVuoRj#1T`#xNfm9U$F9`h^D`%Z z1msUkhoHNkxf;7xmz@jYU+AT*C-SOwIkPg5f9GmS1k*&F3f~33sOZ z?lwzJzfULU^Il1<6Uv5TaRORCp#YJy6eM2%U2yo5=E{~ZuX;sr0$|JP3w%REct;Vx)GyK^zV8yQM{ML>phR{(YrR25o2wP@DO^vdZ4yv^#~(axd8^A`vQ>)%uf7XQQ%;Jwr?ox z`c?0{Q4S!HCVpk_zsf~i06VTWTZR1R`}y7Jl9|CF{Won7f8Y1tp93l4KQ);AdtCmW zFAN;+?|Ja|JotMa?C}5l`~Vfg|I7WrltHK7Ao2A(S{d!crv4>nKcTb>Sv6bEC_ceu z>7O^;b3+py9GuJRowsh|r=}dP1s_ZJDRDnB!U*jfK#S<7Pe8cCLKWeAIpXR}FGf~3=pWem6Vukx} z{%UW{ykO#g{j@H@u%u%Mk#Ou=2|xkZgM)s#gk4EuJh(VJU^BgaWuSzaQ}TJ#82dTD z`?uNKiSt{#800t;>qJLRuj{qj6RJ;cs5A+FTgm+Obf2Oa&;KR>+`dJqfuCMg9o@30 zb#b&So?hJ5OGIbZykJ%CdIIn^3h zeSsrrWJbx(pWRiUX07z+JqGJAzH&Ecp4AX;@bf}Oc>EC14!Pg^C-eUL)ZrhW0>&5r zM}6wfz=*?}kqvzfZ&jIJ&wf9Rb<3SXUD$2uc7tNOutw)lSzHrL-u>&1f@vwpB!{eW zSj^qFi;S@B$MY52Vi^)#aJ@h6))mAbMphVwZxW6!wnV!7RCqjaYCM%E^>aotrsXFI zrgjsTOfg(#^UD+D$+OGDzlQjbe-s-vIHavvfKRA|ts?-urSEIK|MZ#R60+IZXWv zSSOIy*?2m7`RFAH3H|nQQRTXfew1S-HLE6{?T+o_O%3D+tJakLAHzlsyrO#ZjhJmt zk#rUGUKLL0-R|Ej userlist` | 1. | | +| | | (key is email, value is password) | Create user if email and password is not empty or null | Output success message | +| | | | or if user exists | Update the userlist | +| | | | | Return true | +| | | | 2. | | +| | | | If password is empty, null or invalid or if user exists | Output failure message | +| | | | | Don't update userlist | +| | | | | Return false | +| | | | 3. | | +| | | | If email is empty, null or invalid or if user exists | Output failure message | +| | | | | Don't update userlist | +| | | | | Return false | +| `Account` | `setStatus(User user)` | `HashMap accounts` | 4. | | +| | | (key is user, value is status) | Set the status of the new user if status is disabled | Output success message | +| | | | | Update the userlist | +| | | | | Return true | +| | `canLog(User user)` | | 5. | | +| | | | user can log if status is enabled | Output success message | +| | | | | Don't update userlist | +| | | | | Return true | diff --git a/src/main/java/com/booleanuk/core/TodoItem.java b/src/main/java/com/booleanuk/core/TodoItem.java index 655d825..6d23ba4 100644 --- a/src/main/java/com/booleanuk/core/TodoItem.java +++ b/src/main/java/com/booleanuk/core/TodoItem.java @@ -1,9 +1,9 @@ package com.booleanuk.core; public class TodoItem { - public String title; - public String detail; - public String status; + private String title; + private String detail; + private String status; public TodoItem(String title, String detail, String status) { this.title = title; @@ -18,4 +18,20 @@ public void setStatus(String status) { public String getStatus() { return this.status; } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDetail() { + return detail; + } + + public void setDetail(String detail) { + this.detail = detail; + } } diff --git a/src/test/java/com/booleanuk/core/TodoItemTest.java b/src/test/java/com/booleanuk/core/TodoItemTest.java index 095af82..7428be0 100644 --- a/src/test/java/com/booleanuk/core/TodoItemTest.java +++ b/src/test/java/com/booleanuk/core/TodoItemTest.java @@ -5,4 +5,75 @@ class TodoItemTest { + @Test + public void setStatus() { + TodoItem todoItem = new TodoItem("Wash the car", "It's dirty", ""); + todoItem.setStatus("incomplete"); + + Assertions.assertEquals("incomplete", todoItem.getStatus()); + + TodoItem todoItem2 = new TodoItem("Read a book", "It relaxes me", ""); + todoItem2.setStatus("complete"); + + Assertions.assertNotEquals("incomplete", todoItem2.getStatus()); + } + + @Test + public void setTitle() { + TodoItem todoItem = new TodoItem("", "It's dirty", "incomplete"); + todoItem.setTitle("Wash the car"); + + Assertions.assertEquals("Wash the car", todoItem.getTitle()); + + TodoItem todoItem2 = new TodoItem("", "It relaxes me", "complete"); + todoItem2.setTitle("Read a book"); + + Assertions.assertNotEquals("Wash the car", todoItem2.getTitle()); + } + + @Test + public void setDetail() { + TodoItem todoItem = new TodoItem("Wash the car", "", "incomplete"); + todoItem.setDetail("It's dirty"); + + Assertions.assertEquals("It's dirty", todoItem.getDetail()); + + TodoItem todoItem2 = new TodoItem("Read a book", "", "complete"); + todoItem2.setDetail("It relaxes me"); + + Assertions.assertNotEquals("It's dirty", todoItem2.getDetail()); + } + + @Test + public void getStatus() { + TodoItem todoItem = new TodoItem("Wash the car", "It's dirty", "incomplete"); + + Assertions.assertEquals("incomplete", todoItem.getStatus()); + + TodoItem todoItem2 = new TodoItem("Read a book", "It relaxes me", "complete"); + + Assertions.assertNotEquals("incomplete", todoItem2.getStatus()); + } + + @Test + public void getTitle() { + TodoItem todoItem = new TodoItem("Wash the car", "It's dirty", "incomplete"); + + Assertions.assertEquals("Wash the car", todoItem.getTitle()); + + TodoItem todoItem2 = new TodoItem("Read a book", "It relaxes me", "complete"); + + Assertions.assertNotEquals("Wash the car", todoItem2.getTitle()); + } + + @Test + public void getDetail() { + TodoItem todoItem = new TodoItem("Wash the car", "It's dirty", "incomplete"); + + Assertions.assertEquals("It's dirty", todoItem.getDetail()); + + TodoItem todoItem2 = new TodoItem("Read a book", "It relaxes me", "complete"); + + Assertions.assertNotEquals("It's dirty", todoItem2.getDetail()); + } }