From c4976e7db4b5b790a67c6b86b2f0ce026260dc16 Mon Sep 17 00:00:00 2001
From: mpriymak <mpriymak@gmail.com>
Date: Fri, 25 Oct 2019 19:16:52 +1100
Subject: [PATCH] Implemented isaacs fix to import a current state of the
 whiteboard to any new connected user

---
 .idea/workspace.xml                           | 265 ++++++++++++------
 .../GUI/ApplicationMain$1.class               | Bin 685 -> 685 bytes
 .../infinitymonkeys/GUI/ApplicationMain.class | Bin 5449 -> 5398 bytes
 .../infinitymonkeys/GUI/DrawingArea$1.class   | Bin 889 -> 889 bytes
 .../infinitymonkeys/GUI/DrawingArea.class     | Bin 9555 -> 9607 bytes
 .../infinitymonkeys/GUI/PaintGUI$1.class      | Bin 5903 -> 5899 bytes
 .../infinitymonkeys/GUI/PaintGUI$2.class      | Bin 725 -> 725 bytes
 .../infinitymonkeys/GUI/PaintGUI.class        | Bin 7600 -> 7660 bytes
 .../infinitymonkeys/GUI/StartScreen$2.class   | Bin 2567 -> 2215 bytes
 .../infinitymonkeys/GUI/StartScreen$3.class   | Bin 900 -> 900 bytes
 .../infinitymonkeys/GUI/StartScreen.class     | Bin 7504 -> 7504 bytes
 .../infinitymonkeys/client/Client.class       | Bin 6422 -> 6018 bytes
 .../client/DrawingUpdate.class                | Bin 5508 -> 5561 bytes
 .../client/EncryptionUpdate.class             | Bin 3108 -> 3162 bytes
 .../client/removeClientTimer.class            | Bin 1358 -> 1432 bytes
 src/GUI/ApplicationMain.java                  |   1 -
 src/GUI/StartScreen.java                      |  19 +-
 src/client/Client.java                        |  74 ++---
 18 files changed, 210 insertions(+), 149 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 22226ca..60d39b2 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,36 +2,24 @@
 <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/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/GUI/StartScreen$3.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$3.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/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" />
+      <change beforePath="$PROJECT_DIR$/src/GUI/StartScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/StartScreen.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/client/Client.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/client/Client.java" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -40,16 +28,15 @@
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="DefaultGradleProjectSettings">
-    <option name="testRunner" value="GRADLE" />
-    <option name="delegatedBuild" value="true" />
+    <option name="isMigrated" value="true" />
   </component>
   <component name="FileEditorManager">
     <leaf>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/GUI/DrawingArea.java">
+        <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.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" />
+              <caret line="217" column="25" selection-start-line="217" selection-start-column="20" selection-end-line="217" selection-end-column="25" />
             </state>
           </provider>
         </entry>
@@ -64,73 +51,69 @@
         </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://$PROJECT_DIR$/src/GUI/ChatScreen.form">
+          <provider selected="true" editor-type-id="ui-designer" />
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+      <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="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 relative-caret-position="459">
+              <caret line="91" column="21" lean-forward="true" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
+        <entry file="file://$PROJECT_DIR$/src/client/Client.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 relative-caret-position="493">
+              <caret line="185" lean-forward="true" selection-start-line="185" selection-end-line="185" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/Client.java">
+        <entry file="file://$PROJECT_DIR$/src/server/ClientController.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 relative-caret-position="-544">
+              <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java">
+        <entry file="file://$PROJECT_DIR$/src/server/ChatController.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 relative-caret-position="-1156">
+              <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/DrawingUpdate.java">
+        <entry file="file://$PROJECT_DIR$/src/server/Server.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 relative-caret-position="1292">
+              <caret line="110" column="32" lean-forward="true" selection-start-line="110" selection-start-column="32" selection-end-line="110" selection-end-column="32" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/EncryptionUpdate.java">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.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 relative-caret-position="220">
+              <caret line="67" lean-forward="true" selection-start-line="67" selection-end-line="67" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
+        <entry file="file://$PROJECT_DIR$/src/GUI/DrawingArea.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" />
+              <caret line="429" column="15" selection-start-line="429" selection-start-column="10" selection-end-line="429" selection-end-column="15" />
             </state>
           </provider>
         </entry>
@@ -147,6 +130,8 @@
   <component name="FindInProjectRecents">
     <findStrings>
       <find>RemoteException</find>
+      <find>StartScreen.showErrorMessage(&quot;Error in receiving image&quot;);</find>
+      <find>excep</find>
       <find>catch</find>
     </findStrings>
   </component>
@@ -161,11 +146,15 @@
   <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" />
+        <option value="$PROJECT_DIR$/src/client/DrawingUpdate.java" />
+        <option value="$PROJECT_DIR$/src/client/EncryptionUpdate.java" />
+        <option value="$PROJECT_DIR$/src/GUI/DrawingArea.java" />
+        <option value="$PROJECT_DIR$/src/GUI/PaintGUI.java" />
+        <option value="$PROJECT_DIR$/src/GUI/StartScreen.java" />
+        <option value="$PROJECT_DIR$/src/client/Client.java" />
+        <option value="$PROJECT_DIR$/src/GUI/ApplicationMain.java" />
       </list>
     </option>
   </component>
@@ -192,6 +181,45 @@
               <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="client" 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="client" type="462c0819:PsiDirectoryNode" />
+              <item name="DrawingUpdate.java" type="529ef68f:ClassesTreeStructureProvider$PsiClassOwnerTreeNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="GUI" 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="GUI" type="462c0819:PsiDirectoryNode" />
+              <item name="ChatScreen" type="e9f4de52:FormNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="GUI" type="462c0819:PsiDirectoryNode" />
+              <item name="StartScreen" type="e9f4de52:FormNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="remote" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
               <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
@@ -283,7 +311,7 @@
       <workItem from="1571786278739" duration="3319000" />
       <workItem from="1571915914956" duration="3985000" />
       <workItem from="1571955297053" duration="15040000" />
-      <workItem from="1571987111635" duration="1790000" />
+      <workItem from="1571987111635" duration="4196000" />
     </task>
     <task id="LOCAL-00001" summary="Changed the join method to send over a reference of the ClientUpdate Interface">
       <created>1571646862883</created>
@@ -299,11 +327,25 @@
       <option name="project" value="LOCAL" />
       <updated>1571974791259</updated>
     </task>
-    <option name="localTasksCounter" value="3" />
+    <task id="LOCAL-00003" summary="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.">
+      <created>1571988995687</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1571988995687</updated>
+    </task>
+    <task id="LOCAL-00004" summary="Cleaned out the printstacktraces from the client and GUI classes.">
+      <created>1571990458473</created>
+      <option name="number" value="00004" />
+      <option name="presentableId" value="LOCAL-00004" />
+      <option name="project" value="LOCAL" />
+      <updated>1571990458473</updated>
+    </task>
+    <option name="localTasksCounter" value="5" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="1790000" />
+    <option name="totallyTimeSpent" value="4196000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="-7" y="-7" width="1295" height="704" extended-state="6" />
@@ -341,6 +383,39 @@
       <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>
