From d4dc8fb9b33a35f7c0339541555da70be2a52a77 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 10:02:30 +0100 Subject: [PATCH 01/20] Add initial class diagram --- class-diagram.png | Bin 0 -> 109490 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 class-diagram.png diff --git a/class-diagram.png b/class-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..94335990fd16155b5ae24baa4e4b217d0c67a450 GIT binary patch literal 109490 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%0Da<5_d0`WLt?iBc=chsetl@&+G< znLqqWKdZc|vyTL2^k#vb(W2XMUf+0=!heq0;j5Vrw9R}O=u$ZhKr-@P$UER0`?G-4 z2Eesha&gFv9n)ru6Oyo#6^`Fo3WJ$fUrz$W^MjfdS5SqX#kCt`uNzbNx;}CPsk{4r zKt%Cm=Lme4%OBJO&SRH#V2?NFHOg$}La=b|D8)7?)PbAbi$$-Ua5DC_oF%Zz0Jzc~ zk)LKbK}Xzf27|qK+=-A#88A>_j{iY_`1ttTb~0SUXOtfnDPi3u{_ADOyKU}{_01?D zE|mlc3byr|>Z|k7>86_QOR;jBH}7TwGB{QOy0VKMc9P<)_d(Q3+8llimiJ* z%gWG*iXB&O>b{HPLoSK?bG7+7T<+_mO@iiAQiEIKybb3d`NZ8wch8aK3ieBy+^5N; zPCIio`>hbMQ~neGBFj=wkn|KWyOB^SO?z8x|)`I?F1j zO@MX|6TxHmgw&o{YcaZ#shg=@ev3FzoR=HwXz?WK2di)jitl1!TbrJ(yGo%fnqajs zUE`~0XIK2=%*Go8bP7i#&RY=P9Q&6r(i=ILc({u^G-cBBKK;GT)Z~>iy}#svwq@Gz zb(A^#3{&X?l6AiYg6al~<kMJnidHsN)$@@{q`D7>SgscAr zwg^`mQ*&n;wU>C0J!M24uee=OM)N7hItuaz7*!(Uq`UoDf5+rRPE%TBxm@#jX#|hA zahDcnGT-3M)|0X&jq!$S_Pf=K1Lp;HL8}i=#JVS)9V>x-{IY;Q>-dd5TiPw5WW(gg zys$qKX!p5Qr)7-CaP6CV^`f*9Ha9M5a1h^JdDgmN)5)MVp>d@xF%8U9)4ZkpmCc_s zOZOs@QJrbkZN|Mga-^In{41gpS)U;k=B0x zDtYJi0;)iuYSdKFzCEegFgh22UX~0v3UrGvN5A|LPK6W`u~~A>3Z3{hExt0N{6q&R zE_ADl{zq2{^?rs2R5XZzT&h6`>I15p33>DBn&}_@K|+C9+chOc)ITQ$k>#9hP2#$3 zi_neXxAsp~$^a9(Y5vmN2ZV1}92qk_ z-sJ=k7N%s3_cVsOsz*CC)f9Mxm)ZpH@Y1tShPJLKc8N%TwDFYn#@oO2P@Qt(`t?z8 zO{3mMdFaQa``qF-<~pQ2FR$EFuphU!%;xpQo5zX_|1n`^ZX$N>p`d;sUtLOBb%{#h*hA*v*1N%Xvg%DJ^kSX~m$?-vn| z6@zxWJyP*WT(Mxy8c;3yp89Gd2xDb}KM$WpTS_?YSKDl_q)yhTcN z$)cD-Rdq(JCSQ+dJDb(Q`Jr2L#uk}(oWklb#bV2z3rdwHOTRPZI59y7hG!@|$_K+m zzW#^BC&Qld2=@UBmNqteOgBZYVA%j`4VMTmVnv-zXQ?{m!e{;xMCd8>u_WomW|`fW z@u$tZ21(U2b$RuObZ4Yu$mLE2(HG@hqP{?KWd|A_V#TsRc#R#InqY8|JxIx7jV#Qs zTpjJl5Xh#*-h-ag;WcRVTWzIET^%fDB`QC>c)p}Y>s%#{f-+P_yBN~=QnIKjtm(jV zscY}xWoM=xtl;r8~2Pnqs-RQ>y-H7ZJ187*^ z&-SSTA&GohCn|1azr^G#+{;ja?>$Nwh+ z+=mnV7F!3;yV5vA^KlNGzUaE-mwv}2V?U)OmD_A_Bweh`C&P7vKa1LnJA0y(4p}kp} z1>MyzU*K8QKLFPmKPfygklDlX7v(NWa>*6FDlCVp2g?u7F`vkcwlEbMxGP|J739OF z>>^@e?>*d=ZbF|O@ZkMQ|61gKrKPEJqWE5*$Y8)>X}mhmmVRDc5#*hv(8ZJoQ_xp0 zJugv{|5IAoRyry`pHFZl7glXst=#&Yu_KTXLg9G6sC0l1r-$~LCBTh8(cJ6F>&cfx zC{%$9#-45#dzt!It1%84sF}$8O`3l4VGJqECMBE*hl?Q=iw}Qv{v_71QPvLfPy(;J zY(b2aeX6bA->t=Vu-K7>7v&1(_S2W!u6m&=&h+{`vl+U~xmPPKrJzaX0|98;#_9j3 z%S7f)pKf&i&Rk}>S`~VgkRh&&Jv;j9J7W<8uo*f`y}R#9CT7!Gmd3n#cf!K- ztOqyY!OUs5e-~A4<4`hdD8ZQuBFV>bO1or=u83kF$g?f{ooKD9@>NgyN?UkF_tm(f zMe|YlU9-CPoJsaT*DGn=8pl#Dt^Z^F-1kt@DzZ7c&oN!JHYJnE|vEM z{fi{uadPFphG|1L!vMtKvT)i=!I|hf1N~nS0XBe#p1P%+{IzUKu-2gg*%dpQV#M}s z>b*4bClOZ8$@CVURC9X9f{ng@M&N}!c<$dab`=%8>TlmwJiZepf`-XoXENh0$6>FI z;YgE(H0)$5{Q}K4ODH1XUd3%GQ0>pEH<1od@CXmyY)iLj^TcO`Ixtt%0}A`VHL~A4 zjA3MXs%_J?$}&cu*4%{0W)$fb1JFJ@Y!6^2q3_)^{>MbiJ%CwaAmQHchlXiX-A~-# zLBe#K6o8iYc=vSzMz3mmanxr%?75eyIyP^Ng~mE}Q6=Arbx6PTUpe=FqfFHJ$7Y`R=aUS0rG`g!Xdic^y^9YRKy=Nwhg?PDBO4;W>6 zT)q=>#G5kr1{><#>k|#1=LE05%d|C#17YCuVJB+45F?diz8vy1ED0P{;Go~jz=WG_ehi$j z6vcQOOC}qG#*u_!sXbvj;C#D@loLLBIi}|yXo~{4^xp3I{#AAw5pz}BCp=!lCrCef z<8EH<#@v{hzhq-@#GoIDTsf(SULMY-!nadv75GZ8Zkogr7@YuY{&uOHvTVoiI}324 zQ0B@i*hVw@D#`R4&c+L)rR^YgYd04sT!DfdU2zoNrO8&sO4C}1YTfp{M0zkQyJV9dZ)8|I zrHAL}j)!C&cA7fkG@2o!rEv5zU@&&LtUqeLZW#CAi)m@(ofMm@$oO7^uNQwByJpX1 zRohO{>)jtD!mwZRKjeP@*-&6Lc;{<;@8gW#Jsk}ld)!8&f%`-j0>=Em`g8B-b$Z{G z!#NZq`<_7g4xfM$j7@lJrqqbI|@JtF@NYF-2t6RFFZ>WPyuCF#*2A;Iz*&NIxcMKY2b#n zTE%y>nRK3&m0Y`t0_>Ly>P{)OgHre21U=~dJaw!nqQc-V#TCGXA1@ula$wF!sJ}M+ zWR(+21Z)T6B-CYX*z4+HXCe5gpnt)Qr_ZjLfIFI)OOPh5VNC9K*k&z)S~RNRX~C=* zgurCEKx{DGy6019c16i&1JnP@PB;gF-C8QGbZ8Rfj>4}$#%<@C>n4w+avA8-?k;kW z5sp6g64}*N(nzvLWA4{a!d4yavj5A$1SnoRP~>E}(Xdi)+a!pA&8%)0y`L7t=2UJ4 zC1mohi6sVh7Zy4vJ)WyRq5AAA@h&esAVFGMy3!Nskm-3QVK`F?U_t|Bnhk1I29Jjm zM+Ln9|M};SeE-SZf6X-U@6m6Y{1-DiC={a!@PWf}8bvTh5wOZPHo&xwzc`x4{q1(I zVDIqoH{i;zscJ3;KqaAF%e03S69S~)o_D7M{q(?(lloY7c3Oa@5)r`xC3h{{N3$23hwdGlsnyR~l}jLv+w3p{FE1_>YcQT|aG-M^yI|8<`V z<&bt$L>GLT`xJic0@iUKtT~(DlS}EX>*;@mvwqjfS(77023^*FaF?g#{us%B z^k9>@m`6H7*Q~+=GyEOP{|xA7z`WlXeuVv0K@=*GQH}&}4DsZZ&Q)hK5^!^Fd>&{| ziuDrC1sDhahhhFNPY2L2Zy5ol4>^F=NfuR~Y0#ZPpKP<^O*Rt);Mxj!hd^Y>Qrg;s zV!!gfJW9ua1%aAq90delA6JON1sd$*k@K?3K=l>f1jWa0jqN*OI zw|Wn#uu>@9w!IC5bl4WD>Juk^g=+I|*r)h#F}6%9``olfR9ukKf|NdA_-41#qM*S< zp%Y`;KTRkD2za0gbeV2HOIs6*Sc_+Yy&cq5REIAB$O|bx;qRUV6>8MhEO$UR{*HrT z`#-?Q>M`25!EuF$9y3~PJUkS6|1YFwQ=VhVg7%LwK7H_K^*;ovdH?aG;6fsc0LpJ-Lb3nNzS40+2DksH0(_*;E?ez6M;^cm;FN~mMjD5)g0lB}v z&v4GvNMz6Y1|%sJI&B&XSK_yS$#bQi-@I_bEHoBpL$;LNcB4|a;Bp$X5|$xHM;hrk zrjNJH`hoyk*gNB(qx0(=W_3PYovyJB)Z416B?3PNz#NzQZx-rf{#=L#9P9GBCfGPZ z>MoDK$e$ufUcmv0j{k?Yw}6VWZQF%W1XQF%T0jiCyHP}tR=T@Wq@)c%8kKGZ=^VNT zN$KwH7U>*jUqd{P&-=aKyZ`^&d*5rhmcZOG_jO)pAICW=+Iw_#Qi-V+v}CYxXQe>I zG4d4xLC+k;Oezr~XplHTf;Mvy&xPu0tWNnD0nP7R*6k6CRxxLN37vR)kf~w0C(Oj4 z_FxxqEcB|~<>U1^O$rx02irsK^Ef@Qw4f8>tpLg1u>Z!(rS}X`@2ok9K-9l*?-T?* zM5MWMgNrC=3}QV2;f2PivvneT0^C~EY6TEYVrsAOEhS}*L#Nd^y&^$jY+N~UGnSzp82ZVjM`C^JVZAlz^#y4I+1)YWP~7+_^!Xb;MHH(vOo52`FUdN ziKow3R(@LCA6`f|!jb$M8x;oOOMCZ77*|GCC}N z*Sg{P3d_i#@lv`0cdaTMt8S&$ImCK-tVhBj9KLJ1Xs_;`O=V-9t z_gk-#@f?Yd2K0DQE;z zb2;?0nNSk|^vBQtO!Ngb^zE0I#5SPUvkx$Nr6K0<=qo-;|A1(q?o)Z$E+S{I`XXHU zf!X&`SN0S&hS0I3zy{dO7r%lf78G!ozvh2<9T&-%Yv-Z99G|;qm;$=24fpkvX!mIS z*1dP()!IdB#G!i=k8MoT&k{w7!JRR{q_QTS_D0zDkCN$tg#3?q!s=hb~Ne2-_?xdLJJuIgY0#iLEF2 zH#Z1jM!aorxsY@x+B{U_!Xnpy_#&`QBaXYsjTE~%ukDy1U_Un3aBW-_-O{B>#h;Ge z>g3qs8H(yof$rD1frT$TEEn*0=i!j=Y%xu&F&uXv?d$)^%vl)?y+EQjSTd_5<46TF z=S_0UlI|vFvNa$e>(Yl0=l- zrZ?I~j|gF`;;Y_?P7Pl`V-t%ZqRC~#)ji}$)K$zbpMZ9LBerc`8M0{G+Q-#n@Dq*I z)+%yjPUh42cc^b~ezjl(^1|DAzPzAwKzkl$iZgK$et9P*L6t*%tG^zwFWb`Ze~lly zGUE+I2m`uhuUM9{`LIRtcWYkQmVB}DhYC_m+`rc_K35yXvL$>>DNWe(?%MXx8WF>@ zP3fr2ibd<1pkt|}VmK(_rS_O^4A3{{8{V&b`0y3exudT7`O93IFBeozPcO2X9sIJ{(w%`!jWj0dSDvJ{GQUB#yv=N_T zjdWMv=+@J2ZJ}BPEk%J7y}VIsTwZVHo-->VF(2+DaNcgiU^({HRGm6LwvQUehU`!T ziaH{}4qdIHk_6j~-Po;Gz{c4eZqs&wG^dG;2z)I;$V z3bnyo-QR{yj_sVC5M>9oPt&{v?{LKdoyqLzDv>J`qp6j`J9Q!Uq1(@ANfp6uM-F<< z)d?LX(}jmV9()mkE!dM)ke2-D>zbSf44O52MvNljQ$KVwT`BamHfkhehZ=a|3orat zz4-r%##XGZh>j8ed3CX3(?llLJAM5rC}P?=ml}|@y5=vz(f=FdwZW@K2m`Az->ZRK z1ADgznC;?CXg3-YY-UF+Vz-<08uuy)A53C=4%q9iZf!Xz(^4BFNw+p>4rF;vHE4N6 zA*-6e14>y)+U+cP0ttpnL-+#`F3*ibiG0XY&4WLbPh*p6QJIs(?wq=%Fi?=GHtwHh zI;l8a@4LF75tR$fEzi7^G@5azxLl%yd&nqqhB5BV7eDN(E%L;M9}iE+r28hS0*pi@ z=qtf$PT!I!(+y~`4VP+li_h0!#7(fLIp$S&%IV0jWJsdz3Ah@wQm&F;YzC4h2IHs` z5b7n?tfo&Zqh^YGFqj!Vd}Fp9qa~j%9KO#!yLA&bcl4Fr+OI_<)Fn>SN%j_vVs`MB zlj%)2K>*>9^twyGavZuc@>Xwj)Acmk%W5NXW%7fbx$a@ut+aRy>OEO&N8pBqKJP%V zDFx?WCTGa(I{JJ&NAOfqHf;TG-DRkD%=i*h=qIsXGQaO?t7W#f46foraY-JzJ1aK|LDX_r0j`lQ7u?^;z*N$#7^z%>gU~tRtIYLMKbU$Pxl($v%p44yI8{WCnh9=*33vlEKdy-rl{p&owQf~Igv0iOgQ%UXG}GAp~mmmcp6U_U+jlC-{Z3v zF5pC4HrEoL$)+Us$iLl-j;Y35SI?wu)i(FW`v*F&Z!g7F7lBf&(D-}j?Gl`#nu`{( zYg~`FMTzMw9Y@r_O?H9~32ck z#9MwHHCf#bZRn}4+>VHBR|xlbVAFyqSA<}j{&>IGT>q^rF6SiEcDGYqOr08}r@oNF z)dg<`xAf)OAlTjm6eUtK)Vt5R{70C{zAVfT(X)pQmLq2U;|N^Be++y$p{*y^sj z`t`VeK%isNefJuw@g%LiL!h_$jS;QAE*sV$t)*aP^)80&gA&zL=xhuUX3WQ5>Gsy& zOkLjYPzt?UNN0Fw&-UBY^EXf24{O_Z9b4;c5r#^TAMZrHyM9rs1_s zlt*vRyrcwNFJC)?pwwJa$L5$d61@|N`I>t~SM`co=OZwCmBMA~eHTAr)~Ck1YcRKB zz^g+jsyoGDE&Y95+^@_?Jv)QtOUAwGn9bXjhD|`n6J+|~XZ`g90EvY^M<-JkFn4T9 zz3MgVfi>;)qrRozd^n9~6N+mbi5gvO=8bat{1>77ZkA#opwK0<-Rx~UU#aVx*YnuL z2>V>Ra=bUoVh<+8bp_IJC(K2iQj& zlE}4>1`d5)ZDI!!zAtTZPWO#09oGgN_fba`SgJf{+1cgS;?kUb#2WcMRo6$W1b1-) zI|;h-OsLx^wqT5n@u*s=y97^eV{R*glhlXBX!XIaA$gAR*7iI!$(nA5+@v-g5Iny` zU7a9&x>)WvQCKwPo{6;)N65fPMY{NU!OCjvtf)or?25A?byfgzGyN?d}=oUw^vckux z4S6K}6pl}7URGSKSdj=w>$$_!c$d=aZX#Z|^-oE)?)tQqNo)D90C+-|T)nECjp%-y zHPb0%U-h-ov~_Y&Q-rdVWe@}BTrCW?t}$_Eb}^JSXVg>TS8n{a(Hyd+GYr4H%F8v) z38dQbYgW%jS#h3(O;abLLHzaVHg17lEvddc*JsM6u3@=4ghG=%};t-L0gK}&6_sTF7GIJ;q@TKf}R>2GF zECjhCaASNLmPVQk` zV7M}amMv0+8Eft7BRh|5GsA~6qV8UJqW?SWb=?@4bzsT(HD+)8aEy5|ap#w%UJ|}h z-&G9~Ch1y%Oy0XOB!ql}qP;TVhQur$w#4*{t$vMXoJV`!c1pr`3PKV^=K$c$+x z+Y6ifS0M7GBG)FJ`OIrQYol}hlFMWI8`5@mJX-$xEV5W^%FYy&xmH!JC> z0R;lgAhWwtgGi|&bndZohrL+-}$ilF6RJ1J|;~A0(E}aPOsg+ zYb0v5cHbruJU!6Y4+G!u(bvDYMmtt_ul_zvR?#A^>jQw4PZQLxG+=* zp^m&JkD}AK_wic#gyn8d8z#sCcqDd-TZiTk?ys@zP+>Dw8o3)&NY z@i^CC`hq3=MDhCGb1dD)%m#BcI@SbgZNB)9%lwT~AuI8#kDK z>h5<}L#s?yrr$XG^o?@nr@j{<`=%qer-3FNhrInO7-hM$VeSHrMa(XK#6-Gdg+4W@ zljTy`R@vTbx3-*3XyWD?3E5bwaZZC>K@0EoTxZzP%B*}8ux3pcx>9R(27E&poF*Rx zbGhWWtqb1X2y>mj61|ICsU%qho4!X82AAsXh>!ks^~k!7zqXJ*eD|i~@24iS9K7v` z70|Pr;m@ld_tUo5zRQ1J4(%NlTVqR8tF4vVe(Lh!Jql~o3+br8fBy#{+Am!a4`x1c z*j)@%%8eE{VY|q~-~GzO-fiO?IV~Ud`fgB&dr4r*?(U%zY2n@OW>C_mk}hfXTz(OK z33STXzADA)S{#G#a(cW@7~eE@ZrKg*@lHuH?S=mtIM=EFr&NuXKZILjubY!63ky_y;( zx$l;3k^*{wr6|kcoE=lm%ct3v0+d82lDNAm&aSB`A5;LSxCc`ALoMV+2tX`l+o=Kx zUa7LV7qsE@RHm6cNyvXBR_9@aZ7eg-2BUmB^J2LeR2~{FG1;q$zn2i*wl2h}mXlNb!9TE( zshb$*1H-8 z{M#}Pv(&KjAkXxP_o~J<8Ia~;39`;L{te^2%k+_1kZlYQiLLfM%mIy|n}UU5Fgp{* zawbKWFvl;`Sg_JPjIVB?_qWX4)wO>$6itYkg?-eyFD{4GU2f!q*)BSoTJ~7{sqL4c zQR1)NyW(FAQo~(Vw#0sQf?&f{TjdO&wbFF-j7gerbZKb)`+mj;9d_}xyuh_)PK~$* z*&~MEr==azTOo|>k6rjg<*>dAgdCH>?5-B`4XNCgj5GKx%Sb$~+sJva+znWOad_9d zJZe7dh3jfMj=rjns;NwhIIS(OzJR2)^Zkin`y#b7!$xJ&YjMyqhnz9kYX>hL$sh51 z?`RwL%{ui%F%$Y|Vxaf5mg_3)P-pnoXr)dW-p2HGtJ{T@in=6Y5x3kbqOS*6ygsgH z!H_AQ9vOWy%8BLcOz!3^)Z{q8_UikMN$p$BsMWvfppPCe3|^^q7OG-;x+aZ=;o@J? zd-ZPcR@*A+8(-WC?$KZh(SKhc*`m1<-+g__?cj>m#)EV!o7@;J;e|-@$!BN+;A*)} zLkIrL<#Gj<+p!~^pgMSFtRSUPIT~e&plJXUP$CRl!*vk=1dcM7eMVXSO;3Q0mY@L* z1Y8@P$cV0j*YgtRJo_##E{9Veuu5%aQ4uqKZHnb0%2|fdd^7^5-8xiMGi?C1GdHHe zZ&AQK3p$?S`fjMid6ocLojF6Z4vSdMn2#?81d14Ejn!4wF=tOrJXI)6BCwE5_mDDW z0V8^AvQ}`aI)P#l~wU5=+wG4t{-4_~gI&SSKE=3GQej zT%pM3Got^1!1y0mM*O#wFcWsBoXk0XFa^)L8GqXz=J;K66Vg zl}L+l?tJEsbjr@G` zzPMldmIt%&)@~vcfGgf*Gdvt)LERfoX{Dp*D#?KrdW3&Vr5+MIEI}HHXCLWyf3N;= zxybT+(kb_Y8}J>$$KFerRBo*m*TrCwvH)zbPpwHHe+^zlU4ATmC%9j11-W?GhZ;*GA3d}3=rq59E&Czj1n$JjWBL&LB)4E!nlKVhR|3=#?3czbRYg| z;I&`N3nj&3OXbgUV_6P7XB(d%q9yZO2?-q`oTs(F%t1Na} zPL6oR8~1n9NDb(SZ_Rbzr3)hEQ7)7?x+W6;sAgl4c@hez2~Qsy{JJWcit${Pkw#pNPm;v{=~d4Kq9^GiDdWwJoLj? z2_oYx%E^*nOLiN{n8e{Mpv(Hjnr!&K;_3DX+M&{&;(jn_12}I6W|M}XN7KSg5k@ro zz9mp}{Fz&3s009aj**A$Mgq*_O#e`y;3xB^5q=_7EpnS|5`nR==J(z?9`$!Q8ZyMl z6_c^4E}do#EVw!iHuTH@ilf2ZA8Wy3BWWNFjiIor-IUU5^m2sh43vl=U{=Ge4~ece z79pKf8!OfW2vKOM?AE%V$|-^Vm{l3Y#6rQjp*|Z&Svvd$se?IIduX%cTxlxYrOZdo*9m26$$m* z@rWG1W8eE=qX#W%KPuZaC#rc@R4e~%w-ZmOo44h+lTK#TW+52&_J&w53zIt`s-x^i z-ra!Cu|D;znuj5dNcjfd1#iQeGaC(8&U3W>1m)ur&D`n@Il&=iSxE{0w|Tp~Q+Zy% zXnNjXk{Kt%H@K$`*{B-=Fvg~eZ`u2xp7^X_hhaHaGhnq^cfkLWLt?9!=l?}$l)dp(d*U%0?i7{`>C^NPQJ zpb?Dh?HOdQF_B6cy^VcjtPC18<63E}vu1k^nIqhX4g=Ps-VXvK$*{+j7Vy~I{9QWc za3RwJF2y5gSM~I*VJ|^4T|}}tOIIj1P_+*Jgl~k4LT$}l_0WLP+G@izPRfb4x5b^M z*Ex)KRlbfh7k2kD3iD4uWX1u7%uLPL-}%#MG3-v)&-Vfof&`xBS~B|lm-<%QV5C2e zw`pdcR3`LZb(@?J?sB~ool+@Bt5vk!7aqr5$KF+FKfn>=g$Jj45Fk?Z zDkE%9Sg`%QBBz=Vk*)=|_?!yg>0;BeP|y1&rOuJ@f@>xCk{%sPU_;r4@r=GJaDSA! zN@8Oo!z=il`80rJ&}cSRD9AVJeXUS2#=2+FNVC$25J8NhQ5(8Ff3#j>Ws8au$!e>> zL$;(_^})SGO;5&O`C#UT6k*6X!?m93RLC)_UdEx<7LZjo^?7ob2!W(nTF2pHz--wAMVltpkxSzK(k*wL#}IUtQ>w8@knyg#rtzfZmO@F0zYx_ zMcc61UDZ?PXsZg}qFm2b(bNR#I!Yn@+MTe#t$2zfHG$n#HBb|{~6^~uv!^@4S7 z@dXANA<+#OO`YhN3K^VFmz5soOz<5RJ+64NHcb64zYibF2$qr21+Pne>X|n^`i122 z+G(&@gJ`qHwE@+ZUi7xP%ko){`8X5t>vYmKx@~LH$RAh77^5tI^t%ULmZBPD&s(XF zof8?|etI^~QK(JRB>J@xTQ*g`YWZk;HbKp|cl?com7VS8^?9BDRF)!^5M<%o4oBMj zpp>YE*1;uQ&$P5;TxYlT>LP7Sq#ahI3;%%9QQTY1#1C__eh^e5r}Fm4YVQ-@BM!`a zPv+{b9ZeQU>47P2*EYDW+~vd?zpPSq6$(6d4oP@i@J(^~dX<>7WJ=8h<$#)7Jp`A3 zsue|mb7(pLab-bZP>9VAI`3u(>4632RRV?@9VgnpLzP9UH+?dDZbI*5n{0nnv||Ls znJ1Zwp-mSYDa5#1FRAPu*vyL+mi$piJJH=)&T+B5tp-WKt^oHJFEU-+Q=!ekt z_Uv0(G_cWl|1C>Fw(Z=JWdW7t#W=JAcSTF)qz$vg`El+eFYa$#u_i9KLxAXi{8P+4 z5RGTmq(=A9t>Q*Mr3<2Kn-V&m+ofQHZUz*gy_=K4L!rMIfq)h&@+*QOHcz*IvH@|LKo4&wD zfM*tz`cnx!c!gLUybLo&A7sG4Y7Y;7*7lG-#M;mN4Ea1}T#Og!dJ22HG8zSspTX%C z3(2q!uCOCQ(>F^iRXzMXkiI`G=;1Aqon9e_lhb^X&&_^daiu ztDd?B$1^YI!ZL=eX4A$bXp$*W6<*=ql+0X#Gb*z?KxB(J393m9$LEx?o8&U=vJPk0G4i$8BDcR&Bt+gQz=qo&O` zVLjTvxs!$G2o*q^&&2#BeBRlRkip?7jZ2Zzuwi=++3>D&A*IGOJbDsAd&J z?B~jrL9TfeQ1RG`Q>o|psIo>K$PEC>N4U@9|+zKX|QPQR>S8E)3glRtMR zySiS96j{^VU93b*vGbO8hBqZuLZHR8zcW=%H*8ke@CHiS_Mg%^bmbP-?lG(l)+L+s zu?(eF9y%3biPBo<^3U2NsU;|>i?%QNkPrVG$1!Dux)Vgf;og^x8Xyp6-RQ3J!VZo< zJgpJ}y%UIb`YQtxl$WGpJo_&Z(eNMb^f29_(GqLh#ST)XoGd}9CX0WMY>osBEWi8Y zWr>W{3(r^&uZg!)SiZ%U>;aR>giIR}jjvm&4t*Q1mt#N6?I(zT;mKn7t@GBuNsn7> ztkNkYHNia^aJigo5XT^_an3qL&`*SWV){}6#zZX z|1PbsQ|`2#!ivxMOgUF;9@Iy;@P$~fzC#iVCY!(HUNA$rt8H}`sE6SaYw{mDT`E;+ zfI{P}u^2R*|1m8PfVt^Gu)ENgF5j3THqxJ|ym{zK4|>wi2M2np=pm*9A|%Y?*c#rh zQbf(54%qAfjsPTML{vc&BCaey&Z#sR33wy>yl+DZ?fY{HeS4(6iDWI6W%1&ht&10&jRbCj_Y}w3-cQ-*tSJ)EXG%M>c@#JT}Z*1F#V58EC0u}ng6p3{KyA&=9jJ4 zzJ}7$<=S6uX)%inmD}GvblE?Ioe{4fdS3OW+ZXveuf|RW&f7+r9U>T9l5=}_vecZi zaXDi3Gr&m2AY5U7_jBYx52ORoI<+_5mvG!&QH=LEb<*E_@BsVztDU8nm-Mdykq)|y z`7d>W+wmUGE!4n%e>H|dPNC!B&Y^rmbaIaq2t)$WjEvxD$amT{l8NIr%yRy&S>=qE z(Afmw69*^Toq_$J{I`%Cp)~_INlr@Ody@f*{$CK}F&rrJ)_}DENZF6A`PM+i0#E@a zE3uwjXr@Xq0Mj>(@k_xRM*ti#1k4U#XtNI= zjYB7=ntp&E{1Og zd(8cwt~=lM_%A3TM}~)+!QYMb?G-@<*rRKZ6R|@9i=*`c;-M~Pe8P|6r%>gSZj1BD zj5*j+fcs()-j5)~&^ulAfaNj=lgk45hs^tQ#Kg#mvx$X}-((+kR^TuYmo(~u_aXTc zWURt1n0F`Pu*pD0umUR$1lplGW{_jmC-}d0_(w6sIDq_IJl%vGRthEt29ZBfWNfU# z;nw`N`y<5Q>?t9@$-$gkJPE!f;Ed7Xi~&PXGaqSNaP&Bs9&3n?Ca(tzkCKp(NS;<9 z#;oq&bzB`_07+Z2)OD+emJ!9B{d(pVn<^j!`xhksQ6z$RlD;yTOe))mMPu~&=%UyN zqh$h}X+@!1&i8f1mB*fsl0%C-!Nk%(_U{`h5Dr~Npa}Eu&r0a#&*Kd^3>wmI6xbk4 zPkk;IXZs#>)K457aF;Cbyotgt0%*R=f+6DSeUE|C_~WWCk^gz7mZl~t$n-JeqeH%e zD)ZmZL*@iu7J^aH-cU_xgHUk^w-6=JAuU;~HhElc<;IsE5z-Ny?7_$tg? z^v|KU|M*H5!muY+w*K_#Q~u+%0^63Da)psoZtH#Wigke1`+L!Ro|(A1#saEdB7ZNH z7ymm$`;Yqh=FiN`OnroY(WAf*{j(Hb|6oH1mI`N2{gLV!iGXGQvA!Z0{}2UFY>vyp zp%b>4C(Rpo?Hm{47_s!)>LdW;WXnRA5NDp z4!QZM@xeo_m>^_@@&gNE&C!R%8d5(RqJ;g>QHYGqdOtkncudbxVce|7{^f%}j096q zsE$0%u;jxmfc0!7bj~9LR%u6Gy+1aNmH5JXe`jE03wx{m8UojbG{NVomM0zP{>FIcvUq9G7 z`9JLKIg~l8mX%f;SMcAQnxGt=|1m`5f=|e&--)W72Uag7HcJ~GQSA}uFK%o8< zK=I#c_;Yt==DsJks=#Z~ zI>dRe@s7a;)G1P%R}ELBh7fG;gDV!q>rIy1(~-z?=&d0h(Hq>)f(6`)&CZJM2cl^CJ06VJwQ4AwQ-8+0UPuPRMvJ=jAzIe_Nj`5 zIwGDH@yd%4ulx?;O@r$TB2S5+&KvZ48T$dfZ$E{UWl+` zS4SKloAcqFmz+b95+b1wtgCkMIW30Xg4pT`Qi9B*^Xt(vpFP(*{idL4uy6;!q*v}x zJ{F9VINt~gDraXSBhHqPkoY~}vhgUiLW40hH1zkf!ud54uhujw+)q^W69{wuJ@q6s zJe;yGEIfSc;_r!kQ!D+M*S&;av%HjnfK6o*rYD^{(&~1Vb4GSSO*v#Y_ovNE2w&d#L7 zMB$vCwN@r*JzzYgCoo6c7;HqF`qQcnH!OL1`N+7qXQrmhevnS^>8z|SbJ)8gvJAsgjo49GgZ)c z`cz!}213Nk{4Vyv01s!%Z5+e2>}-rl*KKLhf2{vW147nr86GQ`Nv$pSou0a1o|kV2 ze0@)03WPR36WVwE{9(knF1))j*40nc)nhcI&t+Qm`o}u(J;N@y5RuBdd^!sxRUUD- z%d7be&>)_|G}J#;PXEB}Lg&9c)dlMRvuK$!Er+*k>g_W_Ffa2@>+l&Bk}8Kq#$UPu zPL+_9v;mvqQpiJ*fs^T(NPW2%o_`pUPiKsf%u&OOXl+PEs9(gfbq%2kl)k#t?($6@ z25D5$P9AnRhR4gmVxWg4WzpxK@)^KEJY%*_cDzKOuRz?$CBQO;lG=!3Gwo zpr8QA?o%aw6hgM3>0L z2%$00Y!gCb$_EI*^~p&{>Qba*@=SXv&jt8g7ni4}(*XHB`~^gJsM4uGL*ouOmx;6N zd`AOqIXAxq)Jw5$Ytrz+MIegXw;g8lr;rnncp!~hO zP_9$F0Cp4({+6VXEuN#-sX*bjfzbYc3OvpEF5MP#fKCPjH89l)Kk1xT?V$}F@;`Ke z_Woz1%sTNHDKaLe?&O4@mX>yow!QjfOOpTOcin3U<;BxFu6e-sJ%SPHxnEhkK^wlS z-CB^Wc>Ub$5xG$Q%Ug~E;K((>1T0_?8p0XW=l*yUV@|G1$EBNBK~>c^Uy=Wj_;-{u zn|~%y)Enz#Ww?HcKO01N5Zmmp0|T+2E|2e5{yxLUhh67Se<)Kq_x_!m&Hp^V#bx>x zA&|mLnZFQTpXbO3>AgHm5k}h0?{1-P2=QCdio-xH$ZaX9mrj^HavTW zFf+C#`Wx%(&s<#iWD*1e!^82*oTbOthc+nx64`%PBLQuY%=yng+|R4$KAafBiA)~; z+l#x{xxky*089urYeOuRM=O~JtI$((r{cn!6bQcu;VoVR8)f)>N1l6fd#*ul78bW+ zI4xUD#`=VPf!DLoN6H60DV?=LQWtso5a6r=56q5NvoYA^!BJ@`wqAd$alxcsN@{As zgd^hpoaVxha!Wz@<*+{D)zTtye#d^s&Y^;&AlOWUKTsGqDLM(ZIf5X@L1#L~0kLxs zX1Mq@PDSTp9dJI_RyeiJ{5khjePeyFVFjT2)@Ek4V&rZQfm*|h1zFkHz;q&=3qSNv zj}p&6E-*a`IH?Ws!($>&E1ON^+RjIktLz*cUO+ae!px(9(Pjoef#W+bLoW#9SU5Ps z6ylrh)<=rIvu5KWoI9BS*srG3gW2HL^x$(beI4+3P!PILOGo!oNr{pGcmB**JO9Yp zwqZ+(ki{|l@b`yBME;B*{-dyibm%kcJ6|sC(WS8e(;d3pC!bLf9^2*dXUy`S9`9mT zCs#PEM}I<>2QKzwV0IDyOmcH=?N#6y-Xk!-?^!c5qc_lsT(h&oj?hSY(u6MVO%r{6 z*N_PB-VM!+xKuoBO+(v!4h!XN2p1cpF@C%l5fS|5+j9cnepD;#KWo4L5R!O879H0h zsNVhrOfCJbw4MlM3RXuS2qd4a=EC_#GzMb8hES9K7XlTZ-d~Sc{lAW9XCCt9>&(%r z@_Rx3@L$)?t4_DAqod`YD(n9J|5oKuZzw7$C1zzwF;cdixd`VA^KxRe%$DlTv(Nur z#s7CwfUuer1o(--n(KgE=WCmn)O$l7dj$zskWL5TN7}FLpU~}X0Q;Dr7aUiXb8zP9 z{$(^{H0n=*Gf9RecyN!*_4ku9GtJg#YlpPt`h$ScMqOTi1sEkD6-aS1RLa@UufGG^ zMv+NdO^sIBbgxP16i2<-;oW}y9qKH5!Vr2h{o{@0|oE}I4Bz9dy-;6SJ+BqA` zcj~I7c>`b_O9$-#~%Q zPQofYs1V*DUg5%m5oe0gS-h*y)Y8}|1)sW?cv1ksNca4=?>u}rCO-G<&!s*4>3`5!1+ElKpOyYQE%nbG@&6&S@~^%J zdbc#yiaqbr?G$Hj>lQZrPcbrfaTv|Xk|(JO$1|UBmlx?VPvtd#w|a>j-ZONskZ-cR z-tpAwix{ILp6u!1J-gz}rTr^7^D?z=hULqBab>Jm-0cjHqEs~`l|43=#3BaPTg6P_ z_%Gdri1#^gaI!rtq!^e_<$0GlxoRIN*LXFy6O9?nf9@J~2EWl0$x)g4xR28BAw>AT z!~~ueG}aZ>cl?1`_Isyw9P_f>QaODD0TbLyrXQ|BSRT59RjG$C)4$@V3X zTHX3s(w3XdQ|eebh7#9tZ8t3a)AwWbhjzt+(qqee;0fmazce&FGl@caeEqXRj{Vh7 z3Muxtg|o~K8*S~>Sn+mO3A?Yd=j?`%-L%+1zfN&)qC^)KRR0k6_F9c0iOQ^7fuL6hXVNBe zSs`&nA_S>xC{)!lo4-x+?- z^_7V6=Y5WsIfk}zAH7%2%a>&|CwrwKk+~XW?{%0X6`(zZ(VbdMkk)y%)P7e7NTU`j zA0IjcE)wv?9|9}Au&{uH1biHEd$kncg(E$u?KDsWLCVNW6!CJN*9ZCpYd`1sh;mn5 zADz-URmOa=V^Oxp(KK_Frj~b9P5-!Uq(|_;em~V&F(Tq8Q(=Y`qquBK%eYB$4$F%6 z0h8mSll))#ijUmLZpU}MuE80_VtNw+brSD}(P%!flT*$ul%;s+xc#|=gU4O5y{B5< zemJa}$_d_B!jnJoM&D(QVDtM%RSi%nl=JVyD47SdCBI2Nm0T?ECsLR%xra)kXKP;; z4S(5_et##y#`tx7C0yalp2v*CKmvw%9nr&_Ne_vS8OcJglB(F`+&WRds@TS9P|8AL zToQ|B-^$uUtJn|q%LoW>JY1;4%awc%X3elJZxuv4N2yq~t*K>9PrPjT!5e2MUAin% zb=2HOAVo71mK)Q&`Dg-Ja+}FbYlefWe-|}<4_dhqlCwJuW4JvzhOuw`#v=) z$-P%S5ieHwh*VKu`FIjTA2_*Xl~)3 zI+%hi9|zsy%n+1pfwMSrEgHTdm2(?hP8q69heq6Kl8vWZ(4dNF?nTDpzlTZ6`*4Fb zQBg9cL@#_xS+7GpE+R36my0ptX~;m#{m#q?<@wXLoaEL?K1RoNl@X@p*A5mjJ^h)B zs+$G(x^$$=;_J;-%HQM_d-#9PTibseiahCloQ-rZh+HV%&QimwC1Ta3oW{X=yIYLh z_wl_?3eYhHYQ(;xY>d}j1A+RZF4ij`kt#_$$b02EZ7=V#UAZEI_HEdSFn%fiv2@>+ zZNc>0K8~^ix}kLW-;W*%K64yA2!TA!6Zrni%(P(&qbx>}s=W8aIUq#PRI6V;`Iz^f z)va1$h9Fq2pdEKL$ELPdcAAIOmA$B0O>@SdP!UPZ*K)4K<(U?hqw@SIU)hQ|RwDbx zV-$`V_A+co!7~bko&N#ckz+B+b+55>{x)O=FGh zBbwjjD9o2WqTtr{?MVN1zch4TZmuIn>(;Z1BC%pVGVK`L^gVDwo{AM${0nPs ziv5%l=RXD|CcbWoK* zLvlXDJaVPnz2p@CvscGJlZ!NaU!BI+!G~((`DGnX>vlQD?NZM-Si{{4jU0Qmc4Gp| zwXavPg{KOZgh+O}B#X>vzB@&Ua+f_(cB@OSPG_$rt6G+@sQ0m{DX~K)OmJLAwS1P* zsadZ2l8gS~Uh6QZ3V*+=(7jOykefE5?o#10#-k!>wM} zvc!MuAC4#_MVcxPKN^Uo&gD0FIw^lOg_+ONwC$b zJsmX;hQEZV-fP(P^jVUTpKQ9HwE9KOXx~xGj=`QUq9VfBmO)yK!~0E^?#_#uF4}ZG z@vldloio(_0kxk0der99OMBi`=N|WWRNv+CxYr6!#xlgHXKH zJ;P{=5Mn#z>-Ablw@K(|cp1iDd_Uq4G!-C{a2BSkee-Y+{q>f#+R2T{@vcmF8YN7u zM}qHM*z$H7JL=tV%3cO>eR>!)Oe@5ZHCbIA!&)@%JQ4I#R~~$f|4Jf0QK}Rfmb^g6 zFe_7+inE?TJZ^Z$Xh1x%cpC{#ayuy!S&t+n9sVL9@UU!*yfWSWv4n+5C|sp&F*c$Q z?&C8MreJL`_(oH%dFk|*SH}Tw@0ggeJNW(r4yK9=Ove>OD#Yf6y=l%F%0)SIsQTu$ zMYQhH;`Fi(5vTYsZ^UH>bHyg?B(DvNiIhQX7iFk#b~3A}180Rj-RjyvO+J?c-;V0o z-Kc^;+BhD{fyeAze4ab4gMm~ zPBy^ti9$%lk@0YY2L_>Rn)c1x1g)kwJicdw@8CM}d{-=oeXb_1F;+~(>rp#;nnGaM zCIQswwPwpZEMk^Vzve}wbCZ`nr})2HJq~n;)6V($jFWwzz3aFBg5PU+$@5rtdf^Ul z%?I}rE4%{JQJ%azY))1$F0}UANl^Qh-Rdj+ZiwwUPYSUzjZMogw?jru_&mL1k`r3} z{WX16t0l82i}(s{1?!%fa1CSQ6g~#(PS?w+3UycJ;$8I5kfOB`WC*GlWWK zJ-$<&z735>546rL|KK*j+U#WRKzjeanmN{R7o|N%=T3PjLuPNu&V$$^;?M0x?Afiz zk{IcqZG@E_$;ruuG@=J)mfQLEN}ijoDLxTVARLNRyElW}B39n=(1FH}{d=^Qk3e=` z(Gg^YHSy!AOt4|9yRbP5c$LZP@14u&Afvrco#_R%!@5vtoRgest7UfI{4d(x0xGKZ z?H3*zr3IuxK)MD==|%)82}K%3x)EtmI#pWfW{^_48wI3ckVZO(?)dJ}=lQ?S^PY3Q zbIw}dH+#)mvcSFf%)R%$uj^NLpp&dyEqA3{cJBK2l{6zvYehGJ4o!KX{QE7ct)VN{ zjP>XH^k8Iv~jCUvafD$9=)|;m%cCzS!7(P*Ji7=H9+} z$TO#8Mo@rNh4oqWe28a$S2A1M_W(A#olFd4c}YC;>ocX$!v*56N<$a^2w%~$IHSu> z)x+#{kwU8{4_^1IX_DoQQ&kvPOi^3wt2ce?Cb6%Ny41XW!!}c0I`RO`g;E>uXF^?k zW5S7BX5*lC6E2Gc!YbQVm|kz?7oN-ag%qX;(S!rVLMxla7yXQf;Y(vf5EDXusu-t$3F{n4VH$OUZ#nw9N`n6k)wdE(xXoA#8QE>fbo;+@;2@ee! zssWgl41KC~c_kQCsR))u-e^tXHRTg|EuTz*HB6{tY@7EkSvqH=5oMj_<0cf*$1tk$ z)kh|mKd*VN#@5Q!;+gOxOAmsq51*+fbW&?Y-pKJl%ij%98#N}JcIzCswfOa^Y{7m_ zXWFG}*_K=`ZCx~Ub`@qQ{Iz^$6im``W8Qgbn#|opjZv}FQ^Xz4O087UX7^tP?mtK& zfPV@1?Vc*DAu7f!Jdh#O-hRM`X|=i4v6~=~GrJw&MR&g7L9J|3+*+#fF zAaCif1W#;=m47}q_GA*VD?D2p!7a&o;D*Sz`fOko`{+|u4vVR4*$ghsR>ifS!+=9) zqwk8VRe?IQj*S}M3{+`(kF#GYIz8Es>|i+*LVWVh+s zTm|C|8xb-kDh_XYdiKJ*hNWl3x4FMvA|NOEq*}Lfysk zNrY;_KMFWG&PB4f9$m(w40^Wyw|XaC%oW-ewl9 z(A7Rmayh7p{s?EWa$&}LMea7!JMI; z+OI4xLnS4n!@_RXJp9Vjba6}Y6CMPqQS2F&(=tBVp2m6Z*vJPTG;kgcJzI?t$M^l5 z5o_Vzk-S0cb7E2>-12wB-f%nB@mzbHmZT3i1HFtA`liEv)6O9lq+0fm$Cw&9)y2p7jQW1VUa>U*jg5_q`wt?Y zDXJiD==`e(HNj9OlQJ*%H-cII8@ghuLJK7P{=3_D!D0&z9*V;HD5lExSHsVOgxIYq z`CNT`XsHBkKwTMAsB<@hk<2lCqFz8cXy5Shz5Cfv0Sdu3j-BFsy7vcTB)%5NE7fE6p^3w z0A#)AZ6M;tan!ra{5LME7ySPvdi%czms1F3z6BPjsHtU@my-ZUFt$*qyt+E%=g+5L z^fR*W?jKG54-_zg&khXf$w1#{VQ=3B!cOi2LB#)nfc-G%gUr!g z&C@MfF|gkO5wb0XC5?LJc(};1%NTc_eke3Odp>hq>V5tSNnHHd`^S$TTdz+gud%iO zi!zxgA}AR2=#$_Jemg6mxcGMLx;9lb9uDIjHUEkt)#>X%sB!fZTp8~=PW$u~{E|n2lDjLRl2hq^K2x@nL@g&b4|a)ibP;cXVanWMixdXg$Nll=T8{dD73qbDXP8 z`)%z09!Z8whW{lO=3esU%PqjM|2Jl9Z{|PR3#2S)_y83KpbQ|HkjfkWuKf`p9mZ`z zc!1;s3?w(Vd4pKy+o7u^qbsDu=$?-f8qrc(gXb}lzX!T7r_nEo8zHP|B+kXp*5t8( zR#x8Dmdi*AV07|KN2suusqUEI>jB8+-uzjrD(}=}cH20@>;Lc)e+|;(|8uAOL-g}6 z*zx~AP~FniPDG<*So-B=>uQ8P1!+p&)n*D^6~Mk|MGVA~g_b_nv7xWf)3^jDSMPfU zgnVh$Prz6fVW$RgobAfE!FMztmo=9G%Ous)rNHp6CGJ%h5f_7a4vU7cWH$rWUs>@X zU(}IQ=a+kb$pR(<(HxqlFmz#(ce&j%Pa`#IVnbN3p>U!>8Zw1BFM`^>7sJ?v%?`Cx z)3AaCHZ%yDP16HT#7xdN9J1V{y%P_zJ+rwdbYa^MAAfcv*691qm}=gIi`H6$sqwsEz`e_K@Y40t=!=wLBb9vXBhEOKmEUnhza<}P)%y8j+IXqn^j@@qI1`551u~r=JAgE4EL>m6a;HGsoVMf26w6*A2SJKhr$RL;)IN%UMHK_?g zK3{H7J=UdnDI?$tw$gY^N)xeitZSBd5@b$YBJh{p;oU09P{;m8luWcN|-u7QZ z_j2{v_vv5zl3wGxL?;fobO-JRL`O%3zv_&nlk{xF3QH$lzNo%CyYo}N_>I%D2Q8rarC=+@AL)HQvX}_)i#`bIO0+_Tx-D8mi z{~fwy3(@Ruq2=~^s+dCSM-yVHPQ4>baMJhE_4_EeV!FY$$F||0SIn7>)EAvqcpy?N zD$1uEXQz1=*j@u9KPAB@a;LA|en;l5xS>JSQ&4LQrLmHpMT}6zKUKvu*p!aBFA{A> zr4sz1gh=^(yQ>T#=wXxQWTM|F!S(5QxFf~9cjN_}^y}?iK(u!NC7yBy0i_946l!QG zy+T1CHbZ|P`804)NYB_KlVCyFxv$x``wgWv52~mh@8Y5HNt{Bgk%e?o2Cqc?uqz8C zUWG-CdQ_)w(EKibhN~i^VT|&L&wa`Uf4t_ygKho|nCxtvirx4vJi4mpy=`1h7OZ*4 z!&ZIX2*Ixy1__KCpY3*xR|6>gC}KAF|Vw$2AM-C zMZ-2PF8_1kgZOnXy zf^2>Fyfk`4gM|ck^{j>T*78jo(GiT5rNz#L=W);~&w+D3NNE;)!#^)W#Bj?_et~1j zLVTfRz&R31)$RX@o1fBZ{^Ua9Nh+NmIIjT;4w%CEz+NJTx37AUL~T@@lhuh37c{Ys zXlgV}q6CY!3T-(_nt!`AKd3sXWtE33zYO2lDS>9%kU(r(x}3s)o^0L3$I#pRX7i~_ zZT)QEU=rysoo8>YLn>c~vZm<+>qW-9_=f+EQ66yT`zEj>QH64)vc8kcI<}TFC?SlDH?!^y&*bO+qfGVWk4uA&ch%e z%{vb92SBq*@?-RrvG%QfQFOv2A(J8_yc?nb&#uynEe9!CQ{*H%QcqF_)y^`Fo-7`I z-(NI7XP)85fwVfbvgB$nH4+m_1&7$WKKCZz zEJ^Tve~BonQZb%u9ZuiQwCQ(S77g?QEDlSO$ZdR_U5&>1uj z6EO+uhRVe=y%^>zi&WPW#_Jy^dRg>_6>C%ygT7M?2U2$>C9R0@;US61F)J!0_s4$S zSG_#la|3Dvb{J_Lc^Hi%@8BhgWNP{HNIJR4O;ojq@DKJu@?SN%dP@|elkCMZ&C(>+ z$R8S}5yo)WK}ZJAOnx{zv`I2(j>39~XIh(p34c@4!;vt{Lc#eh|J=0> zRZ!!O$<6}-!lRaRL1PR1fKx-TW)3v?{tO&5YhAjV~eiS)&ZCK6vBvrV?EP2 zoiUb(2TwLGJ+u(0JMz#1&-E{rlY{5E7$@nZDKB-`Q43S*z0YXOA%06;odJ2-v5KD| zokR~#UQGB^npL)+RO%V~-X{0%pmDce&9iecLg`i9f--wyd5lL@O5Jd6@n+k-5qQ>x zd*iy_5Hj=CZcd7CQ}RRV>4cU1zT=$(Wg)NiXx}fiokg(gtXpR^m=H7UAVQ;;vN)UP zx8Rn-Lztd2H#9_gT`hUxFZ^qw!qju#OhYhL-C8c)FP20``#qrZh#+|nRBbMou_)X4 z+qhHXk<0KPUf%ou^YBk5r~b+BzcQvxE@4scc=Ns)Gq};we5oDk{vs5^b*Sd^wf_x2 z0)GpcBCS_wll>6oOdhu1cPkWPY>EXqx(ao!-Vq%Qw;;BG+$hJY1SawtlJQ%sOTrHycZwSqH%2)6JFlq0(HHkBQO0)_4tYXx@FQX zOv}6#CBpEa)w_})MRCK#yCv?4uQiDj>2?ePf7C9J2t8dFwn!NVm4T!1Zz?%Z+yFC6XKS$9;dGjt@c70Z2njV%sa{G_7w ztC1a&!HX^<#R?4~gj{+-X2NIM*E;#FAm}pEqkB55U$>qn+zlAOfJBdGSMPEuMz-9% z^X_Ci9(9klK=S}%4&{qJ5pi36U!JsPSBf(LL_nI{Pb^WL4IcKoeox%E*P&mf6D9!v z{$lTLz=Lr$$Db>$5w`XL3j!SMKEt84>*wkjlbFN9w&cP>ANlPToVpPW1f*CG4EoQmiAO~KYX|a z+Kt7BC&LmWl9{p{-jk)1`Z(v|+!0xnu2>9eMAMG@@84Q@L(>lHuoS~_n8i0zOgAcOBTYL$@C!De!esQcZ!!)5IcT!^C-q$mf!MwqZfi0g8ie z7E~^?bp(^R75Uy1DDV}jLp9EC9{siz>627a4ldZ2EFVp3-Kf2{BJ;hoDJyuoIt8&% zS0>b-Y5SkUtc>r$Gq)ZIwH`k+aaYlsrTK6uAZG>!j%z6?4B1fdhEN4HqZIE_R%oLQIxF_q$N9VyfqOQbv#E=n<-uF3)M}(DCIrJ^pC3KOL2=Ks7nw( zWwQq}kNL2@mQmByF6?wk3|3zHFJh+d-2D(;-WvO;ulrR^WUni7;{e(Xj-QL4Z4xG{ zqnwZefVCHiIL`A|R*3{cS?3X0W-XTJzSB3`Do_qm)Fh~Wv1dq*NBGzi#w@h0O6W(u z7t&Kd{^mVyZYe!`>KO3VR_dY2fo^2JuPf!NV|3;`jDSQxM4OMxbvhpz6_UcARiNe4n z;hQRN=uqU~3_s;6Rk;Kwe+na6@a5Y7pwcxSOPVokq;dt0nkFEAjMT4 zgzN$)#{}IbBI76+;;ZLUwSm=3UCkSY#%ZLvTaa|ACbVV@Nrh40C;ic_uAPPK-_$Mn zbshB!rIw=e!KJt;!W96UJCE4PZi&Xw55cS3S|7u@|l$pqWlfdwbPE0(kJvupw_^U_#~AL_u{8w*}%Q?(!$Z zape0fNT(4Y!atG(o&^<7G+XmOD!utfn91y z&7mN|>>!fR`14!$gf~vwjJ9*Fg!+~~_4+fcXFjH_l`B)B@DJyO8V#h7ZVe6mfKKln zH0U$V0TyabL)^M_tDWM2H9wl_dm;2}2rP+JS+#s>X4&V-lW_}%-~kQVf{>8sHYz_l zxfw-Bnn!2eR8|@6fXD9PD=JDnW*0+ENJMAw?Br-fV~j$zkCn_8pSObn_;n%kh=2=y zbrabSH67IafWtuPaTxz%s$U~ad>bp-7{#wW}2|3AROXgvSUD2Pu8W|n87WS zeyFY3t)?HorQGkghZC9qcQzILvO+!3G>IKkbHjV3{(V{N#D<2o zGb)ydiIJn<#W=Z5QgmIe{c3=jFQGy7X!=zw@%H#DN~-w@JH^?uab?Q#VY*k%W&P28 zEE@pq0Y^1h^~}AU3x8|rRKppyU5b{DG6eVMq zf+zOnR;i6axOHUZ?`!9)ruZf-Aux%q`vM0xVTC%^Irq%&wIm+b*M2Mds2t zM4zl-CzVR-QxRtFinlr>V&-9!ixp<#5t_fzPmN=h1L5k`*5)z~{zhDKqk>=}zdf?s zParNd_A>oX-3~l$rKgQXOz&hvuoQ%1 zrry6kXnmdi?BosYAPRQ!L4i4^*w0i%uj{R4k>%QKuTK4{)aRa!WHQCizW*(YB7524 zcF(CeJH@oi3Z}msr*B%=qvgTgmXGjsz7>-V9 z&gjxsge>zhhIUD5PL=JeP9W|#1zChAu%>yPZ&jiC0d6FrFg_0XhzgsZVW#QySuum( zcz>jwcLUfc5;}>#jr@yOqzg*<+ZgmA$N-MC>;?QVM}r`PJDmVq1+;vZ%L>gD?E@xT z(|vnCK=6b=XCLV6Gf`Xgt3Jzo`&*_ANGc@8zYC0;-?afJh+%DIb@O=2nP6gaa(76X z=lfr*+jzr|@o{oN+X-~}L7!{gf00_5_4ASyc)7CPc02G9{^?@^h9ai$@NlGjj*y{1e*^tafy&0+ zfG4AS;e-ACDTK+vE(0`940m;3*m8{}(Ou-Z46N18C2%;g{)e}qOrkRop>fF@bFyAl z{ovg4kT`KeYm9-Xs6%8QsI`ljkkZ2p$nQd~Ty@$d(=bo=^69Ad9lcy-UR%Dg%(YmY z1(U;v_p-!=ZV{12*%a>&ICwu2nl3-3rp?;>0yPHAM~i-O{M`l$Vx5AWBO~D!>(`EE*OP*7l!159rX7fDYX$Nvy+e z8<9P*gi_wX%T8uZ@`n*29Z-8jFNqm-D7{a6e>`G)7*Hdm%VBqdjPey9xiTihmoP#? zSZTQ64-bDAVUIbNkxuH4s#%{;|1QFq09l6YqJh2nLwAJ=AS%%zpor%!0HhFe__Jmq4vzbCuLQ%DeUSB zaC3J*ZHV#f8x22lTR%&+3+vGD{af=q*om(f_q{*G;vA3@E+Sf6`LaDF7Y}MXaH89g zj6$a^uviYP!PL#{WZ*TsalQov?t^aSv=yST%pSY9Yw9>>K6zKMC*yAOYFGoerfH`c znfV)#6o&u@q&Il(QX6O8bi=DX)`=7LH-l1Ud!Ox|f zq`#RH(uz~UdLE$;=MhHckt)%Jm35>zpV<;uq;_zwP0SvFd^2H7|vP}0As-DjhBw(ULVv?ps47 z(4SBBK-S^1oH7@T(KYCX8`>Pm(N?ES6gF}KDu{>%DJTA8{Zh67jzcCS|3GH_1qkAi z0{GU}H^5~F42K;fBeD9)@2%m*q2iuLA>jQ@`zdx<3nsP{k>HA)%#U_a9f0K@TP$9K zVjg?p=;S)VOW^LNU$c@?`JLK6z%WF_1IJsKRR?!aqb3(i0Abd2D+IfcPcTnS7=rSo z!&pjuA)8zT6-8KX^D(o*D-_nu!#2yq2-7o7u$+L^Z5ldN9Qywd3icz;k3w4VNKkTQ zU*94#`dO~%!V0K|w+trH7?^>Nl%_iWCKuLZQQx-S#9kt!B`OH*Y$zvK@M0l`Q@H41 zygS=3@`EPRhTi_R5wRufKC6l|tCR)d%)G{Ny zfecwE$K^M&t(bsK33YdvnC6UC{E_L#hWNe`NBD~>dUZTcH^r0pySwsKNOIn8GFkuI zAmT;~iIA}6*w?8cOV(_8DxPxIuzHFgH+B=tSK6MWDox~OC#NK51w0^rS&o8YsKxyWzVc?~o&O1mjx_FkE0Wa#)uip~}vFWCdg@7q2o>s#D-F)+$Wa@X(} zD07Fvql*I)f{b6WdV1>Qt(Hf=Z98PL=_c_?BB_?LZerlolQeabwKx1>+xzd2>7Lt0#Yd}C&j><6bUhUk*}=}-GS zt^P*JrC|Um??z9sIPeluFj3f7i+u2nzJuyTr529$s9!I1@0USip+!aDDj#C5bOqqQ;~au?PUXhUQGVDI?e z{NEU}Vo9yf{i;@M{oPj2nb1ZuJ@wgv8wp|rkXTewO^vurEGTiqZkqJT2LEKyt(y__ z=u(n&e#eZw%_2n-++^W_V7^F zL%Yw?OxuO1gp}bkxXN}>Z8**Pv_Wb!WJW5#Bp@?X1-I|&MJH~IfZ{K4BR~InB2Leb z(x#s`_YWobDXKC|%}A|$hTf!pHAIi6Xt_Ix+nV8c!s9XTQHN!#24^O?d=C_Mud)4T z`Gm6f_cF;^YCb+leIP8bv`HSvU=O=adnECh_0fs_MJ+UKv_y(h#Y_a(Sl8W@(XO)< z+W>2zluCe2CwtZeb1rVLr2g2i8=;GWjj|t7vd`-smTVXZQ(U|UbWYtbZBz_6juq?= zz$y(ih4R`R-uW=WjIpU8e;gAn2}^$^LxtP4^0OJX1KtP;8@`duBTFp(G_+C4vS!Zy zPs)Rz=KQlN@&%NKGq_)ms@!sjLdw9gMW`RF?J1 z8`cy~d^k9xzdJL3N<#5NDZiVNP?0aWgfaK<5=|+0%uzyr?~wI^3_=Yxj>{_Hw)fHF zrf0|$b3(>~-14=&+YNF>P$4AaGh~D^;&?4b@5Is;!|!}ZeR@-k0lRtU0Vz95#1)L_ zutc?OJGFVS+>elW$9p__I}L7DRd4g=e}QNQJam8cs9VF`_v2RTZe|e-^Uyw8*8RB< z34|tL(K{0f_6l$+4?%{`Ep0=-l@8m1-cYAs*``HWDxi+DSJ(1=Gp^KlP!5y(wrtfo}o ze_lzHx`d$RIIwxqg6A_m&&15J(n@Z394)_|C)E2nIdRM|$nR)HNMEm+k09Q?jAzRi zWQB;##q=wVj+ChxaywhUCvfI+u!EpMKGID#bhA9>$gsiKX~FK)^m6ofl!Q2&UKwb( zq$HrSIe8Ga@F1@nJ&u3oI=BiH}D(u`zjx~`Bl z3P;dGuvI%}gHnvCv+M&PW;DHZB(a6Hni$-;EpeH3quuN#BF1Vp)BXf!1H|mX-_`NN ztO5*BFlSttrwK9p1T$eU%oH-sDR1tVy3bR@?Q3qq-Fw0_;G<2HYbFvlDBK4oQWFaL zZW)LdQl~W(bv=yx>r@bZ@{Vec#&=Z3Zlf5yS>!GSvqyMy`_cyuDC9Qg-?EZWAS7tL zSSav~zHFi8K2UKfRpGhXvv`SU%qzX;OWXjsDwrX4&(vQ|1;y`&u2?M*z!(i`dpI&9 zJ(v7YjkzV%ET*s|AzwRCy=9yZOvf=G(kh)F%q%yRu1{j#kDhO;L;YsHDm}f~m!<>Q z1eW@t`=8<}z6C?Nl}RCmzC(N$mIQi+4ru4KCcX@#JTghF!E44?BnRmTG&Zo9B5wUQ z#?e!giPR?*^{XPX4PfQPUPKV|HB$z%_uiuhaxOF7`}K6*n~fLWXfYb?q%jW#1p@6!BAQAI*>U z2##e^H*+HROgHldoB}WjkTG^R8{`t)nFQkd0z1f{d!M;!G6bFYBQX3_d@p7%+>K_oIHLf;H z9j)1Q><0MGI-4-NkKI~bH3{;51Wc^nr#ao!<8Q=COsi^3-f7L}d=X1fQTPvBGp7bW z{{(Ar-znP4N;bxkYWqA~uo_WewrXSDN+6T*^$;|F`I4WWy7lc{zB-^8Y&#r2@rhit zBCeG&7dEVTDHbbrdUg9i97EW);s!kBBPLJxDJqB=%WP%f2YT6CAYC**TmS?-5F)LZ zCMMFwLyN%uZfa%qkh||&g*CiARooN#UW9R?cNn9gQ(|_EpQKxe=aWGK_VOPI>zkR1 zn9L~gI^`k}KXi!ymV$}+43Aff<-BMCQhdUfQr%~4Ggxzj*K3G7Vv@+9>FKx{L3rr* z&~Nov=N-uW$TSBjJwf)>@|#G7P5#Z5H?8}6UY}wWxiU|CLlU)qfIPRDG`t&KL|^lD z7}82+Uy}YPahG#Y71urZI!`F!>PQKG9X7@S3%oT=b~G%(yB8(k?rup{HqE-p65O6x z|K3zH;{LOQvE*0)aPs`K zz;4}x8u4;N07vq{3wYrjyzs%Z*sW7T>>4{J0k^DD$+!g!erIK}RK%i2+-7y+ZrZM&q{%yuTpg8-)+6 zi~zNR_uZ(xtoy8h6aOTy}y;~`ZZ4S=x>u= zOv!|bQz3o3AU%v;sPzBM5v<}Tb;9i16JAjp)H&B^8y1re-T9W+p=^NL@e%QdBiv7U^pbfFdYN8H6wV4h^~i@`>JDo*#eZjoVH{ zA~*M^gIo3uBZ47I8hq{S>tBibn+N7IO62Dj1cmRSGC*Fen|7jjdR zH=6OAzM_^`*nM~rf935ikQb9_sKAhH9Rb{VN%Y1V5Np zRFvc2F)9B8J_^{j901}VaVnSb%k_Ny!duOLO!v~ZV~vXItz}+rWDJkCxj!y`swU$= zJ0$J)Ep$K=K%#?}+-g8xtKnNtFmuu?SFYFV>IMNZ7~rLm`>${v__tM2!)#mA>gB+V zdi@85l|4aG!_%vVA4SxS#3O-XRsGou8Tb-~`wa#?rsdi?zdsN#YYvFyG(Xs5%d{!w zb;V00&`Z~+2sjSYCnl<1d~@zcVO|56&-Wtb)b{clLyJ;~a|spnpn-ZMZ?@%7w81hM zvWMe5ZP5A`^6Uaf?grGrfd&*Ea~)d!));e_&3Mjlx3-0#UgG%2J&~)YTE(o;XGN<% zHE2Qah@-w1G!ip(V>(ZZwEeY{^5yZw+S}U#ZC-LMtEWWhi?!B<)qS5#CXE>35Qq%f z`G8aYZ2|2;5OK_#ab-bwVN_@y7Nt9WSO>k}5mHzw0+MB%;(p!j8H&bbg;~Ce{4*cC z^@)_kq=XgqB!ZUn!rLQT`FaznxsSOcf=Br}x{h%4-Lf_;i7UYXY0HnL3G+Y#=C1)R zNE_N-{bLAog|72)1VN(ck|a!Vf!lbbMkV1nLpLt6phS)Zk;Z!yv-OYpet>oD#$c(3 z-?Ct8rra4PXJ(iH5wSJbga`ixxq6miD<7to;fV9}IT1yqaIQ{iI(v{nV8} ztXMS>H6_19Fl%F2D-xFv+kjT;(+jF?&un}y`^fpmHhkQ(w-(bZ{Zy_!(ZzIB>gUN+ zOTiw{%|qkW8cKA-62%`ax2u=zvW*Th2glzKdEUSc2lgnMHY^ZL?EaP>lWyCr!31!uy zGKw;9XW6SZ@AG-P1VJ!4C+DmZn|Iz5*19meq#j5oLs7}Qnln6HW;U8nC^*=)3u(OF zg`xyOS`N(bbk@o_e)P4gcj zGj`ErhwAq#`}H>iX2c+0hl5+%$}Uj@`YM`@w`B882wRSAA4uxE9DGer?Wg;hz`?m8 zne%oH!`e$yQ+o1mKTRHrvjK81z{!@P+51mN5SUG|@TuSZwyq5!-9g9KSFX;%RN zKB+$#QU+eN-^Q--hR8obUu7?PZvP1YlxZwcUa{-w>m1S76oOJ02UInnR_LDb?wTA# zUs|K(d$wb2khPWCM_*~wk2Jqay$JT*blxmhI*=@|3xlBAkD5;M-3)s3wv@e05{9y* zL8X^!@88gZox^YPo+&hqxVbsHD&q!h%jh0)=+=_X>)bjM?q~t1OEU|#x+3w_Bb@E? z?}XH8=!3g$t4;`!Ih=hN&p3<8gz=}WRnKTa z&PSfwq8@HhF0n3pKXYC&Hn;};L*GW8=o(ctK2@RzodN}?i83yJzc8fn56@Xk^ zg1z`_)PEoY+=`8wxOI67)lHGX#oR}@pA6ZEm!h8z+!WGJK!wQcq`9>X8OH-3D~|6( z@R_1ZeziT-t54P@zJq~|T3OptxrkOBzg6O=okr;M&LYMi9W#GuzC9O&r|-rRUuomh z-)oo(*B{Gqj4*^aH2bZ$V@-ja*~E=8;$;z}lZ)N(U)cZ<2u9^GMu587{Z-nhc5jx1 z=Ohq{tGQ&dbWe=EIUnt}!tGon22s<>=onipvFQmfdf#TiX-XyI&v<^#=_-{(Da?H& z@S_+lv*pn?7Mt?V;K?OAIL;b{qOIUWLbc^*LbmFuWnjA1kejh+5bj8(rW~q2GOu8# zCjF}9hpf*~^lxTAd5LVLzf2|7Ktr}U{O0Gj%kjkI0;6lVDgJsWW{e}DWu|GrCvr6z z|3~3%j3QC3M!-!5BFZ=y96R`x$rYhadwu#AvK`TA4$0^um+>b(nx7aq5rL67 zD*Og+U~ykRx^d$N`PFB#_y|gQR->)yIx;Zhl2cNCD2(sW2eS-#1Qk&McdQQOCu_t^ z14x1G@I*BHNwWG3^!`)M{o=2elU{<1EO0?_(EV3F7I!=M@wwWHU8L+CCt*z4%7rjX z=14|Xuz17-qh6L7pgQCf2qWHgu6;TR!N))ilP^!DxJ6r{h?`<{>a7m)~WrkaX*<5d#~0qBO*V;Cu;a% zCSWfO=49p=sFPc!7HiJsQOM&;^B%-{q_mmtWNWXIW!bR3U2_ zxqV`!9D(Gk!$}_TSa~_!a75gLQ?5yn%Juhs_CHF(*Ncpra722$sa z|L`q}Lj;{Zg*?ffoCkD6c5*9qCYuslZPiU!I*`WQcKoa{H-$M5 zPDs~qMZUO*UlLlwP6U2yrGQE0!FEZ|(#ah?UsheP7^z%WaMn(}c}wqkQ9d6$^QwY( zH5%V!Gsfphg^wyK#u#7LPO>25i7MlI?<--6!8S)n2v^T0?W1Dh!O@wZ%A5k6?Gl)} zn-gK927$;?L8>rg=9Fo146wlcevvW&r|M&&>$NpYU_CWm=!|q44ZBT721?FwVA6|? zeLmwODkKzqdV2bq?i|DKZ$tH1@y15VhstC(8US$aOQ33ayyiqy2CO4qkzpMYBu z^=UE?oorw`8}vcpq{YC*`&UleUjm4qKhl7g_u=PHz95YgxhhPJNRd}fV;*r`6~&)e z+Iy5j73!uui|4g2+d7+|{U`^a5|R15RV|mUrl$aL;YDw*y;Qx*p!3@>Ad8qRT)YWF zuT6?UXgdQ#?f$fq{A%k+#v&Z5RL$MnOOh0q4*_V2tdKnoH*t-5+eb!Jr7 zK1--77t8UNph6BK6h!D+7-0nvx{C%GpAvjt6<%n0q7I}Ib1!KR=!9h1;#TfvW_JE{ zAd39YpXHuDP10A1ef(chZJG5|ARj!!P(nTy@2_yyK_IQf0HnJqOeV7ChQUfFFC))a z%>QT}EPe#~4!?oPss=2EF_4KoBS=xj8s$w^ z$4%Lp{lKx!y^P235WxDsYe;_NRMk6(Eyzyp3z8f4+VNG;KYw*!Uj8z2+dU3<aqW8Axy5}l=byeTKPIlSKv=&Mf@fC z_(`HhqK;xxJRDF{?7$1xphV`(jpLni542rmlQu&-OTN3t9yh)+n+v=nlKLfGvp9>D zLqv5VUEfZ2yP?fQ405!PodGu&esuspio-o=XRE8-WQHj>W1RsYQ*Lsv{dJtLT1YDoT?4KfJbO;KR%| z!)pv?=~vl+mVZ8mdrzDIV$OQZ5?@kntA2R`S|NqmC`7m|P<`m@uT7=3tQNZF4}s!# z`Zc4@34v-kjb_Jloe~bDTlkNWaws~Q!_JxeD39Izy5|v8{8k#=o2J0Py%>;ig6xE zMs>hsN2B!kQ-H^EW(;T__8fh>105}^0TVx==MAh^a&$|fQnRU6K7VVqN1my? zkYq^E?9IMg7vgK*L&pbE-;YHT$MZW+x{dq!AnVQYR=8L3_B-N*G||CakY`Rxp~HBw z)~tC2o6rcZoXxiD#k(%Xder&NtIRw8LVsm_pGX~l*k31LhTPAS%~xUJL3aTgkbQX9 z+^B%r=G(h)-rO`uYDgSxCK?#`8R#V~m@#&`s-g$(~b$~3cdvM3xnl$g1^2;#j_2*}} zwc@P{G`B9hiew0|H#bPlK)Fmq!Z>4Sf`#rg#vx`HO@7Y)W!bVxmK?=@OK08zA1B&V zU6}F!6?!vRvN5L>LHNL(TQ&UqppVJpJFzc=JF;O4!RTndK#H>G$!cb#{U@9?2-;sMg+$81XOcT&;f@0*Vt-|_z@fP=TbFVx{3w!DRdlrn7I zySeac^q5RM)%LpPDS1Lvh0kCusFO5Yq91O=G+i@xe%n3nesGcH{4P2kJve}i-bilY z$*!TTCaz>5HtX#{5Az4F>(}=)MfWHy`8 z0&RL73@ZL!Mg*iyGacDLk2X!aK>x)Ww1zB*+X;M6WPkWN+%>2U>zxjhJn<+dJtN}&F97eE@4r>n&R|4-_rzNCH9y+uu8|?yME|&!*7yRA)_G8jWk|v>zf{rmPbd zWW3C0RIos&=MSt_Z<#KZOLvDCIDHFQox$)oplLmhgb9!3XS!gkeZJ(GIEi^BGR4EZ zJhJi4c+zwuo-(~%SN1(7@u*-Sl|1uIs9-iTKkZH4y-WtbsGLh`USDXvA|Txe(hY(%C>_$$N+}Xj64Kq>EeMEo=YU9eGXf4gYv2m6 z`@Qb>{k_lg*E5H6IL92!o;_=?wfEZVd!C;&oUQaV-NUeD>%P(RD5E6TVP*(=8-`PQ z{f#DkrFH`TkBi1uKp9MWc`M1xl6&GR7iY^5_?Y8Pk1hSS@m`3O$>Q6hqrXAd421;ZjG3-a+8||8j@$u6x4D#SiUl8II#4

