From 3eec99f515af9f8cb7af054a5439d4e7eaf92a5b Mon Sep 17 00:00:00 2001 From: Mostafa Sadidi Date: Fri, 9 May 2025 20:55:28 +0330 Subject: [PATCH 1/4] ClickCounter Done. --- .idea/.gitignore | 8 +++ .idea/JavaSwingSimpleExercise.iml | 9 +++ .idea/misc.xml | 6 ++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 ++ .../ClickCounterApp.class | Bin 0 -> 2542 bytes .../images/img-1-1.png | Bin 0 -> 8490 bytes .../images/img-1-2.png | Bin 0 -> 8182 bytes .../JavaSwingSimpleExercise/readme-part-1.md | 67 ++++++++++++++++++ part-1/ClickCounterApp.java | 37 ++++++++++ part-1/E1.java | 0 11 files changed, 141 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/JavaSwingSimpleExercise.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 out/production/JavaSwingSimpleExercise/ClickCounterApp.class create mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-1.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-2.png create mode 100644 out/production/JavaSwingSimpleExercise/readme-part-1.md create mode 100644 part-1/ClickCounterApp.java delete mode 100644 part-1/E1.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/JavaSwingSimpleExercise.iml b/.idea/JavaSwingSimpleExercise.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/JavaSwingSimpleExercise.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f03c948 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2d16929 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/out/production/JavaSwingSimpleExercise/ClickCounterApp.class b/out/production/JavaSwingSimpleExercise/ClickCounterApp.class new file mode 100644 index 0000000000000000000000000000000000000000..6f35e87fddf0a9396577d14f7ff8aae88e7a8653 GIT binary patch literal 2542 zcmcImX;TzO7=BugUB*Fn7rX$EAR3q$mz)~c9I#467g0bAn!{$dfsxsn&CDzwx$paX zKISi^N|zK?H@PS13|$MZh#(fsw#`kw%b_$9|>hlv)n3bgoj zS76W3aOsv@m3c?HOZn-#>&gX36%4c^l|tG?2MmE;EpjIx+_ot+qn}qp+p$Ai1p+&5 zchy@_B^fGTVDHd&_J-#SnCMJlmx(T91ae7>7sh>ARRZm2Y}XFoAhx05xenyeokEX^ z-Pj}0Rdnp~O3|ykbTeA33AB~~q49WHIb2uOthd=&n&i!> zW8HU6yodJ%4C>C=fz2M)mapsDzA12EBRkvWkdjqtN5kMog2avX;Ca!j&|p`|cGabN zbwT;FdQ7lsG*D+w`nLXVZnjE)iF2WQ8)GyTF55iJmZI9-?B@c_%c%G+D}T}RtBQ#} zlt^?E`8i#QOfQ?CAo^p_TT3(+;$U!Ob)g~$b&P`}%+6vwZMHOAG=qr3V72&VHE!$p zdbXfEp@|g8jCo!dgubjzs&Lt>1Q}$y+Oeu@;n2;NX}KsJXT}ayfs}k{;46Hc!Z*4tzZDpKf|3}0+^OS_Ncr{u zr=iJOvVtGYlqZ?o2#GU&!sXa3Ix+}UkiriFN1upkyNspqlfc2Ji*g{w>BTcFGn3=& z1K#92^kt&2bv^T=mDeTLR^Hqa3zRDJ>m*mfwPRf`f1vI6NVLMIK~3rAImUPCqLmfL`Paad)!x92B^tP9wKi~L(^oJ5 zw*q#N@Gj;t!vM1kD#xsLZ-kU43J*2PwctZOcfd!$HOIGm+zV0X?+g0AgYUR+@a=p2 Ih@Y|lUofqag8%>k literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-1-1.png b/out/production/JavaSwingSimpleExercise/images/img-1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..12b529a3dffb01208218da578545028fda386499 GIT binary patch literal 8490 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 new ClickCounterApp().setVisible(true)); +} +``` + +*Explanation:* Using `SwingUtilities.invokeLater` ensures thread safety by creating and showing the GUI on the Swing event thread. +--- +### output of the code: + +... +... diff --git a/part-1/ClickCounterApp.java b/part-1/ClickCounterApp.java new file mode 100644 index 0000000..65fb9b0 --- /dev/null +++ b/part-1/ClickCounterApp.java @@ -0,0 +1,37 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class ClickCounterApp extends JFrame implements ActionListener { + private JLabel counterLabel; // Displays the click count + private JButton clickButton; // Button to register clicks + private int count = 0; // Stores the current count + + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> { + JFrame frame = new ClickCounterApp(); + frame.setSize(300, 300); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + }); + } + public ClickCounterApp() { + setTitle("Click Counter"); + counterLabel = new JLabel("Clicks: 0", SwingConstants.CENTER); + clickButton = new JButton("Click Me"); + clickButton.addActionListener(this); + + setLayout(new BorderLayout()); + add(counterLabel, BorderLayout.CENTER); + add(clickButton, BorderLayout.SOUTH); + } + + @Override + public void actionPerformed(ActionEvent e) { + count++; // Increment the click counter + counterLabel.setText("Clicks: " + count); + } +} \ No newline at end of file diff --git a/part-1/E1.java b/part-1/E1.java deleted file mode 100644 index e69de29..0000000 From 811a9056501ff8dd6e0bee40e1ec70cf51b4c272 Mon Sep 17 00:00:00 2001 From: Mostafa Sadidi Date: Fri, 9 May 2025 21:32:30 +0330 Subject: [PATCH 2/4] GreetingForm Done. --- .../ClickCounterApp.class | Bin 2542 -> 0 bytes .../GreetingFormApp.class | Bin 0 -> 3079 bytes .../images/img-1-1.png | Bin 8490 -> 0 bytes .../images/img-1-2.png | Bin 8182 -> 0 bytes .../images/img-2-1.png | Bin 0 -> 10494 bytes .../images/img-2-2.png | Bin 0 -> 10864 bytes .../images/img-2-3.png | Bin 0 -> 10223 bytes .../JavaSwingSimpleExercise/readme-part-1.md | 67 --------------- .../JavaSwingSimpleExercise/readme-part-2.md | 78 ++++++++++++++++++ part-2/E2.java | 0 part-2/GreetingFormApp.java | 49 +++++++++++ 11 files changed, 127 insertions(+), 67 deletions(-) delete mode 100644 out/production/JavaSwingSimpleExercise/ClickCounterApp.class create mode 100644 out/production/JavaSwingSimpleExercise/GreetingFormApp.class delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-1.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-2.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-1.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-2.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-3.png delete mode 100644 out/production/JavaSwingSimpleExercise/readme-part-1.md create mode 100644 out/production/JavaSwingSimpleExercise/readme-part-2.md delete mode 100644 part-2/E2.java create mode 100644 part-2/GreetingFormApp.java diff --git a/out/production/JavaSwingSimpleExercise/ClickCounterApp.class b/out/production/JavaSwingSimpleExercise/ClickCounterApp.class deleted file mode 100644 index 6f35e87fddf0a9396577d14f7ff8aae88e7a8653..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2542 zcmcImX;TzO7=BugUB*Fn7rX$EAR3q$mz)~c9I#467g0bAn!{$dfsxsn&CDzwx$paX zKISi^N|zK?H@PS13|$MZh#(fsw#`kw%b_$9|>hlv)n3bgoj zS76W3aOsv@m3c?HOZn-#>&gX36%4c^l|tG?2MmE;EpjIx+_ot+qn}qp+p$Ai1p+&5 zchy@_B^fGTVDHd&_J-#SnCMJlmx(T91ae7>7sh>ARRZm2Y}XFoAhx05xenyeokEX^ z-Pj}0Rdnp~O3|ykbTeA33AB~~q49WHIb2uOthd=&n&i!> zW8HU6yodJ%4C>C=fz2M)mapsDzA12EBRkvWkdjqtN5kMog2avX;Ca!j&|p`|cGabN zbwT;FdQ7lsG*D+w`nLXVZnjE)iF2WQ8)GyTF55iJmZI9-?B@c_%c%G+D}T}RtBQ#} zlt^?E`8i#QOfQ?CAo^p_TT3(+;$U!Ob)g~$b&P`}%+6vwZMHOAG=qr3V72&VHE!$p zdbXfEp@|g8jCo!dgubjzs&Lt>1Q}$y+Oeu@;n2;NX}KsJXT}ayfs}k{;46Hc!Z*4tzZDpKf|3}0+^OS_Ncr{u zr=iJOvVtGYlqZ?o2#GU&!sXa3Ix+}UkiriFN1upkyNspqlfc2Ji*g{w>BTcFGn3=& z1K#92^kt&2bv^T=mDeTLR^Hqa3zRDJ>m*mfwPRf`f1vI6NVLMIK~3rAImUPCqLmfL`Paad)!x92B^tP9wKi~L(^oJ5 zw*q#N@Gj;t!vM1kD#xsLZ-kU43J*2PwctZOcfd!$HOIGm+zV0X?+g0AgYUR+@a=p2 Ih@Y|lUofqag8%>k diff --git a/out/production/JavaSwingSimpleExercise/GreetingFormApp.class b/out/production/JavaSwingSimpleExercise/GreetingFormApp.class new file mode 100644 index 0000000000000000000000000000000000000000..ae4692545f5318b390b6a834f549d029b8f5b546 GIT binary patch literal 3079 zcmcIm`BM}}6#iP!U6vs%t0EeMD?tM*f!v4Wl8tyRN`zp*95!qNBeOG`nOW3anmgvc zWA6Jts!|n~lvd>rNag>?Kaoo1>zM^+flB3xSEypd@o4^{xVu%~4LqcGa7CG7DoiHghq@Q>D zre*r3@&xKld)ApzIq54`U_-}B`Z`AvFwhXgB?cOi6i7ui?(cVHK?$t6#k5WTHe&1O z9El?((6Gl<%BQ__zvC7XScmm7G#l7}7J>!6z+Rsp!*sBeM%hZ15Qr>cMTv>7S z2&8x0q(6PiDYrdg1v(=~76C*kKQw+^O%Nv)46`b-1g%`1o+Ad1;2we46!V;UOX92Q zw-T!a#&9%-dkx&DrIUeIL4k(?%x@M1%V`V`7&rz=ji$G|Q1nj)wKo>W1XT}ON_r|C zSWn9!t-3YQ%D|+qznHEzqDVnt+JK4UEdPR>QB0}{=^ruu>4o$X*k18Ef@3}s(Irh3 z$u>|hV8aQm44DtHq*r(BV;1VY2MxGj>shY@;m{WI>aemn&Z=RanQubXAr8-$49w~h zZ{gWH)ub$0e%5k4b*QM^K#?|Z(!eP^B#@xci0PT^iMlC_=??OUz-0@0vQpksvLMZ% zxgL!~b)gAyKkMYFurX)a>R_obuH0eWcA4th8*4-4jcf3ZPOftXUO_UB_gKe!m1Q|yX|a`?A0+T0K8oRE z1E1hicBe(?;RV-|3vg1SoFr?G%VMc7MBo01rg-I02w*SUv8BBBoa4-tioMHeiL6u| z96nW4QStx28Jhg}v(dZ1qB$!qYsmCfFDdyvfiLi73}5Nu{#u}Y86{y(hxOh+Ps+Lf zpN2{;MJr;yX)b4S!6jZ>`)po4Sxb7J@?!W-VB0dER*F~*KM1t`yC^$#7+!2;ni*`0 z5A#cFmHvLvpI!Q*4@Taf9BcVy^(Y>r)M>um$Wd^tyP$_(vHIsg^bDT~9t9c@r_#qc z(~2pGC-5XkRxpx$Y9)VSbs&2>Gl%+2s;P{%nTyysnrxiIrRUMgm$uPV`y95PM+aZJ zMpNB2bGYU_uFw3!l`?L=h+9YJaC>e?uzSZG`pU>2*}?7B`ALVK@bn%E?ki(|W=HB^ z8G{+hT%Q`^Y!UiSTtZmQ^mPN>XyJ1s+OY}OU^8~26@A!(L8LKChQ@I@3f%RvjjU`B zTx|~B!Bcpedir?1KZ9rKtiW?PTXFgdDn)Z^7a|`geXrs*%GKa?K3CxlyvZ@e+52333vcuP8EwCdZ@8Y|>|1<~AF=Tt DdVMdB literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-1-1.png b/out/production/JavaSwingSimpleExercise/images/img-1-1.png deleted file mode 100644 index 12b529a3dffb01208218da578545028fda386499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8490 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 TnqinbivX#Q^5P{Q^uPWOb|UxK literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-2-2.png b/out/production/JavaSwingSimpleExercise/images/img-2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f28a16e34557179ba836e49848254157e477f156 GIT binary patch literal 10864 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 P!%&h}ldE`T{_%eS=TI>l literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/readme-part-1.md b/out/production/JavaSwingSimpleExercise/readme-part-1.md deleted file mode 100644 index f7292df..0000000 --- a/out/production/JavaSwingSimpleExercise/readme-part-1.md +++ /dev/null @@ -1,67 +0,0 @@ -## Exercise 1: Click Counter Application - -### Description & Goal - -Create a simple GUI application that tracks how many times a user clicks a button and displays the count in real time. This exercise reinforces the basics of Swing components and event handling. - -### Code Breakdown - -**Part 1: Field Declarations** -Define the UI components and a counter variable. - -```java -public class ClickCounterApp extends JFrame implements ActionListener { - private JLabel counterLabel; // Displays the click count - private JButton clickButton; // Button to register clicks - private int count = 0; // Stores the current count -} -``` - -*Explanation:* We declare a `JLabel` for showing the count, a `JButton` for clicks, and an integer `count` initialized to 0. - -**Part 2: Constructor Setup** -Initialize and arrange components in the window. - -```java -public ClickCounterApp() { - setTitle("Click Counter"); - counterLabel = new JLabel("Clicks: 0", SwingConstants.CENTER); - clickButton = new JButton("Click Me"); - clickButton.addActionListener(this); - - setLayout(new BorderLayout()); - add(counterLabel, BorderLayout.CENTER); - add(clickButton, BorderLayout.SOUTH); -} -``` - -*Explanation:* In the constructor we set the title, create the label and button, attach an `ActionListener` to the button, choose a `BorderLayout`, and place the label at center and button at bottom. - -**Part 3: Event Handling** -Update count and label text when the button is clicked. - -```java -@Override -public void actionPerformed(ActionEvent e) { - count++; // Increment the click counter - counterLabel.setText("Clicks: " + count); -} -``` - -*Explanation:* The `actionPerformed` method is called on each click. We increase `count` by one and refresh the label text to reflect the new value. - -**Part 4: Application Entry Point** -Launch the GUI on the Event Dispatch Thread. - -```java -public static void main(String[] args) { - SwingUtilities.invokeLater(() -> new ClickCounterApp().setVisible(true)); -} -``` - -*Explanation:* Using `SwingUtilities.invokeLater` ensures thread safety by creating and showing the GUI on the Swing event thread. ---- -### output of the code: - -... -... diff --git a/out/production/JavaSwingSimpleExercise/readme-part-2.md b/out/production/JavaSwingSimpleExercise/readme-part-2.md new file mode 100644 index 0000000..4aaea9a --- /dev/null +++ b/out/production/JavaSwingSimpleExercise/readme-part-2.md @@ -0,0 +1,78 @@ +## Exercise 2: Greeting Form Application + +### Description & Goal + +Create a GUI form where the user enters their name into a text field and clicks a button to display a personalized greeting. This exercise practices input handling, text fields, and dynamic label updates. + +### Code Breakdown + +**Part 1: Field Declarations** +Define the input, button, and label components. + +```java +public class GreetingFormApp extends JFrame implements ActionListener { + private JTextField nameField; // Field for user input + private JButton greetButton; // Button to trigger greeting + private JLabel messageLabel; // Label to display greeting +} +``` + +*Explanation:* We declare a `JTextField` for entering the name, a `JButton` for submitting, and a `JLabel` for showing messages. + +**Part 2: Constructor Setup** +Initialize components and arrange them using a simple layout. + +```java +public GreetingFormApp() { + setTitle("Greeting Form"); + nameField = new JTextField(15); + greetButton = new JButton("Greet"); + messageLabel = new JLabel("Enter your name and press Greet.", SwingConstants.CENTER); + + greetButton.addActionListener(this); + + JPanel inputPanel = new JPanel(); + inputPanel.add(new JLabel("Name:")); + inputPanel.add(nameField); + inputPanel.add(greetButton); + + setLayout(new BorderLayout()); + add(inputPanel, BorderLayout.NORTH); + add(messageLabel, BorderLayout.CENTER); +} +``` + +*Explanation:* In the constructor, we set the title, instantiate the text field, button, and label, attach the listener, group the input components in a `JPanel`, and use `BorderLayout` to place the input panel at the top and the message label in the center. + +**Part 3: Event Handling** +Read the text field and update the label when the button is clicked. + +```java +@Override +public void actionPerformed(ActionEvent e) { + String name = nameField.getText().trim(); + if (name.isEmpty()) { + messageLabel.setText("Please enter a name."); + } else { + messageLabel.setText("Hello, " + name + "!"); + } +} +``` + +*Explanation:* On button click, we get the trimmed input. If empty, prompt the user; otherwise, display "Hello, {name}!". + +**Part 4: Application Entry Point** +Start the form on the Event Dispatch Thread. + +```java +public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new GreetingFormApp().setVisible(true)); +} +``` + +*Explanation:* We use `invokeLater` to ensure the GUI is created and manipulated on the Event Dispatch Thread, then display the frame. +--- +### output of the code: +... +... +... diff --git a/part-2/E2.java b/part-2/E2.java deleted file mode 100644 index e69de29..0000000 diff --git a/part-2/GreetingFormApp.java b/part-2/GreetingFormApp.java new file mode 100644 index 0000000..453e583 --- /dev/null +++ b/part-2/GreetingFormApp.java @@ -0,0 +1,49 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class GreetingFormApp extends JFrame implements ActionListener { + private JTextField nameField; // Field for user input + private JButton greetButton; // Button to trigger greeting + private JLabel messageLabel; // Label to display greeting + + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> { + JFrame frame = new GreetingFormApp(); + frame.setSize(300, 300); + frame.setLocationRelativeTo(null); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setVisible(true); + }); + } + + public GreetingFormApp() { + setTitle("Greeting Form"); + nameField = new JTextField(15); + greetButton = new JButton("Greet"); + messageLabel = new JLabel("Enter your name and press Greet.", SwingConstants.CENTER); + + greetButton.addActionListener(this); + + JPanel inputPanel = new JPanel(); + inputPanel.add(new JLabel("Name:")); + inputPanel.add(nameField); + inputPanel.add(greetButton); + + setLayout(new BorderLayout()); + add(inputPanel, BorderLayout.NORTH); + add(messageLabel, BorderLayout.CENTER); + } + + @Override + public void actionPerformed(ActionEvent e) { + String name = nameField.getText().trim(); + if (name.isEmpty()) { + messageLabel.setText("Please enter a name."); + } else { + messageLabel.setText("Hello, " + name + "!"); + } + } +} \ No newline at end of file From f1c614fa1cc50e0192f8ae3b123928fb0085cc7a Mon Sep 17 00:00:00 2001 From: Mostafa Sadidi Date: Fri, 9 May 2025 21:39:43 +0330 Subject: [PATCH 3/4] ThemeColorSelector done. --- .../GreetingFormApp.class | Bin 3079 -> 0 bytes .../ThemeColorSelectorApp.class | Bin 0 -> 2956 bytes .../images/img-2-1.png | Bin 10494 -> 0 bytes .../images/img-2-2.png | Bin 10864 -> 0 bytes .../images/img-2-3.png | Bin 10223 -> 0 bytes .../images/img-3-1.png | Bin 0 -> 10191 bytes .../images/img-3-2.png | Bin 0 -> 10296 bytes .../images/img-3-3.png | Bin 0 -> 10413 bytes .../images/img-3-4.png | Bin 0 -> 10074 bytes .../JavaSwingSimpleExercise/readme-part-2.md | 78 --------------- .../JavaSwingSimpleExercise/readme-part-3.md | 89 ++++++++++++++++++ part-3/E3.java | 0 part-3/ThemeColorSelectorApp.java | 57 +++++++++++ 13 files changed, 146 insertions(+), 78 deletions(-) delete mode 100644 out/production/JavaSwingSimpleExercise/GreetingFormApp.class create mode 100644 out/production/JavaSwingSimpleExercise/ThemeColorSelectorApp.class delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-1.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-2.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-3.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-1.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-2.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-3.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-4.png delete mode 100644 out/production/JavaSwingSimpleExercise/readme-part-2.md create mode 100644 out/production/JavaSwingSimpleExercise/readme-part-3.md delete mode 100644 part-3/E3.java create mode 100644 part-3/ThemeColorSelectorApp.java diff --git a/out/production/JavaSwingSimpleExercise/GreetingFormApp.class b/out/production/JavaSwingSimpleExercise/GreetingFormApp.class deleted file mode 100644 index ae4692545f5318b390b6a834f549d029b8f5b546..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3079 zcmcIm`BM}}6#iP!U6vs%t0EeMD?tM*f!v4Wl8tyRN`zp*95!qNBeOG`nOW3anmgvc zWA6Jts!|n~lvd>rNag>?Kaoo1>zM^+flB3xSEypd@o4^{xVu%~4LqcGa7CG7DoiHghq@Q>D zre*r3@&xKld)ApzIq54`U_-}B`Z`AvFwhXgB?cOi6i7ui?(cVHK?$t6#k5WTHe&1O z9El?((6Gl<%BQ__zvC7XScmm7G#l7}7J>!6z+Rsp!*sBeM%hZ15Qr>cMTv>7S z2&8x0q(6PiDYrdg1v(=~76C*kKQw+^O%Nv)46`b-1g%`1o+Ad1;2we46!V;UOX92Q zw-T!a#&9%-dkx&DrIUeIL4k(?%x@M1%V`V`7&rz=ji$G|Q1nj)wKo>W1XT}ON_r|C zSWn9!t-3YQ%D|+qznHEzqDVnt+JK4UEdPR>QB0}{=^ruu>4o$X*k18Ef@3}s(Irh3 z$u>|hV8aQm44DtHq*r(BV;1VY2MxGj>shY@;m{WI>aemn&Z=RanQubXAr8-$49w~h zZ{gWH)ub$0e%5k4b*QM^K#?|Z(!eP^B#@xci0PT^iMlC_=??OUz-0@0vQpksvLMZ% zxgL!~b)gAyKkMYFurX)a>R_obuH0eWcA4th8*4-4jcf3ZPOftXUO_UB_gKe!m1Q|yX|a`?A0+T0K8oRE z1E1hicBe(?;RV-|3vg1SoFr?G%VMc7MBo01rg-I02w*SUv8BBBoa4-tioMHeiL6u| z96nW4QStx28Jhg}v(dZ1qB$!qYsmCfFDdyvfiLi73}5Nu{#u}Y86{y(hxOh+Ps+Lf zpN2{;MJr;yX)b4S!6jZ>`)po4Sxb7J@?!W-VB0dER*F~*KM1t`yC^$#7+!2;ni*`0 z5A#cFmHvLvpI!Q*4@Taf9BcVy^(Y>r)M>um$Wd^tyP$_(vHIsg^bDT~9t9c@r_#qc z(~2pGC-5XkRxpx$Y9)VSbs&2>Gl%+2s;P{%nTyysnrxiIrRUMgm$uPV`y95PM+aZJ zMpNB2bGYU_uFw3!l`?L=h+9YJaC>e?uzSZG`pU>2*}?7B`ALVK@bn%E?ki(|W=HB^ z8G{+hT%Q`^Y!UiSTtZmQ^mPN>XyJ1s+OY}OU^8~26@A!(L8LKChQ@I@3f%RvjjU`B zTx|~B!Bcpedir?1KZ9rKtiW?PTXFgdDn)Z^7a|`geXrs*%GKa?K3CxlyvZ@e+52333vcuP8EwCdZ@8Y|>|1<~AF=Tt DdVMdB diff --git a/out/production/JavaSwingSimpleExercise/ThemeColorSelectorApp.class b/out/production/JavaSwingSimpleExercise/ThemeColorSelectorApp.class new file mode 100644 index 0000000000000000000000000000000000000000..27b77e3513ff9cb2f8f530e05c21412eefe1dcd3 GIT binary patch literal 2956 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 TnqinbivX#Q^5P{Q^uPWOb|UxK diff --git a/out/production/JavaSwingSimpleExercise/images/img-2-2.png b/out/production/JavaSwingSimpleExercise/images/img-2-2.png deleted file mode 100644 index f28a16e34557179ba836e49848254157e477f156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10864 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 P!%&h}ldE`T{_%eS=TI>l diff --git a/out/production/JavaSwingSimpleExercise/images/img-3-1.png b/out/production/JavaSwingSimpleExercise/images/img-3-1.png new file mode 100644 index 0000000000000000000000000000000000000000..489de5fbcb2318774a012063e911e3904e77c1a4 GIT binary patch literal 10191 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-3-4.png b/out/production/JavaSwingSimpleExercise/images/img-3-4.png new file mode 100644 index 0000000000000000000000000000000000000000..969a1789d1657a61f413267e6aa17d71f6e0b869 GIT binary patch literal 10074 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 new GreetingFormApp().setVisible(true)); -} -``` - -*Explanation:* We use `invokeLater` to ensure the GUI is created and manipulated on the Event Dispatch Thread, then display the frame. ---- -### output of the code: -... -... -... diff --git a/out/production/JavaSwingSimpleExercise/readme-part-3.md b/out/production/JavaSwingSimpleExercise/readme-part-3.md new file mode 100644 index 0000000..5491dba --- /dev/null +++ b/out/production/JavaSwingSimpleExercise/readme-part-3.md @@ -0,0 +1,89 @@ +## Exercise 3: Theme Color Selector Application + +### Description & Goal + +Create a UI with several color buttons ("Red", "Green", "Blue", ...) that, when clicked, change the background color of the main panel. This exercise reinforces component integration, action commands, and background styling. + +### Code Breakdown + +**Part 1: Field Declarations** +Define the main panel and color buttons. + +```java +public class ThemeColorSelectorApp extends JFrame implements ActionListener { + private JPanel mainPanel; // The panel whose background will change + private JButton redButton; // Button to select red theme + private JButton greenButton; // Button to select green theme + private JButton blueButton; // Button to select blue theme +} +``` + +*Explanation:* We declare a `JPanel` to hold the background, and three `JButton` instances for the color options. + +**Part 2: Constructor Setup** +Initialize components, set action commands, and arrange using `BorderLayout`. + +```java +public ThemeColorSelectorApp() { + setTitle("Theme Color Selector"); + + mainPanel = new JPanel(); + + redButton = new JButton("Red"); + greenButton = new JButton("Green"); + blueButton = new JButton("Blue"); + + redButton.setActionCommand("RED"); + greenButton.setActionCommand("GREEN"); + blueButton.setActionCommand("BLUE"); + + redButton.addActionListener(this); + greenButton.addActionListener(this); + blueButton.addActionListener(this); + + JPanel buttonPanel = new JPanel(); + buttonPanel.add(redButton); + buttonPanel.add(greenButton); + buttonPanel.add(blueButton); + + setLayout(new BorderLayout()); + add(buttonPanel, BorderLayout.NORTH); + add(mainPanel, BorderLayout.CENTER); +} +``` + +*Explanation:* In the constructor, we instantiate the panel and buttons, assign action commands to differentiate them in the listener, attach the same `ActionListener`, and place the buttons at the top with the main panel filling the center. + +**Part 3: Event Handling** +Change the `mainPanel` background based on the button clicked. + +```java +@Override +public void actionPerformed(ActionEvent e) { + switch (e.getActionCommand()) { + case "RED": mainPanel.setBackground(Color.RED); break; + case "GREEN": mainPanel.setBackground(Color.GREEN); break; + case "BLUE": mainPanel.setBackground(Color.BLUE); break; + } +} +``` + +*Explanation:* We check the action command of the event and apply the corresponding `Color` to the panel's background. + +**Part 4: Application Entry Point** +Launch the application safely on the Swing thread. + +```java +public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new ThemeColorSelectorApp().setVisible(true)); +} +``` + +*Explanation:* We use `invokeLater` to ensure the GUI is created and manipulated on the Event Dispatch Thread, then display the frame. +--- +### output of the code: +... +... +... +... + diff --git a/part-3/E3.java b/part-3/E3.java deleted file mode 100644 index e69de29..0000000 diff --git a/part-3/ThemeColorSelectorApp.java b/part-3/ThemeColorSelectorApp.java new file mode 100644 index 0000000..3360f2b --- /dev/null +++ b/part-3/ThemeColorSelectorApp.java @@ -0,0 +1,57 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class ThemeColorSelectorApp extends JFrame implements ActionListener { + private JPanel mainPanel; // The panel whose background will change + private JButton redButton; // Button to select red theme + private JButton greenButton; // Button to select green theme + private JButton blueButton; // Button to select blue theme + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> { + JFrame frame = new ThemeColorSelectorApp(); + frame.setSize(300, 300); + frame.setLocationRelativeTo(null); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setVisible(true); + }); + } + + public ThemeColorSelectorApp() { + setTitle("Theme Color Selector"); + + mainPanel = new JPanel(); + + redButton = new JButton("Red"); + greenButton = new JButton("Green"); + blueButton = new JButton("Blue"); + + redButton.setActionCommand("RED"); + greenButton.setActionCommand("GREEN"); + blueButton.setActionCommand("BLUE"); + + redButton.addActionListener(this); + greenButton.addActionListener(this); + blueButton.addActionListener(this); + + JPanel buttonPanel = new JPanel(); + buttonPanel.add(redButton); + buttonPanel.add(greenButton); + buttonPanel.add(blueButton); + + setLayout(new BorderLayout()); + add(buttonPanel, BorderLayout.NORTH); + add(mainPanel, BorderLayout.CENTER); + } + + @Override + public void actionPerformed(ActionEvent e) { + switch (e.getActionCommand()) { + case "RED": mainPanel.setBackground(Color.RED); break; + case "GREEN": mainPanel.setBackground(Color.GREEN); break; + case "BLUE": mainPanel.setBackground(Color.BLUE); break; + } + } +} \ No newline at end of file From e93564f5c45e3f3b267a1b626dd0720b38cc9be2 Mon Sep 17 00:00:00 2001 From: Mostafa Sadidi Date: Fri, 9 May 2025 21:46:14 +0330 Subject: [PATCH 4/4] RegistrationForm done. --- .../RegistrationFormApp.class | Bin 0 -> 4956 bytes .../ThemeColorSelectorApp.class | Bin 2956 -> 0 bytes .../images/img-3-1.png | Bin 10191 -> 0 bytes .../images/img-3-2.png | Bin 10296 -> 0 bytes .../images/img-3-3.png | Bin 10413 -> 0 bytes .../images/img-3-4.png | Bin 10074 -> 0 bytes .../images/img-4-1.png | Bin 0 -> 17857 bytes .../images/img-4-2.png | Bin 0 -> 20406 bytes .../images/img-4-3.png | Bin 0 -> 34017 bytes .../JavaSwingSimpleExercise/readme-part-3.md | 89 ------------ .../JavaSwingSimpleExercise/readme-part-4.md | 132 ++++++++++++++++++ part-4/E4.java | 0 part-4/RegistrationFormApp.java | 102 ++++++++++++++ 13 files changed, 234 insertions(+), 89 deletions(-) create mode 100644 out/production/JavaSwingSimpleExercise/RegistrationFormApp.class delete mode 100644 out/production/JavaSwingSimpleExercise/ThemeColorSelectorApp.class delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-1.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-2.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-3.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-3-4.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-4-1.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-4-2.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-4-3.png delete mode 100644 out/production/JavaSwingSimpleExercise/readme-part-3.md create mode 100644 out/production/JavaSwingSimpleExercise/readme-part-4.md delete mode 100644 part-4/E4.java create mode 100644 part-4/RegistrationFormApp.java diff --git a/out/production/JavaSwingSimpleExercise/RegistrationFormApp.class b/out/production/JavaSwingSimpleExercise/RegistrationFormApp.class new file mode 100644 index 0000000000000000000000000000000000000000..f3c0363bfb8ff34bc4f971fc5d59d71ed91e573f GIT binary patch literal 4956 zcmcIod3+pI9sj<~W_P-skaU|u(n1?+Xmhj#ISM2#(56kBut{svCQVC`+1*JpWHYnw zPTB@MD2gJAq5@L!Kt<|_qGT5v0q+CxzV91vQ3UZS_yCQ0J1MJ^gNuws%NtYOz$uGMp|DC3C-ZHF+zWy1SbPqF64l zENI`LWv88kosOM%4cpC2;RYSg!AgNT3U4-tjfsrgnQ`*w_N?jIDG+X=GRfPh<4mlg zDdbH!DRqpUW`^SdbC)ygGUK4z*6ECA9ow{B8W}~?iH_P~*k&e*76wj5O^R&IS?Nv2 zNWz$OCfpdBQ5C~#td)*FiwE(~FF8GyUc)v<%$(ZbZ2zQf0Y&PZIm1#XZ9~-p9^qUa z=iz(?W+a&sIKvBZd6|wVE)b}mF|XU^vFWpQxJa7RPKVRY($NdhhV?o&fDw;aij5JU z)$K`kNVZFLY{Vw|blA#d1VpzaZq~6y5-UgOfkTqARmZj&%48HhC;Bg8B+ZP51cmyT za_up6qfeSuCw;a<$Mdn1r!>-Of#!hcX2TN5?(NB|%#;_XU4B4HHPW-oJmhv+W+oj& zKL+FuE2SUz=orFYy1+f;N&}ccO5uFD4h@&nEnCJ7E7LATuh8)VDXLLaQ8gF>3w9X! z{6Qy|ZjXYInNz4er8VD>BwBNOPwNGIp8cWR$W8 zbsUniS}y4kqqv$C6Wra~cWcg>$i^@!vwspVmXUmkzzQ#hCHHPjN*GDGo`}MM)n2(A zmIBuaw3H3HkC8IrXEQ;=%LQWHHet`qyLtNM6|C`~Wj&pvW@>Dcb4bGtbV?6FG=}Rv zr@UInYj6|Kno3GK&otL5B~g0hb>!MH>5e+K^vLUVyg>?Tsia5La0^qmv$a*O-lpSC zaCY_u~W1 zxDmoQ3rV1MPMh*!Tqf8(IzEICGY(e1-^{QaO;#@3$6gH|VT$jz^I0=x4O?bf!+ipf z{=X*mA zItP2re4edfvt?wQ5rOrA5Y47}z(ybN0uj(md;1z&iOfXReaa;TIf;MjnzC>HuFV5n?{v~sSe>wJvu|QNY36px3k-2z zcG}E3j`psv~$pUZ$SZ z@ki8Xc#4LL9ZE+}+Zf+wvAaP~|1-Sl z3K10{T~vrLA#3))-W8V@D0y5OWehW3PHvK69S_bP36{MtTv19s+m( z+EsGO?f-u__{bBi_?p$UYpE(R8$F^Iqyv6A{G_Z0?SX%%9QlN z%Ws2PVxPcQ*>FPg$|pa(UaI{mS$bsF76@ym+nm6QUu%ONZorqMrCQ(MIDDGauf zIv8LmX&|GoVc*F$?3Wt$m(f6*d<|EY)sR#+q^Dp?4Q3e)kr@qESq)=D@$n*@DP(yh zPFyuPFpWt%>zdv*RGBT{MRGjAQ98AVm-emo=+_R)7cN{o*ec&jE-HB-Iu}n_q>!dQ)K(1aWKU3&}G;4X4a;VeABo9)9mo4I^09_6>`Q#c>b zV4cwU@ma@@%qDb*i?Cj7#0IgCADDSuB5uN^;x_&pQ6k3ss>z zbQ%(&)#weKjlR$ZY!7Y0ju5{GLxa4M%KACas}Xz;-{)*?s1-lJ57{wNcoILtj}a2r z@c9$cDyY-KPx%&Rh5Zaa_v%cnpoR!#ucLPc3wW=rf&Co&I5HwORK9QXx($+Ky=8o$D? zi8nR;)O(a~71Xl>zu{Y$+7kFJ-zxDt?z9Y%<5&^J@A-GiMm~X;j4|lCI7QT; F{=eIgM`Qp1 literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/ThemeColorSelectorApp.class b/out/production/JavaSwingSimpleExercise/ThemeColorSelectorApp.class deleted file mode 100644 index 27b77e3513ff9cb2f8f530e05c21412eefe1dcd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2956 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 z 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 z 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 diff --git a/out/production/JavaSwingSimpleExercise/images/img-3-4.png b/out/production/JavaSwingSimpleExercise/images/img-3-4.png deleted file mode 100644 index 969a1789d1657a61f413267e6aa17d71f6e0b869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10074 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 literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-4-3.png b/out/production/JavaSwingSimpleExercise/images/img-4-3.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdaa57f2ae867d9bb433a6185bcd1a9f9b4f5fe GIT binary patch literal 34017 zcmbrlbySqm-!F;@ih?vqi69+PLxX^nbO z@ps>K&$;ipYn`>uA0y5)d+%rOZ^vhcs;S65ef<0}78cf11^KrcSXg%*u(0kl;XDMM zNHfQB1Ap$gXvj%nl?+mC0blN0NGeNWVU3CzCUu5|KNg!h1Z7p-05=2H^ssV za94OMspV<7hxSRQmicxY-EyhKDb1;W*HX${isya=l$5UiE(PD+uF!nu5Mwp1)(G-B zbaDMQ=ZwL{6Z%cO#R-G)p?yN>PE!NZzpZ{d9I0Z?yhJ1q8o$q&@}!#Hy|Wfaj#H<6 zeh}?am^XN(b!vAxXKpy;)kr&kTH^6u=X|RKs{H<3Xpki@eTD8$MshwmUBELb9F`@) zDA&Na*r*qxL&uT81G<2SNQQdWI8Q|l?tddfWvPlum={*G-U7cplj@Wu-ZLX{FnaI^ z^G)6hXVggckW}mQzo`kdX*4dYh}`Pm@6-nDh%l>7%O7c5e%(ZH5jv=Mj73oJzJ^@7 z@_|5^KYrYK`t&JJz&MV&geEYODBe0eF0`||8%I`F*75I>WaG)GqUT`;nOO)ymS?zg zJY3j~RYiDISB#tLar)2YD`5$x&A-Yr@+tw zL(nbGR@Md4A!!p6dKC$@YpTpYUiJQN4a6Opo+iH_v7f9_78`1_%KH{1a?nV`l;N4# z&$+TDEm!7t?lO(;f(UwEvOJ0VtbtU2Sa#2ge6(Ww7S8amMt2p{o z9HA~$*pZryCX0$(ecS&I!N|a9pv_}fh%NICWN-sdewy$LKbSx#Z-t81V|V@kY7} z9x2C1hKlW=hJ$9xe_z>kUsQxmmz!YIc&!pN0)i3$p&(N=t@X9r>}!|x{waiCVkY)Jw#50ja=0-+DEdBlAFW9(-?MS=z(!C$dnPJl>5W< zWN+z@|3ydAH^B}5Gk=eRrt_6(*fqV1*y;Go+YB+Ezr_v^TtGTG31Zil7JLq5U@!?9 zpIz=nLqN>q+#>@sGH9-s@nIOrFw^eH4+H@cSRg6^@YZoX)naA0VyF}NsTc$ZmFU^D ziQvx93R4odwv(-~!+7O1$KC!^!Q}uVQ;^y-dx@FKM~Z_YL(k($Jr=x}GGI4e5*!_R zJ(X63c(jA6f$v1TPnhuzrk|WA-+qb36GY+1W?c~AfL0{;gPzJ7JvL6cp_07NTxK9QCAc-4}#3zLG<<-`0ZUxlqZ{L zSFWw8X*-;uT(Hg|zkU|D;crB4pt$Mj>1EcUs0wHgb9pTWsrtW()X1}7 zOj)*g*`wNzME3GFvnO5AqF-FVytMI5s+=@#BEIDNibHpYMDJ{%sQ;=o;4D1iaKz=} zt}VeO&WJn~#Sg}#Zp{VbFAbE!s^$WQk~s8U+s#(SZS?>OP5{^|LG;NO+G-5o4eXt! z3VP2cW{6L$>O@Yp%gLrXu(hdZ*u`>iY~Nbg z5iRt>=z0c@rudZda-q!V9*y@Vodoo7rK9$I!Kd71LxoDn`F^z6S<2$VQ%cY$K#?y1 zT@1gufx-~Z^&Y^$n`))gZcx5%QLrH83Xon#IYUcPLc!c1I-N-1xN zo~#tt)R2Xfav!y4QLtbb$+ch}-zL6<6?dT=NhRUSm&Ba=B=l zj;qC6XqKb@4{E(?+dlv$Mbdrt>r#YV7%`Lu&fK_X=g>BqqsR@|X4~1y9x~x*(IXt_ z?bTxPs%nPl44K0vhz3K^Emc@6W-)fd#%Wly{Ya(^h9`hF$@p$c(;gujAXo09sMUDg zT1Pt0x>Z7eDP+JqzifEb?*8g4^E@>Er*00gD?Rp)mE9ks=Y|#*4ExiCh;;Ow9*}Yw zMgYWqh(@DtpasbDQAIA4-F%%3ll%T$&&E0q9n!B9vS;IYeb_~>*A(_OlzHLB{kf9m zf0^OVA`skwf_#7BJt%stBvG9E-eZ665pjEBKmH}l zuY1^dODQH%hhx?-zZ8BO?GY&F$IATtxq`fmFn?_P%dOYr$G(@mjsR;}XSo8Q*Xx7d z!pRIhe=x(JNo^9<302k!m}}t^nMg^Eqgexxs9yhY5Znqob;d z4?Rv>B<}eBBDYnIi@mbCdIhxs?*bI_x)Ipjia-lWdBolIi|5ksJAC~7C@U;WTU+*b zJB?>mrKgA{iy@j+ySHRMVH|qZ7kgU=2VGz8VVi~|0#lzamZkFBkQzekF0N1~NCCjy z>mo3|uQ2c?B5jMJ_TvkZL-+g_3kf)VFrD<^54?Fse+xGLu2x+A-Cam7J5DA0+ttLi zeBO}pC)2C+cbXx>Pl-|U608GCw5RegLj0!-Q7LMZLVjfHs zl3LcCOk~T&t(B(Lj#zHhD%hzP^u2hEMOYkMqRbEwUdi2c>_+5b+**duzR*_Z{(J+s%_RF)r&+Q=5bu!a*zKTgK1s z_69A3G6Lep=Xnxvz|kO?X#t{YaLF&{=F8mCVOTf;>x5vu$&w(R{#3_VUPi|h^e;{` z;?{>s(3Sk4VToPeYh*?jy8OZO%B!?9WM{cXdT42flBPoy)-nb|YL&8u1mcom#DMF$ z0;0m=KN8Z^Q)krn5Jvr={JtUz;C4Hy6eA|^fjtH^v<`?f^+vR|+wdiJRlNoQPhnZ_ z-j~GjYG{6|8!c%htih3`qPXp+p+Xisk(B`-LuAgPXQ!IA!x@0RAMo+T(^L z>yJyvLu%}?Jmo)I%1kCbHtQzV%L3|mmU5B}Tf17yXcn(qPi4#)0N3~jA9m695^Q5* zGm`cL&|n#q^<$ExBUW(JtHQ1{jE`_y31v!Z6dXn%!aF-<_1$O8JXd4o!tRg${7~UI zW0s8C0{q5>pB)hErigfOX80Z{NXRY*(cofPWO$j6^x*)`8N=015fYe<^%>2~-~Kp-^^(qkMRGJya}*iO0d_hFXf*bERZL2r)XCa9w| z9=7+ZLne}qPJlbPS}NpPqP^Wlr?_1o-tgM~;tWL!%CtBL1HOObe7|E6vc`FBac*IH z5wNrzOxp=)BB2DC941=3WKwF(IqFBO=)i;IpvNuKS9xehgDEm|$#p?IAm0HyW1e`f z3fzWwl!_~BOVDBL8W4PFAEDhaNaAq?_od(o zvBSUB-R^h%`&ph^@=z8N;cCdKH4*@G1I7vd4~G0`DRW$eoReS(3Z!DFS|DLU;o|;V z8u=hh0JBhxu;0qRv@Sd9yXU{GqJW-x;opR9oc|iqO6G86gBcC1viB$U|9s+qTifZR z)HUn>_dWk@_{tOz3|E$bPuo{eMH;|DylrOGCr|q7$&Wm`6byUX@O^ z0WpX89h3zhR+U4OqGAstuN$ql$myy8h88gYl77Mi#7iWmx28N&tPeUUS=e^x0D*XL z=8~K3Bktrhf!%3JZB5sprL85I`Vx)NPaXQTrew z81iCE>QJ_KfxA1ZG7b=~Uts3E#Bk>+)ot9cnny~r-@fd&kCwo-uu)#4tPa`G7`VYK z94xfWaEjf5xc{m+yhWc{tC&s%8ETq+**#?Xa>nyJ)m4JFShn~N&$Q1GrQiw;&Enwjo)n>?RdiOG%_ z)a{MK47wY8@-lj?E+U7h$ZQolQSpzAI~|=w3TJHgjVhzg*-+qBFBs}-v)maKgbT}G zh@jt*(`7ey+mw7wVszSxdd{Sv5j4(4>_GInmdq_-klxyYL8OH5r*_O<=7{CU&&k-m zNE^wwp^|=3%13=MmjNqw=|mgGQKJO`9qn7~qq6o5b0GDYD`hsgGVv-@r>|Eg!7gBp z-Z+B6UbH|pUC3qKvl{;j<5D5#^Gx&EDrJxo##UqhBmX0;-);t5&&dMz1n3xqqmc4C z^UH!NOHhUZ=>T7aIZq8eeebOtz(J(B-U}Q`qIWv?_qE~=2Ot3j*Q7)g|Am@etWGc@jXAC)bE=S`hh zR@;44Wxn>-K3rRzjmcT>)YvJ;Y^*YSdb&rUNdJ9<>wamiPb zt+wLxQ(lMrv+F&={Bxka(|z{vLoq!<#E=8;m+e<^%B+ms_aD>3cP&HrbSpq1i5 zik*)9t~o-l0!nL^cOwOSaM zRSB7r#yKYsynyV?BHig>%SLe!H^d&KRPMd;0-`=9%%hs?A3~J&F!B0vJcHJyXH2MK z6O=ZkV4e~DvAsaAv$ry;A6L`iTo6A)sb-wmZ|=aKA%u zkLdIv7gDqj<}^yiuctWK_}mM=euW-PUb?pa%-=a_NCGqLp6DwJsUisawlA>t_GEOTdPwak*4s1Kw`f7wjmWkV(owV!H*}#16=qd;!NaUEFtw zNjF>WOZg88zZ4X*qG}U-(!i)_A17p&j=aaCHGAw-&uM$S#N6k5@+N83!c=>Czmzg< z4;Gp*C4e%I149Ybq2wL)(O!!q#mx4YZ34!H-S~~{l7a+B&D?;rcYW7<13?jrV@lmA z<+`({BbJrw6?Di^p7%A^;sR^fpApUO(JdueSEf+ik0>Q5Pcv{--WB}>9uTvg-qeT) z{JV<6rD^&jisW{sZt~}mvWmtaB`0Tt+l|Q~Ij5F_e=}#->5+g*bCMrFu;ev5+M$kB zuAK4B^^H%B;jS{@)*BfstK2C{0?I1ml|5&pyYSQqwwj(Dw$PavCnIyI&J?BS_#JE7 ziJL-S2xi4*rL^H1i3;kPHVUudsDB0>h}0*z$&6c z_ugKuosIE%MYJjs+m{H+>$6B@SZm=)}Cz^_;-*l-yZ$A=Q15!dxy4|EqO{buM-<3$d-XaA8cl`<7C++w_0Q{QjH77tCP#O|mEPKJe9=ts zxacNmycoT+3){jn^hTLc2|E)jD=Q1GrE%|=`CDF&~xb(_&3YR z&BXZa!ylKXZ$lDM)(yF$8dqwK6OWuYIVp<3-zB{m;r8_h!#@c4GJJVTP{R#Q*AXUY zf;jc?$$~@^+rV*&L=m=3uuh^iL4l0zM(BP`$EsDjFbT(i%VGbRDsn9u%(8d17q>hxglRVVMj#yiX%j^r-CD+2v>`mGB+%7 zb-^ZI{Z5S}E$pzG=Zw7%NM0?Hnj9g5mfwqIY#0GnHwD_y=2+rXSa~s-rdlw_;mxGe ztJ}w>g({zvR?;%`Or-S6kWc*})+6K;iokCVjr6@mu-rEEYbU zQU_SBP98w@uRq<$CrxY79%>M!8WE-W)+$R!gVWHf$I>c}GdHWy_Y^kXgd@u;olwz3 znsv3dkq3*a9@0EV7`LW!?~w~;pe-t0PoTPBeEN40q1kKlW|tJ82zO^d9kU9cG~8(b35X1i7`2jaLS`ou3Q#j@l(GRADB zS4}vJblGXe>2`Vw>IOxX`Q6TE!lQN`G{;HS1e$Eh&CK@`ixvnTUHXa{nXYh8y1Y=J z5XqQ4pEVagaZ7dR#obQxKk}3R7?nU4Ccsm|LPGG1KF*3-&v0(AMR1anbD%wxpRTWO zvd=ekVWCWy*E!rM-!q;-L!7knQfUso=MzwKGS_g0IRCT^|Mq^BK06MO24<%lL@1$6 z*vPG3{4MIo-^K4eTw{{H*P8Ioaij|KuV~oz7!Nz?FSe%Dqw|#six!pR00Oxuo8@Ob z2aVTao&z)C{Lv9ZTsePx@&??b+F?5)i;_sEuHh@x{5kM{YRL>Cfr z`zpBw8{D|3h=o=9*MiY990=B1j~*$goDUe(?i0c6o;hY=w(2;~bn_hEP@rkvu~Mu! z#PY5PI?ea~xtptU7qP{W44svbhB)(r{LF`$ktpda!@qW?voyDz@P~^H8;A=uGWuOj zG~o-8prB#TxkuC7d<-vFMp{sLmZJLsFBf5p$JE#Rhh2|ZT;wbW}gSU^^ zK^(wN1;ytUzIYhk&`?;)vT!aPI=ix8VgkI#&8Njz%qq9mjQZvi zcJ%(^VF#i)K#>zx$`2h|hp&X!Kpuq;_Nv-&3fq)}4HMswHCXd)BjJ~P&!a{D2=ISA z4^@RcCo{MPVZA{*F|qcK6?u6WwooQdhPJzcT#2QE%TW z!r4HjVsxoC;bpmq8@M&AL3cFRw-`<>E#hRkXh=0%L#77>#ASTpivx5+L`F3PvT6cb zu5mMy6A`~D7{YPN%3$X8NVjgc>8acJ&Xs(OE*1CT7XM}Z0B;Ww?jHz2U*w5LJ~-Y$ z4mUSh_L(1|N;omA>NIXRd;Y~p4r&kWJ@irE^|0gBmDxYm`AdtS(HFit$xm255t`>- zDm$58t9dtRk)nnIC=7llO4kzbkp5GQrs^(Q1Me%dWMFkN$D6ogEUeq3wbG?y0|As3 zaqjzDnqOulD3+NcH(WfL>m|+8{~f$7qE(x<@r4cVnn4`4$xp zy*%pU>{yCgAt--wDR4^+siSK47^;CR`k{_7n}@X!dt6_&pmzF7Ycu6P%VeD}USRl~ zS5-;8H@1i#uqg8`-l~mEnnGMPpGQQE2bQ}`m1M?_tHO?uGN|Q*{d+)(O9Y6(!>r^D zULM;?Z#Ww~9oRv{xOGT2m6fgOL>oDF;lZ??Vm%CYUpWwQVEwv&eKnYNeZA-JFL*HL zg66~O7h6lntQ@>rh`$}uRW6lXu1q4`YE@fa3+hCw{4T;BD+bYJ-O?Tq-#66*v1NWf z9uy-(U}J}`sHXBFhIDqMrKO<}_8_ec!s52J20(OCnkkW8-mbD~zP<#*u1kHth#qY_Kz>IDGHTgwnvvuUrePD`r+yj6ZJ-7P^iVw^FIT{h z-g|>f2;XkTc7(D_<5NxtV6ZweD@c($Vm6TF)8_L=Y=04VVhF`i)Q=yTHJ)SuIYd16 zj>ecnv^&5MR&NnyaJ{~0l|e}w4+T6yv-^Pwk$o87gY;cZJ9Ht-&^m8%+UvyVccab> z27uCa04L>?14vf`b{851JJUd~vuH0h(>0?-?tBwi%zPBv2dGKfb?Lb$MlZW0E{#SM zAH{`pLes!Heb<`dG;`pYk$u2}^-92gY`(%p=iDWJ`w0-!T%2(Av1ZMxjdjeD&%qfX zyqvFVO@eRP7sgvFY=h65mLzua>^%YR)UjP(%Plxnvg*WJL-|clr ztBW)0LOqtEI7@pim&QXXHim)dDOxGYSv&X}SQ1s=9ZpC#C^0u~Mq>Z?)sptSU^Q6x zg(I3I#V(>nTDWsJR&eMh7;B^1IvMUG6QY3f9jNkK1TG9?`#hQlJcQNs4u> zrw6R42Hq4AR+h)1xJ}UeOP~P;yvtYFra$?V@Vu9%nVE0(V`6aon6hsGjRETZbj*dW zQ6l?-TQ3ybWjh{S0*Hig#%)~?eg6J8DS8iq6VML7FmdD0F*C3dh%-dJ9LJa>rrn-Z1xic ze88?eFx@C+XLUk8qTBjZzwaqVs9^=1nPMp)Q)}1YWL_wIQx}w`d^#I6wsumOhkl#1 zuc?^mP*m!y<$?%!7KcY8d!@B#u?aSN!VVF8g062RmC){e&-EyHB@#e_$?i<6KhvNV z-Rtsn?o_kw@PmIGPyC9`luVy7PoRf7H4`_01x}ss= z);#gaC?Ip8kMAKy*EZVs<{2yH8e?5ZXqU#EzH3oZgpoTT75FaNPLTHv61H|E#mTSV zg($%Lr;ti!0L3DxPovAPgFl`%IL{N)BVBEwfeVZAK%w&g+dqj|iEPXL*JPOJ$n65Y zCEz2l3Et{b=ry18O?799a{b6tJ_H8D(Or!(Tg9syAJP3TRYMs$2|F1pc>ix&JP1J< zJhQ&a9;Pwj%Tl)c9Y7B#^mFooi*n2N?^&v5y*C0qe0eVwC^SU=Ht2mJiMyPDi>znF=%fA*c2x9a+zR1d>AuejzoCgbCP2UT<{)aj1zdP5ThKpt>;~s) zN^c%V=78lUiDc7t37?)Ka?7Z|VKtA935`M7DLiXN>7g}1` zA1*>Nahu>O9XO4k@40rpS~^wRur zh#b;E#YRf4%3VoZfx5#n4ORw^_|3eVPcWoaMWiiY>0W-SD;cdHnk?;e2C{_J>edh< z#nCVH4kQeNk7!&EH^~aNjFT1JVv9WIPt^H8l=i#e4s||#@??p_!7IFFzWnH@PwwxY zgM^C(-ESe4gQ5BvW1VG(lyn(W~N+|1F({w7MiXR)P zvdf)egmyNQqMs>v4ZoQ6C835Yw;I>^&26lE(*_e*G+&$b60_@7Kk1^Cz}}g(YXz44 zP3DwH=$J7Ty>CluXJ@B7Bch)!Fc+RU!~Sc={zT_Hhl1K(=^7}Ao966Ggu}Sf!zXCx zap=3w9zKc|z|eK4379G41~{AH?E*XSE%y z{Q;T&GvRFzDF!3CJA2B6`COmXG=$48vhoK$#!A&^s=wMp99{a9JDWkjRuvaNok^U( zvHUi*D7L+0xK(=YLlflFfU8-?7QTJnXmmn$G&?){7?m|vsVtsW3^1kBU zRYfP*OJB;4v5m|ZpXE@Z10nc@v{*q`a>r<-@$QWfdwp;KCh0(~nX4peW5f1QPtWNVeNWJJ^H~&? zkY8*pK}1AEcC`dZzvcn80kx%*!O6U5kvg+iTT|_RCqFqARTD9Qr!wej_{k zVQ|Y~{myVRDEJQmqUwKfIk~upn>J8W^2UM=KX9Z)-@>Qo*kfcmvZ1trpib!_2ep{) z#8=o(L5s+a1FbcsjY#>*d8iv&`rqR%4wW6RiBnsG8C#ZvBR~1s)2?&fC_j(CH6J+RCcRN{4D9E&s4); zXE)Ako|p8B6c8V`$3emHW4T4vv%AvA&ieBYO?iZVw)oWa2afr^(%x|1+}V)^gK0r$ zt}k}#vD`l;lkV4la6Pqc?<~1arnh*A9lJLh5-H~86!L}c3EA6$OYz@!JzX0+yHb;G z+-2)3Cq6V(c_c;7LaWY2!`7Y;APLmEu=&S7srzwjCUijeE z9MmXp=eqa0zpnQGUIquhPU-n=xAkVI^BP)sbSZAee-R|G0VzF zUBj=}#jLq+4FtlAlF7D{{%xIDdPu2Pk}CEYF*Vu;6sG3KIU#|^vB~@+J*E%2O`kzs=Kj^aRD4Y;FadrDnkMIj5?^Z1;sf`+{jIEbGtx~u&Pqlc52zgEx$hY%y8Kb%1 zh10}*3`4|@7y*z}u4~{w+Fk8_iHofXQ~GxIcU;l%2yhZX-IMgmedY6wG2Enexm1vZ zDUDZn7>Fk?SJ_Q-=%>sdw~AWS8N#Wp3O76tf{S>w=zT(J7%-ftajIUa#26e5+UVPB z_JLGF!qs6eJBhW<6V`LktNQCh2<&H=biBv@i zhD49!xaM3BwI5OCQS>>~g1Fv2F?IfCX=5YpV^OjcD$r4&HWr@RzgfApiAZT8=k)I5 zokip-_m!UIL41P6>?r+p5i^D{VjxMW6e3&2f*MYc1) z+yRmN?WXryVn2offO}8?NvUjt`b!G>;AuC%YgSe8!wHfAL;Lmq3wjF^nWl+CLv6Jr zS6JM4iJBbCkI;Mdzc}73&y?EA;d={z?Bw&ST)lML>|M_jA>o+8``G{y`g#wn_F9u~ zPw!%|{?$~ew2s{5qHOb?fvyKSPAaugcc9u5Ww31);V8A^U=Wy5!v68`={;03Ux|T- zkEAG}2BP~$>#Ty&&-`(=1bcBAiXcv|5EquxEY)6z<0tEHn$h_8M+Y<9m&8D|4@{-D zbLsJ;XYKcIEC52c?!fh!K2S&ccA0kn4}hpwPqka)FYRe5`|dI#v$528Jopex^vYIU z`vn-it>ZNDKKwei#UxscbSzJ`YqckSWO(>R8^9%7+qv5E)!?nuoa+%Ubk{~A_%_x% zF{xbmsB7J9o{)kT6GuFOrDOmAn*z!IH+&{}F_^EHt}BzyO)lmFEh}eFcS_byDrz*zwBWqcF2C2ud+U_soL%` zB*s+HHyF;<91^c$eS#p!Yr~*utRG>Ff%%X)DUi>P8n_1q1v$<+#pht|5fq335wVOK zeshMKw&p}TqS0#%?Vdt2i@Bn(eFtdTz3e^7h$vUa-yRF@J+K=3uzBeG6@UzNPmf&b zYr<@N7JG1II zXN7o1qtR@ISBqJg+a2Tgh#kxri|H)%#6S{Hq<1dM8aX&XjRkQo7^1g@EbTKw zF_$XvMgM+&!m(V95dUaOdo`_R8WM|nTw!kZ+D7{!05+Cmj6V!a;{kFHc{lPsxwY|v zX8WU=$ocQPn){auG#CnwZ%!c=&Ytfs-aa`yfHA85M(=x=Bbr1UKs269cL3D3 zrsw>QO8btX$IIuyl>o1!)t5GwmP;5QRZP9V2j_o5oQi`&MCRC$c5R!&xj=jTXl6S+ z>}!S=y#ucWjsJP`IeX)Ilg09kMR2(jvh(dw%T~U{Cdhs+Bo9v03LyRhIy)6CZTnSY zRe)ZcW}XTMg%=WdNA~kgwADw=Jm>iUmc>=g`)je=06K>?3@La+yk6d=(uVl}Q66lm zeh5jqcoB5#ZmC~wKOg4ci=@2h6lnh9j}1QyOe3@g)|4?ZF$wi#3wAtigt}T(02YP! zBM1?B!{Zuc-B1WXn!7#Q(3^%rm#MDjQ@4jPR|y6)kvB%@hvE?n`-#w--hJp3y}^49 zwX{w1Y~>mv4iz(rx-;|PH_Jv8hEA(>>|+5+d>F}7&vJ-oRL0yi;da~BqJjbNSoB`0 zl+6y?;W1ny0)BgKH0L&DFx}|I3xE{-fsp#DMLDeXAYp%|0vm%ATpvhtnlkWMwvg~4 zxA?|?5Ay*o)(}Psng5a)1z{F->F35Y8(+I^kH^(0E4Vf;8=ZKR{uDW^Kn+sHQc_9G zf7>`kPLgz7B~bJ)ck1nTmTmkw4stqoV=Ds*Y;NGM3j-0y0QC8TFH?(6gnhFjG21*)?~3Qy+Cg8H_gIb!WjNyFcXQYgtkI|Cf)M+@xU<(0rv2O0L^ z<&sv}8bG0cMb>Wt9@>CXAhWczv>ON$EIHb$ zsWIV2-LHuQueRE&B$CbX`;twud%ZB4qK{(|;v{D0oV#ipxfr#TG3GVB#esSU(7M+T=NDSd{=CcfB)hyT%M(mvC6xL-22 z;a>dW3S7qt$!!#jsA`OKo=}tpY6aQvJkj$vuE}2)dQ19M?>#+tH!%Z++g5uf^z9sU zyyJd9sh7fvoA&N;ANJ?vn``$qt#pYvP4cZCH%@7HGcNbK!okGNeQi6=gwWZ^WkcAd zYIILmqzZcN_}w|cpb@a3p>=&}g9I0!r~`QuTg7HSNsXQ|Z6R_ud58MjM=HB4qs6<` zsigvo<_3TBt1GR>s*O%{5laJYcO~9g+*#+pqjH?6TUGzU{VVnE!=o%~+>NZdXIrNp zS-i=Tiq*I~_AN9U2lYfXjcXhzcaL+E<6^eqg*wt&Z|eGAoDV1GKDhS#izmN>BN$gJ z%SCIRouQbfvHzjy3Is353%-im+1j=Pw^1M>YY9lF1uvJ_0nl<7+egO^5)RKHpLOK? zK}N7giw{i_=eNilMGNF^g=%{!6OBKMX6{9zirY=^_TDVptl+ia7nocD$FbdNh8ysPwBU#d2B+I!kJvMY!( zX=ui`SH!ljg+6jT-xLaNCAP8P)U>oAO45h%&JJT@BpLODp^l-V);bOZjx;1z;x^>! zjr=Q?rdfH`c4`n_n7~@9?_)%aj~ay~DwoGuNIT*47#t=7D86qwze(p4n1NX7>X4iiaA0*m!F!3QBB1mUKGHO}CrvI3k9ow&CqQ zz8Dmd*&HAH`|KevMJ)%l%$P;p9BVo}HF&M2R9a5)CbHIcN_JHn9BN+tH7P1%&tEdd!dN{Z$tSGB_0@2It{a8J7;N|$Ww0**k{9EV!GSnbHdB17d-`S$! zZNVRQ$(b?^(nUzD26tlIz5W;O-Tt_rJS|_e@RZ$?F60h0LAakf^X)ZL*8HSk7A6(j zuJ|jr{goR=cXTRup--GBT%$M~;H(4Kfw^h_lAqx~PsQi`t*Ui;BL2?#kiaC_io8n;Q%gy~O0duzUu=UmLX za4)@yk5sje;$PFS_=e=dccP;D`4Uwky%t^vUHOb4<|B8se{x5;Gnn^inCj`9KAg&g z%D^jO4#iVMwc#3v(ntR*v<)NA+`-Pj#PwXHNpc4=N zBuaG2$}Doc()2Gba-Oa&$F(DW1EzzW=U#Dt2C*C5-Cb~nNop-D(T3-?)`dJc9^Mti z3gYI&Vo#YO-g8mc+M3h83aHMpv~yn)9I!M@BO@c5EsKI2DT!uX6oeNXxk`Nc9{<#pxX<47Sm1hS zAdu4hMkud*MX*@6N;o*91kcq}uk6`9lvOs#R3eVw>&%+>xnuOe>D1!rV!72S2mHvX zYhgs7#U^nsS-w9+Z*>vj?V-ruR`wmE)g#V^Fahn7{!7i1D9v>IhztvBQ~NJxlKGd2 z$Hxr~2Zqt&?Cri|p%lTa-w*}Hm=in#0N-wYur|XoK8cTIs2|*sD$|zsO@ulnA0rXC zW7*q52Z94BWKQ{XiPeQ8@aEHI&$;5aF(K-jdd>-Bm)Zq}HQsfSY475*LS){~s@z+?l(}}B;YFWxzS>7Bei|Me? zwIu#~S*^Ui8-(#%gJe%n`{^!eju6ve&rk-$yhQa7Jm&ce)P&^E1fLR#e5hW=)(0F! z1tADtyw9hW<*;odIz9!-FC~cOdLgd~e!v4n1OSLBXOoP$kbm3U$LNP$1eh?b$1M}6 zx9okZ^JDtttwz5aDR%1q4Y)r!TkifEx!CR|yEw~!rWjXEf;H?a&Z(b5%kfb!MO)uV z;z(fru5}^X?TYka`Q##NVnh;U`|RLZYr@)W+}0Z+r|PZnkXF9>lKGW!O(`QSRiMdS zY)vV1mA6sjx>We;!J&?)woT9Iwf^$b>$0+^0${MEZ@|zi7KNeYI2VM2 z$)JPD#;jzmJ#I;pH2~Nl>0>KSC*W;(J733>8dE9|;O8JKbw#6m4*Q>#Vf&=?8 zyT+T{_hUzt!-)eDvf^RiyKhHS3CiSK(<6we_n)S^x5~>YRLoe>t1jt$9x5e^RyOtD$RmccX8F zEO*|{=iX2ydaFw^S&I<@+4kvhSdo}&+^*@U);|bJH zzFqD0)iWes>5Ny$plomRUMhFR(mU{f=KRf|k>2r#n07TDp^-~J7LX9xI!=bQIzFzQ z_jR^cB40Hw{&v6m%k_D0@vf}Htz(bYp5wBBYI0TS0B!|Pt9DTcO$I|LfZLF4M_Z8c z-DG8mgBCneuspjOb6;YdA!;mQO<*qKCx{=1AFcDFp!hK2tM@>4EjblXc(V|h?cn{o z7q}=openR3H-1s~Oat-`C{nx{v>G#QM?1)N_7S`W@{s~Jv;>HMzM!r*$Dh3{+0I6*1K?DnD* zuap`Sq1Hf73EX=%|JS1e5?kQ9Mqxzy!--fgo???eUX-$Upm<^-mzg+_jg|kPc|S6i zn-dCP!_{onG8k0YSpZ=EzZL%HdoD>Yt?*dn3i|lwN+!)v-;F#|nUZ;;fQu)>-O%@E zEzVZ0#3uFlZ(jij9HIYqQ3Z1WgNJ8sF*1>@;%4ZnSp{49uLd%7TViU`-+x(Ew|T<| zc)j3R6$cF5a20+O?4v_U9lU_k^*wHn38;(%XsNJvuaY+ad|OKV_>;6aJwf$2tm#Vt z(yMLLAXUc40?*$+EBONu&;6PEI9Iz;FTavgvgMO6@Awq|DX|$5PwWU>LGjmkpPXcL z;+pB#adF^`318+t7X7OHDF9m{T<<+RH5J_4ERHFPb-2a$JTV^lmS$G&)QPt{`wa|a zf1=|+w8CM@a!n6hVrBqJKLObhK(;i0U4LeFcZ0viFcjfnFRfU8PXJu? zmW?;!X2Jd^yOM}`1yF;Q__<~?7Tngf$*I&~uH#M?xdga>?}p>C_?g{zbM;=y@Vu_K zh{<=Z9veuYVsAT3V)uB=O)qAk`o%xr{dn6B$W*XCKfo<})9!d@>nhBFvph;)dD z0R?*Ch_D;t)fKU*DNM&S{tVVtlQLTl6l_s2zY7?;pN4L)KBmdREIl#tdmT`BZjF9x z!QU`CtA-IjPWL+t^4Ae~7+4A6^iooEru;%zQf6 z@~AB%cs^~v>l34Yb&g{AO5?Jjz6bK_O2OJ6s>z?V6Rgj&s^Kx-Z_e_5!4px06nS02 ziLXv^0k>+!E6T^}`8eNVX?#-y+RiNDxAyeh7(xq##3K_G1P};hdU`DI=Z-NDAHI5- zn?o=0w4t0W&Ev@vBXTTvhgS4GRBUOKl$aQGV9H&En#8{1R#d9?&)&6|zGA5&URKe_ z^cLa|Qx6{QcjeAElyBW!%dcLKNXlb<{!i)prt+vWBg$9EuJ=8Y{naBnQ&FH1D?iIO z6n(C*Be@GC1OHQXHzI{3oE#I0SqnNSNWNf6u(WM>u0tw&`ZX!d#Mpriq*zwTA;Ai& zv?2<6xJw`Vzm$>R$vzGb8G!=Lz0&(9aoOn+W`YQ9(6(b8y{xiQ`Dh+~PoL;ZOjQ|+ z$KU41f`VhZIS>s?v{sfg-Hu8T^Q1~XAsKkc`CHT<>z)6oU1a1s3il3HT~%NK;=%Dd zbHgTp=I2Qyy5&$DU2hWm3wRo?G4BmDcOEL$8@iC(EB-!LSv+;}QLkn|$MlgMRO17n zs0tK-b9z6u9;mn&IYrX)$`o?N9kN<66^L-ho;-#xBCrK zWYMNMRmC`b-(W_u@^*T{mwrJ~Vz|K%6py*wZK2GbtHpj8dHne5don`+Lyi^d>8525 z?3H{;#XM}#?t_nrFfJD{yRBZBcGnkx2PO8JT=c7XcjXovcRL)%Z(Y*{y8>~K>D6p- zPb*6Y92B{e>^g2*=UQ5yP@Z0PJa!5|j-XHWtW^6V%?$aID>(aR5u~iN5p&h zf3)=#U{Q5l+bE(S(j_8|LxY5XNJxVW-7PRkNJxwV5-KGfLyaJ)bazT9-CdFb0|*01 zibMW;c%Jur|LgmIFVSIU&N=(+z0cljt@~d08jZd9KsG~Zmo=@Sd@shgWWyy(!=hzK zsn;iHTWE#*-Cmq_l(-55HmO8G$v}Dvo3XO}^|zE{$~Dq8`KosB>u=fkp`#!X#@(#O z&g`h$;>pmN+e1M?ZQUavr~-0EhlWV!&;Qf}fQ44jZzq89DNsoOgb1L(^5SkMjT894 z3nmC&)&~CBEI;VY$~S074@#i@kT;5mLn8=T)Ol!E{$)y>RZ2vyY6N4q2CzT=cZoOo z$eg1~CE`zs@+i#XLqvm1xk+q!S*d9H-wone0SO}0f&UMdjwKA-3(i0M{I@hK3iLU$ z2b?!FdOm0R*ffRTkzk8R0jNE^r+Cg9DXz@<-;4cEYM;Jba&VHG6h-#pE=O|kv>Mzq z*yRiYmbmC_T6el}d?%6fc!jNMj%$5L6#cmIX7$X4QT zJG9bTVdP%n!h^$c2-FK=aks;mfpc6Y3>zovqf|>LI{Nb3#xIQTYdKwGtND4yKS-EG zRNa707lFH5BI5m)NFWims7Kila@~48kXW z2t=5AS_DR-DR6Ebf#YreY;-=o-5BKgV1r6mN%uoyYBV9uRe&MB-0X3YOP|+ss{6(G zyW%c)QTbeos?@8GmY9c!e@-%dE!RkxVM_p~R}Sj>ccWN@V3Evz-tRhYmq8M2{N*OV z-@t}K6H2p?P8TVs<7ou&shZg-QRD2PY&wHk2P$)wp0@9F+wE}C;_puvZ_Ci<$eyXK zS-hv7Z2xwaq8L51tyb&LB<)u1q2fue^`p^feC8eA{s-6dAVRP&FZl`FnymJ4)vCv$ zguRgygN@CP!e3$@7HzeKnTXPi$DvLEEkpxMo;)T1nF4UKwWHW^Uf_Pu@63I|qBy+!{6f=+JxoR2$keCV0=S-S(y zVCcD}hY<-Jvjj|+&+b12{VR(b-JQ%ec^gRAL_f=m5t9&ogI9RE7hv|E^KJS;gz!yk z2V7MBxL)G7;+54m@$-{Ds=v9W$P7WCdA$4vJkBY5J!QM(-++`nmURB1^pu#v!fwM9 z61-;K=)mQA-rAkhY#*!ck$0c)KQR@9K$%DNnnHW|A9a)U#6$7v ziv5J0b5m8g-&!zsiFkO$DedFEgig<~DCx6BciBrM)B?e;d1Z4*3N^JxlIL|Gr6)D{ zY#;s0;tGoZMy)9`(}*Ti$Jo zlU`rsKtxI;&?5qjJZ^)cj;)})W-V7+JDn>gNT!41V}|KefBolJ3(d!}{PpM=CN>vr zi>z8Hj9j!2+*9>U;ajrUz>d4q`PKk1lul1M;A}P?8wY-yIHjLHWxtEkV+tB1@I?=s zcp~M~pYYyMyB8R9b^XAOO|bg&GlaBVt*PZctBm=OW+P`>{EfrvrS0sM+Ils~T&ZIo z{d2X}pZw8!IxaFcjpy4e7v(lvhL4ipqN|@aB@^m8O;c$@Hl0TAsqXK;1r&?vB;MBY zKP~PyPO9N)vArm9!oiO#H`A8vt?qr%ye%+VnWAAxAIbs!`0V-(5CvL(8R?Q@eETf* zdRcWvsP12OEVK(##|A%0QYNwng(Mg#6b%Y*aLE$yOd-7 z*9Ja%c0QV4bV-T{4V+wvwE6fD2L0nDT~s{Dc}Y z@w~DcD3fL0HnHG7F+)Zz>s%XWOe#xc@BY6$OwbyDWa0y2n07JqYN@vxChhOawK@J# z@=KG#118ONVr~~**41fzAf_Yj%%bjR$diY4!>|^~e_hQ*FnlwNj0tjC|5{5;EQ|uI z(H{v+A`W^N_dmfUC*Wr25z2y*V)QX^gWExdDCNrU=_%3;P5|idgQe ze(8vnz-CPXNYEI?eJsH-KO)2Mh@$%T`lLc)UlLk7=0{?-VM4YiYXXY!l@B4KnQMZ_ zB$b8PEB1CeS_(=RHf%RA|I=nPi|T4GoU_YORj2TYPDAXIy`V=;LCwGZGMzhZ`S%po z1LycsO8_Jt2gP&_1oA2#!(;F5uhdh*s69+2AuCYgCB#u+q$E13+o!I$^Mm5-n0EB|vSd_4 z?9KhlHei;J%!b@ZliR-Deapyy*p>frqUY6{mVCLPj3KKfB9&I%i=P;D6dPx%0{& z9@!`2_B)`t!^Xw0$RkHF_4s0!+X9zkzUww-{-`NLM?-R)qc4*QfzgiOL|Ccu!DS#x z*>KKU*z~Fp*@Gw)0pJnhG6m|UssyEUXF?%y?V)N`t{cEBacE6@Ppa(-d4ReINFDnr zUoKXr!lMqfC$ycg#wL}L!n7iQ*6{Zz*ox?*$m|h^d8{3S#68^W$d%`MK*uy zgpDzaH9jq&lG5IwH3PjX>wmsJ^7wFH>sTN8+sj{-RyofXzU;;4J9Il86Yjg1%CFaAX-Gw!4$ z{p9(YIFE}qt4r3*16pQ#0Bf%3_>I%_iXlbFgw^iI&w8@)$aN3{A3k#_f>N#a$%3i5gUaE;el7PZuG{cG|0CzWlQeTobk9fYwmlRH>G_p@xOgh z<3eZpidky!uw>Do`}=FDM>0NM zbDgE%;BSefJ2ax|L8nr+(cKqZvh4IXkBpubxNq#Y{p-(ibr2A60>S&;kTo^A1FrNK z;fKb552G`R>AG=#{wkIMk(3~s#niei0j0Gj0vA(!oEd>i?u&?&52(Ax-Tk%BTaTrN zC*Jm^G>jbE_)@d7Iq5QTGnx!D+LRp*k~bEY-JjTt<8Wdh#x8`qscac$O0TxQX+m&6 z2}`?RY-a_LS2kx8j=X{n0wn3qoNV3vL-?J0qWh@EEws~rfF*SrOAO{xk6Y_gT|grcH2Jr5&Q4a&hB~7W&fWp{C%$(ex2U+6Ir63{O`ef$kNX+ou+P@ zkkUOti>%Q*QS5A?PwzZj(G|x1_J?sfr!`A}wUy+v|0A5rpYb|jK@)T?hSALuIkdJH zhikivlM0a0kgv^k1+{)g>FxL`xDO?{Vx@d<>aF$~()&KLoMAh}y&T|LJTg?hIU6p{ z;PZAmzH5TWt=i`+RewwRADx{p_P??k?WL}@eOdm z*J3GpoKovK+g*#Vv+_)T*LEo#`ZpThh>E^2jX5M7Q z^#?4cTWi0+6+^FYpGN<@I6-;&J-k;XQB-VT?iXO8^jmr^Xt6~V-z`N1@PZsDIOfF) zpWt)eP*MD9IvKF`V0p{JG(^KRL1F)Nn0HU)BeXeU@U@YpPP}R0~ zzvtFhgT-uqROz1?U&E6vDW5IEnvCT+)t#Ff(I)SrUc3FBmISJZIg~EFk}FSUJv5q5 z)qXoi%~8ubB;=lX3{~`2zYc(Q+7zx}iA!L0Sf&n&r$+bp3Ap06iZRLiTz7$ zkTS7D3R!Hf4jt?G-Rp^?8J122cOV8fhX%uX#^lxXvModD*5OvJRtUq?V*(Z2Mn=7} z;?37iqe)sZM|gE(0vKf{xyx=prpwg2g;Pzu&6CpZLGLbb}8f%?YBzlV%_R73!PfZw4gB*v?wkR z28uuIO)olYVjBN`95FLM`5i2PJroMqj!Yc$J@40(f0VXAY33`1s!FP3pi62PI0(CY z^}vivG>#<)fmo9D64?7y>o>?j)-83sr%sEisF|`#Geb#Ci&~g4XP-xU3k@F2AT`Y@ zA*%{96m0Lb0`x+3)rRXyV8=QXGs|3;nkzZM?mC$wpFG1Yp0NNSj=$BHVpCXYDG}oP zXGv^I8;)X8I^^6JxT7GULD{=YO8>XN+SIAHG~bEGwRqM;EH(*jDC`l5q@(^KRd4dl zMsh}u{jFrAz*3qZ^ZV6dtk@66UXQx>iahQP%u`r!zm@GW+9d&JU@68tT zYQEndbNmiVU4OmX9d5vkj&#R^l)5ZPA=N;r{3?KHTEQEql|>5)ew@F)u%MX_ zNwDeDD^~$HLwzWl;JPO*wlYeDlMO{)=D`sBsBvKgzi6WnXFNC0zUHMz$&QI>r-RgF zQcJl7*J1wC(qmZDro6`j;Id%*kc}C874S>MJ0h|Z>!8iG73rViD*MV?peLhB&1P?U zxn7T)R$p*V%X$^{tpibH6(Vg5#JTlqy&;>ZGAw!Y^RMv<0%kXd-KZx z?&w=~nloLgiGbRm4qR^4>p_gST6Zi5nkb*WhpADp{Tmc7?X|^~4E!$*4o3MqX z=@{Q~wTSf>@=n126d8!2@u7s;z(6W9@HVi3IaZAnmqY?9DoWiBluf%U0AWvJ=i5I7 zbjd$caZS2^YHrfn8naUXk&!#>Md7+(f_1m{evCvdKLwW&1FDc^SRvd^Tj^Fn_$&o_ zhz+NEy?(Sn)k+!rYO2CkL#x?yubcf+V)rbk$Uo_FA8p1++8^#4)e@3h_0B43{UkWRHpe*RO=Kah#`dtHcHaYTxB@`| zz>lXKXP%+QGb!v(zwWvbMG<~&*Hts!sfu$=DoV5mj;I=czMms=2W~5vz^GbUHG>kx zus!jxxwP1yZj9vtJ;yenM(xvVyn)Vlu5u2G#pFj65!X3$v1`r5dU+eKayt6axh}Kc z`RzUVwbW@wWS!yclw&^5QXHg+Ed>NdK2f~_>k-OI(4a9ARLpYv0$rW4TKNO@(@P>i zEI^c@W%xTOrR~$F5XY?w%YvEJ=zu(81V4fO7($U=WF+^|KqQ;Gqv=TQ*Ho6Si6-Gw zhy|(Zl2e&T^ZM;+D|mAT0UKwfM>D1K$bpYZM27QHqBn?6PX>n8j0nY#-L?OS(n1TE z&6eZFpv8L_6AcK$!+9(Sbm%LcU1Qc`g&7&2eITIK2?v5q)yB`{I*>ie>82!m>#Cu%iliX12#ELqw~=q`Q@Ghn z%4~Io=m+iHr@26AN4EtCNg>-ZnF_P-3j={BjCXZq%%OfS>LIm9ad+}3L-y6OIGX}{ z2n?FMzJk(rX5}$g%2w;TjZ6$&K}-jLl>z^2?Goxndk-;dZmRXKQrJTzO{Zg*n9W`= zxrdHQD-d~N7pU`3n9@LWZ-pRvN(vcbPh$QEa3*zcvD+(wOBxH&3G#*Fjo+)eH@Pwr zn0FT`wi6T-m>gw5TJ1T_GURl(zk-}Fm7*oGLrQ8S%0m-yz1!bXXMTWiLaE2 zK;g+g_&YQ2N2yKbMEvhAjR9|%Z>8|{mzWNsnhA6%Mh(U@h;GkorGCCYbHA!xKO_P! z{1(z)_M|}Y$>S8O!@o=w3FG^^U%&9I)I)nEg0S6xDj&el17(8Je2&UPl<}%b>7-?x zDV2Jb1XblJuC!cwU%LkYcGb-hhbZ#bd@@n$~o-pdUEE5uA?_s4Co`a z5jHR-)@A6fCFIdyEq!i3?4u=oCT1mIBgR!_$p)I-F5}GIhpLX7l7GDIPLAl5+7x;Z zM7o}X;paqja{Ll&e_-U2T7M`~0I$+L{N)#94zVWn_D;2*i?0T5)EIX0lTRh&dQ!OF zl4Or$_bn$@LeIidodu-{$_MTvK02imi{=uK$0ic~2;Q~Z^Mqi0U_Xq7e#|={9Ssam zV5Wu*-9XptlV{x-+g6MXVrt3I`E7gbap6?--)TFAmDa93O`Fr!lkU5iQJ5%_ zhYs{%OuK?Jch?409b*rwOch-bD_{w3biAV5I{v`0U7(5x&U0v;f1(=^F`6WUhFOs} z*W81LHcZ(V|9(taE~G6b39zGq9+(KsG^Sl9Q4jKHw{)Q4^XJcPFz86Vjj5*Noi6dw zLX&N!sq+YS#L3<2-&l#XLb+y+TNqBS zhRXt}g7WzJvhLb%9#@`N#8++$6&2h@=8Tjhsy=tJJ)jVTa8L^@+d%I@=XYA1eO#gQ zcLSW`T-7FwLhHGm%FR@u6Uas)gE}p=viP??@i-@LmsrAXxY&Stg3sGLDCJy_5pB2{40$E^ty!qF* z;w?JK;$7v z>;akRy!;)wA*bzJmF!K?47d5Ar3rd=DMgN_c{3lt>JgY>T_kw zNOimd1~)r@sC7mhKlp5OhxZUIlH7x^;_De%4UenFv?yyoV*&a=iqOu!U|#*>fDs4D z0qrnRU$emgi0OfkQAa%ca%RkE>^hSpaMkEtt;k4Su(7>x+0)-?Qh|vE1K%Vs8fBi* zSkkKr)fSb(W=U124Bx{kBFVyPw<;=IHy?B+dCT4(dz;+Zb{j4BLX%W43Zxv}CF*>; zj1z_U{?MfX-&T|!_kGEY*sDOr4!Lj6UaG_l6xaf?25(@^S2sgP8G0)GHAE|lV)YWE=%9cFGK`6n|notl`IIyB^g z{T%U+&F`;iTyz5?5&j;L;c#3p)si(Ls3_V->cv&Wv1a$7-v!{4)jGTHGd+8>)RwLApxOu>zpt2}IOn?21^d#;@(jp&kqJo=Y1xL4 zw`cJMqxK!Vk43-!S)w^3`OE6k!>DV1tYC+wPc9!jwuOG|0-Nx!ixE=R zDo>UV)37~G=tZPT`d$j(OXQ8+DrT@9x9fhi764mKA8ZDCk{IvfOAG=4|n7M>2!EAki}@6{6(A6T-s>!l;t{2oWyZjT~KnYuOGi zsGl$0vG!^wGe{j~5Zg<5MF7h~0qmS;t6&SFKW zaxRwhCrheJ_B@(rqs-M44LJPA;5x?t#7%c%MZ;<+@6$h0(TwP;083BAutK6~4}7l0 zN_TFAeHrTIV5Z)y*bX+?l=rMR$tt$R%J4(|m)7Mx&)!kEcA6bo?RvSipjQXunBQI- zm(<^=+IG_#pwr|X2T!>=k5xx!SQS1G9hkCy6yAmQy8Ud$eo{Mk{mv1LG@+tY1)be) z*_GWT6E=lWX;J0QPq-cZRK~<)clF7jo$BP2tox4kb1q?8*=uN3U$dy(ZlIvVWzF?m zl^X``Af=R`Tns*C1s;c~4g5Xn-2>*-iXHjF^T7tsN4AThg17Km;>dKbY$xw1RkR4D!n!TJu5zmip8^3kD1~N?_J;H9mHMD==LrbBnKEXUH zvS=gAPlKn^&`l!`7VMLEG4<(F?)a+aaKUrTFP&X|!eGm&P!_*{N%f>^u zsYeLOfMC;ivS6`(2cAyzYVJZ`!Qxyf1ec`Czx}bLWK><6fe4-J963TjMQy@l5OT!Z z2g9(z+XTD@GVR?=EN9|fWgyX7LuGLSJrX2keeg!`)$FNQvKkKaV?{;Nh=|%C{`IOO zM7_qUDhz52;6fmpQger`M}dOUx~IbIr*{ZbuS)Z#MEp+7u7g>Js(&(2i|ol{dcu;4 zwHAnsMEWR|loZjoUFj<#zu6U|^IT`n3Ws;k@wQs2hdIhrHJ z&)m#9S2bimz+=m-n{h!_r8z1)y#M8Q?nRa}F5Z0`BT0+)UuBk%Ag!1mG4RA0*jFI+ z$e-WY{f*m)@T;*Xas%L1d#f4H4$SUj*rN?EMTG02gHofUr$;}LUGr)y_NVq)JJH{b zqd)O&R7spt)Jn4!R)^z^ZD9p2o%|ULbggSy{?AxFZxu-UP=R>zmM7((!4W%#2*{u$ z|1(ETA55WcZCzRb8I9t8OsHeIx{Y^4zQICvnCs$S7QPEKVa8eF2BYJzvor=cj7xp)=J3EV zOs@m4z5dOxqQoE=m6|qK1gHK{WG#a!$!%B3yY#LCf=l1wZ)3?0*Vhg}F0C7`D99M|xdnHVkF#%sNjD=qZHarbAf4eF9 z6+0olfy0;!diflWYZ)K(#p^8@?L(iJ&rer(?u7e&gQvLu;6?BJepT41mL!Uc^YZLe zYctf-G^~Cu&M8@Kf|+OlJ>0adUTAbA&_GSBI4k*gamzp4f3AVsgRY#DvGJ-HHNuVe5_8*0^MMlyYX=cF=%7POQ*W8lVL5z6@$;S+HIcwcOMK~J~qe!3G zfK_c%;b-vrUZDQ?CH3)0b#YIR1XBO1d?*=h&ZKpPaLnb6BxV25#1to8h+nO87WAsP z`PCi?O(X)lSLo#fpe>^9Sto{|?O=_TipnwliK>}<=WkZQa53*ip#JAg25a<}wGSjq z8I!Y7or+_AQo(6|NGxqm93-|u66?OS`u5N6&gL+aY3V?;xKu=fXi>+q237Upl*7VN z>jTlJHYXuF!vj7aHT-_Rob~Cyu{-?y{K|7iJ*U@{&k1LIJzyk$o}&vtn}he)W(S-0 zEPX2Xn|I?)>NQ-|{QNA_Ga?AXML*EZp(=CBGg#AxFI@nE_6?~ABdcCf%?A=USe^Y) z{hX&6*+;nE{!e=luHsP>gELkm*|UcfSP7|j>q`k}%PwM>BPAmeRc;Rf_L`g?g)-1N zkbi9OE4xt${|R1yof|(Rr07`Hr1mN8f>WMt(%C{0Gx=>I+%^o<%Y_rCYbPkln#GFA z`S&G~O*w1>z}gJ5e^K)SdUGMhFj>7Xhu)TA`@}z`^y`ZOvDTEG-=c*b%YHuduNE|3 zMXvh)x$g5P&4;%0M^O6Qk(tE9C9Af64Z5pu)>d*fS01i=ukI_QS%(f(B|~bcDkU*} zKYzK$U*9*)sN0EvEWcZ_iD2Z;wo@{#u`||J%h}K=5cihmJc;>qe$BYye9%jG$vI?< zdRN-jDwA5n8E8iBbxX|Do94s8{&H6!GS@0|UBI$T1PCo-Efv*K%8bF5_$ZFRAIgi; zXDmVy1}%$qZ8CJEU#xh~PQdY2y%|c; zDiS)mLKa0g22%pUoolI*gjeqUL|<6ZH~F;Q6RW#_m2&*aKu(KtT=%6HiFL4^%zq&A zq|GW!hCt>GTqC_YQAVgM&cD){5z%orJ@9CLH|XV-yHNeArx)d#33IV4U`%| zs4=L_>^7viJ4ZP#=k(a$K3n};HSt!nybTw`PBIJ`W5ov@!`gPjV9g45;H$LPX>A?X z6Tp7tVGFry={MJ8w2anqe|iZwa6!g+BMzRLKMQH>_; zGmm2hN~kENJLKeWt*OT{=rdX%<#bk(B7YTWJ-6kXW`)IvLBO)liSr-n&P8QVZ7p%@iC-MZfNq*P;$#~KDd0Gw^x4@xZqC= zA&857Qc7_+_OX}Kf-H{+dj(`Z^lUf!-KHn%L+^i5rk}c0kCWDxW}ABIVRH^0S<2GL zRyupUc<*}EHcH{m8jxZV+h1MElx-0A*Y!f`w~AxZ;ZN3PV>_AiRAOmh+J7v5{?{=g&=Mlx38fSl3&H?|_DG=50H z0T}a(?r@yi5lee1S^JuywZtz`TIty!lBi_pOnm-V-A|Wn&5-F_PNKf=+#0)P_c|rZ z>e7byoGkmk^KJJ`uze=)?HdO!JQhPSx<_5)*%Ihj-8dLYNz#&L8g;VELh2(oiO-YOG`I5uws4s?wSd)}|`22*UT|k5&c|VwY2ig4khWZ~I&x+mE=kp=222(;n ziZGt}+RA7KocW?}240k$VXkiH&>r@D{w*T*;>$B7vqwRKK~@TI9EQ6jI}#;Kc)E8y z`_W0(QRw_{KJ-)~54Y|ByChCL-?F^%+%8pwYmM61M%jJ=Bz`o>u5!bSX0$tjSDij4 zH30A}Nt}DF?*Gc3y=p$0W059MVo;@!5y+O9W8c>^K34N`O)5rHV_;2r5l*!7@wXM~ zu>PvLBPlq_K!c&JyHjN8hV&`({EPD-G0c=AEp5VOJH$3)xA_mJH1Z@X>PDX@El%TwP}i|;yo;f93-=qReJ))O8A?vN6J9ur-ifWuZ99SxW(wt^Ib*&nbEFOn$XHx*cT7&=iEqAMbpGus~2 zB*)Ozz89uC0+_po-%$?{ZK&4crchC#R%p|l{p(htE*R#MI9U08y3f05C=RSy((34T z_YU)q54Um;PvPlT8fN!fs~!dFR}PG~d;etdXNj>9)>K3+GDec7Jv-`#I|wUaT!;?*|-RY2}h^ z!*MucWhEJ9&WR&h#8E&*I*$jd?)HlXzeg3<>wBkB51bQ~xp45JNf<-wPmX{?ut5W- zfQ#z&U*eJaqR(!x>#%BRsWokVKouDn=_AjnbA4FHV8FbafTyzTHxCwTcJLRBTW*+) zdB?37suVC_vt~B%z22_d&(t3%bcdG}Ssisa5q((D5BI>oty-V8_E9Nh+p7vU$ue7li5*;LnnXrxN7T0;OYX)~1Q}cB` zU(3llOuBP$&OD&a-e+sVen_|=!b`E|d7X@sd;i@?HJpB>hF7iWlTEzaC3_ni?sBR< zp1dCs+xdzSl$pFPkv#Lpec>QccbX>2O-f#)BUq|YpR>mcAv)o-hxfFwRW@P>r-eKA zYC&#fk3p{OegNID_ji-sW3SG?Wsq1Zcpj^7wl@H2HOS)GL9L81g4Z+gOGVJGWmpoA3-jd>&v(CPALZ0Gn zXRYgSs(8=ks=ancJ{i1?kaOF5#QW53<9b0=BU?%7>3&OP-Zp6U;Dn+MZQW&@BM^oB z@9imm*Y7|jHGQh=(@B<3Jjg=QB-O4gbr^hbt1d}}=g1V*l%#eI)J$;Lp7a>Kx;tX0 z6fX|7;_ONi)&RXPD9z)v&-rf8k&RRCk}~FG3_)FCB+RbQqA^aX-Ayu#y#?)uS}2!qi&G+9!Vyw+W-H-V zAf|s0v{Gf%f&PcNu}^^#N(viu&o=L?B*}(LLZURl`mS78Dx3#s<2}$ieo7+{y98LG zfDCPw>6pc70)&_ znO4*^)l3Vm-NojLJy0A9WsJ|EptS9+fa7>~GCv|)Cjd{HOic$cPMN*f$&AXgXBS!ybEHDu{(Lmt#wB zsa(gVl6hR2+5;j&PI51Cyluaf%q%&fv4uARkp#4eF;E-iNiwimo?{EXT=v32n(Pc=6=f;!h@QPyAGp(LvES{SA5+qKL+MD0fLdSu4auVhy($;v=x@7|XKTQSq zUk56W6g&X$IP_!d*YN+Rx!87Nv9uhk<>G=$do!hDn`!LEnriqF2+Ios>9+V%!te2n z?KFuKWpFkb5WgxxbNFMsAr7=NDH|XA3f)SHZD ze=?t0+NY3Q@zb8k<(J6uq_a)tQ(h-jMNf%SHdYA0B?L7(?(N z`18bPsFUAn2NIHQ??Ms?dJU47GBvW{E#eYHD_avB;7e-gmNJ869=K z>?|;QF41I_0t;1KBinn}&LRi+H{&=AlWQN!iCuMonDREkdhc4H^8Afbn z+Z96fe%ZtsWAVmH(Cri9YS&Owli>*zbw$G1xu()5ubCFbsh;g5#kPZ%4=oc&EN275 zw-LiZ6UEyxW)z6IS8YhaC8CbZ>~gwS=EhQ!kUcJ5-ncxB#YgS2i}DjIdnR;*aY;l) z!UIgqKivcfb#tMqS&f3BR+QmuyI z?~0D`6N}&wkcp_004lXLcbL}|$gr0#LcB*SJ-(qA{>!N-e*9*+8K^^c*^~MtQ`2`Q zqw&3f1~7qD;fhKTX7z1@)DZGku?5*z=7JrhE?^05hE&|6` z^Vq0hzmwaWsXXjmS3L{-)wQ2Ne!0YsJAwjdvKA5V51FjYGMm8ZUE|CHU3(Nl zBS-AzK~c2F3+mb__+7r)YL0X+U1zFRD{LDtN5Zt^BP#?Z_A&**OVpR``zkd8@L`0hb<;oC! zSw}9RR5;YcCDoAay(qRVd!Q|})^%NRrYMz1X|*d3ct8H^+QCklq-S>R4i!iKC`D=* zH%AI@FeQMoBBn(vq*OYNZ1oI4@?-ayqJ@h5B6W$qHl3)Gz}<8xFb}*`0W2^5&WM#3 zy568iiBVj{tq3w0Tdx}9Qsq5J%6rW>gG=AQ3G)_Wlm5CJkZ$bKa0eU&cw^GC(zlV=Lfm~04n@aAd0 z4Jg0)*!=5wx$)^`lf{xtD!l@=_3a5oOv3`X0+eaEU9_l|6?I7`*mX zM)6g`B$7siBTQKo4YF_{Xl<~-ke)xZgh`A4l|H+mia`?>OOViox zb@q+t6 z?+MWRu#G1F5;()}k5L8ZUf`OKUqDK}t`3P|%sG-Esd(1kGF#`q8yoF&4O_MytE&y} zB(yu2i0%at>cQ4uZrdM}cA;{pt$5yA_(qq_8$1>~Kvd67Z zR0%Sw@tF@*lAq>NT5iQ)?ky3K1!@`kH42&^VOyW~D)S93f8bUUr*y2RT-)uIWgxT& zO7)T7&5Y;h?50E*HZUvR&0{!?xO}^Q5i!luV+#ux2oqHpqw@!dGZ)dInrsJ2H61PU zq5Rms7zZEKZg6s0U`)?9wA(4!*k=k^hZM0%7fnZpB_e_)0&IsvuF6<}o&EHJkw%si V_S(9L8wdPRQBapJmVNr}{{X!KkaGY4 literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/readme-part-3.md b/out/production/JavaSwingSimpleExercise/readme-part-3.md deleted file mode 100644 index 5491dba..0000000 --- a/out/production/JavaSwingSimpleExercise/readme-part-3.md +++ /dev/null @@ -1,89 +0,0 @@ -## Exercise 3: Theme Color Selector Application - -### Description & Goal - -Create a UI with several color buttons ("Red", "Green", "Blue", ...) that, when clicked, change the background color of the main panel. This exercise reinforces component integration, action commands, and background styling. - -### Code Breakdown - -**Part 1: Field Declarations** -Define the main panel and color buttons. - -```java -public class ThemeColorSelectorApp extends JFrame implements ActionListener { - private JPanel mainPanel; // The panel whose background will change - private JButton redButton; // Button to select red theme - private JButton greenButton; // Button to select green theme - private JButton blueButton; // Button to select blue theme -} -``` - -*Explanation:* We declare a `JPanel` to hold the background, and three `JButton` instances for the color options. - -**Part 2: Constructor Setup** -Initialize components, set action commands, and arrange using `BorderLayout`. - -```java -public ThemeColorSelectorApp() { - setTitle("Theme Color Selector"); - - mainPanel = new JPanel(); - - redButton = new JButton("Red"); - greenButton = new JButton("Green"); - blueButton = new JButton("Blue"); - - redButton.setActionCommand("RED"); - greenButton.setActionCommand("GREEN"); - blueButton.setActionCommand("BLUE"); - - redButton.addActionListener(this); - greenButton.addActionListener(this); - blueButton.addActionListener(this); - - JPanel buttonPanel = new JPanel(); - buttonPanel.add(redButton); - buttonPanel.add(greenButton); - buttonPanel.add(blueButton); - - setLayout(new BorderLayout()); - add(buttonPanel, BorderLayout.NORTH); - add(mainPanel, BorderLayout.CENTER); -} -``` - -*Explanation:* In the constructor, we instantiate the panel and buttons, assign action commands to differentiate them in the listener, attach the same `ActionListener`, and place the buttons at the top with the main panel filling the center. - -**Part 3: Event Handling** -Change the `mainPanel` background based on the button clicked. - -```java -@Override -public void actionPerformed(ActionEvent e) { - switch (e.getActionCommand()) { - case "RED": mainPanel.setBackground(Color.RED); break; - case "GREEN": mainPanel.setBackground(Color.GREEN); break; - case "BLUE": mainPanel.setBackground(Color.BLUE); break; - } -} -``` - -*Explanation:* We check the action command of the event and apply the corresponding `Color` to the panel's background. - -**Part 4: Application Entry Point** -Launch the application safely on the Swing thread. - -```java -public static void main(String[] args) { - SwingUtilities.invokeLater(() -> new ThemeColorSelectorApp().setVisible(true)); -} -``` - -*Explanation:* We use `invokeLater` to ensure the GUI is created and manipulated on the Event Dispatch Thread, then display the frame. ---- -### output of the code: -... -... -... -... - diff --git a/out/production/JavaSwingSimpleExercise/readme-part-4.md b/out/production/JavaSwingSimpleExercise/readme-part-4.md new file mode 100644 index 0000000..2b65f53 --- /dev/null +++ b/out/production/JavaSwingSimpleExercise/readme-part-4.md @@ -0,0 +1,132 @@ +## Exercise 4: User Registration Form Application + +### Description & Goal + +Design a comprehensive registration form using `GridBagLayout`. Students will arrange multiple Swing components—text fields, password field, radio buttons, checkboxes, and a submit button—in a responsive grid. The goal is to practice advanced layout management and component integration. + +### Code Breakdown + +**Part 1: Field Declarations** +Define all UI components and layout constraints. + +```java +public class RegistrationFormApp extends JFrame implements ActionListener { + private JTextField txtName; // User name input + private JTextField txtEmail; // User email input + private JPasswordField txtPassword; // Password input + private JRadioButton rbMale, rbFemale; // Gender selection + private JCheckBox cbJava, cbPython, cbCpp; // Interests selection + private JButton btnSubmit; // Submit form button + private GridBagConstraints gbc; // Layout constraints +} +``` + +*Explanation:* We declare fields for name, email, and password inputs; radio buttons for gender; checkboxes for interests; a submit button; and `GridBagConstraints` for positioning. + +**Part 2: Constructor Setup** +Initialize components, configure `GridBagLayout`, and add items. + +```java +public RegistrationFormApp() { + setTitle("User Registration"); + setSize(500, 350); + setDefaultCloseOperation(EXIT_ON_CLOSE); + setLocationRelativeTo(null); + + JPanel panel = new JPanel(new GridBagLayout()); + gbc = new GridBagConstraints(); + gbc.insets = new Insets(5, 5, 5, 5); + gbc.fill = GridBagConstraints.HORIZONTAL; + + // Row 0: Name label & field + gbc.gridx = 0; gbc.gridy = 0; + panel.add(new JLabel("Name:"), gbc); + gbc.gridx = 1; + txtName = new JTextField(20); + panel.add(txtName, gbc); + + // Row 1: Email label & field + gbc.gridx = 0; gbc.gridy = 1; + panel.add(new JLabel("Email:"), gbc); + gbc.gridx = 1; + txtEmail = new JTextField(20); + panel.add(txtEmail, gbc); + + // Row 2: Password label & field + gbc.gridx = 0; gbc.gridy = 2; + panel.add(new JLabel("Password:"), gbc); + gbc.gridx = 1; + txtPassword = new JPasswordField(20); + panel.add(txtPassword, gbc); + + // Row 3: Gender selection + gbc.gridx = 0; gbc.gridy = 3; + panel.add(new JLabel("Gender:"), gbc); + gbc.gridx = 1; + rbMale = new JRadioButton("Male"); rbFemale = new JRadioButton("Female"); + ButtonGroup bg = new ButtonGroup(); bg.add(rbMale); bg.add(rbFemale); + JPanel genderPanel = new JPanel(); genderPanel.add(rbMale); genderPanel.add(rbFemale); + panel.add(genderPanel, gbc); + + // Row 4: Interests selection + gbc.gridx = 0; gbc.gridy = 4; + panel.add(new JLabel("Interests:"), gbc); + gbc.gridx = 1; + cbJava = new JCheckBox("Java"); cbPython = new JCheckBox("Python"); cbCpp = new JCheckBox("C++"); + JPanel interestPanel = new JPanel(); + interestPanel.add(cbJava); interestPanel.add(cbPython); interestPanel.add(cbCpp); + panel.add(interestPanel, gbc); + + // Row 5: Submit button + gbc.gridx = 1; gbc.gridy = 5; + gbc.anchor = GridBagConstraints.CENTER; + btnSubmit = new JButton("Submit"); + btnSubmit.addActionListener(this); + panel.add(btnSubmit, gbc); + + add(panel); +} +``` + +*Explanation:* We configure `GridBagLayout` with padding, add labels and inputs sequentially by grid coordinates, and group related radio and checkbox components in sub-panels. + +**Part 3: Event Handling** +Collect input values on submit and display them. + +```java +@Override +public void actionPerformed(ActionEvent e) { + String name = txtName.getText(); + String email = txtEmail.getText(); + String gender = rbMale.isSelected() ? "Male" : rbFemale.isSelected() ? "Female" : "Unspecified"; + String interests = ""; + if (cbJava.isSelected()) interests += "Java "; + if (cbPython.isSelected()) interests += "Python "; + if (cbCpp.isSelected()) interests += "C++ "; + + JOptionPane.showMessageDialog(this, + "Name: " + name + "\n" + + "Email: " + email + "\n" + + "Gender: " + gender + "\n" + + "Interests: " + interests, + "Registration Details", JOptionPane.INFORMATION_MESSAGE); +} +``` + +*Explanation:* On button press, we read each field's value, determine selected options, and show a summary dialog. + +**Part 4: Application Entry Point** +Run the form on the Swing event thread. + +```java +public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new RegistrationFormApp().setVisible(true)); +} +``` + +*Explanation:* Ensures safe creation and display of the GUI on the Event Dispatch Thread. +--- +### output of the code: +... +... +... diff --git a/part-4/E4.java b/part-4/E4.java deleted file mode 100644 index e69de29..0000000 diff --git a/part-4/RegistrationFormApp.java b/part-4/RegistrationFormApp.java new file mode 100644 index 0000000..3f3d1a8 --- /dev/null +++ b/part-4/RegistrationFormApp.java @@ -0,0 +1,102 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class RegistrationFormApp extends JFrame implements ActionListener { + private JTextField txtName; // User name input + private JTextField txtEmail; // User email input + private JPasswordField txtPassword; // Password input + private JRadioButton rbMale, rbFemale; // Gender selection + private JCheckBox cbJava, cbPython, cbCpp; // Interests selection + private JButton btnSubmit; // Submit form button + private GridBagConstraints gbc; // Layout constraints + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> { + JFrame frame = new RegistrationFormApp(); + frame.setSize(300, 300); + frame.setLocationRelativeTo(null); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setVisible(true); + }); + } + + public RegistrationFormApp() { + setTitle("User Registration"); + setSize(500, 350); + setDefaultCloseOperation(EXIT_ON_CLOSE); + setLocationRelativeTo(null); + + JPanel panel = new JPanel(new GridBagLayout()); + gbc = new GridBagConstraints(); + gbc.insets = new Insets(5, 5, 5, 5); + gbc.fill = GridBagConstraints.HORIZONTAL; + + // Row 0: Name label & field + gbc.gridx = 0; gbc.gridy = 0; + panel.add(new JLabel("Name:"), gbc); + gbc.gridx = 1; + txtName = new JTextField(20); + panel.add(txtName, gbc); + + // Row 1: Email label & field + gbc.gridx = 0; gbc.gridy = 1; + panel.add(new JLabel("Email:"), gbc); + gbc.gridx = 1; + txtEmail = new JTextField(20); + panel.add(txtEmail, gbc); + + // Row 2: Password label & field + gbc.gridx = 0; gbc.gridy = 2; + panel.add(new JLabel("Password:"), gbc); + gbc.gridx = 1; + txtPassword = new JPasswordField(20); + panel.add(txtPassword, gbc); + + // Row 3: Gender selection + gbc.gridx = 0; gbc.gridy = 3; + panel.add(new JLabel("Gender:"), gbc); + gbc.gridx = 1; + rbMale = new JRadioButton("Male"); rbFemale = new JRadioButton("Female"); + ButtonGroup bg = new ButtonGroup(); bg.add(rbMale); bg.add(rbFemale); + JPanel genderPanel = new JPanel(); genderPanel.add(rbMale); genderPanel.add(rbFemale); + panel.add(genderPanel, gbc); + + // Row 4: Interests selection + gbc.gridx = 0; gbc.gridy = 4; + panel.add(new JLabel("Interests:"), gbc); + gbc.gridx = 1; + cbJava = new JCheckBox("Java"); cbPython = new JCheckBox("Python"); cbCpp = new JCheckBox("C++"); + JPanel interestPanel = new JPanel(); + interestPanel.add(cbJava); interestPanel.add(cbPython); interestPanel.add(cbCpp); + panel.add(interestPanel, gbc); + + // Row 5: Submit button + gbc.gridx = 1; gbc.gridy = 5; + gbc.anchor = GridBagConstraints.CENTER; + btnSubmit = new JButton("Submit"); + btnSubmit.addActionListener(this); + panel.add(btnSubmit, gbc); + + add(panel); + } + + @Override + public void actionPerformed(ActionEvent e) { + String name = txtName.getText(); + String email = txtEmail.getText(); + String gender = rbMale.isSelected() ? "Male" : rbFemale.isSelected() ? "Female" : "Unspecified"; + String interests = ""; + if (cbJava.isSelected()) interests += "Java "; + if (cbPython.isSelected()) interests += "Python "; + if (cbCpp.isSelected()) interests += "C++ "; + + JOptionPane.showMessageDialog(this, + "Name: " + name + "\n" + + "Email: " + email + "\n" + + "Gender: " + gender + "\n" + + "Interests: " + interests, + "Registration Details", JOptionPane.INFORMATION_MESSAGE); + } +} \ No newline at end of file