+    <layout-to-restore>
+      <window_info id="Designer" order="0" />
+      <window_info id="Image Layers" order="1" />
+      <window_info id="Capture Tool" order="2" />
+      <window_info id="UI Designer" order="3" />
+      <window_info id="Favorites" order="4" side_tool="true" />
+      <window_info id="JavaEE:App" order="5" side_tool="true" />
+      <window_info active="true" content_ui="combo" id="Project" order="6" visible="true" weight="0.24939272" />
+      <window_info id="Structure" order="7" side_tool="true" weight="0.25" />
+      <window_info anchor="bottom" id="Terminal" order="0" />
+      <window_info anchor="bottom" id="Docker" order="1" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Sequence" order="2" />
+      <window_info anchor="bottom" id="Event Log" order="3" side_tool="true" />
+      <window_info anchor="bottom" id="Messages" order="4" />
+      <window_info anchor="bottom" id="Database Changes" order="5" />
+      <window_info anchor="bottom" id="Version Control" order="6" />
+      <window_info anchor="bottom" id="Message" order="7" />
+      <window_info anchor="bottom" id="Find" order="8" />
+      <window_info anchor="bottom" id="Run" order="9" visible="true" weight="0.32867134" />
+      <window_info anchor="bottom" id="Debug" order="10" weight="0.4" />
+      <window_info anchor="bottom" id="Cvs" order="11" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="12" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="13" />
+      <window_info anchor="right" id="Maven" order="0" />
+      <window_info anchor="right" id="Palette" order="1" />
+      <window_info anchor="right" id="Capture Analysis" order="2" />
+      <window_info anchor="right" id="Database" order="3" />
+      <window_info anchor="right" id="Palette&#9;" order="4" />
+      <window_info anchor="right" id="Theme Preview" order="5" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="6" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Ant Build" order="7" weight="0.25" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="8" weight="0.25" />
+    </layout-to-restore>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
@@ -390,83 +465,111 @@
   </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" />
+    <MESSAGE value="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." />
+    <MESSAGE value="Cleaned out the printstacktraces from the client and GUI classes." />
+    <option name="LAST_COMMIT_MESSAGE" value="Cleaned out the printstacktraces from the client and GUI classes." />
   </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" />
+          <caret line="35" column="26" selection-start-line="35" selection-start-column="26" selection-end-line="35" selection-end-column="26" />
         </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 relative-caret-position="-851">
+          <caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </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" />
+          <caret line="190" column="15" selection-start-line="190" selection-start-column="10" selection-end-line="190" selection-end-column="15" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </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 relative-caret-position="169">
+          <caret line="70" column="5" selection-start-line="70" selection-start-column="5" selection-end-line="70" selection-end-column="5" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </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" />
+          <caret line="429" column="15" selection-start-line="429" selection-start-column="10" selection-end-line="429" selection-end-column="15" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
+    <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.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" />
+          <caret line="217" column="25" selection-start-line="217" selection-start-column="20" selection-end-line="217" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
+    <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.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" />
+          <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/ChatScreen.java">
+    <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.form">
+      <provider selected="true" editor-type-id="ui-designer" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/server/ChatController.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 relative-caret-position="-1156">
+          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1292">
+          <caret line="110" column="32" lean-forward="true" selection-start-line="110" selection-start-column="32" selection-end-line="110" selection-end-column="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/server/ClientController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-544">
+          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
         </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 relative-caret-position="459">
+          <caret line="91" column="21" lean-forward="true" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+    <entry file="file://$PROJECT_DIR$/src/client/Client.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="493">
+          <caret line="185" lean-forward="true" selection-start-line="185" selection-end-line="185" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.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 relative-caret-position="220">
+          <caret line="67" lean-forward="true" selection-start-line="67" selection-end-line="67" />
         </state>
       </provider>
     </entry>
diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain$1.class b/out/production/infinitymonkeys/GUI/ApplicationMain$1.class
index de13bd8e2a857c838d2680ee7577252337b9ee96..96c5b7e3923e47834a04e568070b62bc2d4b74d4 100644
GIT binary patch
delta 23
ecmZ3>x|Vf=91~;SWO*h})*=RWhT_S&Ob!4`$OY5@

delta 23
ecmZ3>x|Vf=91~;yWO*h})?x;BhLXv-Ob!4`<ptLO

diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain.class b/out/production/infinitymonkeys/GUI/ApplicationMain.class
index 3c98d749bbac24b3af1fc1b9dc36ba3ab4d53333..be01b80c58d15ad713cc3a973966cfa7e9089e8a 100644
GIT binary patch
delta 2392
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

delta 2360
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
Y&<IYLO$^=)3=CWhj12mqii3dx0KJUE4*&oF

diff --git a/out/production/infinitymonkeys/GUI/DrawingArea$1.class b/out/production/infinitymonkeys/GUI/DrawingArea$1.class
index 020f7f7b7205da256ae0fe46f5fc81c752fdde41..e3674745d41bee0f87f0e21d742a75df896333b4 100644
GIT binary patch
delta 13
Ucmey#_LFUcBs1fs$x_Vm045a#tpET3

delta 13
Ucmey#_LFUcBs1gr$x_Vm044?mssI20

diff --git a/out/production/infinitymonkeys/GUI/DrawingArea.class b/out/production/infinitymonkeys/GUI/DrawingArea.class
index 37586ef27dda89404ffd782e350363fa3afe4125..0afda5eee40fd40d832158fac5cccf3fad854c34 100644
GIT binary patch
delta 4941
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
X$q>Yl0H#A2GC(wA3d0}9R2EJEkshJ9