zyEi1d)cx(ECo6E)icV2=b;|7ve*N<4W5$7YlGNF8J1I3z+CqfIMwVb2*C>qCx+lcj zdGjoW^q{?BH}L`OV$|pgP30==)l6iKqUJ42zv$}ESK<&&8(IaPiy>RhZyjo{lC${w zIcg*e{GS@Hml}6Q6oqVf4%vI^o1dm6oT+oT>< zB12tMh7Epc5!2CL5ze1Z{D?Dh=5fLffaqlWgyn-3@=4wJZRV!Ntq|_1BXLc2-@0_q zUHZekt`ylX9uVaIQNwA^>AM@XaWn5ESjwo%i7!~++fWV+d18?`^FGVvmyvTNFH)7y z3E5gPt1gd%T7BGTjVfZ&h<}L^!>?d8w)nK~CYX#xVQIvF@YSiDLKxBLm+K_DDcTSs z8}@Dr26jt(=9MQ`F0qf@{-q9#kK*(oyQ0P!WLAz5VfdACvNn$X1Qq0!qQyl@1tnA* zIhbNVTn`xtS`P5zRc`7J{fOG)Irbi`5Gjte)u`(#VZd>beb`aNzuF|?yokM3H>lZm zeop+xv_RTeOG7ZKrY}m!Dg6x7K*%C+PtVDpvMQZLNle#HUq-+ZN70EEm%*V9xmQt5 zoOc=}vQlc4Q1HOIT*y%F7v=VNx*L%X+nXVtnql+=YrnN@h1l6W!(F={r;O3SU;6!L zCfR~4TTZUzK_LEaqMpr6e@`{9=Fv47Eu8XrK=Pu`ZguZ)waq8De0_QJ>KY_EM`l9Z@Fy!a z1W0;Z@4Srl`Av)yMC7aKvuwJ7ABMDQ=vCOE(-)il=h%dVgwjXd^8U8~Nbh{S9oMebz4$m^FLD(ob~OXa2_RQOkd@F>f0d;OFdtF00fe!NrT1(jkg0<)HdqZ z#L`o5hxYIIE}b9&7y@=;X_`d^9t&6mf(2&cwf8KsK6M^Rhq>Ws>r#T9FayZHcA!T@ zqgLZ~ec;%N-4YxM6Wp!%6lsG^bIne$k&J6h55>8{=!?=#VJmUo>bHR z>x!}5FMqs$2OTVJkCoXqlO)dSO(1U-)!Z|IuE|1kM)qQj`N6ZD;= zIEyxGRQg^tKu3t1L2rr_SE7E@4>fvGPnZPbH$XKIVn+$9#$V>-#(9kwU&7z}QiX`Z zQku(UJ9LTs8@=iC`WZ=t34<81V8_yFkNZ5byiC_-f$tkaw9JyNV=HYoVJU=e5Q9UJ z_wc5y`OHBX6=}gxjK}$d^j_%_nbjP!aXqId^2k8bn-6Q{1ysDHV*L(~6 z6xg^iG0Zt-o!h#kVO8FuXQ;tCQ`((*=ne->aVb_v)f3iZU1E8+`Pin7lf+tTAUsyaR~NK7ew@)%Z2i$-L-eiI=|?B>53HF-L~76e9%t2jr_fly1nkl zUTjAXwj`38r|?lUVXP<*C+@{#HXU17%GR3pgnrC=Gb&L2Lev94lL{I-xrcv^31t*BR(dqIeOL5yOgZs1AZY}O+;w_=GQqrwV)mKb76>xezb?J zqc`Cpq+$FGZ@-iXFXIlHor3lYx}_Hrb5{N*ZdCEX(@Lf6`)y|ZT5Q*}n7&l=t@sFnHkI)tSMCxWs_xpWyMgRh9R?H!Xha5BNWZ&ithi8`z!aCTW8wc{ zL!<1YaaL9j#r+MVl_~p3PTQcZr$>CM*az$<(zcFPonJG6F=xz_-)}*yoZ#6$pV3NN znX1)!g>hDgMCX_qxvVjR#cWl@M(DEfXj8D`_$b!d8NN{~$<{Izg`(;s-tC*d#g&+6 z=N73F)uP@ePqa0SVyt_o8#K;1-p1`8TPrFF?w*gL`ac#=TZ-N!+VnylujF!gHK+g5v7-l>Ont1~BDGi@QhiApX> z>fpG2Tl$tT2iz++!(Vp%t)oAK5UPb`WrHX znaD6wLtzWlKK^-mSDK}7x_3vuQ9W$+awEnc7X6uk8~Y+*wPHH}?n}V2qOHOm)>CiW z1uc%KOEBLIRq<*;nj@kyi>}Z9I%hqBwlnRM+IVx>kM&Qm1%M^Ica%rc_I?o^8fj1L zJ%#NMWMfdv_t6|~2y{2d;PC5EbVtoG?u<+Itr6H7;|7d$22+kIBDvb%0FIuFga8BC zy+ai@-lr@7W$~Rp8Qv8odg+;>#jk)r{a1Q zjmhu_xRV23A$QU|+B-(nb7m7*+lxo6>1^6qDDJBI=``ZlrY*%-IbB z&~rWHZpVXx8BeC%v*?i}=Hcyo9EN^Eur~KW|JO0o1144Jn!4Uh!FM2yWmcy5^<8pm_{JBx6@tQKj* zHJ@v3URZWTM17g5Y-u(pgU?3{rxlHil`W%vo%F~a>!UxQc+i%T6MAt13Fxndpxn^; zW_hKxBctSMErKB1%IqP78KZ={Iu0M3nPpw<2^4b53i)=^cu}e-xQgYO+l1a`Al;(G z!TZvA?pC|%@wAS+IHoE^DW~CQ5H;4si=|9VpS7O?B-RI0+x^e)qsHQ0D;iJS&F|nw zyDPpB>o~0hJ1&z_u*h5rr;1xvKchVrA9lT0`i_lr+n35`(&%-QN@Z~?@Fzp=yzP1b zQEPQZoq3_RC=fxJLYW<>VyvyT0=q3@i zdqT;n<&vIPcmLed&6U72uu2rxcvjM@^nNOv!p;*{?c&RuuXcwnv8OK>WjVOvc1d}i zRY8ogR*Ac<*nyTP$T(}~hyAGp;)VXgTjFpUKDC)@oci9%lIGP`o;+ojJ7 zA~$G?yc`8A#g<&DrmQL_G<4r5DW-EHA0X9)j;7`P5K>eBq-1H+*5dzwF}b3Jws;q} zYkPXsm3g?XO{W@rnNL1;LxsG%qKH`0l@kvU?6z-+^9DzjNxWfq%8Y zUaluRTn}4_P$at)^(Z^RP9H&ML6a9QO*<&NdAvf#C3K&vdfjRJVVXFS&K8TA`}Fl4 z#C)MTb~1enp`GPaV9}tCFFDU%&r${tDNL?!Y6nfh2Ul}UaNB>KE1eLU0+>{QGt6I{<){K z<0EGG#f&VqR8*gh0{o))dcoc}DfZlQI6f|%r$#Lk1>T0QuZxWD(H}B*m#5na-2zQiO*B$9xB=^uYzj{sysiu@t#fHM>C2Bi> z!eD5|nhp!5+2&D00yPyN#!{g9xuHQ^gp;!4ac3WE{@`|n&cifs&bMp4NH@uSSKxX) zNfC7`7HgO^aHCJ!bWw#6A>z+ZgDjN{X7F0D=@zzwIl`--JgZ7ID#r+6tMNfaLxqc? z2$M;4Mxv@^nN4Up!kcaUR< ztN~j{szQYVey2H(L_2SwodWy-VDW7UWVK|m z=yh6klsAG|3I#XYXw~)IQ*=y&?P3Qc<%(||w4uMK=&hYh)|$3x`<{c=h~@)Ga7va% z;v4)(mqkbqsiEoZO7_;{4UMNws}ha1w~^C1AOysC+CJP3#LC$dTh7>CLt)E1X9L#x z;)S)>8SF;X7WkJ?j4;}->%T7xi|h- zg>fbVO<8`$24|hoo+rhcp3VHJv%xASvUevcb&NhAHN9YXOjL>%w$$8es#D8;7x2*^ zq~9LoXYD-_x*zsgxR?&h|W9zv`xYxXfWD4bTIH|3uDv z_0aQvcat7Fy~J%_Cvk|I;j1c5R~y=@o_?v0x0}4$fzV|n6her8 zr=Fb(#s-#eNpAgvM3=M;B^FZQf%KEd{Mb*131u~G0^nTyhwBTA4fwi&76yETekbje z6I9Ve+DTQ$ar+2e1;Wq?E|F0%5CK(_e%pE_v*2Yn6$z|VG`XGuPy)HTJVrHif2z!=xR0wqEtlQG;%l7DJ zLY^kmQR`n-H8AiP&AqjmR7>Hpzf7VY4W~D@9_QSJpdWn7W0+gat^|mU2L)56K{>Ow zM9^&vc9OROYbLz-&^GPlv0FgGai#Q@sz#Ejd_eW`ZR*RTozh67MY-~lFUyl)Zx`UL zLB7=N}Zk~7X6lDwN2aa(*@7PCAvu~5Pm1Wd;lhThho?m-EF zshDS8k0FxtKQlfg=imL-qS=*@N5&kna*w&1J5ui+a_^Wy6+~*?eIt5u?)VCT zs}Yflh`dEH8w2_0Zf>NRnVAzc?CsNx8YTbWfCn1>39QFF3Hdzbd9oB!GHC_zK}6CO z(WhPe&s4a}jCch^WUm0o#dHPnaEo~}HC(vk`GTwN-o&%Qen6MF?Cb2J4L>l2j8FSuYI}82gw2u_=$bAw z%NYQ19P4;zuGyI_1*k`~1C7{H_?$P1$#Da98jH+pn~E1<%@=}*WJW|Nx&3I}$M+Kl z>OvhwAk=waB$f}zWdM&Z1rcp~nMeR)(@I`0bOg_RxDL6BbrwO0J2JKI-1tsb^e*Vh zCeFB5v;J=wenj50f|9zr|5d6gNIOt73d!vZqw4gA7hk9sT}2Om*|z@WC5+Ie3tt=v z$Cye31>c_%8SqPgiW1qC{zsu2>}e=0W+W+wz$ zJ@sDDKUFJt?+*F=kAhc~XD?@jsUHxZ|KHI6z60X&A0Ut$H_7YN9Hek#eieof3(tde zd3=J$pFu-1YqDKh3LclP)cwoILD+QOaQ(aSVRN?Qzrg6(@;XMK^)ALhEM;bH9-g1; zv+7uv>D`HIo2XEIXj`dvkcIzAbHn57e8bwZETLxJmK>LU0XgZiJoryQokXQTmGyme z_jB!xDXMiRu)}bCdV2bxs@Jb;i+I}mUaPG{>%>?j#fl|JWq%WO0k5o9MB{a`H8yK) zGC$cMbU@1NM#hX}svMsu%HRJHXbCa-g@$%Ts=v}+Nkl0k3I81Bo9?i^Cz~3`GBz5=pyuStnl0oup$@b~TR;p;DfZ_1_}b7M*Gsy8VKK1G{D=gi zC^bhg7XQN;vpM_XA34qcC+3Ym1BBBWH2*=z|Ht7VY4ixXM`k70i1nwRgG1Y{7K<+t zS2re;gzIeqQ~mRIZ^v%^;TgC|Nct#iInoZY9aH~3h)eE9A-^F?A1q}<=Sk6>A%Mdk z6TH&mrWt`XEP-2ma{+b7H+#MkN^G>tb5Ai_6VHpv4*~h=QKK0)g~g3Xn>-WQFw^=Y@F&ou5<|)M5w{MMkQv z8c}Hj3|tmt86LpPD*@lid9gZ2dxyd=U1BfudgwS(588L3QDWWBN3luUZDvD4f6An^ zPZP3Y8qs^Z4>GgN`8nS5XZ}HPpO%C^ip8x=*>UMQ6ZnO8Qg1Gr{EHVb?3ZE{Yab+) z)UCcW0|fr;KM4F9(VR)odk|C=zLDe*mhVzA3TV*#!mY`;DN77oIWm>azloOCom2t; z-*=20tho1gT}k~c>3`4lSq8-rZ*$QQCrD)d=IXKA_m_BSz3AA@N_YncHnbPgxw=li zXyOb#ke*f7Ib_9plIXlsy-!H;S4ehBO|raB_ko)9o5AR$Ut)nd^T|G$l_)b``r!@Ri=CfrddiV@?nM$V5V(5oVoELIFWeY?ZKfA z&b8u^*4+yH*M5r9S+DrHIueI~jSHvJ&clm}xgW0u)ZSKu3Dwg*&0h7qX%hZong}rQ z-Jx!Wdc~so-S}{u88ddWfuEwAcyLI9;$L1EI|7+lk@?f9_0Jt~ykNM_YB|3!~0f-}f;2kymk?1y`3a$9J4pB|DQRmW0GS9hvka)b-I)09qp5zVwnn&@-W*KDY%ro@%#{SGP=Eu+lNm)-F;s1Q< zcXOQ-j>`dQ**7*86Zl4>0a-wwLGif(jM|Wjv|8$yjZ0^nX6BF?)5dOr(#*>S);slHuTxkOZ6 z^+SbFhP?~XV10;P3b|o3L3ca5oW`}98v}=8iP2RY!!@dPgp%Kbh-MEI4jTvFoCYY+ zdVIU84|~@x2a)()m4g@a=nVaekj*AS;t2vRGWI&&f8bO|dy)CBlK`T2-wnbMJILcq z1NB5`ZgMX-3!;(`W4PYx?|BRqn63SEV!ySvUXziLNf}-P$pj#upag)P@4VTWPC4SlPOuao9!$!N(O-qd8G7{ueFJTK z(t?z{>cf6&@-!NUxPcvIT6{1@icrb> z4Ze!OKcB&ZUFU9CnIUfCp){}Hd5AJc!bAX>S3ENip1G!Z`0fs{n#zTdl#+QlHYvvu zl#e11gQJuRx0Lsf7c)JwZMYw#T%itL1#Nw%tw}A1sDeAccP01lt0_GyV?-n^0Ua<*9 z+;{f$^%0K)(U(_*ZH~`&t&nI_N(3pV>?_`#(BRw z?CfzoeV=v~r^0Ar8>}2Rt0M;$;a{i;L>zS@R-XB;c|%(cE~35wg(G#&f=D(LPlZ$U-}a@;F>Q6O9*X^0h?xojcu& zH~dj8A}MJ}Z#;ZGVS{&0W41}38IEjYjQQC<<>?;v1U*V|ia|7|D`7;3g<1|1_Hk-7 zVY=_f8v|m&BS+`2+&>V=7FW#1O@y48w?lwEC z?`TrZ)T*(<a>GV>l)TkztRxvl!$%7Yg{*0ANHMZCy=W+CUFaC zf8R_0U2PHiGM}vjI#^VK;`MZ&d1hJwd)$0dF2v^!=Bc16{0{$Qqfwl99IdU+U`
GF7{eUZhqyRzQn{SVu+r$%?4w0Y~D9j>flHM$)RTJs&7r=Fo_ zaq^YOPS+JOsM*?&>MGi__DD^#oy=)j&9%$DVswjsn05Bq zm@h{4O)D-p2^KAEQNtIP=D8Gy&yzL|9OK+|xgC$-86)QrbyfUR6-M=IifoKc_PKk< ztVcF60Yc=up4K*DmOmZEhFKIh)~MP?_QaYGcO2?|!ban=g(-)+7U`WfCyGLe!oCek zq1;;MWoxvP zgO9ZdZ3pEpoZRk(ANc@rfFVv8?Z^Es^&LwL-eOq3dw#~&7T@}lz1PTm9*>H?JQdq3 z4;-ye7w>EW!r0LZ%+Ut|7VG?(4$TQ;rN`D&2gk2MLg_f&<};3)8lH8Y4;GzsyNw#{ zRP-FZs_SViqOiCKp$Q=$dhOd56h;?COfoi~WWDaX5JWDmY0K73%wKT<7p?Se_%RiX zZNAf8?<6ppsoJdP;VQSeBIUFlQ_gq(%YIoo(c3-DxsgRl04IBX&Jp)6uoLkL~@b^Ht>Zlmyh@z=H ziT9&Tm-`9N94-Wmk1q<^c_PB&<<6J_d*b%A${z@sk@GH_8NC$z5x?~2`bYO7r(qqw zA?tWYmsjZfpMY^26p1N7>;o&CnNz>NH%`THYMLO|XEi**fJ?ENJF`*z`ov_^E z^YS4b$3%5Qh_SZw@h2B4+xXhGcDisV6*G$li}~6{L{CBOuUW71vs!wZuCM0ox}Ltv zKPoF_pN!kNC)qd@GdK+EoO(8!dmFtJUdd%0z6g|EUY?P6*d`=tbbT>81Z}r0_eh{0 zp5-=Ul`o!XndzN@N0lFP*Y}>|oj*_PPN=1%;)FBl#cYo&#&vHLN+vd1&FTte4I9;k zC2)*4Kl?SeS9v%}>~O#qC`>g+u!-a%|k^mM$uq$K4DZQ9h7wtG&FhfuL2 zU!fUip54S*m?1}8aM@(R4%v{*5LiWXb91BZ8Wq=qs8v-}J?iQ_ORU8ep~KkM8K0T4 zaw%5P)XeVdQ=k;N4ndDvLQ}%Q#$NsM4*%FrGgXy>+5^G8?d~5&=~vf9meSRcz#pUEalX| zx9~<4b)(|}uvn!-s9HW*U}0fFfa$-PnikCdZONW)hw7cgCiS=tv@SC#iPB$;8WURt zQc+piMVt=oc0-hP49k3wXxgt1y2i%o(8h1ZVS-tp;e){0T||pDi&Dtr=}yBzsGyEg zrbiP|*)Qnw>CuK8V168Zr3st(1ZHiMvb-=A7@qd=2lftib|(O#34bC{Sy_3kqcDbpSHHu*VoraCMR>NXWhCfuR&7s1Wy(tNr{OE-r+NBroLfZI%xcG$D{hb-zH4h z{d-U@K0f~O4Ijp%&GLTKvX&MdG!$8-l{zE+x{dYq!(Q&W2`B`Da;;qr_Eo{TcoJD% z4!#(vxM`#LFfO=tz63PfRja)y50bc>iTw#A9}RqiJ*6ws}+>Pte4rUd*}7 zy>hT@XS%wdvWa22ZoOt(FFbKm&$?n$G+`sib4|$ev;s<}KIsGt+B88t8S1&oSn6YT z&=6hs$&IFI0WI?6&5t(|PyZn<~+gRX9c=c3pwgr3FjM&3JpOcN&I9Hw0N+dEe zQieYA_r9jIr;-~rv{nJdi6U%QyZSqb-D@MpKVH^|{Mow+*>1nTPa5*i&TDCH9lgNw z`vxH`*TK=hdVB}1_2(v2mq8Q$N@SO8*Jh1Ty+@#Ok3gG4qhRUa75L}h_P+9&d&AT2 zm4k;JIaygRdSj0CB#+z#GQ zIIf(Y$p?RN96PNMx(R|bBiSWExT{vVe5wY^q^}2b$K@C?rj#K)Jv}*y;ev}&7Aa`< zRpB^=nt#$aVABMT^y&@gX0YO^rmtUodg|tGCe9>vETjHzQoL5DPo14BQ6WDoOEUb) z7fMFPVVxg)T?)>^g;B8d%8*W8MI0zlwxA@>a+x5)M38Ow5A#1L-rr1x6uFZUh(%i z&nJkRmp9ksp}7n4^T&U8nrNB(i3-!do$-Da&wjM5tIc6J?yv_(;eO5O?#^}P^aDrm|)1rwrn)N>P^+g z)Co_*LHjq}bvIwpTR%5}1zwJ;%tZIxvq&fvXeOqz80YQGZAE8q#F(K}yX-0XMi!Z$ z;^LIW#eJa^=q3#A10NDMMa7-V(7>^yj_Ke(YuXT8=*5>QO%6_DqWxfu50DTRXY!?ElyB2Hiyes;m6gT^OZ~H^z(ei;DV& zJyrAR+&>hb!TYwYEw9Ft0kX`$TsHn~?Wb^*KY%*wtO5cJz=A(kkSG!}c=NviqWf(l literal 0 HcmV?d00001 From e948102144e7b9d366fd86e8419b88d4b5b412dd Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 11:11:37 +0100 Subject: [PATCH 02/20] Add getBalance test - red --- .../com/booleanuk/core/BankAccountTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/test/java/com/booleanuk/core/BankAccountTest.java diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java new file mode 100644 index 000000000..0329ed2cd --- /dev/null +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -0,0 +1,25 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; + +public class BankAccountTest { + + @BeforeEach + public void setUp() { + HashMap transactions = new HashMap<>() {{ + put(12345, new Transaction(12345, "credit", 200.0, "2025-01-15", 200.0)); + put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15", 100.0)); + put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16", 150.0)); + }}; + Bankaccount bankaccount = new Bankaccount(12345678, transactions, 0.0); + } + + @Test + public void testGetBalance() { + Assertions.assertEquals(150.0, bankaccount.getBalance(12345678)); + } +} From 1e8175d83103765dd2ad577eceaba363e6d24a99 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 11:30:09 +0100 Subject: [PATCH 03/20] Add transaction constructor test - red --- .../com/booleanuk/core/TransactionTest.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/test/java/com/booleanuk/core/TransactionTest.java diff --git a/src/test/java/com/booleanuk/core/TransactionTest.java b/src/test/java/com/booleanuk/core/TransactionTest.java new file mode 100644 index 000000000..163b93e0b --- /dev/null +++ b/src/test/java/com/booleanuk/core/TransactionTest.java @@ -0,0 +1,24 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class TransactionTest { + + @Test + public void testTransactionConstructor() { + int ID = 12345; + String type = "credit"; + double amount = 50.0; + String date = "2025-01-15"; + double balanceAfter = 50.0; + Transaction transaction = new Transaction(ID, type, amount, date, balanceAfter); + + Assertions.assertEquals(12345, transaction.getID()); + Assertions.assertEquals("credit", transaction,getType()); + Assertions.assertEquals(50.0, transaction.getAmount()); + Assertions.assertEquals("2025-01-15", transaction.getDate()); + Assertions.assertEquals(50.0, transaction.getBalanceAfter()); + } + +} From a2e1b2a70b48de871be1c855fde4ed859ddae7d7 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 11:36:40 +0100 Subject: [PATCH 04/20] Add transaction constructor and getters - green --- .../java/com/booleanuk/core/Transaction.java | 37 +++++++++++++++++++ .../com/booleanuk/core/TransactionTest.java | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/booleanuk/core/Transaction.java diff --git a/src/main/java/com/booleanuk/core/Transaction.java b/src/main/java/com/booleanuk/core/Transaction.java new file mode 100644 index 000000000..2f76e2c5a --- /dev/null +++ b/src/main/java/com/booleanuk/core/Transaction.java @@ -0,0 +1,37 @@ +package com.booleanuk.core; + +public class Transaction { + private int ID; + private String type; + private double amount; + private String date; + private double balanceAfter; + + public Transaction(int ID, String type, double amount, String date, double balanceAfter) { + this.ID = ID; + this.type = type; + this.amount = amount; + this.date = date; + this.balanceAfter = balanceAfter; + } + + public int getID() { + return ID; + } + + public String getType() { + return type; + } + + public double getAmount() { + return amount; + } + + public String getDate() { + return date; + } + + public double getBalanceAfter() { + return balanceAfter; + } +} diff --git a/src/test/java/com/booleanuk/core/TransactionTest.java b/src/test/java/com/booleanuk/core/TransactionTest.java index 163b93e0b..77e698d26 100644 --- a/src/test/java/com/booleanuk/core/TransactionTest.java +++ b/src/test/java/com/booleanuk/core/TransactionTest.java @@ -15,7 +15,7 @@ public void testTransactionConstructor() { Transaction transaction = new Transaction(ID, type, amount, date, balanceAfter); Assertions.assertEquals(12345, transaction.getID()); - Assertions.assertEquals("credit", transaction,getType()); + Assertions.assertEquals("credit", transaction.getType()); Assertions.assertEquals(50.0, transaction.getAmount()); Assertions.assertEquals("2025-01-15", transaction.getDate()); Assertions.assertEquals(50.0, transaction.getBalanceAfter()); From 5950d433d561e25cc28b9f4d353b329095ba4cf3 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 12:20:20 +0100 Subject: [PATCH 05/20] Add getBalance to pass test and base on transaction history - green --- .../java/com/booleanuk/core/BankAccount.java | 31 +++++++++++++++++++ .../com/booleanuk/core/BankAccountTest.java | 5 +-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/BankAccount.java diff --git a/src/main/java/com/booleanuk/core/BankAccount.java b/src/main/java/com/booleanuk/core/BankAccount.java new file mode 100644 index 000000000..5a9f47f0f --- /dev/null +++ b/src/main/java/com/booleanuk/core/BankAccount.java @@ -0,0 +1,31 @@ +package com.booleanuk.core; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Objects; + +public class BankAccount { + private HashMap transactions; + private int accountNumber; + private double balance; + + public BankAccount(HashMap transactions, int accountNumber, double balance) { + this.transactions = transactions; + this.accountNumber = accountNumber; + this.balance = balance; + } + + public double getBalance() { + Collection collection = transactions.values(); + double balance = 0; + for (Transaction transaction : collection) { + if (Objects.equals(transaction.getType(), "credit")) { + balance += transaction.getAmount(); + } else { + balance -= transaction.getAmount(); + } + System.out.println(balance); + } + return balance; + } +} diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index 0329ed2cd..ee7ff7ccb 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -7,6 +7,7 @@ import java.util.HashMap; public class BankAccountTest { + private BankAccount bankAccount; @BeforeEach public void setUp() { @@ -15,11 +16,11 @@ public void setUp() { put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15", 100.0)); put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16", 150.0)); }}; - Bankaccount bankaccount = new Bankaccount(12345678, transactions, 0.0); + bankAccount = new BankAccount(transactions, 12345678, 0.0); } @Test public void testGetBalance() { - Assertions.assertEquals(150.0, bankaccount.getBalance(12345678)); + Assertions.assertEquals(150.0, bankAccount.getBalance()); } } From 0cc69ee53da6db555673531ac4c72a86bdde35c6 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 13:20:26 +0100 Subject: [PATCH 06/20] Add test getBalance assertions for savingsAccount and currentAccount - red --- src/test/java/com/booleanuk/core/BankAccountTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index ee7ff7ccb..3851d3fb1 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -8,6 +8,8 @@ public class BankAccountTest { private BankAccount bankAccount; + private SavingsAccount savingsAccount; + private CurrentAccount currentAccount; @BeforeEach public void setUp() { @@ -17,10 +19,14 @@ public void setUp() { put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16", 150.0)); }}; bankAccount = new BankAccount(transactions, 12345678, 0.0); + savingsAccount = new SavingsAccount(transactions, 12345678, 0.0); + currentAccount = new CurrentAccount(transactions, 12345678, 0.0); } @Test public void testGetBalance() { Assertions.assertEquals(150.0, bankAccount.getBalance()); + Assertions.assertEquals(150.0, savingsAccount.getBalance()); + Assertions.assertEquals(150.0, currentAccount.getBalance()); } } From c861cf9c2de723b36013a77e8cb8b10ea56e4321 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 13:24:29 +0100 Subject: [PATCH 07/20] Add savingsAccount and currentAccount - green --- src/main/java/com/booleanuk/core/CurrentAccount.java | 9 +++++++++ src/main/java/com/booleanuk/core/SavingsAccount.java | 9 +++++++++ 2 files changed, 18 insertions(+) create mode 100644 src/main/java/com/booleanuk/core/CurrentAccount.java create mode 100644 src/main/java/com/booleanuk/core/SavingsAccount.java diff --git a/src/main/java/com/booleanuk/core/CurrentAccount.java b/src/main/java/com/booleanuk/core/CurrentAccount.java new file mode 100644 index 000000000..167bde2bc --- /dev/null +++ b/src/main/java/com/booleanuk/core/CurrentAccount.java @@ -0,0 +1,9 @@ +package com.booleanuk.core; + +import java.util.HashMap; + +public class CurrentAccount extends BankAccount{ + public CurrentAccount(HashMap transactions, int accountNumber, double balance) { + super(transactions, accountNumber, balance); + } +} diff --git a/src/main/java/com/booleanuk/core/SavingsAccount.java b/src/main/java/com/booleanuk/core/SavingsAccount.java new file mode 100644 index 000000000..34edbfa33 --- /dev/null +++ b/src/main/java/com/booleanuk/core/SavingsAccount.java @@ -0,0 +1,9 @@ +package com.booleanuk.core; + +import java.util.HashMap; + +public class SavingsAccount extends BankAccount{ + public SavingsAccount(HashMap transactions, int accountNumber, double balance) { + super(transactions, accountNumber, balance); + } +} From a7e2895ed522e49ba2e6b6f642de9f3c6ab2b23b Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 13:48:17 +0100 Subject: [PATCH 08/20] Add testDeposit for bankAccount, savingsAccount, currentAccount - red --- src/test/java/com/booleanuk/core/BankAccountTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index 3851d3fb1..4aa8a267a 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -29,4 +29,11 @@ public void testGetBalance() { Assertions.assertEquals(150.0, savingsAccount.getBalance()); Assertions.assertEquals(150.0, currentAccount.getBalance()); } + + @Test + public void testDeposit() { + Assertions.assertEquals("Deposit successfull!", bankAccount.deposit(50.0)); + Assertions.assertEquals("Deposit successfull!", savingsAccount.deposit(50.0)); + Assertions.assertEquals("Deposit successfull!", currentAccount.deposit(50.0)); + } } From 3123e9b1456e869efe406f24a490324e7616636d Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 14:31:26 +0100 Subject: [PATCH 09/20] Add deposit method - green --- src/main/java/com/booleanuk/core/BankAccount.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/booleanuk/core/BankAccount.java b/src/main/java/com/booleanuk/core/BankAccount.java index 5a9f47f0f..3c526f01a 100644 --- a/src/main/java/com/booleanuk/core/BankAccount.java +++ b/src/main/java/com/booleanuk/core/BankAccount.java @@ -1,5 +1,7 @@ package com.booleanuk.core; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.Collection; import java.util.HashMap; import java.util.Objects; @@ -28,4 +30,13 @@ public double getBalance() { } return balance; } + + public String deposit(double amount) { + int ID = (int) (Math.random()* 90000) + 10000; + String type = "credit"; + String date = LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); + double balanceAfter = balance += amount; + transactions.put(ID, new Transaction(ID, type, amount, date, balanceAfter)); + return "Deposit successfull!"; + } } From b557cd49397feb68b2e63e9df8a523c0595bf8fb Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 15:06:06 +0100 Subject: [PATCH 10/20] Refactor deposit method and test to verify balance is updated - green --- .../java/com/booleanuk/core/BankAccount.java | 6 ++++-- .../com/booleanuk/core/BankAccountTest.java | 21 +++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/booleanuk/core/BankAccount.java b/src/main/java/com/booleanuk/core/BankAccount.java index 3c526f01a..5ec7ba34b 100644 --- a/src/main/java/com/booleanuk/core/BankAccount.java +++ b/src/main/java/com/booleanuk/core/BankAccount.java @@ -6,7 +6,7 @@ import java.util.HashMap; import java.util.Objects; -public class BankAccount { +public abstract class BankAccount { private HashMap transactions; private int accountNumber; private double balance; @@ -23,10 +23,12 @@ public double getBalance() { for (Transaction transaction : collection) { if (Objects.equals(transaction.getType(), "credit")) { balance += transaction.getAmount(); + System.out.println("money was added:" + transaction.getAmount()); } else { balance -= transaction.getAmount(); + System.out.println("money went away" + transaction.getAmount()); } - System.out.println(balance); + System.out.println("after transaction:" + balance); } return balance; } diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index 4aa8a267a..da805de07 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -7,33 +7,36 @@ import java.util.HashMap; public class BankAccountTest { - private BankAccount bankAccount; private SavingsAccount savingsAccount; private CurrentAccount currentAccount; @BeforeEach public void setUp() { - HashMap transactions = new HashMap<>() {{ + HashMap savingsTransactions = new HashMap<>() {{ put(12345, new Transaction(12345, "credit", 200.0, "2025-01-15", 200.0)); put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15", 100.0)); put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16", 150.0)); }}; - bankAccount = new BankAccount(transactions, 12345678, 0.0); - savingsAccount = new SavingsAccount(transactions, 12345678, 0.0); - currentAccount = new CurrentAccount(transactions, 12345678, 0.0); + HashMap currentTransactions = new HashMap<>() {{ + put(12345, new Transaction(12345, "credit", 200.0, "2025-01-15", 200.0)); + put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15", 100.0)); + put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16", 150.0)); + }}; + savingsAccount = new SavingsAccount(savingsTransactions, 87654321, 0.0); + currentAccount = new CurrentAccount(currentTransactions, 54321678, 0.0); } @Test public void testGetBalance() { - Assertions.assertEquals(150.0, bankAccount.getBalance()); Assertions.assertEquals(150.0, savingsAccount.getBalance()); Assertions.assertEquals(150.0, currentAccount.getBalance()); } @Test public void testDeposit() { - Assertions.assertEquals("Deposit successfull!", bankAccount.deposit(50.0)); - Assertions.assertEquals("Deposit successfull!", savingsAccount.deposit(50.0)); - Assertions.assertEquals("Deposit successfull!", currentAccount.deposit(50.0)); + Assertions.assertEquals("Deposit successfull!", savingsAccount.deposit(30.0)); + Assertions.assertEquals("Deposit successfull!", currentAccount.deposit(40.0)); + Assertions.assertEquals(180.0, savingsAccount.getBalance()); + Assertions.assertEquals(190.0, currentAccount.getBalance()); } } From 6a7d5ab221ea4534376f1d6ddc84633f6076f7ac Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 15:12:24 +0100 Subject: [PATCH 11/20] Add testWithdraw - red --- src/test/java/com/booleanuk/core/BankAccountTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index da805de07..639b71368 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -39,4 +39,12 @@ public void testDeposit() { Assertions.assertEquals(180.0, savingsAccount.getBalance()); Assertions.assertEquals(190.0, currentAccount.getBalance()); } + + @Test + public void testWithdraw() { + Assertions.assertEquals("Withdraw successfull!", savingsAccount.withdraw(60.0)); + Assertions.assertEquals("Withdraw successfull", currentAccount.withdraw(20)); + Assertions.assertEquals(120.0, savingsAccount.getBalance()); + Assertions.assertEquals(170.0, currentAccount.getBalance()); + } } From 217dd67922238b74eb960463890f993ff23fd822 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 15:18:47 +0100 Subject: [PATCH 12/20] Add withdraw method - green --- src/main/java/com/booleanuk/core/BankAccount.java | 12 +++++++++--- .../java/com/booleanuk/core/BankAccountTest.java | 6 +++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/booleanuk/core/BankAccount.java b/src/main/java/com/booleanuk/core/BankAccount.java index 5ec7ba34b..c461b3ffc 100644 --- a/src/main/java/com/booleanuk/core/BankAccount.java +++ b/src/main/java/com/booleanuk/core/BankAccount.java @@ -23,12 +23,9 @@ public double getBalance() { for (Transaction transaction : collection) { if (Objects.equals(transaction.getType(), "credit")) { balance += transaction.getAmount(); - System.out.println("money was added:" + transaction.getAmount()); } else { balance -= transaction.getAmount(); - System.out.println("money went away" + transaction.getAmount()); } - System.out.println("after transaction:" + balance); } return balance; } @@ -41,4 +38,13 @@ public String deposit(double amount) { transactions.put(ID, new Transaction(ID, type, amount, date, balanceAfter)); return "Deposit successfull!"; } + + public String withdraw(double amount) { + int ID = (int) (Math.random()* 90000) + 10000; + String type = "debit"; + String date = LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); + double balanceAfter = balance -= amount; + transactions.put(ID, new Transaction(ID, type, amount, date, balanceAfter)); + return "Withdraw successfull!"; + } } diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index 639b71368..925e0f70a 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -43,8 +43,8 @@ public void testDeposit() { @Test public void testWithdraw() { Assertions.assertEquals("Withdraw successfull!", savingsAccount.withdraw(60.0)); - Assertions.assertEquals("Withdraw successfull", currentAccount.withdraw(20)); - Assertions.assertEquals(120.0, savingsAccount.getBalance()); - Assertions.assertEquals(170.0, currentAccount.getBalance()); + Assertions.assertEquals("Withdraw successfull!", currentAccount.withdraw(20.0)); + Assertions.assertEquals(90.0, savingsAccount.getBalance()); + Assertions.assertEquals(130.0, currentAccount.getBalance()); } } From 16ef8a28005e466684f2da442eb3e4e7525b6cf3 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 21:19:23 +0100 Subject: [PATCH 13/20] Add testGenerateBankStatement - red --- .../com/booleanuk/core/BankAccountTest.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index 925e0f70a..fa32524f0 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -4,6 +4,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.io.PrintStream; import java.util.HashMap; public class BankAccountTest { @@ -13,14 +14,14 @@ public class BankAccountTest { @BeforeEach public void setUp() { HashMap savingsTransactions = new HashMap<>() {{ - put(12345, new Transaction(12345, "credit", 200.0, "2025-01-15", 200.0)); - put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15", 100.0)); - put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16", 150.0)); + put(12345, new Transaction(12345, "credit", 200.0, "2025-01-14T10:00:00", 200.0)); + put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15T08:00:00", 100.0)); + put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16T01:00:00", 150.0)); }}; HashMap currentTransactions = new HashMap<>() {{ - put(12345, new Transaction(12345, "credit", 200.0, "2025-01-15", 200.0)); - put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15", 100.0)); - put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16", 150.0)); + put(12345, new Transaction(12345, "credit", 200.0, "2025-01-14T10:00:00", 200.0)); + put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15T08:00:00", 100.0)); + put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16T01:00:00", 150.0)); }}; savingsAccount = new SavingsAccount(savingsTransactions, 87654321, 0.0); currentAccount = new CurrentAccount(currentTransactions, 54321678, 0.0); @@ -47,4 +48,15 @@ public void testWithdraw() { Assertions.assertEquals(90.0, savingsAccount.getBalance()); Assertions.assertEquals(130.0, currentAccount.getBalance()); } + + @Test + public void testGenerateBankStatement() { + String expectedOutput = "date || credit || debit || balance \n" + + "2025-01-16 01:00:00 || 50.00 || || 150.00 \n" + + "2025-01-15 08:00:00 || || 100.00 || 100.00 \n" + + "2025-01-14 10:00:00 || 200.00 || || 200.00 \n"; + Assertions.assertEquals(expectedOutput, savingsAccount.generateBankStatement()); + Assertions.assertEquals(expectedOutput, currentAccount.generateBankStatement()); + + } } From afe3e87f5bf094a202919612eca08161196a70f0 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Wed, 15 Jan 2025 23:10:45 +0100 Subject: [PATCH 14/20] Add method generateBankStatement to pass test + slight refactoring - green --- .../java/com/booleanuk/core/BankAccount.java | 20 ++++++++++++++++--- .../com/booleanuk/core/BankAccountTest.java | 8 ++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/booleanuk/core/BankAccount.java b/src/main/java/com/booleanuk/core/BankAccount.java index c461b3ffc..26aef0266 100644 --- a/src/main/java/com/booleanuk/core/BankAccount.java +++ b/src/main/java/com/booleanuk/core/BankAccount.java @@ -2,9 +2,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.Collection; -import java.util.HashMap; -import java.util.Objects; +import java.util.*; public abstract class BankAccount { private HashMap transactions; @@ -47,4 +45,20 @@ public String withdraw(double amount) { transactions.put(ID, new Transaction(ID, type, amount, date, balanceAfter)); return "Withdraw successfull!"; } + + public String generateBankStatement() { + StringBuilder bankStatement = new StringBuilder(); + List sortedTransactions = new ArrayList<>(transactions.values()); + sortedTransactions.sort(Comparator.comparing(Transaction::getDate).reversed()); + bankStatement.append("date || credit || debit || balance\n"); + for (Transaction transaction : sortedTransactions) { + String date = LocalDateTime.parse(transaction.getDate()).format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); + String credit = transaction.getType().equals("credit") ? String.valueOf(transaction.getAmount()) : ""; + String debit = transaction.getType().equals("debit") ? String.valueOf(transaction.getAmount()) : ""; + String balance = String.valueOf(transaction.getBalanceAfter()); + + bankStatement.append(date).append(" || ").append(credit).append(" || ").append(debit).append(" || ").append(balance).append("\n"); + } + return bankStatement.toString(); + } } diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index fa32524f0..39a34620f 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -51,10 +51,10 @@ public void testWithdraw() { @Test public void testGenerateBankStatement() { - String expectedOutput = "date || credit || debit || balance \n" + - "2025-01-16 01:00:00 || 50.00 || || 150.00 \n" + - "2025-01-15 08:00:00 || || 100.00 || 100.00 \n" + - "2025-01-14 10:00:00 || 200.00 || || 200.00 \n"; + String expectedOutput = "date || credit || debit || balance\n" + + "2025-01-16T01:00:00 || 50.0 || || 150.0\n" + + "2025-01-15T08:00:00 || || 100.0 || 100.0\n" + + "2025-01-14T10:00:00 || 200.0 || || 200.0\n"; Assertions.assertEquals(expectedOutput, savingsAccount.generateBankStatement()); Assertions.assertEquals(expectedOutput, currentAccount.generateBankStatement()); From b2c710ac18650811785a05667f2aea7d9677be57 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Thu, 16 Jan 2025 14:22:58 +0100 Subject: [PATCH 15/20] Add testCreateAccount - red --- .../java/com/booleanuk/core/BankTest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/test/java/com/booleanuk/core/BankTest.java diff --git a/src/test/java/com/booleanuk/core/BankTest.java b/src/test/java/com/booleanuk/core/BankTest.java new file mode 100644 index 000000000..967661826 --- /dev/null +++ b/src/test/java/com/booleanuk/core/BankTest.java @@ -0,0 +1,27 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.Map; + +public class BankTest { + private Map bankAccounts; + private Bank bank; + + @BeforeEach + public void setUp() { + Bank bank = new Bank(); + } + + @Test + public void testCreateAccount() { + String branch = "Gothenburg"; + String accountType = "currentAccount"; + int ID = 12345; + + Assertions.assertEquals("currentAccount created successfully!", bank.createAccount); + } +} From 92756924bb4d33aef47a82e2c3df1096a5cbc87c Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Thu, 16 Jan 2025 14:44:19 +0100 Subject: [PATCH 16/20] Add createAccount method to pass test - green --- src/main/java/com/booleanuk/core/Bank.java | 25 +++++++++++++++++++ .../java/com/booleanuk/core/BankTest.java | 6 ++--- 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/Bank.java diff --git a/src/main/java/com/booleanuk/core/Bank.java b/src/main/java/com/booleanuk/core/Bank.java new file mode 100644 index 000000000..987bb14a6 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Bank.java @@ -0,0 +1,25 @@ +package com.booleanuk.core; + +import java.util.HashMap; +import java.util.Objects; + +public class Bank { + private HashMap accounts; + + public Bank(HashMap accounts) { + this.accounts = accounts; + } + + public String createAccount(String branch, String type, int ID) { + if (Objects.equals(type, "currentAccount")) { + HashMap transactions = new HashMap<>(); + double initialBalance = 0.0; + CurrentAccount currentAccount = new CurrentAccount(transactions, ID, initialBalance); + } else if (Objects.equals(type, "savingsAccount")) { + HashMap transactions = new HashMap<>(); + double initialBalance = 0.0; + SavingsAccount savingsAccount = new SavingsAccount(transactions, ID, initialBalance); + } + return "Account created successfully!"; + } +} diff --git a/src/test/java/com/booleanuk/core/BankTest.java b/src/test/java/com/booleanuk/core/BankTest.java index 967661826..bab27eade 100644 --- a/src/test/java/com/booleanuk/core/BankTest.java +++ b/src/test/java/com/booleanuk/core/BankTest.java @@ -8,12 +8,12 @@ import java.util.Map; public class BankTest { - private Map bankAccounts; + private HashMap bankAccounts; private Bank bank; @BeforeEach public void setUp() { - Bank bank = new Bank(); + this.bank = new Bank(bankAccounts); } @Test @@ -22,6 +22,6 @@ public void testCreateAccount() { String accountType = "currentAccount"; int ID = 12345; - Assertions.assertEquals("currentAccount created successfully!", bank.createAccount); + Assertions.assertEquals("Account created successfully!", bank.createAccount(branch, accountType, ID)); } } From e2743baefd538e6321e2cd6827bbfda408e7fe0d Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Thu, 16 Jan 2025 15:05:08 +0100 Subject: [PATCH 17/20] Refactor to incorporate branches and add account to accounts map - green --- src/main/java/com/booleanuk/core/Bank.java | 6 ++++-- src/main/java/com/booleanuk/core/BankAccount.java | 4 +++- src/main/java/com/booleanuk/core/CurrentAccount.java | 4 ++-- src/main/java/com/booleanuk/core/SavingsAccount.java | 4 ++-- src/test/java/com/booleanuk/core/BankAccountTest.java | 5 ++--- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Bank.java b/src/main/java/com/booleanuk/core/Bank.java index 987bb14a6..91f46718c 100644 --- a/src/main/java/com/booleanuk/core/Bank.java +++ b/src/main/java/com/booleanuk/core/Bank.java @@ -14,11 +14,13 @@ public String createAccount(String branch, String type, int ID) { if (Objects.equals(type, "currentAccount")) { HashMap transactions = new HashMap<>(); double initialBalance = 0.0; - CurrentAccount currentAccount = new CurrentAccount(transactions, ID, initialBalance); + CurrentAccount currentAccount = new CurrentAccount(branch, transactions, ID, initialBalance); + accounts.put(branch, currentAccount); } else if (Objects.equals(type, "savingsAccount")) { HashMap transactions = new HashMap<>(); double initialBalance = 0.0; - SavingsAccount savingsAccount = new SavingsAccount(transactions, ID, initialBalance); + SavingsAccount savingsAccount = new SavingsAccount(branch, transactions, ID, initialBalance); + accounts.put(branch, savingsAccount); } return "Account created successfully!"; } diff --git a/src/main/java/com/booleanuk/core/BankAccount.java b/src/main/java/com/booleanuk/core/BankAccount.java index 26aef0266..8c393b3db 100644 --- a/src/main/java/com/booleanuk/core/BankAccount.java +++ b/src/main/java/com/booleanuk/core/BankAccount.java @@ -5,11 +5,13 @@ import java.util.*; public abstract class BankAccount { + private String branch; private HashMap transactions; private int accountNumber; private double balance; - public BankAccount(HashMap transactions, int accountNumber, double balance) { + public BankAccount(String branch, HashMap transactions, int accountNumber, double balance) { + this.branch = branch; this.transactions = transactions; this.accountNumber = accountNumber; this.balance = balance; diff --git a/src/main/java/com/booleanuk/core/CurrentAccount.java b/src/main/java/com/booleanuk/core/CurrentAccount.java index 167bde2bc..409644558 100644 --- a/src/main/java/com/booleanuk/core/CurrentAccount.java +++ b/src/main/java/com/booleanuk/core/CurrentAccount.java @@ -3,7 +3,7 @@ import java.util.HashMap; public class CurrentAccount extends BankAccount{ - public CurrentAccount(HashMap transactions, int accountNumber, double balance) { - super(transactions, accountNumber, balance); + public CurrentAccount(String branch, HashMap transactions, int accountNumber, double balance) { + super(branch, transactions, accountNumber, balance); } } diff --git a/src/main/java/com/booleanuk/core/SavingsAccount.java b/src/main/java/com/booleanuk/core/SavingsAccount.java index 34edbfa33..e7effe431 100644 --- a/src/main/java/com/booleanuk/core/SavingsAccount.java +++ b/src/main/java/com/booleanuk/core/SavingsAccount.java @@ -3,7 +3,7 @@ import java.util.HashMap; public class SavingsAccount extends BankAccount{ - public SavingsAccount(HashMap transactions, int accountNumber, double balance) { - super(transactions, accountNumber, balance); + public SavingsAccount(String branch, HashMap transactions, int accountNumber, double balance) { + super(branch, transactions, accountNumber, balance); } } diff --git a/src/test/java/com/booleanuk/core/BankAccountTest.java b/src/test/java/com/booleanuk/core/BankAccountTest.java index 39a34620f..c363d08fd 100644 --- a/src/test/java/com/booleanuk/core/BankAccountTest.java +++ b/src/test/java/com/booleanuk/core/BankAccountTest.java @@ -4,7 +4,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import java.io.PrintStream; import java.util.HashMap; public class BankAccountTest { @@ -23,8 +22,8 @@ public void setUp() { put(54321, new Transaction(54321, "debit", 100.0, "2025-01-15T08:00:00", 100.0)); put(32145, new Transaction(32145, "credit", 50.0, "2025-01-16T01:00:00", 150.0)); }}; - savingsAccount = new SavingsAccount(savingsTransactions, 87654321, 0.0); - currentAccount = new CurrentAccount(currentTransactions, 54321678, 0.0); + savingsAccount = new SavingsAccount("Gothenburg", savingsTransactions, 87654321, 0.0); + currentAccount = new CurrentAccount("Stockholm", currentTransactions, 54321678, 0.0); } @Test From dbd230d1596ed0f9d3984ee829c239027fae1dca Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Thu, 16 Jan 2025 15:09:15 +0100 Subject: [PATCH 18/20] Add assertions for invalid account type and distinguish between account types - red --- src/test/java/com/booleanuk/core/BankTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/BankTest.java b/src/test/java/com/booleanuk/core/BankTest.java index bab27eade..a90255d07 100644 --- a/src/test/java/com/booleanuk/core/BankTest.java +++ b/src/test/java/com/booleanuk/core/BankTest.java @@ -21,7 +21,9 @@ public void testCreateAccount() { String branch = "Gothenburg"; String accountType = "currentAccount"; int ID = 12345; + String invalidType = "otherAccount"; - Assertions.assertEquals("Account created successfully!", bank.createAccount(branch, accountType, ID)); + Assertions.assertEquals("currentAccount created successfully!", bank.createAccount(branch, accountType, ID)); + Assertions.assertEquals("Account could not be created, invalid account type", bank.createAccount(branch, invalidType, ID)); } } From bd2c2c637e42c0477bc03d276bdff78852f11fba Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Thu, 16 Jan 2025 15:18:06 +0100 Subject: [PATCH 19/20] Refactor to pass testCreateAccount - green --- src/main/java/com/booleanuk/core/Bank.java | 4 +++- src/test/java/com/booleanuk/core/BankTest.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Bank.java b/src/main/java/com/booleanuk/core/Bank.java index 91f46718c..2297bbf2e 100644 --- a/src/main/java/com/booleanuk/core/Bank.java +++ b/src/main/java/com/booleanuk/core/Bank.java @@ -16,12 +16,14 @@ public String createAccount(String branch, String type, int ID) { double initialBalance = 0.0; CurrentAccount currentAccount = new CurrentAccount(branch, transactions, ID, initialBalance); accounts.put(branch, currentAccount); + return "currentAccount created successfully!"; } else if (Objects.equals(type, "savingsAccount")) { HashMap transactions = new HashMap<>(); double initialBalance = 0.0; SavingsAccount savingsAccount = new SavingsAccount(branch, transactions, ID, initialBalance); accounts.put(branch, savingsAccount); + return "savingsAccount created successfully!"; } - return "Account created successfully!"; + return "Account could not be created, invalid account type"; } } diff --git a/src/test/java/com/booleanuk/core/BankTest.java b/src/test/java/com/booleanuk/core/BankTest.java index a90255d07..488babb82 100644 --- a/src/test/java/com/booleanuk/core/BankTest.java +++ b/src/test/java/com/booleanuk/core/BankTest.java @@ -5,7 +5,6 @@ import org.junit.jupiter.api.Test; import java.util.HashMap; -import java.util.Map; public class BankTest { private HashMap bankAccounts; @@ -13,6 +12,7 @@ public class BankTest { @BeforeEach public void setUp() { + this.bankAccounts = new HashMap<>(); this.bank = new Bank(bankAccounts); } From ee104fd359e6deffda1091ca74996553709b3715 Mon Sep 17 00:00:00 2001 From: Frida Anselin Date: Thu, 16 Jan 2025 15:23:31 +0100 Subject: [PATCH 20/20] Update class diagram to reflect code --- updated-class-diagram.png | Bin 0 -> 30419 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 updated-class-diagram.png diff --git a/updated-class-diagram.png b/updated-class-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8d60812004ce73ecd4a4f8292531911d3a41da37 GIT binary patch literal 30419 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