From ea35d897df200fac124b4dedc1a3e70774d80480 Mon Sep 17 00:00:00 2001 From: emilfa Date: Thu, 12 Mar 2026 14:09:18 +0100 Subject: [PATCH 1/7] feat: created files associated with BrowsePage --- .../app/control/BrowseCardController.java | 9 +++ .../app/control/BrowsePageController.java | 4 ++ .../app/view/browsepage/BrowseCard.java | 63 +++++++++++++++++++ .../app/view/browsepage/BrowsePageView.java | 4 ++ src/main/resources/browsepage/browse_org.css | 0 src/main/resources/browsepage/browsepage.css | 0 6 files changed, 80 insertions(+) create mode 100644 src/main/java/edu/group5/app/control/BrowseCardController.java create mode 100644 src/main/java/edu/group5/app/control/BrowsePageController.java create mode 100644 src/main/java/edu/group5/app/view/browsepage/BrowseCard.java create mode 100644 src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java create mode 100644 src/main/resources/browsepage/browse_org.css create mode 100644 src/main/resources/browsepage/browsepage.css diff --git a/src/main/java/edu/group5/app/control/BrowseCardController.java b/src/main/java/edu/group5/app/control/BrowseCardController.java new file mode 100644 index 0000000..e63be92 --- /dev/null +++ b/src/main/java/edu/group5/app/control/BrowseCardController.java @@ -0,0 +1,9 @@ +package edu.group5.app.control; + +public class BrowseOrgController { + private final MainController controller; + + public BrowseOrgController(MainController mainController) { + this.controller = mainController; + } +} diff --git a/src/main/java/edu/group5/app/control/BrowsePageController.java b/src/main/java/edu/group5/app/control/BrowsePageController.java new file mode 100644 index 0000000..9e2802e --- /dev/null +++ b/src/main/java/edu/group5/app/control/BrowsePageController.java @@ -0,0 +1,4 @@ +package edu.group5.app.control; + +public class BrowsePageController { +} diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java new file mode 100644 index 0000000..da74075 --- /dev/null +++ b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java @@ -0,0 +1,63 @@ +package edu.group5.app.view.browsepage; + +import edu.group5.app.control.BrowseOrgController; +import javafx.geometry.Pos; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.scene.text.Text; + +public class BrowseOrg extends VBox { + private final BrowseOrgController controller; + + public BrowseOrg(BrowseOrgController browseOrgController, String img, String name) { + this.controller = browseOrgController; + setId("mainContainer"); + getStylesheets().add(getClass().getResource("/browsepage/browse_org.css").toExternalForm()); + + getChildren().addAll( + imageContainer(img), + orgName(name), + checkMarkContainer() + ); + + setPrefWidth(100); + setAlignment(Pos.CENTER); + } + + private StackPane imageContainer(String img) { + StackPane imageContainer = new StackPane(); + imageContainer.setId("imageContainer"); + ImageView logo = new ImageView( + new Image(getClass().getResource(img).toExternalForm()) + ); + logo.setId("logo"); + logo.setSmooth(true); + logo.setPreserveRatio(true); + logo.setFitWidth(100); + imageContainer.getChildren().add(logo); + return imageContainer; + } + + private Text orgName(String text) { + Text orgName = new Text(text); + orgName.setId("orgName"); + return orgName; + } + + private StackPane checkMarkContainer() { + StackPane checkMarkContainer = new StackPane(); + checkMarkContainer.setId("checkMarkContainer"); + ImageView verifiedCheck = new ImageView( + new Image(getClass().getResource("/verified_check.png").toExternalForm()) + ); + verifiedCheck.setPreserveRatio(true); + verifiedCheck.setSmooth(true); + + + checkMarkContainer.setAlignment(Pos.CENTER_LEFT); + checkMarkContainer.getChildren().add(verifiedCheck); + return checkMarkContainer; + } +} diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java new file mode 100644 index 0000000..5192429 --- /dev/null +++ b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java @@ -0,0 +1,4 @@ +package edu.group5.app.view.browsepage; + +public class BrowsePageView { +} diff --git a/src/main/resources/browsepage/browse_org.css b/src/main/resources/browsepage/browse_org.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/browsepage/browsepage.css b/src/main/resources/browsepage/browsepage.css new file mode 100644 index 0000000..e69de29 From 05bb334397d0259ac09674977c7cfcbb8381a5b8 Mon Sep 17 00:00:00 2001 From: emilfa Date: Thu, 12 Mar 2026 14:11:38 +0100 Subject: [PATCH 2/7] refactor: altered Controller structure for better coupling --- src/main/java/edu/group5/app/App.java | 7 ++---- .../app/control/BrowseCardController.java | 4 ++-- .../app/control/BrowsePageController.java | 5 +++++ .../group5/app/control/HeaderController.java | 1 + .../group5/app/control/MainController.java | 22 ++++++++++++++----- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/main/java/edu/group5/app/App.java b/src/main/java/edu/group5/app/App.java index 3bd4f43..5c8c942 100644 --- a/src/main/java/edu/group5/app/App.java +++ b/src/main/java/edu/group5/app/App.java @@ -4,7 +4,6 @@ import edu.group5.app.control.MainController; import edu.group5.app.control.OrgAPIWrapper; -import edu.group5.app.view.MainView; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.image.Image; @@ -18,12 +17,10 @@ public class App extends Application { @Override public void start(Stage stage) { - // AppModel model = new AppModel(); MainController controller = new MainController(); - MainView view = new MainView(controller); - controller.setMainView(view); - Scene scene = view.createView(); + Scene scene = controller.getMainView().getScene(); + controller.showBrowsePage(); stage.getIcons().add(new Image(getClass().getResource("/header/images/hmh-logo.png").toExternalForm())); stage.setTitle("Help-Me-Help"); diff --git a/src/main/java/edu/group5/app/control/BrowseCardController.java b/src/main/java/edu/group5/app/control/BrowseCardController.java index e63be92..cc761b5 100644 --- a/src/main/java/edu/group5/app/control/BrowseCardController.java +++ b/src/main/java/edu/group5/app/control/BrowseCardController.java @@ -1,9 +1,9 @@ package edu.group5.app.control; -public class BrowseOrgController { +public class BrowseCardController { private final MainController controller; - public BrowseOrgController(MainController mainController) { + public BrowseCardController(MainController mainController) { this.controller = mainController; } } diff --git a/src/main/java/edu/group5/app/control/BrowsePageController.java b/src/main/java/edu/group5/app/control/BrowsePageController.java index 9e2802e..0922e68 100644 --- a/src/main/java/edu/group5/app/control/BrowsePageController.java +++ b/src/main/java/edu/group5/app/control/BrowsePageController.java @@ -1,4 +1,9 @@ package edu.group5.app.control; public class BrowsePageController { + private final MainController controller; + + public BrowsePageController(MainController mainController) { + this.controller = mainController; + } } diff --git a/src/main/java/edu/group5/app/control/HeaderController.java b/src/main/java/edu/group5/app/control/HeaderController.java index a02e945..bef4854 100644 --- a/src/main/java/edu/group5/app/control/HeaderController.java +++ b/src/main/java/edu/group5/app/control/HeaderController.java @@ -14,6 +14,7 @@ public void handleHomeBtn() { public void handleCausesBtn() { System.out.println("Causes button pressed"); + controller.showBrowsePage(); } public void handleAboutBtn() { diff --git a/src/main/java/edu/group5/app/control/MainController.java b/src/main/java/edu/group5/app/control/MainController.java index db47e45..cd3309a 100644 --- a/src/main/java/edu/group5/app/control/MainController.java +++ b/src/main/java/edu/group5/app/control/MainController.java @@ -3,14 +3,26 @@ import edu.group5.app.view.MainView; public class MainController { - private MainView view; + private final MainView view; + private final HeaderController headerController; + private final HomePageController homePageController; + private final BrowsePageController browsePageController; + private final BrowseCardController browseCardController; - public void setMainView(MainView view) { - this.view = view; + public MainController() { + this.view = new MainView(); + this.headerController = new HeaderController(this); + this.homePageController = new HomePageController(this); + this.browsePageController = new BrowsePageController(this); + this.browseCardController = new BrowseCardController(this); + } + + public MainView getMainView() { + return view; } public void showHomePage() { - view.showHomePage(); + view.showHomePage(homePageController, headerController); } public void showLoginPage() { @@ -18,7 +30,7 @@ public void showLoginPage() { } public void showBrowsePage() { - view.showBrowsePage(); + view.showBrowsePage(browsePageController, browseCardController, headerController); } public void showAboutUsPage() {} From 8ee932dcc3f9dea1283b352e99b1b5c9e8e0ef06 Mon Sep 17 00:00:00 2001 From: emilfa Date: Thu, 12 Mar 2026 14:12:47 +0100 Subject: [PATCH 3/7] feat: added showBrowsePage functionality to MainView and altered it to work with the new Controller structure --- .../java/edu/group5/app/view/MainView.java | 23 +++++++++--------- src/main/resources/browsepage/browse_org.css | 18 ++++++++++++++ src/main/resources/browsepage/browsepage.css | 3 +++ .../images/children_of_shambala.png | Bin 0 -> 35356 bytes .../browsepage/images/kfum_kfum_global.png | Bin 0 -> 52806 bytes src/main/resources/verified_check.png | Bin 0 -> 1311 bytes 6 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 src/main/resources/browsepage/images/children_of_shambala.png create mode 100644 src/main/resources/browsepage/images/kfum_kfum_global.png create mode 100644 src/main/resources/verified_check.png diff --git a/src/main/java/edu/group5/app/view/MainView.java b/src/main/java/edu/group5/app/view/MainView.java index 78fac82..c2d7325 100644 --- a/src/main/java/edu/group5/app/view/MainView.java +++ b/src/main/java/edu/group5/app/view/MainView.java @@ -1,29 +1,28 @@ package edu.group5.app.view; +import edu.group5.app.control.BrowseCardController; +import edu.group5.app.control.BrowsePageController; import edu.group5.app.control.HeaderController; import edu.group5.app.control.HomePageController; -import edu.group5.app.control.MainController; +import edu.group5.app.view.browsepage.BrowsePageView; import edu.group5.app.view.homepage.HomePageView; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; public class MainView { - private final HeaderController headerController; - private final HomePageController homePageController; + private final Scene scene; private final BorderPane root; - public MainView(MainController mainController) { - this.headerController = new HeaderController(mainController); - this.homePageController = new HomePageController(mainController); + public MainView() { this.root = new BorderPane(); + this.scene = new Scene(root, 1280, 720); } - public Scene createView() { - root.setCenter(new HomePageView(homePageController, headerController)); - return new Scene(root, 1280, 720); + public Scene getScene() { + return this.scene; } - public void showHomePage() { + public void showHomePage(HomePageController homePageController, HeaderController headerController) { root.setCenter(new HomePageView(homePageController, headerController)); } @@ -31,7 +30,9 @@ public void showLoginPage() { } - public void showBrowsePage() {} + public void showBrowsePage(BrowsePageController browsePageController, BrowseCardController browseCardController, HeaderController headerController) { + root.setCenter(new BrowsePageView(getScene(), browsePageController, browseCardController, headerController)); + } public void showAboutUsPage() {} } diff --git a/src/main/resources/browsepage/browse_org.css b/src/main/resources/browsepage/browse_org.css index e69de29..c947cbd 100644 --- a/src/main/resources/browsepage/browse_org.css +++ b/src/main/resources/browsepage/browse_org.css @@ -0,0 +1,18 @@ +#mainContainer { + -fx-border-color: black; + -fx-border-width: 1px; + -fx-border-radius: 1em; + -fx-padding: 5px; + -fx-pref-width: 10px; +} + +#imageContainer {} + +#logo {} + +#orgName { + -fx-font-size: large; + -fx-font-weight: bold; +} + +#checkMarkContainer {} \ No newline at end of file diff --git a/src/main/resources/browsepage/browsepage.css b/src/main/resources/browsepage/browsepage.css index e69de29..c2dfef0 100644 --- a/src/main/resources/browsepage/browsepage.css +++ b/src/main/resources/browsepage/browsepage.css @@ -0,0 +1,3 @@ +#body { + -fx-padding: 20px; +} \ No newline at end of file diff --git a/src/main/resources/browsepage/images/children_of_shambala.png b/src/main/resources/browsepage/images/children_of_shambala.png new file mode 100644 index 0000000000000000000000000000000000000000..3b1a7f7b37598d87b2a69df752e4ae3604f9c46a GIT binary patch literal 35356 zcmd42g~P&@kb*Q~FGyT-%*&WA>TJ?lZp~2iB*&Pb9Vs+LBRUJ~Aky zJhy{Ck~~J@VRW1>`X2iKzPSCJ#hWeUI?&KD_~Y}Qb@Wl}MLgUb|a{0DG=aZD**zkXdGO0R?g94T)?ZU3D|6#fPm z2M5QnouKgF$%_9!J~@P!CdT~?ZemDZ>kWoyXzV$zB}0r%8~8Le70n%5PU0~!9fIkV zLU=J^7-INq;U;jjg-&8J_vBF;+*wo#*7hmB9rrmn@QMu4=2mIVF|%sUcjtda2CqN= zNaFM|0U>4z58zWNG2=lAd{f(bIe^M-hEbH*7gV+W^af*MiUTwGx9tG?`Nbspw2nWL{v z-ot5Q=c16l*@2e^k#7sLZGJN3KG+C;t`!Qa!<}>=Rup)n2AIg!2R`j7m@=#)i8eCv zHmoVB6LCEpAKJ5oyo_Lm&Mz^;Zu1Wz@SJVL`4~fAX0yr*ZNJlh zDD{q;W%&uokj?w|np%_@)zFW?L++C z5Xp{$gyg| zf`sLWKS>*A?vMox6oPB@v0jPwN>uZhERf5Vn>)GwIWuexml3p*PEX{yBnYLfQhPCV zkP@{T32TlaogCJ9?bq=Ruoj~r2cig=rCTFOg#-(0$Oi0`Gat04gOT(Jk(0ye{n7(^ zRrM4N9Z2+n;B3Bps%OMrDYR8g`$`n{#1#O1t38J=N8m83u^Ez{oB zlzlp{6xr+?+Bts@Sd)a*3T<}Tj@R|>0P5YDII9Rrsa>FvdfG&a4%ET13b-t?o&RRS zgW_RYgvj;A-bbPjLm~+nK1x_fr$8&j=@k&UGASr1v@Er2eSv`mTw_FDjoa_2{ZvW& ze(8$DQ!k%nH&$ap5~AU!eWra`wOa59&iGK~Ldf90Q*U3+DKh?0f}VcK-|#`~+$648 zRzHBQaj4x;*(Yd?bA~hFZ7Ya*c$brY$=5J0@V1N@e7e#~0}t>kLE+p(c)H7zf#;k2 zt)F6&hu|i%>|6ZM=i?ay5*IUqzCFnP4s!1m?aMkz)08XN-o$Ao|L3$;k{?4cq9&Bw$27O2}JF6Nr{yALD)Y_b<9ki5Pcxil~WKTm0Qtu-W1QB9ALNq5F{RY**b7*Q_Z6 z>A=gR(0f#+&#%e%U%kFNJ~8z4m#dvvM?x&UN-UHYSdIb%4f5i3A8x}fl=Yb{P2?fe zL>~y4FhVN+<%yp`uVH&3X<_i{w@O-bi4wcq>TT4ltRb7|7y=QHY-9|9uf=k>3_^H| zF|yw0Q|9I9IMMZLkwH8X?|w5!Eif{8M60N5mwoag7&H6ixWgF;OI||GQaP_S z?VNFO0z9Q?v0ERB6Hei2RBK|7AXxSh z+5VYxig^Jy2oeWjs-*lL+7FM`2N#(V-r}UhABv4$XW~5(3vlFa8UD0{laSif4LSbN zfDpOiMMn*c*|!htIfGPqmWC!`p_-24EGQjGAuM60|&*IR-0zor;bR~aH@ZxJyQXuXw zu_rvUILCeVJjavhHPNEBpY9Rw4sZK-DO{3n=Q;W^zIT|X46!5A2cNJmlCzQL>uh5Z z`Cb@M#6F#wD%|`&b8h#+3P{sZk_0Tq#=g6sb;ex^ZGQ zcR`biT^SgjS<(tY7(;rO1n)zPiQETR!~|$|J!BGbNrK~U7qCXII5KSCtUhl69bYd4 zaoUVk_o!e3wT8ZE6=+f$=S<*HA9uD`=bkMud>L}^FTA#nPP3fJt?%4Qnt}d^-Y0m1 z0=vlI8G3)Pakx1Wt3yT+!fvgyhWu;x3@+1PqnH!l(pB(smFJ|&G$FabTCDZw8{I6J z6mjFwBDv2pugmdR0L9s)&E{Xh}SEF9q0 z;z8r#e~v82jLU!EJC{BRls9WHWm2b=5uv>4S^t;z5q&+h?yN&ptf zxYiVhE-|T-VB6yBeW&KlqsQy5Vtn4*)3Ca(KOeigDay(`d{|(G)x43E$QV=2RjE7B zPsm5BthB?+>vn=3VB{U(CkZBUC;zh8q*#zr@RqBUAKUU&b1}Wr@Gh25<^vE6isM4>FUeJL zb`WBX%kM%sMF=>zD>=tghb|+SY|jbS*Kit{fXM2HyFwb*3B4YO=8q6QXvKz~ZmXZg z6T>t}a|#xBznb7&&SH8+!7Wefzr;~VRHj&s*z}uHVoWYPnq#kh!{`(+!$>b&S-{y* z?R5W_HL^J%byk2?e_lEpT zZ|?Ekk~6ulp@Hsc!o2C&?NAB_YC&HvKY89jmg(Fr$#z*V69>zE?sxEMkJriEk@4^@ zIG5}U*}D{zgeodj+-_yDWhvD}i#aWGMYhk z?Yc75%d8~HF91I23V%|i!*qURaa#OhG23E>#Mk>6v02kh;hdTExcv*yq9OgV4vrmd z?Y#JVJ()p|?(P z+EWu;A%F98PPL$Q@Ad=AhxAem*q$j~z~;qP`Dl{fvy{AbM@c&T3V0KGg{xrs+Bvcm zyfT~1CWmk>58BcTOP?fm?XkfYYKl-Od2e2?_9ciqVg6|E;;nrz-1=kl-!X1R{{4g( z^27Fa-+#I`eTl1Eki?Ck+8rn@@EZ7U$e{=;a+c5e=_F;wMjD<>>XIfOgC$aN19e7p z)|7y_?BruL^!%0h(%2aMjJ<8*5*GZ;KDs(lz2|D)VhW_j^ff`9gZsd_U2$nI$Pq(!c)Jl7wV_FN~mXfDY98w>B)5BYfZ*91SQ`I(58)&b6k%J^4dv2pHv zraVB-?rA+q1qxRAXLU_r--?RmNp~i@%LOLGM zus3}BE}-b4Db7rrZbrOMZocirN4#-6%rr=ZZyHcajFlMV1Ef`=i|@|x`umSo)as>) zcBi3~;PX@_%bWa3Z0mn9c;hV&-;;b3ylj0QFBdC^$t1DhGFz-dHn#PV*%{&kr_5LF zC^>n#TA!-8yAcU}BaMid!p(lGu#3!7jgm%dq+AT7t48EaQo<+z;+NqcezMrHv*)P|9(($|ZBZDhtxR1t8`R4so$5w=lb8vE z(z$bz8+L84Sir_)w4^Y6Iz)7`IR&~O^+W{|RN@Vy-(t}K3-tKMPxSyn?Ue&cZs$N> z#hYOB0n~-kaHa#1^VvJ0qkIn)LL4(bVy1mJ5%ildVgKsrnx_UuUVSYwg*?tRtGxl% zA+R)l^03+2x3?uf5yEB(6R33&?u9>m{}$^}Xo-c2E~lwPpfP*ixbEkgo~ZbzP`_&o zRU-%+>fx^&p_OWFR$)uE=1V^}%=is2Jji@e%o}oL?^Cxtjync;$gC|W0!_CPPME#I zJX!c~mG(p?b%E-s44IQyNg9&{QmvBk-FGF*I!SQTctMnbjB8)ubtXbS!=-QAg51LC z!>35tai?Us-(eNt>uIZ(Gh%KXkiEOsbD^R|7Rx_*judEq0Y%RozLG2Q|6MxCUXijv zjlqdx8!CpvlGQ`5ab6qps?N6jl{Jvp7vNLeUtO@Sset_b$mCPeJ{inSx`}I zs3AdLfHwg46iMH)Wmr$-lg#80TZlCK)M}ZuaWzGTB(J<8e*`=}DQ=8Dwb*Xf*({rY z!=*GDOEI|-@d8=4azI;Y*&BRdKdv6)le&367MmC|$zRbM#Lz*?oCq=p(sbiG>3)Gm zR_5+)s?LNZnRf}PkxFgeIJ>C<29$R>p%2~+?i?=>6qUo6H9w^028*bqz9O@Jgk$QV zp=Mjm!({ZYTl{L$N*6|ZXpbqPigxE?Z1k-QT zG`8L`HPraHOxr-(u8bXvYCw-PjV)4D=}gmf2lcs7QpN!1!S16)bDdHNv1=0DxB^#l z>fBP&DNuIBus-vgHO2atktg1!Suil&7K=oQ)AC(ha_QFTFgSTZZ^Cl^8?zjzn-aGC zr2r2AEsk4`KL4OgxRrH2>r(rZ=4LoQ+i>4WqGU3{Wy7yf&euO^dVIy92efm+?dfHj z@TL1I`%}=CfytzCLr=YooPo(RKgn^J0l%d+SnaBspYB&w*9=%Y;F%o>&bhrkFE@ou5}YB}D;~ zkdDE6xRLl*@G`&mjgY*YO&;HGZ;9~p)3gRHbGo^Oa7D?+@79}CklICkLXDX%L@Q$2 zwWMTCA7r`1JZr-0zQ%xtI$OKE*?RrDeJ@;1I<;je@&0nw#r?wssg6xsX7N%SBL2ZY z?@ao^RD-cH`r7WywZCyxE1|s=2Yz*FwAD3Y_xdw44*Kjr6nM!6{k{Eoy+_#hF z+Awf-#9XF(W>pZATylbW2xzHV2cmv~pwy=c$v@Z)Jtc40$untyhqe0ULClN*RZZOx z`Hl!`t$x8NS@|o1h1Lrey@7&9;t$0u%3V~AuQQWlPI$1^3O-!&walUYpgYPO&#qi06aIiRG8zyCG7b zSVLNT)+=}@jM2|SuCxCBEc4t&EZ}!ywsoI#y!goWwl`T|fCif?6WS_X#4{q)cubYr zFxk87%gI0c%;hT5JxT(PKz30XcjT|4(BeKb!aH{JRJFTO^XHbtjK|>ri z&y)U^8c*zqO>ERiTB)ob$wIwOvp(AKQ3heQ#~GIGzuhYqO=BQ;syLl~Ik&Q>j%+Go zCfOO=1YMs`O?oE@TeMol8kCz#f#>4v1<6J#d4!Eh%y{_@kb&&&8a09NZJh*o&GHwE zz^{5^CMH~ccUJb%#_gFZfZO&=d~oDuMaf&~A!prJY5fdV9*$xigB?4HaAtw@+(gc% z3PQ`izM3Qa2h2_AOxSdAzj9lP=|DmfK7O?v>-u_HiUrmxDQkMBNQ%$p9Jk&>gnG9S z0QI%aC3@3|hK~!;7-Z?N{#ugceCXpv{Otv?io7lti+D6N?NaD~=-rL5zf>+goaq6& z>$R>C*aWR{@|f5%XGP1qNpYr^?6{WvL+o+s?kz1id0GXhjEyrPfGzdCZW%jiZBFID5q|Y=MDZUO zDk#~Y{)LJ_uUfKYX(DIC-23@I_5!adC|afWcfZ`ec5xl+czE+>`{YgS6MR#}X)Ljl zZ)8u7c|{x6xgi^C?z2(JnVuBiy5{-o(wZ}ujs#-;Z)o*(pJvc@hKjw}o=KzWL8gq{ zP);*dE$7KwH#Zo9W%tVV&vB&kAu@W%2^3i|pDOoB64?gier(~om90ZVD^HHd(wvVq zF$*8a0MFvJ9a?7lb*CF#>(H9N)r>ijqqh3epJ@ajQt=835at+nTo`O(8pUW1dl1^m z#J(CfuYkrr&J8o3*D*VwDDUj#*I?wioz0a(kA_kfv^5y6lCcU%kK`2_m}q5`o_uQ! z?D?}%?LeD)%3r3pu0dQ{aa8sx8IOyEToPUwTg@4Ns z@Oh?p30k2=CFV>kjmsr=<`?D!Ul(VJhq#ercj^cs=a|lgw<=)1IP+qDR&Q#r<-pq- z3l(E-xr|u52ssE}Y7|Vc29cd!u`l=`lrS!;B-Y{A)r@vN+SqdKtOHclquF=&A!C-7 zb#^q3j_(Dw9`(DJm|0T<2Pa5%e7yO8{`fJ>@av8u)XOg_d|k84I$mV!R+l+XeR8q{ zMa8Q7&BW|5=Zk<4PxL%2k|O2mB2xcjuo~5r#T;Kej_tD`>NnQs))Xbgy{4$8kRi@ed9pEU1!x22;=d5^s7I>*2mYj~WQ(F^H}A7G zKl4{~Wti68k+gNOVyD6!!SC${H?Law3zH0es3a@E6EAZ{4`Lg>)p_VknScMGk_j~N zk@cqaYXLPa%CSr#bsYp&o|5MInsP;ogG-BJM5bPbA)KDSM{UYV64FsreVJdifzo3= zfoB1dt~{eq9&qSk_^U`Lb>1M}E83ZcT)1TdL&d~{CyImnF6{{xQLX4svbr5(Av{rP z^IuwfWD&~CaGOpBUhneGj!(SyI9;q`WMdrXn-V#1#m@GUd5iKcVI&soS|m zfjsY3B3n>;wHtfkVW9mjAHdb$aad7q9|4Dvn{pQ{Km+s-7`7NAkwnRD|W8A+bVJ^634W8?{AR*3wl z8WW_zLZ^7m@2eafb8ym(DEn3GMBsa&bbEVY=$;$Sz<;O?R|ktLf(P=mrWA0)p%Pg2 zeK^VJuZgkoEvcenNdHHC{$k^3=htp8fV$85>xXKl%EV%c){>yzEMxYnT=i&TozPB2 z0Op^#q4pu97ghD8XW(A_3{qN}g3PjprP-dSUt6LI4Lz93{&>I0S@ZjgmR-6|w@@~m zBa!zACpT!K|94@{Y^C3g(G%#2SB+VjS5mROL}1Gv7G0cNuaZau(yo^HaWqaT9$0A6 zS^~WtZSi#bp>Jh5bNDcG=TBxl6Td8W_=BxPIVLI4medOASzFEV34}!-%}0L^hfEA{ z+n2+4{IZ=F(T-R$sYX=m&-1`n+uL@5`IwA$&dRWCVLf5SL-NSvR$dN6a4D_ZyH9Ew z31%g9qXMZeF6l3>*Z79`z8m$Osf1*vrqOdbQ0lO^tY@FIf4M1aP z|LWO*Jre0s{lEMn2=mB}4-HiMT?2VLE!#MGmjpQT@S z!i*<$BGcgRdc@lHy719tb9nP=J!Xcr>I_|E%i{QmWG2jxn%>!LuK7|g@@n@rxN`Ur zoWnLfZFLH=2uwYR27n}v2Kp$!{oMbF#J!H(jRTleEk11iX-+YI3LO?HxDSW@nDBmf z>i55{=mGYF57<~E&Z9*N{K@KCQ|H_J0(fTrpMynjY36l@=M+`AiYJHoK(JSRH5TRzka ze;$ZJO^$lVfCfrB-^U1lNoKbCIPvp@Z-n~fr9+ZAfbY7?jC7`s9$*4XPpVALC&Vj` z{9B5tco3Y$wyzlqg7p816CFBfXvt}CxDX#bkUUyMLw_H8-Q@q1(}C-g)PLX#6M$i zJr%?h?#&-?rrg=7iKwglQIOijNmlo;?DXO zf06A#_O4*xT%DM_O|*|9Ehu(bW{#+_l-r5-Ci0!K>C0|Z$Da6N4rI^L_UERr{9SbI z!3=r=zMu4LBz*MQvlFRC2uKbe$Yk4c%D$iF!EW=5 zSI|FkQK`h>zihXja844iixlTBd0i_)@gbem=E<5+|D@P`2(07I-;4>RDfH!-OQ)24`{~G z9j{7W#8E6PQe%||h(prTAG_&EV7sG<*iG;A+7MJz9wo&EMOOfX6EH+@5gG~oIE?iC z{Cl?;OVM^Ixly^8n+4hb%K{)WG#nD`e9yHGDk9&Q-wSKAw~t%B_1w^oe7KPX>kE5O z{4dC;1Hc^mR6a<=5a+@LFnYr02N zei804O?j!FNoB4CC@o zdK79)*wN5(>RP<*Wrjva%Ia3{qBMIfVRx*ZPAij4d*PQ#W>3eL4AF?Ml-R1+CuH0Z zfZv>xYcB(skohYSL(iDd8tK3>ows>=td#$#1x@0M;;yhcCQE@ogMHlN$wXJto=}$u zy;&0~qA53(Vah-LwRD4|%ArE`8J!Y*>XiB9?R#GT?CC3fJ>4NSC%~cO^N;YWL~BE+ zD~IH#aW)G==lwTOFN^AAtAWgV?H9=h2?z&zyS99_stxoeN$HwRO!}a7d7vJ78r%AF z^O~m={Ge}(dX+EJW)aR8s_|;bHyE2<_IkBBV%)4D;)s%B4enTj45Q+^(T)nLy{NC` zUR&FO;?z7t?Q;E2kP$-*a_`&m6r8ozYqz zR}6sUJ-mT|K{}z^R2;BUwh_y_$;SzQr<)M}`p(aHx&X>LzL$F|*OZ~K*lvX2HIKH4 zH7U-Px(8p;?@f)X)f&6HN z=@O36Kxh9i$UJH1U`zSz94k2JK%dSvMHR7a=oS>N)j!B)m}~cLe94CK=MV2ys^3dg z(M?^>nVZLN1%EfR)NGjh+sb9^g+Jow2N*@IBZI7tp}!uq!@gAq3*zZ*hpVrLPwL5E znTp@m&4%qp^@A+`8uAxdw6)E2ntD9>UqCG$Jho)WWh!A0L%VV{atYKt>OqFo zny718lr)J8<1$P_XDDEy7qrkx?|CkvbgV?&Djpu?odGuReFBu|q1S@-iXpF~`a4c* zIPkH>jpk}a1<52+mMJuAv$gDSwJaK)~S zNP`Y?zw;NRQbdN{t_{zjgO)1H@S55`{^i=rH@?^sSxid0r!6VU7IppfesBA;koj#{jRTjo%h8;(mu`;q}pdkD7B!k0$OF59yQ$fQB~-_FpKJDzk5I zZ_hRm#_>E8Y!4Ls;Tg5CO#z9P*eZ}c=u135CN~L5QbEa?@deJRYP`bsgzcTQhT|MP z)C26w;)fWA_t6&UsVR+bLHg^?Igdl^8EC~f?}p$yx@_wTt5jnC^K)Lfv;Qg^D$Nxs zxekq}Mtu{#f_)Rl3frarO$Qq7cenUHc3eW|5Vp?Jr;sw6H>erEL8h~$pH*}DitEq( z`KS^0A))PD7Z!@FL70?HGg2W#Oi^w_NE3*^cP+`GAietAxTFcwlY)x+ybgnef4JlE z7pm8Igs+6i!Ds78{ov2BQJS+t<#3{(ixL6)ku3k@G!K8C_T9hxMp7|T396h7nT5#@ z|H{_DUb2OS;k0eY?Ux&$Yb9B$#dB-~6^VWjP1C zg(sY4QmJwOjnD2|W}5~8$1I{skZ29idKkXg&)J{91K-DuY7(-p`Nr8#(l^&nYxS}A zoNEUN%8%ntCN62Wzn>a4kf!fE@v$9RuIe=$Rs;g7@s2v^b^(YmVp>Q?HmWG#}BNl19QarF%equ$bHu^DnhLY(e2`u z51qjg+Kn7;J78)b%x=}Q<9$)E;uYK}aayNs$h|-|X{PepjS7es&T1cX_atio(i2xX zF<(`nJ8W;ZsFm>iFwKq2Be|I-01i`+z8O^aZr(}{>gvR z!#lY&n}EW~pulX*q{wDL3b|FrH=yEn2#V|7$lq;GP&0 zs12Ce;RR@;ZVL6`O#IGh``(5Vr1WIc3l|3 zxhZe}*fR~7M)=?fG__OMY!y{4W*b?&MNQM{UQskp9Tr{+X#bc>exga0Ia>#v`pX9N^b!x5dc55AP@Mq>U)XOV}))8k*p6norJg}B|r ziEKF20;EyqnX6eqr@8PL5IP3%NdY{9QOiguX@W3B;_x4Dx@fn_Ai5sJoGHH0Mv0C^ zluUEzcrS9C*ATu8VIF+f5w3ZRJJ#JRmUV~H#(1HtNBvw|CWORM5QMGTT2w2LF|sRq zz#1F>Ejy_=!{oOT(+W4bM3sFVWi1}RgQD6*lDp9XYf1cTi{1N2g#K)dICqU<`4IOc zOafq9bxY;EU>F&*VgBHi^xS`fmpbFW1?|G4Ozq8I`s87T=nSvk!Vz<3+?2}G7v!a7`E^Mo2GdiltKXiKRC=(O;(4m3+NoTs)0Vs8LErJ7 z8fu9+1$8Q()UgiZT z&$r-U0VNc{dTrE~ElIokSc-h4Mj_5=#Au@ zDaA;x^HygHj-jKFXa9weuj+hfQexlCwC`m1+jiaA`l9dCx5-@FYT5r$D7(G)F&6J> zgsSZvCQ2{;yQQ*zkCE=cZp#ac@mKlzRKJ+9Uy#h=&{<(o%Bm7LR~ zYnqDGqN*h;)uNoNn102!m8W_|{$Hgw+X28)YW#XQ>${A>cLaqVDYB5}bcK^1CSJ6| zsZbm9a5I$_U5ML(wZSZ_pyj)l;a9Xx!H0JezC5eOVKdr*{ay`_ zta|O08&`0q2Dw4yHShCAw1NxLTLlVs|I=b5`kF)G#sye7FTu1@!}l$T=Dg65HJO9| z)<=>+!xyRo_wv1-v{QywQKvBfIjk^wqfp7w=$p%n9JN}?$T(@LBYdT#L2P@}hgEu2 z6Sv-K=vY3|0gz4d7m28a6Ob#sr|8Ov6NnI6rlPmWwwAv6Q-8zcRk2(~lWqTJ=}?@> z`65;)*pA&aPrx-0fL(^hccxjp8maA6_jAw0=zAKQ;jFq!&#rVpcSvw{=Ofyx3QX#M zXeQ3-pJAh~Ko+Aev30Gry<#(6A6nodeA_y~RBI^KMkbzbsz?x<=is-pEkZ)Xjb;?P z>(>B8ke~l6t@((BJC9Ybz~*?A)hNt*$0Kd#7}(J!>}bUO)NlPA(t=ffY(*Ez56?`1fEn1Tw>e^Z9r9@Q7T~{l| zQ7bbouY1*?H4>E{lPQz~ofyiWzz(ARDo_M*+4L(Ec%#{(9X&Di(GZ{yIv4JeeU??9@3=(q zi^8HAn!a|}O^;iSC^FQw{;FihcW0V@I{l7?hv>mV(gvQe2HbsugobaID}wK}gw@ z0}^S=_zGG-IWaikUiX?JdPavKfL947E^;7hSo8>Apk-xlqW1W;!EKNCU~qh0;lZo9 zIvxZF6(hmPe6N}NpZSXl{J3foT_91F>T-OE)sPp@tNx6B$uljzza?uObBzIa{ZTYq@X50;9Mz-GJLjCM~G!_O_TJb|(2{K}RtEf;ZDJgNA_>D=sG&TK; zg`b}vuC7jxL?YoPCfqUNudv#_iyIgjapD?H&~&<=l+~N;W*dB5Aviljoct`>;Q*+@ z1b_zd&6JKX1D!8oXERv@pp@diS${;G=D5zH6lZ1sG-J2?we@`JL|NQ!A&y=+fl)6sVX4lm@BPQl6J7kly|I?sN@aWIlUadvndK+&BOyTdT|&t zU+;Xmup{9wAu%w(%OHeo_iY(70NxT@HC0ndS?k>}yy5J~-IskGIr~0RzBj#E9b;ev5I*$<++SgnyWZECJ^>7F4ykRTb<-pe>UW5NWszLAmRHLIHsD1zP? zHr;D2%^$)k`>{;NK*HBn86%SJ$kjK=Uy>?Wl^cPq5Nn{=*o?I1hr_Mzn`?TxP3;2i z3r3*xA;bkMvUz+2^0i0t;b1VJ!!7V_Z&vmX8UKjKICwoPtmSWjj#B<}0r470;hqY6 zn9xw|`yv%$v3|S`H_#pprm`e6`q zd3-gubkCIIcO2;`sq*3QX-E-Hdg;$S0yP=A7(VSuyZ0u8COwxpyu#<@fi_WQ;F9Lu z9kG23O&gynHLs2w5-J->dG)s~9M5PEPb~1E^Deyl2V$oL>k4BIM+;D}+ zNi5x|C#E8n)~kMxrV{?3W*0R8VrSHVxx7T>vUz1}Z$G*)Ffd|ls&kye4YwW$Psqq% zx3#ss4m7dCf_+?eC|KZpynnh_!Ob!5C4M~~YI2sRug!$gD%ys%?@YZ2dY*(!gE(^C^H4C)hv`lDPuyP6Wr>wz<_ZI0 z7q;&B65~7B4tpussgK6No9cQs*;HN7n?)MIv&E?FkNN_=M=bnPiQ9<)!sJiPp#DFf zrJ4w>?CeV3FSQzx@xmEBWHZ?X&AQ`gxfN5mCUc|$0$On>1(YUXie{$~c`IgDr{k(; zsRZE89~ar)8|2>C+eOHa{*U`!_4ERM&7qjgVVg*HuO#UpSHNM?sJWOUZgj}Jbt5S~ z#FlhAl?-fl!nDb+Ecr_kv&$$cyuFRTwl;Dd=rD4d&|?KrH`~3*dWKrcOfvujRDO|4 zvhpzP`&y`K3pc64s_>cdbbR!8Dy{M7;QjQ1%M;&$DnQLMVl+-Wz~+9!;7B~;wKz|m zE)6K(bB(ZwZJ$RTEqE>=<0S5N_rqSPeREcm)XvS#g?SWj1K-sXSxHGrMVntek+p@! z5r7u|Zsr6U8wcLGw;@P-Hq$>Gzn`lcy4vIlS;-V77rvD9UZ2zfgTY;;pnWpskxzTX z)q%YlOr8`)1UmwYThlkpHiKUZkMD}(3dziLz6G{*s4sm9+R=6|@L=sO<>b#Etw<*! zJ$TQ+wm?b$4<*W#IMa;&&Q@)n&tdr8grdI`B`mH1$cb4A+kByOQNPlvzYWo0208bK z+9s?ka<`!1sBuhaGo#9Dtk|&F&Yp*(sMWtgSdUSg(U+NRo2kVo`3iB`B8579{?E}K z^YzZcbbHCPw(oQMr8`qe;}^@8jw-v|ebg5WjJ^qUAN$j`zRT*+xn-GpO-c%WyX5!n zbbs!x*Y+5uW^*;hDAC1Vi}L%#?^~`&9>9SFROdsSN|UgE$}R{>PwIxH?Amz(oa7IW z>s@wHreKeFu6@R}G8#KXufZ=8rb+S(*}fKxQN+Zqn8DGi_|D^=T$xWg$}SZf{fY15 zh2Q5ozQ(j>Qb~Jr4ino{`u138xm6a~iiFI#(`2o|uu z&n-S>RESM#@x7?KG~g|s(p~!UUsUnIH>)AU+S=MHTJ;+f_ZSGWM~{e%tVlqY3jT`K z`5>=dI$`HG9%<{+%B-NZa#qBLeOkB2yE9%dQJYkTQ!N*Z>`tv$g(o9FAG>gIqyW2! zYJbSI1MmQv_Y=vc%DHdGM25;2uQm4$;kY+5&207)`BVYx(X+jSr8-xd-T(AK;1Rn> zzW3oz&pk2Iu}_NbCb-H}vbQq|m^e*#UI4nvML>vf=N>u!=!}@@?g*!wmC(u=T2;36 zRf^{NMyA?)Kmd)lp}zUl`HGsl+)gkwJ|(3H!QwFl47RvqWvwrfC-B~HrrI)E_(PHd zg>3a0k7i7_?bB`jF&5+HImaetW3T0BU^5Xqqv4~z#udDTx0R>urRGr2y zFO~Vi^;vbmzA#i(C1ILWEH3N#fJCp=CKA-sz3WcM+|SRre(c$c z$9eELE%sofh&mcn{DRxWg*MH5eWP0;1gn!A(aU z;>e$A(RIXD`H)LsaxD8vylp!biTta<&U%uw{lmlB455E{cz84^vc&xxslER|i%zAz3YX4mUasj_oL-$E7yXRqabRwu(_R40sIT!Ms!$*>fy_x*Z z;I#qIwu_cS^mQCtTn%P!z)=_3&YPW^y>Dy<(kqZW!;YiX9^|Klk3}k3Z2s4$2{(sr zCUp+inrts&V6cF(HirQhzUbvgpC$U5jtKnSZ+|i|uG{FykM6Vd44+eCGd+89kwBF| z*HDz2`kEjAOZe&^Q%0%0fYVV0%f0EU9Ye;(M>ih~g52c5=Sik7|7`@U)q8FF_Gz&O z-;<)33&dLOp&TOdZxV{5zSAH>6_}t~;E}o}wgW0ET1u{RmQU*YHvfngsH(D#s!&*1 zsX1@$y>-{oQ{0oN+XcnhO)L>B1##;T4TTKs#LKQO+MyH$8gJQTPJ_aukB%Q36$^2R zXiXKo+7h^&+U`8a1wVWt!ta!q$Agpo+)FX`LBC&Y)@zIFjM}^#3B3OnPOb-Mro(jI z9L|DuPqWikM-nsl13#Q>`~^cWtJmfO?{-brlMNh4Kj&O5`Kq=~H|adY=G%$k-qjdV ziidtH6lG^JBhkYz*>Y9b3kxw$W}IQKnzT2HQPKQO8|n5Hqs{M~Y`qshQr!QN!AB=z ztprV|eW!ogOW223{b#B2+#gKq_cv(XbwmsX`*d77dH3 ziJbj>J?#B>hYLa3sT7Wb*cl|}1+7eDiwOiO1c%91^|?@ilz9^3F%yy-7Go&i_9v=} zvx@niAW~fv0=*ke1>HNCqS+o_Y9dUm`QRv#Zl>H1+wg z$f4%(=B(NzdC|&k)yD;bNxp)I_wK?3iBJjZXg(1hN5bdiGx8{|@Vl}=;^Hu@GT4rj%0%m0i-beQ_BgPZdw`-_EyNU|Sim4GSGL^hPeI32Rn16#{|w z^_7en`=3qja2z2mSDud1gZLe91;L8F7)15U;goAg9bmz7p9r~{UI2WK&~&A7%{yohTUWqKg&0O z-&2desF!%h*tMJhY)k5tc=MCke&(mZfMf^p^nJ6oJKLgq*G-f`3em*bgSyhEt8Yi&d;3F2=<7)0RzLm{?1ig(ye#Pn_c6z;VoB(wurOe_Tp^x$ENB`04B8uO>^OOy4 z*&S}On7dY$O~)J9JW4iSvgG|*k>Z-)D6`UYPK{G0u##hIqvjIv{$;f*h*Ll+kAV>^ z${-E4anJVFdJK^D?>?VT7D{-oB#w)={Co*hEgw_OS2(L2Voz8Zi7lOt)7-2KRxOGx zY=4akw-c&;o2&@zqGn#YCnhyuQZi9|k#RAJN%c=z`-km^k43U`4igRq=u|u6%&p+2sqY&=C`))Nagd962HKpZV-&uWmwN!?u zO8V=|H6D|aV+4AiQg%$EXg?vsX5t^7q^X&n)XOt~ENufxH}v9XCH$(vx>*p^PxH7_ zK~+?mR(&VkG3s|CHFHX{czjfUVxF@Oa7=F4xKU=!m?!_UzpwAj_L>x=C$*76CyjKmF-XHM@x4K{Ol#uQ|c#mShJpVPpOK z-~X;sr(NQM(nxzZ~9kSHWDhRD9KmO>!!zy*ML9sFTLrras9NK?CrcHiV ziJNEg>tFv`&OYaC`S*YSclp2n_y20d!P9;ENa)cJsUc|JD;lLDELr0;>7|3zmHqAp zj|v%tir!FDr{95ilAfKR9^sQ0J?kkacZQK=^Ej`!w&^{2@pBUMmp3GR)Dp>GvPT2m zgDDS(hQub3GIW8)UQz@(clI`^$?_fw#{0)!&e~ueF+YF*``>F=+!a?`AvfN5qehaf zUG=eK`*A3CHL!jWU|7R&1GQb5w>Xo3dg-O|gCG1r&O85n&2mG~VvRZzSvnJKB1{%D zlHy%|{i{6HtG84Yl(-^HYV!=U6Ets|-;Q?>LQCI)YrLd+wiak8ffj#sk$``ePgbg$O;bb`gtyJN$B z`Q?|@iR$m&K^j)XM^^{W3SkC5c=p+6b#rjuuQmSd-~LU>lXZP62^*)1HW4O7fVZ3Q zpgaHk7b(ol@tSLG)-MOK1+NHL55CN%#(gi$sW%i5N=G zX^|Q)57i%=DN-$JJRwB;+i3n*z-LtK}Ne*P2scNdqaa3ksxD;v_G616z@23ZqKi6 zm1n9{>1%MkT>H6A*L~sB+EgxQ+GZ))6D~Cw`OQunv=I%_I*}wZ`BH7hirMX{l*aQ&p|DN>pP=4^m_&LS@00cg{KI$e1@r%dVX}W&eTwnx1&kMHlI$ zBL))55u!l~L?z{Cc4f{9X+n6M4=0nQKJzcvh0T*49+jDJCLAzGZa8)L41@>K@%^Js zJ3YrFOb8PIL=D*@4SG`@kRBo6OD?%Y?Wimmq)x)2IFDr_0DPbGUwGk#`W(F-FZ4vH z#=~;|Zpf0sPR%oQlPT0#->9*eWrt(6Kt#+Pqb1@uL)39ohO}AZxh9+=l`-j({@OB) zZ6sqy$%a7mu11v3(L|h7PNGB`EpKT%QMT{v)*Yzp{7mog$QwsU?0w@TYsv-<8)~R( z?W|xupv9m)@b27@B?CLOmBi6i!Lva4L1;Patg~Ft+yDH}|I~Z;CWv$v+C-S#Fwz$V zd{KLsFI%pjJUdV^35Ow6#tI*Ts31+qhu=Y%>=-;ah!gvsRmKfMMny#hfh_newnvCi zvtbr3l(_hK4e^PKjFx`SKBr+q93QVb0}|sHmb3^sH&P%Z3;9{#o~%4~oJyP*^5gm} zvII!5*iqN4UEA!X=LJG|R6@t2&2@SsH^4$c0_NF4?%WTX0}{J+jet!Ck2;bo_A4t6 zwfXPWHF6^4xZWcR?)>x5SMvq2q1b*2L;B5cexqrj_DOf%dFSb_P8gOwODYhMpsG{z zC3ns?jU$Y{SlrF<|_iFGtef&1T1`1Yj((f&poHD6Y{fjRn&$^P$4&c@`;3ogy`aDlCbFU zCS%{@cRV~^J_H7dSn4r<;}~T0Kz69n5EfD!VmzP6c3E5J`FvGTne5uROFrH5sY;26 z>^xW`Hp|0q5gz1*t&(eTmZF2?AZ^GLqUYM2;y=XA_c_1ixkqy4x*$C_lbQ2yeQY4a zdqQ4L^_b7#>4vl+Z@c74nqo#`ii~}8v|N706}sqf@*uf#4LmnOsR)hg^VC!Fr(6E0 zix3+T1xt8uZlp_ZsLd*pqAf=yso!jg`ok-l3r!uz(%mPeHnUJAE?V-Id>$sL!xu=* zU*44P-wg3coacJTQ{yg!ZD`h6gX>bqPft&oyNmit#8rbO_OD~KWiMe?wHXCcUs9=r zS-9?iqz;`gF?hj$J3>`(+8Fx^!(wiuEn&yL_~MJ@+;h)WM+YHryf?Dn@QU~8-CJ(H z=_Y+=XjwQxa0D@@o%6OU;oyM-8WxCI=-c1^wrZRRIS3{QSZHsrygW+oyZ1i1{`%|H zrpx^k^Nm*IE55n2&}PB}5C)46=10B6`NEB}a53bD9t-j7ATaO^E0CQ~DHfBpNGwU1 z-!thTOExWt+Nt&_>Kde)9!8m2y5V?pM70H^O%mjt^z;n1ZARbrhNQi=OiK2KOHEV0 zG~`LE3B2UV&&||kWW--m7qU%VAUk@XdjF`8W*&uIF;G=&Dx%Zd9gjB^l^RMbr8+5B ziZ&dQv=NK6=X=C;Lp4)K%j5+p&6b>;qGqMGCjM1>}+(pg7jxU~hRM40TB zEMC-K0>Nj@oS{T%6$`Flk$YRj1_1%F5n_Tv%N}Ng;|Kc>jv#D5s4zT#zq$O{!^qS3 zr@cVnJ1Ku;1Lc0WT@s(1s(sF5?jECkv`fDTm->=&m9z)|r@#ejYQ}^$lJM9REwn*% zGlIocnp3G0$B-8y>!?An`ngm<@2S@j^8Lpp^uoScYAtiz$5OE33yn$D!2Oz9{kLe- zQSGEjEzz)__m|}Uv$djAWkjmh6ZIJ_q7|P+)~#Nnk|HW6Dk<8G^=@0B!P9pN%?!Z= z$*MiyUuT1wvO7N8E|*<;scsa%`qi)09OX-5#EFd1!2R=l&XjvUCBn48O{2=P3$i1y z6MB_)x-od6kQVk%HVdQ%o(Z;G)L&F=KI8VeAW`ByeQ)YiDak8njzWk$8Lo~g)R}+% z*MHTZ{}$?cCqvue<`hfGu29Jww_3g9F@Jtj+hC-PTr7oa4@y;Jn$+c$YPeB#VvdyV zi;~>gTP6L?l`6r}^b4{*c~Rdc^6KIFmti@LPK8JzMr{p&Nx(ynIw-zz)r%5y$D5Ma z=Y73iYJnDQIxN*m*-~Fzso6=8ecnggwe>B5{L~Ol==GjtjQd#CZ#M->h z|Mg%0rSA`WC1#iI4(2_kF*G5|Hi<*mo;1=`&@P1eO$Fo!NkWh~rf?WpQX$592#+is zc2aCp7`sXB#F>LF)t>6bzt-UQ*mTJ{+Pq<-=Bgu|K)NdzFV)?diHAx~h|=jaf;Xe7 z$y(vs{gO6fp*H=B`u!_foERd?U-Y?3oumoU6CKsHCaXwFzl@Z;#e3Adp4j_+iM@NQ zME~&>RfqA$lj9BPL3AN!J*jOb2z+lI7WwID`8P{~<@=Zc$lyVRCV)QX?y*XK>8~tR zGA#KrLaLKsLadm25v-F%gY=K1o`E{*8AOFxK$r!g<8<){S*DVV33)E(P@g^6AFAw%LrQMVvn!k!>qc4AB#c;fM-S|Jpu)JX5_(i{)zlAwG7 z|IajNh*3nE6fFBf<2J*u8KS+7!Rj!OAbB{8+pexxjf+UtXob;7D^-(dkn5 zWrS8=&zXOZjqh9%g2CE>?ZM~g!T{~L523;{`R+W_St7QheklAd=}|~&uY43dYY0X0m*no zAwdY30?LFLS+<*+k}}!2ZoU4UV-dH9XWU+}SM@ca#}tYD?Fb3K za7Fnt-gZn1*B_L^ z^@k*X#g~$|@N>yqxzIWK;!@Mj#fX1kfU#ZLlS#TmE4)zw8{{vk##x6KE2=mP*z$hYd-#1F8!&;erFLT zUU6UHXWaz|1ZY{r5?k?>tPM!itL^p-hat=$L5wA8H$m}83rLRqpD+=mLL4##*du-N ze|AzPh%>H?pCQbW!XinEiIZ1Gy&})_eMZ%JoH%$0Ema$dCL<+P!?!E~=G??+Ivcy4 zi6E!EHa%anfb!<;)GFu61LrD1Avs3hGD_8B!gex7uhdx2;!Q`CNUP$rRQe=TNgK75 zS9zquiW(ine^ST-k35nhzthi@RH%B5?G)0*4vG4YcRO#+XOcF2p(OR0t^wwxZqiE# zyDRE90q1SKl3)2r-w=E~ecPn5z&h?7`{S-Lda?#m&MH zrb}4C`q(K6GA2z66@$Qi3Xu?3X^;1`fQ^cmP2Y`?%dBLnWDvidQEe#BYyjm7QCRhPs;PN z)fhN#MQit~Q-<1|NPejATVHfqsS0wJ~E!?erjj+XfFMk(2cy~xsBotUV;=FqZ zv@2|OrwU?>iM6!mEo;WA_j;yyzJq}wOc$UAAq6<7Ze$e*VDi(uXZNnp1KMJ+Q6g!Q zKhAei&5*_SVk!+d5O^3BsB#s#R z3*n81)YMLSM@)mrqk|qtqus2fV z*XJ0sQnKDzuRYc&%~rVakd%BLstw-A?bd$ac_m7e4b(vJQaGl)Kt>tGpDl+6gBV&e zv7A|C-3iP~Hgo1VsgBmYW2^sU%{osV*p7Sb9R@>~0YISmzCB;apKkq=PI?AuhB#%) zi``H7lKcW0_Tmstg(FWGb=qx635yOpDE3k&9UgcbOI8AW4$^ zZ>dx`c?jk4R-4ivF#c0W1OqspZi1NI6j7ik2lh*Q^&0ZWY53M2eaQ_v7D!astgUy4 zb}(q*K*`U|Q#)RF1;POHo#YBTVPea-s(f`t7{c@evTd*(GT{k}K(*-8r;id`VkAt?-`TrwxRl!yEq2Hq{3D(x2Rgu%Oe>y6P;S6kuC4?_m_A^2kffD_^|JByu|u}S(E?#Yl9cko+f5G>H>4Ze6vKz3 z$hr40kq*i5X$v4sT4Nxg66j8Lj~l`~as0T}!?a@fh~cD)Jat74&RpOjrmzMC zX(tR?u6(*>i}T~%4m1%&*swyW7?`#AeOC-vw_pg<3wWW_AhZXHLsXC*l3`oGF{y7! zE;v$Vs~U(-GzlQvKG~!d*DV_=s`@y8!mDI-t~OVo9|=rlpI!igBa{N*oY z%DeAMNkI^X^QPYCrxQrn^pvJxE~%pS!Xj-#TkfeX-{C85_!=Q!l=q{DlASQIfm^Lj z{NfZIO?v@5ET$jc7w^q&#do~m+`APw%s|?tOMsimkd6fJg%;BYM1%$gI|mJ6dI1?2 zbegoQQxN8pPd=$NE!%?X!V;M<<}D3c9yMx|E5gK%%4h8hj(AL*QEnz)c}0b!C#6X2 z$p}eGOqAl{qE4|NaqR>yTZ40Qzew2BL8PxxTZ%8#*3?Q)ZmuN6#z|~ggyd%D1dKG` z?}WIdB&SI9@i0kANR$#688&>cxTHi9qGBZS#7SLT!Gx00w+D^H9^HT)oF;kR7AfaL zjpsZu5m6FzGD6bR(mKsSf*NhTFRld}Ec1_IFqn{NtKqhOCDA1`=d%;$l~-P=#M@aF zikMr@Imr7Xx`a4b?uT-T-rj{j7{c@dCN2d6D8ptaOtNh@Z`#x*iKDu>RK|~eOFK3a zv>vEcC@+|P>{M5`6DDCQ*in5=JiZ6v{twTb8?Dl&pB3+u#1CW)!MO1$u7)@<9{9_H0$@p*j_6>Gsb& zz3e?76sfALRFcGdOcg8~d=EYJkgBh|d+gpwY{70WKGE2ywGkjh-AH2M<;3BmvUAri zeNWc=LZYOa77{XX$f($EHfb`d_V3%T8>8Jrj(Lkz-gdhW8+hK<9OPLs2XU}k^N+!E zB=(v4$30;hX-jIVAxtlTFxesP>J$_I=HK5e3+K)AR6q|B6ac2|8guay<(nQhComx3JiQ z6Ay^AN0t>*K8>}!Jwqg4$bkd}?2mk&kS?yDBDfTF4g{n^7OCBSNwE~}J>HFe6 zS?`PdZ)#XlVT&e*Y&>qHU1|bsUcXV>Jlj(uaiCHpyDcGkfxvr2K%fI_uU@_MT$t0W z`DfkJC6`>HB+j~Evuz7`8^ZJgNC4ZR6;fo4|Nfu15w&rQ}_aE z#EO+GTEu}ekUo&ATAjbTPLdK5wJk5X?)JD%`*``Kk=k7ARLhq^c+_)5wPAu1>SR~J zd<`njQzz6LS=munUL`S6(K3Ggc)9)d+vR^9eYy#=LbZ4HYv=j0craxU(qj*6u?Fhl z!Gi}|NSW28BX$j>e)MhV*^_yo0aulh>*C%8@ z6i9E(m@!_Tk-q`SvH1L*zqYzs!jGMhcix_)eb=4GV31D_S=-a>cqW8{kr~C}ael`d zmQvwke*F;ZvBt+|bXe+cP$^l@%AGDBL(`BunP+cwYL$rM)HtRP3?{oYaqR`saa`ukT@m}q7Wcct_?EsCSf9Z zVq>I}BbyHySlBoD4)Lx?%G`suXNWWt$o7TQOG>R(u!X^UMCxR-z*Imh6Z&%#dV{2g znuximm*uSkA8Tke;~xrFc#%NERYK-%CO5DbeHJET1p&>H;h#PJg%H4XB`?!D5#fB)wD z;TdE1#HQ!G2gb~qGXvV6A!CS}1#Eo}8z?q5oGCbTAS%v<=?4cBsjj?RU(z3itNC28 z?+rB=iJNm-1Oh>lvWcCWcZR)@>*HNI=M3+F4bm;pJg^blkHLK5UHNjf1p}mP5&}@G zt#`)w<*$CF<|>?Yl+)vRv38vI!}_43YoJZf7Yt!~0gIWU7kDh~YLzv336Saf4eMQb zO@jr*#7>Pz+>($WKz42lcmQ^5JgaykkzODNyw4C46ADR`Mc}-4KEwS5vcoxn-4sJP zo?q-l+&?=t@v3Yt*fR+yfw;Iv;_&Q?9}+{dLlyOgnv!xk_|<-S;QssNCl~!h`aR!I zomZR}iOf!3{GUY#F|i17#Gq#3&1JDd5IEO(KHfGxNB~Dw#K|yu>>rP+x(tb;O7b0! z%k#6_7I_c611d-PB6|xEBhTIAL;JqVra#zu+*iTkog3-C_aAe`Aj3^oWV?7Q() z10*rXh0TD?6sZfX0GlucFi26vVP?HEh@9)QOT`RI83vPv3%S}eauCzQO0b*{h_XN&Gz?(q{?;R^g+Ew8iv3i z5;iHoIUzGU;q(0Qwg;*uz`McDX_ts0Ovo26IpoZBLM-0up%RYeyk-W3%k_HujyFKW zgh63HbP!JV+NL?G+ zulfQ`0i+2Qvvn>OEOs#nn!$Ck%ieq6y|U-?-BMj#*8F`Y3j}BNA7Ze8kzA0Ff&tfp zg9LR4$r6wx*%inNPu*j|Rv(w|bCfmmeBq0_W_xp68KC*Y$ZmBEtWW$g`%HQk~ zCZt1`PQt4oItU!8gZM$qA;YGFmf$R}2I-*^BLQPtAxsO&8M~OZiLgOHy!MtLkTmxW z(fR{K#kJYbX&*>=yaQiqJsW`4d)_`EGUggFqW-`=@cbcUA}ml#k-E2U`%EhHefJPT zbtg6vGP2GI(Q_Q;fE#dbY|oZ?hyh6vPs;NR)|_CWwz@`kf3`!P3lcEq1U58(*Oii* zsu2x#`!^Cln`^*24t`(=(+@}mW3jSWoVE}KB!pvV{zo54Np9ObnBIVW1$Dw+tr`i7 zYe8~kXN9Z@(b=+fi%uMSD_DLeF4A870K&n}h(je9ptf;7$OF|MB1CfYH~CScQE%;G zHB4Nt-&=Yei)qe>bJU);am_ky{bAh?@sxO+?LBe0cdiLZ4#PhrM4@NM%1(L&_&dw1 z@m;*+kSyvtiwY00UHU=VB39HcZ9zN)%=?P_w15N$vDwebVAJItBAK&k_>%C+F7igW zTnj35Ai}h?6YP`BTcl}Ja3r)wKkp3Tfcarb@{kLg92>72+avdbNrCe@J^z>){5kpp z0ek*S!-uQ1$a;hH*bMz0FD5otHAH)O9qSbnQlMw(4~8%U0DDNk=bvw3V73nyGB0u6 z>NQfYV=Wy%zH$L&0g=!?p}jVAr(2FP;PUf=WmBk++N^R8a2KZqMWSvrq#Sk3bDX1$E97o&|)2 z3h8g5(|_oLsngV9^w0nD^(O6>Ffo%17%)ILD>ga2(}BW~c-I8l+il+8`R;esbP#^r z|MglxvPVi~ZrX(lOae&oZ3UY%rik;JvhJ9VZszcpyZ7h@{O?VX99$Fc0DJqXcZq`M6cdtrS$uCzu-`Xy-F^ zf_F;vgB6j%V7}pT&Pa6EyNbEUx$IgE1AA;ByRT0)ifRd@BqQ-+;=wlVYu?+jcEu_c zWUMvIocZY`mq>W%$y2hW8o~^OMv?NoLama0?RD3+Pz~(^2^0_XsXBpJz(`v5)};1< zib=`0@_g^rikJ*|B(Y!Fd&wY`p?|!qt9xRCw z(LtwVl6Q~u%V|euL1Pp3<&eNziVAHH?P0KR*mQh3thjeJ3SuMeaeO$2$PV#Fuy#PI zNM`nPvT?B4xk?SJu9LYR%#^dvKD!lRqT2cj{)Y6B@YtyMJPtSBcc2XpV1q|`wtJMh zUt%}i_D)9<eiOUs%_ISk9w84W(c-~{9C*&&$cx|OltBu$FE~P2++>H~taFAkq3S~J zu7ag~5GL;vb<~?Q4fs9RZF$9UP_Zd^yGJLuFXol~odrX<0OuTzGH046>a;gUUm%ne zmq^I5WAgK#dn8sO46sxCdfyhfU)~|+EBpIn10=+%_!RpI8NzglhQ>yDQv891gJIh)EnvIxSE#}cCL~fa4kaWbJn?*& z1>tt_kp^d%ZjqL;GX@j03b7*rVvn<$&{@ZWfc*7!XVZY-oh@D&L>Krgpn;Q#Y$Ur0 z00|kpq(8#5o(+)<&d?krPD~4KHXL6nIrogi&6~u>J7e=8Kb*}GhZaHbZkvsv=A!o6 zoi%KhT(jHFKQSss2_4&~{oa|2-W+{_fVBE#&z`!b5EL+>@NNRlLH>?Ii0V@IIRoJm zqZ}x$H4qG81_7iVUL>UG%sjCM($uhF!`fU`8xp`nZg)5!B_U<4T(&~Jo&G>cI2OE} zFmV7(oH)^EDKtAETtZ2#;Ax~KCYsv~0Gkt}WRIJ~@uKeGYti+2n5D3JGA*I*}59tyKC;CKKz)IW@I@N9L6Bl)k z>=QQ<9)w3gyd@!`#z6jVB@I+koDTLJUp(5}m#f9s1jrDH-Wf;9vq1XwM_x!YNT7B} zkLRHQ@d2vT5MxTrseQ5G`Q>~57Cz*}Wjg%M&<^XsRb=_OLs+h_{7wi~Vd$c0h7C`s@MgJbN5nINyQ++5y4_&z$36CcxR{%XaHTU1_B( znYTc$ys~ALE23E3Xjp+@2(yjA2}B+%SyI3xks~cW&9Hlisc#AtAC@ z>ijrtSda`dUmz>HI(O9-S4eDlq~Ar$q(?GCy5u{YpRf$#^W1>%BYj(vfic2PK4ye?*jE8VxePSc3v;U z6HFb*)U;G}z}Sz$^`JF)t5yUVqk>zX#op}CM(YHbOXRiN&xb>eG|7re7dF=>yE_uS z{dqHIN#*tRynO)&5ye(4vj%o(oJs!Xt{v2>eeIQ3T5Og`-S{57*?)tDA-_x7B);$7dnGU3 zf0s(6NTeuY_xK)CA`%(4FgM`)NIQJT{v5D3BBi=jNi7r=6w3SWz1J$dicN~VWMAaP z?;!z<{C39^($AvBi+$R`ER~u}75n)xz2M9U$9Xc21C#|i^!I;pN}~}JgF}mu@g91IIo>BiGOViNnz{8!*3mj zcv#Bsxdmn%0@f`Ji+6xM9jaSo*A@&~ob)ediX%T3$VDn<}S%Jq$H5BS#F}MMQNLCK_Y(GD?Bg_H* z)LCyxk586||Ni%8Ndt+Q&4cITFU^kUM0gD(W0$fqOKkt_Gik7;klFzuvSBz?Y8Ef{ zUtj05fVxLPWlJq(!6Mai@4*1+5GRrS8mI}tg16hCEs37MaQl7Yl@3Jib`a-^nZtfQ z%m}{XRK0=EVuG@pkqAq|dFjs#WP#kgx1Zg|xuL(!BM4{aQ?3JiBf} zGpdTqWYK~Jt*XRRgaK8~pR@p(A_?(bYvCc0;XH7Yh6YGQ#M_Ez)P8>MA1O7Mg~K!5 zzGHiHg>VK0L?Al(^Zr1F5|W-hV4XP1=lk`O)I{%DL4ZX`aJju;2m^`7n=0%CQWoJ; zmS%txCa69(kX(bv^!MJ^W_9*!c=WNyBrz$e#iqma#=&RR8-S=W2ZS8-AE#@9rhFxZ zMRMyOZ*Acq!r|!1+L#2oxniK4kX=kZ-gD$>t~{xW5eU!y8-P^8mjB$ zm6u1!Pi)Z_c=xH)Q(Dxrk5gJoicA{^qU)o(&QzlCFIn;=IJ9 z6^xYX4~8(?0W2ugKxg3r2B8&!JglI$rdB76v%Ein+xD_$zJN-I>S0L>?5x=F2)G9R zzE438>KIy{MI;3zTZq~XAXNRFIhOA>3*TN@rBE`h-N$5w5Zjv!C$j&7YEJVWLQ^TmGc%!f}md?HfQ z(xef7G(?_w{PAXj=Uo#@<(8nCQ|mWuXw?z}2jLdZhppGeD??boNo6NXu8A-nxAzVb z6B2b(v&yk?44gG?^U&F32^n*4*lZ|N?sDtE3Is!#?EqCFw{LG%dy#<+(G6juQqOpQ zdW&k+Od2L5b~%6FM^(eSXwPAW^!OROVj$pI#NOr%HV-7tS%5I8c4L=TI2KYCHYgAb zVY28^3+?&zkU7~bzS1FumII9)f3-b$P;D7%iq(gh$8tN|&3^ytj6A>u@b=F?2m4IWiPuw_6oL~_;>uDl6;L-K9 z2(1pDua0^}?QoVY5$6w5826$&HQ39w?49P7JOaCmkCHwm~XdIiou;XB-bAI|uKx6^dpJ zHd{7ox0?mnv+Hy9_*iLij|#U>yMCQu-ihVSB;wUZOXhf0M5 zB@p;N!R<(6c2yEd0eh@lDb)g`MraM5V!J&NX_K61U*3Mchop$7AL-H}OjI)3USwxv z_2}2VY0K69c0f;Vj!jB@oy!iHhMg? zl}+b&0tXTHM(mE(%T4r%VBuKUP>tGSRJ881imHPIy;z7lRYcHTndLYlm z>G0wCIi*JKk%R$@z_2589adAdK;Zo&<=agH5TGxKk?X~oX5ZxaJW&dP2$SbTh!VC@ zXXq7!m|bsG=xk4syv1w)wa1SAAIVe+z&Sg=9)QX?%ev5+L}Hc%EF6UI#s z9?p&0X_v_OKb~)ASdc}Mr16!Nm#MUY!^*BsL!OYJzfcTFgJWS(XQ5k?fi*au*QRIn zjZ&PGuhr?jJr@WH+n=4l|MS28OaA`ggA#endmcDo(XjxX#X2Ca<;#{SNqd83|3y8u zt8+-}*utJ`O5?qda_J;YHxef1 z4sY#rt$_)^>8#;hBWaV8+Pr~aGp?$YH{W=pm9vx08zI4)2?W7_%^33)c5l>n?w@+8 z_LNj4Ol+gM$^Hv~KzdX%vNEjfgAEsn+1os3-XEaiRY{rWUR>fEL6|H|b{QlW#PeXo zTmpe(VX(Ic9HX9Mz-J)@Iv10Wm^!-+5{Zq89jJc^ix-E6mgBdn#Mnadx;xK(GUSB3 z{>JMnVH`hrMADLyW%4`kv`A~?+>pON35i98^b65Ij;MEb!h!I-H9bpBPLVk?W~r*= ztwtmSi*v^w8;COnX)80;_u}ChlI39!c4x3S_fw^&(fd2#d&HX}U0S4%S%mwy*B-Sb zOKg9;s3l_XGjsxh`IvA zithbPL_k zze@|ygNOTL5!>xQ44emq%2 z@8`_8)5R9K${)lx{>g? zZX_ZWIfX+ob@=k?LtvcGt`%V8#RTH34lAY^v=t;*vV%xjC3MWLl`v;_Y$JX2YsnCG z7gZm7Iz8hp!i4BJCiBRi;dAY8exr7GPe*{SpE=JG6A{mbxyt`7NtTU)4Z=>Cm-LN#egw67{hiTK)$>fyDf)FM3{#gDFcU((<_WUXa2nTQW+rAhL_E`?JUYiBCvSVs`evK~f+klgVbO-$+A{2A)wSCpJ6&C8P%P zfxSHelMzQ0(mabRH8x(BEm@)y8;OwxgEZ-sfWP|cOI`SONdc7~a`jiw6Dfkt&>4q^ zWXdA(w&(y0neZBW7!n~mJQJ%!B-hBbVt&B3%3@>FwH#1R!bI{TY9LU-6u_p0bZMQN z_r`N`ngZ-#bH-%ij7orXX-{IM;_}>?n|Se&ijnTn1b9x^XE9gU(-8mTKmSvX?ep|q zFR!RjQx9HqHbqhv7cX4YtPyYyLX(`uQ67HiA+5M2O?=7uso;-8i#f_hNkoFZ`=&R- zWUz5_-ImjodqQ&MeWKm)40zu>KQ=uyGP@nrB1|Moo+on|jSsU8M2{K3O^mZ0-JUQp zFtf0&1%cX%^u%r(%!Bd=NDD8kowTq=K?;G|vRcw91p@55BZRYg&3b99^R7x-K!PJ2 z#ZFf2&SZUrHmTHQIR!Fj_8he}F=5}I_P%5`bpwP*Ar&WKGI^08t*SLF6r>lVIMjL6 zD%5dQBFF=ifSu%+$Sg{(k7qFbz4tVA5W>NGkL1$AKG*avK3=gx7qZ>k$%3^Lls6Fm z1JOF;@UZK#XnnnF2$OebCrsWW&J0U3L6Rhv4~d8508AbH&N?O%A6ZToVKT>f&Rnyv z^IE?}6}3BiP?>o)zP<;LTp=L)2Fvv$l|%mgooCCu#1w^!%=Iw8AQ>D?yf+GDSXv3+ z$5wo}X_I9WU|yi=v&qev{(+>%CNzg{@l3f+r>C9gaOj|ibfr$@=;0&sT)%!QSu&@% z7Ou~-19P7^>zpdNHF&3N(3}s_gQVF!(cZrMz3=KA#O95?*IxLV!F=RCk%SSD*x0d6 zbIm*_-o4Wv9SGf;Fj4o|&73cR#Y_DoZuR% zn9WXYEn0Sc2=wrQzy$-a|FCP?J-l28=7HUN_NX0h+?!+Mipwuo!bH8w&dQehrpys` zcfRkfcnAv;@C_ur#B}8V9`MggmqbQh5!0*|0@6Ut^bjgiTVG*IcZG=TFW!4x~VH z#+%c}8W0?0LJ&BPDBcs-#XIBq9N7D%Y{-?;RT>S_bWrr%#zC zc^TOvw#Iwh7jw(r%bdX`yLH=E-H1O~zd`Q1=U!cJ5EY(%o|W@`a4hWI&a_kpf(LUD zn=S7Na|Mz#=e5i_5H9~xY}&rj@_#fRq*wkWHkLKOW`pMEybd?$)`W@ZPI)NjOF)%D zg!dLc5iIg^^JKxo12YK5kFN+5$EG9N^SP$wJF?CL9gI$yf zib{3;4cE)X7hR+a$Z}*@Q^h*JQ^K?cyFQE19U%{TE3!{ zP1hTcvXK6qo18U}vbYv|=F#tO{=IxSbC#6m6-ahky3g-JY!DLHe-4E>Mvs=T<0o2$ z-Y{>_KAdfJak??*AgO;m`lvoj)&|emSGx)}LR4>O^EhjuW@F!n@T?6HvSjmzfO-CC z1f0ii$LF0Qh@erTv9XD>k)U1rGkN$!w)k^EMx8?OUm~hyCkVviY z6;vH2t~cp`!34L8$s%?50;GqU>nuRbgeNr1pTmdm5e{QFiLfbR+X@TN8khHk#NnJH z_Ur%k<(JDWnxG+Nc>(VkCm6(P&*f*HVGCuRas6yA*g{bsk=P-EZ-47s>VVm@`BN#+ zb602>%?OFgYN_kIX8VAU@4NRt*|>I{R2O<|z_dXjdce8KSp(G`#}L=<%Tv$&a38)% zj=@HNW`UN0o!&Y3?1030_fD_9b3nk@c`=b-+vJ$cMf?TM&su|b!A5|+oi*S~Q*ncC zO_)q%c7D4TkHOE792I6-sfIxyJvB|nz4ewZPHW;KQ6X^!iifj+dWsa|Y^Q)a=PN|S z4ogC`tK{~ZN+Zu%6SXIo~AbkPT2*KD$ z^KJ zD5`4p=fB>4x7Y7NF4!z_aAB_SC5b`)c=CM_CZr2VF^@@r@O2yu%t3FCALn4*S~W76 zgUnyvF&mKcv(}xR{W}v16vt)rGUi&jYMQsgG${*hk}_0Aqmpj&)sE?xbS2AOWU=nu{TJ@%_w$_d<2lbc-|xZeePzFr2x{o~ z(HfA!gV>pgrVeemy^U5?HOw!T0n#12kYgd~cHYa@$Ek7dcf6Ib%e8*-dKbBFGZuPv zS!AO(eO2x=#9G48F5lN)W#61!dr4{*GoG1wMFp2h6b1FXR1tBar^zg(AtiU1C`~b0j_}a*NN+qQ>T0^VJZE*i^Y}{n0AO)c9KvUkYc5ok)Ci33R zwAPoG(@Q}bJ4xtIt4y<hs3_y-71l;bj&ARMOvOhp@c}zeBKFv3~7~j-g|_wis;x zZ}x}RwQn>E9EmMiP-h&R4V&Vjwrb;`TOCn5D~u{^`!ub8UA}3Apak81R(^-gq~e=w?#=@C1H{S@T%*(;^aX$dtqr~Szz7#0@;cD9VwdP z0gKSw(iF{sZi?LU+Zwr~#tP$>)c(gm$2wM95BJP?u%bw# |xS6c(#8-3vQ`09u~ zqHPnGs2kFT+Kel^3YW5A~T`k(U-q`ypU344@1RoE7+HL}f3yUm7ca(icRsvX}wX!Hx{W&eJw zp?<=A+uv1>BgUEOe!P31uc0-Jd!uw|KO!$q)*tscSxMU1GfEDm*O&GO-d<>}^UO{r z41$Km(K#Vn)SWX1wlDAr{_x^SY;Z?t(8n_8MhE_;wIB@k6E32Hl%+gk^_99$BX` zcEt#Jf+IaCrl2^`VZm%hpIj=liv!!=ygU5g&0!(qU&OnlfQIGDOy(m&E^mOs3QS44X2Y>V%CwN z=K);K?RUYvv1LjQck0(IR``4B=-S%*F6)aRC>5$_YYArcWP|vDQBp zLI+{f{L|ax0eu-V`OjzXFmfwM3o4CE8B`**07KSG_herwnp2xU9VCg+3?zMGmDU;F zcF17dQm%0VfnZ5*NS_$lnkS&M6cxhF^A|<1vgq4xOp|o+!WB<668Xt=?F9smPfc|c zQ=gudU&3=z)s_Rwry)A@C~x0=t0s?0yCX8QHCFW2vF48$bh_L3E_4QR(*h*nKp(`g zh(-h}h0w4Z;coE0uoB?_Ya!bK!1yRO~hKzhJ_Ie9e8cZp6BJeE=Y33E**GQ^j7@Iaj9&E7k9K zC=}Yl+<^nA$VV~>cs&0778X)Zl_^*y^`fgd4()bCB9Sqm{}sHE?8(mT&H^#Q)KqvK L^*vJSj%WM}N=r7l literal 0 HcmV?d00001 diff --git a/src/main/resources/browsepage/images/kfum_kfum_global.png b/src/main/resources/browsepage/images/kfum_kfum_global.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5365abe7fe8993bade81f0e933fda196cd5012 GIT binary patch literal 52806 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.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 literal 0 HcmV?d00001 From 93e8a657846524bef1df6164cacd02485d5d042f Mon Sep 17 00:00:00 2001 From: emilfa Date: Thu, 12 Mar 2026 14:13:25 +0100 Subject: [PATCH 4/7] feat: created BrowsePage and a component for cards representing an organization --- .../app/view/browsepage/BrowseCard.java | 25 +++--- .../app/view/browsepage/BrowsePageView.java | 77 ++++++++++++++++++- 2 files changed, 92 insertions(+), 10 deletions(-) diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java index da74075..9a0c22e 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java @@ -1,6 +1,6 @@ package edu.group5.app.view.browsepage; -import edu.group5.app.control.BrowseOrgController; +import edu.group5.app.control.BrowseCardController; import javafx.geometry.Pos; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -8,11 +8,11 @@ import javafx.scene.layout.VBox; import javafx.scene.text.Text; -public class BrowseOrg extends VBox { - private final BrowseOrgController controller; +public class BrowseCard extends VBox { + private final BrowseCardController controller; - public BrowseOrg(BrowseOrgController browseOrgController, String img, String name) { - this.controller = browseOrgController; + public BrowseCard(BrowseCardController browseCardController, String img, String name) { + this.controller = browseCardController; setId("mainContainer"); getStylesheets().add(getClass().getResource("/browsepage/browse_org.css").toExternalForm()); @@ -22,20 +22,26 @@ public BrowseOrg(BrowseOrgController browseOrgController, String img, String nam checkMarkContainer() ); - setPrefWidth(100); + setFillWidth(true); setAlignment(Pos.CENTER); } private StackPane imageContainer(String img) { StackPane imageContainer = new StackPane(); imageContainer.setId("imageContainer"); + imageContainer.setPrefHeight(120); + imageContainer.setPrefWidth(120); + imageContainer.setMaxWidth(Double.MAX_VALUE); + ImageView logo = new ImageView( new Image(getClass().getResource(img).toExternalForm()) ); + logo.setId("logo"); logo.setSmooth(true); logo.setPreserveRatio(true); - logo.setFitWidth(100); + logo.setFitHeight(150); + imageContainer.getChildren().add(logo); return imageContainer; } @@ -49,14 +55,15 @@ private Text orgName(String text) { private StackPane checkMarkContainer() { StackPane checkMarkContainer = new StackPane(); checkMarkContainer.setId("checkMarkContainer"); + checkMarkContainer.setAlignment(Pos.CENTER_LEFT); + ImageView verifiedCheck = new ImageView( new Image(getClass().getResource("/verified_check.png").toExternalForm()) ); + verifiedCheck.setPreserveRatio(true); verifiedCheck.setSmooth(true); - - checkMarkContainer.setAlignment(Pos.CENTER_LEFT); checkMarkContainer.getChildren().add(verifiedCheck); return checkMarkContainer; } diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java index 5192429..b2dc29d 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java @@ -1,4 +1,79 @@ package edu.group5.app.view.browsepage; -public class BrowsePageView { +import edu.group5.app.control.BrowseCardController; +import edu.group5.app.control.BrowsePageController; +import edu.group5.app.control.HeaderController; +import edu.group5.app.view.Header; +import javafx.scene.Scene; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.TextField; +import javafx.scene.layout.*; + +public class BrowsePageView extends BorderPane { + private final Scene scene; + private final BrowsePageController controller; + private final BrowseCardController orgController; + + public BrowsePageView(Scene mainScene, BrowsePageController browsePageController, BrowseCardController browseCardController, HeaderController headerController) { + this.scene = mainScene; + this.controller = browsePageController; + this.orgController = browseCardController; + getStylesheets().add(getClass().getResource("/browsepage/browsepage.css").toExternalForm()); + Header headerView = new Header(headerController); + setTop(headerView); + setCenter(createBody()); + } + + private ScrollPane createBody() { + ScrollPane body = new ScrollPane(); + body.setId("body"); + body.setFitToWidth(true); + VBox vBox = new VBox(); + vBox.setSpacing(10); + vBox.getChildren().addAll( + createSearchSection(), + createOrganizationSection() + ); + body.setContent(vBox); + return body; + } + + private HBox createSearchSection() { + HBox searchSection = new HBox(); + TextField searchField = new TextField(); + searchField.setPromptText("Search.."); + searchSection.getChildren().add(searchField); + return searchSection; + } + + private GridPane createOrganizationSection() { + GridPane grid = new GridPane(); + grid.setHgap(10); + grid.setVgap(10); + + int column = 0; + int row = 0; + for (int i = 0; i < 8; i++) { + BrowseCard card = new BrowseCard(orgController, "/browsepage/images/children_of_shambala.png", "Shambala Foundation"); + + card.setMaxWidth(Double.MAX_VALUE); + GridPane.setHgrow(card, Priority.ALWAYS); + GridPane.setFillWidth(card, true); + grid.add(card, column, row); + + column++; + + if (column == 4) { + column = 0; + row++; + } + } + + for (int i = 0; i < 4; i++) { + ColumnConstraints col = new ColumnConstraints(); + col.setPercentWidth(25); + grid.getColumnConstraints().add(col); + } + return grid; + } } From 1b2791182395ad467d056809fa0837becd9e577e Mon Sep 17 00:00:00 2001 From: emilfa Date: Thu, 12 Mar 2026 14:23:29 +0100 Subject: [PATCH 5/7] style: minor style changes --- src/main/java/edu/group5/app/view/browsepage/BrowseCard.java | 1 + src/main/resources/browsepage/browse_org.css | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java index 9a0c22e..d4343b4 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java @@ -22,6 +22,7 @@ public BrowseCard(BrowseCardController browseCardController, String img, String checkMarkContainer() ); + setSpacing(10); setFillWidth(true); setAlignment(Pos.CENTER); } diff --git a/src/main/resources/browsepage/browse_org.css b/src/main/resources/browsepage/browse_org.css index c947cbd..22d6d14 100644 --- a/src/main/resources/browsepage/browse_org.css +++ b/src/main/resources/browsepage/browse_org.css @@ -4,6 +4,8 @@ -fx-border-radius: 1em; -fx-padding: 5px; -fx-pref-width: 10px; + -fx-background-color: white; + -fx-background-radius: 1em; } #imageContainer {} @@ -11,7 +13,7 @@ #logo {} #orgName { - -fx-font-size: large; + -fx-font-size: x-large; -fx-font-weight: bold; } From a50cab80bbbec0e4721408e8e591517e59dd4830 Mon Sep 17 00:00:00 2001 From: emilfa Date: Thu, 12 Mar 2026 14:29:05 +0100 Subject: [PATCH 6/7] refactor: changed spacing and stuff --- src/main/java/edu/group5/app/view/browsepage/BrowseCard.java | 2 +- .../java/edu/group5/app/view/browsepage/BrowsePageView.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java index d4343b4..449ae84 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java @@ -22,7 +22,7 @@ public BrowseCard(BrowseCardController browseCardController, String img, String checkMarkContainer() ); - setSpacing(10); + setSpacing(20); setFillWidth(true); setAlignment(Pos.CENTER); } diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java index b2dc29d..4cf1018 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java @@ -53,7 +53,7 @@ private GridPane createOrganizationSection() { int column = 0; int row = 0; - for (int i = 0; i < 8; i++) { + for (int i = 0; i < 16; i++) { BrowseCard card = new BrowseCard(orgController, "/browsepage/images/children_of_shambala.png", "Shambala Foundation"); card.setMaxWidth(Double.MAX_VALUE); From 74cf8538662926431d2d2e3635f8902e621cb2b4 Mon Sep 17 00:00:00 2001 From: emilfa Date: Mon, 16 Mar 2026 15:49:27 +0100 Subject: [PATCH 7/7] feat: created organization page --- .../app/control/BrowseCardController.java | 5 + .../group5/app/control/MainController.java | 10 ++ .../control/OrganizationPageController.java | 13 +++ .../java/edu/group5/app/view/MainView.java | 10 +- .../app/view/browsepage/BrowseCard.java | 4 + .../app/view/browsepage/BrowsePageView.java | 6 +- .../OrganizationPageView.java | 94 +++++++++++++++++++ src/main/resources/browsepage/browse_org.css | 5 + src/main/resources/browsepage/browsepage.css | 3 + .../organizationpage/organizationpage.css | 31 ++++++ 10 files changed, 175 insertions(+), 6 deletions(-) create mode 100644 src/main/java/edu/group5/app/control/OrganizationPageController.java create mode 100644 src/main/java/edu/group5/app/view/organizationpage/OrganizationPageView.java create mode 100644 src/main/resources/organizationpage/organizationpage.css diff --git a/src/main/java/edu/group5/app/control/BrowseCardController.java b/src/main/java/edu/group5/app/control/BrowseCardController.java index cc761b5..297ba9f 100644 --- a/src/main/java/edu/group5/app/control/BrowseCardController.java +++ b/src/main/java/edu/group5/app/control/BrowseCardController.java @@ -6,4 +6,9 @@ public class BrowseCardController { public BrowseCardController(MainController mainController) { this.controller = mainController; } + + public void handleCardClick() { + System.out.println("Browse Card Clicked"); + controller.showOrganizationPage(); + } } diff --git a/src/main/java/edu/group5/app/control/MainController.java b/src/main/java/edu/group5/app/control/MainController.java index cd3309a..b89a59c 100644 --- a/src/main/java/edu/group5/app/control/MainController.java +++ b/src/main/java/edu/group5/app/control/MainController.java @@ -8,6 +8,7 @@ public class MainController { private final HomePageController homePageController; private final BrowsePageController browsePageController; private final BrowseCardController browseCardController; + private final OrganizationPageController organizationPageController; public MainController() { this.view = new MainView(); @@ -15,6 +16,7 @@ public MainController() { this.homePageController = new HomePageController(this); this.browsePageController = new BrowsePageController(this); this.browseCardController = new BrowseCardController(this); + this.organizationPageController = new OrganizationPageController(this); } public MainView getMainView() { @@ -33,5 +35,13 @@ public void showBrowsePage() { view.showBrowsePage(browsePageController, browseCardController, headerController); } + public void showOrganizationPage() { + view.showOrganizationPage(organizationPageController, headerController); + } + + public void showDonationPage() { +// view.showDonationPage(); + } + public void showAboutUsPage() {} } diff --git a/src/main/java/edu/group5/app/control/OrganizationPageController.java b/src/main/java/edu/group5/app/control/OrganizationPageController.java new file mode 100644 index 0000000..dd8f1bf --- /dev/null +++ b/src/main/java/edu/group5/app/control/OrganizationPageController.java @@ -0,0 +1,13 @@ +package edu.group5.app.control; + +public class OrganizationPageController { + private final MainController controller; + + public OrganizationPageController(MainController controller) { + this.controller = controller; + } + + public void handleDonateClick() { + controller.showDonationPage(); + } +} diff --git a/src/main/java/edu/group5/app/view/MainView.java b/src/main/java/edu/group5/app/view/MainView.java index c2d7325..f664094 100644 --- a/src/main/java/edu/group5/app/view/MainView.java +++ b/src/main/java/edu/group5/app/view/MainView.java @@ -1,11 +1,9 @@ package edu.group5.app.view; -import edu.group5.app.control.BrowseCardController; -import edu.group5.app.control.BrowsePageController; -import edu.group5.app.control.HeaderController; -import edu.group5.app.control.HomePageController; +import edu.group5.app.control.*; import edu.group5.app.view.browsepage.BrowsePageView; import edu.group5.app.view.homepage.HomePageView; +import edu.group5.app.view.organizationpage.OrganizationPageView; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; @@ -34,5 +32,9 @@ public void showBrowsePage(BrowsePageController browsePageController, BrowseCard root.setCenter(new BrowsePageView(getScene(), browsePageController, browseCardController, headerController)); } + public void showOrganizationPage(OrganizationPageController organizationController, HeaderController headerController) { + root.setCenter(new OrganizationPageView(organizationController, headerController)); + } + public void showAboutUsPage() {} } diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java index 449ae84..02cc094 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java @@ -22,6 +22,10 @@ public BrowseCard(BrowseCardController browseCardController, String img, String checkMarkContainer() ); + setOnMouseClicked(e -> { + controller.handleCardClick(); + }); + setSpacing(20); setFillWidth(true); setAlignment(Pos.CENTER); diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java index 4cf1018..4cb54b2 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java @@ -4,6 +4,7 @@ import edu.group5.app.control.BrowsePageController; import edu.group5.app.control.HeaderController; import edu.group5.app.view.Header; +import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.ScrollPane; import javafx.scene.control.TextField; @@ -48,17 +49,18 @@ private HBox createSearchSection() { private GridPane createOrganizationSection() { GridPane grid = new GridPane(); + grid.setId("card-grid"); grid.setHgap(10); grid.setVgap(10); + grid.setMaxWidth(Double.MAX_VALUE - 50); int column = 0; int row = 0; for (int i = 0; i < 16; i++) { BrowseCard card = new BrowseCard(orgController, "/browsepage/images/children_of_shambala.png", "Shambala Foundation"); - card.setMaxWidth(Double.MAX_VALUE); - GridPane.setHgrow(card, Priority.ALWAYS); GridPane.setFillWidth(card, true); + grid.setAlignment(Pos.CENTER); grid.add(card, column, row); column++; diff --git a/src/main/java/edu/group5/app/view/organizationpage/OrganizationPageView.java b/src/main/java/edu/group5/app/view/organizationpage/OrganizationPageView.java new file mode 100644 index 0000000..4155ccd --- /dev/null +++ b/src/main/java/edu/group5/app/view/organizationpage/OrganizationPageView.java @@ -0,0 +1,94 @@ +package edu.group5.app.view.organizationpage; + +import edu.group5.app.control.HeaderController; +import edu.group5.app.control.OrganizationPageController; +import edu.group5.app.view.Header; +import javafx.geometry.Pos; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.scene.text.Text; + +public class OrganizationPageView extends BorderPane { + private final OrganizationPageController controller; + + public OrganizationPageView(OrganizationPageController controller, HeaderController headerController) { + this.controller = controller; + getStylesheets().add(getClass().getResource("/organizationpage/organizationpage.css").toExternalForm()); + Header headerView = new Header(headerController); + setTop(headerView); + setCenter(createBody()); + } + + private ScrollPane createBody() { + ScrollPane body = new ScrollPane(); + body.setFitToWidth(true); + body.setFitToHeight(true) + ; + VBox vBox = new VBox(); + vBox.setId("main-container"); + + vBox.getChildren().addAll( + createOrgSection() + ); + body.setContent(vBox); + return body; + } + + private HBox createOrgSection() { + HBox orgSection = new HBox(); + orgSection.setId("org-section"); + orgSection.setAlignment(Pos.CENTER); + orgSection.setSpacing(40); + + orgSection.getChildren().addAll(createImageContainer(), createOrgInfoSection()); + return orgSection; + } + + private StackPane createImageContainer() { + StackPane imageContainer = new StackPane(); + imageContainer.setId("imageContainer"); + imageContainer.setPrefHeight(120); + imageContainer.setPrefWidth(120); + imageContainer.setMaxWidth(Double.MAX_VALUE); + + ImageView logo = new ImageView( + new Image(getClass().getResource("/browsepage/images/children_of_shambala.png").toExternalForm()) + ); + + logo.setId("logo"); + logo.setSmooth(true); + logo.setPreserveRatio(true); + + imageContainer.getChildren().add(logo); + return imageContainer; + } + + private VBox createOrgInfoSection() { + VBox orgInfoSection = new VBox(); + orgInfoSection.setSpacing(50); + + VBox orgNameAndDescription = new VBox(); + + Label orgName = new Label("Shambala Foundation"); + orgName.setId("orgName"); + + Text description = new Text("Descriptive text"); + description.setId("description"); + + orgNameAndDescription.getChildren().addAll(orgName, description); + + Button donateBtn = new Button("Donate"); + donateBtn.setId("donate-button"); + donateBtn.setOnAction(e -> controller.handleDonateClick()); + + orgInfoSection.getChildren().addAll(orgNameAndDescription, donateBtn); + return orgInfoSection; + } +} diff --git a/src/main/resources/browsepage/browse_org.css b/src/main/resources/browsepage/browse_org.css index 22d6d14..96ce14e 100644 --- a/src/main/resources/browsepage/browse_org.css +++ b/src/main/resources/browsepage/browse_org.css @@ -8,8 +8,13 @@ -fx-background-radius: 1em; } +#mainContainer:hover { + -fx-cursor: hand; +} + #imageContainer {} + #logo {} #orgName { diff --git a/src/main/resources/browsepage/browsepage.css b/src/main/resources/browsepage/browsepage.css index c2dfef0..1dd8643 100644 --- a/src/main/resources/browsepage/browsepage.css +++ b/src/main/resources/browsepage/browsepage.css @@ -1,3 +1,6 @@ #body { -fx-padding: 20px; +} + +#card-grid { } \ No newline at end of file diff --git a/src/main/resources/organizationpage/organizationpage.css b/src/main/resources/organizationpage/organizationpage.css new file mode 100644 index 0000000..a7276b5 --- /dev/null +++ b/src/main/resources/organizationpage/organizationpage.css @@ -0,0 +1,31 @@ +#main-container { + -fx-padding: 50px +} + +#logo { + -fx-min-height: 50%; +} + +#orgName { + -fx-font-weight: bold; + -fx-font-size: 20pt; +} + +#description { + -fx-font-size: 10pt; +} + +#donate-button { + -fx-pref-height: 55px; + -fx-background-color: #e03030; + -fx-text-fill: white; + -fx-font-size: 22px; + -fx-font-weight: bold; + -fx-background-radius: 8; + -fx-cursor: hand; + -fx-padding: 0 40 0 40; +} + +#donate-button:hover { + -fx-background-color: #c02020; +} \ No newline at end of file