delta 4847
zcmZqozU)<h>ff$?3=9k=jBB_UG8t}jGO#n;;bh=qxXZ=B&TtPz+-GNaz|QcHi-C>d
z5lH$mJHrz$1}+HaDJMfd!!wZZa}e=@o#7=Hg8;)T5a%_BcmpEdaxlCD(eFXT2aus3
zLBuCchI)2}&miU(knLaD8NP8b$TEBf+4X~+;U_1<FNWVB;tv;t0>fXB!haxz|G5|$
z7#TSk@)?=97!(+pK?DnkVC7(B<6>lI<X~sy<YLfe<l<srW8?-AJRpJ>q=t`!ksqW+
z0HnWO5JU=r2w@N*0wP4Y7_KvlaWb$oigPmLGD>hU<TFaLGfHtVN^>#TG0K2Uk>zBR
zW0VIG3Lvf`7o!rRGKf$CaaFk)&N8a8GpchiYH%@XGHP)#YBTD9Ow?s()Z=3CW4O)E
zXu!n~P!D1laxnxk+~#7GV>DuCH0ELmWi$a<X$msL45Y~%<RA+!MoUI35X&0GvSDYm
z1!=JZ5%ydRaf}Win;k)NPHYYg5Wvpp%*Bw#=m0Xxg`Lrrozab*(Vd;qgPqZnk%7mP
zFE1~($T=smxHz?#ozZJE9}^o3qxWV}wvCL8K9i5LhcNn1mf_Hs>Sb8M!%)Uh&co=(
zP|w5Y&#<3|F@Q0UkwIp19J9>iMh=nsUdA9EhIWPyMh3pD#Ii*F#PSk-=lq=fA|8f1
zke*<MS{{ZP5Yfa?#K<55SLBpfoS7V4Qk0*a%EQph7{bHQz|hFU(9BT8!_Wd!$`z7Y
zQKFEMT9m5C!_dmm#>3Ff(8I$R${5DO7|s~M!_djl#ly)M$r#1Muz+FVWLZvej$X!S
z9>y5P*vU4W67_LBjPZ;~JdDYVDLjm+jA=ZK=^+0sWmv|}n8CxC$(Y5%m<@8-K8F1~
z3<nu=co=gTrZX}y2l%<OGv@Iy<}(&BG6;iRoSCoh>F-*RoLW$lnV-kQSje!1hp~vU
zn1`_hM3gej1Q}Sy$iVCs;LgKX&RD^t!&u2s%fna&BC0_IC=?iLL99B)dLD)fhDsjB
z2F6An#wNz%$!=WoCcTW!Jd7=jt?Z0#JPemX0da+)h=;MAv6-E*gNLz`v5SYXo3V$7
zv6r!rhq0e=0waUOWE*yg$s4&8geUSaPGX$Q&NzjKaVo<h9)>E0%E@=Qa+#+wPM_?<
zEvY$!aV8JrERgQmjB|JxszJ8TWh`cAoX5jBpK$>X<3f-}7BMcK+{Y~=K9_L`NMs2Q
z<5I?DJdDd3rt>haU|c!*Ah#UzD#kgRA8{)&F|OXs%Gb)sUr>~pR}x&3n4BF_l$e~l
z`3Qe8)8tNm+s)=e9gOvv49pB!4A~4h3<3;N4229u42%rL3=9lR3?&Rw45cW1CQxDn
z%T+K`g6S$KT@9sc7;3@dbqw`jx`Ck)OgAwUf$3%_-2$asH5l5!6738fV7il`3ru%2
z^e`|m$T2W7^fL4@Ff#N{P7`TioG|&dh<p7+1_lN(1||juhGK?E43oimsu=7vMg~TP
zDGXCV>KPaq^cg^W1_oBGEezrtz{XBsU|?WlU}RumaAp7*!vkisLXBZ$n8q+2s@aZ#
z32X(MmiAT#@r`iZTnzdko81{$89cy7KwQEGH3DQj$n7ATXE4kJ88-QWsF*s!VlS{R
zbc<&(%m%BK6%(&VsPzS_#k2twN+28NFw6z%Lh~ypx?cmp#-Lj{k6}JkvlX&mIn5EC
zg#=X)SUaXGKye0g#R7(fAcH2q64SK-xt))JnSp^Jf`OeOl0ljw0<0TixePRv7BMg|
zuro06`LHv{GB7eMW>^9?AXwbl9AtnP11kdqLp*~JLjr>WLn4DNLlT1_Lkf~XMo@!T
z7?v_D1M592p1?R^vYv##At+w87+4ro7_>lT5Cao~C4(r#a)x@av;3ht85sN-Rxqq&
zU}RV{xlcm8eig%NkU0zt4CM^WV3i_TTNpTnw6%9I=!7q4;PBPi#-O(moL;yY_!x8<
zm>Cdmt!Ln7Xky@FXkg%HXk-v(Xa>7gfq|KUpMiy84Z~V+S`vZVEyA#lVLixhNI>|p
z*E8s{FfcM~fV*NJ0~-Si0|SHAZU(kUkW02P=tC$2mhBMN7=rlB%$pdP8MiSQh3g0z
z!`$kp3w5g|gCT<n+^up9><kPH?F`}!9SoWbT?~c{y$mJ{-3+D-J@pKh41HingM!W!
z>S$0rTEQJ{1$DGIgEGTLh7JZM22ebTF);mSFkxV3XJBV%*u)OXUhELhY=(QLhJgtj
zq@r5dI~Yv1GH}AeQ)?T83OG#b88{fY;SQBzU}Ioln8d)rFqMIuVKM^`!xRPqhG`5U
z4Aa4G1O+S))QzCrC<=F@DAbK0m$5T2c|)DD1(L!T7#PeLn80z!p|y#DcPj%QG_iw<
zD=u&(&0%0?m<zTAl4d!eW-~Hu#cGHt!Vm@q28bC87}yyWVl`tMRx`}D*27%_H)II|
zJHt|}hHS@bh&dLAtYBbgSc%n)9jInZz9uE84NA`t53FHeXIP6>-%g0W$@ios!37mW
z{RRehhK*R&?_$^u%~vtdL?EQKiNSI!10Seh71NU0${+%b0|o{LA#j@C!obe3m4Sz0
z8-pOjcCe|S2nWf+ihCi3Jq&G0;D{7r*vn7^j?{e&`=M5$6y7`t;~|dS!@$b07i=tM
znRbAo9$af2WH<yeYw`^lb+9)fW!fPIR))h2q6|lnbc;dL2dGX0xdc=q9){><U|>MF
zM0zWOFuF^QGq5t8Kr#!t7J->{M1|of$SDjAj0y~F;A}KgOM4rG)m8@UO$;_#TNwDZ
zG1yLCB&%F+7b#@VthI$fWIKbyHU>wnEeujxTNuQ&wlG+4VQ_*_&f6GVw6-uXZDVkS
zP;O8qQrj5ZwYD(ufRycI@L*#IU(UemE9A9<!JBypgAXXDE@xl{W!6}R7KU~PPiO&X
z#=y(Kz;K3vgQ5OBg9^hX27QLh3@!{;7-AW&F|;t;VQ6Q#&d|YdlcAU47Q;k_y9`qq
z?lH_@cm(z~C|)}lI2n#H90zB<nef1z$*_ju1hj<YW?)hI&XB~;;K>Q9kxs$_gyACt
z3s_sb7N{tkTqZ6q1`e92tqi`X!Sg{*x85&uJA?mL2Jz(#@>;tY0wT9F1cG^jTDuv7
zBDXUHgL%xLNP?8@dJNnQ3=Gd0_!youNHe@(&|rAY5X10+A)VnPLl(n#hEj$f3>6H2
z7@8UWGPE&rgM9=^Qtfbmw8Q;j%)r3G!19|RhL@L@fsx@9%omKaphf+2NQAihB1P+Y
zd0km+tt||`+ZaM-GQ@&fG6xt!L2(4a+Ze(o+bSqewo$OI2gRc}BsGLX<B@+SLj)uq
z{SfiU2yV_WGHhnJ!f+iPi$M$`3=E9?3>=IC3^t5H3|@@F3^9x%4C#!b3`LA$3=NF3
z4Bd?K4AU4D7#1=rGAv<KXIRgu#ju%Cm*EPd4a4<%MstQ6jFt>{8Lb!|GTJdbW3&f{
z2dFx^0gYj11_p-b@Q`^94H*uG`wXWU&OoaZK?c@83^wcxXMZy|D;I&HoPm+y94xFD
zOu-E?1_nk@EHQy=U{I1^V62Y^TL%e#Mz|%6P)isY&J#8R(!#)P#08iU%<>G}44e!M
zjPNMa3W8)wP*n}eY}(rxqINJu+ks+f3xl)vHinoT4AEvR5WW*gI%Nk#tQn|nY7JEY
z7GOh)d^aUy9#C9^4E2S?wPHFbsYh;Q@LkSu8#OgVZes{r&TtGO7^k&`A#xi-yw(;5
zVb+}XbO<*Ai7VU=;<RsLNCcG=n;4k4F=&8TApP4Ik|y&i%hV@ZvV*t>7(m8ZZ)1p;
zU<a9Gy^SG3f<0Y?Aw_~c8$xblNL<cf3{@=KF3Qp_%Gxf<1~Ps*gET}u4MjYCIRmJy
z0+mog+ZZ%K<qIhFZep-p%AleH&I<Jm*b{XII8pOivBOjKMg~U4wTw3yZ^IMxBnA}*
z2F45q4#q470mf_wdBz+Dea2h{2gW>xK*j=w4#rZ3S&U^2OBu@<HZWE&>}ITFILuhZ
zaE!5@;Ra&^!)?Y^#(G}HHb!yAc19(}4n|$ZPDTU9K1N5z35?l{6B+Xur!h7&PG@Xm
zoWnSqaW3OL#zl-P85c9IWn9X*opBlC4aN<Ow;9(k-ep|N_=s^G<1<D`1sTJ@$>_+S
z%W#q55(7KqU1-)|2PGz0s%3;`jd}(SMp)jEXFLJwb22b9=ritMxWZ7xz{23bxSZiC
zLlFZjLm=ZchHDH(3~b;gnF<5fe})cFdyJi(;W|6RSw==iMg|63k>3m<w&LQJPV5Yx
zTnvm1H(==*N4830U|`&aH(N0=+yrOHTMT&&3=BpLYz(=e?w9}vLp}pLLxF<?gC9dE
aqdo&CLjXe@m=0n{1JR5L48Ir?SvUcl$A4@9

diff --git a/out/production/infinitymonkeys/GUI/PaintGUI$1.class b/out/production/infinitymonkeys/GUI/PaintGUI$1.class
index b00acbc0bf6a60c3ce7a3c32af05f1a7490ab9ce..c623b26d8cb304894080d316bc92a77fb435a5a4 100644
GIT binary patch
delta 709
zcmeCz>(=8s^>5cc1_lNbM(2rKrx-alUf<4A&&VL;T2z!@q)=XzS(2HTu8@|Qlgh&=
z$tcCcD9tFt!zjz}iHA{+;Ta<Xi(XbiIuD~fNI-#+5hPHMm(Ihe$ncDZQ3<4i&p9JM
zzc^JPQNcMsC%=e?QJGPNol%vCQH@cZhf#x3lZR0Yq*$Bb5f7sdh~=OQV(NjI`XH78
zh-C<38G%^FAeIS;WeQ@Mfmr4Y@jQ$cjF#+-Ry>T>lWp0=ZEYBB85vkYGBWdc80{GC
z85!7oQ&Tcaa~T;}Lozaxvw0XD7zKG49T_bd8CZjJ6LWGH8CZQ1i_%kh7@amxWIM*P
zIg|SX6XU$iQGBNvS%vg>FsN?U5?H`oznFoKVF`l-!wLo&hBXXk44W7%8P+jaF>GLP
zX4t~u%dmqXj$t=L9>X4nB8Gho^$hzNx)=^I%w#ymu!P|h!#;)!3<nv`FdSw$$8d(>
z62nb~D-8D-ZZP~{xX19D;TFSRhC7UG4EGrY7@jaHGCXB8W_ZSE&hVVkiQxsKFT)$g
z^m>NRj9Cot7;_jtFcva=WGrR)%2>znow1AI2V+0OPsS+>{}`t;{AQfV@P~08BO~Kh
zMkdDdj2w)Y7+DyvFtRe<WMpH!%gD$0j!}s5H={5U8>1+bD5C_EB%>sg2BQ>{8KX3l
zE29ik0HY#PBBL@>CZj4-E~6S#4Wl|!7o!GK{Y*wprX`GeOj{ZCna(pBG2LY}W_rbF
z%JhTLjG2|uf?1f+l39V#npuz0hS{3Yj@gsZo;i%skvWCYiMf!`g}I*5ow<|IgLyim
zC-YK9Zx#tgUlwIXKNdB{02U+0Ko(QRU=~NlaF!s(2$lrKD3&XXF)R-lV_6<E#<RR<
UOyFSo#F)hLk1=htzvux*09A3RdH?_b

delta 715
zcmeCy>(}Et^>5cc1_lNbMwf|Pr<l1I^fq4I&Qj0AD9P}Mhf#`Anuk$_QI>~Mj^Psz
zqddbiMg|tWtb%kNMg@?7A|oS6pdc@uhf#^)84sf}NClsBMt**AszRcIbAC>K5f7sZ
zqbfV28V{p7qXrM7CZiS)qc%vf4#)~!5K9ll(g(2&KrF*B5Yq_6GzPIuKrB-b%M8Ra
z2eB*|;&~V?8LikEt$7%27@jaP2xKLeCF<uS=B4WgmlS1!++@pW$H>4El98Fm!)VXw
zFu9OTSlW?MkcZKU(Tb6QH8?jhCx?-N)hDqiJ(Y*idGma>V=Vmq1x1;8CBY?$$=M-A
ziOHLjxIZ&7&fOfwcbbt^l64z{{$@3S1<dt}82A_#Ge|HjXOLl7&0xl`k-?H-ErS)q
zdIo2P%?!Q_+Zo~*b}{5J>}Dup*vnAQu#cgO;UL3IhNBEi7)~<mV>r)nkl{4LVTQ8|
zXBaLr++?`SaF5|S!w-hL48Iv}GW=z@&B(@Zk5Pc(F{2{G6Gmf(r;O$d&lsH;o-_I~
zyk<<VXZXaJ#qgFfhv7YAA;Sm8Qid;#bqwDayBNMR_A~rooWk&jaXP~<#+eMi8Rs$l
zXWYujz<8dKjqwsA6XO*|X2zS0ER1&<c^Ka@3NZd=6l7v!6lM}-6l0QP6lc<4lwdMr
zlw@*clwt~ClxIq0RAkCzRA$O$RAH)NRAuU7RAZ{2$*9h>gi(iSE2A#cc}4@KyNrfR
zuNaM)elVIavoe}73p1KCD==Cz>oHm}TQk})dotQGhcVhSr!YD&7cx3A*E6~@cQU#$
zPiJ&zUdrgnBEjg*qRi;SqQ>aQV#MgrV#*lE;>Z}v62utBlE4_ja)mL9<pE<f%VWk^
XmiLTt94wz06IlK+rfl{WJ-`S6-({@8

diff --git a/out/production/infinitymonkeys/GUI/PaintGUI$2.class b/out/production/infinitymonkeys/GUI/PaintGUI$2.class
index 13359c43ce691b91e08a770194a26357ab4ae9de..985a3219b2e55047b969dd1a8d6a203f99861b36 100644
GIT binary patch
delta 37
tcmcc0dX;s<4@Sn!$v+uAS#ucJ8FMGQGkLNWGO#liO?GFJoxF)j8364#3j6>7

delta 37
tcmcc0dX;s<4@SoH$v+uAS+f|}8M7z5GkLP+Gq5ujOm=6IoxF)j8362l3i1E|

diff --git a/out/production/infinitymonkeys/GUI/PaintGUI.class b/out/production/infinitymonkeys/GUI/PaintGUI.class
index daee65b2e541591bc7d7cc42b71c181213f8f428..ba2a714e57a1ecaf684e05860d93a386d49a47d5 100644
GIT binary patch
delta 3746
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

delta 3715
zcmaE3y}`Qv)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@
z&P*(f8IxVu&N60B7Ggifdz0Z755swe3p@<l8E#E}${x(z!_Yg~nnNnOkD-^5fi*Zc
zF(-$Sfz>CmC_R;jp&um3z{9YdVFf#577t@K!zvzzl?<yG8HBPD%MvT}i_0_f()GOp
z67y1Xco<eQtl?o;3nJEmi1i?11H+oh8#rX^H!^HuWZ-iT_0$hY%*-os5A{?r1i9id
z55s1LE$C84JPcbIw(&4@Fmy69@Pl-@6eWV}ax6+s1ZmsB!_dXh&B!1Ma)*9md5OML
zeo;zlkxyb}erX90V-903J7XRXV?JX6BLk0qfmC8nYDr0|UO`?uJ7XaaV-aI9J7WnC
zV<}_V<TTES0oxhNc^I}cR`4*)XPC^xSjkw$!!UzkG7rN{5HSlx%mxv2K*U@SF^^#~
zBZDy5`kchPbbZ%~<kW(a%=|na#%hLJlXJMFM7J~6@GvZ4Sjxj#%UH+5u#90TBZJuF
zb<AS*j0{{MsTCy(8L367dLWDIc^DQlEaG8oU~J@JY+`I?WMDEh;$c|Ku!xa?)j20M
zv51FZ639koztnObhAAK>i+@3C9uLD*FgrN0ER~008i>sfVk<Zn^Ds;Y`K5)im63tf
zFTbcHgNLz&v5k>|b+Q4sTm5#%c18v+uK;(2wEUvn#1bCH4#rL%#xBNA9)<}F6L}cB
z8GCpbdl@e9F!nL_^Ds_eoXEpC3B;PrIE9CCDq}w*1B+f(K{^lPG{)(S4C08e2reng
z%u9DF&CE$jE#hIE!8ntLaTZ8D4_HlRzP?+gNlq$AW;V!>g1mGd#yKFP=Q7S?XPnQ&
zxPWmXNXsG~#>I^FJd8^im+~+!V_d#jlV=wre?d`ZUP*9CVsds!QDSoHWLZ8}CQ*&a
ziu_`mllXj@>)RM47#J9o7#Kk5hXDk-7`j0eLk~kQnC^qp{ZM)W!$h$7B!<agdJ2@D
z3Z<t(>FH2<29%x&rDs9u*&w=}fq`KTh{3?XFc(VCgVOV%^a3cokYN$n!o^T}3Byt_
ze;Jfs&aeW^U&*ivOs{5G1E$wP>2*+gJ(S+Su!g}9q+%n(CJ+V6Twr=D!!`y622KV>
zhV2YH7#JCLGBB{UF|aXkF)*;?Z@woK$yCqbtFw*4U28XkN2Jyk27&Dio?98bw6-vK
z2?=gv@CGrowlFAfWAK3~5e6&q)!M?~3sVB(K$ZAK3i)qm2-wOHsI`S5P=I$ELlB6e
zwS_@#8$+<xZU(<dp%AcwP^~Qtp{(@~1t1Ps!FC2lt=$ZkkwRhH8N#<RL}+aRW94lO
zb`bGMuy~Z#76uSTh)09PW3;v~fG|Ql7Azj8wS@tM5#sS+@q~J<Eer_|AKGbcVUX6^
z!eG0NAu$}vwnt(+Ah8{h*iJ}nXC$^4lr5vRg~1hx9f-sZtw-XxAhCU+Y*~;;k=QXv
z>^LNL0unm{%9a9oLMUk)L$cNu1`tO^C<Vfi)Y`%z3zpH)+QI<hX+iaX*iv9+8yOfG
zJ~M?gMKQQBFf;6$93yVYI+tM=WBTM-;>Gn5Oi>JBOwkPCOz{j+OnD5^OyvwQOic{2
zOcNR6m}W7=Gc9FEX4=G%!nB(qmFXBmI@4u_45r%*nM}_ZvYB2n<S~6`$Y*9^C}8Gi
zC}fsmC}LJ;C}uWdC}Fl|C}s9yC}R$1C}&P$sAA4zsAjHWs9|nnsAZnSP{%xvp`LkF
zJwpTYHiky#LkvyK=NMX;Z!xqoKVxWP{>0G9{EwlFg^Qt^MU0_`MTw!8MUP<ui#5YU
z77vC=ETIgOSrQqhu;ejJW!TNYz)--z&B(wQ&aj7JF9Q=JFQXU3K8C#v%#6~EHVpe2
z_A;<AYBK6E9AMbXz{+UOsK9WLVJ`z4qbp;*5W^vcy$tM(!Hg^nhZ*)Va4;q^d}BDm
zu$O_8DVl+W;V8o~1}0E0V>r%m0+bh7^1<a2Bg07s1_ogUrvFS)3{30{ZR`xE7#P_Z
z+*lYG8BQ~tfn-t!eFjDbMg|53R#5b8U|?WiV%WvNz`zC;oWZa=oPmLX2h3rGTENI~
zmf;*0-CF3nXM;VCs+kGYJOF8){7_P|J~dJ(jb$$bOC+;Udhm9J44>T$sgXjNP@yc4
z5GcnhXm4Z4*4o0LpaZ3~w=v{^_*z>Sa<?($*~!jg*a_lqW5~B+(UN4@#!#@8K@=iV
zxQ(GmD03S_@k|CEtt||q+ZalOO1CkT&0?^s*V@fc9=V;N0wP`s60h9GP_>mobT>nF
zBvcY)Tn$WWJ43A%izLeih>jAWI*3W=2Gwn2z-16r3S>|{$RtKkurY%JJ%~Ysfq}7<
zft#_6L5{JU!H}_n!IH6(!I80w!IQC?A(XL(A(F9{A&Ie$A)B#*p_Z|cp@*@FVHsmH
z!(ql&hGUHF3|ARD7~V5>GJ@(?e#U-q6qqouG9)pqWw^+2iGhWIfl&||ll5{8pBXMQ
zTw!2jFl2bZaFyW-0~13i!yblf4A&W$!Rbeqf#pBLVFp%k`nkc*aD$PZp_+k#={JMx
zF9s$CCWe~~w?NU!z`(GOfti7sfq}sqR19xpsP_@zu?3a9+ZgJ%F*M9#5QK7eFf`gO
zXW-M?!cZS7vxA{&8$+|!76vVCnQaU$8yOftMF0Z>gB$}p0|Vn!1`ft)4BU*<86+5I
zFsL!kW-w%&$6&=cAM7s$h<#Asa4;A%+-6w8z{tSOV8C#P;W`5o*b7_?On({F*cn(D
zxfmE3?!w)h&QQ+;PS~2Dl8<>CLo29AhthFSIsr;YfM}5GAlXBTfsKKIaS;Ot<6;H@
z#w83Aj7u357?&|<FfIqX43g+Ip)O-&xQApb!qWOE7O1UIIu1%FK<Nk&jc)5I1`fv6
z3<8X67$g|iGAJ;vW6)q+k7=s_2g7}a2hg}d<nrwdOrQh@_C_T%n~NanW@UH?Dn<l2
t7#=Y^#-f`M;T%XAfkiU|6T=g5N%EAToq>Tth=GYg1ynLIFfb@WXaFxbLJ$A|

diff --git a/out/production/infinitymonkeys/GUI/StartScreen$2.class b/out/production/infinitymonkeys/GUI/StartScreen$2.class
index 3c75e4eff4740232a34d340af4bd4e09ff3c502d..c1327f3330e29ad72b9937c6d3d3df039d9009d8 100644
GIT binary patch
delta 724
zcmZn{SuR+A>ff$?3=9k=3{{*AQVix?4AKl1Tnt7GmRt;G3|1h*nv21P!4|}_V`s1j
z(GFY;jtov*3>*y3Ai@PC=E}w3#^BD$V8-CV#o)={1tPpbVm=%Uz90pD91Q*(3;`Sr
zfgB7$91Owi3?b|cq0H<IVH;-$F*1fve#dB1AHl;Q%OJ<YAkPrV!w|&~&BGAG5X-|5
z#}LoXkif%`$dJUtkjxOz$RLoFSeB@tlbDyTA6!zDnU~JPkiwA4&XC5#kj{_+G9Z(O
zA&ViKhara{mz^PxhasP#fQO-wp@^NKn1`W+p_GTA3}i_;LnI@ET1ZB!LT+N-<h@La
z%oPlkn;$YwVP+F3E=epZnJmq2DJ#Vw&A`YY!@wvY0CFG$0|OHS1A{z+0s|w1;^abh
zX>TP41_m|;Mg|53O9o{I1_m*(3N8i}1~mo{-~#JoWME`aXV3uYVqjpL&cMRJ#=yX^
zS9==+v(^>{#vKeS%NRCJzRqqaRt4en>gq_cY-8XvV-;nc#h^M_jzd0lIfH{JE6V}~
zZXw|v3?j=Jj6_*kK|E0~PeqiK4a5@z^Tb41*+D#UFpon>0!mBnU=Z2Jz`(%F0CIQ~
zgV^Ms9Gdmz4Bia2489Dl4E_w=41o-j8G;#RGK4ZLWC&+i&JfA4o*|ZD3qw4^c7{ZT
zJq#&ekJ>S?F$6HAFlaJpF|aa7GAw4$X3$|^Vo+h2!Jx~a!@$g7&d|!B$DqT&0`e+6
zK=v}|GZ-*1G8i&2FsLwa{AVa<aAIR;kYZ;rVrSrhAVvlTUS3|_UkofvKNwgTm>G=0
fA#cK9%D}+D!eGY0z@W;&z`(`8$RGs@WCjKRj}LG|

delta 1025
zcmZ23*e+6k>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}D3qogr~!QxGF#(&Vd*ChEyN3`z{j
zJPaxfDLf3R3~4+J=?ob>44DjB><rmF3^@$BJPdgZS(6QzL__l#3fLJ6c^HZqia{Dm
zco<3<%6J&c87kNrDtQ>H7^-;~Y8YzS8R~c#>KPh%7#cx_HZe4_Gqmt9v@*2uFtme2
zIzU7xi0EQSnOw)D&D_n<vw02E6y|!N^wbi^f`XjP<iwK9{5;>p%sfU0aScr$_fSuL
zGzn`)24O71j0_y<sU>bjiMgqa3}PCZK3R!ni52?A<(YZu`d(mhYeoiv;*!K7WUCk%
zIFobKQxl7vGZIS}83dAZQWJ|@iV{KE9E(yD85u;2Q%k}!i!+mQQYX8yS<1>YC@?TG
zC^9e#2!O(nfq{XEfq_AVL6w1#L2dFJHfe8l1_lN;21W)321^DF1_lN(unH~)O$KcS
z5a0sqV`N}t&|%O8>0)4DQet3XU}IolRMFnXz^t`}fpG@|%Q8lZ$xQ5qVh<sFUR@nY
zmTe4tW~`#DvlzlAd$P;dZ(|TX&L9Al-^L)aoMAegBMN7U!CB(V8OlUiS>`iviLwf?
zEnwgllGwo@xtt+Ul$8}C$PN;e0t@<xvVxUJgL!tMtYA4AFwa1gm16<JWDj<EIq~HT
z973{SQ4S%w9So8i85kIt89<>>#UM9%FS}-a6@wQ;JA*I7L<T>G*$n;+D;R<qwlah=
z>}3dNIK>djaET$B;RZu2!vltRhGz_k4DT3{8NM*2F#KmoW#nW?V-#b^Vw7gcVU%OY
zV^n4+1c#~}0~<pC!)XRR27Lxr21!OP1_K5|1||j-hW`vk42BHM4CV}P7>pSV8CcRl
z0SgO$MimAV22%z`1~Uc*1`P(D{|xO6Z0rp3><s4Y3>*-|$iSe$!_LFb%d7s2fraS@
m0}BH)g9SLMEg7sB7#LU>tQi;>v=|r|xEL52<Uz5@zyJV}S;3J2

diff --git a/out/production/infinitymonkeys/GUI/StartScreen$3.class b/out/production/infinitymonkeys/GUI/StartScreen$3.class
index a5999df56a7d71049d4215205bbd8f6e50786073..1b65befab3757559268c0a2b7fc201b02a1767e3 100644
GIT binary patch
delta 43
ycmZo+Z(-lChKaFm@>-@6$p!{4hDHWKh9(9{h86~8hE@hGhBgKxhK|Wr%w7QaUkWM!

delta 43
zcmZo+Z(-lChKaFz@>-@6$zBF7hCT*ChJFS~hKUTy43ikN7$!3qF-)Co#q0$D06+?o

diff --git a/out/production/infinitymonkeys/GUI/StartScreen.class b/out/production/infinitymonkeys/GUI/StartScreen.class
index 78e1e40a923ee22a4dd65003b8f834aca4d9b26f..3177e1abc339090104d61238fad4af68511fd352 100644
GIT binary patch
delta 138
zcmca$b-`-GYa!Nb1`dYY$sdGP>lQL_GZZmMFcdSWGL$eFFqAS_FqARaGn6y9GgL5y
zGE_3eFw`)lFw`*=GjvTpA?(1~%fP|VH<?$&mUSWnE5oG8{vz(IQyEwprcL%25udzC
tM4xfyWO-51$=^lP8Rt%x7j<M^$iT_4WOAygBkOVoPKH&RSBoxX2LQb0ByIoz

delta 138
zcmca$b-`-GYa!MO1`dX*$sdGP>(()FGt@IkFf=fzGBh$6Ff=h(Ff=pRGqf<cGqf^<
zGPE(oFmy7cFmy8%Gfba+LfC<I76S*v?8&?$wyg6QSQ+L|_7`zyUBtl3uz0e+i1_49
tBKnNWCd-S8PW~>U&bVr_yr?7VItEULjgwPF9a*<9a58M)yjpZAI{+OcCBOgx

diff --git a/out/production/infinitymonkeys/client/Client.class b/out/production/infinitymonkeys/client/Client.class
index c6a8c875f45b154550352c748e2833fea6df2de3..57726fe3110737f9d58bf967b562830ac923d66d 100644
GIT binary patch
delta 2656
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

delta 3084
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
Ks3qX4Xej_DQZbSM

diff --git a/out/production/infinitymonkeys/client/DrawingUpdate.class b/out/production/infinitymonkeys/client/DrawingUpdate.class
index 170458854e5ccc65fa78b796928745b5b9c87396..75f3bc99333d593308c036244ae2c888eeb6e548 100644
GIT binary patch
delta 1885
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

delta 1886
zcmdm~-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%{Yy5$K*wfU5q<7>oPrMWZX4b
znB|m!EyHde25SZzc7{DX40{>&O@7N_TECx%;Q)g_JHtU9hC>X8*%^-TFdSt##?Ek@
zhv5XnNgjq%45t|xgdKB=QWH}u6*BV_N-|Ovax#lcco@zwoaJFS$8es9;R3@&9)?Q{
zm)RMv@Gx9uxW>+KormED!%cRETRaT68Se8iJYaap!|;gVF%QENhNnCX&lsMwGrZto
zcqzgV$iwgoM7(Br!^7~FVK*a##AH8a327b%TZVT$4DUgX{=o2&k%7fO%+ZI3;S<B@
z$uC$Plx-P4^Dum2_{ziZjo~{Z1Dk76VsUB;55o_JpX?03co=>&{F&^{CNIeFmxtjW
zLj(`Qe}?Zoj0_CBCs(s6irO+VvNJOAFfuc;@G!D6vhgsoGjdGc$R@_h!^p|7d-E$c
zQD#Q2O<V%Zd<8|Bc_qOmiOJa^MTyCi4SAL7%^55hm>4V>tQZ&>m_R|wz`(%4z{p_B
zV8_73V9&t7;Ksnjz{J47z@@dFfl*6)D+AL;1_lNu1_uTP20jL61_lOE1{MY}22KWX
z21f=41~G_g1}6q*1`yx^o65-G!oa}5!obMj%D~9r#^4Syeexw<`+AT`QVeVi3=C2X
z91PM7Vhl12atyKznhXjIdJM{7Qx(8A8Nf|7VDMn@WME_vV~}F-V(?~QV(?*LVBln6
z`oo~f&fv>}Vx1p@Kg2qQ2@FgOEDQ_`s#;qZn6@#nZDU~HHhBV{JdzvK8Tc497z7wJ
z86+6A7~~kV8B`ebz;4ijXob5$73u~)263nx1Q<ja0vG}rn4zv={L7%i&ftsc`5=a1
zh-(<x8CV$D85kH^wI=KFcY@uZ#K6J8z+l86$zaT&%V5Ib#9+#hz+lEuz+k~p$6(3O
z%-{!hiw8s_+%2t8w=giYGK4UAg5#i-A(SBu9B!=);S3RA*S9i6GDI=3GSo4!Gek4Q
zFt8y4ii?4fA(kNy<hIQY0`ZJs_qZ_#GB7X%GYBz+FdSfrVmQta&2Wt&hT#rFEW>?<
zc!uW;i46Z4k{G!dk{JaVQWzB((ijaG(ix2zG8k<bG8tVMvKW0Ba=>nmVc=w7VDy8z
znb8mCW=21Tc!mU!n;HEW5*a)}Zf5kWhdG+jk0FU6kb#v!h|z{2nIVONjnRNX4jkm{
zjK&Po;2`G!2e~W**FS~;b_Q*BhEzs=etv!)CApsr?0*?jFrpz1;#CF)#<dJAAeS*b
zgeMBVZ4CU|CeIbR0S*Hv1_1^Jh5`m5hC+q{hGK?th7yK0hEj$ehBAhJhDwI%3{?zs
z8LAl;Gt@9FV`ya9#?Z`gl%a*;978L^O@<DJ`wZP+{|ABN_94vw3=d)cXLtznKf^<q
z{}~>FydMINw1+VNGn|L`pW!Hj48;FnUrRA?{9~|y`I<*c?k9uT9|j|K247Z0^fE9q
zq(idZWDgN#Z&0S=0tGokKZ5|n1h4}kSyu?|Kq06Dk+W_FLnbJNFfcGYV_*hF6hr#t
zZ6fjY9KJf+7|dAKFfcMOFvKz>FqkqhgUbjtaM(^`;9;1~Aj>d=!GvKZgD=A@hFFFL
z3<(VL7!n!gGo&&s1Umqf!+0118L}9%8JHLn8CV!{7;?dmOouxvogt4QpMeqVaZU!N
k?+gj-45ln9NFHTkC;*pGg$(yV<rV`Y!ySfBhPy1B0A&J0BLDyZ

diff --git a/out/production/infinitymonkeys/client/EncryptionUpdate.class b/out/production/infinitymonkeys/client/EncryptionUpdate.class
index 5a19936163cb4a6039971f14fe91ce5c8f54707c..58a59589e01d0ae92b379c0d5304846489a3fec0 100644
GIT binary patch
delta 1091
zcmZ1?aZ959)W2Q(7#J8#7#46cs4)bCh!75jP!5JLE(SJ+aCU|WkWeIu6UELD4WeT>
z7-G2?I2qzN8R8id*clSJ82A{HI2e*abP9+_1rcdn4CxFR><pP43|U+Z*$g@C47uzK
zdF%}N><k6$424__>I_Lr91KNV48;s3AfgmRlyNbXGgN?xN_K`S4u<NDTjZEI^ceJc
z7<3qPC*NY$Vb)^Mp3KQ&!ss#Cjzx{xgTZrhI!mH7BZEM2Mq*KFib8g3r9x^^QGO9S
z!xSEdsSJ}RpJh1}FpY<yiD5bq!wiO*JPflKX0tQQ;bEA|Fpq~}K7$n_gK$=2S)zVU
zVqUtwYejNuK}lwQ9wUReYhH3uC77cST9A@hk_s`IkwJX&K}PY-Pgr%C6x~BT^@B?i
zi%No%i&9hb7#ReLGxEz_K`!u3EiO(>Uo6kTSg*#Q&cMW=!Jx^&!ob9!#h}f=z`z9Z
z6PVUx&<E2742BF03@i+c3`Pvb42%pW3=9nV42%qn3=9mcT3Z+xH-MFyGB7Z(fdxev
z%orFLc))B{26F}r1_lO321^DjG|hG(-Aw4ZrLpR^X0U<iW~^XfWngAtV91?(htsiM
z*H=hv2ZQ)>1{D}X8paTUF*qTNjSOrI3=H-RP7I=8+M7WFOouQ?LTM>59m^mMrqdW?
z7?>GA-U?z6VPIfTVBla-WDsOfVo+vKX0T^4WpHAsS7UHyP-pO9FlF#&&}8so&|(N=
zFl7i~&|wH=&}E2XFlC5k&}WEaFknb#Fl9(%Fk(n&FlNYMumJlqh=GHFgTb7^mcfvL
ziNTqHmBEg|o`H$M2h4I{U}6Xbvm6<i7~;SzCk7^lbTG@Afr){ko*@?+zzhtz3@!|=
z42%qJ3=9mC3~b*SoY)yeJ=hr}JlGlBJ=htfJ=hs!SQ!`?JQzF~n84Avhk*$kmPT6J
z8Dxc+h2(ZH$opsuaxiRTP|)7Spy;cmvyDM%D+4=-R^H0Mw48y{M@V%CgZM@UMg|rJ
zjd})c1{G*1X)$myFfdp#urSy#@G#gi2s79*NHEwlC@?rMXfU`jXfrr7=rFi27&5qn
zJ+H;U!ob5I!{Ei>&A`YY!63lk!{7@}f1qIS11BFNsP9025@2BZ&!Ek~$j+b!B2-uz
S{22rx2{V9!ks%PA3WESpHJ<qZ

delta 1037
zcmca5u|%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@^)TEaWm}kO47@xESOZa=93^K;{&4F_bWrf`~E@QO?Cs!B7bzs@NH-xfs+L
zayKrNW9BeqFydj*XE2z2oLPrimqBmxH)az?@5$OMYRujYK9fUO5?Of|rZD(SzQA(I
zY$^{!6T>tfhUpA5co=3f%wlJl&BHK<VJ;8DJO*1v2H~v4vPAuy#JqHU*NWuSf|AVq
zJVplb$?F)!H#4&7GVv7@W#*Lxmn0@<hZH3yFZSnPtk-1FVqjv>X3$|^VPIm=Wzb__
zU|<3{2uvF?7=dYH1``Gb1{MZJ22%zz21W*R1_lOw21W)(1_lOJtt||U8^Fpe7#JAX
zz=FaImJAFGJYY5}gB61{0|NsigAIc%nr1tYZYFfyQdo7{G1x<NGZr(jGB7hRFl0>T
z;c~3k@YUJIAhw)A0YpnIXOIBV(#shHK(y>~1`ZG{zmb8Bfq}uE!HGc>OnWhigXtg!
zNhmD^rlS~Sz;qIW90M~0$VWj8A`A=+@(dgd3Jih_iVVsON(}Z4`V3ACstnEyYV{26
z4EhXS4C)Nt3>pmn4EhW~44MqV3|b7~4EhXF4B8CQ3_1+)4EhX747v=-40;Ud3`SrN
z1~G6ja4?uNI53znFflkYurN3>I599Wc!OEa3``8cV3rF56GJqZ<;uXskPK$IF))Dw
zfWeBP9u&3=3>ggW3?2-O44w=O43Z3N-x-|P8ARRL8N}V$8NA%t8D!kq8RS?P7#O@6
zd>EL(F}Rz72^@@uTH6^EgqVdCcQ7dVXbW;MY-3Q?-o~KftEIDzL3JwwJBU`>%D}Xo
zfx}088-vD121W)J1`P&n26YDJdT=0VF>rx1APa*T0}q2agD`^yg9L*mg93vUg9d{=
zgEoULgARiog8_ph*zZ~lEDSshG7P>9ehiEZ5)1+i{tN*OOyG3r$PfrlIEK)K1M-pp
g1Ji#7Z3aem22Bv5&cYA`O_AKe42%pR;Pe*?0D^*w4gdfE

diff --git a/out/production/infinitymonkeys/client/removeClientTimer.class b/out/production/infinitymonkeys/client/removeClientTimer.class
index bc84299015c6ee1d659b792def75320715019a83..c73b0e7d011b0129ea8f3bdd9efac2a1e4fd4d85 100644
GIT binary patch
delta 539
zcmX@dHG@0))W2Q(7#J8#7(%%igc!6q83Y-$L4*z$gD!&}7lS^70T+WIgAo^lI)gEY
zFkxi?1LhZ841x@%AR#jlVb0EA!NFk3#bCu?&CX!M&S1MS!k&@QZt@I96+3YTc^(E~
z1`!?xQ3f$~274X`2L?xW1}7c{X9gE`23H;iHwJee1`h^L9tJN4Zyp98245ZqKL&pu
zh5&}Z$-fvC6&M*rJ@ZOZi;7AMN>Wo4Tq}}O3raHc^Vk`Jco>2iLN+TftzuMl5B1a!
zE=epZ2~I9bP0eFu5Gc;bFLx~}$}jRwEiO(>Pi15fow!g~Lo<v)fkBW#h=GBDiGc~^
zHZV(+K@3bYGKe!sFfcMmPX5oV5G=*Oz#zoH!oa|=hJl4)EdwXRItD(5^$gMs3=9ek
z%nS?+{0uS-vfyyx2b;wR76X~a#K6cP#~=?fi-CdRHUkq_z3=2A7T0=CA0hr73<4V&
zK+2sN+!**6m>EEp=`nCKFfeRo;A7avpvbU;L7ib2gC@gn1`~!o47Ln=8JrmoGq^GA
zXK-gY$l$|p1ndwk1{MZB22%zF21N!&22BPj1|<e%1||k~237_Y234>fzEEeXF)%O)
dFi5ieVNhgeQ2)iC=)}&z$I8ISpaJ&1CIEnmO~wEK

delta 480
zcmbQieU2;Q)W2Q(7#J8#7y`H$1Q|3r83Y)#K!i3IgARi(7lR&yJ{N-lgCQ4#8iNst
zFlJ={1LhZ83<3-$AR$u_VaCp2&c(pTV8PB{$<AQ4G1{Jy(R%W1Mio0T200!EAqHU{
z1`!5Pb_N?B23rO@b_RPM1_uU5b_ORN24@Br9tKwiHy#Fe1`i$vPX;d@25$x*9tK|q
zzsY|Y6<K*0{2Amn+cB+TG%YB~%qs~lNleZTDN0OEWl&%cU=U<rU|?ck0$BoPi7<$Q
zX+{Py25|;P28qcYEDFJr3=9lH3@i)`3@aH}7*;WGGOT9cV_3r=#lXOzz`)GFz`)NS
z%^(Bz9Y5GCMz9#jG$sZ{23ZC<kXZ~247V7V!0LS_?`CnW=kU?q#=yUk0i@cQ!Ht2B
zftdkhmmUK*0|Ub*20n((42ld}8PplJGiWmGU@&3W$zaQ{i@}*;AA=ji9tL-Yy$s$A
z`@!zeVqjt5V=!fqXHZ~ZWYA=gVo+pIVqju$XJBDaW>5j!;RAK0Dgy(900WD}9|lEs
W2DM)dicahdd@Kx%4C-LdYXAVV{W~ZC

diff --git a/src/GUI/ApplicationMain.java b/src/GUI/ApplicationMain.java
index 240f330..60dc6aa 100644
--- a/src/GUI/ApplicationMain.java
+++ b/src/GUI/ApplicationMain.java
@@ -59,7 +59,6 @@ public class ApplicationMain extends JPanel {
 
     public void createAndShowGUI() {
         frame = new JFrame("Application Main");
-        JFrame.setDefaultLookAndFeelDecorated(true);
         Container content = frame.getContentPane();
         content.setLayout(new BorderLayout());
         content.add(paintGUI.getGlobal(), BorderLayout.WEST);
diff --git a/src/GUI/StartScreen.java b/src/GUI/StartScreen.java
index 6c1bb87..acd121f 100644
--- a/src/GUI/StartScreen.java
+++ b/src/GUI/StartScreen.java
@@ -70,21 +70,13 @@ public class StartScreen {
                     {
                         frame.setVisible(false);
                         frame.dispose();
-                        if (client.getApplicationMain().getFrame() == null) {
-                            client.startApplication();
-                        }
-                        else {
-                            client.clearChat();
-                            client.clearDrawingArea();
-                            client.setVisibleApplication();
-                        }
-
+                        client.startApplication();
                     }
-                    else if( connectionStatus == 1 || connectionStatus == 6)
+                    else if( connectionStatus == 1)
                     {
                         showErrorMessage("The manager rejected your join request");
                     }
-                    else if( connectionStatus == 2 || connectionStatus == 7 )
+                    else if( connectionStatus == 2)
                     {
                         showErrorMessage("Duplicate username: Please enter a different username");
                     }
@@ -96,11 +88,6 @@ public class StartScreen {
                     {
                         showErrorMessage("Incorrect Password");
                     }
-                    else if( connectionStatus == 5 ) {
-                        frame.setVisible(false);
-                        frame.dispose();
-                        client.setVisibleApplication();
-                    }
                     else
                     {
                         showErrorMessage("Unknown Connection Status");
diff --git a/src/client/Client.java b/src/client/Client.java
index 353f7ac..c10899b 100644
--- a/src/client/Client.java
+++ b/src/client/Client.java
@@ -154,64 +154,36 @@ public class Client
             if (serverAddress.trim().isEmpty()) {
                 serverAddress = DEFAULT_SERVER_ADDRESS;
             }
-            // If the client wants to reconnect to the same server using the same username
-            if (registryServer != null && getUserName().equals(userName)
-                    && getServerAddress().equals(serverAddress)
-                    && getApplicationMain().getFrame() != null) {
-
-                System.out.println("Server address:" + getServerAddress());
-                System.out.println("User name:" + getUserName());
-                System.out.println("Password: " + password);
-
-                if (clientController.setSharedKey(this.encryptionUpdate)) {
-                    SealedObject sealedPassword = EncryptDecrypt.encryptString(password, this.encryptionUpdate.getSharedSecretKey());
-
-                    if (clientController.checkPassword(sealedPassword)) {
-                        int joinStatus = clientController.join(getUserName(), this.chatUpdate, this.clientUpdate, this.drawingUpdate);
-                        return joinStatus + 5;
-                    }
-                    else
-                    {
-                        return 4;
-                    }
-                }
-                else
-                {
-                    return 4;
-                }
-            }
             // New connection
-            else {
-                setUserName(userName);
-                setServerAddress(serverAddress);
-                System.out.println("Server address:" + serverAddress);
-
-                registryServer = LocateRegistry.getRegistry(serverAddress);
-                chatController = (IChatController) registryServer.lookup("ChatController");
-                clientController = (IClientController) registryServer.lookup("ClientController");
-                drawingController = (IDrawingController) registryServer.lookup("DrawingController");
-
-                System.out.println("User name:" + getUserName());
-                System.out.println("Password: " + password);
-
-                if (clientController.setSharedKey(this.encryptionUpdate)) {
-                    SealedObject sealedPassword = EncryptDecrypt.encryptString(password, this.encryptionUpdate.getSharedSecretKey());
-
-                    if (clientController.checkPassword(sealedPassword)) {
-                        int joinStatus = clientController.join(getUserName(), this.chatUpdate, this.clientUpdate, this.drawingUpdate);
-                        return joinStatus;
-                    }
-                    else
-                    {
-                        return 4;
-                    }
+            setUserName(userName);
+            setServerAddress(serverAddress);
+            System.out.println("Server address:" + serverAddress);
+
+            registryServer = LocateRegistry.getRegistry(serverAddress);
+            chatController = (IChatController) registryServer.lookup("ChatController");
+            clientController = (IClientController) registryServer.lookup("ClientController");
+            drawingController = (IDrawingController) registryServer.lookup("DrawingController");
+
+            System.out.println("User name:" + getUserName());
+            System.out.println("Password: " + password);
+
+            if (clientController.setSharedKey(this.encryptionUpdate)) {
+                SealedObject sealedPassword = EncryptDecrypt.encryptString(password, this.encryptionUpdate.getSharedSecretKey());
+
+                if (clientController.checkPassword(sealedPassword)) {
+                    int joinStatus = clientController.join(getUserName(), this.chatUpdate, this.clientUpdate, this.drawingUpdate);
+                    return joinStatus;
                 }
                 else
                 {
                     return 4;
                 }
-
             }
+            else
+            {
+                return 4;
+            }
+
         }
         catch (Exception e)
         {
-- 
GitLab