From c4910722e926dc4471fd0bc96a5898fe465310b3 Mon Sep 17 00:00:00 2001 From: Alexis Delhaie Date: Tue, 27 Oct 2020 22:02:13 +0100 Subject: [PATCH] Adding banner, Response tab, fix method combobox --- javafx.bootstrap/javafx.bootstrap/main.cpp | 7 +- .../alexisdelhaie/endpoint/MainWindow.form | 2 +- .../alexisdelhaie/endpoint/MainWindow.java | 96 +++++++++++++----- .../endpoint/builder/TabBuilder.java | 53 ++++++++-- .../endpoint/configuration/AboutDialog.form | 18 +++- .../endpoint/configuration/AboutDialog.java | 13 ++- .../alexisdelhaie/endpoint/http/Response.java | 4 +- .../endpoint/utils/RequestTab.java | 55 ++++++++++ src/main/resources/banner.png | Bin 0 -> 44264 bytes src/main/resources/icon.png | Bin 22975 -> 3535 bytes 10 files changed, 201 insertions(+), 47 deletions(-) create mode 100644 src/main/java/ovh/alexisdelhaie/endpoint/utils/RequestTab.java create mode 100644 src/main/resources/banner.png diff --git a/javafx.bootstrap/javafx.bootstrap/main.cpp b/javafx.bootstrap/javafx.bootstrap/main.cpp index 5365560..d19e09e 100644 --- a/javafx.bootstrap/javafx.bootstrap/main.cpp +++ b/javafx.bootstrap/javafx.bootstrap/main.cpp @@ -6,6 +6,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdParam, int iCmdShow) { + int return_code = 0; STARTUPINFO si; PROCESS_INFORMATION pi; @@ -16,17 +17,15 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdParam LPTSTR command = _tcsdup(TEXT(".\\runtime\\bin\\javaw.exe -cp .\\app\\EndPoint.jar ovh.alexisdelhaie.endpoint.Application")); if (!CreateProcess(NULL, command, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { - CloseHandle(&pi.hProcess); - CloseHandle(&pi.hThread); int msgboxID = MessageBox( NULL, TEXT("Unable to start the JVM. Try reinstalling the program to fix this problem."), TEXT("EndPoint bootstrap"), MB_ICONHAND | MB_OK | MB_DEFBUTTON1 ); - return -1; + return_code = -1; } CloseHandle(&pi.hProcess); CloseHandle(&pi.hThread); - return 0; + return return_code; } \ No newline at end of file diff --git a/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.form b/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.form index 83b9eb6..d916b32 100644 --- a/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.form +++ b/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.form @@ -116,7 +116,7 @@ - + diff --git a/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.java b/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.java index 354d1f1..f36a592 100644 --- a/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.java +++ b/src/main/java/ovh/alexisdelhaie/endpoint/MainWindow.java @@ -8,6 +8,7 @@ import ovh.alexisdelhaie.endpoint.http.Request; import ovh.alexisdelhaie.endpoint.http.RequestBuilder; import ovh.alexisdelhaie.endpoint.http.Response; import ovh.alexisdelhaie.endpoint.utils.MessageDialog; +import ovh.alexisdelhaie.endpoint.utils.RequestTab; import javax.imageio.ImageIO; import javax.swing.*; @@ -17,9 +18,10 @@ import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; -import java.util.HashMap; import java.util.Objects; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; @@ -47,6 +49,7 @@ public class MainWindow extends JFrame { // Constants public final static int WIDTH = 1280; public final static int HEIGHT = 720; + public final static String NEW_TAB_NAME = "New request"; private JPanel contentPane; private JComboBox methodBox; @@ -59,25 +62,17 @@ public class MainWindow extends JFrame { private JButton settingsButton; private final ConfigurationProperties props; - private final HashMap urls; - - private final ConcurrentHashMap controlState; - private final ConcurrentHashMap responses; + private final ConcurrentHashMap tabs; public MainWindow() throws IOException { props = new ConfigurationProperties(); - controlState = new ConcurrentHashMap<>(); - responses = new ConcurrentHashMap<>(); - urls = new HashMap<>(); + tabs = new ConcurrentHashMap<>(); setIconImage(ImageIO.read(MainWindow.class.getResource("/icon.png"))); setContentPane(contentPane); setMinimumSize(new Dimension(WIDTH, HEIGHT)); setSize(WIDTH, HEIGHT); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - TabBuilder.create(tabbedPane1, "New request", urls, urlField); - Component tab = tabbedPane1.getSelectedComponent(); - urls.put(tab.hashCode(), ""); - enableControl(true, tab.hashCode()); + newTab(); settingsButton.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -89,11 +84,7 @@ public class MainWindow extends JFrame { @Override public void mouseClicked(MouseEvent e) { super.mouseClicked(e); - TabBuilder.create(tabbedPane1, "New request", urls, urlField); - Component tab = tabbedPane1.getSelectedComponent(); - urls.put(tab.hashCode(), ""); - enableControl(true, tab.hashCode()); - showStatus(tab.hashCode()); + newTab(); } }); sendButton.addMouseListener(new MouseAdapter() { @@ -110,9 +101,22 @@ public class MainWindow extends JFrame { tabbedPane1.addChangeListener(e -> { if (tabbedPane1.getSelectedIndex() != -1) { int hashCode = tabbedPane1.getSelectedComponent().hashCode(); - urlField.setText(urls.get(hashCode)); - enableControl(controlState.get(hashCode), hashCode); - showStatus(tab.hashCode()); + RequestTab requestTab = tabs.get(hashCode); + if (Objects.nonNull(requestTab)) { + urlField.setText(requestTab.getUrl()); + methodBox.setSelectedItem(requestTab.getMethod()); + enableControl(requestTab.isRunning(), hashCode); + showStatus(hashCode); + } + } + }); + methodBox.addItemListener((e) -> { + if (tabbedPane1.getSelectedIndex() != -1) { + int hashCode = tabbedPane1.getSelectedComponent().hashCode(); + RequestTab requestTab = tabs.get(hashCode); + if (Objects.nonNull(requestTab)) { + requestTab.setMethod((String) methodBox.getSelectedItem()); + } } }); urlField.getDocument().addDocumentListener(new DocumentListener() { @@ -128,23 +132,58 @@ public class MainWindow extends JFrame { public void warn() { if (tabbedPane1.getSelectedIndex() != -1) { - urls.put(tabbedPane1.getSelectedComponent().hashCode(), urlField.getText()); + int i = tabbedPane1.indexOfComponent(tabbedPane1.getSelectedComponent()); + JLabel title = TabBuilder.getLabel(i); + tabs.get(tabbedPane1.getSelectedComponent().hashCode()).setUrl(urlField.getText()); + if (Objects.nonNull(title)) { + if (!urlField.getText().isBlank()) { + try { + URL u = new URL((!urlField.getText().toLowerCase().startsWith("http://") && + !urlField.getText().toLowerCase().startsWith("https://")) ? + "http://" + urlField.getText() : urlField.getText()); + if (u.getPath().isBlank()) { + title.setText(u.getHost()); + } else { + title.setText(String.format("%s (%s)", u.getPath(), u.getHost())); + } + } catch (MalformedURLException e) { + title.setText(urlField.getText()); + } + } else { + title.setText(NEW_TAB_NAME); + } + } } } }); } + private void newTab() { + RequestTab requestTab = new RequestTab((String) methodBox.getSelectedItem()); + TabBuilder.create(tabbedPane1, NEW_TAB_NAME, tabs, urlField); + Component tab = tabbedPane1.getSelectedComponent(); + tabs.put(tab.hashCode(), requestTab); + enableControl(true, tab.hashCode()); + showStatus(tab.hashCode()); + urlField.setText(""); + } + private void sendRequest() { Optional possibleTab = getSelectedTab(); if (possibleTab.isPresent()) { JSplitPane tab = possibleTab.get(); int tabHashCode = tab.hashCode(); + RequestTab requestTab = tabs.get(tabHashCode); statusLabel.setVisible(false); enableControl(false, tabHashCode); int i = tabbedPane1.indexOfComponent(tab); JTextArea responseBody = TabBuilder.getResponseArea(i); + JTextArea responseHeader = TabBuilder.getResponseHeaderTextArea(i); + JTextArea requestHeader = TabBuilder.getRequestHeaderTextArea(i); responseBody.setForeground(Color.black); responseBody.setText(""); + responseHeader.setText(""); + requestHeader.setText(""); JTextArea bodyField = TabBuilder.getBody(i); new Thread(() -> { try { @@ -163,14 +202,16 @@ public class MainWindow extends JFrame { } if (possibleRes.isPresent()) { Response res = possibleRes.get(); - responses.put(tabHashCode, res); + requestTab.setRes(res); responseBody.setText(res.getBody()); + requestHeader.setText(res.getRequest().getRawRequest()); + responseHeader.setText(res.getRawHeaders()); } } catch (KeyManagementException | IOException | NoSuchAlgorithmException e) { responseBody.setForeground(Color.red); responseBody.setText(e.getMessage()); - if (responses.containsKey(tabHashCode)) { - responses.remove(tabHashCode); + if (Objects.nonNull(requestTab.getRes())) { + requestTab.setRes(null); showStatus(tabHashCode); } } finally { @@ -185,7 +226,7 @@ public class MainWindow extends JFrame { private void enableControl(Boolean state, int hashCode) { if (Objects.nonNull(state)) { - controlState.put(hashCode, state); + tabs.get(hashCode).setRunning(state); if (tabbedPane1.getSelectedComponent().hashCode() == hashCode) { sendButton.setEnabled(state); urlField.setEnabled(state); @@ -196,10 +237,11 @@ public class MainWindow extends JFrame { } private void showStatus(int hashCode) { - if (controlState.get(hashCode) && responses.containsKey(hashCode) && + RequestTab requestTab = tabs.get(hashCode); + if (requestTab.isRunning() && Objects.nonNull(requestTab.getRes()) && tabbedPane1.getSelectedComponent().hashCode() == hashCode) { statusLabel.setForeground(Color.BLACK); - Response res = responses.get(hashCode); + Response res = requestTab.getRes(); final StringBuilder sb = new StringBuilder(); if (res.getStatusCode() != -1) { sb.append(res.getStatusCode()) diff --git a/src/main/java/ovh/alexisdelhaie/endpoint/builder/TabBuilder.java b/src/main/java/ovh/alexisdelhaie/endpoint/builder/TabBuilder.java index 881a393..a8d9ed8 100644 --- a/src/main/java/ovh/alexisdelhaie/endpoint/builder/TabBuilder.java +++ b/src/main/java/ovh/alexisdelhaie/endpoint/builder/TabBuilder.java @@ -1,5 +1,6 @@ package ovh.alexisdelhaie.endpoint.builder; +import ovh.alexisdelhaie.endpoint.utils.RequestTab; import ovh.alexisdelhaie.endpoint.utils.Tools; import ovh.alexisdelhaie.endpoint.utils.adapter.CustomDeleteMouseAdapter; import ovh.alexisdelhaie.endpoint.utils.adapter.CustomNewMouseAdapter; @@ -12,17 +13,18 @@ import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.HashMap; +import java.util.concurrent.ConcurrentHashMap; public class TabBuilder { - private static final HashMap indexes = new HashMap<>(); + public static final ConcurrentHashMap indexes = new ConcurrentHashMap<>(); - public static void create(JTabbedPane tab, String label, HashMap urls, JTextField urlField) { + public static void create(JTabbedPane tab, String label, ConcurrentHashMap tabs, JTextField urlField) { Component c = tab.add("", buildMainPanel(urlField)); int index = tab.indexOfComponent(c); - updateIndexes(index); - tab.setTabComponentAt(index, buildTabPanel(tab, c, label, urls)); + tab.setTabComponentAt(index, buildTabPanel(tab, c, label, tabs)); tab.setSelectedComponent(c); + updateIndexes(index); } private static void updateIndexes(int index) { @@ -30,16 +32,23 @@ public class TabBuilder { indexes.put("main[" + index + "].body", indexes.get("main[waiting].body")); indexes.put("main[" + index + "].params", indexes.get("main[waiting].params")); indexes.put("main[" + index + "].headers", indexes.get("main[waiting].headers")); + indexes.put("main[" + index + "].tabTitle", indexes.get("main[waiting].tabTitle")); + indexes.put("main[" + index + "].requestHeaderTextArea", indexes.get("main[waiting].requestHeaderTextArea")); + indexes.put("main[" + index + "].responseHeaderTextArea", indexes.get("main[waiting].responseHeaderTextArea")); indexes.remove("main[waiting].responseTextArea"); indexes.remove("main[waiting].body"); indexes.remove("main[waiting].params"); indexes.remove("main[waiting].headers"); + indexes.remove("main[waiting].tabTitle"); + indexes.remove("main[waiting].requestHeaderTextArea"); + indexes.remove("main[waiting].responseHeaderTextArea"); } - private static JPanel buildTabPanel(JTabbedPane tab, Component c, String label, HashMap urls) { + private static JPanel buildTabPanel(JTabbedPane tab, Component c, String label, ConcurrentHashMap tabs) { JPanel p = new JPanel(new GridBagLayout()); p.setOpaque(false); JLabel l = new JLabel(label); + indexes.put("main[waiting].tabTitle", l); GridBagConstraints g = new GridBagConstraints(); g.gridx = 0; g.gridy = 0; @@ -47,11 +56,11 @@ public class TabBuilder { p.add(l, g); g.gridx++; g.weightx = 0; - p.add(buildCloseButton(tab, c, urls), g); + p.add(buildCloseButton(tab, c, tabs), g); return p; } - private static JButton buildCloseButton(JTabbedPane tab, Component c, HashMap urls) { + private static JButton buildCloseButton(JTabbedPane tab, Component c, ConcurrentHashMap tabs) { JButton b = new JButton("×"); b.setBorderPainted(false); b.setFocusPainted(false); @@ -61,7 +70,7 @@ public class TabBuilder { @Override public void mouseClicked(MouseEvent e) { super.mouseClicked(e); - urls.remove(c.hashCode()); + tabs.remove(c.hashCode()); tab.remove(c); } }); @@ -89,6 +98,22 @@ public class TabBuilder { JTextArea body = new JTextArea(); indexes.put("main[waiting].body", body); p.add("Body", body); + // Response tab + JTextArea repHeader = new JTextArea(); + repHeader.setBackground(Color.WHITE); + repHeader.setEditable(false); + JScrollPane rep = new JScrollPane(repHeader); + JTextArea reqHeader = new JTextArea(); + reqHeader.setBackground(Color.WHITE); + reqHeader.setEditable(false); + JScrollPane req = new JScrollPane(reqHeader); + indexes.put("main[waiting].requestHeaderTextArea", reqHeader); + indexes.put("main[waiting].responseHeaderTextArea", repHeader); + p.add("Response", new JSplitPane( + JSplitPane.HORIZONTAL_SPLIT, + rep, + req + )); return p; } @@ -100,6 +125,14 @@ public class TabBuilder { return (JTextArea) indexes.get("main[" + index + "].body"); } + public static JTextArea getRequestHeaderTextArea(int index) { + return (JTextArea) indexes.get("main[" + index + "].requestHeaderTextArea"); + } + + public static JTextArea getResponseHeaderTextArea(int index) { + return (JTextArea) indexes.get("main[" + index + "].responseHeaderTextArea"); + } + public static HashMap getParams(int index) { JTable t = (JTable) indexes.get("main[" + index + "].params"); return Tools.tableToHashMap(t); @@ -110,6 +143,10 @@ public class TabBuilder { return Tools.tableToHashMap(t); } + public static JLabel getLabel(int index) { + return (JLabel) indexes.get("main[" + index + "].tabTitle"); + } + private static JPanel buildParamsTab(boolean isParam, JTextField urlField) { String[] headers = {"Keys", "Values"}; DefaultTableModel model = new DefaultTableModel(new Object[][]{}, headers); diff --git a/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.form b/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.form index 4703c1d..b09a23d 100644 --- a/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.form +++ b/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.form @@ -1,9 +1,9 @@
- + - + @@ -11,7 +11,7 @@ - + @@ -58,6 +58,18 @@ + + + + + + + + + + + + diff --git a/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.java b/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.java index d4dc42f..eaf3a30 100644 --- a/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.java +++ b/src/main/java/ovh/alexisdelhaie/endpoint/configuration/AboutDialog.java @@ -1,20 +1,24 @@ package ovh.alexisdelhaie.endpoint.configuration; +import ovh.alexisdelhaie.endpoint.MainWindow; import ovh.alexisdelhaie.endpoint.utils.Tools; +import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; +import java.io.IOException; public class AboutDialog extends JDialog { - public static final int WIDTH = 450; + public static final int WIDTH = 740; public static final int HEIGHT = 500; - public static final String VERSION = "0.1.3"; + public static final String VERSION = "0.1.4"; private JPanel contentPane; private JLabel version; private JLabel javaVersion; + private JLabel banner; private AboutDialog() { setContentPane(contentPane); @@ -22,6 +26,11 @@ public class AboutDialog extends JDialog { setTitle("About EndPoint"); version.setText("Version: " + VERSION + " (NOT FINISHED)"); javaVersion.setText("Software: Java " + System.getProperty("java.version") + " (GUI: Java Swing)"); + try { + banner.setIcon(new ImageIcon(ImageIO.read(MainWindow.class.getResource("/banner.png")))); + } catch (IOException e) { + e.printStackTrace(); + } } public static void showDialog() { diff --git a/src/main/java/ovh/alexisdelhaie/endpoint/http/Response.java b/src/main/java/ovh/alexisdelhaie/endpoint/http/Response.java index f335898..b3ab704 100644 --- a/src/main/java/ovh/alexisdelhaie/endpoint/http/Response.java +++ b/src/main/java/ovh/alexisdelhaie/endpoint/http/Response.java @@ -51,13 +51,13 @@ public class Response { } private void parseStatus(String l) { - Pattern p = Pattern.compile("^(HTTP/1.1)\\s([0-9]{3})\\s(.+)$"); + Pattern p = Pattern.compile("^(HTTP/[0-2].[0-1])\\s([0-9]{3})\\s(.+)$"); Matcher m = p.matcher(l); if (m.matches()) { statusCode = Integer.parseInt(m.group(2)); status = m.group(3); } else { - p = Pattern.compile("^(HTTP/1.1)\\s([0-9]{3})?(.*)$"); + p = Pattern.compile("^(HTTP/[0-2].[0-1])\\s([0-9]{3})?(.*)$"); m = p.matcher(l); if (m.matches()) { statusCode = Integer.parseInt(m.group(2)); diff --git a/src/main/java/ovh/alexisdelhaie/endpoint/utils/RequestTab.java b/src/main/java/ovh/alexisdelhaie/endpoint/utils/RequestTab.java new file mode 100644 index 0000000..95cec82 --- /dev/null +++ b/src/main/java/ovh/alexisdelhaie/endpoint/utils/RequestTab.java @@ -0,0 +1,55 @@ +package ovh.alexisdelhaie.endpoint.utils; + +import ovh.alexisdelhaie.endpoint.http.Response; + +public class RequestTab { + + private String url; + private boolean running; + private Response res; + private String method; + + public RequestTab(String method) { + url = ""; + running = false; + res = null; + this.method = method; + } + + public String getUrl() { + return url; + } + + public RequestTab setUrl(String url) { + this.url = url; + return this; + } + + public boolean isRunning() { + return running; + } + + public RequestTab setRunning(boolean running) { + this.running = running; + return this; + } + + public Response getRes() { + return res; + } + + public RequestTab setRes(Response res) { + this.res = res; + return this; + } + + public String getMethod() { + return method; + } + + public RequestTab setMethod(String method) { + this.method = method; + return this; + } + +} diff --git a/src/main/resources/banner.png b/src/main/resources/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..2727c01db0fceadacb58c23b1a5235264cda7e06 GIT binary patch literal 44264 zcmV)gK%~EkP)EX>4Tx04R}tkv&MmKpe$iQ>9fZ4pvZc$WWauh>AE$6^me@v=v%)FuC+YXws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;lcSTOi`@MHhnTM+AcsGxbDzAp_6xbq^n3@1i`*``n+SN6DKE@QK8;OgAjzb>itw zOXs{#9A+g+AwDM_Gw6cEk6f2se&bwpSm2pqBa@mV4ik&THkR9%l?;`5ia4UE8s!UF zmle)ioYiubHSft^7|LtQX|B^8MjVSsAPEsNs@Omo7NWFjq?kz2e$2x^_CX>@2HM@dakSAh-}001BWNkl~w& znS<5zAig{_8Slif>gc( z>G5EkU%hrpPM_aPK!iZM9fIYKwMP<=*_Vpz$aPHP2NsfT0Q1lz=;K5 zt{p%2oq^G8Oj~iMxVD<7*`Ehw?9LNZ%Hg*{ow;BC0JKKk{s!NW>fqY&8 zs%WQ5wjqyqe6tVij?(AJXoft&JIL^P{G8lBJKAE~ve+2lL~nbheMa5;BaiYi7sE=JN$twO zCsS7Oz?1{svNz3Nkr;1F{2wnLw1^ zaK!O|C$H?bhru)Nx`PQ0N3{Uu{#?ThaYQ{JoD4Wf1Yi&%3G9r4zN`smX9R=+AS4fv zJL$7c>Nf!Fje$;Bzq}_o|6&_BHV<@LKq!D=1ndoGT)g{bZSH@?4G3865mtMItv=(@ z4r8;=2UD4+0J*-~bQ(DrmP{B%Kr^TZh{>};P*V9xsrX#dFcN^xQ45Qs0eX#*{+_eF z|Db*7AlXs%%la-sK&wG$hQKHSMiE;ftBr%OF4@jsI?@0?rGbWHTYG4m@#HTsExomdvVC<#a#fBnf=*e{l}c zS^+Rf7)&V%BLIz%59DPf3sr2M`NCcgXToa`mYLfO6gysjW%7DfW0S(U%ZMIIo^dmX z2O6WO{^&F;-WY2%%~%p54bUc#mvhj3VW0r&N+2vNSYPP|!IkW=9UP~Cn9X~j>c*Z_ zi31}6uxV>cIrz=Mu>c4NQvjSY#w;|pm@+`DvdzjdIgw5z$dp+JyqvITShlp zbpoZjNe21}Lp&=IwjBbiU0`*tST6lhaj-Eh2);Oouj%1Sgy-CFKy24DVeB|1Fk9^A z<>L#83ye|)aHi>RX(D#m1nbvpN$;oIBy<{tZu6N_)fxeCa!KGg16zH@`Ax=P1~2D9 z1L1V(Hi5xj{&yq^81EAxE+Jk>1-3+4ogHz2D|;Or>F(A(m&!R#Lsm?(s|nPbA@e4U!KRw(@3joJ z*963{$RW)0xwfkS#QVh#*M2NDuA%PbhJw&*#z6RbvB170#8QW_)FJE+8JBk$>wD|~ zrc~X=%s}=~7YL_PiLC)Jmh}NKO#(*!OkGA>gr{s-vvM>dt~4-Uq2f*+%NB zZX*W3&&EMnw@EnNB%D|PuI@0d>@p(B-sLtEkUIeoPM5hRu+cZ#A4wQ_0Af-4iWVE+ z!h1n}&*%K^9L_9UOYni?K5I0L%+0W17x5$0)}HZObLr2wlNTvNed(t;H!I1 zFm^_S?TFk!*alo#)%EINIM)Qb*kSb;QUSoqF|u>2x?wH?dn%8nC9T#|(myM14NUR% zXp)8)q=pa*6HGZMPC;-2iiuJNSSYM8ic*Rss7?dE5`d7|Ifc2E!p_By)XmT5~cGO3Ac# z0(29QN+c52SjNDYQn`dkf}=QLje$I%E(b_yfL%y3X_ZC7;u?&w36vE;oQsQ9K#amp z5`bWaAe~zY$nG#f6>RY=dR7$_iz!EwVhSs@U|%#)F*~11A~<=Jg9z9ebJkb}AVf8< zm`da*Ri;Dx!WerTj6B$36}+|_fVdq3C+1_lY1J}Jm;zLf`>faT)EeQQ%Y^N*-!yyr z=lKo7O^2W1?C^eEUJ0PpSm91Qn6Uy=yqQW-=u z#8>1Z3<<@R9WF4hbwTWY0b!zCF0o^Asu@Sg{9s^|rwcst{t*&ahaL19Lv)*CE5V{& z*CfOX`879Ht`(Eqe<0#Pi3y6cS41)}l4b}3BTD^*HA6>6#K7ed)d0dNkX6^q?C&O| zA)Cm5D}Z1ZD2CM5HNpT3^NZ-tFQDD&qSfso2wMo!;TM%x>J;$FD8hI&z-Vt5{k>XfN*|{H}y_E|@$3mANmP9B4k~<@y9~GTc z1%RlOk>?2kD^CQ3iM*SusjSyro&JacL~(R>x~z79Lv!#B02+)@>P_jY)hP(Rw+sYV ztoz(0!pRlRWB{|qur%!fuJf|gg}-Y=8JL{{5W}|5q|c|szKo|lhHVK&JRRR@($oRR z&!(l570oCT2#K@!8m>bil(e;#GliDl zFYM0YrZAREkPW;V_=&lCP*KlHuDY$Vs$9wM*r5QzX56NaqZABtVx6Y75}fN}4TlH@ zV{IsE0bw?n;2g{<5{L{SO9K=ue`|6H6*MyljKzg{EG(^}yRd{-w+BI@@Q^ZGq)f$X zgsOrYftbB(23<7UUG$a@;m{2Lv&3L`2RoY^*j!t~#g%z98AR3BnkXk-%*+w{X`<*duBPS?W{ za__`RLRAIKH`e{O&Dztr`2G@v2sCg$jDT&04K}ZZlV=z)RhPkj>x9XXu!JfVOvQ)6cbFEw} z>||7Y|D5Y`>0OaZ%(@m6S>5p?yl8um@4kGFfgAb5cX)t%GhK! znBqVHVGe{9-ksGzIfi78gY1;Etc?YL5+JNdAoHi+62rBTbv%Z+i7F< z$Z_|^`t6g3UGp&pdW`l0nCTcDp5j zc%fS@U9bUDa~}=NmVjGOeW!_1vep$uHvv2BgO!^>41ik={Jmme)L>l&_{e-dkJ8+K5Pn8l8P zYhr6goUyW;DY&!b!(c>-1BFQ3fm0AH<8>JTmVgG34L}TJI$({7R=!89WEoRHwo5i) zf*zH<6hs~X$@Maj{}9mSK%pI%YhkuYI~NrQ$K%Y{B|=@|bjs}Xv@POV#d(5A2gF=$ zrT7>odx!5 zf(Yog2;COp$ULyI$GEhex4j1qgn@Vv9}3-O&8#=0u|Ok~Q(HaKl$n*z@66#Q#a+V0 zR(0E)GG2}LrNa0fJCri*V9nlDr=VC#lYDIy=)rV0`?Lb+RoCgvFGFhJm~Gz^*7%#x zH1YQDK8=^W;5ZseOAtw5eVg&(46O6cSU#*@BW!gb#@4k#fYgeV+mHv)FY?AdnM z;Yt7?VsbvW$)9v3bUkxfm$fwu)jYy|ZB+B|x|i2)=KP99V=) z*kO8hu)_z*1eX=B0Z^BF<*c!f<3s6lSI!5^vAuN2KIbe=ZC8)|Rex^8ziuBJ$034np9G=T16uYCEAh(KDt^#>Uzr4@})^^Le9t{xBm=*S2Mv7d*l^w1Y zC}uk_zMeoB0O(ck*ya>;Xsoc3Y(sT_7)s!w-4KQ37n*&V0|;}@_QuDJL2(0-8w4lc zU$iRljvqLKm%r!+G(CpHQUZ@%l=#d;5`TP;#8W%PLZhltoP}C1z6e}78XW9w;lktR zu(7cj!#NQofptRr7ev~+ps)?)-;r-GQr3~uBp)KnQJ81Yi$9^r9WgS0W74^})ZHS; z^r2({He~JT3VIw5-P0rq9(*Jib|(x^Fg)R#Dbg7PAqv+Ram)sfq|ft+uQjqXBxX3H z1W)vAy?!$`Y7o$C*c*4VY@8j5sJae9D*$d<297Pn0dtWp9jir)XBK%?pqvJRuMoa) zl?sf!%e_d;^zLZuwbEqsH{k0|@XXm^^6ZPI?o7Rs@pv#)97lH_UoJjZ>-Ac|ymcRT zI8U+txF$QyKIil}9+y0PPWmb?Vf9j9;I9Nrv{^EmJ^@-j7L>a~#>Osib&qSY!P5ZY zbb0z(iR?}J(gXf}h48|SW}6ON~2p*;pY>_iunHGtj$+bI}E>Kc({i-XSi zCV=?TK;X)VbiZIH5Z0v)y6i!fNhGp}1RTd8IsUCh67PKDVf?^%-+}IgL*l^*xbIPk zKmAOEk3Po4-7X&gd69t`4L<+WxM5Ry*5i0oL=>gtxQWGvP2XLE39|~ zGZ+u=1{g+az?|;%P;`H=0AWQB++eAJ-+12$%n~m<65!oG`c?Sq+Yis=W+ej;KP~aT zk4O06xyeAWj}@C6FayzegiDW~!=;Ot43?Mx3KCEo{~L%Rd#tm_0YDTxW{?Sp^Y1Y@ zi-B=K$Wla;!Wb88aLy1nMUnk2U|=c%qsCl{Z{-ywwZ2LS5jdT`tIsZ|{!7P6d6|zw za_k#CkUoupk#)_|3b=I71Ym5Pu%8_(oPyzYP;BA7Q!bM}kV(HCp9fAZ#+k=#CASyB z+pImHI9pvA?i-AOM-vdN){iQ-x7Id}{n#kUS+m1rpgW%S7_MH9%IRnJ>?|7raN}w{ zpy>ln*#XEa0dd7Sz4xhLrZX^{bf${At!TteZLM-um zdegV4gh>U%iabJSnc8wN%*@yw6CUde zBQ3IYdjo44VFd_hfLE1BMEQCt@l$VD#aqAUb}ZO>$0-+P;Qq%Y-t#vRK6#$q?K`>I z;Bp4JS~{_{eg#iH^bm&QC}Vc0t6 z0_t2-;1=@L96{EtxWY12Bu{!Es7$g!9*nZzn;r+p6`#vM>IpQ;UT>QgOIB>7-dptc2pCI6obU2*mT~4j*FA3S z0S{d!JhrV{54yk{#SkwQ(B3_NsSmF>5};$ZXVDvrPjY-W3=`FhH-7 zIj)c-!v%y>iA3^U=AigD-+l&fc+DAzefEkOje!r}9pP90Cc^f}k0q`I#WnQA<6$39 zKKLbUZf)hViG(Q*HC=HTAQri9IAw=ZHdtYXL4=SLHkeGg1X(UL2gIpd!k61EPNmqG zSvN=xD$TpgAze^A;~doj!lXzdY()9?$cGJfG_VN}HlZ3h#>ZrK+T@`_n*ay{z%K}E>j}Yd zQ$#pDf6Xvms5_X(OoHZU()P_ZlYRQGfAKE!Xk=;4_r{DXNumulEY-9W%22h$GS?fY zQVB>a5N3{Wq6Pfv&pa1*z4WA_XWhRg5Wv|J0^e|l!1@~Fk&R*nnoc@Fg)UwN2_guw zboelMG{nyKR<>P8qyY?5vs?UE4~QeBlOjc$Aku9Nc8#obxPF$n0jCo80bTYkrZfx} zRL(M%83zhd_u(nd>)>KZ#ECO3t`$QGTpKaU<-rbstL!74+i}U8&sv#sW%A{EKp2Si z!h)(h9-EBiXb-skFmU!zY@=lkcFUwMg5m%~c3k5qiaQnaacu7a_g^5~eTi^wRB`X6 z^Ka~o=&njO;$t1R-6z~~X!aftTzf0O>vj%GYTm+;1)$k5>JwEnSw2(HRV*1*G$m98 zcE~fxO8L9f0Os3-g-&dXmJ;mz4A0IzHDaOi$pk~NXIbH%HB#$M#e_xWIb7!D;N^nR#^W_O5Q-3Kj1sI+X2m?UG@riql(PYP<*)hYVb*QYOp!f-H zeC5A*R}Nz1)=V-d7F#*!T^|bUN)$kF#vp^OP7p9P!3sMpkOSenjs^IwcioBG&aNK# zyE@k)y!?&;t0C}rPvq0uvjoLX=8Od9mRAr8VDs8W)&P^ixRDXSmdYV01^PA&I+RoB9#oA?C!M%U-kHBNjjf4ORg3Uo=XUynF z`M^W{SdwcxfiQ?Oy>#BGyFjqbtBJER@YPq9HIVA+ZXtM%DnZlfMc{cSfa8m?9)MLgq0b!AFhcAg0jUMlW%2Hc<3vF-tXivOjuDX( zC>I0aU;n8W;@FY7>-OF@0^m(A4{-A_!n^+K7;A%af8t3~JChNplY-FI8%`r=H1Nd3 z59jBQr1%Vzat)+$hk15AN_+)GlC>_`i}Z_$?@Ko?$&+rFOfQh8=9Wy5A^~cdtG)3r z6o~}$L>;j((N5{xqFghptT0fVjGk-=8ncm#g`EMGMlzN~lmczzZ)trjtWjD45@WCQ z_0qQFQpPyF{~#&HGTkx(r5Up9kg9y3GuHr4E)tF{06|cEA=G1}skY-POiso!Bw(nl zl?f15H@mV$cybeXa@zvnxWwTAmH|tJFKksNI(iH`zMa@ zV~(AoC$-V6SeAR`&yFxzDrW0GMiauWVm8w`>qX{$UO_-BjD3MaQC%9?RA5bO(N zCP}<7fujQI21R?siMATRiN!eW^Li?wh$?1O9J3I;X6!04j{G09l!P&WFko+BISU}1 zE*JLZa5^l?C1}zELdoqlP5mgnCsyEsJ_-#^XUuR4dh#S1X|s221Z+p-kVmkl6NVC0 zmovmsK|kDh1_5DpIl4^v+Oq=po@1;H>=kP|E4HF^B0YY)H;-<&jm@i9l>JCK9u?T) zlrttp-4(YWhhoqyN*klxqOY<~b@YJ3H*`2-$n(F2OUhB0 z6*2Y`_O~o{i3k!lxOh8z<2Zo^)p#kBkjD60+dNk5y zjSc~5i{i^*W{JCP6}a^#VAKc-B5=o$3l;8T5EyCxYB0RJ~Rwmfp z$yICb%(7rFcDTZ8*|KIk0*DY}R6CIAHmV1H$RD&?DS+o51~#GA{1Ab!Yn_ooIFE&}ucYxpq|pp_v_; z$ptLc001BWNkldTA=>pQzbf*?sY?)3L3Qdxy zm}c*aFHrFSiF6R9Bnk0)t;qF~kp{9U30$;hJ>!@S9!b;!!mh!C5EeOw#nUNG$W11w zq4NEZ?8iJA5C(vTNS!3O(72yo1a3bBoLY(Xz{TSjI(4(|J1)iq#YC~^aN5~i-6DMc zDd6D^fqq04Q`TI|WrK?uP8{3m-(6t03~;6Y?(~7PhsxYfCPYjY@ayBLKrxJR0$|fnP(zk|D$DQ%mPz6 za4djRUtnqhr|>-om26XjpndQgnY$@Fr4ovjE@cufX21H>2!QROW5RnONyVcP+BXMY1Z_^WC4cCMymdm5?Env1epyNjiTdfwhtG=UEqBSfK>Oq@1bI5VsDqgWrzm<9;jP-y~;3)m$YaInq_$3>mbx3dS>6A63H@Ye}v zBWH>Mak{hwaMKd-oTD+gX@r*gK;>*&;SDHhu}Kid66lX(Ciw2B2#;JN^yTFAgB1Wf z8cZ)nl?oGbR&eaPVqbRHtL||bn_VvtolWDdTgR0sjE$Zv5OKCSK_2yk-Hc$Zw78z& zwhoim41r#Yu+S#7LbA?i)dj^SzcFnlZiz$ChHQ2c!pr5 zM`#9dav#a%bx#lwMLMhOOH@dXXCa6x!0?P%VRh+`LoBri)uWM;bC749vvunL}je7M@MFnakvH_Wv_vHmw^Z}NJ)hT2iO`jMzXT|cbv6Ml&iD4 zF=%BiE1Ej3pK6IyP@KvxV*Pj(3(p0XSZ7a-L2vSD2u6c|xh8POVc^!oz_MYFW~183 z@iI`Mu*lMA=X;OFz|&U=pMIQhZj&&O*%PEg!0EVe1u0|$P<)dv(8ishLI zil+pqzVZa0XGznrz^HL9&*^^K<&cQ$%Sw;XZ2%Edt}C|G+hz!C_UnUTAl48Ip@8<9 ztnj2@IAQ^UM5hszJQ4Sih3|{Q@GrQ!pqqfOtifewY>Y{fJg@}-O9dFG@(9yaBFf|u z%o6|m8*V_@J&Z3s&S*D*Rufq05;{%0UC8xZRu>5G`pytP`dcGh?(0EvYGO4lkcRaJ zv=~Td1m7gvvlc1`96o&u`n$W>-rCLsZiqmfgvJp-oU(lCzd4`@Qf)UWR%7XWT(%xi zlY%oiK1b5CTU{0snG6*|kJueJM>ev!%n&!ZBewT`oa|4O2HoYrg$?G>1tkKC8z>?I z34+u^yRt2ZGWNNZ4sbb9!+b#7RkF2arNLK{0ZC~Xw3*!;BO<;RjmIce`TSVL(R8Wt(-H8XOlT$u$%JEaQJ6BLqQ!qi4ScVWXv8U?Tu-Uj*(vL3sXY!fhuB zCy!8;nd*8k_dP1{WA7VdEK8W)eMs#*9u9Es-p^q?jsOuP8RvpH5l8xOmccH7aAvYo zGSU%&AdF0P$rz0cu8K%|u?V_WI3T^J%C}`p*XXLMl(8<>F1ZkBMVf9nyAHC!7xh^e zpSZ}9l-SECO`s8RCHGb1-DPVBuQSA!gucv(RG`Le02}C@&?u)%LjWsH z;BXf>G7l_v%Q{Po3ZC-cTxCLqnUVO%u>_vDB=Fhugq^YeG{TSzL5*BNemcEPEGdia zS?SpOnCT$FD_wI2)D%zVCh*!jWF-)$8q6gM0oUzU1=qf5{St>$Id z%=}g?CtG>g%H2^r?MklnX@?cD zbS-A(t%*3q2%F7yx@iXar1M zVlu4r`*mw8f)Ln4^9cA+{amTke0@g;Pa~P~- zpHnl-Y2OXzIFU^-B<7cop|^Uf&@j2IaITGjPdovk~;qZ6BuB`)1xS%nw^uq5YzC78~}-jRi^B^^ZM4J9kOyJR|C z)uF=xN(^INypJd#4t57t89F{|$7Z#LqL@)n`7TR2G3N<1%3dd@9aI%tZ~)?^F0jxw+8WO+UF7kORRLlvSfQK+?logev@|hBW$=|R z_^APk&1zF+14jDg1@-KdHA#vmurCSc6nB~c$B*Ev_1vP6;O9QZJBbu4myVks+Z z38*vJVX#CPG%$bUW_=pW43032&DGyO@+9LU?_<39h{QjAZGh*Up##?!2LgE8YeRhM z$q_E@DHHOn>(-olVnw&+r6=aRL0UO^2Ak_wF&ai-K_C|KGgdUjaX}64d6WK3EOkPas}_DwGzhGKVxl-W zj@d{?qFmKj0{w_FHn_UVO0m0e-xfqDZnyUmSdgml5NAdt(aG3D=7dCME zc!*=G@eA_iU$jqM3FRUVwF!$YpwmbPyq4{$s1Ys{Botp>MF>iu_!`x}lX-=~m~mlU z;Jyp7971xU&35MBh>sy7h6pXsm#dn=qK;Ru4)y^B+x9ChYsv;7g*HH`$l0q0y-t5= z6S#ekvCyetZfk?z>Z{kZvxNYb{As9d39Cs|w4LJbtMlq$hIK&94jb|s2{v5&W?Dgu zCb$(6T8)^ED;ne)5`+cJ6 zPsm(WRy@&Zf>U4n6Yo-4DnW5Zt&2m_*`G32xFi*G8Z@_Z;&ue>d6-UKWhpal>kV4Id#~NC(vPR^ds-;8+ zEkpo@yIwH^{fMv^6_Zo=dZ$v&M#Bs=WD77R=0ad%&blXV5|o4I?|*p{Z+YDuZa5NR zaX!Fs#Q3eh*((fW35-xMj&*^PbHHMo6R$|t7;^QV;*4Rofw5YKE@s+fh#A8X@a6M_ zk3B+odXq4efRRwnf@{eLIN{=NT!S4hK@Vg#B;#sl2_moggfd&~?9VZ9VzC;P);vXZz`@y#j2Q@p;xo*Kah1hpjg4!|tf*23kxbmexl;j= zp5Vh^k%=gC(O}6%9Gh$xF|afC4KT9jO(h@tgzYJmZ6LVt{1mpIH4w)DrFv_Jjh%75 zod7u6BP_Il6#BCR;4zmFjwV-?r1@sJ(t5|=`eVkqivssw$tg5Rh7Tu^#+sV%Q2Mu& z3=(A&Vs)d+F1FYS7>oQdm(>r&38w18%q<@9WQTp2Uv{~?u&s(4<(9JX>bsS&yP2y@ zHrqtG);%e(g%0aT+Ht=&_7*62nsB8uRvF@$1&*2EDw$mwb8G92t7d|#7+dpvS%!P_ z_%mjTz1$- zjK%`ZP$q5V{;|U8a%Ip%w=qI1kfry@6Fh60U<04-Aj}+Ala@m=1xi4L0p7TL6UY>CET$smz~-qdO>w?fM= zPy@fLj!LA)+d4y{4M&4W#*8Dg%N3#6It$|D)TE4rSo1NpxHsu@l3E>!T{2jE^I3Ik z%a(ow45C>ys^k`7Y8|-&q#Pg^CJ2Us3Za%cjG#EPh~frmwGFJa37tk#VjhkIX_2%- z_4ddD0m<0ED2Eu180RhteDQKx*=6=bq~uKXOsapaQogxWS_5hEmBUSMnd)GEV{ z^0C>_S#u}Go^*EGH7WthC0JdRMw#m#xCp%H^aO!#Ht@?HgFY^TAJglP zc&<(8wDiGlUZqn&T@G%mtk+zCI23VKux4np(DQTZ;0omHl^d`IICTyPrUAv1vThaW zvb~wb8GztfOA;mq+ZN2SAI=zo01htzmlMT7K!o`Q&+34U|WbK$B!`dC8>9 zrQNw&?h@>AO@v8*^a8_r2fRHdi~p;UZO%-=?9d7`GdlB!5j5u&2F#%E3?RuBdSWs> zWWm6@KPquyo$*h;H9)IzFo5{RqlE8$p1^P4BlGUw#`I38C)PZOmFLsy&SP=)5H_w} zjV;qyX6!IB|6ww~nPqBQVT9FAF5NnGG_M+#EHIa`A8sT$4~B!DAfmeS&VjIIWWhQv z&%BuxT{S0u!JMX0Ho=WDZzUPn8M#N;W?7Xtq$P}>4Wv04Iz3ob{hq;#Y~WJ_#VVjv zkAJw$IMhjXkzCtQKp>XP5Njo>0b$lex0L9|lZs7w!N|CI;^Vk+mF0B!1ukjfx{~SHnt@G@IyoV!bfeMSnm9GWhtC( z?C@=SdGML-y|HU&O&6CU#b4$#%;3VvJsY&DfEc8EnX4}-fYtfjw>+B(BK`VpfEZlg zPdL4%W)NGV1!Y=bPo1rXg)7)%u9}$e0mbBp!D@lxNfxQ}+fm5}|L%BNWqT3i&B;%L@B+roA4%KFJC{s^QpfYeSW2185n={2RE8Oa> zAZX4N$rWvMPswz?g%vhHq>U9;S>@mRB12Gw|MkrQ8V8W9b{r3@4bH;zxI)F!YFcKz?3~timT}MSQfIbdA;Kn=26!P z8-SC1j;B9SG9(cy`%8tC>CiF_rrYZQWocQ<%7#U?se8_;5VxLe;_z~arG*d+y#SrI zK&LIx2niyf%qupMj3{FC2NL~(#I>z4E?tfAg@;G@^K)Z7zNHMvGM1MxRvfCcNeos; zk~(rqfw3jG8KeY)Kq()tLLv^Z%+<~BH@zUxod=R<_VsrLc+cJA;{HShki-?&l3x$& z?C_4ne8;1*vXK$ex<3B<`8S2Q`9z4LDHBb!Rj_g7TsVtT~Z0fe1p)BVzzkXz@IWAi~uw}0P!rU)TO;SoSfU7 z7`&GH0`cVa(L6^OD1N2uBPvgkYXr{0wD2-C#O>vi4p!I%wX@R`zxRH|k%b69_`2Xg zg6dv(XMo?mZ*1I`9TZQZCw8TFUOsjbTkGqw#Tv_4B9H=MVk1b4b=oPTE^O9niHk(i zsg;8{Gf++m>f!^+kz_=hkfJrsRj9Ft?ar9X5t6m5wu2ig0m)WmIP zfV*A<{LptXo_KnMPu#tS|NBFITuK`BNST+&Ju&I3Y*cdRYZgHhBazK+F~(95mVp+snEi zY$d3jjh^_IKEb%jd>|z&zT<{ZHoNo2 zm1&1<{=Fak>Xu$Aen-T?#P?2tEJ+Y%QaG0>SEXYzcVua=kK&B@{r9<3RD+4y~YU5AkqlIi3btW0(HwQQZ}i&Ju*G4SZ@Fft2H%Ed)kNo)SpT`eP#baSs;LKyHgbIAs;Vf$%QpNpcdL@0Vr&9 zK4N7oLWHFw$G|KRm}Ov;S1NPivVc0ROm&c^+NWt9sv5Y%Y9JRMAbnx5r^2jFgV%?Z!sZ2l^$>dt4@@!f0FHc-* zAeAza;3$;_*~%;TJtvmhv5TMlJcVO{@qtGp{GadL!TC!OMq|d6wFv*=4|WoXgpuaj z@_yOsgLNHrd0Kic=PtuquZo}i`DAsIrSf;W&cbiAS)Zk)9nrsMEPB$&H3PN2@Bk7#XiNR9HPo2*WAtpM(Sh_tCel8WM$cTtGsa!gcVl(lZ}tpeN(-A z*3MPq^6I3yHh1>&DK0w?Ra{%i4|P0}m*>swpEWQF5qcrva9d!ZN!oFuh%!*TAFQyt zT-xi|_jB;B`vQbZ9(pJ_juu}Vi==~x1r(bxh@y;vIpzxEdr@A?P9#FfZ*dH&frg`#9Tv+JuTu4TmrptpPoc>GZfgl1Fcsa+Xt z!C9*3FlnB{tk^SX{-FwAMg>M#aTZ~>6yYELA5Y-ZPmQ(Tg(fGUywy?DPE*W$6N%*S zJefw`s<8^;F&Ik>q`|&=z-s&ZqXY?+ZJbm>SHc3TR6?5*XRAyi1sp3)#&Vm{ZjcWC z6*mc#SgTdtw9QlZ!=G5g`O6~=Mq}*kMcCexxUdF%@o8XtKsYupu-p^4>1cpcM?&0i zw1Hc0Y~keb7Q(Rj9F8Ap;1~YcA^hBLT*aS!VXP=g6}FKrQJhqqlu%y~2I7o#f-L}= zKxMzZiJJoU546kI{`x0J`1MbYyr!*PfplK%urWwx0H3`A+;oW13W{weI|4J+c1LH; z+3I%@&km{?^2l&AR9Ik8A;OZGaCkwv1|`iq5m!nW2mlE}D~vO82?77$whB3cE#G5>|!qe=sPb~03%OL7L3-VYwsXIm>V(swL>pWG>NF@{_89Pwy zjTxhHl4L8`Ujj>&OZd`U#mDItp+1qGJ_Hy$<5*v!%OmXUo30gxMIylnTl1hsryvEG z%sS02ozR|z1!Vup!;EjfU*Z+d-Cs1kxFZ z@hp9BYL%vFoS9Pnq2eEmII4Ca-6<^DaUZ23{d6G1cGy$^zg+f$n>KUhTH%lwt8Kt#q$}{Y*Y@!0m(JtxYNNmszvFEyIREa;_~g?vn>``Y?e*fi8v`ijw7XGl82|tv z07*naR4LRUoQm(F2pJeQ0a0xUyUWkk^>{6jOSFP$qGNL7*@6ttpfsL`y8&H>36Pv+UxxQGHNQAvZ8a~oy zs7(w79b@Yf1GU2=FzeC@IF6^D@0UL)u{+rRM&qtqsc;P_kxsA*@62aoxgTvDq8x8- zdDZCgWj^IzU?B6(j|-fW0brRcD_W=<^6Rn;UR=@;C{h9|na#Mi%lO1Yz^9)eZ1nZC%WNd)Nw4YRPK1B?hnsla zJD$b|{$>M_)a%1sH^4i8a7l5{Q0@Wwy)a~9nm?0PDBFQ0SjL}X%J_6!sns1;q(NnW zXa8l_VV5|dw9auMRXv$Wir6mIG1qP9#hQm-M z{ZQ)j;d!G6bVin?tQVovBrJ9b-Da$RF9o1fQ>x&RTG#c1uY^L|zGA1!DfHz21i>ST z>^^+RxCfsP>OEhtbj_GR{$lyTTM9A3xyV(9s42hk0N~9KSe={JP1<0b6A8tkwm?S+ zgf-CPq;Oo7OH>zR-E*34w);~6!x0m<$M(57RS&8L?&#W5SqS)Pbe0QxUJdx62wF?^ z#2T1%>xoVMEd%(%I`FZ3B=&oG{u$xChW*qNw-=UmeXz0tb1@i88|W}}-LEZJ(gLj5 z<`$s<43X0W!#N5z!Fv8>EP0p!n78{JS3lg_1ODwb#J3Qt1#3}GD>Nss~2T2m$9I!(Hh6V6cEVs)W zz=P|IYXcbf0V9S0S_2fxc-AAXeswDcg&8PLQ*p5Jd}TK9 z$hJw>C%+LGa%_N3Q^#v+hs$*2iYD1rt^@;|J3gEafY@xL)jC$JcWPOw*M07?0)Djt zgE=^g|CSaY>>9ADKv+MAX`#pkf+P^YTnE;Sh+6O{#lFCEZNhv9Xf-rD;F)T8%Yc=S zuC!)? zwz9gYVufw{Qza{$?*AV@CNUggUzcMmgvExN#VuV21r$3NVHZo>=*%GqgFJZ3&~mdi zn;?qwd5kP2cPXoA$xLY1D%vB}i5=4b+0>v=CfkbuPrV-kV<>^$vBWsC)ZfDOOMT>6 z28L|j+FDST)EM3LJC_BhX$-K!F0;hpHsd)f5~mj>dW{@pkp`4Z)=?U4owSZ$(%~bO zfOK}0StJ>P^XztP%qFDem@>SQ=?aR*}8#kCFiNb z7W;J6KA^Y?z#lXo-Y;cSXH$-Z=)X1u%)Y>t(70wOk^V za7icf-`&y)b^rS}fG<3{zv`=I19-(rDwTt{*zf$lbm;^|G8xIUo36uYLs^=;dNaYI+)xrZ3X=On_+H&_}{1`8VuJ0P|-v_9?w zQZfd^GJQB_ftJj6FKa2)^wvcw%+I`U6Hi^xHA`nswQ>70X|qoR-N8X0xFldzbL7yU zw~XvE1Tv)r7Ab_DvfS=AL57ov>eNA1z}XnEs=$~mj55K^4nKOi$O0D~By3EtGO%#e z7jV%ng4JM6b;dBMe}Mp&dp1Up(F|k8xYv%Sdx^?H2U})1yg)HcuMM54gu(`HYcReC z>L@|`1HPw`LikEbYO%n+OsvNYf!DcfI%J@N89%nreQGhwa?9O(i}ZRA0_ zQvg@>w=4awlXFu)2LXfuAj~q(S%c@ez#f`_SnHet1nos5vu^^3mFerUq#35Of-UII z+~1bk+1&rH@0Pgp)?i;B>I+U2{^AkV6KN^WP792)xM@%VhzqHm)n}6)OWChAw}_o< z8=9m*_hB{vb_{sbly|yD!8t(U0yHllQn4b-h%vB$Firmo29A0KkPPfbmP%o}LM~c4 z1q6KknE)@mrHNBVLmXKNu`nN?*AZwo2w|9KSR0QSyM2lE%`u)hKf-6eG{Ad5J%|HN zkp~jxk^9A&7IV#f$T-vm7Fy~%l$QY!<7=PO!t-uvC zOumyIu5xIO5eSi;u0f1uBhC=VESkjItXe~pA0ToU}~D1S$J`seKPTtl7lD`5q>$Sms24`S9LO}|{gDoOM)aluMW zb6jv)u_+Cwmld1w`+M(W{Kz*0^WFV>$!|VJ1y?A|`N9HZ;j&`0fntZlM5EnPhEW#7 zKIDLlh_l>Mq&i6`ogo!KFD%dA%Q(9G3GQ+ zRqQlSsMZz${OZ#IUjLE~ZoRRA8;&;7ZuvQkG#Z4(Mu5fn05{#x!Yf}ihqr!vg!ljL z7T*2-9Y`)_-g33VN7`|Mj83S|uH@gFA@JtAdU(a1^O&Eri?-S=fp$w^X`z9W$J+SX zuUW?bv^&PnaSAhLiE39Rn{Pj3@OvZV7?b>^f3#w47P(~NRTDXWPSjO+RM zy?glHH|nRj@puEkt}^h;kDVPO%S#^r_STm*@jb6wz?oAm>t%-_VSX;a{9J&WPB!uC zm(Jns8)LlxZ@2O8|93C5-6IQl1#G|NoBaAeoX2ZkHkYls|DisqcmKl!yyvg>u++<0;8uemM3Dhzf{~ip-Z^o_4_*_+9st!hyPK~?8j9ve zGXakW;VMDb8FbIgmBC{}@?1&#^bDu9i94|jJbuO1($maJWH=NMttj*MZUn$$0L-_5 z-BFwsZ|vy{Z2Ns}&_OpGBeb|n_y(==go91fJ}fR>_gwTn2Tc-wgO)Vu3}&WfguAOQbq^K5mR4d zR;QLYe&PC&(v7ONOq7EzHah(D#BciAF24Syb2BODg}DIV^ZF&c^m!fp#BW^1gX>bS zm`Z^*1aPOf@M5)e$W2k6()E? z0l`oc7&`*0K*@7wRtB%J*KA}NIOU96(X8!n9~oMnr_hrvus)r_=}QH|9V-Gq`$Nlk z{vGv4wJS>@zVD4oc=e0B__x2afj@s>=z5{`r*iu4GhnIk&@6K1ZXRO7>H+p=Nj>6 zZybZ-;RHSfk_9gJyExw4s{IV6t+;8kY`cbpVBbBu6&mC#LytkD>F$8U`_ zCfUY*`=oXjjV35@rq?<<#RF8UC>kIxjwUm9SZiU5^`HQtGG-diYBhw&fa@Rvx*;j& zB+a}ZiEL!ZjA5kq3g*9#zM_zEZ??NaqtpM&5E$E$1!@)F9uVwn+f4*YXD zgoBw({vAZ|^j@gkYnN1OOJ|MW0!{x4VYD$&+hJF4)dE?+5#K!_hW=>@7#|@85d?8@m$4fYajO5GbZtnsgCFxM4N+ z7beA5xC|*!4RrZz0LA->R}aE(_!*(ZsLKMA!KLgY6RTp8i5bXA&utkP1Ohm=M7Xfw zATVZFqAoz3F6}V>ND1sDz_?C*HRTdCWd)t|&O9CC;n}oH;7+g41!pAo`pgo$oBIN*36)&G8lB!bTbIx&MGzt(HQ>?h`3n zyf*?OPYK2Ppo4B>jE0boXTkekjYIoGtoFNL3-d-n+sX2l2gDhAVvF>JW{}$X!%s1G z`*B3`el0J1PPGQ`;yU9O{#xqE-wFeTda0emW((utNFi2PPmyYHzXh#?--Lqo2v(gc z+nHJu=M1ETAc0VwHlEPW+Z%`46no1CqkNSmb~^=g@Ls13aHhYuHk@aFayzyB8-c=rc( zG~~hnEZ zhyAvdPbQTeX6GEn!;kgx`k%jC`qq8sN`%i`iGYVj;E(L#NMjxU^1BxBt*_DR;n^Fz zc=4?*{N0!P+C>%u`ZV(u{d)fD<5%#k2qH8BfiQ^EqQ}3*|33G09C%vB zr1>zX1yJn4$Xa{B8oFX1py>tH_Zdujv%?ca?mb)L^A1Xnd))xACkW04^dYd+BW&#O zfdS&-NTA)6mG4xy5r2kJ42p+Q`LQDwxV+cJ@$R^Vbgt(W zx2@pl;bwsi{=uI;k9WU+JJH2M@k&mTcgWoO>ksZ7;*CFh0e63KM>|fdDe%s>9>QYi zE_eIKGTLF6wVJD*Aq!@OBcq+|n3o2OfArhe@Sp#vSP$QD*J|e2qNYR9u0suSB}XHb zT4jRK3V?P<2rbiGhZcZFm1-ps01Kk2GsoGstMY@bI#k_^cBVbrfn|k*fA+Z259-;% zU2mG0$X^QKV@+1&S6nxd3!z?;m9mQLTQ2D{IlerL(UJc$9t-pb!uzPr09b4Ts~w=z zC@;soaRXb!R^wn8E`27pd(tqd1r+CCxWJ3f=4D|g&!lY>fiRTh&oDC(F=NQUSOR-8&L~$2 zo{AKcasb>vVJx1I? z4*u=$T*P2($?J_Gi>J03qloZlpY7u>|8}jk3|(d;Wy~ET4q#*#3u-F|wg*+d{LcBp z`j6hTr(BqFonXA>&L&=Vryg*2Wo?8X`T6s>?~20a8Uw8CG8D_XLB#m}U%rg{9^BQo zIew&xcfNV9GSzbK4GhZw&5?0XdC<0JNBRwe9K$kOwSUK-ZR2xaFzVrI3ulgmb^x40 zV=ftHCB%M1#2Kj?LCgxfmNX+4RSl|4a8na}Vg^YPssIU1VAFI^U~<2l9=yQw_5AqM z4_K0g_zap<09+FU*D)Ke^h&NVFfj)Pi#?#ztlD$NfH)Eu3`DJcgoxv3Ry!Og@^B1P z)(35jrKn$zYrdQ|U|j#KR;DiLtVwtzmhj9%2P2_|g=sDa)%H})_dRy~fbhmPz3*DOXu^nST+6EHGjZZ$Qfw!yt;;V88v!|1L^+s_&M{xXz?tj&>Ng zEi-Of0)GF4Ymi2I;a5Db>pf(B#hr`VzJsB}uf6XQM$)LnMtGOmXzq>(kF68#yF|FK zLtc-LYSa-z>=@xSxUlrzDm(m-zP^i_Z`55No;=^j=PyQfu*kq$UcX!@ieLHd%lOh& zS@h0D{!*nNHZlfQV+P*wA1`A|&q0q@zhoh1hfB n4q(tqFk1up4Ce%nLc2X!nSQ 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

{GKvPF6*N2UnZ%mUL5Y4GPn_a-lsOOq=i1ppC| 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png index 0d216b34187a0c609ba391e94b9a0077e3ca6636..c262330cbb94500b6e38ec7a3407930d3768b609 100644 GIT binary patch literal 3535 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 PMt|_(`g`1Ri#qWiStC}J