From 4ad6db5f1f0aa155426127e24ce16fde3f17346c Mon Sep 17 00:00:00 2001
From: mpriymak <mpriymak@gmail.com>
Date: Fri, 25 Oct 2019 18:36:35 +1100
Subject: [PATCH] Added exception handling for the case where the server is
 shutdown while there are clients connected. The clients will be kicked out
 after being notified via an error dialogue.

---
 .idea/misc.xml                                |   2 +-
 .idea/workspace.xml                           | 470 ++++++++++++++----
 .../GUI/ApplicationMain$1.class               | Bin 685 -> 685 bytes
 .../infinitymonkeys/GUI/ApplicationMain.class | Bin 5346 -> 5449 bytes
 .../infinitymonkeys/GUI/ChatScreen$1.class    | Bin 3586 -> 3671 bytes
 .../infinitymonkeys/GUI/ChatScreen.class      | Bin 8546 -> 8607 bytes
 .../infinitymonkeys/GUI/DrawingArea$1.class   | Bin 892 -> 889 bytes
 .../infinitymonkeys/GUI/DrawingArea.class     | Bin 9415 -> 9555 bytes
 .../infinitymonkeys/GUI/PaintGUI$1.class      | Bin 5791 -> 5903 bytes
 .../infinitymonkeys/GUI/PaintGUI$2.class      | Bin 725 -> 725 bytes
 .../infinitymonkeys/GUI/PaintGUI.class        | Bin 7591 -> 7576 bytes
 .../infinitymonkeys/GUI/StartScreen$2.class   | Bin 2576 -> 2567 bytes
 .../infinitymonkeys/client/Client.class       | Bin 6425 -> 6422 bytes
 .../client/ClientUpdate$1.class               | Bin 829 -> 826 bytes
 .../infinitymonkeys/client/ClientUpdate.class | Bin 4233 -> 4224 bytes
 .../client/DrawingUpdate.class                | Bin 5520 -> 5508 bytes
 .../client/EncryptionUpdate.class             | Bin 3129 -> 3108 bytes
 .../client/removeClientTimer.class            | Bin 1364 -> 1358 bytes
 .../remote/EncryptDecrypt.class               | Bin 2466 -> 2436 bytes
 .../server/ChatController.class               | Bin 3493 -> 3490 bytes
 .../server/ClientController$1.class           | Bin 760 -> 757 bytes
 .../server/ClientController.class             | Bin 7222 -> 7204 bytes
 .../server/DrawingController.class            | Bin 6971 -> 6950 bytes
 .../infinitymonkeys/server/MySharedKey.class  | Bin 2062 -> 2059 bytes
 .../infinitymonkeys/server/Server.class       | Bin 3325 -> 3242 bytes
 src/GUI/ApplicationMain.java                  |  14 +-
 src/GUI/ChatScreen.java                       |  20 +-
 src/GUI/DrawingArea.java                      |  18 +-
 src/GUI/PaintGUI.java                         |   8 +-
 src/server/Server.java                        |   2 +-
 30 files changed, 432 insertions(+), 102 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index e208459..8378362 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="12" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 77dee4c..22226ca 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,11 +2,36 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="688d774d-cfc7-4b0d-b00c-5ca931aba600" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain$1.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen$1.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea$1.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$1.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$2.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$2.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/Client.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/Client.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate$1.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/DrawingUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/DrawingUpdate.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/EncryptionUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/EncryptionUpdate.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/removeClientTimer.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/removeClientTimer.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/EncryptDecrypt.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/EncryptDecrypt.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ChatController.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ChatController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController$1.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/DrawingController.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/DrawingController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/MySharedKey.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/MySharedKey.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/Server.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/Server.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/GUI/ApplicationMain.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/ApplicationMain.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/GUI/ChatScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/ChatScreen.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/GUI/DrawingArea.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/DrawingArea.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/GUI/PaintGUI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/PaintGUI.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/server/Server.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/server/Server.java" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -18,6 +43,100 @@
     <option name="testRunner" value="GRADLE" />
     <option name="delegatedBuild" value="true" />
   </component>
+  <component name="FileEditorManager">
+    <leaf>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/GUI/DrawingArea.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="427" column="15" selection-start-line="427" selection-start-column="10" selection-end-line="427" selection-end-column="15" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="195" column="21" selection-start-line="195" selection-start-column="16" selection-end-line="195" selection-end-column="21" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/GUI/StartScreen.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="68">
+              <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="204">
+              <caret line="106" column="51" lean-forward="true" selection-start-line="106" selection-start-column="51" selection-end-line="106" selection-end-column="51" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="85" column="15" selection-start-line="85" selection-start-column="10" selection-end-line="85" selection-end-column="15" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/client/Client.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="95" column="42" selection-start-line="95" selection-start-column="27" selection-end-line="95" selection-end-column="42" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="7" column="31" selection-start-line="7" selection-start-column="16" selection-end-line="7" selection-end-column="31" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/client/DrawingUpdate.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="12" column="31" selection-start-line="12" selection-start-column="16" selection-end-line="12" selection-end-column="31" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/client/EncryptionUpdate.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="8" column="31" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="31" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="93" column="15" selection-start-line="93" selection-start-column="10" selection-end-line="93" selection-end-column="15" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
   <component name="FileTemplateManagerImpl">
     <option name="RECENT_TEMPLATES">
       <list>
@@ -25,6 +144,12 @@
       </list>
     </option>
   </component>
+  <component name="FindInProjectRecents">
+    <findStrings>
+      <find>RemoteException</find>
+      <find>catch</find>
+    </findStrings>
+  </component>
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
     <option name="RECENT_BRANCH_BY_REPOSITORY">
@@ -33,7 +158,54 @@
       </map>
     </option>
   </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/src/GUI/PaintGUI.java" />
+        <option value="$PROJECT_DIR$/src/GUI/ApplicationMain.java" />
+        <option value="$PROJECT_DIR$/src/GUI/DrawingArea.java" />
+        <option value="$PROJECT_DIR$/src/GUI/ChatScreen.java" />
+        <option value="$PROJECT_DIR$/src/server/Server.java" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectFrameBounds" extendedState="6">
+    <option name="x" value="-12" />
+    <option name="width" value="1944" />
+    <option name="height" value="876" />
+  </component>
   <component name="ProjectId" id="1SVgnDiSFxSanFbLYY5D9RJaXPS" />
+  <component name="ProjectView">
+    <navigator proportions="" version="1">
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="ProjectPane">
+        <subPane>
+          <expand>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="server" type="462c0819:PsiDirectoryNode" />
+            </path>
+          </expand>
+          <select />
+        </subPane>
+      </pane>
+      <pane id="Scope" />
+      <pane id="PackagesPane" />
+    </panes>
+  </component>
   <component name="PropertiesComponent">
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.WIDTH" value="387" />
@@ -59,46 +231,7 @@
       </list>
     </option>
   </component>
-  <component name="RunManager" selected="Application.Server">
-    <configuration name="AlbumTrackTable" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="client.AlbumTrackTable" />
-      <module name="infinitymonkeys" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="client.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="BlinkColorTextField" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="client.BlinkColorTextField" />
-      <module name="infinitymonkeys" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="client.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="BlinkingPrototype" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="client.BlinkingPrototype" />
-      <module name="infinitymonkeys" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="client.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
+  <component name="RunManager" selected="Application.Client1">
     <configuration name="Client 3" type="Application" factoryName="Application">
       <option name="MAIN_CLASS_NAME" value="client.Client" />
       <module name="infinitymonkeys" />
@@ -106,7 +239,7 @@
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration name="Client1" type="Application" factoryName="Application">
+    <configuration name="Client1" type="Application" factoryName="Application" singleton="false">
       <option name="MAIN_CLASS_NAME" value="client.Client" />
       <module name="infinitymonkeys" />
       <method v="2">
@@ -123,33 +256,7 @@
     <configuration name="Server" type="Application" factoryName="Application">
       <option name="MAIN_CLASS_NAME" value="server.Server" />
       <module name="infinitymonkeys" />
-      <option name="PROGRAM_PARAMETERS" value="10.12.110.122" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="TestList" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="client.TestList" />
-      <module name="infinitymonkeys" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="client.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="WhiteYellow" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="client.WhiteYellow" />
-      <module name="infinitymonkeys" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="client.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
+      <option name="PROGRAM_PARAMETERS" value="10.13.64.162" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
@@ -159,21 +266,7 @@
       <item itemvalue="Application.Client1" />
       <item itemvalue="Application.Client2" />
       <item itemvalue="Application.Client 3" />
-      <item itemvalue="Application.BlinkingPrototype" />
-      <item itemvalue="Application.WhiteYellow" />
-      <item itemvalue="Application.AlbumTrackTable" />
-      <item itemvalue="Application.TestList" />
-      <item itemvalue="Application.BlinkColorTextField" />
     </list>
-    <recent_temporary>
-      <list>
-        <item itemvalue="Application.BlinkColorTextField" />
-        <item itemvalue="Application.BlinkingPrototype" />
-        <item itemvalue="Application.TestList" />
-        <item itemvalue="Application.WhiteYellow" />
-        <item itemvalue="Application.AlbumTrackTable" />
-      </list>
-    </recent_temporary>
   </component>
   <component name="SvnConfiguration">
     <configuration />
@@ -190,6 +283,7 @@
       <workItem from="1571786278739" duration="3319000" />
       <workItem from="1571915914956" duration="3985000" />
       <workItem from="1571955297053" duration="15040000" />
+      <workItem from="1571987111635" duration="1790000" />
     </task>
     <task id="LOCAL-00001" summary="Changed the join method to send over a reference of the ClientUpdate Interface">
       <created>1571646862883</created>
@@ -208,6 +302,46 @@
     <option name="localTasksCounter" value="3" />
     <servers />
   </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="1790000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-7" y="-7" width="1295" height="704" extended-state="6" />
+    <editor active="true" />
+    <layout>
+      <window_info id="Designer" />
+      <window_info id="Image Layers" />
+      <window_info id="Capture Tool" />
+      <window_info id="UI Designer" />
+      <window_info id="Favorites" side_tool="true" />
+      <window_info id="JavaEE:App" side_tool="true" />
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24939272" />
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
+      <window_info anchor="bottom" id="Terminal" />
+      <window_info anchor="bottom" id="Docker" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Sequence" />
+      <window_info anchor="bottom" id="Event Log" side_tool="true" />
+      <window_info anchor="bottom" id="Messages" />
+      <window_info anchor="bottom" id="Database Changes" />
+      <window_info anchor="bottom" id="Version Control" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" />
+      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32867134" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="6" />
+      <window_info anchor="right" id="Maven" />
+      <window_info anchor="right" id="Palette" />
+      <window_info anchor="right" id="Capture Analysis" />
+      <window_info anchor="right" id="Database" />
+      <window_info anchor="right" id="Palette&#9;" />
+      <window_info anchor="right" id="Theme Preview" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
+    </layout>
+  </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
   </component>
@@ -227,17 +361,187 @@
         <entry key="MAIN">
           <value>
             <State>
+              <option name="RECENTLY_FILTERED_USER_GROUPS">
+                <collection />
+              </option>
+              <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
+                <collection />
+              </option>
               <option name="COLUMN_ORDER" />
             </State>
           </value>
         </entry>
       </map>
     </option>
+    <option name="RECENT_FILTERS">
+      <map>
+        <entry key="Branch">
+          <value>
+            <list />
+          </value>
+        </entry>
+        <entry key="User">
+          <value>
+            <list />
+          </value>
+        </entry>
+      </map>
+    </option>
   </component>
   <component name="VcsManagerConfiguration">
     <MESSAGE value="Changed the join method to send over a reference of the ClientUpdate Interface" />
     <option name="LAST_COMMIT_MESSAGE" value="Changed the join method to send over a reference of the ClientUpdate Interface" />
   </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/src/client/ChatUpdate.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="49" column="77" selection-start-line="49" selection-start-column="62" selection-end-line="49" selection-end-column="77" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/client/Client.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="95" column="42" selection-start-line="95" selection-start-column="27" selection-end-line="95" selection-end-column="42" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="7" column="31" selection-start-line="7" selection-start-column="16" selection-end-line="7" selection-end-column="31" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/client/DrawingUpdate.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="12" column="31" selection-start-line="12" selection-start-column="16" selection-end-line="12" selection-end-column="31" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/client/EncryptionUpdate.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="8" column="31" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="31" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/GUI/DrawingArea.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="427" column="15" selection-start-line="427" selection-start-column="10" selection-end-line="427" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="93" column="15" selection-start-line="93" selection-start-column="10" selection-end-line="93" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="85" column="15" selection-start-line="85" selection-start-column="10" selection-end-line="85" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="195" column="21" selection-start-line="195" selection-start-column="16" selection-end-line="195" selection-end-column="21" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/GUI/StartScreen.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="68">
+          <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="204">
+          <caret line="106" column="51" lean-forward="true" selection-start-line="106" selection-start-column="51" selection-end-line="106" selection-end-column="51" />
+        </state>
+      </provider>
+    </entry>
+  </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="FacetStructureConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+    </states>
+  </component>
   <component name="simpleUML.UMLToolWindowPlugin">
     <General>
       <option name="birdViewUpdateDelay" value="2000" />
diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain$1.class b/out/production/infinitymonkeys/GUI/ApplicationMain$1.class
index fcdc48602cd2ed6ab5078d1bea4bbab1255dd03a..de13bd8e2a857c838d2680ee7577252337b9ee96 100644
GIT binary patch
delta 23
ecmZ3>x|Vf=91~;yWO*h})?x;BhLXv-Ob!4`<ptLO

delta 23
ecmZ3>x|Vf=91~;CWO*h})&d50hQi6YOb!4`js?yD

diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain.class b/out/production/infinitymonkeys/GUI/ApplicationMain.class
index b19dc9d9b2eada94e9f2c8851184354cf191d3c1..3c98d749bbac24b3af1fc1b9dc36ba3ab4d53333 100644
GIT binary patch
delta 2300
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
Yp%I)~n;5(q7#O%17#Z|Ir9A@!0QVlgt^fc4

delta 2245
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
U!IOc3fs28WL6;3wpffN40IBM<DF6Tf

diff --git a/out/production/infinitymonkeys/GUI/ChatScreen$1.class b/out/production/infinitymonkeys/GUI/ChatScreen$1.class
index efd35c254c1dcd113db9894344579d3cd5963f1d..cd369e7061d7c82eb84fede9d52c0f3b5c2feab9 100644
GIT binary patch
delta 1446
zcmZpYxh_+G>ff$?3=9k=3}-kQbQyxV81xuIxEQ<`Lb(`%7{WkAI2S_%LnH@76o`)I
zWC&u2;bMqoh~s34XGq{+NaSKjVn_xlOyOckWk>^=kPcFi!Nritkj2H2&5*;vkjus3
z&5#EY&gW+EVJH9*h3pJPaU2ZATnr@)rCbd03}qlw%GntzxESOZLO2*IL39;}02^4%
z#Zbdg3sO@DGN>NJYT#gK<Yw?=XaaGXIT%_%oK|**Hg<+~c7~3PS1&U1cCs^cu`_hD
zGxV@C^iJN%WNhEZ!(hN*$ira7(9gp#fng#K!z6~uJPcD9rm{0k<6)T2FoThSfrnux
z!z><#*$i{o8RqgZ%ww3(&ai-oVIjk!$$HEZ^^18JmVo4!GAv_fSkA++0%Xieh8a8z
zs~A?ZGpylZSj(`Eonbu>!v=<pj10_<IXOHGn;16pFl+%S+RCtvhhaOz4n_uvti-ZJ
z{i57V{h-v`{E}4HisaOSlFa-(Mh0o;{Jgx>WDrN8JhLQ2p*XduEVW1>C%;&@gq>k0
z55q2y6LvG~;bGXzFnRJ0W*g^y4EuQ)4lo>KXE?;ea2VvlBOt#WWjMyeaGYToBZIhi
zW^%Sderbt9QfWy^ex5=>QEG8<Y6=g-35JtA45t_-Pqt!FV?NDra&t1v8WschP*45f
zlEk8t;N+sz)I3H8f#Qt(a@V4w{374f;^M^gR7M7t)QZd!Mg|rQPtCB+a-7zT^|}mt
z42%r=42%K-ps;3OU|?ckU@&4ZW?*D6VPIgeV_*V{aA|38Wnk3W&cL)0tj3gqfq{*I
zk%57soxzNOfk6zSiou-0k^uy`z@{-WFfv#%SVPQWHeg_3U}IolY|`Gwz^t`}fpG@|
z3(GQwsgv(;HP`c5u?R`+V320s!637o;R!;C>@o(^O$^+-8RR0jGsp`mY-3Oa>D|J>
zxs5?=8-wCD2BmEbyl^4qZ44^Q8I~aQt1e@3hs&z@f|xrP)VDG4Z(|Vf+r+>vq_K^G
zSEn8%4lz@ACxa$4L-=wAR3`-?jMQ4j-~v~V%}8yKk#H4ax;q(kFihOYz|3I4(9bZ5
zL6VW3v0jl;g+Y=rlChYvj6srtnE@2Qvl!GE7#O-3_!xQ^BpG@cR2ljh3>YRdSTIax
zaA%mp5XCT+A%$T&LlwhphJJ>{43ik<F-&1tz%Y|xA;VmTB@7D~mNKkkSk7>PVFkkj
zhE)vj7}hZSWLV3{&ai=zpJ5}TBExn@6^6}>Y7ATI8MPU<GU_wzWHe&f#puAWm(iPH
zA7doLLB>ReLyW}?Cm72Zjxbg*9A&I!IL6q>a2g!zEeyO2?hGCbHVn25EDTW$rVMrr
z_6)2HQy4fI92guKSQsQ3S{R%dY#Eps3>b15oEcmgm>JdJvOgKj7+e|L7?>FA*%>sz
z#xOHhz@!<y;nI;XSy1wUB{Ie)u;q*lo(v2OQ4HMw8LAlA*co)$8NApTyxAFiz@#q&
z!%qegCw2zOpA1|~_Wv228CYP7{MZ@185luQ4h&pOIHVZ37?>IS!KprgA&`NAfrTN6
Ufq}t-fq{XGfssKMl-wB@0Etj5$p8QV

delta 1338
zcmcaE(<D=W>ff$?3=9k=45v65v>AfA7<3pyxEMki!nhcM7{WnB1Q$ajLlg%?G>DGj
zWC&u2<zk3qi05QTU`XU(NaA8hW=H`kOyy!oV@L;?kO5MV$;FVxkj=%A!;s6tkjKT4
z&rkpoF63q?Vkia?CF~5PVO$K73}qnQ<?IX<TnsV{Ash^qAi4@ffDNkVVyI!L1*xe6
z8Bh;mHE=LAax*kBG=n%T91N`>P8&NzJ3B)MJ45HjyB8US+u0eq*crOn8G6_mdf6FD
z*%|sK?`AS~>gQq5W6<YeFkqO#&d|lfFp*&r55r`JDLf2Q8K$u_Oy^;k!7!7Nfq{o%
z7Q<{FhB*v#*%{{XFwAFIz|OFchhY)J;>o(q6241#7?y(MmoY47XIR0*uo7g<Du$Un
z467N|ursXXVOYnoo}FO>55q==O^gi8jyXB(4Bb2on;Ew7Fl=R*$<ENj!?2BEI}gJS
zhMkjpn5DUR7<MsC;9=O!FlF*}W*fIX410MP_A%^dXE?yaa1bPO2;|7a3`ckvjxsD~
zWDxhxOwLxwFD+3>DlI9=&r>KUN-Zu<O<`x~<6$_)aGZzX1jCfcVJvFQCmD`!u4h@p
z!e3C7nO72Al9-$wQk0mSx;dKDnz3G+L5G2nL6?D1KmZgn3=9lR3=9kg42BGh3`PtL
z40a4mU=c1Y?X3)qTH6_zHiFd{GcYi)F)%VPFtjk3FfcHPK~yoAGMF=f02kOaMg~R(
z3kFMwS<Dg)EDUT642)&k+ZdR&wlFa6U|?Zc#xQZRBzJQ?mlca7%Qgn7<qUTa($dQq
zOgAxb?`DvR+|D2?B)5%09;9yz1Lrmdv26_U+ZYtKG4R5L6t^)bEoYd6(679V!5J>A
z;tOK#U{Kx0z`u<_z;6=+w~*R423{SIa6QCK-JJ~T%naen84%9#Ll~#AjKKk<7_1hX
zahfpWz$(OacQR<9n6{CDnZbaepJ5V%BqKAUETaO0Bx4|BHe((`y(9xO11M1Y7?c?p
z7}^>57&;jw8M+u$8M+w^82T727$z{dGfZTNVwl8`!Z3xQieUyrKf^qRNer_YrZCK9
zn8`4oVGhFrhE)uU7|t*(X1K$!l;IV_a)z%AD;Sv>Rx@%ltYMU8*vP2Bu#QoQVFRN&
z!)8V;hAoU14BHu<8Fth&1~TksjAYoun9Xp2F^^#%V*$f{#!`mE;Mi?p;AL=U@L;fF
zux4Okh+;5huwk%eU}c!Xz{+69V9&t9Aj#0c;J{$bz{Fs{kjdc4;Kabps05e&%3#Fc
z%;3Vn#K_E`0yc%2u>dB^=*(cmP!Ev~gh_*v2`n)&mNB?8xG^v?xHB*?L@{vxXQ*Oe
zV`uPSXYgca@M35129rJv3_lq}oY)zBe=@K!+5cy7W?+FS@?&T4Vqk<yVU^JU>0)4J
i@CT>v0ER#Y1_l;}AO;2oGX@3*E(S&hZBVjiU;qGW{0Jui

diff --git a/out/production/infinitymonkeys/GUI/ChatScreen.class b/out/production/infinitymonkeys/GUI/ChatScreen.class
index 9cd0170f385893cb6f6503dba1b12f5f1ffbea22..b19fd0225b9de5ec447780207c276fe22425d0fc 100644
GIT binary patch
literal 8607
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
B@wWf~

literal 8546
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
C<=bxn

diff --git a/out/production/infinitymonkeys/GUI/DrawingArea$1.class b/out/production/infinitymonkeys/GUI/DrawingArea$1.class
index 38b9996d7c65f8f47dff7c57b79e10702e6ad635..020f7f7b7205da256ae0fe46f5fc81c752fdde41 100644
GIT binary patch
delta 220
zcmeyv_LI%^)W2Q(7#J8#7%aFLq!^?*8F(0EI2oiEWI<dxb_RJ6M*&1Af(RuLp$sBa
zK!hqggBm-7#zfb$iTg|>G}#%nco=jTba@!~82EV@^ceJc7z`K;Cv!2%%NT(;#vsB3
zM3{mIGZ10UpugFb@in6lD}ygP0|wy-5(5(q%nV`-3=B*R;tUcD3=Av`k_-$C>I@7F
XLJUj{JPZsB3<4YsQVfy|+71!`H2D_c

delta 224
zcmey#_J_^&)W2Q(7#J8#7%aIMq#0y58F(0EIT@rG<Um|`b_N9yM-fCQfe2*~p#maQ
zL4+DRgE~8d=0w*rW_AXJiMvfCwAdN6c^GsV^mrKf82EV@^cf6z7z`PVCbKij%NT<=
zCLqETM3{jHa}Z&{V6fSV@in857=tf60|wy-5(5(q%nafT3=B*R5)6_I3=Av`QVa|X
b8Vn2!LJUj{JPZsB3<4Ys(hO1zIt~&5r?nTX

diff --git a/out/production/infinitymonkeys/GUI/DrawingArea.class b/out/production/infinitymonkeys/GUI/DrawingArea.class
index 50d6dfaec1e7748e3abf8eaa5ef64db949d37957..37586ef27dda89404ffd782e350363fa3afe4125 100644
GIT binary patch
delta 4513
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

delta 4421
zcmccYb=<T5)W2Q(7#J8#7*}#Jq%%C=WMF4_$jQLP@Q90no#8Qvc*4%`l%3%j7Xur^
zbCC24c7~T+3|tV-D^7-7hSwnBHz49IJHtCJ1_6fmAkGI6@exFP;$Zj;qQ8KMuOLIe
zfr#&%4E5{`KS0c%AlrYjGyLXakY)G-vg<E9!#_@j|BMVEf{}|sfsu)eft`_=iy@tn
zg^Q7uk&TlfmysPL!2u#TK?D~EBR3Z#4<j!-BOe!oE+an|0~@0Nh!6x3LLfE59E>6$
zHKHK>^<p4W97ITf2uTnj#l<MiD8tFX&M3>tkj*H^#gNM=&(5g8!Klc^V8^HgGDVq_
zQH4<zM5uwd>RgN(jG7=q3&hptX4GNSWoOjmV(?_-2brYL&S=2J;KT5MozaMk!4E_m
zb1?+eGd$p8RADq>XEfzv2xc?`S!E8=Yyr|_337-P7o#<!4Txn6V%f1X+Jm$>fCxt}
zh8RXCkd4kDITtnu1_)qhbmd}5VRQl+<;KqF&d%t;&gjX`=*7<H&B(yxnU|MZ<eZaO
z%vPLQ%+BbunTyGgnVFs8_hf6<1U7btf9wn|C(mY$P-kc4V`ShhPAp4xEcOa;cgxI4
zWn|#U%uP&B^$KujXL!cW=*!OVbh98^93wM3qu%6v_FzW8$%olP82u+paOjJ7Gc4v|
zC}Ak&VGLlX<zWnDILyNs#27p|j>A~Dn=yokp_QSHk%2EOu`E$PvAjgzIX@@Ah=-vD
zq&SqJnunnZL^LoIOy0*KS>MeV#=}s@P|w5A$WXw;(8N%{$iNknT2Z2qky@0h$HUOf
z(89ye$<W2a7|s~M!x+gJ#lz6f(80qP%^1VOFpptABZCm!E|<*Q)V$)%{5&3pZpK(1
z#yG}!Mh0QHw0luvK}KeBv5^ZqV*(FjB4bKD4`V808V_SSV+IdnCdg+?7?!d#X7Mm)
zGv@Fx=7OAhh~Y2~!%@aO9>#ozsf-NF0e<f6j0HT5g^Wco!!z^sJ^fuPl2Z#xK$bHW
zGc4v|EMY9=VJrg?<qXq7239aKFna~K^DtI2R`D=aGgR|1YSw_rS`bkOBI+5c*%|$L
z7#kQHc^JwV%6S-@7@K(*TNq0x|K^l8>1J%@VQgb;XJ_o-VYmSbu$v48JdB-;t?Z0l
zJdE9pJv@xPjD0+e{fraX8U1(|Co)c&?9C<3%EM5>P(FDkSFY=1#wm;pBJdzdPtDKO
z_sPslHFDu$oXR+jhjBV%9}nXU#+f_}l_2|PF_yA3&gNm9!#J0RaURGw^BEUR_U4um
zpT)QkB(ji)aS`KU9>ygMQ+XJdGA^53$1TUaoN?yn`P@oO+$$Ivn7vag85v}KCg%xD
zZ+_1Eh<USuP#$A_Is-F9216!87J~qT6hl5k0RtmLAp-*g6GIV$6hkozp9z%Uz;a~_
z<zTu3N>@VZDu!yXcnw1>n66`}2h$A<1z@@nN;g62W(|fGutY0E8<=iq=m6853|$Ni
z3~~&N4BZSp42%rDlTAfh82cvg5^=BZXJB9uV_;%nU?^soz%UV<F^j=YV`N}tn8Yv{
zq@IC+L7xG{XJBB}+QJ~d0c>m^0|Nsa10w?igEIrj7#=X26>1D4!xV<8P|bD>OkgY6
zw6wP}h;M}J=3>wX+3e21%HRPu0^$-js1YFJL2d`xJdI&G$gs)lMaAk77JGqpp<6tI
zVJ1i|0|SE<vc*yeiy_YT1?$GN6BKSBJ7+P>hMI%ydrn<+?+1X*L3hO*hPfc!lMBVf
z4G}I50;|Qe6BK74JLfUX2kY7?rfUPz#mB(Rz`zi}z`+p7Ak7c~)(x>q1{z8W7#JAX
z8JPHd*clcwFfuG+SPV8mN!-~SWPlh0D+2>VJcAHJ0)qlWB7-hN5`!T_3X(xaP=i<)
zmM|;@>zyN>z}PqWueiQHC|<P~SQu0ov_M4^0~3QKgDAr?hFY+*{GmD-82lNQGpt}>
zWB@rvfPqEg4}%Ol!%8Q1hE=~9L>U+vRx_*tn_MlS%h)%0rG&H%$YccuW(Ix+7KXJ9
z>%i$l1a6)P!+M4dQ1jRsnEcooHnK1<GHikvGf6U-v2SvSq;e?86p;H&p{9TW%L;Ca
z71R`Q24#lL3~dZdVE2hJF#TsRVPIxw*uu`Rm7QT510&S<?GWQ9pOMsK?3?^sQXZT=
zK(6G0nh#2@qHyy?q2_~p&CbB&4K-#5BnlW97|a-$z?p(WYZC+SRt7#q3giNNcn$+Q
z!(61O;D8#<$gmS^hHEdHA*NUiS-=2_c~D3|5(dJMU0_3cC*PBj1ZNtErArvt8J1$T
zbT>pjnw{oY>|DXX&ae`z8GEprVNs98kTneK3~R9(vKOl%>R8O!z`)M15vv*d81{pb
z90LPG3<DFx<gd~);4lzkU}0cj*uuchu$6&_VH<-W!*;NCP%JYr2tgwN#5%yx0**W(
zhJy?R;D|iLa2RSNN{PmU9<6&ASQ++$O-0G*BH#k^2tzHnEIrC_3}o2kB{J$@he2}s
zAqG~4!wjMfN079O!5t+Ab_%GRI1bUxz`%fTiu6_nVRWY)XJBPGfn*kP*$VO&$gC4u
z3@1TOVPIesXJ7;8>?vB>+Ze32GFWe7u+iGWz_*RTR&O-}14F~)64^W@4qu&Z3|?B>
z7*v)sFmGgFWQb*GVQ6RYWMF0h6*)!>Jd-))q{D79v@=|1=wP_P(8F+xVFJT#hRF=~
z!EONsb_W9s!zqT-;CwIz?!zezYZ=Z!Gd?#1i^_L~BzA_gET97W9K@BA>*Nd=y(h1i
zv#R%r+|J;;l|g(tgS^&m2EWMd4E|uApw@1NfXM9(fnXjpC`=$O(_`RfU|@L6z{l`}
zL7L$yg9gJ3h8Tvo4CxH-7_u0?FqATUWvF2I$<WO3i=mB?1MF5v6t=@%*baB0A_D^l
z1IurQ7+zjp21bVS5ce@KFivD(1E;b_lRM>|CB3&X1kGfK1y!5}7=pF7Fj#}|HinSN
zfl7*#*%UnLL$$Ur@Mvve;NQs*#>No7oPonn7ZkvZ;M$UrVKc)OhU@U)^<xlbU|{57
z;9%rsuwmq9@M08Th+!0DNM{scC}I?5Xke6L=w_5*n8ql}u#i!XVF{xO!+J(_hRuvx
z3|AP<7_Kv#Fx+4?Ww^s=!SImLlA#~etN<0FH=r>BDnuW_{rd>&Uk-*_3>O$KLJLtr
z2G&0eHtY<Sels{L7lERPfsx@dECd)#!F4<X10yKxnZT(66om|okw{_62(_c0fq@Zf
z2_wT5!e+!_F$39%t1u&&#TmF6I2jliA8T!4VA{su>I+TQ;h-4U!r-L6jUi$OgHfa%
zgzv1qjUj3WL!=oCgb$Wa*})KP25R<LZ(#r{00~THQ?lm)#U;ojZ%ACKCWmij@LtYv
z8#SiGw=sk)XE+8CjM3V{5WWqZ7=&4K+S4K2IIS%VFs^Vrh||7}Azo_>gVZJl=4}ib
zAQnjfHim@BH<e^!6D`?6+ye|C<E*za#7eM(OtRj_5GTQ&F2ax`!JZ8vw=u*oXE25;
zmTebhX%}T}7i9w(znnoDBA$XGo;o>5Sr0iyrh!u=mleAt`!)uzjSP&8YZ-4a-i9Z~
zJ_cn52F4@?4#pG)0mf7YdB!vbea3VK2gVGBK*lVF4#s?jS&Rh?OBo9pHZT@3>}D)x
zILuhWaE!5%;Ra(B!)?ZTMqb7SMsdbQMkU53MqS2c#(D$B4n{}DF2-!eZpJ*u35?B*
z6B*kWr!mfEoX$9paSr23#<`4Z8Rs)@XI#K|gK-7pZN_DccNv#6K4OH_N-+$ajE)St
z4A&U0Gq5w>WncvtHSD0I08MlZjE|vdj)U<wG-1m#9szYh7?|rB^clA>++-+VU}11z
zT+DEbp@4yvA&_wr!)=BF1~zarLWP0rKSKutJGdEfhn?XPBO@at1B0!|Z-x+CadAs0
zc80T{G=CSC8gXZeb?6D&58MuiWeO&Sd*JMJpCN~Vfx(D@jUgK(FTlZ&%fQZ%=ODr0
d!w}49$iT_q#}EUi0~k_3G-DFOf5v1MP5|>-DG>kw

diff --git a/out/production/infinitymonkeys/GUI/PaintGUI$1.class b/out/production/infinitymonkeys/GUI/PaintGUI$1.class
index 7fce18d0342e0ca5548cc3e38bdbfe4da9c22879..b00acbc0bf6a60c3ce7a3c32af05f1a7490ab9ce 100644
GIT binary patch
delta 2473
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

delta 2345
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

diff --git a/out/production/infinitymonkeys/GUI/PaintGUI$2.class b/out/production/infinitymonkeys/GUI/PaintGUI$2.class
index 2f499dbbe39bd0ff0c5a160adc9a89264b7d0a82..13359c43ce691b91e08a770194a26357ab4ae9de 100644
GIT binary patch
delta 37
tcmcc0dX;s<4@SoH$v+uAS+f|}8M7z5GkLP+Gq5ujOm=6IoxF)j8362l3i1E|

delta 37
tcmcc0dX;s<4@So1$v+uAS<@KU8Pg}bGkLORGq5w}Om=6IoxF)j835}F3f=$!

diff --git a/out/production/infinitymonkeys/GUI/PaintGUI.class b/out/production/infinitymonkeys/GUI/PaintGUI.class
index 1e9d7ebe50e42e918dbe7b7c29fca67e807289bc..bdf80ef5f698d814a37a2f9388bbc28c31845266 100644
GIT binary patch
delta 1370
zcmZ2(J;S>G)W2Q(7#J8#7*}vHv@tvb5zo08Bp6<>GrZ(rc*Vi+nuFmD2g6$qhIbqc
z?>QJga5A(peB@yG#KG{HgW(H^_mzX;8wbO85c3BI!%q<Xi<99u!ygdqFFV6O5dEK%
zp^cFNL@<H~CJ@2Q&REaF#URJ<0>oowXJq4IP-J8WaX8o+Ik^~AARI1`2sb+;4;O<5
zBQJ=<$Ii&l#h}gbf{Q_dQGkn4kWq+(QJ9NSgi(}>QH)WXgHeKmQIdmEii1&_gHeWq
zQI>;Ij-64Sol${{!HQ9li@}mn31m>cGKi@HVyc1&H4vc=A~ZmRCWz1i5!&pGI$R8H
zjJoWMdRz=1jQSu!0}#s)M1V~&VrMkwU^L-k@MAOuNt=OK<{-j?gV7QsV#UE|4YCj{
zZNtH6TMrVo<6yK0(GDDpjv(5JgV7m8yMTP>%E9OcqTM+dJ=hsNIT*b-7%p=$q%wMQ
zF#2#XT;*brWAp_PejqLWAXWf~2;^d@W()$cg1H!OFotk3urP*#h%gSua1b5A&KSw%
z!cYzh#B#<cE{1Z(Xm-XJ5FHEBYs$eG2XcEnNO1xeV<KY`h)4#BrGR20737mNcE<F@
z4oobJ8I#@F&N60BmSESK?8-ie_a?(F9)|M_7kC)9Gu)c|j(rkK77t_g<Q9%B#>bQ2
zbA)N-Fy^u|=J7D*GZrv1@aPvL=A@RCr0NyqrL!{@@-P-L7PB*!@GzD#mQBv*oGehz
z!?2yPf`?%~!(<-DO2(?mLR{9&)eN^L2XM)7*YGebVOYw;Sj$*9xtvR1pq__eA;Tgb
z#s<bl9>yld=E>W*yaieqTNxQx{ql=SGI$tU7~3Wba(nx?Gcs^_1-L7u<rn29mhdok
zFn01Vb}@GHFic>W$ivvp*u%rv%W#2*v5&Ezhj9YqL>|UTAl78YDLjl*8T%O-SoE?A
z(s>xCF-~V>5T9HxAnwh>ID>H}592J5EKgQqS)zVszP?*#PAW)ZHb_T7UOErs9FRG4
z8RxMx&gWrVz_<{kV-XMIV#azN#wCnPc^H>5F5fJ`6T{7zzByNXC!;_cJHsgkMs@}_
z76wL!(+p=On@L(tHkK5d+$O2ce4gRL<_(etjP<1q+>B)ma*X8+hKv;qmW-7Qj*L|d
zo{ZHDp^P;Qk&LwrNsM(2*^CVgwTz7nJ&a8Z%NUy(4l}kg9Aj)}xXReU@Sd@g5#)7#
z#(sv~pu&NHl_7~?EyG2IOAIUw42*&d#~DsAFfhn5d}g@JaD{=9!I0qr!&QbW3``86
zh75Zct}$F^U}iYUz`!8O!1ABrFas+)LmNB84R(ebjO+~63=B-a8C-ucFflMO++?^l
zd4hCQ=u`#{#%T=PjMEt;7-ul3G0tW%WSqxf#W)}A0tE(U1_lOesJ$Ev#tgR^RxmI!
za5ES%++n!Rzy!98i-GAcgBm*n3nLc;Bg0*WTa)c&90V6Ja4;@r5MW%wAi=nlL4k4E
z<OwpO%=Z{>O<p16pt+KPgK-su0OM)~3C1-H3XE&P_VF+<GB7YGLhKXZV7SllV6vdB
p5%)uozXdoL9x*(gEGR2HIZ;-gA1ube#PEcHfq{wP>EwP{2>^)S9LxX!

delta 1391
zcmbPXz1+I~)W2Q(7#J8#7}s(!v@yH_5wE!zBpBYXGrZ+sc*nu;o`c~72g64WhEE&}
zpE(%5a5A(peC1&H#=-ENgW(5=_mhL+7YD;{5c3ZQ!(R~nkCWj)BLgQx8zUn-BNK>b
z1`#YEf)zxtfe3bX#(EAe204Z|ARZ?>BNrEgA|p45!^6(V%f+Aq;qZY(_}Li+xEM4T
z1wkAkc1B??25p8nTnrM7B3z83jA9&&;#`apjFMc8QjF3Zj4~XIvK)+Z9E|cDj0zl#
ziX4ne?2O9nj4E6VR*b4#43>;)AcN}FK}-!0QximJfe397p#vgxL4+QN&}U~f;9_uN
zG-PKq;$rY%GzJNpfLNv=0&IdAJEJ)VqXid(AEPBm+6u(71`#$KjJ6;VI}S#BkcD7r
z2M$KZdXT6S2ct8HcHv-j1<`ICjP4-X1LQkT4n{8!?ajgH!_Mf-!RW`qaFvT8mC>Jr
zF@S^NIv0Z+V<3nK0%-{bu|hyZC>KLDV;G1P&cztP7|F%J!Wac2qB$62Ky)lSV;q+Y
zLpdlA%NgUj7|IzF*clT+bP`CfB?n_N$n7a0#i?A3X^iP0A_F9r35tm<kWaGN8FLmp
zFtM=burubeGa5{GWIM}}$Ih5InV(&YnVsS7WJ~rrymuJx@-SRvxWvP-o#F1}N9>bW
z@_85wCRcD|F+QLCm?KQ9kg<rJv6zRkgt3&7fk(d}F(<X8Bvr2<FP)vSjEAwDv4Wkk
zl83R1v3hbc=VXBz9)|6VwLA>-87A{E)-l#kX5+GEYhbv`$RIlTA+snyNV<`SVF|-h
z9>yld=E>Py`T{LH3=0_+@i4YBw(&5wGj>c~#pNx~$=Jon!0MM@RFc8N*vZ&EnU&i+
zsE3h(%PYWLAuYcsH?f3=v6r!rhq0frkB4Cb!$cm&35*kY7$-4Y;$fW3IE9CCD&sVE
z#ylRz=^)Mw#+f{fvlyo^GO*}n6{Pbp&Ssp$$RIwsKtSA^hjA|BJRZjRAX%QQ#Ii*F
z%zS;f%$!t^!~&3xg1mGd#)Tkr7BMbnXI#R=xRh}jNXK#>#ubb$Jd7(DSMe~eW?ZwG
zktc?mF?n;G_)bQyQ|t_<85r3a&ah05la!onC8^GQp5eme6iF-Qiwu`GFO)Q3tS@BX
zW-MZmV=QJcWGrE@WGrQHWGrLwWGrV0WvpO`WUORJVyt4wW~^bTWvpfBVXR|V##qmA
zn6Z)J7-KWTRmK*E_l&KKpm5`7>}J>vDlr&X8Il;*GF)c3!ob47z$nOYoZ$om1A`pH
zXNIc`*BBTX3>h9UTxYn(z{C)0$gqdu2E$DTW`>gt3=FaiEdLn}GqAEVoMLCV#m;bx
zk)7c-0|V1<2G?H<Obkp6cNp$YZj_D+oyfq!IEjIqaWaDh;}ixp#_0@(jI$W57-xfB
zpuoV)z`$S)wU>jznBgA73I;|7ZUzH}`wTZ3n822CF);mQP-AC!z{thG$ncQi?qmZQ
z2f=v^9E|fB1Q-`ENH8vBP+(j%xlu-x`4L!FWb#@W9nGZ-9E{5t1Q?eyNHDHoP+(jM
zwv&f}k%56h5n`tR2g75ACzF|EjkuqJ{4T)3@QmU4WP4d7elVYbiQxqU0|OJo%gGJ0
F5&*_*AtnF-

diff --git a/out/production/infinitymonkeys/GUI/StartScreen$2.class b/out/production/infinitymonkeys/GUI/StartScreen$2.class
index 198f611af82d26de01a9edf8157fbc742677c7e6..3c75e4eff4740232a34d340af4bd4e09ff3c502d 100644
GIT binary patch
delta 397
zcmbOr(k@be>ff$?3=9k=485ET@(eay3<?akTny$6c3ceB4E7+xfs4VB!3o52W@m5#
z(XLz!ZVc{R3>*v|Ai@(Q=EcR}&EUhyV9nsm#o))_4<Z6UVu4%?K@7nlRtSg)1rcE&
zBAkOEf=h<Mnjw;dA&P?`nu8&RgCUlKA&#9Po}D3qogs1K>|n;pUl>j5lX)1F7?gP!
zR2Wit7*ZM1co@<dGI$s=8M4?JvUwPC7;<?S@))uh83eKt%M$f-67$magG-7s^U`@3
z@)-))847tAiWrJP29)qHlrog@FqAV?urpNhFjO&A^Dxvf)Uq?w@i5dgH1IGqf-Grb
zXl7?<;bCZHXyaiJY6l5*fQU{I(Z!H5c@L8|b2mfJ=2uLQ*_`Fs8O+%kI3S3TfkA<X
yorj&5SN#_Q3)2q<76xVp3kC)TCI(9eD+UGz76xku1_mt#1_mw$Mh1BXFaQ9in?U{m

delta 391
zcmZn{nIKYs>ff$?3=9k=3==pR<QeR^7!(-nxfmQ69Jv^58Js|bGZ%vkgDZ&T#?Igl
zqCL16JQ=*W7&sWbL4*%T%$JM7kHMdl!ImL_iy@F92t)*f#6q|jLK(t9tZ)z!0U{zn
zL=*=@G?xs6Ekg_kLo5eF90x-@2SWk}Ln1pv5<5dOJ44FG*};r#><p>w4DOTPF`Cq;
z@h~VcDDyC=Fr>3Hr1CIiFl6#DWHDs(Fyt`gvNPoIFyu27@GulI<T5e{WF?j*>gOcp
zrRxWm6lLb6^Dq=K6tgpw@Gz7zl!44B=V7Q|sN`X&VyI?ksNrF#WvJs}sAp(kXK3VM
zXkuvQVQ67U=V54NXk%w+=V9nz5bfk)=mH6KgNPmw(aVrNc{7tXb00(h=7&s=*?7&_
u87$ZtEFoy}MNUygD+UGzCI)K;8wLgj76w}e1_mt#1_mw$Mh1BXFaQ9j&qCV(

diff --git a/out/production/infinitymonkeys/client/Client.class b/out/production/infinitymonkeys/client/Client.class
index e224883a43ce45dc62348035bf387924ae3ebe15..c6a8c875f45b154550352c748e2833fea6df2de3 100644
GIT binary patch
delta 793
zcmbPfG|i~~)W2Q(7#J8#7>zj@1R0irh~*$+1&CM)B35xR2r{hZVvuE61LCd)5$iz2
zdJwUJiy??%BL~AK5N9(7!xj*|m7QT5JHvJ^1|fzWApTBvhFx3?q7cq*c7{D%3=$Ad
z{a$v4eOwIE3_I8v_Ji!$!On1ii$R`YBgj@Tagd$i5C_9ykfI}83`ZG`fmp{u#0ijw
zlUxj^7*2y&C%72SFq{Pu=RlgzgKWM4VqFA@T>`N#gVbH&WH`!jm7U=l7lUa%$nDp;
z7)%*%fQXx147V6=b1>ZDV7SZ8;K^_g<dpkd3=bF{g1C=B#AA>_Pe8;|E{10e&p8-g
za5KDQc*V}}nuFmDJHuNJhIi}???KM`z`^j5i{TT)XOOjDxEQ`NeB)yH&hUes;U^=5
zfQze}<K|k%C>Hi#><quz8U9SZ$67QwnC%7Q-^n)YhZz4&{?A^=IBjwrhe<HQe}+nS
zMg|^6Mn)zcMrMXi9!3@r!OGCd&dA2Y$PS`8co;bu%6J&L7`b^E${EUd7-AS=c^FDT
zVmyqzJPcJJ79S%&52FC1;AB=#Jw72uVID>ihB9_WQ65II$&Q?I9^#A=JdBczQtXV<
zJd84ovOJ7(jPg8;3XF<83>6HOJPg$!rzr6-Dl@7uGVnQPB$hbm=am%Y=j5aou`{aj
zFsd=CGct%x=4Ta~yq7aUQG-#Fk%57oQHzIBo1v12QHN2Nol%d6QJ>L(ozako(P*<B
z*9T5EWljc0hG~;cM4TrZi%3qMAfnAUWAYx6K*pJq`9z(WXEDs)93r}&NpTLtTn1K#
zjSL11^BCqcurTgtU}gY|F-~L91Bp#mk<iy#z!1W~%rKRKfkB#qgP-RQ!y$Htg})dW
l8UHZcgRmUg8I&0q85T{hmGEX<Jo%)AC;Jix1_maEr2uC?tt9{e

delta 791
zcmbPcG}Ea5)W2Q(7#J8#7)>}C1R0ith!r4WC5TuBB35%T2r{hUVvuE63*xQ=5$i$3
z1`x54iy??%69>a)5N8Vq!&VTzjh$gTJHrkx1|f!>ApS0PhTU8Yq7cp=c80xN3=$Ad
z{XTYv{ag&v3_IBw4uI^~$<A<)i$R`Y6UbIDafqGaFbBgCkfNhp496IbgIFg(#7U5b
zQ(O$E8P0%MC%G8TGMobu=Ruk;fNZ`9VqF4>T?VnPfYe>(WH`ofjh*2-7lUa%$n7_{
z7)%*%f{0sO47VBXa4_8EV7SN4;K^_w<dg?o3=bI|fw+%B#1oJ~PeH^pE{5j}FE|)p
zax=VQc+Jl6hJ)cPJHtB;hWG3YA3)Cf$ieW5i{UfF7m&4Ixfs4NeCJ~L!SIuv;TI!=
zfQze}<K|k%C>HkL><oX{8U9Yb$6Cb9&Tx2g0NV@3f0HfQ4>A6q{D-}car)$H4wEoO
z28K#@Mn)b+CPro+Miz!n9!6FW!N$<Z&dAQg$N{1`c^J7E%6J&L8F_dZ${EUd7-AS=
zc^FDTV!VueJPcJJ7C)l^52GNX5F>;5WJMnF$ugWGe8P+(JdC0YW$cV%JdEO#?KtIJ
zB^V`n7^N7c*%@Vc7-bpdco^jw6?hmG8I^b#Di|tx7^*=oQs!Y)VN_*g;B(GMEOE}y
zD=Es)$w@6@XH?^1RA<zfypXd}QIk=Nk%57oQJaTRhoO>(QI}DVol&2M(SXsAozaMg
z(Ri~p*9T6fX`GV_MPw#>ifA*=m~1E_F}YVndoq_O*W^PY9*nal8;XcdRuI)=p3N|4
zbD-#YCdIi7^B7neHZmA6%x74@z{0qnftdj;#yE{Z4<t5OQ9_?_;p9LGVX;NO7#JD<
lFx+Ej0I?j|8KyBXGAy24CE?AuWb!cyPxhq@3=B*R%K&?;uDt*N

diff --git a/out/production/infinitymonkeys/client/ClientUpdate$1.class b/out/production/infinitymonkeys/client/ClientUpdate$1.class
index 4bcf9636a6fb854dde6e263d81fc41f259703c55..9d6140add3703d800f006cb25a781bc5a39cde41 100644
GIT binary patch
delta 214
zcmdnXwu{Z|)W2Q(7#J8#7!0`>#2F+w88{gvIT^$mq(EG0b_N*`M;1iLfe3ka1_gEo
zrHN*>6StYVD6=!D@-V0~Xz(y_Gw|>*XfkN=FlaOAFfvGGC6*=X=OpH(>-*&gmnLVp
zWv1q&xE2-V7x6IYf|Tij2z>^v$@+{zEC!4W(vx>GN^f4kn80Yu%HYe+fJ`tjGYB&<
rFfcKQFo-fRFt9L)F)%PFGB7X*F)%T3GB7YO2yifnGpI1AIY<Hkp>7^p

delta 184
zcmdnRwwKN9)W2Q(7#J8#7>u|WBp4()88{iFI2j}uq(NL6b_Q7xM-D{Dg9rt721RxT
z<%wps%<K%Z6E~YmsIW7r@i1sGX!0;{Gw|>*XfbH>Fz7JoPGXej)dR8hL4*N=_GBH#
zAV$N@^^A3lw!#d)><q{R12cmN0|NsSgD8U-0|NsKgE#{NgAxM+gAfA~11AFm1A_nu
Mg9L*rgSvwx0L!Zr-2eap

diff --git a/out/production/infinitymonkeys/client/ClientUpdate.class b/out/production/infinitymonkeys/client/ClientUpdate.class
index 546c909d1a2d5ac4faace3164e5479d8faa5159b..b9dca52e7171d7d71ed6de19e71561a60b7a9966 100644
GIT binary patch
delta 646
zcmeBFY*4H}^>5cc1_lNbhAUhQh73uZ3<eCzTns4;say<c4C!1984Q_R3_%Q8oDA6v
zIUEeRTnu>(`Roh@Tnt<cNg$$-gP{mS7lUL<xEKr=N<sR;TFXFM%Q+Y-Kq8e~48aUl
zAXYUuLk&YM$n3g$5D6w4I2lYB8o3xE7@9z8nz<NS7+OJ&Xagx}=V0jIV(4V(;$Z0J
zVCdms=w)Z<<6=-}=;vUVz`-yPq<Rtu!(<MIDI5$_K@!v08K$!{%wT7j$<8o~onba3
z1CM83UTTqZPGWI!YB3`NTXIfj>coG2jB_^kGO9AN%w=boH+d(MJ>&ezKbe+jhw?C(
zF_^P6EZ|{S$gqf=VKEQG5{9Mh49j>JmNTs2VOYtqik)FK55pRUwUbXXE3mEOVOY<w
zVe&_2nfi?kn;01w6?hmnGi>2u*vb&f!{El?&cm<`q;ESzC?f;2V@?ha!w!)2PKI4P
z47(ZjuruuCVb})}+0U?nhv5K7*Fg|*h~Y2~!x4s~JPgMej<YkI;9)q)aEgcFG)V3Y
z!&ycKRfWj>Qibx=qEv<K%;fCU$^9%6Z0C3wHZp9Oyq0Aq^Ld5~lRa6@m@hJ%n%u-1
z#e9k3^5*-j@7WCu*cp7-8G^vbhmnzi;SYlnJ43L{F9yCJ46F?H3=9k`42%p842%pR
z45186ll}R`CyVl#GKVpQPWI(<VGd`A+B}7C9;0|Pg9`&A0|TQxLkvSK0}}%iqbx%l
qL;Pe<0Y&))1_lNuhC~Ka1_lNp1||j*1_lNO0S<-;1|x<@2T1^I+LC_&

delta 646
zcmZor>{P5j^>5cc1_lNbhU;7mh78G^3<eA-TnwoUX<Q8H3>jPunG9K64A~4hoD8`P
zc^nM+Tnq&ah3pJPTnt<c$snSbgP{aOmx5%<xEKr=%0c?US}Q<WD>)ddKqA##3^fe3
zAXXhWLp?(S$n3^?5ZMGGnmHLv7+Sa(A{kmiYTCFM+8H`Pj_3r*c5yItb20QV^l~ut
zaWM3AFic=)n8?MT&M=9CVKN896p-qv91PPq7^ZVD%m7KuWM`Pg&M=#uVGcXPTy}<e
zj0`-Ud3mWt&N+$2#i_-N3~b3cnW+>1^)b%h+{>uS$UcjmVF5eC!pYm1>=_qL{>HRK
zFN}x5jKQ3pVKEQG5{9Mh49j>JmNTqiXIRO@u!><dJHrAVhBXXp*%{XHFsx_TF!?C6
z0^3F&hD{8cC%<Nvso%n|m63r_frnum!*(8q9SmVS3~mhWJPbP-R`W3IVhCeoV0O&O
z;bGX#u$`S@ArHeIhP^xt`xy4KGaTSyI0({nh+#7i!(oudBOu}^!!aI);|wQw7)~;r
zVrMwb!*GV-EDysuklcBO3ych^3X%Dx3gxLqsS4Sdlbczj*)H-hY+=|uc?ru*=1UBh
zCp)m3F<)UgJGqiIiuo$TwawR9-?Qrlu`~FvGX#T?4<jQ3!yg7Ec7_m{UkrRd7+4wX
z85kH?7#JBG7#JBs8Nw!i=JjI^X9%0@!so&q!4SQ<n{OVYcnpIJ10w?iqdY?_LmUGW
w0~4bxLp(#mWCsC7`9uZ=1}26i22%zG1|bF}1``Gb1_l8RhDZh@hA0O~0JMsf$N&HU

diff --git a/out/production/infinitymonkeys/client/DrawingUpdate.class b/out/production/infinitymonkeys/client/DrawingUpdate.class
index 2b05fdbd8140e60af6954b926d0c877d00debcb2..170458854e5ccc65fa78b796928745b5b9c87396 100644
GIT binary patch
delta 766
zcmbQB-J)H8>ff$?3=9k=jNDud77Rt44CV~QoD3xlr5p@pTnyz56<iFJ3{_kV)eJRU
z47Ch(TnxSp^&AWhAi5DmG=Yd_kb)L2hE|3)E{1l74o-$nhAt4%&BdV2&;ufRK|~)X
zLqEd=5HS(Noy1ko(9STKonZ<WgA~J55HXF5A(de|2g3{yJ(GiB76-#@4u&}#40G8T
z=5aBoFw6&OTmT{#axg3c*|wOAVF|-hc7|mf49htgRxqptNv;CPtY&9e!^L30u$GHq
z9m9H%$OaIxk)2@^7lSFoW_AXyE$j?i*%`L6Gi;yC!8na^$K?5pU5q<7YcV}#WZX4b
zm}S}IJuGT`yLlL_8En`Y_V6(5W!N|Q1B+?>ejbJc4F2p42YDC{F&t)RIKsnll;IdV
z!*L#l6AUML7)~*qW@Hd{%qdDuOsQ1J%u^`INL9$mEH2?;IKyz3hv6K<c^-xf3>SGA
zE-_qYXSl+{aFyX2JHvGzh8qkw*%@x}Fx+Oi&%^M5;UN#hBZkL33{M!I@-RGOc+Sr7
zf`{RyAVVMz!z&Q+n&Ax(!&`>klXtMni@)Pxc+aq#hv5UmM@9w~|1d`%9)?d0rzd}8
zbqf5<!|;XSD-XjrhVP6FY_3I##i=Pg3_lotvNQbRVffAPhmk=zE3qt5Ke4<--@PcY
zAR{xm*vN&Efz>t0G1!%z;V%!vKZXb%hW`xTc^DZOc290$Q`Tc-XJq1GWM*XHVPs`w
z<6&fH<bauznXm8Z?^=<ZT2PXipU1<<$*_C#RW?y(My}1TIo&u|wAmR_Cz}e%Gp210
z6<Wdw;r|tuVN9PaC6dUT!H_w*PGnD57DF}z6GI{c3quY=E&~$-14BB46N57Y2&6OQ
zG2}BaGWaksFmN(3eP>8uXE0@9aA9CzU}0cnaAja(C}3b<U}7j_xW~Z2z{SAGaEGCj
I;Vug&0AIPkR{#J2

delta 734
zcmZqCo}gWS>ff$?3=9k=jQm^-77Qhv4CV}_oD5|Q<s1wZTnv>ARa^|!3^iN~wG4G!
z4D}2RTnvp2O&ko(Ai4!aw1S8>kb-tDh7N{KE`~0KZcc_ChF%cS$Hkz{&<`RefQX5l
z43iipgNP|0?o_UNhAxI_><rVn7^E0xfQXq~46_(!b1=*S(Q`Q%=5a90=U`aC!LX2>
zVG$RD3d3TM#w8$PDF?$ckZsGk7*;T>WM^2#!LXW>VGYAtkmNd$%zAc)4O|Qc3>&!^
zHZg1liEIH8TiF@5aWR-OY-eZS+QH7SlbvA~JHzhD9E{T#_e`G8*u}Vavli1+MwV6V
z4ErVvuq<O{XV^A*8;cs>ejWyE1{-#U13U}|84gW;#bR22n1|sAgFidNQ67e449D3S
zPVg|CWH`mnaGHnV48vJ=hP^xt=NQg2G6*~76s0DnR4QcVDU@WSD&%Aqm+&xLV7SP`
zaEakE55pCPt2_+X7_PH3+~8rj$#9FE;WiJ$9frH?4EJ~#?lU~*VR*vul!xIN!*d>n
z7Yr|X7+x{FW@mUK!o%>EA&`gR9f)|(@PUWnBg6j5>sjTcKJhSoX4ucpu#bn~3&U4N
z1{VJ?M;{)BZw%)rKV@}N{LaJhgW)F+!!L&4j0|k9MTy0!DLf2+82+*|{NrKx&&V*@
zgH2wLk&%ayi6MfAk(uE)4<if1{>c?=%EGMdjBGrN?2H^djGT;IJdE6oJd@Y4Nig#=
z?B9HnO_Z6DZ}WXlHx8Cmc80XcnnLo7>6<-;mM}v2ABANYGbZziBr<0*WKAv-*%Ow{
zki)>lkjTKokjs$Az{J47kj~)5;LHF5=?wV{1q_S~J`4;DoD59g84}nT3RxIj7#J8>
j7#JB`8JHM~7#J9s7>XGlF)%Q2F)%VbVCZ3Z$ifK#$&<98

diff --git a/out/production/infinitymonkeys/client/EncryptionUpdate.class b/out/production/infinitymonkeys/client/EncryptionUpdate.class
index d1cd42f871ec50b9e0a09577dd32bd5e9bfc8527..5a19936163cb4a6039971f14fe91ce5c8f54707c 100644
GIT binary patch
delta 470
zcmdlfu|%T&)W2Q(7#J8#80K>_XflL>h;R;u2o8owE(SJ+D0YTukWdVW6U)vJ2cqLS
z7!tS`I2jT-8Il;1*%?x}82A`cIT+GFbUKL001=s73|S1>><l?v45AFV><oEa4B{X<
zpPiwAi@^)TEaY-zkO47@xESOZa=93^K;{&4F_bWrf`~E@QO?Cs!B7bzs@NH-xfs+z
z8fw@XYS|g;*cs|K9!O(iY?y4!Tq3~8z~x$zoLW$lnV(n8&d@k{FS7%46GQVP7Fp&N
zhStdnEGm+14DE~z%#N<XJPh6p9qbI9JPch7-HZ(4lN;H^SwVt6lPg)2MSB=}c^G;a
z`gj=n878nZOypsh#4vgCMiy=6DGWZ7@3Ry!GcqVlUcsa=xt!HhdMXb?6T>tfhUpA5
zco=3f%wlJl&BHK<VJ;8Dyv@g1n^`49-Psw$-Pswu+}Rmq+}RoASQr=>ycv8ZCvkWA
z`ZD-2FfvFm2r&3F1TZi$=rFJ_I5Gq>FfuSO7&2HfSTis%crq|B2rw}HXV7L~WM|L>
b5$Y@qK@1EGEDVec!3>NHAq)%*Obnp_sj5^6

delta 458
zcmZ1?u~VY{)W2Q(7#J8#7?yD|Xfnirh*%DWI1Yw*E(SJ+1a^i*kWdnclg!SL0-{qn
z7}B^HI2qD888R3$*%`9982A{nIT&(4bS{X<0}=UL3<V5@><mR*45AFh><lGb4B{ZV
zl%1iBi=iCEtl)BFkO46&xftXain$oHK;~3&F;p|ufQVWUQOCtl&(HuO8rd0|xERzy
z8k*S|TG$y{*%{h49!O*2En;UVVP|M(XQ*IjsGO|MTq4HK(9F)z#K^$qT9KSuP?DLS
zSIo}PF?lt!19K-s*W`E1vdrBKJ(KxZRK$82`WP9Q9bJQY82lOf*%>DAFid2aG}(hi
zhS{GXU~)Q(vgl-nDLf358K&|uOk<eN&M<?AVJ5?@$@5vXnP)QuOg_s}#LUjnKG~i%
zLV6AlLnp&r9)@`g^LZE+Ff3$eSj5Aym|+PI!_v*0SescTyxiFtyxrLueB9X?eBId@
z{8$(m7(n*;a(9UbG6XR&GDt88Fa$G%FfcLbFt9K<GK5Zk$1N=##=ywV5YEC7!N9=4
T!obK7$-u}E#lXP8#1IVtr`1_K

diff --git a/out/production/infinitymonkeys/client/removeClientTimer.class b/out/production/infinitymonkeys/client/removeClientTimer.class
index 5c5958ca564b2a0b1c4a1eb90badd056430af59b..bc84299015c6ee1d659b792def75320715019a83 100644
GIT binary patch
delta 182
zcmcb@b&f0I)W2Q(7#J8#7y`H$1Q|3r83Y)#K!i3IgARi(7lR&yJ{N-lgCQ4#8iNst
zFlJ={1LhZ83<3-$AR$u_VaCp2&c(pTV8PB{$<AQ4F~Xja(R%W1Mq_;&9tK+mJ9Y+p
z9tH;nM|K7$9tLLy7aj&z1~(oCcLon022Tbr9tLj)A07r@2ER#6%544&a*PZT6aPtU
Wc4T5_=HX*uU}R8dU|?Wk&;S5z{ur$Q

delta 181
zcmX@db%iV9)W2Q(7#J8#7=pMM1R1nA83Y)#L4*z$gD!&}7lS^70T+WIgAo^lF@p(+
zFlA)`1LhZ83<3;hAR%)QVZqK|$;H6OV8za0&CX!6F~Xja#g?7Ha`FsDV<S5r273kv
zb_Pct1}6q*b_N$723H0*b_QD>26qMz9tKYaFCGSO1|J><Uj{!O27iWt$-fwt83Q-V
VF{v=~sIxFIGH5U`FfcJ_0swN|7~22<

diff --git a/out/production/infinitymonkeys/remote/EncryptDecrypt.class b/out/production/infinitymonkeys/remote/EncryptDecrypt.class
index 73e4cf555753915b87f069370969029081c95c1d..77d6974c942c0ec4fa2556b56ae4d156e50175d2 100644
GIT binary patch
delta 296
zcmZ1^+#+0m>ff$?3=9k=3=v!mQViA{3^p7Lwp<LX40h}c_8{7Ui$R>hk)6Sboxz!l
zfs?_7oxzohfg41-aWU|MXm>6Keh}@!#UKcxJ-HZ!L9`bagD8mh1{vYQ&fv?=;K#_o
zW|NthSz^b?z^tJewy{2%iP3-ZPo`<g0StkR48mE7Wr-E~$wid~CHeZ!nFSfCMLY~a
z48c4MAq=6DH!<5WhE4v+{E;zy^J5kPW<7Cs22*wh4t54s21a%UPEU3QZclawUQc!g
zeouA=K~HuDVNZ4jQ8orn1~Ufp&59hVjEokO-8l`lIKVo^(R6}zfOPV*F)%V%GB7YO
HF<1cr_n$3e

delta 335
zcmZn>UL;(9>ff$?3=9k=3`txJQVgyf3~n3@?pzG43?A$Zo*>$bi$R>ho1MXjoxzuj
zfs?_Hoxz`rfg3~za53<L=s+$8eh?kR#UKcxgSi-lL39WggD8j&1sM^>&JfPd5W&d6
zW|NthSz^b?z^tJewy{2%Nj{XFArfqXCp&{LJA*$vLjXHNAUi`4J3}x#L&)UYOw*L3
z7@`>&gtHRM5-aqRiz*9B^7WlF3o=rRco<?BVtE+i7~&^SVYXvSV31*CP@Wvks66>M
z^GU|U%|}@TnDtEA8O+!j%-I<%7#P_ZEIrv7tUTEntUcKoY&_W+Y(3c->^#{S?AaJN
r85|fKH#2jnGBP?%*5owQG6(B4Mbin=0n%yB#=ywn%)r3F#NYw|E7&$i

diff --git a/out/production/infinitymonkeys/server/ChatController.class b/out/production/infinitymonkeys/server/ChatController.class
index e19d9b5594db9e967727e2bac0ed0c6270892bc0..f3a806546dbe309c9520d93fb12a7d959cf87fed 100644
GIT binary patch
delta 291
zcmZ1~y-1qt)W2Q(7#J8#80JjmviG%Oh~{RnVu;~lh+v52V&Gzk<7S9wNZ?>d1kp+C
z49Q#!q6{7&B87t?6-1|TG59j1gQPP!7&6%zve+52*%@-!8FD91o6eXwS&#7@OFlb8
z!Da;}XGXq49tK4QC3c1)9)@CulF5b48ug_-3}p=E><kq=43!L3><raB3^fe3JPdUV
z_3R7{JPeHtO^giO#i>PQsYUvs#i>O+49yHJ><q0u3~dbUJPaKSojeR(4Bb2oJq*1(
z41Em!JPZ>UCbBb3;$fJ~FoltULr+i7#oy1Bi-%z<gAF5tcvfOrqJB<dUb=p8Nzr6!
g79Qql4AUoTu}E>xV3^6nFpHs_hhg?+f0i&#0FUrLe*gdg

delta 312
zcmZ1^y;Pd()W2Q(7#J8#80JpoviFT<h~Z|4W{Blth+v50V&Gzk=VnM?NaSEh0@2Cr
z3@Ka;q6{7&B9((74MeANG59iMfTS}y7_!(Ive_AO*co!!8S*Aho6eX&S&#7@O94AW
z;bsLUXGXpv9tK4QC3c2l9)=Qz(#eI)8uev74CM?J><pDW3{?!(><l$L47Ch(JPh>=
z4eSh!JPb_?&5R7(#i>PQsYUvs#i>O+3@r?;><n!@4DAdZJPe%-UF-~nJPh3oJv<D(
z41GKd{R|U$7$!1IVrQ7l!!U(mDkB4jo}QkIzn?1?55qJD8%754ti-ZJ{hY+Sbp6Sq
zEc_bN8D=mth$>_x7As`sXXd4*D3oNRDir1C=j!n=%w(9w!!Vnnf`?(wW*?R?P5@{#
BMgaf-

diff --git a/out/production/infinitymonkeys/server/ClientController$1.class b/out/production/infinitymonkeys/server/ClientController$1.class
index 1d2a2d641a54e21f04f273f959e20c26138470ac..4e5dfbe0d9b2c595b99e4ed12e6d010481db13be 100644
GIT binary patch
delta 151
zcmeyt`ju7Z)W2Q(7#J8#7__+<L>a_58Q2-bIT=J5BtTqAb_OXBN1B~MhMhrfqE6$)
z4VDt}><o%L49W~DJPe!+Ts#b_3~D?K>I@o_85!l7H5t?<D>FthYHhA#bZ0bXW$<NZ
zU}a!nW)NgxU|?bpVi0CvU|?YoVPIg8Wnf?sVqjumXJBAp5a3`CWl&&Ha*zZ7lG_mq

delta 154
zcmey$`h!*H)W2Q(7#J8#7<9N8#2Cam8Q2*lI2ptkBtcv$b_Qt>M~0n2mYqR<qD~_-
zJA?GZwU!bJ><mgg3@Qw&JPe!+Ts#bF4C*`#8Vs5f|H(6JF{n>gV2ona-dxS-&S)&i
z;LFY+$iTqNAjH7Hz{DWTAi}`Fz``KPz`!8Kz`!8Hz{J4Lz`(#Dz`-EKpva)?APE2l
CoDx_7

diff --git a/out/production/infinitymonkeys/server/ClientController.class b/out/production/infinitymonkeys/server/ClientController.class
index 1137f97e87947c41a2ef634c061af3ee2d307002..ddb149dbc7c12dfd9d33fd454d74670183962662 100644
GIT binary patch
delta 1597
zcmdmHvBaYO)W2Q(7#J8#7>&6Y+!*F^GPp9#<7Al6uz-tUA;ThehQ%O}C0q=w3`;>G
z%RsE<Tnw%ZE4Uf58CHT=t3bqRkn9?e>{?ESbqwo4vKv4KZRBFu#IPA8y9GpS1#!1=
zGHhqq!NIVTtDa#O!)}oH9&UzWhP@zSA3MW-E(TeKxgf(1fLI4P7!HBx!(0rz7><C1
zk8(0}G8_ZhdmO|%!Ns7-aFU(j6iDPW2g4bV?Poa{&Ve+X=U}+N!Elk2!IR+<7egn*
zWsv)>a4=luV7SKV%dn2&ItRlIkl0O-J8p3>+~#1o1G4Te7sEY<`y31pxESU$JOmMs
z*cl#kF*q_j0TEBx8J@8-JZEQk!OrlKo#7Qb!|Tc3j8_@oY*u6nVdQ?t&hVa*fu*oC
zvt)8DkND&T%$kfJHlJc<W@K!he2&G7@#AJm)-1-!ZETwLg**)23_k1(pLiHPGkjrZ
z_{ziZjo~{Z19x$1QCVt{erR!O5f6hegC7rrKf@0mhMx?-co=>&{NZ6}WGLie_zNOx
z8R~c#S{d4S82&N*=V4@EWMpS#;$dWFWZ_|CWn|-FWM|}HXXNBz<YMIJVdMd+;br9G
zVdQ7z=3r+O;9(SG6q;<wt{^JR!zjX#$HOSfD8|Dm4pJh)C^@;1U8Y`&p^b-8no)+4
zfl+~nQ5M9LV<_Zdlm{tNVCdsv=wRsPVN_)3<6%@{_{GQ|kd;`LsGpOVm#!aNQk0pO
z&cjf^P{_!@uaK0QnU}7RmtT^ZmYJHu!>G)t!pOj`r>E!Q@8`<HD94b;$iTqJpzKtX
zpO})ISX`2smp++?Ly}jOQH_UDo#8tVqaq{AWFrne6$M5XMg|du%wmO-j8uiZ)N+N~
z#Jt4x)FM3|Mh%efH5m#gw{YllOEYS*GiviN>M-g~-p3)vp$GD%K118&I~<a120V<0
zj7FP(bIj+kb!BJJWM{}?XUJw}$YEq>U}a~>W@KRa&%g*`qR28ZFoZEMFt9K%GK4cQ
zGUPJkO};MJtC-Ia%fQ5t$-uzC#=!W8!I%+A6%!~7CbtUpsueLrGcYkQF!(TpFoZHN
zfYoy|F#TZ=W@jk=#bC(5$WX#iI@v;avwRstG6N$6149f$IYTl769XGV7()d^ECVwG
zFM~fr<zy}qIp!*c(#hH)OU<gGDx4TV&H$;fW~gC^WnckYz|O$<m%)t@*+q;DwG4HW
z*+gsP>%m4cFqlJK1Y#wDt!82{WoVeZP*j4sk)d$%9??gBAhk>kQ4IPFAb&73FfjB&
zb@4IOGc++YGcbZJ6lGxf%OJqc(8BnOLH!Q{AJ}g$NCCnKO16{Vh!xwx3^IZm#LS@2
z&<?g96qNi7%zr`JHQ5=8<$f_Rp%~G@(7k!Cco1Vf$P8A75C%Smc!mT9W`-3E;$R1|
zGOS||fr>FOJcZf-V)cM+0I_-*`k>J!$-u7jmw}ssouT+AgQhZ^sjq-yYd=FC0~13a
z0|TQG12Y2$0|Ue4JjvstAUCixcreIA?ek}lVCb3bB_-<wiU%eJ9)?120I`AtNS1-+
zKZ6bfJ39j?X)!V|ursu<GZZs0{9>@;VMnoV0>i|~E2Va;Ok$YKz{sG);KVQm9ND1Y
z;RL0eAa({#eg;N{sSML5cSwguPG^__PGTZ(|B5ioWS9kw8a4*TKz0V?xL{(K&A`CG
l#4v}!i-Cbbih-HIlYxPOL4bpylfj*#%R!Q19YZ#V1^}T_Hc0>g

delta 1561
zcmZ2tvCX3X)W2Q(7#J8#7%jON+!z*eGPp7<;$&FNu!M_YDZ?^$hUFlU6<iFg3@bq*
zt3a&PTnw%ZYq%NKGOPo!)`N%*AlZ!|*-e}bn;Eu%WVeD0+Q!AOonZ$^b|;9~1>)}J
zWZ1*7mxEy+S3Sdih65n+gWL><7!HGoBkT-Exfo;_7J>{r24WrOU^oGyPjWHrXE+5C
zKF!I{!*B*<?^zJ*92bKo!+Caw3m}n;91NF0wqNF8xB}8}m4o3L2g7wv22X|?Tns%7
zH$m>Z#ldi!gW(RRFT-YryBrMnKw|en?s&k#@Q{Py5y-m7TntYbo^mie<6>CM@Ek<E
zU}t#A#o);B3PikSXL!TT@Rpt79XrE&c7_k^3?C<ZGhSu<v{{iUgpv0GJHuyohA-?4
zU)dR!Pp)KkXZ*JLATu)~W837TEMAP?Hw&<4F*36=yqR3ZrdeOY!{E)}!_M%7hv6r~
zFLs9CJPdyr{xULf7pE4Lr55Rj7N-{RF!(a~@i6!^{NrKx&&a^T$jHdV!_dM|!p`u8
zhmo0~gomMlp^=B7gQ1g$k%f_!hmnnuot=?`hmn(!i-(b$k%xzomywU1k)MZAfKiZ#
zQ3#|)m{Ej>kz15ekeyMChf$nSVzL&yf`lXwqZC6S52G}r3_HU&9!6P^Dmg~^$?@zm
z^$H*h6d9Em85k9K7?nXh6^0TXMpcj^HHL{i4BZTUJdElL6L}al7#SED1hNv#67_Qu
z^V0Q$ONuh{(s>w)8A=!#_!W{;GxO3F^72bE(=t<2co;PqwHO)L_4M>y{QX>c7*!Yw
z85tND8I+xh@)J{%6N^hS^U^2(VwdFAX4K(f)Mfa~!>G>4HCcf}k6De8YjPlmB!?cz
zv-%7rlZ!a?Jro%Y*clCZ7>yW>85smi^NLdwb5c_j3KENp%kzs;co<DUzBFa%WMmM6
z2DNWxa7JQLYKnJiB@cr?qZtpQIitnqmmKpsY_r%Ive_AO*co!!8S)s}8S>c~av2#I
z{xdK#u(C6t$TBc6gfTEMurM$(gflQQ6fhJ{J}TI&Si}&^z{HTrz`(%9!1#y3m=Q@8
z6DUw77Yp?=mQH3AmgXw^#bC(5$WYEuF<DJ`vwS5(G6N$6149f$6+<!u69XGV7(+Ef
zECVwGFM~fr&Ey}#a?G_16_X`JmYUT;RX8z#ECi{rW~gU~WnckY&CbC1m%)t@*=|Nq
z(wY24q=vC+a-pa!WAo&GQ3>W2hLXvvL?8Jzfn6QNpwCds5Y52Mz`)SU5W*13z`(%A
zP|wiH(8j<BHdvH_<u8K(J3~9;F9!8L41DYiWxp6)ki5tUN}Q8#i51(y3^IZm#LS@2
z&;|A(C~){0nE!&bXR|Yu$^BwrLNTJ7p>K1yco1Vf$P8A75C%Smc!mT9W`-3E;$R1|
zGOS||fr>FOJcZf-V)cV<0I?=8OoT>+Bm=w7Uj}Xlc80Q_44TStroIA-t&<oE8JHLX
z85kIi7?>G27#J8P$4DL*1-XHp!Gl2_YM(!Y1VjI13n^J`P<S&j@GumD1BewIK(Y)h
z{~2@`*dd99k%57op`D$fY;uE?2=ioyDU+v5?N*t}FpYtcL5abMVLCV#LE*v4!1RY9
zh@ByupMjBK2E)wBWzwOMvlwPGFflMNh`>E4!Z3$nE;KIK7#IWD8RjARfr(*00|NsS
k!vY2`1_lNx24)6N1_lNO0S<;926u*D2T6v_3~NC&084N@od5s;

diff --git a/out/production/infinitymonkeys/server/DrawingController.class b/out/production/infinitymonkeys/server/DrawingController.class
index 8df5097a80f3be35d67428fc08b997c6eb160bc5..0953d6c03b40879c58e5fded363ad3bd05b3076e 100644
GIT binary patch
delta 835
zcmdmOw#=;l)W2Q(7#J8#7}dBKTp8Lp8CV$F*%><689KQbm>If2{B97dhn=Ap#OdQ?
z=x3M!A|`S%a4<{)5tBj06i$Yz4AVfwbP#t2C&NsJSzHXW8Rl>^WHZbK5%bs?=5sNK
zF)ZL>C}LO$VlArYW~gIW4B{{0U|7n*u#AIYIS0cE4u+K+468U8R)dUM!_Kgli$R59
z9f-3YL~H=*+Q`YUiD5H{y9LDE3L>^~GHhqq!OpOgi$RZ}je}tqh~5n%_HZ%mW!MK&
zv!8?E0Ej-w&Txp!fx#T4?l2d_5r(5&4CV~SK*Vv7{0Vl3lUxjT45vUMr`Z|Ka4|SC
zoCPU72eR}$JHrKbhKrl+7-bk4FKv!y(r0A6Jh_{BBIA|GvMk>juTEBEjb^+yxt7(L
z`#KMUAA>&+!wrU;lTWkC*5Be`xXo~%hv5OkLmq}l43Bvjo-jP+VR**yoSoqX55r3a
z4<3eBAmTN{8+L}bJPhv`-m^1&;9>a4@QH`vGs71ihOZ3Y7#X;WQ;W({i}XW_Q;T>Q
zzBBybVfe}Li-+Mi!yg`ozYH-v4F4GZGcvIFhdKH%GH?dDI)^y=x%*5mVAEx0U}T)U
zfKA$niHDJyk%fnmm645yk)0uzosolwk&_{vhmi{;!p)G&!^p!>%Ff8k!^p?T&&VJ?
zIgUqsG7GzcumGbV52Fyn4|Yaj9!3#{avny}$>!|JjAE0c*|ki?c^D-aC3zU77_RX!
zN;AsvFv>DCFfs^dC6*=XXXfjB`ny&nrxuiC=I8M+%7GNgGhCazi(Q#pfrn9%QHh69
znNel)3wB0EM%B%)IDYZlv#>K1u`|@MGi0+fh_N%6Gcd9<*s=X*U}0ck2caScc7|*Q
zhMx>fPV5YJEDVth3=Av`j0{l>j12V*4U?56mn$?fG%+wTWHB%>urn}KV<>Ch{7O=k
nkq2TE#DdA((vspW3=9lR46O|J7#JA17#JDuF!VFrW#I$>A&s@A

delta 860
zcmZ2xw%e@!)W2Q(7#J8#7<IWATp7AJ8CV#)*%^A+8G5-Gm>K#&{C*H?0z1P*5N8r6
z!(@gjAYv*P0|&!25HTG@%;030$uJ8<%m#7ia5Btgn8(F1pJ4$v!$O8dAYw5)!xAnA
zF@~jF49ggngIFu-xfxb6tOD^@b1<yoU|7q+u#SUaJqN=E4u*{!44XhkZDwcK!o{G%
zuocAF1|qhDbnW0|*vYU9#N7?z?g0^dIT`jb>}O{<z{Q})(8a-U5JVpW5r?@LjxZbr
zsX4~Ma2!ORU}reV<-lMLQg@1r;WWb;E(UXkvmoLeNd7!K!v!t|JBEuOkxT3hm$?`m
z8Log7UIkftjh*2-JHw65c8oHNj5jw&GwCxj-kRLaJdyGCWLcK)yuIuUci0)0urr)w
zXSgs~lr@_1?&LyNXYPAE41Ns$JPh|49!%cPDqH`Mhv5;!GaiQL3@>;XUNXGmVR+5(
zhKJ!T!#j3{_dE<A7(93wK7xo(44>H<zVI-7W%$O<@STU@2g6TxhFd%gzZib=F#KWo
z%gDf8oLW?tTBILZoLa=g@Q>j?JHu@rMg~Sk9!4fcW_E@<Jd7+1F+7Z{jBJbyEdF7R
zK8y^LgV@ZN*%>(|ce6?BbMi29F>>=T@-Xu9F!C|vvNQ7YFbXiF^Dqj6M1&Y}c^HKm
zO4%7jco;<)#U@{6vl13(l;B~MWcbg{D8<7l%}~z6C^K1!U71mKvKzaWsT>cZJfi{+
zqawpy9!4cbWgbQqh89K!;jF~6ME%TseNTVaisaOSlFa-(9!6D=A~lA)lb5n9bF1?(
zYA|Z@FlsSsZ@$dV$jGR(`6|aRe)~Fhh9Y)`dUl3vc7_IahDHWPc7`Ul{|qb)EbI&*
zNd|U?YzBs(3`|b!3{5NykqitBEDVecQ4EX>%?vG*`6QPsv@*0YFfwE@Ffgz)FjZqH
zYu|iTQk2mKWEk9nzYN?UgN=SNFd-Sq#L&UOz`(@N$?%kcfq{#Gk>N4JWQHd!oB*C{
By=MRb

diff --git a/out/production/infinitymonkeys/server/MySharedKey.class b/out/production/infinitymonkeys/server/MySharedKey.class
index 956b64e2acf75a75257e07e05c60b164dc4ab935..7d014a97e15422d71f9d58e48a79c9152400514b 100644
GIT binary patch
delta 350
zcmeAZ=oY9y^>5cc1_lNbhAK`5IR;xU26+ZM5X+vO!GVLpk&A(a!HJW>nZbpN!Ii;{
zo57vIgNs3q!4ss$i=Dxni-Cv1j)TDmMEimWKM>&$QXK$N9mv5D#K92E#URcQ!p;y1
zqQgK$I6FfG7lV`lLnJ#x6c>XGLo_=>3_C;Y#(rZ)#<<Cc8JADaWzuAfpFEw(P%?p?
zA(4k6i6NPtA%%w_l_8CtA)SXIgCTSBLngcWEQV|zhAf609)?_oJdkug4?_V%AtM8G
zP_QE-16y!uo|m&L4?__{F(ZR;R$^IVg?@5TWkE^4zH??lMrsicLkUAE4?`J4IaFRh
zCowNw-?bt+wV)(3KaYo@f+3!fK^~+PBITKrlbW8G6I_y5k~(=FGcRN1<~7XWEZkBI
Nj11Nc3=B*RHULM|Mx6iv

delta 354
zcmeAc=o6?v^>5cc1_lNbhH6d*IR-l}26+a15X*s`!I6W(iHm`S!I_i6g~64J!HvP4
zo56#@lZ!!)!3(6uo1MXji-Cv1o`b;`MEijVe-IG>QXL3V9mK&9%)t=C#URcQ%FYl5
zqQgN%1Uo|{7lV`lLliqhG#7&mLkv4ZEIUKo#(rZ)#`wvH8J9D&Gel0#V$x(xm^_8a
zP%@F7A&G|}nIVOpA(e+AjUk<#A%lk@lOb#JJtn*QY=#^jhHQph9)>)Ie2{bj4?`hC
z5hDY0P_QE-16y!uo|m&L4?{6S2_u7WR$^IVg?@5TWkE^4zH??lMrsicLn%WU4?{Ua
z1yo)?CowNw-?bt+wV)(3KaYo@k|BYSK^~+PBITKrlbW8G6I_y5k~(=dGcRM+=9SFh
REZo)%j0`pm3=B*Rwg4XZM_2#=

diff --git a/out/production/infinitymonkeys/server/Server.class b/out/production/infinitymonkeys/server/Server.class
index 8919054db272df40c9bb7402201adce8d90c01fe..f1328e13d815ac64a479b95deb9e1c351e3c0016 100644
GIT binary patch
delta 1192
zcmew>xk|GB)W2Q(7#J8#7*=vI=rAO3G6*mvvNI%cF)%|o$smywc7{|g26l!t5GS3T
zA%ly73&P1{XUO7W;DvCq*%@-U7z7v+KtwJ(Lmn4{Fhf2ELje~<Awv-tLoq`Mh$!V?
zDC1x#=U}MdX7H?JsN!TOWT@s~sNrI$WvBybt><EBU})rGh-GL35zXujEnEyL4EgK~
zty~Oh3<(?zZ6LZGB-sICb+R*bZM;y($k;vEiD~a<CT1;0#-7OrEVA`h4Awjh77Uh*
z48mE7Wr_NwC7C(;jzvX@l|GrpB|Hqe40=2ah75X)4C2M9MP;c)`p!9-sd**N`FSNp
z`8heMMLY~v481%IMhwP`45BbK8Hp$=Oc+cV86=>RE=7sunR)486Y8Nxm@$|$GVnqb
z1cNQ&Ven^gfjKKDF)v-;wIVsSpd>RtkB6a;!J3gl0_0-7qTEb9h(^7P{Nj?l#N1SN
zhJGG~2@Dh287A>COlFwE!!VU$8Y6=My3-jMCVR80+DzwRn87fUhhY}OY(@rti0ulQ
z#R^5Ki7A!r40CuG<}$eOFhnxAurti#VVKXbfQMlr!y+Dr#SBX(uV?k)UCOYGhhaH`
z8xO+@2Di;JY+ISa7!(-<7<3pI7}ywCK!M1>$e_=_z`(>{z`z0uPZYipgE0dG0}F!*
zgDIFcV=xD+wP3IWo509m#bC|A#9%Yolrxmkc5*kTdc7S30|O5OBLf423xhp_0|Ntt
zBUmpZgA)S_gENB*10#bC0|SE{0}}%i$P_K@tqe>X!RFdBFfed|MKu{%8MGKcW{H9M
zY*4d6?grV;$iTwj%HReyOP_%eY$L1I7JUY$4REvAz@mC!b0BVFg_^_3;LhLy(mgqW
z%P<CHuM`6t0|SF80|$dS13!ZegAjuygD`_NgE)gNSib@TGXn<$JA)^K0|O(2FaryN
z7lSw0d<h00244mS20sP{26hIfAa({}76wL8Dgg)0Tdr(I+sTpK&fuVlVc=w7V2FY`
z1H=kouw-Cl5MuCP2xJIiU}6wuaAgQ)uw-CnkYsRV2w|{fU}2DDuw@8kuw-CmP-ZY^
zFk%Q}U}Ml^Fk~=c2xnkt&}YzQFk^^d;6Ms$CQz~fd60pDVIKoC0}CjQttQLzSc-0B
zU<6wu!Jxvx%mDJc8UyF#b{=K_60lFT7+4r2!TyV4U}j)ou!1|*iUHzSCI$<JXoeUD
cCa|CR7+C%=2(UB6vN*9bsDQj42abVw0A}{TivR!s

delta 1169
zcmZ1_`B$?3)W2Q(7#J8#7&dY-=rN>lG6*oFvNNP{F)%|o=^&8|c7{wY26l!l5GR|R
zA%}~B3&P1|XUOAX;DvDV*%=DB7z7wnKtv%sLlGB)Fhem1LkSl{DMJ|-LpehQh^XXX
zsN!I#=3uDdW(cfhsN-ZPWvJ(1Xy9UKWM~3uZRTQVVQA%IXk%yx5gqIdom>nm48`mW
zU0e)m3@IE8-5|OLB-smM^>HxtgE$k|876K#QOL+RX|fg5US@WNqRro#v>1IRvomxu
zGH?awmlh?bx@G31GBR)nrxul^7U^XrmL>8q*f7}gFjz5IGcpK+1oTTwGIR7Di;5B}
zeKLznco_5<40srf84MU1#3ws2igST<OyOZLVKANC%_7BY#$Y~q1&geN1%o9c18*_d
zWPOMQJPbh$Zj<k_NH9-ju$}yaMOJtk55shZ8SD%*c^GCf%;sU3!!UQU2CJ3*JRXMm
z3=4P|7BVbiWZ;MBR>&+?C`wICsbptZ%)_vR!HtI@hQW=UVJQ#8GKS^s43l{nRxqsO
zVOYhmdh$G0AH_8cYk3&fF?jGWtY`3GWZ?10FD_B=OUzBR(pBJL*udbi`8(@Yrg}yO
z?)20WkR(WsL6Jd#L63offsKI$<WmMl215o01||k01{RQ~QTQedrVI=WEDUB0=3v@_
z!4j<2ioqIe0wX9a8JHOC7#JA37+4q>85kH`w6-%aYB6qQVA9&nz#O@KvMi?+qy6Lv
zPW5^R1_lNmh$03@1}6pv24}Fbj0`ReEDWv;ZVZfIqwE-%7??m7XlZX{VA=?_(w>2V
zfeS3E$-v5>#Q-u(49sVPng#L_$YG2OEDY`p9#FIN85qGfvTALa{Ew4E9b^t0SVRwO
z2E;wAP%}6gJQ=(|Iw$LL88X^Wj^~oM0okO$z|6qGz|P>!;KablAk4tR;KSexHbsKL
zkHMdTfgyl_fq|WYDTtjR5EKqU3~r!snY@cDo6&x<8n-jp^DzvZ3=9lWP|HB9U<PXj
zMg}1U4~7tiPzELjQ3h9rFa~P|W(G+HM}}|)YX%kuSq58%2nK5gRt9ATa|RQJNCq|r
zO$I{-GlnPzb_RV0Z3YX5Xa)|Xz+?g?9FR8{7#Qv`Ff*`#A~<aFD{f1}O$@TT8Pp=T
zGpGycY-7;W*~Xx|jX`r8gZ4HC`Hc*WU?)g0s4y@yfI>=(fork_k8*G^LnuQDIJ~qN
zSQsS1{*Pr~W?*0lgL@{70pb}Zh7g80hIj@haG3Bhu>4^VU}s2Rabjmk1O-hJI6jjB
D8+5sV

diff --git a/src/GUI/ApplicationMain.java b/src/GUI/ApplicationMain.java
index 0d13b9b..240f330 100644
--- a/src/GUI/ApplicationMain.java
+++ b/src/GUI/ApplicationMain.java
@@ -98,8 +98,11 @@ public class ApplicationMain extends JPanel {
         try {
             client.getDrawingController().getImage(client.getUserName());
         }
-        catch (RemoteException err) {
-            err.printStackTrace();
+        catch (RemoteException err)
+        {
+            StartScreen.showErrorMessage("Connection with server lost");
+            System.exit(0);
+            //err.printStackTrace();
         }
 
 
@@ -171,8 +174,11 @@ public class ApplicationMain extends JPanel {
                     exitApplication();
                 }
             }
-        } catch (RemoteException e) {
-            e.printStackTrace();
+        } catch (RemoteException e)
+        {
+            StartScreen.showErrorMessage("Connection with server lost");
+            System.exit(0);
+            //e.printStackTrace();
         }
     }
 
diff --git a/src/GUI/ChatScreen.java b/src/GUI/ChatScreen.java
index 4d6aed2..c8a432f 100644
--- a/src/GUI/ChatScreen.java
+++ b/src/GUI/ChatScreen.java
@@ -119,8 +119,11 @@ public class ChatScreen {
                 promoteToManagerButton.setEnabled(false);
                 client.getApplicationMain().getPaintGUI().disableFileControl();
             }
-        } catch (RemoteException e) {
-            e.printStackTrace();
+        } catch (RemoteException e)
+        {
+            StartScreen.showErrorMessage("Connection with server lost");
+            System.exit(0);
+            //e.printStackTrace();
         }
     }
 
@@ -154,7 +157,9 @@ public class ChatScreen {
                 }
                 catch (RemoteException ex)
                 {
-                    ex.printStackTrace();
+                    StartScreen.showErrorMessage("Connection with server lost");
+                    System.exit(0);
+                    //ex.printStackTrace();
                 }
             }
             else if (e.getSource() == exitThisRoomButton)
@@ -172,8 +177,9 @@ public class ChatScreen {
                     clientController.kickUser(client.getUserName(), toUser);
                 }
                 catch (RemoteException ex) {
-
-                    ex.printStackTrace();
+                    StartScreen.showErrorMessage("Connection with server lost");
+                    System.exit(0);
+                    //ex.printStackTrace();
                 }
 
             }
@@ -188,7 +194,9 @@ public class ChatScreen {
                     clientController.assignAdmin(client.getUserName(), toUser);
                 }
                 catch (RemoteException ex) {
-                    ex.printStackTrace();
+                    StartScreen.showErrorMessage("Connection with server lost");
+                    System.exit(0);
+                    //ex.printStackTrace();
                 }
 
             }
diff --git a/src/GUI/DrawingArea.java b/src/GUI/DrawingArea.java
index 94f45f4..cd757c3 100644
--- a/src/GUI/DrawingArea.java
+++ b/src/GUI/DrawingArea.java
@@ -212,8 +212,11 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
                 g2.drawString(textString, startPoint.x, startPoint.y);
                 try {
                     client.getDrawingController().broadcastText(client.getUserName(), textString, g2.getFont(), shapeColor, startPoint);
-                } catch (RemoteException ex) {
-                    ex.printStackTrace();
+                } catch (RemoteException ex)
+                {
+                    StartScreen.showErrorMessage("Connection with server lost");
+                    System.exit(0);
+                    //ex.printStackTrace();
                 }
                 repaint();
                 break;
@@ -305,8 +308,11 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
 //            }
 
 
-        } catch (RemoteException ex) {
-            ex.printStackTrace();
+        } catch (RemoteException ex)
+        {
+            StartScreen.showErrorMessage("Connection with server lost");
+            System.exit(0);
+            //ex.printStackTrace();
         }
 
         drawing = null;
@@ -420,7 +426,9 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
             }
 
         } catch (RemoteException ex) {
-            ex.printStackTrace();
+            StartScreen.showErrorMessage("Connection with server lost");
+            System.exit(0);
+            //ex.printStackTrace();
         }
     }
 
diff --git a/src/GUI/PaintGUI.java b/src/GUI/PaintGUI.java
index a297119..72d632a 100644
--- a/src/GUI/PaintGUI.java
+++ b/src/GUI/PaintGUI.java
@@ -236,7 +236,9 @@ public class PaintGUI extends JPanel {
                     }
                     catch (RemoteException err)
                     {
-                        err.printStackTrace();
+                        StartScreen.showErrorMessage("Connection with server lost");
+                        System.exit(0);
+                        //err.printStackTrace();
                     }
 
                     ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -254,7 +256,9 @@ public class PaintGUI extends JPanel {
                             client.getDrawingController().broadcastUpdateImage(client.getUserName());
                         }
                     } catch (RemoteException ex) {
-                        ex.printStackTrace();
+                        StartScreen.showErrorMessage("Connection with server lost");
+                        System.exit(0);
+                        //ex.printStackTrace();
                     }
                 }
 
diff --git a/src/server/Server.java b/src/server/Server.java
index 517469c..da4be37 100644
--- a/src/server/Server.java
+++ b/src/server/Server.java
@@ -112,6 +112,6 @@ public class Server
         }
 
         System.out.println("IP Address:- " + inetAddress.getHostAddress());
-        System.out.println("Host Name:- " + inetAddress.getHostName());
+        //System.out.println("Host Name:- " + inetAddress.getHostName());
     }
 }
-- 
GitLab