diff --git a/.gitignore b/.gitignore
index 4284d800f0597a5762c36eb0b0fcdef09f8e19bd..423548caefa16f56258362c61561fc0ddfe322d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,40 +1,44 @@
- ~$3500NetworkedGraphicsSyllabus2019JulySeptember.doc
-/nbproject/build-impl.xml~
-/nbproject/private/
-/assignments/build/
-/assignments/dist/
-/assignments/nbproject/build-impl.xml~
-/assignments/nbproject/genfiles.properties
-/assignments/nbproject/private/
-/examples/BasicServletDemo/nbproject/private/
-/examples/WebsocketGateway/nbproject/private/
-/examples/manifest.mf
-/examples/build/
-/examples/dist/
-/examples/nbproject/build-impl.xml~
-/examples/nbproject/genfiles.properties
-/examples/nbproject/private/
-/specifications/*.SAVEME
-/specifications/*.doc
-/specifications/*.htm
-/specifications/*.xsd
-/specifications/*.xsl
-/specifications/*.pdf
-/specifications/Makefile
-/specifications/README.txt
-/specifications/SISO-REF-010-v24
-/specifications/RPR*.xml
-/specifications/SISO*.xml
-/specifications/archive
-!/specifications/2019-SIW-Presentation-039_CompressedDis.pdf
-!/specifications/IeeeDisPduColorFigures.pdf
-/examples/WebsocketGateway/build/
-/examples/WebsocketGateway/dist/
-/examples/BasicServletDemo/dist/
-/examples/BasicServletDemo/build/
-/examples/DisShooting/build/
-/examples/DisShooting/dist/
-/examples/DisShooting/nbproject/private/
-/examples/DisDemo/nbproject/private/
-/examples/DisDemo/build/
-/examples/DisDemo/dist/
+ ~$3500NetworkedGraphicsSyllabus2019JulySeptember.doc
+/nbproject/build-impl.xml~
+/nbproject/private/
+/assignments/build/
+/assignments/dist/
+/assignments/nbproject/build-impl.xml~
+/assignments/nbproject/genfiles.properties
+/assignments/nbproject/private/
+/examples/BasicServletDemo/nbproject/private/
+/examples/WebsocketGateway/nbproject/private/
+/examples/manifest.mf
+/examples/build/
+/examples/dist/
+/examples/nbproject/build-impl.xml~
+/examples/nbproject/genfiles.properties
+/examples/nbproject/private/
+/specifications/*.SAVEME
+/specifications/*.doc
+/specifications/*.htm
+/specifications/*.xsd
+/specifications/*.xsl
+/specifications/*.pdf
+/specifications/Makefile
+/specifications/README.txt
+/specifications/SISO-REF-010-v24
+/specifications/RPR*.xml
+/specifications/SISO*.xml
+/specifications/archive
+!/specifications/2019-SIW-Presentation-039_CompressedDis.pdf
+!/specifications/IeeeDisPduColorFigures.pdf
+/examples/WebsocketGateway/build/
+/examples/WebsocketGateway/dist/
+/examples/BasicServletDemo/dist/
+/examples/BasicServletDemo/build/
+/examples/DisShooting/build/
+/examples/DisShooting/dist/
+/examples/DisShooting/nbproject/private/
+/examples/DisDemo/nbproject/private/
+/examples/DisDemo/build/
+/examples/DisDemo/dist/
+/specifications/downloads/IEEE1278.2-2015.DistributedInteractiveSimulation.CommunicationsServices.12782-2015.pdf
+/specifications/downloads/IEEE1278.3-2015.DistributedInteractiveSimulation.CommunicationsServices.00587529.pdf
+/specifications/downloads/IEEE1278.4-2013.DistributedInteractiveSimulation.VV+A.12784-1997.pdf
+/specifications/downloads/IEEE1278.1-2012.DistributedInteractiveSimulation.ApplicationProtocols.12781-2012.pdf
diff --git a/assignments/nbproject/project.properties b/assignments/nbproject/project.properties
index 61f390aa6f03fc2eae0d4291e0d876c3e86dfbbb..568ec09a5c643562112eac21528b813a6de3b98d 100644
--- a/assignments/nbproject/project.properties
+++ b/assignments/nbproject/project.properties
@@ -1,131 +1,131 @@
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.processors.list=
-annotation.processing.run.all.processors=true
-annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
-application.desc=Student assignments performed as part of NPS course Networked Graphics MV3500.  This course is an introduction to network communications in simulation applications. Topics include an introduction to the TCP/IP protocol stack; TCP/IP socket communications, including TCP, UDP, and multicast; and protocol design issues, with emphasis on Distributed Interactive Simulation (DIS) Protocol and High Level Architecture (HLA). Course emphasis is on creation and testing of network programming network code and web-browser applications.
-application.homepage=https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/tree/master/assignments
-application.splash=../..\\NetworkedGraphicsMV3500\\documentation\\images\\OpenDisSurferDude.png
-application.title=NPS Networked Graphics MV3500 assignments
-application.vendor=Don Brutzman
-auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml
-build.classes.dir=${build.dir}/classes
-build.classes.excludes=**/*.java,**/*.form
-# This directory is removed when the project is cleaned:
-build.dir=build
-build.generated.dir=${build.dir}/generated
-build.generated.sources.dir=${build.dir}/generated-sources
-# Only compile against the classpath explicitly listed here:
-build.sysclasspath=ignore
-build.test.classes.dir=${build.dir}/test/classes
-build.test.results.dir=${build.dir}/test/results
-# Uncomment to specify the preferred debugger connection transport:
-#debug.transport=dt_socket
-debug.classpath=\
-    ${run.classpath}
-debug.modulepath=\
-    ${run.modulepath}
-debug.test.classpath=\
-    ${run.test.classpath}
-debug.test.modulepath=\
-    ${run.test.modulepath}
-# Files in build.classes.dir which should be excluded from distribution jar
-# Avoid compilation or inclusion of student project depending on mutex libraries only available in JDK8
-# https://stackoverflow.com/questions/27906896/exclude-package-from-build-but-not-from-view-in-netbeans-8
-excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/**
-dist.archive.excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/**
-
-# This directory is removed when the project is cleaned:
-dist.dir=dist
-dist.jar=${dist.dir}/Networked_Graphics_MV3500_assignments.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-endorsed.classpath=
-file.reference.commons-io-2.6.jar=../lib/commons-io-2.6.jar
-file.reference.dis-enums-1.3.jar=../lib/dis-enums-1.3.jar
-file.reference.guava-28.0-jre.jar=../lib/guava-28.0-jre.jar
-file.reference.open-dis7-enumerations-classes.jar=../lib/open-dis7-enumerations-classes.jar
-file.reference.open-dis7-pdus-classes.jar=../lib/open-dis7-pdus-classes.jar
-file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar
-includes=**
-jar.archive.disabled=${jnlp.enabled}
-jar.compress=false
-jar.index=${jnlp.enabled}
-javac.classpath=\
-    ${file.reference.open-dis7-enumerations-classes.jar}:\
-    ${file.reference.open-dis7-pdus-classes.jar}:\
-    ${file.reference.commons-io-2.6.jar}:\
-    ${file.reference.guava-28.0-jre.jar}:\
-    ${file.reference.open-dis_4.16.jar}:\
-    ${file.reference.dis-enums-1.3.jar}
-# Space-separated list of extra javac options
-javac.compilerargs=
-javac.deprecation=false
-javac.external.vm=true
-javac.modulepath=
-javac.processormodulepath=
-javac.processorpath=\
-    ${javac.classpath}
-javac.source=1.8
-javac.target=1.8
-javac.test.classpath=\
-    ${javac.classpath}:\
-    ${build.classes.dir}
-javac.test.modulepath=\
-    ${javac.modulepath}
-javac.test.processorpath=\
-    ${javac.test.classpath}
-javadoc.additionalparam=
-javadoc.author=true
-javadoc.encoding=${source.encoding}
-javadoc.html5=false
-javadoc.noindex=false
-javadoc.nonavbar=false
-javadoc.notree=false
-javadoc.private=false
-javadoc.reference.open-dis7-enumerations-classes.jar=../lib/open-dis7-enumerations-javadoc.jar
-javadoc.splitindex=true
-javadoc.use=true
-javadoc.version=false
-javadoc.windowtitle=Networked Graphics MV3500 NPS
-jlink.launcher=false
-jlink.launcher.name=Networked_Graphics_MV3500_assignments
-jnlp.codebase.type=no.codebase
-jnlp.descriptor=application
-jnlp.enabled=false
-jnlp.mixed.code=default
-jnlp.offline-allowed=false
-jnlp.signed=false
-jnlp.signing=
-jnlp.signing.alias=
-jnlp.signing.keystore=
-main.class=MV3500Cohort2020JulySeptember.homework1.WeissenbergerTcpExample1Telnet
-# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
-manifest.custom.application.library.allowable.codebase=
-# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
-manifest.custom.caller.allowable.codebase=
-# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
-manifest.custom.codebase=
-# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
-manifest.custom.permissions=
-meta.inf.dir=${src.dir}/META-INF
-mkdist.disabled=false
-platform.active=default_platform
-project.licensePath=../license.txt
-run.classpath=\
-    ${javac.classpath}:\
-    ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project.
-# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
-# To set system properties for unit tests define test-sys-prop.name=value:
-run.jvmargs=
-run.modulepath=\
-    ${javac.modulepath}
-run.test.classpath=\
-    ${javac.test.classpath}:\
-    ${build.test.classes.dir}
-run.test.modulepath=\
-    ${javac.test.modulepath}
-source.encoding=UTF-8
-source.reference.open-dis7-enumerations-classes.jar=../lib/open-dis7-enumerations-source.jar
-src.dir=src
-test.src.dir=test
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.desc=Student assignments performed as part of NPS course Networked Graphics MV3500.  This course is an introduction to network communications in simulation applications. Topics include an introduction to the TCP/IP protocol stack; TCP/IP socket communications, including TCP, UDP, and multicast; and protocol design issues, with emphasis on Distributed Interactive Simulation (DIS) Protocol and High Level Architecture (HLA). Course emphasis is on creation and testing of network programming network code and web-browser applications.
+application.homepage=https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/tree/master/assignments
+application.splash=../..\\NetworkedGraphicsMV3500\\documentation\\images\\OpenDisSurferDude.png
+application.title=NPS Networked Graphics MV3500 assignments
+application.vendor=Don Brutzman
+auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+    ${run.classpath}
+debug.modulepath=\
+    ${run.modulepath}
+debug.test.classpath=\
+    ${run.test.classpath}
+debug.test.modulepath=\
+    ${run.test.modulepath}
+# Files in build.classes.dir which should be excluded from distribution jar
+# Avoid compilation or inclusion of student project depending on mutex libraries only available in JDK8
+# https://stackoverflow.com/questions/27906896/exclude-package-from-build-but-not-from-view-in-netbeans-8
+excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/**
+dist.archive.excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/**
+
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/Networked_Graphics_MV3500_assignments.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+file.reference.commons-io-2.6.jar=../lib/commons-io-2.6.jar
+file.reference.dis-enums-1.3.jar=../lib/dis-enums-1.3.jar
+file.reference.guava-28.0-jre.jar=../lib/guava-28.0-jre.jar
+file.reference.open-dis7-enumerations-classes.jar=../lib/open-dis7-enumerations-classes.jar
+file.reference.open-dis7-pdus-classes.jar=../lib/open-dis7-pdus-classes.jar
+file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar
+includes=**
+jar.archive.disabled=${jnlp.enabled}
+jar.compress=false
+jar.index=${jnlp.enabled}
+javac.classpath=\
+    ${file.reference.open-dis7-enumerations-classes.jar}:\
+    ${file.reference.open-dis7-pdus-classes.jar}:\
+    ${file.reference.commons-io-2.6.jar}:\
+    ${file.reference.guava-28.0-jre.jar}:\
+    ${file.reference.open-dis_4.16.jar}:\
+    ${file.reference.dis-enums-1.3.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=-Xlint:deprecation -Xlint:unchecked
+javac.deprecation=false
+javac.external.vm=true
+javac.modulepath=
+javac.processormodulepath=
+javac.processorpath=\
+    ${javac.classpath}
+javac.source=16
+javac.target=16
+javac.test.classpath=\
+    ${javac.classpath}:\
+    ${build.classes.dir}
+javac.test.modulepath=\
+    ${javac.modulepath}
+javac.test.processorpath=\
+    ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=true
+javadoc.encoding=${source.encoding}
+javadoc.html5=false
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.reference.open-dis7-enumerations-classes.jar=../lib/open-dis7-enumerations-javadoc.jar
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=Networked Graphics MV3500 NPS
+jlink.launcher=false
+jlink.launcher.name=Networked_Graphics_MV3500_assignments
+jnlp.codebase.type=no.codebase
+jnlp.descriptor=application
+jnlp.enabled=false
+jnlp.mixed.code=default
+jnlp.offline-allowed=false
+jnlp.signed=false
+jnlp.signing=
+jnlp.signing.alias=
+jnlp.signing.keystore=
+main.class=MV3500Cohort2020JulySeptember.homework1.WeissenbergerTcpExample1Telnet
+# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
+manifest.custom.application.library.allowable.codebase=
+# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
+manifest.custom.caller.allowable.codebase=
+# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
+manifest.custom.codebase=
+# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
+manifest.custom.permissions=
+meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
+platform.active=default_platform
+project.licensePath=../license.txt
+run.classpath=\
+    ${javac.classpath}:\
+    ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project.
+# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
+# To set system properties for unit tests define test-sys-prop.name=value:
+run.jvmargs=
+run.modulepath=\
+    ${javac.modulepath}
+run.test.classpath=\
+    ${javac.test.classpath}:\
+    ${build.test.classes.dir}
+run.test.modulepath=\
+    ${javac.test.modulepath}
+source.encoding=UTF-8
+source.reference.open-dis7-enumerations-classes.jar=../lib/open-dis7-enumerations-source.jar
+src.dir=src
+test.src.dir=test
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpClient.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpClient.java
index 0391b6f01d957f6e10689eb9d9abdfac9ee575ed..910cad6d6a30fa839dd683b12a967cab1c9ad1a6 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpClient.java
@@ -1,72 +1,73 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-//package mv3500code;
-import java.io.*;
-import java.net.*;
-
-/**
- * Before, we always used telnet to connect to the server. We
- * are now writing our own program to do the connection.
- * 
- * As you will see, when we run this after we start the server
- * we will see the same string telnet printed, sent by the server.
- * The output at the server will show different socket pairs for
- * each time we ran it.
- * 
- * @author mcgredo
- */
-public class BlankenbekerMyTcpClient {
-
-  
-    public static void main(String[] args) 
-    {
-        try
-        {
-            while(true){
-                
-            
-           System.out.println("creating socket");
-           
-           // We request an IP to connect to ("localhost") and
-           // port number at that IP (2317). This establishes
-           // a connection to that IP in the form of the Socket
-           // object; the server uses a ServerSocket to wait for
-           // connections.
-           Socket socket = new Socket("localhost", 2317); 
-           
-           // Read the single line written by the server. We'd
-           // do things a bit differently if many lines to be read
-           // from the server, instead of one only.
-           InputStream is = socket.getInputStream();
-           InputStreamReader isr = new InputStreamReader(is);
-           BufferedReader br = new BufferedReader(isr);
-           
-           String serverMessage = br.readLine();
-           System.out.println("The message the server sent was " + serverMessage);
-           
-           OutputStream os = socket.getOutputStream();
-           PrintStream ps = new PrintStream(os);
-            
-	   ps.println("This response was written by myTcpClient"); // to remote client
-			
-            
-            // "flush()" in important in that it forces a write 
-            // across what is in fact a slow connection
-            ps.flush();
-           
-        }
-        }
-        catch(IOException e)
-        {
-            System.out.println(e);
-            System.out.println("Problem with client :" + e);
-        }
-        System.out.println("client exit");
-    } 
-    
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+//package mv3500code;
+import java.io.*;
+import java.net.*;
+
+/**
+ * Before, we always used telnet to connect to the server. We
+ * are now writing our own program to do the connection.
+ * 
+ * As you will see, when we run this after we start the server
+ * we will see the same string telnet printed, sent by the server.
+ * The output at the server will show different socket pairs for
+ * each time we ran it.
+ * 
+ * @author mcgredo
+ */
+public class BlankenbekerMyTcpClient {
+
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            while(true){
+                
+            
+           System.out.println("creating socket");
+           
+           // We request an IP to connect to ("localhost") and
+           // port number at that IP (2317). This establishes
+           // a connection to that IP in the form of the Socket
+           // object; the server uses a ServerSocket to wait for
+           // connections.
+           Socket socket = new Socket("localhost", 2317); 
+           
+           // Read the single line written by the server. We'd
+           // do things a bit differently if many lines to be read
+           // from the server, instead of one only.
+           InputStream is = socket.getInputStream();
+           InputStreamReader isr = new InputStreamReader(is);
+           BufferedReader br = new BufferedReader(isr);
+           
+           String serverMessage = br.readLine();
+           System.out.println("The message the server sent was " + serverMessage);
+           
+           OutputStream os = socket.getOutputStream();
+           PrintStream ps = new PrintStream(os);
+            
+	   ps.println("This response was written by myTcpClient"); // to remote client
+			
+            
+            // "flush()" in important in that it forces a write 
+            // across what is in fact a slow connection
+            ps.flush();
+           
+        }
+        }
+        catch(IOException e)
+        {
+            System.out.println(e);
+            System.out.println("Problem with client :" + e);
+        }
+        System.out.println("client exit");
+    } 
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpServer.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpServer.java
index 1f06beab781870e128818644a93ff8a47a70be5c..4f10a7bdec0da04af6f09ecc819fe7e4bc44e34b 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/BlankenbekerMyTcpServer.java
@@ -1,97 +1,98 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-//package mv3500code;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * Very slightly more complex than example1. A complete copy of
- * example 2. The only thing this does
- * differently is introduce a loop into the response, so you don't
- * have to restart the program after one response. Also, it prints
- * out the socket pair the server sees. Run the program via telnet
- * several times and compare the socket pairs.
- * 
- * telnet localhost 2317
- * 
- * If you're sophisticated you can contact the instructor's computer
- * while running this program.
- * 
- * telnet [ipAddressOfServerLaptop] 2317
- * 
- * And have him display the socket pairs he got.
- * @author mcgredo
- */
-public class BlankenbekerMyTcpServer 
-{
-
-    public static void main(String[] args) 
-    {
-        try
-        {
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            int connectionCount = 0;
-            ServerSocket serverSocket = new ServerSocket(2317);
-            Socket clientConnection = serverSocket.accept();
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while(true)
-            {
-               
-                
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                connectionCount++;
-                ps.println("This was written by the server");
-                
-                InputStream is = clientConnection.getInputStream();
-                InputStreamReader isr = new InputStreamReader(is);
-                BufferedReader br = new BufferedReader(isr);
-           
-                String serverMessage = br.readLine();
-                System.out.println("The message the client sent was " + serverMessage);
-                
-                // Print some information locally about the Socket
-                // connection. This includes the port and IP numbers
-                // on both sides (the socket pair.)
-                
-                InetAddress localAddress = clientConnection.getLocalAddress();
-                InetAddress remoteAddress = clientConnection.getInetAddress();
-                
-                int localPort = clientConnection.getLocalPort();
-                int remotePort = clientConnection.getPort();
-                
-                // My socket pair connection looks like this, to localhost:
-                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                //
-                // Why is the first IP/port the same, while the second set has
-                // different ports?
-
-
-                System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " + 
-                        remoteAddress.toString() + ", " + remotePort + " ))");
-                
-                System.out.println("Connection count is: " + connectionCount);
-                
-                // Notice the use of flush() and close(). Without
-                // the close() to Socket object may stay open for 
-                // a while after the client has stopped needing this
-                // connection. Close() explicitly ends the connection.
-                ps.flush();
-                clientConnection.close();
-            }
-       }
-        catch(Exception e)
-        {
-            System.out.println("problem with networking");
-        }
-       
-    }
-    
-
-    
-}
+//package mv3500code;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * Very slightly more complex than example1. A complete copy of
+ * example 2. The only thing this does
+ * differently is introduce a loop into the response, so you don't
+ * have to restart the program after one response. Also, it prints
+ * out the socket pair the server sees. Run the program via telnet
+ * several times and compare the socket pairs.
+ * 
+ * telnet localhost 2317
+ * 
+ * If you're sophisticated you can contact the instructor's computer
+ * while running this program.
+ * 
+ * telnet [ipAddressOfServerLaptop] 2317
+ * 
+ * And have him display the socket pairs he got.
+ * @author mcgredo
+ */
+public class BlankenbekerMyTcpServer 
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            int connectionCount = 0;
+            ServerSocket serverSocket = new ServerSocket(2317);
+            Socket clientConnection = serverSocket.accept();
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while(true)
+            {
+               
+                
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                connectionCount++;
+                ps.println("This was written by the server");
+                
+                InputStream is = clientConnection.getInputStream();
+                InputStreamReader isr = new InputStreamReader(is);
+                BufferedReader br = new BufferedReader(isr);
+           
+                String serverMessage = br.readLine();
+                System.out.println("The message the client sent was " + serverMessage);
+                
+                // Print some information locally about the Socket
+                // connection. This includes the port and IP numbers
+                // on both sides (the socket pair.)
+                
+                InetAddress localAddress = clientConnection.getLocalAddress();
+                InetAddress remoteAddress = clientConnection.getInetAddress();
+                
+                int localPort = clientConnection.getLocalPort();
+                int remotePort = clientConnection.getPort();
+                
+                // My socket pair connection looks like this, to localhost:
+                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                //
+                // Why is the first IP/port the same, while the second set has
+                // different ports?
+
+
+                System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " + 
+                        remoteAddress.toString() + ", " + remotePort + " ))");
+                
+                System.out.println("Connection count is: " + connectionCount);
+                
+                // Notice the use of flush() and close(). Without
+                // the close() to Socket object may stay open for 
+                // a while after the client has stopped needing this
+                // connection. Close() explicitly ends the connection.
+                ps.flush();
+                clientConnection.close();
+            }
+       }
+        catch(Exception e)
+        {
+            System.out.println("problem with networking");
+        }
+       
+    }
+    
+
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpClient.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpClient.java
index 0a1232189da6d2c311d3c2b27423e135ba4047bb..25d9cb3ea5ea7f2c7b73993418d2ceb2ba73869e 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpClient.java
@@ -1,64 +1,67 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-//package Homework1;
-
-import java.io.*;
-import java.net.*;
-
-/**
- *
- * @author Brian
- */
-public class HanleyTcpClient {
-    public static void main(String[] args) 
-    {
-        try
-        {
-           System.out.println("creating socket");
-           
-           // We request an IP to connect to ("localhost") and
-           // port number at that IP (2317). This establishes
-           // a connection to that IP in the form of the Socket
-           // object; the server uses a ServerSocket to wait for
-           // connections.
-           Socket socket = new Socket("localhost", 2317); 
-           
-           // Read the single line written by the server. We'd
-           // do things a bit differently if many lines to be read
-           // from the server, instead of one only.
-           InputStream is = socket.getInputStream();
-           InputStreamReader isr = new InputStreamReader(is);
-           BufferedReader br = new BufferedReader(isr);
-           
-           String serverMessage = br.readLine();
-           System.out.println("1 The message the server sent was " + serverMessage);
-           
-           // Outgoing Messages
-           OutputStream os = socket.getOutputStream();
-           PrintStream ps = new PrintStream(os);
-           ps.println("bbb report: X, Y, X " + System.currentTimeMillis());
-           
-           serverMessage = br.readLine();
-           System.out.println("2 The message the server sent was " + serverMessage);
-           
-           //os = socket.getOutputStream();
-          // ps = new PrintStream(os);
-           ps.println("Final message from client " + System.currentTimeMillis());
-           serverMessage = br.readLine();
-           System.out.println("3 The message the server sent was " + serverMessage);
-            
-           
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-            System.out.println("Problem with client");
-        }
-
-    }
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+//package Homework1;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ *
+ * @author Brian
+ */
+public class HanleyTcpClient
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+           System.out.println("creating socket");
+           
+           // We request an IP to connect to ("localhost") and
+           // port number at that IP (2317). This establishes
+           // a connection to that IP in the form of the Socket
+           // object; the server uses a ServerSocket to wait for
+           // connections.
+           Socket socket = new Socket("localhost", 2317); 
+           
+           // Read the single line written by the server. We'd
+           // do things a bit differently if many lines to be read
+           // from the server, instead of one only.
+           InputStream is = socket.getInputStream();
+           InputStreamReader isr = new InputStreamReader(is);
+           BufferedReader br = new BufferedReader(isr);
+           
+           String serverMessage = br.readLine();
+           System.out.println("1 The message the server sent was " + serverMessage);
+           
+           // Outgoing Messages
+           OutputStream os = socket.getOutputStream();
+           PrintStream ps = new PrintStream(os);
+           ps.println("bbb report: X, Y, X " + System.currentTimeMillis());
+           
+           serverMessage = br.readLine();
+           System.out.println("2 The message the server sent was " + serverMessage);
+           
+           //os = socket.getOutputStream();
+          // ps = new PrintStream(os);
+           ps.println("Final message from client " + System.currentTimeMillis());
+           serverMessage = br.readLine();
+           System.out.println("3 The message the server sent was " + serverMessage);
+            
+           
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+            System.out.println("Problem with client");
+        }
+
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpServer.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpServer.java
index ec432a4f1fcf2df7d566b9c82faaefd82f431104..917eae54932634eef7344795eda6345507b60241 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/HanleyTcpServer.java
@@ -1,106 +1,107 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-//package Homework1;
-
-    
-import java.io.*;
-import java.net.*;
-
-
-
-/**
- *
- * @author Brian
- */
-public class HanleyTcpServer {
-
-/**
- * Very slightly more complex than example1. A complete copy of
- * example 2. The only thing this does
- * differently is introduce a loop into the response, so you don't
- * have to restart the program after one response. Also, it prints
- * out the socket pair the server sees. Run the program via telnet
- * several times and compare the socket pairs.
- * 
- * telnet localhost 2317
- * 
- * If you're sophisticated you can contact the instructor's computer
- * while running this program.
- * 
- * telnet [ipAddressOfServerLaptop] 2317
- * 
- * And have him display the socket pairs he got.
- * @author mcgredo
- */
-    public static void main(String[] args) 
-    {
-        try
-        {
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            
-            ServerSocket serverSocket = new ServerSocket(2317);
-            Socket clientConnection = serverSocket.accept();
-
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while(true)
-            {
-                //Socket clientConnection = serverSocket.accept();
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-
-                ps.println("This was written by the server");
-                
-                // Print some information locally about the Socket
-                // connection. This includes the port and IP numbers
-                // on both sides (the socket pair.)
-                
-                InetAddress localAddress = clientConnection.getLocalAddress();
-                InetAddress remoteAddress = clientConnection.getInetAddress();
-                
-                int localPort = clientConnection.getLocalPort();
-                int remotePort = clientConnection.getPort();
-                
-                // My socket pair connection looks like this, to localhost:
-                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                //
-                // Why is the first IP/port the same, while the second set has
-                // different ports?
-
-
-                System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " + 
-                        remoteAddress.toString() + ", " + remotePort + " ))");
-                
-                //Exchange of Data
-                InputStream is = clientConnection.getInputStream();
-                InputStreamReader isr = new InputStreamReader(is);
-                BufferedReader br = new BufferedReader(isr);
-           
-                String clientMessage = br.readLine();
-                
-                if (clientMessage.startsWith("loc")){
-                    System.out.println("Location Report \n"+ clientMessage);
-                }
-                else System.out.println("Incoming Message \n" + clientMessage);
-                ps.println("Message received");
-                
-                // Notice the use of flush() and close(). Without
-                // the close() to Socket object may stay open for 
-                // a while after the client has stopped needing this
-                // connection. Close() explicitly ends the connection.
-                ps.flush();
-                clientConnection.close();
-            }
-       }
-        catch(Exception e)
-        {
-            System.out.println("problem with networking");
-        }
-       
-    }
-    
-}
-
+//package Homework1;
+
+    
+import java.io.*;
+import java.net.*;
+
+
+
+/**
+ *
+ * @author Brian
+ */
+public class HanleyTcpServer {
+
+/**
+ * Very slightly more complex than example1. A complete copy of
+ * example 2. The only thing this does
+ * differently is introduce a loop into the response, so you don't
+ * have to restart the program after one response. Also, it prints
+ * out the socket pair the server sees. Run the program via telnet
+ * several times and compare the socket pairs.
+ * 
+ * telnet localhost 2317
+ * 
+ * If you're sophisticated you can contact the instructor's computer
+ * while running this program.
+ * 
+ * telnet [ipAddressOfServerLaptop] 2317
+ * 
+ * And have him display the socket pairs he got.
+ * @param args command-line arguments, string parameters (unused) 
+ * @author mcgredo
+ */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            
+            ServerSocket serverSocket = new ServerSocket(2317);
+            Socket clientConnection = serverSocket.accept();
+
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while(true)
+            {
+                //Socket clientConnection = serverSocket.accept();
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+
+                ps.println("This was written by the server");
+                
+                // Print some information locally about the Socket
+                // connection. This includes the port and IP numbers
+                // on both sides (the socket pair.)
+                
+                InetAddress localAddress = clientConnection.getLocalAddress();
+                InetAddress remoteAddress = clientConnection.getInetAddress();
+                
+                int localPort = clientConnection.getLocalPort();
+                int remotePort = clientConnection.getPort();
+                
+                // My socket pair connection looks like this, to localhost:
+                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                //
+                // Why is the first IP/port the same, while the second set has
+                // different ports?
+
+
+                System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " + 
+                        remoteAddress.toString() + ", " + remotePort + " ))");
+                
+                //Exchange of Data
+                InputStream is = clientConnection.getInputStream();
+                InputStreamReader isr = new InputStreamReader(is);
+                BufferedReader br = new BufferedReader(isr);
+           
+                String clientMessage = br.readLine();
+                
+                if (clientMessage.startsWith("loc")){
+                    System.out.println("Location Report \n"+ clientMessage);
+                }
+                else System.out.println("Incoming Message \n" + clientMessage);
+                ps.println("Message received");
+                
+                // Notice the use of flush() and close(). Without
+                // the close() to Socket object may stay open for 
+                // a while after the client has stopped needing this
+                // connection. Close() explicitly ends the connection.
+                ps.flush();
+                clientConnection.close();
+            }
+       }
+        catch(Exception e)
+        {
+            System.out.println("problem with networking");
+        }
+       
+    }
+    
+}
+
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasClient2.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasClient2.java
index 3ab74dee1dfe47b7a01e1de7f2f8036cbbfb4cf5..4fb3849a4f50e27ab13a57295684ca69c32d156e 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasClient2.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasClient2.java
@@ -1,66 +1,66 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package MV3500Cohort2018JanuaryMarch.homework1;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.Socket;
-import java.util.Scanner;
-/**
- *
- * @author Rico
- */
-public class LandasClient2 {
-    
-    public static DataInputStream in;
-    public static DataOutputStream out;
-
-    /**
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) {
-        // TODO code application logic here
-            //declare a scanner so we can write a message
-       Scanner keyboard = new Scanner(System.in);
-
-       // localhost ip
-       String ip = "127.0.0.1";
-       int port = 2317;
-       Socket socket;
-
-       try {
-
-       //connect
-       socket = new Socket(ip, port);
-
-       //initialize streams
-       //DataInputStream in = new DataInputStream(socket.getInputStream());
-       //DataOutputStream out = new DataOutputStream(socket.getOutputStream());
-       in = new DataInputStream(socket.getInputStream());
-       out = new DataOutputStream(socket.getOutputStream());
-
-
-        while (true){
-           System.out.print("\nMessage to server: ");
-           //Write a message
-           String message = keyboard.nextLine();
-           //Send it to the server which will print it and send a confirmation
-           out.writeUTF(message);
-           
-           // recieve the incoming messages and print
-           String message2 = in.readUTF();
-           System.out.println(message2);
-        }
-
-        }
-        catch(IOException e) {
-            System.out.println(e);
-            System.out.println("\nProblem with client");
-        }
-    }
-    
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JanuaryMarch.homework1;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.Socket;
+import java.util.Scanner;
+/**
+ *
+ * @author Rico
+ */
+public class LandasClient2 {
+    
+    static DataInputStream in;
+    static DataOutputStream out;
+
+    /**
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) {
+        // TODO code application logic here
+            //declare a scanner so we can write a message
+       Scanner keyboard = new Scanner(System.in);
+
+       // localhost ip
+       String ip = "127.0.0.1";
+       int port = 2317;
+       Socket socket;
+
+       try {
+
+       //connect
+       socket = new Socket(ip, port);
+
+       //initialize streams
+       //DataInputStream in = new DataInputStream(socket.getInputStream());
+       //DataOutputStream out = new DataOutputStream(socket.getOutputStream());
+       in = new DataInputStream(socket.getInputStream());
+       out = new DataOutputStream(socket.getOutputStream());
+
+
+        while (true){
+           System.out.print("\nMessage to server: ");
+           //Write a message
+           String message = keyboard.nextLine();
+           //Send it to the server which will print it and send a confirmation
+           out.writeUTF(message);
+           
+           // recieve the incoming messages and print
+           String message2 = in.readUTF();
+           System.out.println(message2);
+        }
+
+        }
+        catch(IOException e) {
+            System.out.println(e);
+            System.out.println("\nProblem with client");
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasServer2.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasServer2.java
index 0314fced00c960226aafa617a6d841ad20555d1e..6fb1a854793d08407a618aae2c52563b81db1ada 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasServer2.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/LandasServer2.java
@@ -1,68 +1,67 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package MV3500Cohort2018JanuaryMarch.homework1;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-
-/**
- *
- * @author Rico
- */
-public class LandasServer2 {
-    
-    public static DataInputStream in;
-    public static DataOutputStream out;
-    
-    /**
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) {
-        // TODO code application logic here
-        int port = 2317;
-        ServerSocket server;
-        Socket clientSocket;
-
-        try {
-
-        //start listening on port
-        server = new ServerSocket(port);
-
-        System.out.println("Listening on port: " + port);
-
-        //Accept client
-        clientSocket = server.accept();
-
-        System.out.println("Client Connected!");
-
-        //initialize streams so we can send message
-        in = new DataInputStream(clientSocket.getInputStream());
-        out = new DataOutputStream(clientSocket.getOutputStream());
-
-        String message;
-
-            while (true) {
-
-                // as soon as a message is being received, print it out!
-                message = in.readUTF();
-                System.out.println("Server received: " + message);
-                // send a message confirmation to the client
-                String temp1 = "Server: I received your message of " + "'" + message + "'";
-                out.writeUTF(temp1);
-            
-            }
-            
-        }
-        catch(IOException e) {
-            System.out.println("problem with networking: " + e);
-        }    
-    }
-    
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JanuaryMarch.homework1;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+
+/**
+ *
+ * @author Rico
+ */
+public class LandasServer2 {
+    
+    static DataInputStream in;
+    static DataOutputStream out;
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) {
+        // TODO code application logic here
+        int port = 2317;
+        ServerSocket server;
+        Socket clientSocket;
+
+        try {
+
+        //start listening on port
+        server = new ServerSocket(port);
+
+        System.out.println("Listening on port: " + port);
+
+        //Accept client
+        clientSocket = server.accept();
+
+        System.out.println("Client Connected!");
+
+        //initialize streams so we can send message
+        in = new DataInputStream(clientSocket.getInputStream());
+        out = new DataOutputStream(clientSocket.getOutputStream());
+
+        String message;
+
+            while (true) {
+
+                // as soon as a message is being received, print it out!
+                message = in.readUTF();
+                System.out.println("Server received: " + message);
+                // send a message confirmation to the client
+                String temp1 = "Server: I received your message of " + "'" + message + "'";
+                out.writeUTF(temp1);
+            
+            }
+            
+        }
+        catch(IOException e) {
+            System.out.println("problem with networking: " + e);
+        }    
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpClient.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpClient.java
index d4cba73960565370c080a5baec4869aab9c742e7..1a95b3311fce5cf709544a90e5d30f1e11ead24c 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpClient.java
@@ -1,64 +1,64 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-
-//package tcpclient;
-
-import java.io.*;
-import java.net.*;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.Socket;
-import java.util.Scanner;
-
-/**
- * Before, we always used telnet to connect to the server. We
- * are now writing our own program to do the connection.
- * 
- * As you will see, when we run this after we start the server
- * we will see the same string telnet printed, sent by the server.
- * The output at the server will show different socket pairs for
- * each time we ran it.
- * 
- * @author mcgredo
- */
-public class MaroonTcpClient {
-    
-    public static DataInputStream input;
-    public static DataOutputStream output;
-    
-
-  
-    public static void main(String[] args) 
-    {
-        Scanner userInput = new Scanner(System.in);
-        try
-        {
-           System.out.println("creating socket");
-           Socket socket = new Socket("localhost", 2317); 
-           
-           input = new DataInputStream(socket.getInputStream());
-           output = new DataOutputStream(socket.getOutputStream());
-           
-           
-           
-           System.out.println("Type position or ID: \n ");
-           String request;
-           request = userInput.nextLine();
-           output.writeUTF(request);
-           
-           String reply;
-           reply = input.readUTF();
-           System.out.println(reply);
-           
-           
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-            System.out.println("Problem with client");
-        }
-
-    }
-    
-}
+
+//package tcpclient;
+
+import java.io.*;
+import java.net.*;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.Socket;
+import java.util.Scanner;
+
+/**
+ * Before, we always used telnet to connect to the server. We
+ * are now writing our own program to do the connection.
+ * 
+ * As you will see, when we run this after we start the server
+ * we will see the same string telnet printed, sent by the server.
+ * The output at the server will show different socket pairs for
+ * each time we ran it.
+ * 
+ * @author mcgredo
+ */
+public class MaroonTcpClient {
+    
+    static DataInputStream input;
+    static DataOutputStream output;
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        Scanner userInput = new Scanner(System.in);
+        try
+        {
+           System.out.println("creating socket");
+           Socket socket = new Socket("localhost", 2317); 
+           
+           input = new DataInputStream(socket.getInputStream());
+           output = new DataOutputStream(socket.getOutputStream());
+           
+           
+           
+           System.out.println("Type position or ID: \n ");
+           String request;
+           request = userInput.nextLine();
+           output.writeUTF(request);
+           
+           String reply;
+           reply = input.readUTF();
+           System.out.println(reply);
+           
+           
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+            System.out.println("Problem with client");
+        }
+
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpServer.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpServer.java
index ca3c810813bb7193f4ce8c86700c6f306c0efc01..9efebe0aa0e0ae69ed6153d4a0ffe9c8d59ac8be 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/MaroonTcpServer.java
@@ -1,89 +1,90 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-//package tcpserver;
-
-import java.io.*;
-import java.net.*;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.Arrays;
-
-/**
- * Very slightly more complex than example1. A complete copy of
- * example 2. The only thing this does
- * differently is introduce a loop into the response, so you don't
- * have to restart the program after one response. Also, it prints
- * out the socket pair the server sees. Run the program via telnet
- * several times and compare the socket pairs.
- * 
- * telnet localhost 2317
- * 
- * If you're sophisticated you can contact the instructor's computer
- * while running this program.
- * 
- * telnet [ipAddressOfServerLaptop] 2317
- * 
- * And have him display the socket pairs he got.
- * @author mcgredo
- */
-public class MaroonTcpServer 
-{
-    
-    public static DataInputStream input;
-    public static DataOutputStream output;
-    
-    
-    public static void main(String[] args) 
-    {
-        
-        MaroonUnit testUnit1 = new MaroonUnit ();
-        
-        try
-        {
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            
-            ServerSocket serverSocket = new ServerSocket(2317);
-
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while(true)
-            {
-                Socket clientConnection = serverSocket.accept();
-                //OutputStream os = clientConnection.getOutputStream();
-                input = new DataInputStream(clientConnection.getInputStream());
-                output = new DataOutputStream(clientConnection.getOutputStream());
-                
-                String request = input.readUTF();
-				request = request.trim(); // get rid of outer whitespace
-                
-                if ("position".equalsIgnoreCase(request)){
-                    output.writeUTF(Arrays.toString(testUnit1.getPosition()));
-                }
-                else if ("ID".equalsIgnoreCase(request)){
-                    output.writeUTF(""+ testUnit1.getID());
-                    
-                }else 
-                    output.writeUTF("I don't understand, try www.google.com");
-
-                
-                // Notice the use of flush() and close(). Without
-                // the close() to Socket object may stay open for 
-                // a while after the client has stopped needing this
-                // connection. Close() explicitly ends the connection.
-             
-                clientConnection.close();
-            }
-       }
-        catch(Exception e)
-        {
-            System.out.println("problem with networking");
-        }
-       
-    }
-    
+//package tcpserver;
+
+import java.io.*;
+import java.net.*;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.Arrays;
+
+/**
+ * Very slightly more complex than example1. A complete copy of
+ * example 2. The only thing this does
+ * differently is introduce a loop into the response, so you don't
+ * have to restart the program after one response. Also, it prints
+ * out the socket pair the server sees. Run the program via telnet
+ * several times and compare the socket pairs.
+ * 
+ * telnet localhost 2317
+ * 
+ * If you're sophisticated you can contact the instructor's computer
+ * while running this program.
+ * 
+ * telnet [ipAddressOfServerLaptop] 2317
+ * 
+ * And have him display the socket pairs he got.
+ * @author mcgredo
+ */
+public class MaroonTcpServer 
+{
+    
+    static DataInputStream input;
+    static DataOutputStream output;
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        
+        MaroonUnit testUnit1 = new MaroonUnit ();
+        
+        try
+        {
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            
+            ServerSocket serverSocket = new ServerSocket(2317);
+
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while(true)
+            {
+                Socket clientConnection = serverSocket.accept();
+                //OutputStream os = clientConnection.getOutputStream();
+                input = new DataInputStream(clientConnection.getInputStream());
+                output = new DataOutputStream(clientConnection.getOutputStream());
+                
+                String request = input.readUTF();
+				request = request.trim(); // get rid of outer whitespace
+                
+                if ("position".equalsIgnoreCase(request)){
+                    output.writeUTF(Arrays.toString(testUnit1.getPosition()));
+                }
+                else if ("ID".equalsIgnoreCase(request)){
+                    output.writeUTF(""+ testUnit1.getID());
+                    
+                }else 
+                    output.writeUTF("I don't understand, try www.google.com");
+
+                
+                // Notice the use of flush() and close(). Without
+                // the close() to Socket object may stay open for 
+                // a while after the client has stopped needing this
+                // connection. Close() explicitly ends the connection.
+             
+                clientConnection.close();
+            }
+       }
+        catch(Exception e)
+        {
+            System.out.println("problem with networking");
+        }
+       
+    }
+    
 }
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionClient.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionClient.java
index 519cf844ca49ba93da82f8b79d279df98dd957ca..6708391737ff6ed9b1b3013bf69e3530b14e6430 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionClient.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionClient.java
@@ -1,41 +1,41 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-//package PositionClient;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-/**
- *
- * @author AJSNELL
- */
-public class SnellPositionClient {
-    /**
-     * @param args command-line arguments
-     * @throws java.io.IOException
-     */
-    public static void main(String[] args) throws IOException {
-        String hostName = args[0];
-        try (Socket clientSocket = new Socket(hostName, 8005);
-                PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
-                BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
-                BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in))) {
-                    String userInput;
-                    out.println("unit id: 1\nunit pos: 11S MS 4859 9849");
-                    while ((userInput = stdIn.readLine()) != null) {
-                        out.println(userInput);
-                        System.out.println("from client: " + in.readLine());
-                    }
-        } catch (UnknownHostException e) {
-            System.err.println("Don't know about host " + hostName);
-            System.exit(1);
-        } catch (IOException e) {
-            System.err.println("Couldn't get I/O for the connection to " + hostName);
-            System.exit(1);
-        }
-    }
+//package PositionClient;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.Socket;
+import java.net.UnknownHostException;
+
+/**
+ *
+ * @author AJSNELL
+ */
+public class SnellPositionClient {
+    /**
+     * @param args command-line arguments, must include hostname
+     */
+    public static void main(String[] args)
+    {
+        String hostName = args[0]; // poor practice, ought to throw meaningful exception message
+        try (Socket clientSocket = new Socket(hostName, 8005);
+                PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
+                BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
+                BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in))) {
+                    String userInput;
+                    out.println("unit id: 1\nunit pos: 11S MS 4859 9849");
+                    while ((userInput = stdIn.readLine()) != null) {
+                        out.println(userInput);
+                        System.out.println("from client: " + in.readLine());
+                    }
+        } catch (UnknownHostException e) {
+            System.err.println("Don't know about host " + hostName);
+            System.exit(1);
+        } catch (IOException e) {
+            System.err.println("Couldn't get I/O for the connection to " + hostName);
+            System.exit(1);
+        }
+    }
 }
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionServer.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionServer.java
index ed6c9b389b538b58a21d68dfdbaed585106b7501..39a6259fb519dd4dbf08b03c2d8433a3a3af178d 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionServer.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/SnellPositionServer.java
@@ -1,32 +1,32 @@
 package MV3500Cohort2018JanuaryMarch.homework1;
 
-//package positionserver;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.io.PrintWriter;
-
-public class SnellPositionServer {
-    /**
-     * @param args command-line arguments
-     * @throws java.io.IOException
-     */
-    public static void main(String[] args) throws IOException {
-        try (ServerSocket serverSocket = new ServerSocket(8005);
-                Socket clientSocket = serverSocket.accept();
-                PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
-                BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));) {
-            System.out.println("Client connected on port 8005");
-            String inputLine;
-            while ((inputLine = in.readLine()) != null) {
-                System.out.println("Received message: " + inputLine + " from " + clientSocket.toString());
-                out.println(inputLine);
-            }
-        } catch (IOException e) {
-            System.out.println("Exception when trying to listen on port 8005");
-        }
-    }
+//package positionserver;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.io.PrintWriter;
+
+public class SnellPositionServer {
+    /**
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {
+        try (ServerSocket serverSocket = new ServerSocket(8005);
+                Socket clientSocket = serverSocket.accept();
+                PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
+                BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));) {
+            System.out.println("Client connected on port 8005");
+            String inputLine;
+            while ((inputLine = in.readLine()) != null) {
+                System.out.println("Received message: " + inputLine + " from " + clientSocket.toString());
+                out.println(inputLine);
+            }
+        } catch (IOException e) {
+            System.out.println("Exception when trying to listen on port 8005");
+        }
+    }
 }
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpClient.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpClient.java
index 088ed611314aceca9e8d17e0df7da4dc00d56783..4cd6cc2e8d7cba39634e6d99520d801ecc2e9410 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpClient.java
@@ -16,11 +16,14 @@ import java.net.*;
  *
  * @author mcgredo
  */
-public class TackettTcpClient {
-
+public class TackettTcpClient 
+{
+    /** socket parameter of interest */
     public final static String LOCALHOST = "localhost";
     //String can also be IPV4 127.0.0.1 or IPV6 0:0:0:0:0:0:0:1
 
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) {
         
         try {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpServer.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpServer.java
index edb1f40ca73a9bd6503caaeb32514b6a7018f8a3..d1f484b63ff3a293fdd2d8f4579895c421135fc7 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/TackettTcpServer.java
@@ -27,7 +27,8 @@ import java.net.*;
  */
 public class TackettTcpServer 
 {
-
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpClient.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpClient.java
index 0e58f3dd9ab4c4e7cc3ca73cf103bd79cad6d4d1..bf8eb6d969a42286b651ddf82b200bb637695eda 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpClient.java
@@ -13,8 +13,10 @@ import java.net.*;
  * @version 20180212
  * 
  */
-public class YamashitaDeMouraTcpClient {
-  
+public class YamashitaDeMouraTcpClient
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpServer.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpServer.java
index d2c7a701f461528ea059c7d9757f31d7faee5526..38061bcc63984ffda7be5c235e3f4d2932f58d39 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/YamashitaDeMouraTcpServer.java
@@ -17,7 +17,8 @@ import java.net.*;
  */
 public class YamashitaDeMouraTcpServer 
 {
-
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/package-info.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b60247d178c4dd4e660dd8dfd9cc1b79b620256
--- /dev/null
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework1/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2018JanuaryMarch.homework1;
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastReceiver.java
index 7fdaf94ecca0a3578b9ca3bdda4727bb908288a6..ea1378056c80ac8de37edaeaa9c609b21bdf24ac 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastReceiver.java
@@ -12,11 +12,15 @@ import java.net.*;
  */
 public class AngelMulticastReceiver {
 
+    /** socket value of shared interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
     
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastSenderExample.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastSenderExample.java
index bcb08fbe28d9248d8a4e6825353f30a6097ec042..e52746069583323bb9edbf616d15f0e6f13612d9 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastSenderExample.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/AngelMulticastSenderExample.java
@@ -14,11 +14,15 @@ import java.util.Random;
  */
 public class AngelMulticastSenderExample {
 
+    /** socket value of shared interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
     
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastReceiver.java
index d7e9a8945f00a0b9eae2aaa9f842fb657245d5c8..712001aa2fbfa50eefe6abe4674a2300dc0062ef 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastReceiver.java
@@ -1,73 +1,77 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.net.DatagramPacket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-
-/**
- *
- * @author Michael
- */
-public class BlankenbekerMulticastReceiver {
-
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-    
-    public static void main(String[] args) 
-    {
-        try
-        {
-        
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            int count = 0;
-            
-            while(true)
-            {
-                byte[] packetArray = new byte[1500];
-                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
-                
-                multicastSocket.receive(packet);
-                count++;
-                
-                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
-                DataInputStream dis = new DataInputStream(bais);
-                float firstNumber = dis.readFloat();
-                float secondNumber = dis.readFloat();
-                float thirdNumber = dis.readFloat();
-                
-                System.out.println("Number received: " + count + " Vehicle position is: (" + firstNumber + ", " + secondNumber+", "+thirdNumber+")");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-    
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+/**
+ *
+ * @author Michael
+ */
+public class BlankenbekerMulticastReceiver {
+
+    /** socket value of shared interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+        
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            int count = 0;
+            
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                
+                multicastSocket.receive(packet);
+                count++;
+                
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                float firstNumber = dis.readFloat();
+                float secondNumber = dis.readFloat();
+                float thirdNumber = dis.readFloat();
+                
+                System.out.println("Number received: " + count + " Vehicle position is: (" + firstNumber + ", " + secondNumber+", "+thirdNumber+")");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastSender.java
index c19bf55e3f92ca174c237408a716062436587c0d..304d603414cccbccd1b01e06d56de814b50c87f4 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerMulticastSender.java
@@ -1,94 +1,98 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.net.DatagramPacket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-
-/**
- *
- * @author Michael
- */
-public class BlankenbekerMulticastSender {
-
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-   
-    public static void main(String[] args) 
-    {
-         BlankenbekerTruck truck = new BlankenbekerTruck();
-        while (true) {
-            truck.move();
-        try
-        {
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-           
-            
-        
-            MulticastSocket multicastSocket = new MulticastSocket(1718);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            // Put together a message with binary content. "ByteArrayOutputStream"
-            // is a java.io utility that lets us put together an array of binary
-            // data, which we put into the UDP packet.
-            
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            DataOutputStream dos = new DataOutputStream(baos);
-            float x = truck.getX();
-            float y = truck.getY();
-            float z = truck.getZ();
-            
-            dos.writeFloat(x);
-            dos.writeFloat(y);
-            dos.writeFloat(z);
-            
-            byte[] buffer = baos.toByteArray();
-            
-            // Put together a packet to send
-            
-            // muticast group we are sending to--not a single host
-            
-            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
-       
-            // How fast does this go? Does UDP try to slow it down, or does
-            // this cause network problems? (hint: yes for an unlimited send
-            // rate, unlike TCP). How do you know on the receiving side
-            // that you haven't received a duplicate UDP packet, out of
-            // order packet, or dropped packet?
-            
-            for(int idx = 0; idx < 1; idx++)
-            {
-               
-               multicastSocket.send(packet);
-               Thread.sleep(1000); // Send 100, one per second
-               System.out.println("Sent new multicast packet 1 of 1");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-    
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+/**
+ *
+ * @author Michael
+ */
+public class BlankenbekerMulticastSender {
+
+    /** socket value of shared interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+   
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+         BlankenbekerTruck truck = new BlankenbekerTruck();
+        while (true) {
+            truck.move();
+        try
+        {
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+           
+            
+        
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            // Put together a message with binary content. "ByteArrayOutputStream"
+            // is a java.io utility that lets us put together an array of binary
+            // data, which we put into the UDP packet.
+            
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            DataOutputStream dos = new DataOutputStream(baos);
+            float x = truck.getX();
+            float y = truck.getY();
+            float z = truck.getZ();
+            
+            dos.writeFloat(x);
+            dos.writeFloat(y);
+            dos.writeFloat(z);
+            
+            byte[] buffer = baos.toByteArray();
+            
+            // Put together a packet to send
+            
+            // muticast group we are sending to--not a single host
+            
+            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+       
+            // How fast does this go? Does UDP try to slow it down, or does
+            // this cause network problems? (hint: yes for an unlimited send
+            // rate, unlike TCP). How do you know on the receiving side
+            // that you haven't received a duplicate UDP packet, out of
+            // order packet, or dropped packet?
+            
+            for(int idx = 0; idx < 1; idx++)
+            {
+               
+               multicastSocket.send(packet);
+               Thread.sleep(1000); // Send 100, one per second
+               System.out.println("Sent new multicast packet 1 of 1");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+    
+}
 }
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerTruck.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerTruck.java
index 59f0a08ba19334a70651694fb626a5924716d1e6..3b4d93dfb28b2ee7e30fac07049466838340d1e4 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerTruck.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/BlankenbekerTruck.java
@@ -1,46 +1,54 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-//package mv3500code;
-
-/**
- *
- * @author Michael
- */
-public class BlankenbekerTruck {
-    private float x;
-    private float y;
-    private float z;
-    
-    public BlankenbekerTruck(){
-        x = 0;
-        y=0;
-        z=0;
-    }
-    
-    public void move(){
-        x+=1.5;
-        y+=1.2;
-        z-=.2;
-}
-    /**
-     *
-     * @return
-     */
-    public float getX(){
-        return x;
-    }
-    
-    public float getY(){
-        return y;
-    }
-    
-    public float getZ(){
-        return z;
-    }
-}
-
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+//package mv3500code;
+
+/**
+ *
+ * @author Michael
+ */
+public class BlankenbekerTruck {
+    private float x;
+    private float y;
+    private float z;
+    
+    public BlankenbekerTruck(){
+        x = 0;
+        y=0;
+        z=0;
+    }
+    
+    public void move(){
+        x+=1.5;
+        y+=1.2;
+        z-=.2;
+}
+    /**
+     *
+     * @return X value
+     */
+    public float getX(){
+        return x;
+    }
+    
+    /**
+     *
+     * @return Y value
+     */
+    public float getY(){
+        return y;
+    }
+    
+    /**
+     *
+     * @return Z value
+     */
+    public float getZ(){
+        return z;
+    }
+}
+
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastReceiver.java
index e02345c08f84d0be8d352c90be4dc2e019b34f06..5bcae090dd97e83a17c0bcd82194de23fd91d1b2 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastReceiver.java
@@ -12,12 +12,20 @@ import java.net.UnknownHostException;
  *
  * @author emilyconard
  */
-public class ConardMulticastReceiver {
+public class ConardMulticastReceiver 
+{
+    /** socket value of shared interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastSender.java
index 108b25449ed8af73af3ed61fe47b51f7f6eb839b..aa0e0e604bcc486605ad45c58740a49b05d9f7cf 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/ConardMulticastSender.java
@@ -15,11 +15,17 @@ import java.net.MulticastSocket;
  */
 public class ConardMulticastSender {
 
+    /** socket value of shared interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWreceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWreceiver.java
index ad417acfd360b933532a3870ee9c5e3af001c22d..ee217bc699a0391a81ed90b72743eb672a50a81a 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWreceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWreceiver.java
@@ -1,65 +1,70 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/**
- * This assignment uses the code from MV3500 example "multicastExample1"  
- * modifications were made to way the packet is read to facilitate the double  
- * instead of the float.
- * 
- * @author Brian
- */
-import java.io.*;
-import java.net.*;
-
-
-public class HanleyMulticastHWreceiver {
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-    
-    public static void main(String[] args) 
-    {
-        try
-        {
-        
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            int count = 0;
-            
-            while(true)
-            {
-                byte[] packetArray = new byte[1500];
-                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
-                
-                multicastSocket.receive(packet);
-                count++;
-                
-                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
-                DataInputStream dis = new DataInputStream(bais);
-                double firstNumber = dis.readDouble();
-                double secondNumber = dis.readDouble();
-                
-                System.out.println("Number received: " + count + " X Pos: " + firstNumber + " Y Pos: " + secondNumber);
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-    
-}
+/**
+ * This assignment uses the code from MV3500 example "multicastExample1"  
+ * modifications were made to way the packet is read to facilitate the double  
+ * instead of the float.
+ * 
+ * @author Brian
+ */
+import java.io.*;
+import java.net.*;
+
+
+public class HanleyMulticastHWreceiver 
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+        
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            int count = 0;
+            
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                
+                multicastSocket.receive(packet);
+                count++;
+                
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                double firstNumber = dis.readDouble();
+                double secondNumber = dis.readDouble();
+                
+                System.out.println("Number received: " + count + " X Pos: " + firstNumber + " Y Pos: " + secondNumber);
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWsender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWsender.java
index fbd8b1b3bc3f11a9de90f03d18a83fe51b49ada5..96338d3ee5ab025f2d2102a153ab11a8f6089fcf 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWsender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/HanleyMulticastHWsender.java
@@ -1,87 +1,91 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/**
- * This assignment uses the code from MV3500 example "multicastExample1"  
- * modifications were made to the packet creation and where the packet is 
- * assembled.
- * 
- * @author Brian
- */
-
-
-import java.io.*;
-import java.net.*;
-
-
-public class HanleyMulticastHWsender {
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10;
-    private int velocity;
-    private float xPos;
-    private float yPos;
-    
-    
-    public static void main(String[] args) 
-    {
-        int velocity = 2;
-        int dir = 45;
-        double xPos = 0;
-        double yPos = 2;
-              
-        
-        try
-        {
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(1718);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-       
-            // How fast does this go? Does UDP try to slow it down, or does
-            // this cause network problems? (hint: yes for an unlimited send
-            // rate, unlike TCP). How do you know on the receiving side
-            // that you haven't received a duplicate UDP packet, out of
-            // order packet, or dropped packet?
-            
-            for(int idx = 0; idx < 100; idx++)
-            {
-                
-                xPos = xPos + (Math.cos(Math.toRadians(dir))*velocity); //computes the horixontal displacement for each movement based on velocity - this is a fixed velocity and time increment
-                yPos = yPos + (Math.sin(Math.toRadians(dir))*velocity); //computes the vertical displacement for each movement based on velocity - this is a fixed velocity and time increment
-                
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                DataOutputStream dos = new DataOutputStream(baos);
-                dos.writeDouble(xPos);
-                dos.writeDouble(yPos);
-                
-                
-                byte[] buffer = baos.toByteArray();
-                
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
-                
-               multicastSocket.send(packet);
-               baos.reset();
-               Thread.sleep(1000); // Send 100, one per second
-               System.out.println("Sent multicast packet " + idx + " of 100");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-    
-}
+/**
+ * This assignment uses the code from MV3500 example "multicastExample1"  
+ * modifications were made to the packet creation and where the packet is 
+ * assembled.
+ * 
+ * @author Brian
+ */
+
+
+import java.io.*;
+import java.net.*;
+
+
+public class HanleyMulticastHWsender 
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10;
+    private int velocity;
+    private float xPos;
+    private float yPos;
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        int velocity = 2;
+        int dir = 45;
+        double xPos = 0;
+        double yPos = 2;
+              
+        
+        try
+        {
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+       
+            // How fast does this go? Does UDP try to slow it down, or does
+            // this cause network problems? (hint: yes for an unlimited send
+            // rate, unlike TCP). How do you know on the receiving side
+            // that you haven't received a duplicate UDP packet, out of
+            // order packet, or dropped packet?
+            
+            for(int idx = 0; idx < 100; idx++)
+            {
+                
+                xPos = xPos + (Math.cos(Math.toRadians(dir))*velocity); //computes the horixontal displacement for each movement based on velocity - this is a fixed velocity and time increment
+                yPos = yPos + (Math.sin(Math.toRadians(dir))*velocity); //computes the vertical displacement for each movement based on velocity - this is a fixed velocity and time increment
+                
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                DataOutputStream dos = new DataOutputStream(baos);
+                dos.writeDouble(xPos);
+                dos.writeDouble(yPos);
+                
+                
+                byte[] buffer = baos.toByteArray();
+                
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+                
+               multicastSocket.send(packet);
+               baos.reset();
+               Thread.sleep(1000); // Send 100, one per second
+               System.out.println("Sent multicast packet " + idx + " of 100");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver.java
index 831bb617721d791133d4c8efea06be038fae96f2..427e6912c795d019da3c25ccbc8f79a6b40eb4b6 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver.java
@@ -16,7 +16,11 @@ public class LandasMulticastReceiver {
     final static String INET_ADDR = "239.1.2.15";
     final static int PORT = 1717;
     
-    public static void main(String[] args) throws UnknownHostException {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused)
+     * @throws java.net.UnknownHostException user cancels program */
+    public static void main(String[] args) throws UnknownHostException
+    {
         // address that we are connecting to
         InetAddress address = InetAddress.getByName(INET_ADDR);
          
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver2.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver2.java
index 96c2c15178fdeb980ca311a8b79c620e859b5a12..25fcf933e7c1d4c3e669f2a4968f2b405db4ca58 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver2.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastReceiver2.java
@@ -16,6 +16,9 @@ public class LandasMulticastReceiver2 {
     final static String INET_ADDR = "239.1.2.15";
     final static int PORT = 1717;
  
+    /** run the program
+     * @param args command-line arguments, string parameters (unused)
+     * @throws java.net.UnknownHostException user cancels program */
     public static void main(String[] args) throws UnknownHostException {
         // address that we are connecting to
         InetAddress address = InetAddress.getByName(INET_ADDR);
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender.java
index 8bbcd839df39b1a49bb7d801a31ed93d75762785..260c11ee5c89634cd345fb36b36605a9457c1648 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender.java
@@ -16,6 +16,9 @@ public class LandasMulticastSender {
     final static String INET_ADDR = "239.1.2.15";
     final static int PORT = 1717;
  
+    /** run the program
+     * @param args command-line arguments, string parameters (unused)
+     * @throws java.lang.InterruptedException user cancels execution */
     public static void main(String[] args) throws UnknownHostException, InterruptedException {
         // address that we are connecting to
         InetAddress addr = InetAddress.getByName(INET_ADDR);
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender2.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender2.java
index c28b2780bc32ce617ede330fffc9bfaf25ba1ff4..1f2855a388f848e5259a7221887c54a7b366f56a 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender2.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/LandasMulticastSender2.java
@@ -16,6 +16,11 @@ public class LandasMulticastSender2 {
     final static String INET_ADDR = "239.1.2.15";
     final static int PORT = 1717;
  
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
     public static void main(String[] args) throws UnknownHostException, InterruptedException {
         // address that we are connecting to
         InetAddress addr = InetAddress.getByName(INET_ADDR);
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastReceiver.java
index 2ffaee524ec5af5ff30830661253e35f804bbe05..a07e86c945e30085a09a33c29161fb5e05222b20 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastReceiver.java
@@ -15,13 +15,17 @@ import java.awt.event.ActionListener;
  *
  * @author mcgredo
  */
-public class MaroonMulticastReceiver {
-
+public class MaroonMulticastReceiver 
+{
+    /** socket parameter of interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
       
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         JFrame guiFrame = new JFrame();
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastSenderExample.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastSenderExample.java
index e263b5750c6caacb12d85fcf45bfb40c6ce1658e..ef9c7f5f534e63af3785faaf029a45868434ae9f 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastSenderExample.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/MaroonMulticastSenderExample.java
@@ -11,13 +11,17 @@ import java.net.*;
  * 
  * @author mcgredo
  */
-public class MaroonMulticastSenderExample {
-
+public class MaroonMulticastSenderExample
+{
+    /** socket parameter of interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
     public static final int    DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; // Time to Live is decrement counter to limit scope
+    static final int TTL = 10; // Time to Live is decrement counter to limit scope
     
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastReceiver.java
index ff2e874ab5a1655b9ac057d436a6e11bbac027a7..6a58c395484894e194c734576b303957c8538274 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastReceiver.java
@@ -10,13 +10,17 @@ import java.net.*;
  *
  * @author mcgredo
  */
-public class SasalaMulticastReceiver {
-
+public class SasalaMulticastReceiver
+{
+    /** socket parameter of interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
     
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastSender.java
index fdafb40edd73b59203f4c446e2f21454aa5fbca6..10d7ecc10e02ccccec34daa4c40bf17df27443dd 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SasalaMulticastSender.java
@@ -14,11 +14,15 @@ import java.time.LocalDateTime;
  */
 public class SasalaMulticastSender {
 
+    /** socket parameter of interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
     
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastClient.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastClient.java
index 83f965569b9974cd0761c46da779294dd8437610..a0ee80be1b3324fd05856d2661692394e8781803 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastClient.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastClient.java
@@ -1,71 +1,76 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-//package HW2;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.net.DatagramPacket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-
-/**
- *
- * @author Justin Snell
- */
-public class SnellMulticastClient {
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-    
-    public static void main(String[] args) 
-    {
-        try
-        {
-        
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            int count = 0;
-            
-            while(true)
-            {
-                byte[] packetArray = new byte[1500];
-                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
-                
-                multicastSocket.receive(packet);
-                count++;
-                
-                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
-                DataInputStream dis = new DataInputStream(bais);
-                int firstNumber = dis.readInt();
-                int secondNumber = dis.readInt();
-                
-                System.out.println("Number received: " + count + " xpos:" + firstNumber + " ypos:" + secondNumber);
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-    
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+//package HW2;
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+/**
+ *
+ * @author Justin Snell
+ */
+public class SnellMulticastClient
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+        
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            int count = 0;
+            
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                
+                multicastSocket.receive(packet);
+                count++;
+                
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                int firstNumber = dis.readInt();
+                int secondNumber = dis.readInt();
+                
+                System.out.println("Number received: " + count + " xpos:" + firstNumber + " ypos:" + secondNumber);
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastServer.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastServer.java
index 5b92d0f7024a0da863b7cded38433ac184f3dd00..1c5d161ab05395aa7a463aeb89a258ca573afadd 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastServer.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/SnellMulticastServer.java
@@ -1,73 +1,78 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-//package HW2;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.net.DatagramPacket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-
-public class SnellMulticastServer {
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-    
-    public static void main(String[] args) 
-    {
-        try
-        {
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(1718);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            int xpos = 12;
-            int ypos = 15;
-            
-            // Put together a message with binary content. "ByteArrayOutputStream"
-            // is a java.io utility that lets us put together an array of binary
-            // data, which we put into the UDP packet.
-            
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            DataOutputStream dos = new DataOutputStream(baos);
-            dos.writeInt(xpos);
-            dos.writeInt(ypos);
-            byte[] buffer = baos.toByteArray();
-            
-            // Put together a packet to send
-            // muticast group we are sending to--not a single host
-            
-            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
-       
-            // How fast does this go? Does UDP try to slow it down, or does
-            // this cause network problems? (hint: yes for an unlimited send
-            // rate, unlike TCP). How do you know on the receiving side
-            // that you haven't received a duplicate UDP packet, out of
-            // order packet, or dropped packet?
-            
-            for(int idx = 0; idx < 100; idx++)
-            {
-               multicastSocket.send(packet);
-               Thread.sleep(1000); // Send 100, one per second
-               System.out.println("Sent multicast packet " + idx + " of 100");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    } 
-}
+//package HW2;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+public class SnellMulticastServer
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            int xpos = 12;
+            int ypos = 15;
+            
+            // Put together a message with binary content. "ByteArrayOutputStream"
+            // is a java.io utility that lets us put together an array of binary
+            // data, which we put into the UDP packet.
+            
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            DataOutputStream dos = new DataOutputStream(baos);
+            dos.writeInt(xpos);
+            dos.writeInt(ypos);
+            byte[] buffer = baos.toByteArray();
+            
+            // Put together a packet to send
+            // muticast group we are sending to--not a single host
+            
+            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+       
+            // How fast does this go? Does UDP try to slow it down, or does
+            // this cause network problems? (hint: yes for an unlimited send
+            // rate, unlike TCP). How do you know on the receiving side
+            // that you haven't received a duplicate UDP packet, out of
+            // order packet, or dropped packet?
+            
+            for(int idx = 0; idx < 100; idx++)
+            {
+               multicastSocket.send(packet);
+               Thread.sleep(1000); // Send 100, one per second
+               System.out.println("Sent multicast packet " + idx + " of 100");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    } 
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMultiCastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMultiCastReceiver.java
index 79ea1e5fbf4c4b8dc7f0572ad24a0d90849bb63b..8b5e59b607bd644912fa4bfbc5f3fb36f3c05e11 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMultiCastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMultiCastReceiver.java
@@ -1,65 +1,70 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/**
- * This assignment uses the code from MV3500 example "multicastExample1"  
- * modifications were made to way the packet is read to facilitate the double  
- * instead of the float.
- * 
- * @author codyt
- */
-import java.io.*;
-import java.net.*;
-
-
-public class TackettMultiCastReceiver {
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-    
-    public static void main(String[] args) 
-    {
-        try
-        {
-        
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            int count = 0;
-            
-            while(true)
-            {
-                byte[] packetArray = new byte[1500];
-                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
-                
-                multicastSocket.receive(packet);
-                count++;
-                
-                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
-                DataInputStream dis = new DataInputStream(bais);
-                double firstNumber = dis.readDouble();
-                double secondNumber = dis.readDouble();
-                
-                System.out.println("Number received: " + count + " X Pos: " + firstNumber + " Y Pos: " + secondNumber);
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-    
-}
+/**
+ * This assignment uses the code from MV3500 example "multicastExample1"  
+ * modifications were made to way the packet is read to facilitate the double  
+ * instead of the float.
+ * 
+ * @author codyt
+ */
+import java.io.*;
+import java.net.*;
+
+
+public class TackettMultiCastReceiver
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+        
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            int count = 0;
+            
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                
+                multicastSocket.receive(packet);
+                count++;
+                
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                double firstNumber = dis.readDouble();
+                double secondNumber = dis.readDouble();
+                
+                System.out.println("Number received: " + count + " X Pos: " + firstNumber + " Y Pos: " + secondNumber);
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMulticastSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMulticastSender.java
index 98e89d497eb4ff36d5a11b51ceb3df3c5cd6ba54..d65093eb5bbe547acd657b0df34db8e34c509dcd 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMulticastSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/TackettMulticastSender.java
@@ -1,87 +1,93 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-/**
- * This assignment uses the code from MV3500 example "multicastExample1"  
- * modifications were made to the packet creation and where the packet is 
- * assembled.
- * 
- * @author Brian
- */
-
-
-import java.io.*;
-import java.net.*;
-
-
-public class TackettMulticastSender {
-    public static final String MULTICAST_ADDRESS = "172.20.144.145";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10;
-    private int velocity;
-    private float xPos;
-    private float yPos;
-    
-    
-    public static void main(String[] args) 
-    {
-        int velocity = 3;
-        int direction = 180;
-        double xPos = 0;
-        double yPos = 2;
-              
-        
-        try
-        {
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(1718);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-       
-            // How fast does this go? Does UDP try to slow it down, or does
-            // this cause network problems? (hint: yes for an unlimited send
-            // rate, unlike TCP). How do you know on the receiving side
-            // that you haven't received a duplicate UDP packet, out of
-            // order packet, or dropped packet?
-            
-            for(int idx = 0; idx < 100; idx++)
-            {
-                
-                xPos = xPos + (Math.cos(Math.toRadians(direction))*velocity); //computes the horixontal displacement for each movement based on velocity - this is a fixed velocity and time increment
-                yPos = yPos + (Math.sin(Math.toRadians(direction))*velocity); //computes the vertical displacement for each movement based on velocity - this is a fixed velocity and time increment
-                
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                DataOutputStream dos = new DataOutputStream(baos);
-                dos.writeDouble(xPos);
-                dos.writeDouble(yPos);
-                
-                
-                byte[] buffer = baos.toByteArray();
-                
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
-                
-               multicastSocket.send(packet);
-               baos.reset();
-               Thread.sleep(1000); // Send 100, one per second
-               System.out.println("Sent multicast packet " + idx + " of 100");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-    
-}
+/**
+ * This assignment uses the code from MV3500 example "multicastExample1"  
+ * modifications were made to the packet creation and where the packet is 
+ * assembled.
+ * 
+ * @author Brian
+ */
+
+
+import java.io.*;
+import java.net.*;
+
+
+public class TackettMulticastSender
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "172.20.144.145";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10;
+    private int velocity;
+    private float xPos;
+    private float yPos;
+    
+    /** 
+     * Program execution commences here
+     * @param args Command-line arguments (unused)
+     */
+    public static void main(String[] args) 
+    {
+        int velocity = 3;
+        int direction = 180;
+        double xPos = 0;
+        double yPos = 2;
+              
+        
+        try
+        {
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+       
+            // How fast does this go? Does UDP try to slow it down, or does
+            // this cause network problems? (hint: yes for an unlimited send
+            // rate, unlike TCP). How do you know on the receiving side
+            // that you haven't received a duplicate UDP packet, out of
+            // order packet, or dropped packet?
+            
+            for(int idx = 0; idx < 100; idx++)
+            {
+                
+                xPos = xPos + (Math.cos(Math.toRadians(direction))*velocity); //computes the horixontal displacement for each movement based on velocity - this is a fixed velocity and time increment
+                yPos = yPos + (Math.sin(Math.toRadians(direction))*velocity); //computes the vertical displacement for each movement based on velocity - this is a fixed velocity and time increment
+                
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                DataOutputStream dos = new DataOutputStream(baos);
+                dos.writeDouble(xPos);
+                dos.writeDouble(yPos);
+                
+                
+                byte[] buffer = baos.toByteArray();
+                
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+                
+               multicastSocket.send(packet);
+               baos.reset();
+               Thread.sleep(1000); // Send 100, one per second
+               System.out.println("Sent multicast packet " + idx + " of 100");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastReceiver.java
index 071fd2d9383c9dcf27dff2235550ef6a217ba9d7..2c5a025bd0b39456376e3cd780186886c06ba9ba 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastReceiver.java
@@ -1,79 +1,85 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-
-import java.io.*;
-import java.net.*;
-import java.util.Random;
-
-/**
- * MV3500
- * 
- * Multicast Receiver
- * 
- * @author Douglas Yamashita de Moura
- * @version 20180227
- * 
- */
-public class YamashitaDeMouraMulticastReceiver {
-    
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    public static final int TTL = 10; 
-    
-    public static void main(String[] args) 
-    {
-        try
-        {
-            System.setProperty("java.net.preferIPv4Stack", "true");            
-            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            multicastSocket.joinGroup(multicastAddress);
-            int count = 0;
-            
-            int randomReceiver = new Random().nextInt(100);
-            System.out.println("=== MULTICAST RECEIVER " + randomReceiver + " ===");
-            
-            while(true)
-            {
-                byte[] packetArray = new byte[1500];
-                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
-                multicastSocket.receive(packet);                
-                count++;
-                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
-                DataInputStream dis = new DataInputStream(bais);
-                char entity = dis.readChar();
-                String name = "";
-                int nameLength = 0;
-                switch(entity) {
-                    case 'A':
-                        nameLength = 4;
-                        name = "A";
-                        break;
-                    case 'B':
-                        nameLength = 4;
-                        name = "B";
-                        break;
-                }
-                
-                // Read name
-                for (int i = 0; i < nameLength; i++) {
-                    name += dis.readChar();
-                }
-                
-                // Read Position
-                float xPos = dis.readFloat();
-                float yPos = dis.readFloat();
-                float zPos = dis.readFloat();
-                System.out.println("Entity '" + name + "' with position (" + xPos +
-                                ", " + yPos + ", " + zPos +").");      
-                System.out.println("Number received: " + count);
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-}
+
+import java.io.*;
+import java.net.*;
+import java.util.Random;
+
+/**
+ * MV3500
+ * 
+ * Multicast Receiver
+ * 
+ * @author Douglas Yamashita de Moura
+ * @version 20180227
+ * 
+ */
+public class YamashitaDeMouraMulticastReceiver {
+    
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    static final int TTL = 10; 
+    
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.setProperty("java.net.preferIPv4Stack", "true");            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            multicastSocket.joinGroup(multicastAddress);
+            int count = 0;
+            
+            int randomReceiver = new Random().nextInt(100);
+            System.out.println("=== MULTICAST RECEIVER " + randomReceiver + " ===");
+            
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                multicastSocket.receive(packet);                
+                count++;
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                char entity = dis.readChar();
+                String name = "";
+                int nameLength = 0;
+                switch(entity) {
+                    case 'A':
+                        nameLength = 4;
+                        name = "A";
+                        break;
+                    case 'B':
+                        nameLength = 4;
+                        name = "B";
+                        break;
+                }
+                
+                // Read name
+                for (int i = 0; i < nameLength; i++) {
+                    name += dis.readChar();
+                }
+                
+                // Read Position
+                float xPos = dis.readFloat();
+                float yPos = dis.readFloat();
+                float zPos = dis.readFloat();
+                System.out.println("Entity '" + name + "' with position (" + xPos +
+                                ", " + yPos + ", " + zPos +").");      
+                System.out.println("Number received: " + count);
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastSender.java
index f61601a21da2ac2649bd5bae43703881abfc1e1f..2d88a602638a664950faba1efbb0e1b7fe2a5387 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/YamashitaDeMouraMulticastSender.java
@@ -1,87 +1,91 @@
 package MV3500Cohort2018JanuaryMarch.homework2;
 
-
-import java.io.*;
-import java.net.*;
-import java.util.Random;
-
-/**
- * MV3500
- * 
- * Multicast Sender
- * 
- * @author Douglas Yamashita de Moura
- * @version 20180227
- * 
- */
-public class YamashitaDeMouraMulticastSender {
-    
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    public static final int TTL = 10;
-    
-    
-    public static void main(String[] args) 
-    {
-        YamashitaDeMouraMulticastEntity entityA = new YamashitaDeMouraMulticastEntity("Alpha", 0, 0, 0, 2);
-        YamashitaDeMouraMulticastEntity entityB = new YamashitaDeMouraMulticastEntity("Bravo", 0, 0, 0, 3);
-       
-        try
-        {
-            System.setProperty("java.net.preferIPv4Stack", "true");
-                        
-            MulticastSocket multicastSocket = new MulticastSocket(1718);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            multicastSocket.joinGroup(multicastAddress);
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            DataOutputStream dos = new DataOutputStream(baos);           
-            
-            Random randomProb = new Random();
-            
-            System.out.println("=== MULTICAST SENDER ===");
-            
-            for(int idx = 1; idx < 100; idx++)
-            {
-                int prob = randomProb.nextInt(5);
-                
-                if(prob < 2) {
-                    dos.writeChars(entityA.getName());
-                    // Move only in x direction
-                    float newPos = entityA.getX()+entityA.getVelocity();
-                    entityA.setX(newPos);
-                    dos.writeFloat(entityA.getX());
-                    dos.writeFloat(entityA.getY());
-                    dos.writeFloat(entityA.getZ());
-                    System.out.println("Entity '" + entityA.getName() +
-                            "' with position (" + entityA.getX() + ", " +
-                            entityA.getY() + ", " + entityA.getZ() + ")");
-                } else if (prob < 5) {
-                    dos.writeChars(entityB.getName());
-                    dos.writeFloat(entityB.getX());
-                    // Move only in y direction
-                    float newPos = entityB.getY()+entityB.getVelocity();
-                    entityB.setY(newPos);
-                    dos.writeFloat(entityB.getY());
-                    dos.writeFloat(entityB.getZ());
-                    System.out.println("Entity '" + entityB.getName() +
-                            "' with position (" + entityB.getX() + ", " +
-                            entityB.getY() + ", " + entityB.getZ() + ")");
-                }
-                
-                byte[] buffer = baos.toByteArray();
-            
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);                
-                multicastSocket.send(packet);
-                baos.reset();
-                Thread.sleep(1000); // Send 100, one per second
-                System.out.println("Sent multicast packet " + idx + " of 100");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-}
+
+import java.io.*;
+import java.net.*;
+import java.util.Random;
+
+/**
+ * MV3500
+ * 
+ * Multicast Sender
+ * 
+ * @author Douglas Yamashita de Moura
+ * @version 20180227
+ * 
+ */
+public class YamashitaDeMouraMulticastSender
+{    
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    static final int TTL = 10;
+    
+    
+    /** Program invocation, execution starts here
+     * @param args command-line arguments  */
+    public static void main(String[] args) 
+    {
+        YamashitaDeMouraMulticastEntity entityA = new YamashitaDeMouraMulticastEntity("Alpha", 0, 0, 0, 2);
+        YamashitaDeMouraMulticastEntity entityB = new YamashitaDeMouraMulticastEntity("Bravo", 0, 0, 0, 3);
+       
+        try
+        {
+            System.setProperty("java.net.preferIPv4Stack", "true");
+                        
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            multicastSocket.joinGroup(multicastAddress);
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            DataOutputStream dos = new DataOutputStream(baos);           
+            
+            Random randomProb = new Random();
+            
+            System.out.println("=== MULTICAST SENDER ===");
+            
+            for(int idx = 1; idx < 100; idx++)
+            {
+                int prob = randomProb.nextInt(5);
+                
+                if(prob < 2) {
+                    dos.writeChars(entityA.getName());
+                    // Move only in x direction
+                    float newPos = entityA.getX()+entityA.getVelocity();
+                    entityA.setX(newPos);
+                    dos.writeFloat(entityA.getX());
+                    dos.writeFloat(entityA.getY());
+                    dos.writeFloat(entityA.getZ());
+                    System.out.println("Entity '" + entityA.getName() +
+                            "' with position (" + entityA.getX() + ", " +
+                            entityA.getY() + ", " + entityA.getZ() + ")");
+                } else if (prob < 5) {
+                    dos.writeChars(entityB.getName());
+                    dos.writeFloat(entityB.getX());
+                    // Move only in y direction
+                    float newPos = entityB.getY()+entityB.getVelocity();
+                    entityB.setY(newPos);
+                    dos.writeFloat(entityB.getY());
+                    dos.writeFloat(entityB.getZ());
+                    System.out.println("Entity '" + entityB.getName() +
+                            "' with position (" + entityB.getX() + ", " +
+                            entityB.getY() + ", " + entityB.getZ() + ")");
+                }
+                
+                byte[] buffer = baos.toByteArray();
+            
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);                
+                multicastSocket.send(packet);
+                baos.reset();
+                Thread.sleep(1000); // Send 100, one per second
+                System.out.println("Sent multicast packet " + idx + " of 100");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/package-info.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..85c7b05b69f9d6d633fff6f2c91a85534d663005
--- /dev/null
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework2/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2018JanuaryMarch.homework2;
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Angel_OpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Angel_OpenDisEspduSender.java
index 674acbcea5fbc1afb5e2d12a775876fde97a0bf3..0389944666a6f46ebbc1805990d5730cdb3ad077 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Angel_OpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Angel_OpenDisEspduSender.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class Angel_OpenDisEspduSender 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/BlankenbekerOpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/BlankenbekerOpenDisEspduSender.java
index cfab01793ab677ba867de7b7322a34b7d766bf53..824ed6224705ba1172a1cd28f7cc6a055ad11fd0 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/BlankenbekerOpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/BlankenbekerOpenDisEspduSender.java
@@ -18,7 +18,7 @@ import edu.nps.moves.disutil.DisTime;
 public class BlankenbekerOpenDisEspduSender 
 {
     
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/ConardSnellOpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/ConardSnellOpenDisEspduSender.java
index e5919470b2d09b6e54436817fa7b751dc436f2a5..da85db1aad685b67c4d3c6add3c1f38bdf2f65a0 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/ConardSnellOpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/ConardSnellOpenDisEspduSender.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class ConardSnellOpenDisEspduSender 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/EspduReceiver.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/EspduReceiver.java
index 718c23fc4be3b96a93c2469e1d215d7a3074a192..6454420a8f7f66db931703c9f43c0687ca8c518e 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/EspduReceiver.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/EspduReceiver.java
@@ -20,6 +20,8 @@ public class EspduReceiver {
      */
     public static final int MAX_PDU_SIZE = 8192;
 
+    /** Program invocation, execution starts here
+     * @param args command-line arguments  */
     public static void main(String args[]) {
         MulticastSocket socket;
         DatagramPacket packet;
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Hanley_OpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Hanley_OpenDisEspduSender.java
index 0857a42f7ba7283d360e006384cd2816376fcb2f..957249a3fbda4e51f7fde783accba19476622dd8 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Hanley_OpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Hanley_OpenDisEspduSender.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class Hanley_OpenDisEspduSender 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Landas_OpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Landas_OpenDisEspduSender.java
index 5235b1563a73c7b53051e808f8d7b8ae6a190693..74f507eaa87b49c665f63281811ab8fdd771d7c3 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Landas_OpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Landas_OpenDisEspduSender.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class Landas_OpenDisEspduSender 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisEspduSender.java
index 1f808475bc2985981ba3c41bcffc4e866e12d071..de4f3198812cdeb75c811deb006d4f4f9a64d783 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisEspduSender.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class OpenDisEspduSender 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisPduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisPduSender.java
index a592ad4d1e3e05ca14b3ec87e4ea35cf05f2bbec..94572a82958458a6fbe769f96b13cf34d1285207 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisPduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/OpenDisPduSender.java
@@ -1,184 +1,190 @@
 package MV3500Cohort2018JanuaryMarch.homework3;
 
-// package edu.nps.moves.examples; // copy example from OpenDIS distribution, modify to serve as template
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import edu.nps.moves.disenum.*;
-
-/**
- * This is an example that sends many/most types of PDUs. Useful for testing standards
- * compliance or getting a full set of PDUs. It also writes the generated PDUs to
- * an XML file.
- *
- * @author DMcG
- * @version $Id:$
- */
-public class OpenDisPduSender {
-
-    public static final int    PORT = 3000;
-    public static final String MULTICAST_ADDRESS = "239.1.2.3";
-    private int port;
-    InetAddress multicastAddress;
-
-    public OpenDisPduSender(int port, String multicast) 
-	{
-        try {
-            this.port = port;
-            multicastAddress = InetAddress.getByName(multicast);
-            if (!multicastAddress.isMulticastAddress()) {
-                System.out.println("Not a multicast address: " + multicast);
-            }
-        } 
-		catch (UnknownHostException e) {
-            System.out.println("Unable to open socket: " + e);
-        }
-    }
-
-    public void run() {
-        try {
-            List<Pdu> generatedPdus = new ArrayList<>();
-
-            // Loop through all the enumerated PDU types, create a PDU for each type,
-            // and add that PDU to a list.
-            for (PduType pdu : PduType.values()) {
-                Pdu aPdu = null;
-
-                switch (pdu) {
-                    case ENTITY_STATE:
-                        // TODO continue to add unit tests
-						EntityStatePdu entityStatePdu = new EntityStatePdu();
-						Marking espduMarking = new Marking();
-						espduMarking.setCharactersString("Testing 123");
-						// TODO libary should warn if > 11 characters
-						entityStatePdu.setMarking(espduMarking);
-						EntityID espduEntityID = new EntityID();
-						espduEntityID.setSite(1);
-						espduEntityID.setApplication(2);
-						espduEntityID.setEntity(3);
-						entityStatePdu.setEntityID(espduEntityID);
-                        // TODO consider adding utility methods to Open-DIS
-						aPdu = entityStatePdu;
-                        break;
-                        
-                    case COMMENT:
-                        aPdu = new CommentPdu();
-                        break;
-
-                    case FIRE:
-                        aPdu = new FirePdu();
-                        break;
-
-                    case DETONATION:
-                        aPdu = new DetonationPdu();
-                        break;
-
-                    case COLLISION:
-                        aPdu = new CollisionPdu();
-                        break;
-
-                    case SERVICE_REQUEST:
-                        aPdu = new ServiceRequestPdu();
-                        break;
-
-                    case RESUPPLY_OFFER:
-                        aPdu = new ResupplyOfferPdu();
-                        break;
-
-                    case RESUPPLY_RECEIVED:
-                        aPdu = new ResupplyReceivedPdu();
-                        break;
-
-                    case RESUPPLY_CANCEL:
-                        aPdu = new ResupplyCancelPdu();
-                        break;
-
-                    case REPAIR_COMPLETE:
-                        aPdu = new RepairCompletePdu();
-                        break;
-
-                    case REPAIR_RESPONSE:
-                        aPdu = new RepairResponsePdu();
-                        break;
-
-                    case CREATE_ENTITY:
-                        aPdu = new CreateEntityPdu();
-                        break;
-
-                    case REMOVE_ENTITY:
-                        aPdu = new RemoveEntityPdu();
-                        break;
-
-                    case START_RESUME:
-                        aPdu = new StartResumePdu();
-                        break;
-
-                    case STOP_FREEZE:
-                        aPdu = new StopFreezePdu();
-                        break;
-
-                    case ACKNOWLEDGE:
-                        aPdu = new AcknowledgePdu();
-                        break;
-
-                    case ACTION_REQUEST:
-                        aPdu = new ActionRequestPdu();
-                        break;
-
-                    default:
-                        System.out.print("PDU of type " + pdu + " not supported, created or sent ");
-                        System.out.println();
-                }
-
-                if (aPdu != null) {
-                    generatedPdus.add(aPdu);
-                }
-            }
-
-            // Sort the created PDUs by class name
-            Collections.sort(generatedPdus, new edu.nps.moves.examples.ClassNameComparator());
-
-            // Send the PDUs we created
-            InetAddress localMulticastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            MulticastSocket socket = new MulticastSocket(PORT);
-            socket.joinGroup(localMulticastAddress);
-
-            for (int idx = 0; idx < generatedPdus.size(); idx++) {
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                DataOutputStream dos = new DataOutputStream(baos);
-                byte[] buffer;
-
-                Pdu aPdu = generatedPdus.get(idx);
-                aPdu.marshal(dos);
-
-                buffer = baos.toByteArray();
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, PORT);
-                socket.send(packet);
-                System.out.println("Sent PDU of type " + aPdu.getClass().getName());
-            }
-
-            // write the PDUs out to an XML file.
-            //PduContainer container = new PduContainer();
-            //container.setPdus(generatedPdus);
-            //container.marshallToXml("examplePdus.xml");
-        } 
-		catch (IOException e) {
-            System.out.println(e);
-        }
-    }
-
-    public static void main(String args[]) {
-        if (args.length == 2) {
-            OpenDisPduSender sender = new  OpenDisPduSender(Integer.parseInt(args[0]), args[1]);
-            sender.run();
-        } else {
-            System.out.println("Usage:   OpenDisPduSender <port> <multicast group>");
-            System.out.println("Default: OpenDisPduSender  " + PORT + "   " + MULTICAST_ADDRESS);
-            OpenDisPduSender sender = new  OpenDisPduSender(PORT, MULTICAST_ADDRESS);
-            sender.run();
-        }
-    }
-}
+// package edu.nps.moves.examples; // copy example from OpenDIS distribution, modify to serve as template
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import edu.nps.moves.disenum.*;
+
+/**
+ * This is an example that sends many/most types of PDUs. Useful for testing standards
+ * compliance or getting a full set of PDUs. It also writes the generated PDUs to
+ * an XML file.
+ *
+ * @author DMcG
+ * @version $Id:$
+ */
+public class OpenDisPduSender
+{
+    /** socket parameter of interest */
+    public static final int    PORT = 3000;
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.3";
+    private int port;
+    InetAddress multicastAddress;
+
+    public OpenDisPduSender(int port, String multicast) 
+	{
+        try {
+            this.port = port;
+            multicastAddress = InetAddress.getByName(multicast);
+            if (!multicastAddress.isMulticastAddress()) {
+                System.out.println("Not a multicast address: " + multicast);
+            }
+        } 
+		catch (UnknownHostException e) {
+            System.out.println("Unable to open socket: " + e);
+        }
+    }
+
+    public void run() {
+        try {
+            List<Pdu> generatedPdus = new ArrayList<>();
+
+            // Loop through all the enumerated PDU types, create a PDU for each type,
+            // and add that PDU to a list.
+            for (PduType pdu : PduType.values()) {
+                Pdu aPdu = null;
+
+                switch (pdu) {
+                    case ENTITY_STATE:
+                        // TODO continue to add unit tests
+						EntityStatePdu entityStatePdu = new EntityStatePdu();
+						Marking espduMarking = new Marking();
+						espduMarking.setCharactersString("Testing 123");
+						// TODO libary should warn if > 11 characters
+						entityStatePdu.setMarking(espduMarking);
+						EntityID espduEntityID = new EntityID();
+						espduEntityID.setSite(1);
+						espduEntityID.setApplication(2);
+						espduEntityID.setEntity(3);
+						entityStatePdu.setEntityID(espduEntityID);
+                        // TODO consider adding utility methods to Open-DIS
+						aPdu = entityStatePdu;
+                        break;
+                        
+                    case COMMENT:
+                        aPdu = new CommentPdu();
+                        break;
+
+                    case FIRE:
+                        aPdu = new FirePdu();
+                        break;
+
+                    case DETONATION:
+                        aPdu = new DetonationPdu();
+                        break;
+
+                    case COLLISION:
+                        aPdu = new CollisionPdu();
+                        break;
+
+                    case SERVICE_REQUEST:
+                        aPdu = new ServiceRequestPdu();
+                        break;
+
+                    case RESUPPLY_OFFER:
+                        aPdu = new ResupplyOfferPdu();
+                        break;
+
+                    case RESUPPLY_RECEIVED:
+                        aPdu = new ResupplyReceivedPdu();
+                        break;
+
+                    case RESUPPLY_CANCEL:
+                        aPdu = new ResupplyCancelPdu();
+                        break;
+
+                    case REPAIR_COMPLETE:
+                        aPdu = new RepairCompletePdu();
+                        break;
+
+                    case REPAIR_RESPONSE:
+                        aPdu = new RepairResponsePdu();
+                        break;
+
+                    case CREATE_ENTITY:
+                        aPdu = new CreateEntityPdu();
+                        break;
+
+                    case REMOVE_ENTITY:
+                        aPdu = new RemoveEntityPdu();
+                        break;
+
+                    case START_RESUME:
+                        aPdu = new StartResumePdu();
+                        break;
+
+                    case STOP_FREEZE:
+                        aPdu = new StopFreezePdu();
+                        break;
+
+                    case ACKNOWLEDGE:
+                        aPdu = new AcknowledgePdu();
+                        break;
+
+                    case ACTION_REQUEST:
+                        aPdu = new ActionRequestPdu();
+                        break;
+
+                    default:
+                        System.out.print("PDU of type " + pdu + " not supported, created or sent ");
+                        System.out.println();
+                }
+
+                if (aPdu != null) {
+                    generatedPdus.add(aPdu);
+                }
+            }
+
+            // Sort the created PDUs by class name
+            Collections.sort(generatedPdus, new edu.nps.moves.examples.ClassNameComparator());
+
+            // Send the PDUs we created
+            InetAddress localMulticastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            MulticastSocket socket = new MulticastSocket(PORT);
+            socket.joinGroup(localMulticastAddress);
+
+            for (int idx = 0; idx < generatedPdus.size(); idx++) {
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                DataOutputStream dos = new DataOutputStream(baos);
+                byte[] buffer;
+
+                Pdu aPdu = generatedPdus.get(idx);
+                aPdu.marshal(dos);
+
+                buffer = baos.toByteArray();
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, PORT);
+                socket.send(packet);
+                System.out.println("Sent PDU of type " + aPdu.getClass().getName());
+            }
+
+            // write the PDUs out to an XML file.
+            //PduContainer container = new PduContainer();
+            //container.setPdus(generatedPdus);
+            //container.marshallToXml("examplePdus.xml");
+        } 
+		catch (IOException e) {
+            System.out.println(e);
+        }
+    }
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String args[]) {
+        if (args.length == 2) {
+            OpenDisPduSender sender = new  OpenDisPduSender(Integer.parseInt(args[0]), args[1]);
+            sender.run();
+        } else {
+            System.out.println("Usage:   OpenDisPduSender <port> <multicast group>");
+            System.out.println("Default: OpenDisPduSender  " + PORT + "   " + MULTICAST_ADDRESS);
+            OpenDisPduSender sender = new  OpenDisPduSender(PORT, MULTICAST_ADDRESS);
+            sender.run();
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Sasala_OpenDisEspduSender1.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Sasala_OpenDisEspduSender1.java
index c583e0f4eec158f9dfb214354df8f65255104ec2..8e69a69a5ce4e4824e699b7692162305e4ef2bba 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Sasala_OpenDisEspduSender1.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Sasala_OpenDisEspduSender1.java
@@ -16,7 +16,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class Sasala_OpenDisEspduSender1 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Tackett_Assignment3_OpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Tackett_Assignment3_OpenDisEspduSender.java
index f3a80329ee7447cbadb904b0916adc61476101f4..f0cc8cdb2524021f0f8697c8b631dfa4910601ad 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Tackett_Assignment3_OpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/Tackett_Assignment3_OpenDisEspduSender.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class Tackett_Assignment3_OpenDisEspduSender 
 {
-    public static final int NUMBER_TO_SEND = 10;
+    static final int NUMBER_TO_SEND = 10;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/YamashitaDeMouraOpenDisEspduSender.java b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/YamashitaDeMouraOpenDisEspduSender.java
index bc635f11ab087c913066097771d86ec4ed869721..f566339882114a783a33de71ed48340488e4becf 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/YamashitaDeMouraOpenDisEspduSender.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/homework3/YamashitaDeMouraOpenDisEspduSender.java
@@ -20,7 +20,7 @@ import edu.nps.moves.disutil.DisTime;
 
 public class YamashitaDeMouraOpenDisEspduSender 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverAtoTCP.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverAtoTCP.java
index d7923c9145e3c7d8611266dbe765556b066a6d73..37dca17c95f3a826dc3d9ec2f41fbde05285f802 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverAtoTCP.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverAtoTCP.java
@@ -18,12 +18,17 @@ import java.io.DataOutputStream;
  */
 public class AngelBlankEspduReceiverAtoTCP {
 
+    /** address of interest */
     public static final String TCP_DESTINATION_IP = "172.20.146.111";
-    /* @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
+    /** port of interest
+     * @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
     public static final int DIS_DESTINATION_PORT = 3000;
-    /* @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
+    /** port of interest
+     * @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
     public static final int TCP_DESTINATION_PORT = 2999;
+    /** maximum packet size */
     public static final int MAX_PDU_SIZE = 8192;
+    /** multicast group is a multicast address */
     public static final String GROUP = "239.1.2.4";
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverBtoTCP.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverBtoTCP.java
index 2581308e2dd230b8d3ba0478cb2418b779f8e19a..aba94c4e6a282bf928581cfee00488a0c7b34b34 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverBtoTCP.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduReceiverBtoTCP.java
@@ -19,16 +19,19 @@ import java.io.DataOutputStream;
  */
 public class AngelBlankEspduReceiverBtoTCP {
 
+    /** socket parameter of interest */
     public static final String TCP_DESTINATION_IP = "172.20.144.187";
+    /** socket parameter of interest */
     public static final int DIS_DESTINATION_PORT = 2800;
+    /** socket parameter of interest */
     public static final int TCP_DESTINATION_PORT = 2998;
+    /** socket parameter of interest */
     public static final int MAX_PDU_SIZE = 8192;
+    /** socket parameter of interest */
     public static final String GROUP = "239.1.2.3";
 
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
+    /** Program invocation, execution starts here
+     * @param args command-line arguments  */
     public static void main(String args[]) {
         MulticastSocket socket;
         DatagramPacket packet;
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderA.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderA.java
index 0e9f0d0772414bc8bb11e6e4c81a4fd3261faec5..1aa7b5bc2a10f8f215630eeadb701685e24b2c0b 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderA.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderA.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class AngelBlankEspduSenderA 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderB.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderB.java
index 894e04cf75d86700d9c20254eeac4f5dffdd67cb..bc080d6601cdbf0068328b4fb621e300880e5f57 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderB.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduSenderB.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class AngelBlankEspduSenderB 
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
     /** Type of network connection */
 	public enum NetworkMode {
         /** @see <a href="https://en.wikipedia.org/wiki/Unicast">https://en.wikipedia.org/wiki/Unicast</a> */
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverASenderB.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverASenderB.java
index f7e4756f1d5685458dacd6de33daefd2b94dd92e..8620080cff5fe37eb6ee83269f98d1d4c0eb505c 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverASenderB.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverASenderB.java
@@ -19,7 +19,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class AngelBlankEspduTCPReceiverASenderB
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
     /** Type of network connection */
 	public enum NetworkMode {
         /** @see <a href="https://en.wikipedia.org/wiki/Unicast">https://en.wikipedia.org/wiki/Unicast</a> */
@@ -31,7 +31,9 @@ public class AngelBlankEspduTCPReceiverASenderB
 	};
     /** default multicast group we send on */
     public static final String DEFAULT_MULTICAST_GROUP="239.1.2.3";
+    /** socket parameter of interest */
     public static final int MAX_PDU_SIZE = 8192;
+    /** socket parameter of interest */
     public static final int TCP_DESTINATION_PORT = 2999;
     /** Port we send on */
     public static final int DIS_DESTINATION_PORT = 2800;
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverBSenderA.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverBSenderA.java
index 07ae98a9fbac80a11ab6c54f9a11951a7760d6f8..e6b8b4857f7b5ebcf46217204c8da04c951e9449 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverBSenderA.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/AngelopoulosBlankenbeker/AngelBlankEspduTCPReceiverBSenderA.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.PduFactory;
  */
 public class AngelBlankEspduTCPReceiverBSenderA
 {
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
@@ -28,9 +28,11 @@ public class AngelBlankEspduTCPReceiverBSenderA
         /** @see <a href="https://en.wikipedia.org/wiki/Broadcasting_(networking)">https://en.wikipedia.org/wiki/Broadcasting_(networking)</a> */
         BROADCAST
 	};
+    /** socket parameter of interest */
     public static final int MAX_PDU_SIZE = 8192;
     /** default multicast group we send on */
     public static final String DEFAULT_MULTICAST_GROUP="239.1.2.4";
+    /** socket parameter of interest */
     public static final int TCP_DESTINATION_PORT = 2998;
     /** Port we send on */
     public static final int DIS_DESTINATION_PORT = 3000;
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/Hanley/HanleyOpenDisEspduSenderFP.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/Hanley/HanleyOpenDisEspduSenderFP.java
index 688199cd26c8a5a63524909d93e2a85ff3f9e705..7853c9271412149aea2fcc1b981d1492675e532e 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/Hanley/HanleyOpenDisEspduSenderFP.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/Hanley/HanleyOpenDisEspduSenderFP.java
@@ -26,7 +26,7 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class HanleyOpenDisEspduSenderFP 
 {
-    //public static final int NUMBER_TO_SEND = 5000;
+    //static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
diff --git a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/SasalaMaroon/CSVreaderOpenDisEspduSenderFP.java b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/SasalaMaroon/CSVreaderOpenDisEspduSenderFP.java
index 2ee59198cd39b01f18a4681efffd3920a2d2e221..64264ad0fd03c278889ba7e43d9493cac40ea211 100644
--- a/assignments/src/MV3500Cohort2018JanuaryMarch/projects/SasalaMaroon/CSVreaderOpenDisEspduSenderFP.java
+++ b/assignments/src/MV3500Cohort2018JanuaryMarch/projects/SasalaMaroon/CSVreaderOpenDisEspduSenderFP.java
@@ -32,9 +32,12 @@ import edu.nps.moves.disutil.DisTime;
  */
 public class CSVreaderOpenDisEspduSenderFP 
 {
-    //public static final int NUMBER_TO_SEND = 5000;
+    //static final int NUMBER_TO_SEND = 5000;
+    /** socket parameter of interest */
     public static final int SENDING_PORT   = 1414;
+    /** socket parameter of interest */
     public static final int RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final String DESTINATION_HOST = "localhost";
 
     /** Type of network connection */
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/AyresAssignment1.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/AyresAssignment1.java
index 5e55a3481feecc71d08120c557af75a08f711d3d..08888f83a671a09993d7f237a8f4608851d7a43f 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/AyresAssignment1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/AyresAssignment1.java
@@ -14,7 +14,8 @@ import java.net.*;
  */
 public class AyresAssignment1 
 {
-
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/CainAssignment1.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/CainAssignment1.java
index f933ce94c0f3e73295241631b2d157b47546d4a8..21268d63875bc84c7e23203632ab6807b3af28a0 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/CainAssignment1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/CainAssignment1.java
@@ -12,8 +12,10 @@ import java.net.*;
  * ask for the ip address of the server
  * <code>telnet ipOfServersLaptop 2318</code>
  */
-public class CainAssignment1 {
-
+public class CainAssignment1
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) {
         try {
             System.out.println("Hello invoker, this server process is now running"); // reporting for duty
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment1.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment1.java
index ce03b13e173058abade400180ea73435cefeddc8..2ca1e218a19507eb70f4b405ea5f336b326a23b0 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment1.java
@@ -1,53 +1,56 @@
-package MV3500Cohort2018JulySeptember.homework1;
-
-
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-/**
- *
- * @author ekdem
- */
-public class DemchkoAssignment1 {
- public static void main(String[] args) 
-    {
-        try
-        {
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex
-            // connection
-            Socket clientConnection = serverSocket.accept();
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            OutputStream os = clientConnection.getOutputStream();
-            PrintStream ps = new PrintStream(os);
-            
-                    ps.println("This client response was written by server Demchko"); // to remote client
-            System.out.println("This server response was written by server Demchko"); // to server console
-                    ps.println("HelloWorld");
-            // "flush()" in important in that it forces a write 
-            // across what is in fact a slow connection
-            ps.flush();
-            
-            clientConnection.close();
-        }
-        catch(Exception error)
-        {
-            System.out.println("Nope, try again because " + error);
-        }
-    }
-    
-}
+package MV3500Cohort2018JulySeptember.homework1;
+
+
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+/**
+ *
+ * @author ekdem
+ */
+public class DemchkoAssignment1
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex
+            // connection
+            Socket clientConnection = serverSocket.accept();
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            OutputStream os = clientConnection.getOutputStream();
+            PrintStream ps = new PrintStream(os);
+            
+                    ps.println("This client response was written by server Demchko"); // to remote client
+            System.out.println("This server response was written by server Demchko"); // to server console
+                    ps.println("HelloWorld");
+            // "flush()" in important in that it forces a write 
+            // across what is in fact a slow connection
+            ps.flush();
+            
+            clientConnection.close();
+        }
+        catch(Exception error)
+        {
+            System.out.println("Nope, try again because " + error);
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment2.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment2.java
index ab35b05bab4136bbf5f96aec558182d02b05bfef..22db49e1482ee7b9a2f60fc708e47447aac97f67 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment2.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/DemchkoAssignment2.java
@@ -1,61 +1,62 @@
-package MV3500Cohort2018JulySeptember.homework1;
-
-import java.io.*;
-import java.net.*;
-
-
-public class DemchkoAssignment2 
-{
-
-     public static void main(String[] args) throws IOException 
-    {
-        try
-        {
-       			ServerSocket[] serverSocket = new ServerSocket[9];  
-                        int connectionCount = 0;
-			int j = 0; 
-            for(int i=2317; j<9; i++){
-				serverSocket[j] = new ServerSocket(i);  
-				System.out.println("server in port  " +i +" in array position " +j);  //changed
-				j++;
-			}
-			j=0; 
-            
-            while(true)
-            {						
-				try (
-					Socket clientConnection = serverSocket[j].accept(); 
-				) 
-				{			
-					connectionCount++; 
-					
-					OutputStream os = clientConnection.getOutputStream();
-					PrintStream ps = new PrintStream(os);
-					
-					ps.println("This client response was written by server DemchkoAssignment2"); //changed
-					System.out.println("This server response was written by server DemchkoAssignment2"); //changed
-					
-					InetAddress localAddress = clientConnection.getLocalAddress();
-					InetAddress remoteAddress = clientConnection.getInetAddress();
-					
-					int localPort = clientConnection.getLocalPort();
-					int remotePort = clientConnection.getPort();
-					
-					System.out.println("The socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
-							remoteAddress.toString() + ", " + remotePort + " ))");
-					
-					System.out.println("next connection, #" + connectionCount); // report progress
-					j++;
-					
-					ps.flush();
-				} 
-            }
-       }
-        catch(Exception error)
-        {
-            System.out.println("nope, not today: " + error);
-        }
-       
-    }
-    
+package MV3500Cohort2018JulySeptember.homework1;
+
+import java.io.*;
+import java.net.*;
+
+
+public class DemchkoAssignment2 
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args)
+    {
+        try
+        {
+       			ServerSocket[] serverSocket = new ServerSocket[9];  
+                        int connectionCount = 0;
+			int j = 0; 
+            for(int i=2317; j<9; i++){
+				serverSocket[j] = new ServerSocket(i);  
+				System.out.println("server in port  " +i +" in array position " +j);  //changed
+				j++;
+			}
+			j=0; 
+            
+            while(true)
+            {						
+				try (
+					Socket clientConnection = serverSocket[j].accept(); 
+				) 
+				{			
+					connectionCount++; 
+					
+					OutputStream os = clientConnection.getOutputStream();
+					PrintStream ps = new PrintStream(os);
+					
+					ps.println("This client response was written by server DemchkoAssignment2"); //changed
+					System.out.println("This server response was written by server DemchkoAssignment2"); //changed
+					
+					InetAddress localAddress = clientConnection.getLocalAddress();
+					InetAddress remoteAddress = clientConnection.getInetAddress();
+					
+					int localPort = clientConnection.getLocalPort();
+					int remotePort = clientConnection.getPort();
+					
+					System.out.println("The socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
+							remoteAddress.toString() + ", " + remotePort + " ))");
+					
+					System.out.println("next connection, #" + connectionCount); // report progress
+					j++;
+					
+					ps.flush();
+				} 
+            }
+       }
+        catch(Exception error)
+        {
+            System.out.println("nope, not today: " + error);
+        }
+       
+    }
+    
 }
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/FriscoAssignment1.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/FriscoAssignment1.java
index 8b6f946734aeb158b4294cc2da41860fa5d3c381..496a65671e39774bbd902471195a0b0f2d57720d 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/FriscoAssignment1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/FriscoAssignment1.java
@@ -1,65 +1,66 @@
-package MV3500Cohort2018JulySeptember.homework1;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * The simplest possible TCP network program. It listens for
- * a connection, from telnet (telnet localhost 2317) or a program
- * you write, which we will do later. Right now the TcpExample simply
- * writes a string in response to a connection. 
- * 
- * Testing the running server program from telnet looks like this:
- * 
- * it154916:projects mcgredo$ telnet localhost 2317
- * Trying ::1...
- * Connected to localhost.
- * Escape character is '^]'.
- * This was written by the server
- * Connection closed by foreign host.
- * 
- * Notice that "This was written by the server" matches 
- * what is written by the code below, over the output stream.
- * 
- * After this first connection the program below drops out
- * the bottom of the program, and does not repeat itself.
- * The program exits.
- * 
- * @author mcgredo
- */
-public class FriscoAssignment1 
-{
-
-    public static void main(String[] args) 
-    {
-        try
-        {
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex
-            // connection
-            Socket clientConnection = serverSocket.accept();
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            OutputStream os = clientConnection.getOutputStream();
-            PrintStream ps = new PrintStream(os);
-            
-                    ps.println("This client response was written by server FriscoAssignment1"); // to remote client
-            System.out.println("This server response was written by server FriscoAssignment1"); // to server console
-                    ps.println("No time to say 'Hello, Goodbye' I'm late, I'm late, I'm late");
-            // "flush()" in important in that it forces a write 
-            // across what is in fact a slow connection
-            ps.flush();
-            
-            clientConnection.close();
-        }
-        catch(Exception e)
-        {
-            System.out.println("I am sorry Neo but you took the 'Red pill': " + e);
-        }
-    }
-}
+package MV3500Cohort2018JulySeptember.homework1;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * The simplest possible TCP network program. It listens for
+ * a connection, from telnet (telnet localhost 2317) or a program
+ * you write, which we will do later. Right now the TcpExample simply
+ * writes a string in response to a connection. 
+ * 
+ * Testing the running server program from telnet looks like this:
+ * 
+ * it154916:projects mcgredo$ telnet localhost 2317
+ * Trying ::1...
+ * Connected to localhost.
+ * Escape character is '^]'.
+ * This was written by the server
+ * Connection closed by foreign host.
+ * 
+ * Notice that "This was written by the server" matches 
+ * what is written by the code below, over the output stream.
+ * 
+ * After this first connection the program below drops out
+ * the bottom of the program, and does not repeat itself.
+ * The program exits.
+ * 
+ * @author mcgredo
+ */
+public class FriscoAssignment1 
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex
+            // connection
+            Socket clientConnection = serverSocket.accept();
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            OutputStream os = clientConnection.getOutputStream();
+            PrintStream ps = new PrintStream(os);
+            
+                    ps.println("This client response was written by server FriscoAssignment1"); // to remote client
+            System.out.println("This server response was written by server FriscoAssignment1"); // to server console
+                    ps.println("No time to say 'Hello, Goodbye' I'm late, I'm late, I'm late");
+            // "flush()" in important in that it forces a write 
+            // across what is in fact a slow connection
+            ps.flush();
+            
+            clientConnection.close();
+        }
+        catch(Exception e)
+        {
+            System.out.println("I am sorry Neo but you took the 'Red pill': " + e);
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment1.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment1.java
index 85a3b02d3507e7fcc050c655a478af4abf43571d..3664892714892880bb89d4e0d0ae0fcb45336723 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment1.java
@@ -29,7 +29,8 @@ import java.net.*;
  */
 public class FurrAssignment1 
 {
-
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment2.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment2.java
index f3c1ac73de0bdcb162e8b1f84950dbce6c38ef14..d6ea71015a827b2c2947a8add8a71bb6de3beb8a 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment2.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/FurrAssignment2.java
@@ -31,8 +31,9 @@ import java.net.*;
  */
 public class FurrAssignment2 
 {
-
-     public static void main(String[] args) throws IOException 
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args)
     {
         try
         {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/JacksonAssignment1.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/JacksonAssignment1.java
index 57a4e83e289186f71f6108b2d787292627a67d6f..216bfe6e7648f685b5d16752d731b64f23bd1bfa 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/JacksonAssignment1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/JacksonAssignment1.java
@@ -15,9 +15,10 @@ import java.net.Socket;
  *
  * @author John
  */
-public class JacksonAssignment1 {
-
-
+public class JacksonAssignment1
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) {
         try {
             System.out.println("Hello invoker, this server process is now running"); // reporting for duty
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/ThomersonAssignment1.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/ThomersonAssignment1.java
index ff2c35f3015511421309d4b439fabfc9e826d531..bbf7a5c0db12bee1f82e34f9a91bd9350422ba70 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework1/ThomersonAssignment1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/ThomersonAssignment1.java
@@ -47,8 +47,10 @@ import java.net.*;
  *
  * @author courtneythomerson
  */
-public class ThomersonAssignment1 {
-
+public class ThomersonAssignment1
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) {
         
         try
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework1/package-info.java b/assignments/src/MV3500Cohort2018JulySeptember/homework1/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..72ce11c8d60696ff5c1f3cc0405ffc7133ed2a2f
--- /dev/null
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework1/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2018JulySeptember.homework1;
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Ayres_Client.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Ayres_Client.java
index 4c08c937ba2fec1fb4c06545647600defec77bfa..3572ad23c457d67d6c1f01f40ec87a5dc28acbbc 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Ayres_Client.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Ayres_Client.java
@@ -19,6 +19,7 @@ import java.net.Socket;
  */
 public class Ayres_Client {
 
+    /** socket parameter of interest */
 	public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpClient.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpClient.java
index 8b18631fcd57e670e8e798f635687ced70d21744..075d9988bc5c6eef041fe4f8b237b93a9032c0b0 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpClient.java
@@ -7,8 +7,9 @@ import java.net.*;
 /**
  * credit to author mcgredo
  */
-public class CainTcpClient {
-
+public class CainTcpClient
+{
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
     
 /*
@@ -18,6 +19,8 @@ public class CainTcpClient {
 * show up on both the client and server output so the conversation between
 * both makes sense and don't have to click back and forth to understand.
 */
+    /** Program invocation, execution starts here
+     * @param args command-line arguments  */
     public static void main(String[] args) {
         try {
             while (true) {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpServer.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpServer.java
index b73b55794b8bd56b53f4b10b7a59bc71ee938981..90f979f53e9c13a38457cc8e8c3bc955e1d7954a 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/CainTcpServer.java
@@ -19,6 +19,10 @@ public class CainTcpServer
 * show up on both the client and server output so the conversation between
 * both makes sense and don't have to click back and forth to understand.
 */    
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Demchko/DemchkoClient.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Demchko/DemchkoClient.java
index ddd5065c452df26c7db11b83dbcd9855fad46e3a..e8f09c2f90c8281d9c835cd71a0b1b82f6b0563d 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Demchko/DemchkoClient.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Demchko/DemchkoClient.java
@@ -1,81 +1,82 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package MV3500Cohort2018JulySeptember.homework2.Demchko;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintStream;
-import java.net.Socket;
-import java.util.Scanner;
-
-/**
- *
- * @author ekdem
- */
-public class DemchkoClient {
-
-   public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-	public static void main(String[] args) {
-            
-		try {
-                    System.out.println("Answer this question:");
-
-			//This program establishes allows a client and server
-                        //to send messages back and forth.
-                        System.out.println("Why did the chicken cross the road?");        
-			while (true) {
-                                // We request an IP to connect to ("localhost") and
-				// port number at that IP (2317). This establishes
-				// a connection to that IP in the form of the Socket
-				// object; the server uses a ServerSocket to wait for
-				// connections.
-                                Socket socket = new Socket(LOCALHOST, 2317); // this is the local host for the socket
-				// Read the single line written by the server. We'd
-				// do things a bit differently if many lines to be read
-				// from the server, instead of one only.
-				OutputStream os = socket.getOutputStream();
-                                OutputStreamWriter osw = new OutputStreamWriter(os);
-                                BufferedWriter bw = new BufferedWriter(osw);
-                
-                                InputStream is = socket.getInputStream();
-                                InputStreamReader isr = new InputStreamReader(is);
-                                BufferedReader br = new BufferedReader(isr);
-                
-                                String inputMessage = "To get to the other side";
-                                //System.out.println("Joe says: Who's there? ");
-                                String sendMessage = inputMessage + "\n";
-                                bw.write(sendMessage);
-                                bw.flush();
-                                String input = br.readLine();
-                                System.out.println(input + "\n" + input + " no.");
-
-                //                String serverMessage = br.readLine();
-                                System.out.println("Try again." );  // + serverMessage
-
-                                String update = br.readLine();
-                               // String sendUpdate = update + "\n";
-                                System.out.println("The correct answer is to get to the other side");
-
-                                } // end while(true)
-        } catch (IOException e) {
-            System.out.println("Houston we have a problem: "); // describe what is happening
-            System.out.println(e);
-        }
-        // program exit
-        System.out.println("Demchko, out");
-    }
-
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JulySeptember.homework2.Demchko;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintStream;
+import java.net.Socket;
+import java.util.Scanner;
+
+/**
+ *
+ * @author ekdem
+ */
+public class DemchkoClient
+{
+    /** socket value of shared interest */
+   public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+	public static void main(String[] args) {
+            
+		try {
+                    System.out.println("Answer this question:");
+
+			//This program establishes allows a client and server
+                        //to send messages back and forth.
+                        System.out.println("Why did the chicken cross the road?");        
+			while (true) {
+                                // We request an IP to connect to ("localhost") and
+				// port number at that IP (2317). This establishes
+				// a connection to that IP in the form of the Socket
+				// object; the server uses a ServerSocket to wait for
+				// connections.
+                                Socket socket = new Socket(LOCALHOST, 2317); // this is the local host for the socket
+				// Read the single line written by the server. We'd
+				// do things a bit differently if many lines to be read
+				// from the server, instead of one only.
+				OutputStream os = socket.getOutputStream();
+                                OutputStreamWriter osw = new OutputStreamWriter(os);
+                                BufferedWriter bw = new BufferedWriter(osw);
+                
+                                InputStream is = socket.getInputStream();
+                                InputStreamReader isr = new InputStreamReader(is);
+                                BufferedReader br = new BufferedReader(isr);
+                
+                                String inputMessage = "To get to the other side";
+                                //System.out.println("Joe says: Who's there? ");
+                                String sendMessage = inputMessage + "\n";
+                                bw.write(sendMessage);
+                                bw.flush();
+                                String input = br.readLine();
+                                System.out.println(input + "\n" + input + " no.");
+
+                //                String serverMessage = br.readLine();
+                                System.out.println("Try again." );  // + serverMessage
+
+                                String update = br.readLine();
+                               // String sendUpdate = update + "\n";
+                                System.out.println("The correct answer is to get to the other side");
+
+                                } // end while(true)
+        } catch (IOException e) {
+            System.out.println("Houston we have a problem: "); // describe what is happening
+            System.out.println(e);
+        }
+        // program exit
+        System.out.println("Demchko, out");
+    }
+
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Frisco/FriscoAssignment2Client.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Frisco/FriscoAssignment2Client.java
index be7f2ab9e18d7f7a9590ab0089ba6575cd5b4ef8..936249208f5d43df9f77fd6c2a2987592a6b640f 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Frisco/FriscoAssignment2Client.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Frisco/FriscoAssignment2Client.java
@@ -17,6 +17,7 @@ import java.util.Scanner;
 
 public class FriscoAssignment2Client {
 
+    /** socket value of shared interest */
 	public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpClient.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpClient.java
index 3dcd83e8e577ad6e9d7eb10257948eab7fc32725..8b35b3f3af4cab68826b8e82295113cbce51574b 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpClient.java
@@ -13,8 +13,11 @@ import java.util.Scanner;
  */
 public class FurrTcpClient {
 
+    /** socket value of shared interest */
 	public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
 
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
 	public static void main(String[] args) {
 		boolean openConnection = true;
 		try {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpServer.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpServer.java
index bd46de4f22742b7ed62b7258e6bd4ac14a1bc807..8c5ecb869734732252ecd35d665ba72cf7812327 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Furr/FurrTcpServer.java
@@ -20,8 +20,10 @@ import java.net.*;
  */
 public class FurrTcpServer {
 
-	public static void main(String[] args) throws IOException {
-		
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+	public static void main(String[] args)
+    {	
 		String[] responses = new String[10];  //canned responses for multiple inputs from client
 		responses[0] = "Hello";
 		responses[1] = "Are you there?";
@@ -48,12 +50,12 @@ public class FurrTcpServer {
 			// Stop the program somewhere else.
 			while(true)
 			{
-			Socket clientConnection = serverSocket.accept(); // block until connected
-			connectionActive = true; //ensure after every new connection the boolean is reset to true.
-			index =0; //reset the index for responses back to 0 each time a new connection happens.
+			  Socket clientConnection = serverSocket.accept(); // block until connected
+			  connectionActive = true; //ensure after every new connection the boolean is reset to true.
+			  index =0; //reset the index for responses back to 0 each time a new connection happens.
 			
-			while (connectionActive) {
-
+			  while (connectionActive)
+              {
 				OutputStream os = clientConnection.getOutputStream();
 				PrintStream ps = new PrintStream(os);
 				ps.println("This was written by the server");
@@ -100,9 +102,8 @@ public class FurrTcpServer {
 				connectionActive = false;
 				ps.flush();
 				clientConnection.close(); // like it or not, you're outta here!
+			  }
 			}
-			}
-			
 		} catch (IOException e) {
 			System.out.println("problem with networking" + e);
 		}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpClient.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpClient.java
index 81cd8c3715b685e93b130c01cc95de85ba7cd63e..0bb1cec615e5fcd2e6fc34dc6c2765614554bdf4 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpClient.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpClient.java
@@ -13,12 +13,15 @@ import java.net.*;
  *
  * @author mcgredo
  */
-public class JacksonTcpClient {
-
+public class JacksonTcpClient
+{
+    /** socket parameter of interest */
 	public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
         
-
-	public static void main(String[] args) {
+    /** Program invocation, execution starts here
+     * @param args command-line arguments  */
+	public static void main(String[] args) 
+    {
             int i = 1;
 		try {
 			while (true) {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpServer.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpServer.java
index 004ebb63de5d11da9810f0f38ad14c996e599f66..043a9ebf8332ae7b35dd9565929ff4276265e877 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpServer.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/JacksonTcpServer.java
@@ -23,6 +23,8 @@ import java.net.*;
  */
 public class JacksonTcpServer {
 
+    /** Program invocation, execution starts here
+     * @param args command-line arguments  */
 	@SuppressWarnings("ConvertToTryWithResources")
 	public static void main(String[] args)
 	{
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Client.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Client.java
index 907b346e174bc0c8d410401c35aebaf95ab218ad..2e0692f9f0863a3a295eb94eaf5f0faadfa0431d 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Client.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Client.java
@@ -18,10 +18,15 @@ import java.util.Scanner;
  * @author DonMcGregor
  * @author garrettloeffelman
  */
-public class LoeffelmanAssignment2Client {
-
+public class LoeffelmanAssignment2Client
+{
+    /** socket parameter of interest */
    public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
 	public static void main(String[] args) {
             
 		try {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Server.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Server.java
index 303060e1e005c4e5ebb8dadf8ff4e270dedc506b..5711cf02c7886edb6560548a2e20ae7681fdb153 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Server.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Loeffelman/LoeffelmanAssignment2Server.java
@@ -22,6 +22,10 @@ import java.util.Scanner;
  */
 public class LoeffelmanAssignment2Server {
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     @SuppressWarnings("ConvertToTryWithResources")
 	public static void main(String[] args)
 	{
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Severson/SeversonAssignment2_Client.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Severson/SeversonAssignment2_Client.java
index 4c7801d4fc21b43095e58f2e28ca960797e15318..e7fdb0bc7238dfc7464800c2015e855e49326402 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Severson/SeversonAssignment2_Client.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Severson/SeversonAssignment2_Client.java
@@ -22,6 +22,7 @@ import javax.swing.JOptionPane;
  */
 public class SeversonAssignment2_Client {
 
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Client.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Client.java
index d247794e283323e18bc9d7db8f7dfc9b9865907d..3fc7ecc52005020ae05d5de886d47221a3bac791 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Client.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Client.java
@@ -23,10 +23,15 @@ import java.util.Scanner;
  * 
  * @author courtneythomerson
  */
-public class ThomersonAssignment2Client {
-
+public class ThomersonAssignment2Client
+{
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) {
  
         try {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Server.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Server.java
index bd72a95d7a8f32e628b3f2b3d72c023b67068e04..c2a4992082b49dd9aa95d47340385fee2b84244c 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Server.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/Thomerson/ThomersonAssignment2Server.java
@@ -32,6 +32,10 @@ import java.net.Socket;
 public class ThomersonAssignment2Server {
 
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) {
         try
         {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework2/package-info.java b/assignments/src/MV3500Cohort2018JulySeptember/homework2/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..17e07c5b15e2b01410ec8ba1b316c8df82c326bf
--- /dev/null
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework2/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2018JulySeptember.homework2;
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastReceiver.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastReceiver.java
index 7bb7b29568b36942a7364b561cb3f45a577e4207..f3e1125f19eef61a10f9ae48d0709e42f8b9963f 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastReceiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastReceiver.java
@@ -1,89 +1,92 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package MV3500Cohort2018JulySeptember.homework3.AyresDemchkoHomework3;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-import java.net.UnknownHostException;
-/**
- *
- * @author kjayr
- */
-public class AyresDemchkoMulticastReceiver {
-public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) 
-    {
-        try
-        {
-        
-            // This is a java/IPv6 problem. You should also add it to the
-            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
-            // set in the "run" section of preferences. Also, typically
-            // netbeans must be restarted after these settings.
-            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
-            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            int count = 0;
-            int firstNumber = 11;
-            int secondNumber = 67;
-            int thirdNumber = 108;
-            int forkliftsAvail = 100;
-            int forkliftsServ = 0;
-            
-            while(true)
-            {
-                byte[] packetArray = new byte[1500];
-                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
-                
-                multicastSocket.receive(packet);
-                count++;
-                firstNumber+=1.5;
-                secondNumber+=3.5;
-                thirdNumber+=5.0; 
-                    if(count > 1){
-                        forkliftsAvail-=1;
-                        forkliftsServ+=1;
-                    }
-                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
-                DataInputStream dis = new DataInputStream(bais);
-                //float firstNumber = dis.readInt();
-                //float secondNumber = dis.readInt();
-                //float thirdNumber = dis.readInt(); 
-                
-                System.out.println("Marine Corps Logistics Base Albany: Wilson Warehouse");
-                System.out.println("Order received: " + count + " NSN ID: " + firstNumber + " Xrow: " + secondNumber + " Yshelf: "+ thirdNumber + 
-                        " Forklifts Availble: " + forkliftsAvail + " Forklifts in Service: " +forkliftsServ);
-                System.out.println("______________________________________________________");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JulySeptember.homework3.AyresDemchkoHomework3;
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+import java.net.UnknownHostException;
+/**
+ *
+ * @author kjayr
+ */
+public class AyresDemchkoMulticastReceiver 
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) 
+    {
+        try
+        {
+        
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            int count = 0;
+            int firstNumber = 11;
+            int secondNumber = 67;
+            int thirdNumber = 108;
+            int forkliftsAvail = 100;
+            int forkliftsServ = 0;
+            
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                
+                multicastSocket.receive(packet);
+                count++;
+                firstNumber+=1.5;
+                secondNumber+=3.5;
+                thirdNumber+=5.0; 
+                    if(count > 1){
+                        forkliftsAvail-=1;
+                        forkliftsServ+=1;
+                    }
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                //float firstNumber = dis.readInt();
+                //float secondNumber = dis.readInt();
+                //float thirdNumber = dis.readInt(); 
+                
+                System.out.println("Marine Corps Logistics Base Albany: Wilson Warehouse");
+                System.out.println("Order received: " + count + " NSN ID: " + firstNumber + " Xrow: " + secondNumber + " Yshelf: "+ thirdNumber + 
+                        " Forklifts Availble: " + forkliftsAvail + " Forklifts in Service: " +forkliftsServ);
+                System.out.println("______________________________________________________");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastSender.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastSender.java
index 65a4ca1a6e0cc802416166550f14b09c03ea735e..f70237b53f67bfcd04e1d740a6300a364f43c4ec 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastSender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/AyresDemchkoHomework3/AyresDemchkoMulticastSender.java
@@ -1,72 +1,74 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package MV3500Cohort2018JulySeptember.homework3.AyresDemchkoHomework3;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.net.DatagramPacket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-
-/**
- *
- * @author kjayr
- */
-public class AyresDemchkoMulticastSender {
-    
-    public static final String MULTICAST_ADDRESS = "239.1.2.15";
-    public static final int DESTINATION_PORT = 1717;
-    /** How many routers can be crossed */
-    public static final int TTL = 10; 
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) 
-    {
-        try
-        {
-            //int ID = 27;
-            //int xrow = 5;
-            //int yshelf = 7;
-
-            System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            MulticastSocket multicastSocket = new MulticastSocket(1718);
-            multicastSocket.setTimeToLive(TTL);
-            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
-            System.out.println(multicastAddress);            
-            // Join group useful on receiving side
-            multicastSocket.joinGroup(multicastAddress);
-            // You can join multiple groups here
-            
-            // Put together a message with binary content. "ByteArrayOutputStream"
-            // is a java.io utility that lets us put together an array of binary
-            // data, which we put into the UDP packet.
-            
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            DataOutputStream dos = new DataOutputStream(baos);
-            //dos.writeInt(ID);
-            //dos.writeInt(xrow);
-            //dos.writeInt(yshelf); 
-            byte[] buffer = baos.toByteArray();
-            
-            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
-            
-            for(int idx = 0; idx < 100; idx++)
-            {
-               multicastSocket.send(packet);
-               Thread.sleep(1000); // Send 100, one per second
-               System.out.println("Sent multicast packet " + idx + " of 100");
-            }
-        }
-        catch(Exception e)
-        {
-            System.out.println(e);
-        }
-    }
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JulySeptember.homework3.AyresDemchkoHomework3;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+/**
+ *
+ * @author kjayr
+ */
+public class AyresDemchkoMulticastSender
+{
+    /** socket parameter of interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    static final int TTL = 10; 
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            //int ID = 27;
+            //int xrow = 5;
+            //int yshelf = 7;
+
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            // Put together a message with binary content. "ByteArrayOutputStream"
+            // is a java.io utility that lets us put together an array of binary
+            // data, which we put into the UDP packet.
+            
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            DataOutputStream dos = new DataOutputStream(baos);
+            //dos.writeInt(ID);
+            //dos.writeInt(xrow);
+            //dos.writeInt(yshelf); 
+            byte[] buffer = baos.toByteArray();
+            
+            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+            
+            for(int idx = 0; idx < 100; idx++)
+            {
+               multicastSocket.send(packet);
+               Thread.sleep(1000); // Send 100, one per second
+               System.out.println("Sent multicast packet " + idx + " of 100");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Receiver.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Receiver.java
index 745989fe9dd76f2bd8cf556990aa183872a9ea33..b6bf8e2344d64124877ee78e4cfe76447f528edc 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Receiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Receiver.java
@@ -15,12 +15,14 @@ import java.net.MulticastSocket;
  *
  * @author danielcain with credit to CDR Angelopolis
  */
-public class CainThomersonHw3Receiver {
-
+public class CainThomersonHw3Receiver
+{
+    /** socket value of shared interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
 
     /**
      * Program invocation, execution starts here
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Sender.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Sender.java
index 72410747d62e0530061faca73e25cd966bce9c7d..6209daeaa10f892833112f23b3564adfaca8d0b9 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Sender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Cain_Thomerson_Homework3/CainThomersonHw3Sender.java
@@ -4,6 +4,7 @@ package MV3500Cohort2018JulySeptember.homework3.Cain_Thomerson_Homework3;
 
 import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
+import java.io.IOException;
 import java.net.DatagramPacket;
 import java.net.InetAddress;
 import java.net.MulticastSocket;
@@ -14,12 +15,14 @@ import java.util.Random;
  *
  * @author danielcain with credit to CDR Angelopolis
  */
-public class CainThomersonHw3Sender {
-
-public static final String MULTICAST_ADDRESS = "239.1.2.15";
+public class CainThomersonHw3Sender
+{
+    /** socket value of shared interest */
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
 
     /**
      * Program invocation, execution starts here
@@ -31,8 +34,7 @@ public static final String MULTICAST_ADDRESS = "239.1.2.15";
         {
           
             System.setProperty("java.net.preferIPv4Stack", "true");
-            
-            
+
             MulticastSocket multicastSocket = new MulticastSocket(1718);
             multicastSocket.setTimeToLive(TTL);
             InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
@@ -71,9 +73,9 @@ public static final String MULTICAST_ADDRESS = "239.1.2.15";
             byte[] buffer = byteOut.toByteArray();
             // Put together a packet to send
             
-            // muticast group we are sending to--not a single host
+            // multicast group we are sending to--not a single host
             
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
        
             // How fast does this go? Does UDP try to slow it down, or does
             // this cause network problems? (hint: yes for an unlimited send
@@ -81,14 +83,13 @@ public static final String MULTICAST_ADDRESS = "239.1.2.15";
             // that you haven't received a duplicate UDP packet, out of
             // order packet, or dropped packet?
             
-
-               multicastSocket.send(packet);
+            multicastSocket.send(packet);
                byteOut.reset();
                Thread.sleep(1000); // Send 100, one per second
                System.out.println("Sent multicast packet " + idx + " of 100");
             }
         }
-        catch(Exception e)
+        catch(IOException | InterruptedException e)
         {
             System.out.println(e);
         }
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Receiver.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Receiver.java
index 090d33d844cf98aaf320cc6056fe48ee2c435e76..659d497d34fafcee160964da3ec6a4c7e52a33d1 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Receiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Receiver.java
@@ -18,11 +18,15 @@ import java.net.MulticastSocket;
  */
 public class FurrFriscoHw3Receiver {
 
+    /** socket value of shared interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 10; 
+    static final int TTL = 10; 
     
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Sender.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Sender.java
index ef5371d8982eaac0afea420fcd36a7ae0ab0fff9..7ccc4469e0e59af744f5b4c2554d89038c4deb52 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Sender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Sender.java
@@ -15,14 +15,19 @@ import java.util.Random;
  */
 public class FurrFriscoHw3Sender {
 
+    /** socket value of shared interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket value of shared interest */
     public static final int DESTINATION_PORT = 1717;
     /**
      * How many routers can be crossed
      */
-    public static final int TTL = 10;
+    static final int TTL = 10;
 
-    public static void main(String[] args) {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
         try {
 
             System.setProperty("java.net.preferIPv4Stack", "true");
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpReceiver.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpReceiver.java
index 0396c08fc64711a74d20c2ddb8909a4bb838eff0..c968d290143f52c32a34b8d6090deea844ea2d42 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpReceiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpReceiver.java
@@ -11,8 +11,11 @@ import java.net.*;
  */
 public class Jackson_UdpReceiver 
 {
+    /** socket parameter of interest */
     public static final int       SENDING_PORT = 1414;
+    /** socket parameter of interest */
     public static final int     RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final String DESINATION_HOST = "localhost";
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpSender.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpSender.java
index be60576ad0c6f0620bc961e653ee92eb7bc6e929..294a0fbe488e09820c239ca85101054e921fe087 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpSender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpSender.java
@@ -13,13 +13,19 @@ import java.net.*;
  */
 public class Jackson_UdpSender 
 {
-
+    /** socket parameter of interest */
     public static final int      SENDING_PORT   = 1414;
+    /** socket parameter of interest */
     public static final int      RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final String DESTINATION_HOST = "localhost";
 
 	@SuppressWarnings("SleepWhileInLoop")
         
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) 
     {
         //int idx = 0;
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Receiver.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Receiver.java
index 2c6b75d0c1e9dbf4f926068475c578558a674c6c..7116b2c677db18608d7b85c86c83f839d715323f 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Receiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Receiver.java
@@ -22,15 +22,21 @@ import javax.swing.JLabel;
  *
  * @author garrettloeffelman
  */
-public class LoeffelmanSeversonMulticastImageHw3Receiver {
-
+public class LoeffelmanSeversonMulticastImageHw3Receiver
+{
+    /** socket parameter of interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
     public static final int DESTINATION_PORT = 1717;
     /**
      * How many routers can be crossed
      */
-    public static final int TTL = 20;
+    static final int TTL = 20;
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) {
         try {
 
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Sender.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Sender.java
index 07714f7f6ce86fc46a6561fc9ff194792fbdaa78..9e61c068bb169c124b1823d0a79693c60f14f85f 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Sender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonMulticastImageHw3Sender.java
@@ -20,13 +20,19 @@ import javax.imageio.ImageIO;
  *
  * @author garrettloeffelman
  */
-public class LoeffelmanSeversonMulticastImageHw3Sender {
-
+public class LoeffelmanSeversonMulticastImageHw3Sender
+{
+    /** socket parameter of interest */
     public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
     public static final int DESTINATION_PORT = 1717;
     /** How many routers can be crossed */
-    public static final int TTL = 20; 
+    static final int TTL = 20; 
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageHW3Receiver.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageHW3Receiver.java
index 7da665ca6b3fb0e0c54ad3ccb8434eff6a041856..89ed03b7d47fda406a39bcaa26720e31680fd194 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageHW3Receiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageHW3Receiver.java
@@ -21,10 +21,13 @@ import javax.swing.JLabel;
  *
  * @author garrettloeffelman
  */
-public class LoeffelmanSeversonUDPImageHW3Receiver {
-
+public class LoeffelmanSeversonUDPImageHW3Receiver
+{
+    /** socket parameter of interest */
     public static final int       SENDING_PORT = 1414;
+    /** socket parameter of interest */
     public static final int     RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final String DESINATION_HOST = "localhost";
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageSender.java b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageSender.java
index 54bb672578cdbcae5a8e4fa37d5d1cf83f47704a..c8eaeba833a89cb625aa13335e3b7db841fa3189 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageSender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/homework3/Loeffelman_Severson_Homework3/LoeffelmanSeversonUDPImageSender.java
@@ -19,12 +19,19 @@ import javax.imageio.ImageIO;
  *
  * @author garrettloeffelman
  */
-public class LoeffelmanSeversonUDPImageSender {
-
+public class LoeffelmanSeversonUDPImageSender
+{
+    /** socket parameter of interest */
     public static final int      SENDING_PORT   = 1414;
+    /** socket parameter of interest */
     public static final int      RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final String DESTINATION_HOST = "localhost";
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
 	@SuppressWarnings("SleepWhileInLoop")
     public static void main(String[] args) 
     {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoReceiver.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoReceiver.java
index 426e496605164fa08a7101571c2a1dd4fe1ec58c..65e32d4861ade473143b726de62af62c72821e87 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoReceiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoReceiver.java
@@ -24,9 +24,12 @@ import java.util.ArrayList;
  */
 public class AyresDemchkoReceiver {
 
-   public static final int    MULTICAST_PORT  = 3000;
+    /** socket parameter of interest */
+    public static final int    MULTICAST_PORT  = 3000;
+    /** socket parameter of interest */
     public static final String MULTICAST_GROUP = "239.1.2.15";
-    public static final boolean USE_FAST_ESPDU = false;
+    /** socket parameter of interest */
+    static final boolean USE_FAST_ESPDU = false;
 
     /**
      * Program invocation, execution starts here
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoSender.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoSender.java
index 803053f03ccb92cb721f69f533220692db0146dd..75642117ad12d6e3f0e4e9a5b597372f787fcc71 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoSender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/AyresDemchko/AyresDemchkoSender.java
@@ -42,9 +42,11 @@ import java.util.List;
  *
  * @author kjayr
  */
-public class AyresDemchkoSender {
-/** Default multicast group address we send on. */
+public class AyresDemchkoSender 
+{
+    /** Default multicast group address we send on. */
     public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.15";
+    /** socket parameter of interest */
     public static final int DESTINATION_PORT = 1717;
     /** Default multicast port used, matches Wire-shark DIS capture default */
     public static final int    DEFAULT_MULTICAST_PORT    = 3000;
@@ -53,7 +55,9 @@ public class AyresDemchkoSender {
     private int port;
     InetAddress multicastAddress;
 
-    public AyresDemchkoSender (int port, String multicast) {
+    /** Object constructor */
+    public AyresDemchkoSender (int port, String multicast) 
+    {
         try
 	{
             System.setProperty("java.net.preferIPv4Stack", "true");
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduRequestingUnit.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduRequestingUnit.java
index 6a6cc0f0a14261378e2665df6fd552f08a6a207f..e78ee0eddeb1be3c9c424e6a8647565656c8e863 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduRequestingUnit.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduRequestingUnit.java
@@ -17,7 +17,7 @@ import edu.nps.moves.disutil.PduFactory;
  */
 public class C_T_EspduRequestingUnit {
 
-    public static final int NUMBER_TO_SEND = 5000;
+    private static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
@@ -29,10 +29,13 @@ public class C_T_EspduRequestingUnit {
         BROADCAST
 	};
 
+    /** socket value of shared interest */
     public static final int MAX_PDU_SIZE = 8192;
     
+    /** socket value of shared interest */
     public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
 
+    /** socket value of shared interest */
     public static final int DEFAULT_MULTICAST_PORT = 3000;
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduSupplyerUnit.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduSupplyerUnit.java
index cea8f41ea71974b134274d54bcea542a7404bc68..a5e30ced221710099c6fded43a02a6288b47a015 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduSupplyerUnit.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/CainThomersonFinal/C_T_EspduSupplyerUnit.java
@@ -19,7 +19,7 @@ import java.io.IOException;
  */
 public class C_T_EspduSupplyerUnit {
 
-    public static final int NUMBER_TO_SEND = 5000;
+    static final int NUMBER_TO_SEND = 5000;
 
     /** Type of network connection */
 	public enum NetworkMode {
@@ -31,10 +31,11 @@ public class C_T_EspduSupplyerUnit {
         BROADCAST
 	};
 
+    /** socket parameter of interest */
     public static final int MAX_PDU_SIZE = 8192;
-
+    /** socket parameter of interest */
     public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
+    /** socket parameter of interest */
     public static final int DEFAULT_MULTICAST_PORT = 3000;
 
     /**
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/FDCSendRecieve.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/FDCSendRecieve.java
index 6a2ad25b9488ca7105738ec578c99c976da97dc4..0acef815179f751b8f2e168b187b87f6435b72f4 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/FDCSendRecieve.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/FDCSendRecieve.java
@@ -1,296 +1,298 @@
-package MV3500Cohort2018JulySeptember.projects.FriscoFurr;
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import java.io.IOException;
-import edu.nps.moves.disutil.PduFactory;
-import edu.nps.moves.disutil.DisTime;
-
-public class FDCSendRecieve {
-
-	/**
-	 * Default multicast group address we send on.
-	 */
-	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
-	/**
-	 * Default multicast port used, matches Wireshark DIS capture default
-	 */
-	public static final int DEFAULT_MULTICAST_PORT = 3000;
-
-	private int port;
-	InetAddress multicastAddress;
-
-	public static final int MULTICAST_PORT = 3000;
-	public static final String MULTICAST_GROUP = "239.1.2.3";
-	public static final boolean USE_FAST_ESPDU = false;
-	public long[] sentBuffer = new long[100];
-	public static List sentBufferList;
-	DisTime disTime = DisTime.getInstance();
-
-	public FDCSendRecieve(int port, String multicast) {
-		this.sentBufferList = new ArrayList<>();
-		try {
-			this.port = port;
-			multicastAddress = InetAddress.getByName(multicast);
-			if (!multicastAddress.isMulticastAddress()) {
-				System.out.println("Not a multicast address: " + multicast);
-			}
-		} catch (UnknownHostException e) {
-			System.out.println("Unable to open socket: " + e);
-		}
-	}
-
-	/**
-	 * This would be the sending Run method.  Takes in several PDUs and for each one has a switch statement ready for it. 
-	 * @param pdupass
-	 * @throws UnknownHostException unable to reach host address
-	 * @throws IOException input-output error
-	 */
-	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
-
-		List<Pdu> generatedPdus = new ArrayList<>();
-		Pdu aPdu = null;
-		System.out.println("\nFDC Sender started...");
-		// Send the PDUs we created
-		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-		socket.joinGroup(localMulticastAddress);
-
-		for (Pdu i : pdupass) {
-			Pdu pdu = i;
-			if (sentBufferList.contains(pdu.getTimestamp())) {
-				break;
-			}
-
-			short currentPduType = pdu.getPduType();
-			System.out.println("in sender, recived PDU type: " + currentPduType);
-
-			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
-			{
-
-				case 1: //ENTITY_STATE:
-					aPdu = pdu;
-					break;
-
-				case 2: //FIRE
-					aPdu = pdu;
-					break;
-//
-				case 15: //AcknowledgePdu
-					aPdu = pdu;
-					break;
-
-				case 17:
-					aPdu = pdu;
-					break;
-
-				case 14:
-					aPdu = pdu;
-					break;
-
-				default:
-					System.out.print("PDU of type " + pdu + " not supported, created or sent ");
-					System.out.println();
-			}
-			if (aPdu != null) {
-				generatedPdus.add(aPdu);
-				System.out.println("APDU container count " + generatedPdus.size());
-			}
-
-		}
-		for (int idx = 0; idx < generatedPdus.size(); idx++) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			DataOutputStream dos = new DataOutputStream(baos);
-			byte[] buffer;
-
-			aPdu = generatedPdus.get(idx);
-			aPdu.marshal(dos);
-
-			buffer = baos.toByteArray();
-			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-			socket.send(packet);
-			sentBufferList.add(aPdu.getTimestamp());
-			System.out.println("Sent PDU of type " + aPdu.getClass().getName()+ "\n");
-		}
-	}
-
-	/**
-	 * Main function takes no specific arguments, but is the recieving portion of the code.  Once it hears a specific type of PDU it creates another and sends it to the Run function 
-	 * called sender created on line 130 (2nd statement in the main function)
-	 * @param args command-line arguments
-	 * @throws IOException input-output error
-	 * @throws InterruptedException interruption
-	 */
-	public static void main(String[] args) throws IOException, InterruptedException {
-		DisTime disTime = DisTime.getInstance();
-
-		FDCSendRecieve sender = new FDCSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
-
-		EntityStatePdu FDCespdu = new EntityStatePdu();
-		Marking marking = new Marking();
-		marking.setCharactersString("FDC");
-		FDCespdu.setMarking(marking);
-		FDCespdu.setExerciseID((short) 1);
-		EntityID FDCID = FDCespdu.getEntityID();
-		FDCID.setSite(1);  
-		FDCID.setApplication(1);
-		FDCID.setEntity(1); 
-		EntityType entityType = FDCespdu.getEntityType();
-		//
-		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
-		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
-		//
-		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
-		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
-		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
-		entityType.setCategory((short) 3);        // FDC  TGT = 1, Tank  OBS=40 OP
-		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
-		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
-		Vector3Double location = new Vector3Double();
-		location.setX(0.0);  //TGT = 150   OBS = 75
-		location.setY(0.0);  //TGT = 150   OBS = 75
-		location.setZ(10.0); //TGT = 20    OBS = 50
-		FDCespdu.setEntityLocation(location);
-		int timestamp = disTime.getDisAbsoluteTimestamp();
-		FDCespdu.setTimestamp(timestamp);
-
-		sender.run(FDCespdu);  //sends inital here I am and who I am
-
-		//Set up other players to look for:
-		EntityID OBSEntityID = new EntityID(); 
-		OBSEntityID.setEntity(2);
-		OBSEntityID.setApplication(1);
-		OBSEntityID.setSite(1);
-
-		EntityID TGTEntityID = new EntityID(); 
-		TGTEntityID.setEntity(3);
-		TGTEntityID.setApplication(1);
-		TGTEntityID.setSite(1);
-
-		/*  BELOW IS THE RECIEVE CODE  //
-		//                             //
-		//                             //
-		 */                             //
-		PduFactory factory;
-		MulticastSocket socket = null;
-		InetAddress address = null;
-		DatagramPacket packet;
-		short currentPduType = 0;  //will use the curentPduType as the check for sending other packets.
-
-		try {
-			System.out.println("FDC is alive and ready to recieve fire missions...\n\n");
-			socket = new MulticastSocket(MULTICAST_PORT);
-			address = InetAddress.getByName(MULTICAST_GROUP);
-			socket.joinGroup(address);
-
-			factory = new PduFactory();
-
-			while (true) // Loop infinitely, receiving datagrams
-			{
-				byte buffer[] = new byte[1500]; // typical MTU size
-
-				packet = new DatagramPacket(buffer, buffer.length); // reset
-
-				socket.receive(packet);
-
-				String marking2 = new String();
-				Pdu pdu = factory.createPdu(packet.getData());
-				currentPduType = pdu.getPduType();
-				if (currentPduType == 14) //stop/freeze PDU
-				{
-					System.out.println("recieved Stop/Freeze packet...");
-					return;
-				}
-//					pdu.setExerciseID((short)5);
-				if (pdu != null) {
-					if (sentBufferList.contains(pdu.getTimestamp())) {
-						pdu = null;
-					}
-					if (pdu != null) {
-
-						String currentPduTypeName = pdu.getClass().getName();
-
-						if (currentPduType == 1) {
-							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
-							marking2 = pdu2.getMarking().getCharactersString();
-						}
-						StringBuilder message = new StringBuilder();
-						message.append("received DIS PDU: ");
-						message.append("pduType ");
-						if (currentPduType < 10) {
-							message.append(" ");
-						}
-						message.append(currentPduType).append(" ").append(currentPduTypeName);
-						message.append(" ");
-						message.append(marking2);
-						System.out.println(message.toString());
-						//Reference for PDU Types: 
-						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
-						//
-
-						if (currentPduType == 1) //EntityState
-						{
-							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
-							EntityType PduEntityType = entityPDU.getEntityType();
-							if (PduEntityType.getCountry() == 225) {
-								Thread.sleep((long) 200);
-								timestamp = disTime.getDisAbsoluteTimestamp();
-								FDCespdu.setTimestamp(timestamp);
-								System.out.println("Talking to the Observer, sending a radio check ");
-								sender.run(FDCespdu);
-							}
-						}
-						if (currentPduType == 16) //Action request
-						{
-							// Action response is sending a Null PDU, not sure why... so we will use the acknowledge pdu instead
-							AcknowledgePdu ack = new AcknowledgePdu();
-							ack.setExerciseID((short) 1);
-							ack.setRequestID((long) 1);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							ack.setTimestamp(timestamp);
-
-							//Creating a fire PDU
-							FirePdu fire = new FirePdu();
-							fire.setExerciseID((short) 1);
-							fire.setFireMissionIndex(1000);
-							fire.setRangeToTarget((float) Math.sqrt(Math.pow(150, 2) + Math.pow(150, 2)));  //would pass in target info, but here we know location of tgt is (150,150) and FDC (0,0)
-							fire.setFiringEntityID(FDCID);
-							fire.setTargetEntityID(TGTEntityID);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							fire.setTimestamp(timestamp);
-							sender.run(ack, fire);
-						}
-
-						if (currentPduType == 22) //Comment PDU
-						{
-							AcknowledgePdu ack = new AcknowledgePdu();
-							ack.setExerciseID((short) 1);
-							ack.setRequestID((long) 1);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							ack.setTimestamp(timestamp);
-							
-							//and the freeze PDU being created to stop everything. 
-							StopFreezePdu stop = new StopFreezePdu();
-							stop.setExerciseID((short) 1);
-							stop.setRequestID((long) 1);
-							sender.run(ack, stop);
-						}
-
-					} else {
-						System.out.println("received packet but pdu is null and originated from FDC. Still standing by...");
-					}
-				}
-			}
-		} catch (IOException e) {
-			System.out.println("Problem with FDCSendRecieve, see exception trace:");
-			System.out.println(e);
-		} finally {
-			System.out.println("FDC SendReceive complete. - OUT!");
-		}
-
-	}
-
-}
+package MV3500Cohort2018JulySeptember.projects.FriscoFurr;
+
+import java.net.*;
+import java.io.*;
+import java.util.*;
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import java.io.IOException;
+import edu.nps.moves.disutil.PduFactory;
+import edu.nps.moves.disutil.DisTime;
+
+public class FDCSendRecieve {
+
+	/**
+	 * Default multicast group address we send on.
+	 */
+	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+
+	/**
+	 * Default multicast port used, matches Wireshark DIS capture default
+	 */
+	public static final int DEFAULT_MULTICAST_PORT = 3000;
+
+	private int port;
+	InetAddress multicastAddress;
+
+    /** socket value of shared interest */
+	public static final int MULTICAST_PORT = 3000;
+    /** socket value of shared interest */
+	public static final String MULTICAST_GROUP = "239.1.2.3";
+	private static final boolean USE_FAST_ESPDU = false;
+	private long[] sentBuffer = new long[100];
+	private static List sentBufferList;
+	DisTime disTime = DisTime.getInstance();
+
+	public FDCSendRecieve(int port, String multicast) {
+		this.sentBufferList = new ArrayList<>();
+		try {
+			this.port = port;
+			multicastAddress = InetAddress.getByName(multicast);
+			if (!multicastAddress.isMulticastAddress()) {
+				System.out.println("Not a multicast address: " + multicast);
+			}
+		} catch (UnknownHostException e) {
+			System.out.println("Unable to open socket: " + e);
+		}
+	}
+
+	/**
+	 * This would be the sending Run method.  Takes in several PDUs and for each one has a switch statement ready for it. 
+	 * @param pdupass passed pdu objects
+	 * @throws UnknownHostException unable to reach host address
+	 * @throws IOException input-output error
+	 */
+	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
+
+		List<Pdu> generatedPdus = new ArrayList<>();
+		Pdu aPdu = null;
+		System.out.println("\nFDC Sender started...");
+		// Send the PDUs we created
+		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+		socket.joinGroup(localMulticastAddress);
+
+		for (Pdu i : pdupass) {
+			Pdu pdu = i;
+			if (sentBufferList.contains(pdu.getTimestamp())) {
+				break;
+			}
+
+			short currentPduType = pdu.getPduType();
+			System.out.println("in sender, recived PDU type: " + currentPduType);
+
+			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
+			{
+
+				case 1: //ENTITY_STATE:
+					aPdu = pdu;
+					break;
+
+				case 2: //FIRE
+					aPdu = pdu;
+					break;
+//
+				case 15: //AcknowledgePdu
+					aPdu = pdu;
+					break;
+
+				case 17:
+					aPdu = pdu;
+					break;
+
+				case 14:
+					aPdu = pdu;
+					break;
+
+				default:
+					System.out.print("PDU of type " + pdu + " not supported, created or sent ");
+					System.out.println();
+			}
+			if (aPdu != null) {
+				generatedPdus.add(aPdu);
+				System.out.println("APDU container count " + generatedPdus.size());
+			}
+
+		}
+		for (int idx = 0; idx < generatedPdus.size(); idx++) {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			DataOutputStream dos = new DataOutputStream(baos);
+			byte[] buffer;
+
+			aPdu = generatedPdus.get(idx);
+			aPdu.marshal(dos);
+
+			buffer = baos.toByteArray();
+			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+			socket.send(packet);
+			sentBufferList.add(aPdu.getTimestamp());
+			System.out.println("Sent PDU of type " + aPdu.getClass().getName()+ "\n");
+		}
+	}
+
+	/**
+	 * Main function takes no specific arguments, but is the recieving portion of the code.  Once it hears a specific type of PDU it creates another and sends it to the Run function 
+	 * called sender created on line 130 (2nd statement in the main function)
+	 * @param args command-line arguments
+	 * @throws IOException input-output error
+	 * @throws InterruptedException interruption
+	 */
+	public static void main(String[] args) throws IOException, InterruptedException {
+		DisTime disTime = DisTime.getInstance();
+
+		FDCSendRecieve sender = new FDCSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
+
+		EntityStatePdu FDCespdu = new EntityStatePdu();
+		Marking marking = new Marking();
+		marking.setCharactersString("FDC");
+		FDCespdu.setMarking(marking);
+		FDCespdu.setExerciseID((short) 1);
+		EntityID FDCID = FDCespdu.getEntityID();
+		FDCID.setSite(1);  
+		FDCID.setApplication(1);
+		FDCID.setEntity(1); 
+		EntityType entityType = FDCespdu.getEntityType();
+		//
+		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
+		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
+		//
+		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
+		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
+		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
+		entityType.setCategory((short) 3);        // FDC  TGT = 1, Tank  OBS=40 OP
+		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
+		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
+		Vector3Double location = new Vector3Double();
+		location.setX(0.0);  //TGT = 150   OBS = 75
+		location.setY(0.0);  //TGT = 150   OBS = 75
+		location.setZ(10.0); //TGT = 20    OBS = 50
+		FDCespdu.setEntityLocation(location);
+		int timestamp = disTime.getDisAbsoluteTimestamp();
+		FDCespdu.setTimestamp(timestamp);
+
+		sender.run(FDCespdu);  //sends inital here I am and who I am
+
+		//Set up other players to look for:
+		EntityID OBSEntityID = new EntityID(); 
+		OBSEntityID.setEntity(2);
+		OBSEntityID.setApplication(1);
+		OBSEntityID.setSite(1);
+
+		EntityID TGTEntityID = new EntityID(); 
+		TGTEntityID.setEntity(3);
+		TGTEntityID.setApplication(1);
+		TGTEntityID.setSite(1);
+
+		/*  BELOW IS THE RECIEVE CODE  //
+		//                             //
+		//                             //
+		 */                             //
+		PduFactory factory;
+		MulticastSocket socket = null;
+		InetAddress address = null;
+		DatagramPacket packet;
+		short currentPduType = 0;  //will use the curentPduType as the check for sending other packets.
+
+		try {
+			System.out.println("FDC is alive and ready to recieve fire missions...\n\n");
+			socket = new MulticastSocket(MULTICAST_PORT);
+			address = InetAddress.getByName(MULTICAST_GROUP);
+			socket.joinGroup(address);
+
+			factory = new PduFactory();
+
+			while (true) // Loop infinitely, receiving datagrams
+			{
+				byte buffer[] = new byte[1500]; // typical MTU size
+
+				packet = new DatagramPacket(buffer, buffer.length); // reset
+
+				socket.receive(packet);
+
+				String marking2 = new String();
+				Pdu pdu = factory.createPdu(packet.getData());
+				currentPduType = pdu.getPduType();
+				if (currentPduType == 14) //stop/freeze PDU
+				{
+					System.out.println("recieved Stop/Freeze packet...");
+					return;
+				}
+//					pdu.setExerciseID((short)5);
+				if (pdu != null) {
+					if (sentBufferList.contains(pdu.getTimestamp())) {
+						pdu = null;
+					}
+					if (pdu != null) {
+
+						String currentPduTypeName = pdu.getClass().getName();
+
+						if (currentPduType == 1) {
+							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
+							marking2 = pdu2.getMarking().getCharactersString();
+						}
+						StringBuilder message = new StringBuilder();
+						message.append("received DIS PDU: ");
+						message.append("pduType ");
+						if (currentPduType < 10) {
+							message.append(" ");
+						}
+						message.append(currentPduType).append(" ").append(currentPduTypeName);
+						message.append(" ");
+						message.append(marking2);
+						System.out.println(message.toString());
+						//Reference for PDU Types: 
+						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
+						//
+
+						if (currentPduType == 1) //EntityState
+						{
+							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
+							EntityType PduEntityType = entityPDU.getEntityType();
+							if (PduEntityType.getCountry() == 225) {
+								Thread.sleep((long) 200);
+								timestamp = disTime.getDisAbsoluteTimestamp();
+								FDCespdu.setTimestamp(timestamp);
+								System.out.println("Talking to the Observer, sending a radio check ");
+								sender.run(FDCespdu);
+							}
+						}
+						if (currentPduType == 16) //Action request
+						{
+							// Action response is sending a Null PDU, not sure why... so we will use the acknowledge pdu instead
+							AcknowledgePdu ack = new AcknowledgePdu();
+							ack.setExerciseID((short) 1);
+							ack.setRequestID((long) 1);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							ack.setTimestamp(timestamp);
+
+							//Creating a fire PDU
+							FirePdu fire = new FirePdu();
+							fire.setExerciseID((short) 1);
+							fire.setFireMissionIndex(1000);
+							fire.setRangeToTarget((float) Math.sqrt(Math.pow(150, 2) + Math.pow(150, 2)));  //would pass in target info, but here we know location of tgt is (150,150) and FDC (0,0)
+							fire.setFiringEntityID(FDCID);
+							fire.setTargetEntityID(TGTEntityID);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							fire.setTimestamp(timestamp);
+							sender.run(ack, fire);
+						}
+
+						if (currentPduType == 22) //Comment PDU
+						{
+							AcknowledgePdu ack = new AcknowledgePdu();
+							ack.setExerciseID((short) 1);
+							ack.setRequestID((long) 1);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							ack.setTimestamp(timestamp);
+							
+							//and the freeze PDU being created to stop everything. 
+							StopFreezePdu stop = new StopFreezePdu();
+							stop.setExerciseID((short) 1);
+							stop.setRequestID((long) 1);
+							sender.run(ack, stop);
+						}
+
+					} else {
+						System.out.println("received packet but pdu is null and originated from FDC. Still standing by...");
+					}
+				}
+			}
+		} catch (IOException e) {
+			System.out.println("Problem with FDCSendRecieve, see exception trace:");
+			System.out.println(e);
+		} finally {
+			System.out.println("FDC SendReceive complete. - OUT!");
+		}
+
+	}
+
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/OBSSendRecieve1.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/OBSSendRecieve1.java
index c68ce7c6b6dd42288feac524b1009f2fc09956bb..7d32391721eb625f49d5df12b6afc96056794dd5 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/OBSSendRecieve1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/OBSSendRecieve1.java
@@ -1,279 +1,282 @@
-package MV3500Cohort2018JulySeptember.projects.FriscoFurr;
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import java.io.IOException;
-import edu.nps.moves.disutil.PduFactory;
-import edu.nps.moves.disutil.DisTime;
-
-public class OBSSendRecieve1 {
-
-	/**
-	 * Default multicast group address we send on.
-	 */
-	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
-	/**
-	 * Default multicast port used, matches Wireshark DIS capture default
-	 */
-	public static final int DEFAULT_MULTICAST_PORT = 3000;
-
-	private int port;
-	InetAddress multicastAddress;
-
-	public static final int MULTICAST_PORT = 3000;
-	public static final String MULTICAST_GROUP = "239.1.2.3";
-	public static final boolean USE_FAST_ESPDU = false;
-	public long[] sentBuffer = new long[100];
-	public static List sentBufferList;
-	DisTime disTime = DisTime.getInstance();
-	int transmission =1;
-
-	/**
-	 * Constructor just got to construct.
-	 * @param port
-	 * @param multicast 
-	 */
-	public OBSSendRecieve1(int port, String multicast) {
-		this.sentBufferList = new ArrayList<>();
-		try {
-			this.port = port;
-			multicastAddress = InetAddress.getByName(multicast);
-			if (!multicastAddress.isMulticastAddress()) {
-				System.out.println("Not a multicast address: " + multicast);
-			}
-		} catch (UnknownHostException e) {
-			System.out.println("Unable to open socket: " + e);
-		}
-	}
-
-	/**
-	 *  This would be the sending Run method.  Takes in several PDUs and for each one has a switch statement ready for it. 
-	 * @param pdupass
-	 * @throws UnknownHostException unable to reach host address
-	 * @throws IOException input-output error
-	 */
-	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
-
-		List<Pdu> generatedPdus = new ArrayList<>();
-		Pdu aPdu = null;
-		if(transmission ==1){
-			System.out.println("\nInitalizing OP coms...");
-			transmission++;
-		}
-		if(transmission>1){
-		System.out.println("\nObserver Sending traffic...");
-		}
-		// Send the PDUs we created
-		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-		socket.joinGroup(localMulticastAddress);
-
-		for (Pdu i : pdupass) {
-			Pdu pdu = i;
-			if (sentBufferList.contains(pdu.getTimestamp())) {
-				break;
-			}
-
-			short currentPduType = pdu.getPduType();
-			System.out.println("in observer sender, processing PDU type: " + currentPduType);
-
-			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
-			{
-
-				case 1: //ENTITY_STATE:
-					aPdu = pdu;
-					break;
-
-				case 16: //ACTION_REQUEST:
-					aPdu = new ActionRequestPdu();
-					break;
-
-				case 22:  //CommentPdu
-					aPdu = pdu;
-					break;
-
-				default:
-					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
-					System.out.println();
-			}
-			if (aPdu != null) {
-				generatedPdus.add(aPdu);
-				System.out.println("APDU container count " + generatedPdus.size());
-			}
-
-		}
-		for (int idx = 0; idx < generatedPdus.size(); idx++) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			DataOutputStream dos = new DataOutputStream(baos);
-			byte[] buffer;
-
-			aPdu = generatedPdus.get(idx);
-			aPdu.marshal(dos);
-
-			buffer = baos.toByteArray();
-			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-			socket.send(packet);
-			sentBufferList.add(aPdu.getTimestamp());
-			System.out.println("Observer Sent PDU of type " + aPdu.getClass().getName()+"\n");
-		}
-	}
-
-	/**
-	 * Main function takes no specific arguments, but is the recieving portion of the code.  Once it hears a specific type of PDU it creates another and sends it to the Run function 
-	 * called sender created on line 136 (2nd statement in the main function)
-	 * @param args command-line arguments
-	 * @throws IOException input-output error
-	 */
-	public static void main(String[] args) throws IOException {
-		DisTime disTime = DisTime.getInstance();
-
-		//
-		// Inital Hello world from entity:
-		//
-		OBSSendRecieve1 sender = new OBSSendRecieve1(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
-
-		EntityStatePdu OBSespdu = new EntityStatePdu();
-		Marking marking = new Marking();
-		marking.setCharactersString("Observer");
-		OBSespdu.setMarking(marking);
-		OBSespdu.setExerciseID((short) 1);
-		EntityID OBSID = OBSespdu.getEntityID();
-		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
-		OBSID.setApplication(1);
-		OBSID.setEntity(2);  
-		EntityType entityType = OBSespdu.getEntityType();
-		//
-		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
-		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
-		//
-		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
-		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
-		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
-		entityType.setCategory((short) 40);        // FDC  TGT = 1, Tank  OBS=40 OP
-//		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
-//		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
-		Vector3Double location = new Vector3Double();
-		location.setX(75.0);  //TGT = 150   OBS = 75
-		location.setY(75.0);  //TGT = 150   OBS = 75
-		location.setZ(50.0); //TGT = 20    OBS = 50
-		OBSespdu.setEntityLocation(location);
-		int timestamp = disTime.getDisAbsoluteTimestamp();
-		OBSespdu.setTimestamp(timestamp);
-		sender.run(OBSespdu);  //sends inital here I am and who I am
-
-		//other player to look out for:
-		EntityID FDCEntityID = new EntityID();
-		FDCEntityID.setEntity(1);
-		FDCEntityID.setApplication(1);
-		FDCEntityID.setSite(1);
-
-		EntityID TGTEntityID = new EntityID();
-		TGTEntityID.setEntity(3);
-		TGTEntityID.setApplication(1);
-		TGTEntityID.setSite(1);
-
-		/*  BELOW IS THE RECIEVE CODE  //
-		//                             //
-		//                             //
-		 */                             //
-		PduFactory factory;
-		MulticastSocket socket = null;
-		InetAddress address = null;
-		DatagramPacket packet;
-		short currentPduType;  //will use the curentPduType as the check for sending other packets.
-		
-		try {
-			System.out.println("Observer is in the OP and looking for targets...\n\n");
-			socket = new MulticastSocket(MULTICAST_PORT);
-			address = InetAddress.getByName(MULTICAST_GROUP);
-			socket.joinGroup(address);
-
-			factory = new PduFactory();
-
-			while (true) // Loop infinitely, receiving datagrams
-			{
-				byte buffer[] = new byte[1500]; // typical MTU size
-
-				packet = new DatagramPacket(buffer, buffer.length); // reset
-
-				socket.receive(packet);
-
-				String marking2 = new String();
-				Pdu pdu = factory.createPdu(packet.getData());
-				currentPduType = pdu.getPduType();
-				if (currentPduType == 14) //stop/freeze PDU
-				{
-					System.out.println("recieved Stop/Freeze packet...");
-					return;
-				}
-				if (pdu != null) {
-					if (sentBufferList.contains(pdu.getTimestamp())) {
-						pdu = null;
-					}
-					if (pdu != null) {
-
-						String currentPduTypeName = pdu.getClass().getName();
-						if (currentPduType == 1) {
-							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
-							marking2 = pdu2.getMarking().getCharactersString();
-						}
-
-						StringBuilder message = new StringBuilder();
-						message.append("received DIS PDU: ");
-						message.append("pduType ");
-						if (currentPduType < 10) {
-							message.append(" ");
-						}
-						message.append(currentPduType).append(" ").append(currentPduTypeName);
-						message.append(" ");
-						message.append(marking2);
-						System.out.println(message.toString());
-						//Reference for PDU Types: 
-						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
-						//
-
-						if (currentPduType == 1) //EntityState
-						{
-							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
-							EntityType PduEntityType = entityPDU.getEntityType();
-							if (PduEntityType.getCountry() == 222) {
-								ActionRequestPdu action = new ActionRequestPdu();
-								action.setExerciseID((short) 1);
-								action.setRequestID((long) 2);
-								action.setOriginatingEntityID(OBSID);
-								action.setReceivingEntityID(FDCEntityID);
-								timestamp = disTime.getDisAbsoluteTimestamp();
-								action.setTimestamp(timestamp);
-								System.out.println("\n Got a Russian SOB!  Preparing CFF to send.");
-								sender.run(action);
-							}
-						}
-
-						if (currentPduType == 3) //Detination
-						{
-							CommentPdu comment = new CommentPdu();
-							comment.setExerciseID((short) 1);
-							comment.setOriginatingEntityID(TGTEntityID);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							comment.setTimestamp(timestamp);
-							sender.run(comment);
-						}
-
-					} else {
-						System.out.println("received packet but pdu is null and originated from Observer. Still searching for other Targets...");
-					}
-				}
-			}
-		} catch (IOException e) {
-			System.out.println("Problem with Observer.PduReceiver, see exception trace:");
-			System.out.println(e);
-		} finally {
-			System.out.println("Observer.PduReceiver complete. - OUT!");
-		}
-
-	}
-
-}
+package MV3500Cohort2018JulySeptember.projects.FriscoFurr;
+
+import java.net.*;
+import java.io.*;
+import java.util.*;
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import java.io.IOException;
+import edu.nps.moves.disutil.PduFactory;
+import edu.nps.moves.disutil.DisTime;
+
+/* Observer send, receive */
+public class OBSSendRecieve1 {
+
+	/**
+	 * Default multicast group address we send on.
+	 */
+	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+
+	/**
+	 * Default multicast port used, matches Wireshark DIS capture default
+	 */
+	public static final int DEFAULT_MULTICAST_PORT = 3000;
+
+	private int port;
+	InetAddress multicastAddress;
+
+    /** socket value of shared interest */
+	public static final int MULTICAST_PORT = 3000;
+    /** socket value of shared interest */
+	public static final String MULTICAST_GROUP = "239.1.2.3";
+	private static final boolean USE_FAST_ESPDU = false;
+	private long[] sentBuffer = new long[100];
+	private static List sentBufferList;
+	DisTime disTime = DisTime.getInstance();
+	int transmission =1;
+
+	/**
+	 * Constructor just got to construct.
+	 * @param port of interest
+	 * @param multicast address of interest
+	 */
+	public OBSSendRecieve1(int port, String multicast) {
+		this.sentBufferList = new ArrayList<>();
+		try {
+			this.port = port;
+			multicastAddress = InetAddress.getByName(multicast);
+			if (!multicastAddress.isMulticastAddress()) {
+				System.out.println("Not a multicast address: " + multicast);
+			}
+		} catch (UnknownHostException e) {
+			System.out.println("Unable to open socket: " + e);
+		}
+	}
+
+	/**
+	 *  This would be the sending Run method.  Takes in several PDUs and for each one has a switch statement ready for it. 
+	 * @param pdupass passed pdu objects
+	 * @throws UnknownHostException unable to reach host address
+	 * @throws IOException input-output error
+	 */
+	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
+
+		List<Pdu> generatedPdus = new ArrayList<>();
+		Pdu aPdu = null;
+		if(transmission ==1){
+			System.out.println("\nInitalizing OP coms...");
+			transmission++;
+		}
+		if(transmission>1){
+		System.out.println("\nObserver Sending traffic...");
+		}
+		// Send the PDUs we created
+		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+		socket.joinGroup(localMulticastAddress);
+
+		for (Pdu i : pdupass) {
+			Pdu pdu = i;
+			if (sentBufferList.contains(pdu.getTimestamp())) {
+				break;
+			}
+
+			short currentPduType = pdu.getPduType();
+			System.out.println("in observer sender, processing PDU type: " + currentPduType);
+
+			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
+			{
+
+				case 1: //ENTITY_STATE:
+					aPdu = pdu;
+					break;
+
+				case 16: //ACTION_REQUEST:
+					aPdu = new ActionRequestPdu();
+					break;
+
+				case 22:  //CommentPdu
+					aPdu = pdu;
+					break;
+
+				default:
+					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
+					System.out.println();
+			}
+			if (aPdu != null) {
+				generatedPdus.add(aPdu);
+				System.out.println("APDU container count " + generatedPdus.size());
+			}
+
+		}
+		for (int idx = 0; idx < generatedPdus.size(); idx++) {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			DataOutputStream dos = new DataOutputStream(baos);
+			byte[] buffer;
+
+			aPdu = generatedPdus.get(idx);
+			aPdu.marshal(dos);
+
+			buffer = baos.toByteArray();
+			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+			socket.send(packet);
+			sentBufferList.add(aPdu.getTimestamp());
+			System.out.println("Observer Sent PDU of type " + aPdu.getClass().getName()+"\n");
+		}
+	}
+
+	/**
+	 * Main function takes no specific arguments, but is the recieving portion of the code.  Once it hears a specific type of PDU it creates another and sends it to the Run function 
+	 * called sender created on line 136 (2nd statement in the main function)
+	 * @param args command-line arguments
+	 * @throws IOException input-output error
+	 */
+	public static void main(String[] args) throws IOException {
+		DisTime disTime = DisTime.getInstance();
+
+		//
+		// Inital Hello world from entity:
+		//
+		OBSSendRecieve1 sender = new OBSSendRecieve1(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
+
+		EntityStatePdu OBSespdu = new EntityStatePdu();
+		Marking marking = new Marking();
+		marking.setCharactersString("Observer");
+		OBSespdu.setMarking(marking);
+		OBSespdu.setExerciseID((short) 1);
+		EntityID OBSID = OBSespdu.getEntityID();
+		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
+		OBSID.setApplication(1);
+		OBSID.setEntity(2);  
+		EntityType entityType = OBSespdu.getEntityType();
+		//
+		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
+		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
+		//
+		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
+		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
+		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
+		entityType.setCategory((short) 40);        // FDC  TGT = 1, Tank  OBS=40 OP
+//		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
+//		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
+		Vector3Double location = new Vector3Double();
+		location.setX(75.0);  //TGT = 150   OBS = 75
+		location.setY(75.0);  //TGT = 150   OBS = 75
+		location.setZ(50.0); //TGT = 20    OBS = 50
+		OBSespdu.setEntityLocation(location);
+		int timestamp = disTime.getDisAbsoluteTimestamp();
+		OBSespdu.setTimestamp(timestamp);
+		sender.run(OBSespdu);  //sends inital here I am and who I am
+
+		//other player to look out for:
+		EntityID FDCEntityID = new EntityID();
+		FDCEntityID.setEntity(1);
+		FDCEntityID.setApplication(1);
+		FDCEntityID.setSite(1);
+
+		EntityID TGTEntityID = new EntityID();
+		TGTEntityID.setEntity(3);
+		TGTEntityID.setApplication(1);
+		TGTEntityID.setSite(1);
+
+		/*  BELOW IS THE RECIEVE CODE  //
+		//                             //
+		//                             //
+		 */                             //
+		PduFactory factory;
+		MulticastSocket socket = null;
+		InetAddress address = null;
+		DatagramPacket packet;
+		short currentPduType;  //will use the curentPduType as the check for sending other packets.
+		
+		try {
+			System.out.println("Observer is in the OP and looking for targets...\n\n");
+			socket = new MulticastSocket(MULTICAST_PORT);
+			address = InetAddress.getByName(MULTICAST_GROUP);
+			socket.joinGroup(address);
+
+			factory = new PduFactory();
+
+			while (true) // Loop infinitely, receiving datagrams
+			{
+				byte buffer[] = new byte[1500]; // typical MTU size
+
+				packet = new DatagramPacket(buffer, buffer.length); // reset
+
+				socket.receive(packet);
+
+				String marking2 = new String();
+				Pdu pdu = factory.createPdu(packet.getData());
+				currentPduType = pdu.getPduType();
+				if (currentPduType == 14) //stop/freeze PDU
+				{
+					System.out.println("recieved Stop/Freeze packet...");
+					return;
+				}
+				if (pdu != null) {
+					if (sentBufferList.contains(pdu.getTimestamp())) {
+						pdu = null;
+					}
+					if (pdu != null) {
+
+						String currentPduTypeName = pdu.getClass().getName();
+						if (currentPduType == 1) {
+							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
+							marking2 = pdu2.getMarking().getCharactersString();
+						}
+
+						StringBuilder message = new StringBuilder();
+						message.append("received DIS PDU: ");
+						message.append("pduType ");
+						if (currentPduType < 10) {
+							message.append(" ");
+						}
+						message.append(currentPduType).append(" ").append(currentPduTypeName);
+						message.append(" ");
+						message.append(marking2);
+						System.out.println(message.toString());
+						//Reference for PDU Types: 
+						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
+						//
+
+						if (currentPduType == 1) //EntityState
+						{
+							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
+							EntityType PduEntityType = entityPDU.getEntityType();
+							if (PduEntityType.getCountry() == 222) {
+								ActionRequestPdu action = new ActionRequestPdu();
+								action.setExerciseID((short) 1);
+								action.setRequestID((long) 2);
+								action.setOriginatingEntityID(OBSID);
+								action.setReceivingEntityID(FDCEntityID);
+								timestamp = disTime.getDisAbsoluteTimestamp();
+								action.setTimestamp(timestamp);
+								System.out.println("\n Got a Russian SOB!  Preparing CFF to send.");
+								sender.run(action);
+							}
+						}
+
+						if (currentPduType == 3) //Detination
+						{
+							CommentPdu comment = new CommentPdu();
+							comment.setExerciseID((short) 1);
+							comment.setOriginatingEntityID(TGTEntityID);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							comment.setTimestamp(timestamp);
+							sender.run(comment);
+						}
+
+					} else {
+						System.out.println("received packet but pdu is null and originated from Observer. Still searching for other Targets...");
+					}
+				}
+			}
+		} catch (IOException e) {
+			System.out.println("Problem with Observer.PduReceiver, see exception trace:");
+			System.out.println(e);
+		} finally {
+			System.out.println("Observer.PduReceiver complete. - OUT!");
+		}
+
+	}
+
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/TGTSendRecieve.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/TGTSendReceive.java
similarity index 93%
rename from assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/TGTSendRecieve.java
rename to assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/TGTSendReceive.java
index 82eb78be710da7d2ad215f1adaaffe2a9079bd34..62aee3b78012cba8eb526f67394de04d85d21a5e 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/TGTSendRecieve.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/TGTSendReceive.java
@@ -1,261 +1,264 @@
-package MV3500Cohort2018JulySeptember.projects.FriscoFurr;
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import java.io.IOException;
-import edu.nps.moves.disutil.PduFactory;
-import edu.nps.moves.disutil.DisTime;
-
-public class TGTSendRecieve {
-
-	/**
-	 * Default multicast group address we send on.
-	 */
-	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
-	/**
-	 * Default multicast port used, matches Wireshark DIS capture default
-	 */
-	public static final int DEFAULT_MULTICAST_PORT = 3000;
-
-	private int port;
-	InetAddress multicastAddress;
-
-	public static final int MULTICAST_PORT = 3000;
-	public static final String MULTICAST_GROUP = "239.1.2.3";
-	public static final boolean USE_FAST_ESPDU = false;
-	public long[] sentBuffer = new long[100];
-	public static List sentBufferList;
-	DisTime disTime = DisTime.getInstance();
-	int transmission = 1;
-
-	/**
-	 * Constructor just got to construct.
-	 * @param port
-	 * @param multicast 
-	 */
-	public TGTSendRecieve(int port, String multicast) {
-		this.sentBufferList = new ArrayList<>();
-		try {
-			this.port = port;
-			multicastAddress = InetAddress.getByName(multicast);
-			if (!multicastAddress.isMulticastAddress()) {
-				System.out.println("Not a multicast address: " + multicast);
-			}
-		} catch (UnknownHostException e) {
-			System.out.println("Unable to open socket: " + e);
-		}
-	}
-
-	/**
-	 *  This would be the sending Run method.  Takes in several PDUs and for each one has a switch statement ready for it. 
-	 * @param pdupass PDU passed
-	 * @throws UnknownHostException unable to reach host address
-	 * @throws IOException input-output error
-	 */
-	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
-
-		List<Pdu> generatedPdus = new ArrayList<>();
-		Pdu aPdu = null;
-		if (transmission == 1) {
-			System.out.println("\nTarget is rolling out...");
-			transmission++;
-		}
-		if (transmission > 1) {
-			System.out.println("\nDeath from above everywhere! (sending function started)...");
-		}
-		// Send the PDUs we created
-		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-		socket.joinGroup(localMulticastAddress);
-
-		for (Pdu i : pdupass) {
-			Pdu pdu = i;
-			if (sentBufferList.contains(pdu.getTimestamp())) {
-				break;
-			}
-
-			short currentPduType = pdu.getPduType();
-			System.out.println("in Target sender, processing PDU type: " + currentPduType);
-//					
-			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
-			{
-
-				case 1: //ENTITY_STATE:
-					aPdu = pdu;
-					break;
-
-				case 3: //detination PDU
-					aPdu = pdu;
-					break;
-
-				default:
-					//add some shit that makes sense here. 
-					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
-					System.out.println();
-			}
-			if (aPdu != null) {
-				generatedPdus.add(aPdu);
-				System.out.println("APDU container count " + generatedPdus.size());
-			}
-
-		}
-		for (int idx = 0; idx < generatedPdus.size(); idx++) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			DataOutputStream dos = new DataOutputStream(baos);
-			byte[] buffer;
-
-			aPdu = generatedPdus.get(idx);
-			aPdu.marshal(dos);
-
-			buffer = baos.toByteArray();
-			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-			socket.send(packet);
-			//sentBuffer[sentBuffer.length] = aPdu.getTimestamp();
-			sentBufferList.add(aPdu.getTimestamp());
-			System.out.println("Target Sent PDU of type " + aPdu.getClass().getName() + "\n");
-		}
-	}
-
-	/**
-	 * Main function takes no specific arguments, but is the recieving portion of the code.  Once it hears a specific type of PDU it creates another and sends it to the Run function 
-	 * called sender created on line 135 (2nd statement in the main function)
-	 * @param args command-line arguments
-	 * @throws IOException input-output error
-	 */
-	public static void main(String[] args) throws IOException {
-		DisTime disTime = DisTime.getInstance();
-		//turns on the sender code - might need to move around down into the recieve with the if statements...
-
-		//
-		// Inital Hello world from entity:
-		//
-		TGTSendRecieve sender = new TGTSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
-
-		EntityStatePdu TGTespdu = new EntityStatePdu();
-		Marking marking = new Marking();
-		marking.setCharactersString("Target");
-		TGTespdu.setMarking(marking);
-		TGTespdu.setExerciseID((short) 1);
-		EntityID OBSID = TGTespdu.getEntityID();
-		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
-		OBSID.setApplication(1);
-		OBSID.setEntity(3); 
-		EntityType entityType = TGTespdu.getEntityType();
-		//
-		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
-		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
-		//
-		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
-		entityType.setCountry(222);              // USA TGT = 222 (Russia), OBS = 225
-		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
-		entityType.setCategory((short) 1);        // FDC  TGT = 1, Tank  OBS=40 OP
-		entityType.setSubcategory((short) 2);     // M1068 TGT = 2, T72 tank  NONE FOR OP
-
-		Vector3Double location = new Vector3Double();
-		location.setX(150.0);  //TGT = 150   OBS = 75
-		location.setY(150.0);  //TGT = 150   OBS = 75
-		location.setZ(20.0); //TGT = 20    OBS = 50
-		TGTespdu.setEntityLocation(location);
-		int timestamp = disTime.getDisAbsoluteTimestamp();
-		TGTespdu.setTimestamp(timestamp);
-		sender.run(TGTespdu);  //sends inital here I am and who I am
-
-		//other player to look out for:
-		EntityID FDCEntityID = new EntityID();
-		FDCEntityID.setEntity(1);
-		FDCEntityID.setApplication(1);
-		FDCEntityID.setSite(1);
-
-		EntityID OBSEntityID = new EntityID();
-		OBSEntityID.setEntity(2);
-		OBSEntityID.setApplication(1);
-		OBSEntityID.setSite(1);
-
-		/*  BELOW IS THE RECIEVE CODE  //
-		//                             //
-		//                             //
-		 */                             //
-		PduFactory factory;
-		MulticastSocket socket = null;
-		InetAddress address = null;
-		DatagramPacket packet;
-		short currentPduType;  //will use the curentPduType as the check for sending other packets.
-
-		try {
-			System.out.println("Russian T72 out on the prowl...\n\n");
-			socket = new MulticastSocket(MULTICAST_PORT);
-			address = InetAddress.getByName(MULTICAST_GROUP);
-			socket.joinGroup(address);
-
-			factory = new PduFactory();
-
-			while (true) // Loop infinitely, receiving datagrams
-			{
-				byte buffer[] = new byte[1500]; // typical MTU size
-
-				packet = new DatagramPacket(buffer, buffer.length); // reset
-
-				socket.receive(packet);
-			
-				String marking2 = new String();
-				Pdu pdu = factory.createPdu(packet.getData());
-				currentPduType = pdu.getPduType();
-				if (currentPduType == 14) //stop/freeze PDU
-				{
-					System.out.println("recieved Stop/Freeze packet...");
-					return;
-				}
-				if (pdu != null) {
-					if (sentBufferList.contains(pdu.getTimestamp())) {
-						pdu = null;
-					}
-					if (pdu != null) {
-
-						String currentPduTypeName = pdu.getClass().getName();
-						if (currentPduType == 1) {
-							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
-							marking2 = pdu2.getMarking().getCharactersString();
-						}
-						StringBuilder message = new StringBuilder();
-						message.append("received DIS PDU: ");
-						message.append("pduType ");
-						if (currentPduType < 10) {
-							message.append(" ");
-						}
-						message.append(currentPduType).append(" ").append(currentPduTypeName);
-						message.append(" ");
-						message.append(marking2);
-						System.out.println(message.toString());
-						//Reference for PDU Types: 
-						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
-						//
-
-
-						if (currentPduType == 2) //FirePDU
-						{
-							DetonationPdu det = new DetonationPdu();
-							det.setExerciseID((short) 1);
-							det.setDetonationResult((short)1);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							det.setTimestamp(timestamp);
-							sender.run(det);
-						}
-
-					} else {
-						System.out.println("received packet but pdu is null and originated from Target. Still doing sketchy Russian things...");
-					}
-				}
-			}
-		} catch (IOException e) {
-			System.out.println("Problem with Target.PduReceiver, see exception trace:");
-			System.out.println(e);
-		} finally {
-			System.out.println("Target.PduReceiver complete. - T-72 DESTROYED!");
-		}
-
-	}
-
-}
+package MV3500Cohort2018JulySeptember.projects.FriscoFurr;
+
+import java.net.*;
+import java.io.*;
+import java.util.*;
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import java.io.IOException;
+import edu.nps.moves.disutil.PduFactory;
+import edu.nps.moves.disutil.DisTime;
+
+/** Target send and receive */
+public class TGTSendReceive 
+{
+	/**
+	 * Default multicast group address we send on.
+	 */
+	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+
+	/**
+	 * Default multicast port used, matches Wireshark DIS capture default
+	 */
+	public static final int DEFAULT_MULTICAST_PORT = 3000;
+
+	private int port;
+	InetAddress multicastAddress;
+
+    /** socket value of shared interest */
+	public static final int MULTICAST_PORT = 3000;
+    /** socket value of shared interest */
+	public static final String MULTICAST_GROUP = "239.1.2.3";
+	private static final boolean USE_FAST_ESPDU = false;
+	private long[] sentBuffer = new long[100];
+	private static List sentBufferList;
+	DisTime disTime = DisTime.getInstance();
+	int transmission = 1;
+
+	/**
+	 * Constructor just got to construct.
+	 * @param port TCP port of interest
+	 * @param multicast address
+	 */
+	public TGTSendReceive(int port, String multicast) {
+		this.sentBufferList = new ArrayList<>();
+		try {
+			this.port = port;
+			multicastAddress = InetAddress.getByName(multicast);
+			if (!multicastAddress.isMulticastAddress()) {
+				System.out.println("Not a multicast address: " + multicast);
+			}
+		} catch (UnknownHostException e) {
+			System.out.println("Unable to open socket: " + e);
+		}
+	}
+
+	/**
+	 *  This would be the sending Run method.  Takes in several PDUs and for each one has a switch statement ready for it. 
+	 * @param pdupass PDU passed
+	 * @throws UnknownHostException unable to reach host address
+	 * @throws IOException input-output error
+	 */
+	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
+
+		List<Pdu> generatedPdus = new ArrayList<>();
+		Pdu aPdu = null;
+		if (transmission == 1) {
+			System.out.println("\nTarget is rolling out...");
+			transmission++;
+		}
+		if (transmission > 1) {
+			System.out.println("\nDeath from above everywhere! (sending function started)...");
+		}
+		// Send the PDUs we created
+		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+		socket.joinGroup(localMulticastAddress);
+
+		for (Pdu i : pdupass) {
+			Pdu pdu = i;
+			if (sentBufferList.contains(pdu.getTimestamp())) {
+				break;
+			}
+
+			short currentPduType = pdu.getPduType();
+			System.out.println("in Target sender, processing PDU type: " + currentPduType);
+//					
+			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
+			{
+
+				case 1: //ENTITY_STATE:
+					aPdu = pdu;
+					break;
+
+				case 3: //detination PDU
+					aPdu = pdu;
+					break;
+
+				default:
+					//add some shit that makes sense here. 
+					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
+					System.out.println();
+			}
+			if (aPdu != null) {
+				generatedPdus.add(aPdu);
+				System.out.println("APDU container count " + generatedPdus.size());
+			}
+
+		}
+		for (int idx = 0; idx < generatedPdus.size(); idx++) {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			DataOutputStream dos = new DataOutputStream(baos);
+			byte[] buffer;
+
+			aPdu = generatedPdus.get(idx);
+			aPdu.marshal(dos);
+
+			buffer = baos.toByteArray();
+			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+			socket.send(packet);
+			//sentBuffer[sentBuffer.length] = aPdu.getTimestamp();
+			sentBufferList.add(aPdu.getTimestamp());
+			System.out.println("Target Sent PDU of type " + aPdu.getClass().getName() + "\n");
+		}
+	}
+
+	/**
+	 * Main function takes no specific arguments, but is the recieving portion of the code.  Once it hears a specific type of PDU it creates another and sends it to the Run function 
+	 * called sender created on line 135 (2nd statement in the main function)
+	 * @param args command-line arguments
+	 * @throws IOException input-output error
+	 */
+	public static void main(String[] args) throws IOException {
+		DisTime disTime = DisTime.getInstance();
+		//turns on the sender code - might need to move around down into the recieve with the if statements...
+
+		//
+		// Inital Hello world from entity:
+		//
+		TGTSendReceive sender = new TGTSendReceive(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
+
+		EntityStatePdu TGTespdu = new EntityStatePdu();
+		Marking marking = new Marking();
+		marking.setCharactersString("Target");
+		TGTespdu.setMarking(marking);
+		TGTespdu.setExerciseID((short) 1);
+		EntityID OBSID = TGTespdu.getEntityID();
+		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
+		OBSID.setApplication(1);
+		OBSID.setEntity(3); 
+		EntityType entityType = TGTespdu.getEntityType();
+		//
+		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
+		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
+		//
+		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
+		entityType.setCountry(222);              // USA TGT = 222 (Russia), OBS = 225
+		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
+		entityType.setCategory((short) 1);        // FDC  TGT = 1, Tank  OBS=40 OP
+		entityType.setSubcategory((short) 2);     // M1068 TGT = 2, T72 tank  NONE FOR OP
+
+		Vector3Double location = new Vector3Double();
+		location.setX(150.0);  //TGT = 150   OBS = 75
+		location.setY(150.0);  //TGT = 150   OBS = 75
+		location.setZ(20.0); //TGT = 20    OBS = 50
+		TGTespdu.setEntityLocation(location);
+		int timestamp = disTime.getDisAbsoluteTimestamp();
+		TGTespdu.setTimestamp(timestamp);
+		sender.run(TGTespdu);  //sends inital here I am and who I am
+
+		//other player to look out for:
+		EntityID FDCEntityID = new EntityID();
+		FDCEntityID.setEntity(1);
+		FDCEntityID.setApplication(1);
+		FDCEntityID.setSite(1);
+
+		EntityID OBSEntityID = new EntityID();
+		OBSEntityID.setEntity(2);
+		OBSEntityID.setApplication(1);
+		OBSEntityID.setSite(1);
+
+		/*  BELOW IS THE RECIEVE CODE  //
+		//                             //
+		//                             //
+		 */                             //
+		PduFactory factory;
+		MulticastSocket socket = null;
+		InetAddress address = null;
+		DatagramPacket packet;
+		short currentPduType;  //will use the curentPduType as the check for sending other packets.
+
+		try {
+			System.out.println("Russian T72 out on the prowl...\n\n");
+			socket = new MulticastSocket(MULTICAST_PORT);
+			address = InetAddress.getByName(MULTICAST_GROUP);
+			socket.joinGroup(address);
+
+			factory = new PduFactory();
+
+			while (true) // Loop infinitely, receiving datagrams
+			{
+				byte buffer[] = new byte[1500]; // typical MTU size
+
+				packet = new DatagramPacket(buffer, buffer.length); // reset
+
+				socket.receive(packet);
+			
+				String marking2 = new String();
+				Pdu pdu = factory.createPdu(packet.getData());
+				currentPduType = pdu.getPduType();
+				if (currentPduType == 14) //stop/freeze PDU
+				{
+					System.out.println("recieved Stop/Freeze packet...");
+					return;
+				}
+				if (pdu != null) {
+					if (sentBufferList.contains(pdu.getTimestamp())) {
+						pdu = null;
+					}
+					if (pdu != null) {
+
+						String currentPduTypeName = pdu.getClass().getName();
+						if (currentPduType == 1) {
+							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
+							marking2 = pdu2.getMarking().getCharactersString();
+						}
+						StringBuilder message = new StringBuilder();
+						message.append("received DIS PDU: ");
+						message.append("pduType ");
+						if (currentPduType < 10) {
+							message.append(" ");
+						}
+						message.append(currentPduType).append(" ").append(currentPduTypeName);
+						message.append(" ");
+						message.append(marking2);
+						System.out.println(message.toString());
+						//Reference for PDU Types: 
+						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
+						//
+
+
+						if (currentPduType == 2) //FirePDU
+						{
+							DetonationPdu det = new DetonationPdu();
+							det.setExerciseID((short) 1);
+							det.setDetonationResult((short)1);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							det.setTimestamp(timestamp);
+							sender.run(det);
+						}
+
+					} else {
+						System.out.println("received packet but pdu is null and originated from Target. Still doing sketchy Russian things...");
+					}
+				}
+			}
+		} catch (IOException e) {
+			System.out.println("Problem with Target.PduReceiver, see exception trace:");
+			System.out.println(e);
+		} finally {
+			System.out.println("Target.PduReceiver complete. - T-72 DESTROYED!");
+		}
+
+	}
+
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FDCSendRecieve.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FDCSendRecieve.java
index dd9c4f2a3920e617eb6277705cdd1739b29dbb6e..f726b83971ab8cd2a66206c1a24482cf5e84f598 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FDCSendRecieve.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FDCSendRecieve.java
@@ -1,281 +1,288 @@
-package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import java.io.IOException;
-import edu.nps.moves.disutil.PduFactory;
-import edu.nps.moves.disutil.DisTime;
-
-public class FDCSendRecieve {
-
-	/**
-	 * Default multicast group address we send on.
-	 */
-	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
-	/**
-	 * Default multicast port used, matches Wireshark DIS capture default
-	 */
-	public static final int DEFAULT_MULTICAST_PORT = 3000;
-
-	private int port;
-	InetAddress multicastAddress;
-
-	public static final int MULTICAST_PORT = 3000;
-	public static final String MULTICAST_GROUP = "239.1.2.3";
-	public static final boolean USE_FAST_ESPDU = false;
-	public long[] sentBuffer = new long[100];
-	public static List sentBufferList;
-	DisTime disTime = DisTime.getInstance();
-
-	public FDCSendRecieve(int port, String multicast) {
-		this.sentBufferList = new ArrayList<>();
-		try {
-			this.port = port;
-			multicastAddress = InetAddress.getByName(multicast);
-			if (!multicastAddress.isMulticastAddress()) {
-				System.out.println("Not a multicast address: " + multicast);
-			}
-		} catch (UnknownHostException e) {
-			System.out.println("Unable to open socket: " + e);
-		}
-	}
-
-	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
-
-		List<Pdu> generatedPdus = new ArrayList<>();
-		Pdu aPdu = null;
-		System.out.println("\nFDC Sender started...");
-		// Send the PDUs we created
-		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-		socket.joinGroup(localMulticastAddress);
-
-		for (Pdu i : pdupass) {
-			Pdu pdu = i;
-			if (sentBufferList.contains(pdu.getTimestamp())) {
-				break;
-			}
-
-			short currentPduType = pdu.getPduType();
-			System.out.println("in sender, recived PDU type: " + currentPduType);
-
-			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
-			{
-
-				case 1: //ENTITY_STATE:
-					aPdu = pdu;
-					break;
-
-				case 2: //FIRE
-					aPdu = pdu;
-					break;
-//
-				case 15: //AcknowledgePdu
-					aPdu = pdu;
-					break;
-
-				case 17:
-					aPdu = pdu;
-					break;
-
-				case 14:
-					aPdu = pdu;
-					break;
-
-				default:
-					System.out.print("PDU of type " + pdu + " not supported, created or sent ");
-					System.out.println();
-			}
-			if (aPdu != null) {
-				generatedPdus.add(aPdu);
-				System.out.println("APDU container count " + generatedPdus.size());
-			}
-
-		}
-		for (int idx = 0; idx < generatedPdus.size(); idx++) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			DataOutputStream dos = new DataOutputStream(baos);
-			byte[] buffer;
-
-			aPdu = generatedPdus.get(idx);
-			aPdu.marshal(dos);
-
-			buffer = baos.toByteArray();
-			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-			socket.send(packet);
-			sentBufferList.add(aPdu.getTimestamp());
-			System.out.println("Sent PDU of type " + aPdu.getClass().getName()+ "\n");
-		}
-	}
-
-	public static void main(String[] args) throws IOException, InterruptedException {
-		DisTime disTime = DisTime.getInstance();
-
-		FDCSendRecieve sender = new FDCSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
-
-		EntityStatePdu FDCespdu = new EntityStatePdu();
-		Marking marking = new Marking();
-		marking.setCharactersString("FDC");
-		FDCespdu.setMarking(marking);
-		FDCespdu.setExerciseID((short) 1);
-		EntityID FDCID = FDCespdu.getEntityID();
-		FDCID.setSite(1);  // 0 is apparently not a valid site number, per the spec
-		FDCID.setApplication(1);
-		FDCID.setEntity(1);  //change for each person I think???  - JMF
-		EntityType entityType = FDCespdu.getEntityType();
-		//
-		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
-		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
-		//
-		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
-		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
-		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
-		entityType.setCategory((short) 3);        // FDC  TGT = 1, Tank  OBS=40 OP
-		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
-		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
-		Vector3Double location = new Vector3Double();
-		location.setX(0.0);  //TGT = 150   OBS = 75
-		location.setY(0.0);  //TGT = 150   OBS = 75
-		location.setZ(10.0); //TGT = 20    OBS = 50
-		FDCespdu.setEntityLocation(location);
-		int timestamp = disTime.getDisAbsoluteTimestamp();
-		FDCespdu.setTimestamp(timestamp);
-
-		sender.run(FDCespdu);  //sends inital here I am and who I am
-
-		//Set up other players to look for:
-		EntityID OBSEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
-		OBSEntityID.setEntity(2);
-		OBSEntityID.setApplication(1);
-		OBSEntityID.setSite(1);
-
-		EntityID TGTEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
-		TGTEntityID.setEntity(3);
-		TGTEntityID.setApplication(1);
-		TGTEntityID.setSite(1);
-
-		/*  BELOW IS THE RECIEVE CODE  //
-		//                             //
-		//                             //
-		 */                             //
-		PduFactory factory;
-		MulticastSocket socket = null;
-		InetAddress address = null;
-		DatagramPacket packet;
-		short currentPduType = 0;  //will use the curentPduType as the check for sending other packets.
-
-		try {
-			System.out.println("FDC is alive and ready to recieve fire missions...\n\n");
-			socket = new MulticastSocket(MULTICAST_PORT);
-			address = InetAddress.getByName(MULTICAST_GROUP);
-			socket.joinGroup(address);
-
-			factory = new PduFactory();
-
-			while (true) // Loop infinitely, receiving datagrams
-			{
-				byte buffer[] = new byte[1500]; // typical MTU size
-
-				packet = new DatagramPacket(buffer, buffer.length); // reset
-
-				socket.receive(packet);
-
-				String marking2 = new String();
-				Pdu pdu = factory.createPdu(packet.getData());
-				currentPduType = pdu.getPduType();
-				if (currentPduType == 14) //stop/freeze PDU
-				{
-					System.out.println("recieved Stop/Freeze packet...");
-					return;
-				}
-//					pdu.setExerciseID((short)5);
-				if (pdu != null) {
-					if (sentBufferList.contains(pdu.getTimestamp())) {
-						pdu = null;
-					}
-					if (pdu != null) {
-
-						String currentPduTypeName = pdu.getClass().getName();
-
-						if (currentPduType == 1) {
-							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
-							marking2 = pdu2.getMarking().getCharactersString();
-						}
-						StringBuilder message = new StringBuilder();
-						message.append("received DIS PDU: ");
-						message.append("pduType ");
-						if (currentPduType < 10) {
-							message.append(" ");
-						}
-						message.append(currentPduType).append(" ").append(currentPduTypeName);
-						message.append(" ");
-						message.append(marking2);
-						System.out.println(message.toString());
-						//Reference for PDU Types: 
-						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
-						//
-
-						if (currentPduType == 1) //EntityState
-						{
-							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
-							EntityType PduEntityType = entityPDU.getEntityType();
-							if (PduEntityType.getCountry() == 225) {
-								Thread.sleep((long) 200);
-								timestamp = disTime.getDisAbsoluteTimestamp();
-								FDCespdu.setTimestamp(timestamp);
-								System.out.println("Talking to the Observer, sending a radio check ");
-								sender.run(FDCespdu);
-							}
-						}
-						if (currentPduType == 16) //Action request
-						{
-							// Action response is sending a Null PDU, not sure why...
-							AcknowledgePdu ack = new AcknowledgePdu();
-							ack.setExerciseID((short) 1);
-							ack.setRequestID((long) 1);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							ack.setTimestamp(timestamp);
-
-							FirePdu fire = new FirePdu();
-							fire.setExerciseID((short) 1);
-							fire.setFireMissionIndex(1000);
-							fire.setRangeToTarget((float) Math.sqrt(Math.pow(150, 2) + Math.pow(150, 2)));  //would pass in target info, but here we know location of tgt is (150,150) and FDC (0,0)
-							fire.setFiringEntityID(FDCID);
-							fire.setTargetEntityID(TGTEntityID);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							fire.setTimestamp(timestamp);
-							sender.run(ack, fire);
-						}
-
-						if (currentPduType == 22) //Comment PDU
-						{
-							AcknowledgePdu ack = new AcknowledgePdu();
-							ack.setExerciseID((short) 1);
-							ack.setRequestID((long) 1);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							ack.setTimestamp(timestamp);
-
-							StopFreezePdu stop = new StopFreezePdu();
-							stop.setExerciseID((short) 1);
-							stop.setRequestID((long) 1);
-							sender.run(ack, stop);
-						}
-
-					} else {
-						System.out.println("received packet but pdu is null and originated from FDC. Still standing by...");
-					}
-				}
-			}
-		} catch (IOException e) {
-			System.out.println("Problem with FDC.PduReceiver, see exception trace:");
-			System.out.println(e);
-		} finally {
-			System.out.println("FDC.PduReceiver complete. - OUT!");
-		}
-
-	}
-
-}
+package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
+
+import java.net.*;
+import java.io.*;
+import java.util.*;
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import java.io.IOException;
+import edu.nps.moves.disutil.PduFactory;
+import edu.nps.moves.disutil.DisTime;
+
+public class FDCSendRecieve {
+
+	/**
+	 * Default multicast group address we send on.
+	 */
+	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+
+	/**
+	 * Default multicast port used, matches Wireshark DIS capture default
+	 */
+	public static final int DEFAULT_MULTICAST_PORT = 3000;
+
+	private int port;
+	InetAddress multicastAddress;
+
+    /** socket parameter of interest */
+	public static final int MULTICAST_PORT = 3000;
+    /** socket parameter of interest */
+	public static final String MULTICAST_GROUP = "239.1.2.3";
+	static final boolean USE_FAST_ESPDU = false;
+	private long[] sentBuffer = new long[100];
+	private static List sentBufferList;
+	DisTime disTime = DisTime.getInstance();
+
+	public FDCSendRecieve(int port, String multicast) {
+		this.sentBufferList = new ArrayList<>();
+		try {
+			this.port = port;
+			multicastAddress = InetAddress.getByName(multicast);
+			if (!multicastAddress.isMulticastAddress()) {
+				System.out.println("Not a multicast address: " + multicast);
+			}
+		} catch (UnknownHostException e) {
+			System.out.println("Unable to open socket: " + e);
+		}
+	}
+
+	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
+
+		List<Pdu> generatedPdus = new ArrayList<>();
+		Pdu aPdu = null;
+		System.out.println("\nFDC Sender started...");
+		// Send the PDUs we created
+		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+		socket.joinGroup(localMulticastAddress);
+
+		for (Pdu i : pdupass) {
+			Pdu pdu = i;
+			if (sentBufferList.contains(pdu.getTimestamp())) {
+				break;
+			}
+
+			short currentPduType = pdu.getPduType();
+			System.out.println("in sender, recived PDU type: " + currentPduType);
+
+			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
+			{
+
+				case 1: //ENTITY_STATE:
+					aPdu = pdu;
+					break;
+
+				case 2: //FIRE
+					aPdu = pdu;
+					break;
+//
+				case 15: //AcknowledgePdu
+					aPdu = pdu;
+					break;
+
+				case 17:
+					aPdu = pdu;
+					break;
+
+				case 14:
+					aPdu = pdu;
+					break;
+
+				default:
+					System.out.print("PDU of type " + pdu + " not supported, created or sent ");
+					System.out.println();
+			}
+			if (aPdu != null) {
+				generatedPdus.add(aPdu);
+				System.out.println("APDU container count " + generatedPdus.size());
+			}
+
+		}
+		for (int idx = 0; idx < generatedPdus.size(); idx++) {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			DataOutputStream dos = new DataOutputStream(baos);
+			byte[] buffer;
+
+			aPdu = generatedPdus.get(idx);
+			aPdu.marshal(dos);
+
+			buffer = baos.toByteArray();
+			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+			socket.send(packet);
+			sentBufferList.add(aPdu.getTimestamp());
+			System.out.println("Sent PDU of type " + aPdu.getClass().getName()+ "\n");
+		}
+	}
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+	public static void main(String[] args) throws IOException, InterruptedException {
+		DisTime disTime = DisTime.getInstance();
+
+		FDCSendRecieve sender = new FDCSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
+
+		EntityStatePdu FDCespdu = new EntityStatePdu();
+		Marking marking = new Marking();
+		marking.setCharactersString("FDC");
+		FDCespdu.setMarking(marking);
+		FDCespdu.setExerciseID((short) 1);
+		EntityID FDCID = FDCespdu.getEntityID();
+		FDCID.setSite(1);  // 0 is apparently not a valid site number, per the spec
+		FDCID.setApplication(1);
+		FDCID.setEntity(1);  //change for each person I think???  - JMF
+		EntityType entityType = FDCespdu.getEntityType();
+		//
+		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
+		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
+		//
+		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
+		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
+		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
+		entityType.setCategory((short) 3);        // FDC  TGT = 1, Tank  OBS=40 OP
+		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
+		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
+		Vector3Double location = new Vector3Double();
+		location.setX(0.0);  //TGT = 150   OBS = 75
+		location.setY(0.0);  //TGT = 150   OBS = 75
+		location.setZ(10.0); //TGT = 20    OBS = 50
+		FDCespdu.setEntityLocation(location);
+		int timestamp = disTime.getDisAbsoluteTimestamp();
+		FDCespdu.setTimestamp(timestamp);
+
+		sender.run(FDCespdu);  //sends inital here I am and who I am
+
+		//Set up other players to look for:
+		EntityID OBSEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
+		OBSEntityID.setEntity(2);
+		OBSEntityID.setApplication(1);
+		OBSEntityID.setSite(1);
+
+		EntityID TGTEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
+		TGTEntityID.setEntity(3);
+		TGTEntityID.setApplication(1);
+		TGTEntityID.setSite(1);
+
+		/*  BELOW IS THE RECIEVE CODE  //
+		//                             //
+		//                             //
+		 */                             //
+		PduFactory factory;
+		MulticastSocket socket = null;
+		InetAddress address = null;
+		DatagramPacket packet;
+		short currentPduType = 0;  //will use the curentPduType as the check for sending other packets.
+
+		try {
+			System.out.println("FDC is alive and ready to recieve fire missions...\n\n");
+			socket = new MulticastSocket(MULTICAST_PORT);
+			address = InetAddress.getByName(MULTICAST_GROUP);
+			socket.joinGroup(address);
+
+			factory = new PduFactory();
+
+			while (true) // Loop infinitely, receiving datagrams
+			{
+				byte buffer[] = new byte[1500]; // typical MTU size
+
+				packet = new DatagramPacket(buffer, buffer.length); // reset
+
+				socket.receive(packet);
+
+				String marking2 = new String();
+				Pdu pdu = factory.createPdu(packet.getData());
+				currentPduType = pdu.getPduType();
+				if (currentPduType == 14) //stop/freeze PDU
+				{
+					System.out.println("recieved Stop/Freeze packet...");
+					return;
+				}
+//					pdu.setExerciseID((short)5);
+				if (pdu != null) {
+					if (sentBufferList.contains(pdu.getTimestamp())) {
+						pdu = null;
+					}
+					if (pdu != null) {
+
+						String currentPduTypeName = pdu.getClass().getName();
+
+						if (currentPduType == 1) {
+							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
+							marking2 = pdu2.getMarking().getCharactersString();
+						}
+						StringBuilder message = new StringBuilder();
+						message.append("received DIS PDU: ");
+						message.append("pduType ");
+						if (currentPduType < 10) {
+							message.append(" ");
+						}
+						message.append(currentPduType).append(" ").append(currentPduTypeName);
+						message.append(" ");
+						message.append(marking2);
+						System.out.println(message.toString());
+						//Reference for PDU Types: 
+						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
+						//
+
+						if (currentPduType == 1) //EntityState
+						{
+							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
+							EntityType PduEntityType = entityPDU.getEntityType();
+							if (PduEntityType.getCountry() == 225) {
+								Thread.sleep((long) 200);
+								timestamp = disTime.getDisAbsoluteTimestamp();
+								FDCespdu.setTimestamp(timestamp);
+								System.out.println("Talking to the Observer, sending a radio check ");
+								sender.run(FDCespdu);
+							}
+						}
+						if (currentPduType == 16) //Action request
+						{
+							// Action response is sending a Null PDU, not sure why...
+							AcknowledgePdu ack = new AcknowledgePdu();
+							ack.setExerciseID((short) 1);
+							ack.setRequestID((long) 1);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							ack.setTimestamp(timestamp);
+
+							FirePdu fire = new FirePdu();
+							fire.setExerciseID((short) 1);
+							fire.setFireMissionIndex(1000);
+							fire.setRangeToTarget((float) Math.sqrt(Math.pow(150, 2) + Math.pow(150, 2)));  //would pass in target info, but here we know location of tgt is (150,150) and FDC (0,0)
+							fire.setFiringEntityID(FDCID);
+							fire.setTargetEntityID(TGTEntityID);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							fire.setTimestamp(timestamp);
+							sender.run(ack, fire);
+						}
+
+						if (currentPduType == 22) //Comment PDU
+						{
+							AcknowledgePdu ack = new AcknowledgePdu();
+							ack.setExerciseID((short) 1);
+							ack.setRequestID((long) 1);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							ack.setTimestamp(timestamp);
+
+							StopFreezePdu stop = new StopFreezePdu();
+							stop.setExerciseID((short) 1);
+							stop.setRequestID((long) 1);
+							sender.run(ack, stop);
+						}
+
+					} else {
+						System.out.println("received packet but pdu is null and originated from FDC. Still standing by...");
+					}
+				}
+			}
+		} catch (IOException e) {
+			System.out.println("Problem with FDC.PduReceiver, see exception trace:");
+			System.out.println(e);
+		} finally {
+			System.out.println("FDC.PduReceiver complete. - OUT!");
+		}
+
+	}
+
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FriscoFurrPduSender.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FriscoFurrPduSender.java
index 6a5a617d8f3568db57748290b128cf90019cb3c2..d1b27987e930224df64c255ea29a1bde9bea4c50 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FriscoFurrPduSender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/FriscoFurrPduSender.java
@@ -1,226 +1,230 @@
-package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import edu.nps.moves.disenum.*;
-import edu.nps.moves.examples.ClassNameComparator;
-
-
-/**
- * This is an example that sends many/most types of PDUs. Useful for testing standards
- * compliance or getting a full set of PDUs. It also writes the generated PDUs to an XML file.
- * Adapted from OpenDIS library example package edu.nps.moves.examples
- *
- * @author DMcG
- * @version $Id:$
- */
-public class FriscoFurrPduSender
-{
-    /** Default multicast group address we send on. */
-    public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-	
-    /** Default multicast port used, matches Wireshark DIS capture default */
-    public static final int    DEFAULT_MULTICAST_PORT    = 3000;
-	
-    private int port;
-    InetAddress multicastAddress;
-
-    public FriscoFurrPduSender(int port, String multicast) {
-        try
-		{
-            this.port = port;
-            multicastAddress = InetAddress.getByName(multicast);
-            if (!multicastAddress.isMulticastAddress())
-			{
-                System.out.println("Not a multicast address: " + multicast);
-            }
-        } 
-		catch (UnknownHostException e) {
-            System.out.println("Unable to open socket: " + e);
-        }
-    }
-
-    public void run()
-	{
-		System.out.println("DisExamples.PduSender started...");
-        try {
-            List<Pdu> generatedPdus = new ArrayList<>();
-
-            // Loop through all the enumerated PDU types, create a PDU for each type,
-            // and add that PDU to a list.
-			System.out.println("number of PDU types in pduType is " + PduType.values().length);
-            for (PduType pdu : PduType.values()) {
-                Pdu aPdu = null;
-				System.out.println(pdu);
-                switch (pdu) // using enumeration values from edu.nps.moves.disenum.*
-				{
-//					
-//                    case ENTITY_STATE:
-//						System.out.println("Case: Enitity_State "+pdu+"\n");
-//                        aPdu = new EntityStatePdu();
-//						EntityStatePdu espdu = (EntityStatePdu) aPdu;
-//						Marking marking = new Marking();
-//						marking.setCharactersString("TEST DUDE");
-//						espdu.setMarking(marking);
-//						Vector3Double espduLocation = new Vector3Double();
-//						espduLocation.setX(1.0);
-//						espduLocation.setY(2.0);
-//						espduLocation.setZ(3.0);
-//						EntityType entityType = espdu.getEntityType();
-//						entityType.setCountry(222);
-//						
-//                        break;
-                        
-//                    case COMMENT:
-//                        aPdu = new CommentPdu();
-//						CommentPdu comment = (CommentPdu) aPdu;
-//						EntityID OBSEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
-//						OBSEntityID.setEntity(2);
-//						OBSEntityID.setApplication(1);
-//						OBSEntityID.setSite(1);
-//						comment.setOriginatingEntityID(OBSEntityID);
-//						
-//						long number = 1;
-//						//comment.setNumberOfFixedDatumRecords(number);
-//						
-//						comment.setNumberOfVariableDatumRecords(number);
-//						List datum = new ArrayList<FixedDatum>();
-//						FixedDatum superDatum = new FixedDatum();
-//						superDatum.setFixedDatumID((long)5);
-//						superDatum.setFixedDatumValue((long) 54321);
-//						datum.add(10);
-//						datum.add(superDatum);
-//						comment.setFixedDatums(datum);
-//						List Vdatum = new ArrayList<VariableDatum>();
-//						VariableDatum testBitch = new VariableDatum();
-//						testBitch.setVariableDatumID(1);
-//						Vdatum.add(15);
-//						comment.setVariableDatums(Vdatum);
-//						break;
-
-//                    case FIRE:
-//                        aPdu = new FirePdu();
-//                        break;
-
-                    case DETONATION:
-                        aPdu = new DetonationPdu();
-						System.out.println("detonationPdu type " + aPdu.getPduType());
-                        break;
-//
-//                    case COLLISION:
-//                        aPdu = new CollisionPdu();
-//                        break;
-//
-//                    case SERVICE_REQUEST:
-//                        aPdu = new ServiceRequestPdu();
-//                        break;
-//
-//                    case RESUPPLY_OFFER:
-//                        aPdu = new ResupplyOfferPdu();
-//                        break;
-//
-//                    case RESUPPLY_RECEIVED:
-//                        aPdu = new ResupplyReceivedPdu();
-//                        break;
-//
-//                    case RESUPPLY_CANCEL:
-//                        aPdu = new ResupplyCancelPdu();
-//                        break;
-//
-//                    case REPAIR_COMPLETE:
-//                        aPdu = new RepairCompletePdu();
-//                        break;
-//
-//                    case REPAIR_RESPONSE:
-//                        aPdu = new RepairResponsePdu();
-//                        break;
-//
-//                    case CREATE_ENTITY:
-//                        aPdu = new CreateEntityPdu();
-//                        break;
-//
-//                    case REMOVE_ENTITY:
-//                        aPdu = new RemoveEntityPdu();
-//                        break;
-//
-//                    case START_RESUME:
-//                        aPdu = new StartResumePdu();
-//                        break;
-//
-//                    case STOP_FREEZE:
-//                        aPdu = new StopFreezePdu();
-//                        break;
-//
-//                    case ACKNOWLEDGE:
-//                        aPdu = new AcknowledgePdu();
-//                        break;
-//
-//                    case ACTION_REQUEST:
-//                        aPdu = new ActionRequestPdu();
-//						ActionRequestPdu action = (ActionRequestPdu) aPdu;
-//						EntityID OBSEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
-//						OBSEntityID.setEntity(2);
-//						OBSEntityID.setApplication(1);
-//						OBSEntityID.setSite(1);
-//						action.setOriginatingEntityID(OBSEntityID);
-//                        break;
-
-                    default:
-                        System.out.print("PDU of type " + pdu + " not supported, created or sent ");
-                        System.out.println();
-                }
-                if (aPdu != null)
-				{
-                    generatedPdus.add(aPdu);
-					System.out.println("APDU container count "+generatedPdus.size());
-                }
-            }
-
-            // Sort the created PDUs by class name
-            Collections.sort(generatedPdus, new ClassNameComparator());
-
-            // Send the PDUs we created
-            InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-            MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-            socket.joinGroup(localMulticastAddress);
-
-            for (int idx = 0; idx < generatedPdus.size(); idx++)
-			{
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                DataOutputStream dos = new DataOutputStream(baos);
-                byte[] buffer;
-
-                Pdu aPdu = generatedPdus.get(idx);
-                aPdu.marshal(dos);
-
-                buffer = baos.toByteArray();
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-                socket.send(packet);
-                System.out.println("Sent PDU of type " + aPdu.getClass().getName());
-            }
-            // write the PDUs out to an XML file.
-            //PduContainer container = new PduContainer();
-            //container.setPdus(generatedPdus);
-            //container.marshallToXml("examplePdus.xml");
-        } catch (IOException e)
-		{
-            System.out.println(e);
-        }
-    }
-
-    public static void main(String args[])
-	{
-        if (args.length == 2) {
-            FriscoFurrPduSender sender = new FriscoFurrPduSender(Integer.parseInt(args[0]), args[1]);
-            sender.run();
-        } else {
-            System.out.println("Usage:   PduSender <port> <multicast group>");
-            System.out.println("Default: PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-            FriscoFurrPduSender sender = new  FriscoFurrPduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
-            sender.run();
-        }
-    }
-}
+package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import edu.nps.moves.disenum.*;
+import edu.nps.moves.examples.ClassNameComparator;
+
+
+/**
+ * This is an example that sends many/most types of PDUs. Useful for testing standards
+ * compliance or getting a full set of PDUs. It also writes the generated PDUs to an XML file.
+ * Adapted from OpenDIS library example package edu.nps.moves.examples
+ *
+ * @author DMcG
+ * @version $Id:$
+ */
+public class FriscoFurrPduSender
+{
+    /** Default multicast group address we send on. */
+    public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+	
+    /** Default multicast port used, matches Wireshark DIS capture default */
+    public static final int    DEFAULT_MULTICAST_PORT    = 3000;
+	
+    private int port;
+    InetAddress multicastAddress;
+
+    public FriscoFurrPduSender(int port, String multicast) {
+        try
+		{
+            this.port = port;
+            multicastAddress = InetAddress.getByName(multicast);
+            if (!multicastAddress.isMulticastAddress())
+			{
+                System.out.println("Not a multicast address: " + multicast);
+            }
+        } 
+		catch (UnknownHostException e) {
+            System.out.println("Unable to open socket: " + e);
+        }
+    }
+
+    public void run()
+	{
+		System.out.println("DisExamples.PduSender started...");
+        try {
+            List<Pdu> generatedPdus = new ArrayList<>();
+
+            // Loop through all the enumerated PDU types, create a PDU for each type,
+            // and add that PDU to a list.
+			System.out.println("number of PDU types in pduType is " + PduType.values().length);
+            for (PduType pdu : PduType.values()) {
+                Pdu aPdu = null;
+				System.out.println(pdu);
+                switch (pdu) // using enumeration values from edu.nps.moves.disenum.*
+				{
+//					
+//                    case ENTITY_STATE:
+//						System.out.println("Case: Enitity_State "+pdu+"\n");
+//                        aPdu = new EntityStatePdu();
+//						EntityStatePdu espdu = (EntityStatePdu) aPdu;
+//						Marking marking = new Marking();
+//						marking.setCharactersString("TEST DUDE");
+//						espdu.setMarking(marking);
+//						Vector3Double espduLocation = new Vector3Double();
+//						espduLocation.setX(1.0);
+//						espduLocation.setY(2.0);
+//						espduLocation.setZ(3.0);
+//						EntityType entityType = espdu.getEntityType();
+//						entityType.setCountry(222);
+//						
+//                        break;
+                        
+//                    case COMMENT:
+//                        aPdu = new CommentPdu();
+//						CommentPdu comment = (CommentPdu) aPdu;
+//						EntityID OBSEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
+//						OBSEntityID.setEntity(2);
+//						OBSEntityID.setApplication(1);
+//						OBSEntityID.setSite(1);
+//						comment.setOriginatingEntityID(OBSEntityID);
+//						
+//						long number = 1;
+//						//comment.setNumberOfFixedDatumRecords(number);
+//						
+//						comment.setNumberOfVariableDatumRecords(number);
+//						List datum = new ArrayList<FixedDatum>();
+//						FixedDatum superDatum = new FixedDatum();
+//						superDatum.setFixedDatumID((long)5);
+//						superDatum.setFixedDatumValue((long) 54321);
+//						datum.add(10);
+//						datum.add(superDatum);
+//						comment.setFixedDatums(datum);
+//						List Vdatum = new ArrayList<VariableDatum>();
+//						VariableDatum testBitch = new VariableDatum();
+//						testBitch.setVariableDatumID(1);
+//						Vdatum.add(15);
+//						comment.setVariableDatums(Vdatum);
+//						break;
+
+//                    case FIRE:
+//                        aPdu = new FirePdu();
+//                        break;
+
+                    case DETONATION:
+                        aPdu = new DetonationPdu();
+						System.out.println("detonationPdu type " + aPdu.getPduType());
+                        break;
+//
+//                    case COLLISION:
+//                        aPdu = new CollisionPdu();
+//                        break;
+//
+//                    case SERVICE_REQUEST:
+//                        aPdu = new ServiceRequestPdu();
+//                        break;
+//
+//                    case RESUPPLY_OFFER:
+//                        aPdu = new ResupplyOfferPdu();
+//                        break;
+//
+//                    case RESUPPLY_RECEIVED:
+//                        aPdu = new ResupplyReceivedPdu();
+//                        break;
+//
+//                    case RESUPPLY_CANCEL:
+//                        aPdu = new ResupplyCancelPdu();
+//                        break;
+//
+//                    case REPAIR_COMPLETE:
+//                        aPdu = new RepairCompletePdu();
+//                        break;
+//
+//                    case REPAIR_RESPONSE:
+//                        aPdu = new RepairResponsePdu();
+//                        break;
+//
+//                    case CREATE_ENTITY:
+//                        aPdu = new CreateEntityPdu();
+//                        break;
+//
+//                    case REMOVE_ENTITY:
+//                        aPdu = new RemoveEntityPdu();
+//                        break;
+//
+//                    case START_RESUME:
+//                        aPdu = new StartResumePdu();
+//                        break;
+//
+//                    case STOP_FREEZE:
+//                        aPdu = new StopFreezePdu();
+//                        break;
+//
+//                    case ACKNOWLEDGE:
+//                        aPdu = new AcknowledgePdu();
+//                        break;
+//
+//                    case ACTION_REQUEST:
+//                        aPdu = new ActionRequestPdu();
+//						ActionRequestPdu action = (ActionRequestPdu) aPdu;
+//						EntityID OBSEntityID = new EntityID();  // need to figure out what this is....and then just put into if statement below
+//						OBSEntityID.setEntity(2);
+//						OBSEntityID.setApplication(1);
+//						OBSEntityID.setSite(1);
+//						action.setOriginatingEntityID(OBSEntityID);
+//                        break;
+
+                    default:
+                        System.out.print("PDU of type " + pdu + " not supported, created or sent ");
+                        System.out.println();
+                }
+                if (aPdu != null)
+				{
+                    generatedPdus.add(aPdu);
+					System.out.println("APDU container count "+generatedPdus.size());
+                }
+            }
+
+            // Sort the created PDUs by class name
+            Collections.sort(generatedPdus, new ClassNameComparator());
+
+            // Send the PDUs we created
+            InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+            MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+            socket.joinGroup(localMulticastAddress);
+
+            for (int idx = 0; idx < generatedPdus.size(); idx++)
+			{
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                DataOutputStream dos = new DataOutputStream(baos);
+                byte[] buffer;
+
+                Pdu aPdu = generatedPdus.get(idx);
+                aPdu.marshal(dos);
+
+                buffer = baos.toByteArray();
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+                socket.send(packet);
+                System.out.println("Sent PDU of type " + aPdu.getClass().getName());
+            }
+            // write the PDUs out to an XML file.
+            //PduContainer container = new PduContainer();
+            //container.setPdus(generatedPdus);
+            //container.marshallToXml("examplePdus.xml");
+        } catch (IOException e)
+		{
+            System.out.println(e);
+        }
+    }
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String args[])
+	{
+        if (args.length == 2) {
+            FriscoFurrPduSender sender = new FriscoFurrPduSender(Integer.parseInt(args[0]), args[1]);
+            sender.run();
+        } else {
+            System.out.println("Usage:   PduSender <port> <multicast group>");
+            System.out.println("Default: PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
+            FriscoFurrPduSender sender = new  FriscoFurrPduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
+            sender.run();
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/OBSSendRecieve1.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/OBSSendRecieve1.java
index 306f731956de6c3eb870725b28ebe3eb16c8d7a7..e13f643c986984f55f2e086bd193cb0d7507bfed 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/OBSSendRecieve1.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/OBSSendRecieve1.java
@@ -1,310 +1,312 @@
-package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import java.io.IOException;
-import edu.nps.moves.disutil.PduFactory;
-import edu.nps.moves.disutil.DisTime;
-
-public class OBSSendRecieve1 {
-
-	/**
-	 * Default multicast group address we send on.
-	 */
-	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
-	/**
-	 * Default multicast port used, matches Wireshark DIS capture default
-	 */
-	public static final int DEFAULT_MULTICAST_PORT = 3000;
-
-	private int port;
-	InetAddress multicastAddress;
-
-	public static final int MULTICAST_PORT = 3000;
-	public static final String MULTICAST_GROUP = "239.1.2.3";
-	public static final boolean USE_FAST_ESPDU = false;
-	public long[] sentBuffer = new long[100];
-	public static List sentBufferList;
-	DisTime disTime = DisTime.getInstance();
-	int transmission =1;
-
-	public OBSSendRecieve1(int port, String multicast) {
-		this.sentBufferList = new ArrayList<>();
-		try {
-			this.port = port;
-			multicastAddress = InetAddress.getByName(multicast);
-			if (!multicastAddress.isMulticastAddress()) {
-				System.out.println("Not a multicast address: " + multicast);
-			}
-		} catch (UnknownHostException e) {
-			System.out.println("Unable to open socket: " + e);
-		}
-	}
-
-	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
-
-		List<Pdu> generatedPdus = new ArrayList<>();
-		Pdu aPdu = null;
-		if(transmission ==1){
-			System.out.println("\nInitalizing OP coms...");
-			transmission++;
-		}
-		if(transmission>1){
-		System.out.println("\nObserver Sending traffic...");
-		}
-		// Send the PDUs we created
-		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-		socket.joinGroup(localMulticastAddress);
-
-		for (Pdu i : pdupass) {
-			Pdu pdu = i;
-			if (sentBufferList.contains(pdu.getTimestamp())) {
-				break;
-			}
-
-			short currentPduType = pdu.getPduType();
-			System.out.println("in observer sender, processing PDU type: " + currentPduType);
-//					String currentPduTypeName = pdu.getClass().getName();
-//					short currentProtocolFamilyID = pdu.getProtocolFamily();
-//					String currentPduFamilyName = pdu.getClass().getSuperclass().getSimpleName();
-
-			// Loop through all the enumerated PDU types, create a PDU for each type,
-			// and add that PDU to a list.
-			//System.out.println(pdu);
-			//Change the switch statement to the currentPduType from the recieve portion, then when a packet we want comes in, send the CASE file. 
-			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
-			{
-
-				case 1: //ENTITY_STATE:
-					aPdu = pdu;
-					break;
-
-//					case COMMENT:
-//						aPdu = new CommentPdu();
-//						break;
-//
-//				case 2: //FIRE
-//					aPdu = pdu;
-//					break;
-//
-//					case DETONATION:
-//						aPdu = new DetonationPdu();
-//						break;
-//
-//				case 15: //AcknowledgePdu
-//					aPdu = pdu;
-//					break;
-////
-				case 16: //ACTION_REQUEST:
-					aPdu = new ActionRequestPdu();
-					break;
-
-				case 22:  //CommentPdu
-					aPdu = pdu;
-					break;
-
-//				case 14:
-//					aPdu = pdu;
-//					break;
-				default:
-					//add some shit that makes sense here. 
-					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
-					System.out.println();
-			}
-			if (aPdu != null) {
-				generatedPdus.add(aPdu);
-				System.out.println("APDU container count " + generatedPdus.size());
-			}
-
-		}
-		for (int idx = 0; idx < generatedPdus.size(); idx++) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			DataOutputStream dos = new DataOutputStream(baos);
-			byte[] buffer;
-
-			aPdu = generatedPdus.get(idx);
-			aPdu.marshal(dos);
-
-			buffer = baos.toByteArray();
-			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-			socket.send(packet);
-			//sentBuffer[sentBuffer.length] = aPdu.getTimestamp();
-			sentBufferList.add(aPdu.getTimestamp());
-			System.out.println("Observer Sent PDU of type " + aPdu.getClass().getName()+"/n");
-		}
-	}
-
-	public static void main(String[] args) throws IOException {
-		DisTime disTime = DisTime.getInstance();
-		//turns on the sender code - might need to move around down into the recieve with the if statements...
-		//
-		//    ORIGINAL SENDING CODE MAIN CLASS:
-		//
-		//
-//        if (args.length == 2) {
-//            FDCSendRecieve sender = new FDCSendRecieve(Integer.parseInt(args[0]), args[1]);
-//          //  sender.run();  //needs to be sender.run(pdu) 
-//        } else {
-//            System.out.println("Usage:   PduSender <port> <multicast group>");
-//            System.out.println("Default: PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-//            FDCSendRecieve sender = new  FDCSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
-		//    sender.run();
-//        }
-
-		//
-		// Inital Hello world from entity:
-		//
-		OBSSendRecieve1 sender = new OBSSendRecieve1(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
-
-		EntityStatePdu OBSespdu = new EntityStatePdu();
-		Marking marking = new Marking();
-		marking.setCharactersString("Observer");
-		OBSespdu.setMarking(marking);
-		OBSespdu.setExerciseID((short) 1);
-		EntityID OBSID = OBSespdu.getEntityID();
-		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
-		OBSID.setApplication(1);
-		OBSID.setEntity(2);  //change for each person I think???  - JMF
-		EntityType entityType = OBSespdu.getEntityType();
-		//
-		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
-		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
-		//
-		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
-		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
-		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
-		entityType.setCategory((short) 40);        // FDC  TGT = 1, Tank  OBS=40 OP
-//		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
-//		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
-		Vector3Double location = new Vector3Double();
-		location.setX(75.0);  //TGT = 150   OBS = 75
-		location.setY(75.0);  //TGT = 150   OBS = 75
-		location.setZ(50.0); //TGT = 20    OBS = 50
-		OBSespdu.setEntityLocation(location);
-		int timestamp = disTime.getDisAbsoluteTimestamp();
-		OBSespdu.setTimestamp(timestamp);
-		//FDCespdu.setTimestamp(System.currentTimeMillis());
-		sender.run(OBSespdu);  //sends inital here I am and who I am
-
-		//other player to look out for:
-		EntityID FDCEntityID = new EntityID();
-		FDCEntityID.setEntity(1);
-		FDCEntityID.setApplication(1);
-		FDCEntityID.setSite(1);
-
-		EntityID TGTEntityID = new EntityID();
-		TGTEntityID.setEntity(3);
-		TGTEntityID.setApplication(1);
-		TGTEntityID.setSite(1);
-
-		/*  BELOW IS THE RECIEVE CODE  //
-		//                             //
-		//                             //
-		 */                             //
-		PduFactory factory;
-		MulticastSocket socket = null;
-		InetAddress address = null;
-		DatagramPacket packet;
-		short currentPduType;  //will use the curentPduType as the check for sending other packets.
-		
-		try {
-			// TODO: Change the line below to make sense for each class
-			System.out.println("Observer is in the OP and looking for targets...\n\n");
-			socket = new MulticastSocket(MULTICAST_PORT);
-			address = InetAddress.getByName(MULTICAST_GROUP);
-			socket.joinGroup(address);
-
-			factory = new PduFactory();
-
-			while (true) // Loop infinitely, receiving datagrams
-			{
-				byte buffer[] = new byte[1500]; // typical MTU size
-
-				packet = new DatagramPacket(buffer, buffer.length); // reset
-
-				socket.receive(packet);
-				//
-				//TODO: NEED IF STATEMENT IF THE SENDER IS THIS CLASS TO DELETE.
-				//
-
-				String marking2 = new String();
-				Pdu pdu = factory.createPdu(packet.getData());
-				currentPduType = pdu.getPduType();
-				if (currentPduType == 14) //stop/freeze PDU
-				{
-					System.out.println("recieved Stop/Freeze packet...");
-					return;
-				}
-//					pdu.setExerciseID((short)5);
-				if (pdu != null) {
-					if (sentBufferList.contains(pdu.getTimestamp())) {
-						pdu = null;
-					}
-					if (pdu != null) {
-
-						String currentPduTypeName = pdu.getClass().getName();
-						if (currentPduType == 1) {
-							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
-							marking2 = pdu2.getMarking().getCharactersString();
-						}
-//Keep adding any if statements as needed for the class you are building. 
-						StringBuilder message = new StringBuilder();
-						message.append("received DIS PDU: ");
-						message.append("pduType ");
-						if (currentPduType < 10) {
-							message.append(" ");
-						}
-						message.append(currentPduType).append(" ").append(currentPduTypeName);
-						message.append(" ");
-						message.append(marking2);
-						System.out.println(message.toString());
-						//Reference for PDU Types: 
-						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
-						//
-
-						if (currentPduType == 1) //EntityState
-						{
-							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
-							EntityType PduEntityType = entityPDU.getEntityType();
-							if (PduEntityType.getCountry() == 222) {
-								ActionRequestPdu action = new ActionRequestPdu();
-								action.setExerciseID((short) 1);
-								action.setRequestID((long) 2);
-								action.setOriginatingEntityID(OBSID);
-								action.setReceivingEntityID(FDCEntityID);
-								timestamp = disTime.getDisAbsoluteTimestamp();
-								action.setTimestamp(timestamp);
-								System.out.println("\n Got a Russian SOB!  Preparing CFF to send.");
-								sender.run(action);
-							}
-						}
-
-						if (currentPduType == 3) //Detination
-						{
-							CommentPdu comment = new CommentPdu();
-							comment.setExerciseID((short) 1);
-							comment.setOriginatingEntityID(TGTEntityID);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							comment.setTimestamp(timestamp);
-							sender.run(comment);
-						}
-
-					} else {
-						System.out.println("received packet but pdu is null and originated from Observer. Still searching for other Targets...");
-					}
-				}
-			}
-		} catch (IOException e) {
-			System.out.println("Problem with Observer.PduReceiver, see exception trace:");
-			System.out.println(e);
-		} finally {
-			System.out.println("Observer.PduReceiver complete. - OUT!");
-		}
-
-	}
-
-}
+package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
+
+import java.net.*;
+import java.io.*;
+import java.util.*;
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import java.io.IOException;
+import edu.nps.moves.disutil.PduFactory;
+import edu.nps.moves.disutil.DisTime;
+
+public class OBSSendRecieve1 {
+
+	/**
+	 * Default multicast group address we send on.
+	 */
+	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+
+	/**
+	 * Default multicast port used, matches Wireshark DIS capture default
+	 */
+	public static final int DEFAULT_MULTICAST_PORT = 3000;
+
+	private int port;
+	InetAddress multicastAddress;
+
+    /** socket parameter of interest */
+	public static final int MULTICAST_PORT = 3000;
+    /** socket parameter of interest */
+	public static final String MULTICAST_GROUP = "239.1.2.3";
+	static final boolean USE_FAST_ESPDU = false;
+	private long[] sentBuffer = new long[100];
+	private static List sentBufferList;
+	DisTime disTime = DisTime.getInstance();
+	int transmission =1;
+
+	public OBSSendRecieve1(int port, String multicast) {
+		this.sentBufferList = new ArrayList<>();
+		try {
+			this.port = port;
+			multicastAddress = InetAddress.getByName(multicast);
+			if (!multicastAddress.isMulticastAddress()) {
+				System.out.println("Not a multicast address: " + multicast);
+			}
+		} catch (UnknownHostException e) {
+			System.out.println("Unable to open socket: " + e);
+		}
+	}
+
+	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
+
+		List<Pdu> generatedPdus = new ArrayList<>();
+		Pdu aPdu = null;
+		if(transmission ==1){
+			System.out.println("\nInitalizing OP coms...");
+			transmission++;
+		}
+		if(transmission>1){
+		System.out.println("\nObserver Sending traffic...");
+		}
+		// Send the PDUs we created
+		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+		socket.joinGroup(localMulticastAddress);
+
+		for (Pdu i : pdupass) {
+			Pdu pdu = i;
+			if (sentBufferList.contains(pdu.getTimestamp())) {
+				break;
+			}
+
+			short currentPduType = pdu.getPduType();
+			System.out.println("in observer sender, processing PDU type: " + currentPduType);
+//					String currentPduTypeName = pdu.getClass().getName();
+//					short currentProtocolFamilyID = pdu.getProtocolFamily();
+//					String currentPduFamilyName = pdu.getClass().getSuperclass().getSimpleName();
+
+			// Loop through all the enumerated PDU types, create a PDU for each type,
+			// and add that PDU to a list.
+			//System.out.println(pdu);
+			//Change the switch statement to the currentPduType from the recieve portion, then when a packet we want comes in, send the CASE file. 
+			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
+			{
+
+				case 1: //ENTITY_STATE:
+					aPdu = pdu;
+					break;
+
+//					case COMMENT:
+//						aPdu = new CommentPdu();
+//						break;
+//
+//				case 2: //FIRE
+//					aPdu = pdu;
+//					break;
+//
+//					case DETONATION:
+//						aPdu = new DetonationPdu();
+//						break;
+//
+//				case 15: //AcknowledgePdu
+//					aPdu = pdu;
+//					break;
+////
+				case 16: //ACTION_REQUEST:
+					aPdu = new ActionRequestPdu();
+					break;
+
+				case 22:  //CommentPdu
+					aPdu = pdu;
+					break;
+
+//				case 14:
+//					aPdu = pdu;
+//					break;
+				default:
+					//add some shit that makes sense here. 
+					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
+					System.out.println();
+			}
+			if (aPdu != null) {
+				generatedPdus.add(aPdu);
+				System.out.println("APDU container count " + generatedPdus.size());
+			}
+
+		}
+		for (int idx = 0; idx < generatedPdus.size(); idx++) {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			DataOutputStream dos = new DataOutputStream(baos);
+			byte[] buffer;
+
+			aPdu = generatedPdus.get(idx);
+			aPdu.marshal(dos);
+
+			buffer = baos.toByteArray();
+			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+			socket.send(packet);
+			//sentBuffer[sentBuffer.length] = aPdu.getTimestamp();
+			sentBufferList.add(aPdu.getTimestamp());
+			System.out.println("Observer Sent PDU of type " + aPdu.getClass().getName()+"/n");
+		}
+	}
+
+	public static void main(String[] args) throws IOException {
+		DisTime disTime = DisTime.getInstance();
+		//turns on the sender code - might need to move around down into the recieve with the if statements...
+		//
+		//    ORIGINAL SENDING CODE MAIN CLASS:
+		//
+		//
+//        if (args.length == 2) {
+//            FDCSendRecieve sender = new FDCSendRecieve(Integer.parseInt(args[0]), args[1]);
+//          //  sender.run();  //needs to be sender.run(pdu) 
+//        } else {
+//            System.out.println("Usage:   PduSender <port> <multicast group>");
+//            System.out.println("Default: PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
+//            FDCSendRecieve sender = new  FDCSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
+		//    sender.run();
+//        }
+
+		//
+		// Inital Hello world from entity:
+		//
+		OBSSendRecieve1 sender = new OBSSendRecieve1(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
+
+		EntityStatePdu OBSespdu = new EntityStatePdu();
+		Marking marking = new Marking();
+		marking.setCharactersString("Observer");
+		OBSespdu.setMarking(marking);
+		OBSespdu.setExerciseID((short) 1);
+		EntityID OBSID = OBSespdu.getEntityID();
+		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
+		OBSID.setApplication(1);
+		OBSID.setEntity(2);  //change for each person I think???  - JMF
+		EntityType entityType = OBSespdu.getEntityType();
+		//
+		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
+		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
+		//
+		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
+		entityType.setCountry(225);              // USA TGT = 222 (Russia), OBS = 225
+		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
+		entityType.setCategory((short) 40);        // FDC  TGT = 1, Tank  OBS=40 OP
+//		entityType.setSubcategory((short) 12);     // M1068 TGT = 2, T72 tank  NONE FOR OP
+//		entityType.setSpec((short) 1);            // M1068 w/ SICUP Tent  NONE FOR TGT OR OP
+		Vector3Double location = new Vector3Double();
+		location.setX(75.0);  //TGT = 150   OBS = 75
+		location.setY(75.0);  //TGT = 150   OBS = 75
+		location.setZ(50.0); //TGT = 20    OBS = 50
+		OBSespdu.setEntityLocation(location);
+		int timestamp = disTime.getDisAbsoluteTimestamp();
+		OBSespdu.setTimestamp(timestamp);
+		//FDCespdu.setTimestamp(System.currentTimeMillis());
+		sender.run(OBSespdu);  //sends inital here I am and who I am
+
+		//other player to look out for:
+		EntityID FDCEntityID = new EntityID();
+		FDCEntityID.setEntity(1);
+		FDCEntityID.setApplication(1);
+		FDCEntityID.setSite(1);
+
+		EntityID TGTEntityID = new EntityID();
+		TGTEntityID.setEntity(3);
+		TGTEntityID.setApplication(1);
+		TGTEntityID.setSite(1);
+
+		/*  BELOW IS THE RECIEVE CODE  //
+		//                             //
+		//                             //
+		 */                             //
+		PduFactory factory;
+		MulticastSocket socket = null;
+		InetAddress address = null;
+		DatagramPacket packet;
+		short currentPduType;  //will use the curentPduType as the check for sending other packets.
+		
+		try {
+			// TODO: Change the line below to make sense for each class
+			System.out.println("Observer is in the OP and looking for targets...\n\n");
+			socket = new MulticastSocket(MULTICAST_PORT);
+			address = InetAddress.getByName(MULTICAST_GROUP);
+			socket.joinGroup(address);
+
+			factory = new PduFactory();
+
+			while (true) // Loop infinitely, receiving datagrams
+			{
+				byte buffer[] = new byte[1500]; // typical MTU size
+
+				packet = new DatagramPacket(buffer, buffer.length); // reset
+
+				socket.receive(packet);
+				//
+				//TODO: NEED IF STATEMENT IF THE SENDER IS THIS CLASS TO DELETE.
+				//
+
+				String marking2 = new String();
+				Pdu pdu = factory.createPdu(packet.getData());
+				currentPduType = pdu.getPduType();
+				if (currentPduType == 14) //stop/freeze PDU
+				{
+					System.out.println("recieved Stop/Freeze packet...");
+					return;
+				}
+//					pdu.setExerciseID((short)5);
+				if (pdu != null) {
+					if (sentBufferList.contains(pdu.getTimestamp())) {
+						pdu = null;
+					}
+					if (pdu != null) {
+
+						String currentPduTypeName = pdu.getClass().getName();
+						if (currentPduType == 1) {
+							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
+							marking2 = pdu2.getMarking().getCharactersString();
+						}
+//Keep adding any if statements as needed for the class you are building. 
+						StringBuilder message = new StringBuilder();
+						message.append("received DIS PDU: ");
+						message.append("pduType ");
+						if (currentPduType < 10) {
+							message.append(" ");
+						}
+						message.append(currentPduType).append(" ").append(currentPduTypeName);
+						message.append(" ");
+						message.append(marking2);
+						System.out.println(message.toString());
+						//Reference for PDU Types: 
+						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
+						//
+
+						if (currentPduType == 1) //EntityState
+						{
+							EntityStatePdu entityPDU = (EntityStatePdu) pdu;
+							EntityType PduEntityType = entityPDU.getEntityType();
+							if (PduEntityType.getCountry() == 222) {
+								ActionRequestPdu action = new ActionRequestPdu();
+								action.setExerciseID((short) 1);
+								action.setRequestID((long) 2);
+								action.setOriginatingEntityID(OBSID);
+								action.setReceivingEntityID(FDCEntityID);
+								timestamp = disTime.getDisAbsoluteTimestamp();
+								action.setTimestamp(timestamp);
+								System.out.println("\n Got a Russian SOB!  Preparing CFF to send.");
+								sender.run(action);
+							}
+						}
+
+						if (currentPduType == 3) //Detination
+						{
+							CommentPdu comment = new CommentPdu();
+							comment.setExerciseID((short) 1);
+							comment.setOriginatingEntityID(TGTEntityID);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							comment.setTimestamp(timestamp);
+							sender.run(comment);
+						}
+
+					} else {
+						System.out.println("received packet but pdu is null and originated from Observer. Still searching for other Targets...");
+					}
+				}
+			}
+		} catch (IOException e) {
+			System.out.println("Problem with Observer.PduReceiver, see exception trace:");
+			System.out.println(e);
+		} finally {
+			System.out.println("Observer.PduReceiver complete. - OUT!");
+		}
+
+	}
+
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/TGTSendRecieve.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/TGTSendRecieve.java
index 7a218265fb2b255824daf667fc036cb67709bc74..f096673607c67f3bfe41e24664b495b9bf7cb5dd 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/TGTSendRecieve.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/FriscoFurr/originals/TGTSendRecieve.java
@@ -1,250 +1,252 @@
-package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import edu.nps.moves.dis.*; // OpenDIS version 4
-import java.io.IOException;
-import edu.nps.moves.disutil.PduFactory;
-import edu.nps.moves.disutil.DisTime;
-
-public class TGTSendRecieve {
-
-	/**
-	 * Default multicast group address we send on.
-	 */
-	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
-	/**
-	 * Default multicast port used, matches Wireshark DIS capture default
-	 */
-	public static final int DEFAULT_MULTICAST_PORT = 3000;
-
-	private int port;
-	InetAddress multicastAddress;
-
-	public static final int MULTICAST_PORT = 3000;
-	public static final String MULTICAST_GROUP = "239.1.2.3";
-	public static final boolean USE_FAST_ESPDU = false;
-	public long[] sentBuffer = new long[100];
-	public static List sentBufferList;
-	DisTime disTime = DisTime.getInstance();
-	int transmission = 1;
-
-	public TGTSendRecieve(int port, String multicast) {
-		this.sentBufferList = new ArrayList<>();
-		try {
-			this.port = port;
-			multicastAddress = InetAddress.getByName(multicast);
-			if (!multicastAddress.isMulticastAddress()) {
-				System.out.println("Not a multicast address: " + multicast);
-			}
-		} catch (UnknownHostException e) {
-			System.out.println("Unable to open socket: " + e);
-		}
-	}
-
-	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
-
-		List<Pdu> generatedPdus = new ArrayList<>();
-		Pdu aPdu = null;
-		if (transmission == 1) {
-			System.out.println("\nTarget is rolling out...");
-			transmission++;
-		}
-		if (transmission > 1) {
-			System.out.println("\nDeath from above everywhere! (sending function started)...");
-		}
-		// Send the PDUs we created
-		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-		socket.joinGroup(localMulticastAddress);
-
-		for (Pdu i : pdupass) {
-			Pdu pdu = i;
-			if (sentBufferList.contains(pdu.getTimestamp())) {
-				break;
-			}
-
-			short currentPduType = pdu.getPduType();
-			System.out.println("in Target sender, processing PDU type: " + currentPduType);
-//					
-			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
-			{
-
-				case 1: //ENTITY_STATE:
-					aPdu = pdu;
-					break;
-
-				case 3: //detination PDU
-					aPdu = pdu;
-					break;
-
-				default:
-					//add some shit that makes sense here. 
-					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
-					System.out.println();
-			}
-			if (aPdu != null) {
-				generatedPdus.add(aPdu);
-				System.out.println("APDU container count " + generatedPdus.size());
-			}
-
-		}
-		for (int idx = 0; idx < generatedPdus.size(); idx++) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			DataOutputStream dos = new DataOutputStream(baos);
-			byte[] buffer;
-
-			aPdu = generatedPdus.get(idx);
-			aPdu.marshal(dos);
-
-			buffer = baos.toByteArray();
-			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-			socket.send(packet);
-			//sentBuffer[sentBuffer.length] = aPdu.getTimestamp();
-			sentBufferList.add(aPdu.getTimestamp());
-			System.out.println("Observer Sent PDU of type " + aPdu.getClass().getName() + "/n");
-		}
-	}
-
-	public static void main(String[] args) throws IOException {
-		DisTime disTime = DisTime.getInstance();
-		//turns on the sender code - might need to move around down into the recieve with the if statements...
-
-		//
-		// Inital Hello world from entity:
-		//
-		TGTSendRecieve sender = new TGTSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
-
-		EntityStatePdu TGTespdu = new EntityStatePdu();
-		Marking marking = new Marking();
-		marking.setCharactersString("Target");
-		TGTespdu.setMarking(marking);
-		TGTespdu.setExerciseID((short) 1);
-		EntityID OBSID = TGTespdu.getEntityID();
-		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
-		OBSID.setApplication(1);
-		OBSID.setEntity(3);  //change for each person I think???  - JMF
-		EntityType entityType = TGTespdu.getEntityType();
-		//
-		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
-		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
-		//
-		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
-		entityType.setCountry(222);              // USA TGT = 222 (Russia), OBS = 225
-		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
-		entityType.setCategory((short) 1);        // FDC  TGT = 1, Tank  OBS=40 OP
-		entityType.setSubcategory((short) 2);     // M1068 TGT = 2, T72 tank  NONE FOR OP
-
-		Vector3Double location = new Vector3Double();
-		location.setX(150.0);  //TGT = 150   OBS = 75
-		location.setY(150.0);  //TGT = 150   OBS = 75
-		location.setZ(20.0); //TGT = 20    OBS = 50
-		TGTespdu.setEntityLocation(location);
-		int timestamp = disTime.getDisAbsoluteTimestamp();
-		TGTespdu.setTimestamp(timestamp);
-		sender.run(TGTespdu);  //sends inital here I am and who I am
-
-		//other player to look out for:
-		EntityID FDCEntityID = new EntityID();
-		FDCEntityID.setEntity(1);
-		FDCEntityID.setApplication(1);
-		FDCEntityID.setSite(1);
-
-		EntityID OBSEntityID = new EntityID();
-		OBSEntityID.setEntity(2);
-		OBSEntityID.setApplication(1);
-		OBSEntityID.setSite(1);
-
-		/*  BELOW IS THE RECIEVE CODE  //
-		//                             //
-		//                             //
-		 */                             //
-		PduFactory factory;
-		MulticastSocket socket = null;
-		InetAddress address = null;
-		DatagramPacket packet;
-		short currentPduType;  //will use the curentPduType as the check for sending other packets.
-
-		try {
-			// TODO: Change the line below to make sense for each class
-			System.out.println("Russian T72 out on the prowl...\n\n");
-			socket = new MulticastSocket(MULTICAST_PORT);
-			address = InetAddress.getByName(MULTICAST_GROUP);
-			socket.joinGroup(address);
-
-			factory = new PduFactory();
-
-			while (true) // Loop infinitely, receiving datagrams
-			{
-				byte buffer[] = new byte[1500]; // typical MTU size
-
-				packet = new DatagramPacket(buffer, buffer.length); // reset
-
-				socket.receive(packet);
-				//
-				//TODO: NEED IF STATEMENT IF THE SENDER IS THIS CLASS TO DELETE.
-				//
-
-				String marking2 = new String();
-				Pdu pdu = factory.createPdu(packet.getData());
-				currentPduType = pdu.getPduType();
-				if (currentPduType == 14) //stop/freeze PDU
-				{
-					System.out.println("recieved Stop/Freeze packet...");
-					return;
-				}
-//					pdu.setExerciseID((short)5);
-				if (pdu != null) {
-					if (sentBufferList.contains(pdu.getTimestamp())) {
-						pdu = null;
-					}
-					if (pdu != null) {
-
-						String currentPduTypeName = pdu.getClass().getName();
-						if (currentPduType == 1) {
-							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
-							marking2 = pdu2.getMarking().getCharactersString();
-						}
-//Keep adding any if statements as needed for the class you are building. 
-						StringBuilder message = new StringBuilder();
-						message.append("received DIS PDU: ");
-						message.append("pduType ");
-						if (currentPduType < 10) {
-							message.append(" ");
-						}
-						message.append(currentPduType).append(" ").append(currentPduTypeName);
-						message.append(" ");
-						message.append(marking2);
-						System.out.println(message.toString());
-						//Reference for PDU Types: 
-						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
-						//
-
-
-						if (currentPduType == 2) //FirePDU
-						{
-							DetonationPdu det = new DetonationPdu();
-							det.setExerciseID((short) 1);
-							det.setDetonationResult((short)1);
-							timestamp = disTime.getDisAbsoluteTimestamp();
-							det.setTimestamp(timestamp);
-							sender.run(det);
-						}
-
-					} else {
-						System.out.println("received packet but pdu is null and originated from Target. Still doing sketchy Russian things...");
-					}
-				}
-			}
-		} catch (IOException e) {
-			System.out.println("Problem with Target.PduReceiver, see exception trace:");
-			System.out.println(e);
-		} finally {
-			System.out.println("Target.PduReceiver complete. - T-72 DESTROYED!");
-		}
-
-	}
-
-}
+package MV3500Cohort2018JulySeptember.projects.FriscoFurr.originals;
+
+import java.net.*;
+import java.io.*;
+import java.util.*;
+import edu.nps.moves.dis.*; // OpenDIS version 4
+import java.io.IOException;
+import edu.nps.moves.disutil.PduFactory;
+import edu.nps.moves.disutil.DisTime;
+
+public class TGTSendRecieve {
+
+	/**
+	 * Default multicast group address we send on.
+	 */
+	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+
+	/**
+	 * Default multicast port used, matches Wireshark DIS capture default
+	 */
+	public static final int DEFAULT_MULTICAST_PORT = 3000;
+
+	private int port;
+	InetAddress multicastAddress;
+
+    /** socket parameter of interest */
+	public static final int MULTICAST_PORT = 3000;
+    /** socket parameter of interest */
+	public static final String MULTICAST_GROUP = "239.1.2.3";
+	static final boolean USE_FAST_ESPDU = false;
+	long[] sentBuffer = new long[100];
+	static List sentBufferList;
+	DisTime disTime = DisTime.getInstance();
+	int transmission = 1;
+
+	public TGTSendRecieve(int port, String multicast) {
+		this.sentBufferList = new ArrayList<>();
+		try {
+			this.port = port;
+			multicastAddress = InetAddress.getByName(multicast);
+			if (!multicastAddress.isMulticastAddress()) {
+				System.out.println("Not a multicast address: " + multicast);
+			}
+		} catch (UnknownHostException e) {
+			System.out.println("Unable to open socket: " + e);
+		}
+	}
+
+	public void run(Pdu... pdupass) throws UnknownHostException, IOException {
+
+		List<Pdu> generatedPdus = new ArrayList<>();
+		Pdu aPdu = null;
+		if (transmission == 1) {
+			System.out.println("\nTarget is rolling out...");
+			transmission++;
+		}
+		if (transmission > 1) {
+			System.out.println("\nDeath from above everywhere! (sending function started)...");
+		}
+		// Send the PDUs we created
+		InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+		MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+		socket.joinGroup(localMulticastAddress);
+
+		for (Pdu i : pdupass) {
+			Pdu pdu = i;
+			if (sentBufferList.contains(pdu.getTimestamp())) {
+				break;
+			}
+
+			short currentPduType = pdu.getPduType();
+			System.out.println("in Target sender, processing PDU type: " + currentPduType);
+//					
+			switch (currentPduType) // using enumeration values from edu.nps.moves.disenum.*
+			{
+
+				case 1: //ENTITY_STATE:
+					aPdu = pdu;
+					break;
+
+				case 3: //detination PDU
+					aPdu = pdu;
+					break;
+
+				default:
+					//add some shit that makes sense here. 
+					System.out.print("PDU of type " + pdu + " not supported by Observer, created or sent ");
+					System.out.println();
+			}
+			if (aPdu != null) {
+				generatedPdus.add(aPdu);
+				System.out.println("APDU container count " + generatedPdus.size());
+			}
+
+		}
+		for (int idx = 0; idx < generatedPdus.size(); idx++) {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			DataOutputStream dos = new DataOutputStream(baos);
+			byte[] buffer;
+
+			aPdu = generatedPdus.get(idx);
+			aPdu.marshal(dos);
+
+			buffer = baos.toByteArray();
+			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+			socket.send(packet);
+			//sentBuffer[sentBuffer.length] = aPdu.getTimestamp();
+			sentBufferList.add(aPdu.getTimestamp());
+			System.out.println("Observer Sent PDU of type " + aPdu.getClass().getName() + "/n");
+		}
+	}
+
+	public static void main(String[] args) throws IOException {
+		DisTime disTime = DisTime.getInstance();
+		//turns on the sender code - might need to move around down into the recieve with the if statements...
+
+		//
+		// Inital Hello world from entity:
+		//
+		TGTSendRecieve sender = new TGTSendRecieve(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); //initalize the sender
+
+		EntityStatePdu TGTespdu = new EntityStatePdu();
+		Marking marking = new Marking();
+		marking.setCharactersString("Target");
+		TGTespdu.setMarking(marking);
+		TGTespdu.setExerciseID((short) 1);
+		EntityID OBSID = TGTespdu.getEntityID();
+		OBSID.setSite(1);  // 0 is apparently not a valid site number, per the spec
+		OBSID.setApplication(1);
+		OBSID.setEntity(3);  //change for each person I think???  - JMF
+		EntityType entityType = TGTespdu.getEntityType();
+		//
+		//Need to update the info below to match the unit type IAW SISO-REF-010-2015 V.21
+		//  https://www.sisostds.org/DesktopModules/Bring2mind/DMX/Download.aspx?Command=Core_Download&EntryId=42916&PortalId=0&TabId=105 
+		//
+		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)  TGT=1, OBS = 1
+		entityType.setCountry(222);              // USA TGT = 222 (Russia), OBS = 225
+		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space) both TGT and OBS are 1
+		entityType.setCategory((short) 1);        // FDC  TGT = 1, Tank  OBS=40 OP
+		entityType.setSubcategory((short) 2);     // M1068 TGT = 2, T72 tank  NONE FOR OP
+
+		Vector3Double location = new Vector3Double();
+		location.setX(150.0);  //TGT = 150   OBS = 75
+		location.setY(150.0);  //TGT = 150   OBS = 75
+		location.setZ(20.0); //TGT = 20    OBS = 50
+		TGTespdu.setEntityLocation(location);
+		int timestamp = disTime.getDisAbsoluteTimestamp();
+		TGTespdu.setTimestamp(timestamp);
+		sender.run(TGTespdu);  //sends inital here I am and who I am
+
+		//other player to look out for:
+		EntityID FDCEntityID = new EntityID();
+		FDCEntityID.setEntity(1);
+		FDCEntityID.setApplication(1);
+		FDCEntityID.setSite(1);
+
+		EntityID OBSEntityID = new EntityID();
+		OBSEntityID.setEntity(2);
+		OBSEntityID.setApplication(1);
+		OBSEntityID.setSite(1);
+
+		/*  BELOW IS THE RECIEVE CODE  //
+		//                             //
+		//                             //
+		 */                             //
+		PduFactory factory;
+		MulticastSocket socket = null;
+		InetAddress address = null;
+		DatagramPacket packet;
+		short currentPduType;  //will use the curentPduType as the check for sending other packets.
+
+		try {
+			// TODO: Change the line below to make sense for each class
+			System.out.println("Russian T72 out on the prowl...\n\n");
+			socket = new MulticastSocket(MULTICAST_PORT);
+			address = InetAddress.getByName(MULTICAST_GROUP);
+			socket.joinGroup(address);
+
+			factory = new PduFactory();
+
+			while (true) // Loop infinitely, receiving datagrams
+			{
+				byte buffer[] = new byte[1500]; // typical MTU size
+
+				packet = new DatagramPacket(buffer, buffer.length); // reset
+
+				socket.receive(packet);
+				//
+				//TODO: NEED IF STATEMENT IF THE SENDER IS THIS CLASS TO DELETE.
+				//
+
+				String marking2 = new String();
+				Pdu pdu = factory.createPdu(packet.getData());
+				currentPduType = pdu.getPduType();
+				if (currentPduType == 14) //stop/freeze PDU
+				{
+					System.out.println("recieved Stop/Freeze packet...");
+					return;
+				}
+//					pdu.setExerciseID((short)5);
+				if (pdu != null) {
+					if (sentBufferList.contains(pdu.getTimestamp())) {
+						pdu = null;
+					}
+					if (pdu != null) {
+
+						String currentPduTypeName = pdu.getClass().getName();
+						if (currentPduType == 1) {
+							EntityStatePdu pdu2 = (EntityStatePdu) pdu;
+							marking2 = pdu2.getMarking().getCharactersString();
+						}
+//Keep adding any if statements as needed for the class you are building. 
+						StringBuilder message = new StringBuilder();
+						message.append("received DIS PDU: ");
+						message.append("pduType ");
+						if (currentPduType < 10) {
+							message.append(" ");
+						}
+						message.append(currentPduType).append(" ").append(currentPduTypeName);
+						message.append(" ");
+						message.append(marking2);
+						System.out.println(message.toString());
+						//Reference for PDU Types: 
+						// http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/8.htm 
+						//
+
+
+						if (currentPduType == 2) //FirePDU
+						{
+							DetonationPdu det = new DetonationPdu();
+							det.setExerciseID((short) 1);
+							det.setDetonationResult((short)1);
+							timestamp = disTime.getDisAbsoluteTimestamp();
+							det.setTimestamp(timestamp);
+							sender.run(det);
+						}
+
+					} else {
+						System.out.println("received packet but pdu is null and originated from Target. Still doing sketchy Russian things...");
+					}
+				}
+			}
+		} catch (IOException e) {
+			System.out.println("Problem with Target.PduReceiver, see exception trace:");
+			System.out.println(e);
+		} finally {
+			System.out.println("Target.PduReceiver complete. - T-72 DESTROYED!");
+		}
+
+	}
+
+}
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageReceiver.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageReceiver.java
index 8f5f185debed2fa1db5ce0369cc0854d19fa3cd7..7e09d371760f9be6ae40c2740c011b45a4544378 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageReceiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageReceiver.java
@@ -33,12 +33,18 @@ import java.util.ArrayList;
  *
  * @author garrettloeffelman
  */
-public class LoeffelmanSeversonDISImageReceiver {
-
-   public static final int    MULTICAST_PORT  = 3000;
+public class LoeffelmanSeversonDISImageReceiver
+{
+    /** socket parameter of interest */
+    public static final int    MULTICAST_PORT  = 3000;
+    /** socket parameter of interest */
     public static final String MULTICAST_GROUP = "239.1.2.15";
-    public static final boolean USE_FAST_ESPDU = false;
+    static final boolean USE_FAST_ESPDU = false;
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String args[])
     {
         Image image = null;
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageSender.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageSender.java
index 33b356220d55d5b7cabc68e4e55a16765c69b204..17d2d9bac2728c648de3c89a2b71fd7b27a32225 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageSender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/LoeffelmanSeversonDISImageSender.java
@@ -247,6 +247,10 @@ public class LoeffelmanSeversonDISImageSender {
         }
     }
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String args[])
 	{
         if (args.length == 2) {
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageReceiver.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageReceiver.java
index 7b3e3b48c3021aeeab202988603b72092c6c187a..e4caa15672847ed7026789cef8707221594aed57 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageReceiver.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageReceiver.java
@@ -33,12 +33,19 @@ import java.util.ArrayList;
  *
  * @author garrettloeffelman
  */
-public class LoeffelmanSeversonDISImageReceiver {
-
-   public static final int    MULTICAST_PORT  = 3000;
+public class LoeffelmanSeversonDISImageReceiver
+{
+    /** socket parameter of interest */
+    public static final int    MULTICAST_PORT  = 3000;
+    /** socket parameter of interest */
     public static final String MULTICAST_GROUP = "239.1.2.15";
-    public static final boolean USE_FAST_ESPDU = false;
+    /** socket parameter of interest */
+    static final boolean USE_FAST_ESPDU = false;
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String args[])
     {
         Image image = null;
diff --git a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageSender.java b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageSender.java
index 8aa71f254dd4f8be336578a5704fbbed5bbbe291..854d0f3929f7c8c564c869ee49bf35aa7e7e2786 100644
--- a/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageSender.java
+++ b/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson/originals/LoeffelmanSeversonDISImageSender.java
@@ -237,6 +237,10 @@ public class LoeffelmanSeversonDISImageSender {
         }
     }
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String args[])
 	{
         if (args.length == 2) {
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/BoronTcpExample1Telnet1.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/BoronTcpExample1Telnet1.java
index 0200262372992fddecddd0e2899decc8cc41a01b..df588da9f564c94485c5eddd39d8413222406f3b 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/BoronTcpExample1Telnet1.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/BoronTcpExample1Telnet1.java
@@ -32,6 +32,8 @@ import java.sql.Timestamp;
  */
 public class BoronTcpExample1Telnet1 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrennenstuhlTcpExample1Telnet.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrennenstuhlTcpExample1Telnet.java
index 719f56e4050b0ff4365ec91e0314596798fda8ba..8aced5a42edc752256e6d68f51c811fbf9c6f509 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrennenstuhlTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrennenstuhlTcpExample1Telnet.java
@@ -31,6 +31,8 @@ import java.net.*;
  */
 public class BrennenstuhlTcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java
index f7cfe80e4ceff8694d048152f7d390a13c388efc..508d62e88eb91f712763feb8be6abd3885ab2476 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java
@@ -31,6 +31,8 @@ import java.net.*;
  */
 public class BrutzmanRefactorTcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/FetterolfTcpExample1Telnet.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/FetterolfTcpExample1Telnet.java
index f5db99db7d3346a54b88e9a6c5818d5579cc44cd..25c1d0f02cad7d760d6f074699708433c4c6cbcb 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/FetterolfTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/FetterolfTcpExample1Telnet.java
@@ -31,6 +31,8 @@ import java.net.*;
  */
 public class FetterolfTcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/KNOBELOCH_TcpExample1Telnet.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/KNOBELOCH_TcpExample1Telnet.java
index f36c1c43a71c96c7e5241c294e93b15c9644f987..9339ca85ca8e5420745d00eabc38988696aa3b70 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/KNOBELOCH_TcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/KNOBELOCH_TcpExample1Telnet.java
@@ -31,6 +31,8 @@ import java.net.*;
  */
 public class KNOBELOCH_TcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/McCannTcpExample1Telnet.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/McCannTcpExample1Telnet.java
index b86e253e25fdfc3ff3b19378f0957888de4fbf00..1aed07bfb90e953036789ea127f2fe4cc03e4ecd 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/McCannTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/McCannTcpExample1Telnet.java
@@ -31,6 +31,8 @@ import java.net.*;
  */
 public class McCannTcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/SchuttTcpExample1Telnet.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/SchuttTcpExample1Telnet.java
index 9b3dfe7e9188f455462e2239cf021ed3962d7b33..12d3b55f88ba2de11683c27270aab4d987658424 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/SchuttTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/SchuttTcpExample1Telnet.java
@@ -31,6 +31,8 @@ import java.net.*;
  */
 public class SchuttTcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/YURKOVICH_TcpExample1Telnet.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/YURKOVICH_TcpExample1Telnet.java
index ed463f87fc82c8efccee0d8e713455e6ce230dd3..077a09e121bf1575811d393fa5519fbbb084c788 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework1/YURKOVICH_TcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/YURKOVICH_TcpExample1Telnet.java
@@ -31,6 +31,8 @@ import java.net.*;
  */
 public class YURKOVICH_TcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework1/package-info.java b/assignments/src/MV3500Cohort2019JulySeptember/homework1/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c4cc4905e8f2f7692b13c7ee742f6962db46796
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework1/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2019JulySeptember.homework1;
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Boron/BoronClient.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Boron/BoronClient.java
index 996844672b571a90dcf02b8f8e6c511478c1de07..594c11da1e33e194b049efd577d3f223e0b3104b 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Boron/BoronClient.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Boron/BoronClient.java
@@ -14,6 +14,7 @@ import java.net.*;
 public class BoronClient {
 
     // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
     /**
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/SirTobiClient.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/SirTobiClient.java
index 89db3b497d11f566ca7c9345ac00629729a7cff8..56a70712a26361c96d10b8315b2ded6f97efbab4 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/SirTobiClient.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/SirTobiClient.java
@@ -16,6 +16,7 @@ import java.net.*;
 public class SirTobiClient {
 
     // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
     /**
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java
index 53f59abbe6ab928ebea2421ef120773fdeb20d43..4740ba28a937544b7aaba8bc96422aa40d25ea3c 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java
@@ -1,6 +1,5 @@
 package MV3500Cohort2019JulySeptember.homework2.Fetterolf;
 
-import MV3500Cohort2019JulySeptember.homework2.*;
 import java.io.*;
 import java.net.*;
 
@@ -14,8 +13,9 @@ import java.net.*;
  *
  * @author mcgredo
  */
-public class FetterolfHomework2Client {
-
+public class FetterolfHomework2Client
+{
+    /** socket value of shared interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
     /**
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java
index 68b6c9df0d008c805068277e0123f0e7706d3184..4380af80a4f2cee464b7d2427cfa2fc17e08e647 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java
@@ -1,6 +1,5 @@
 package MV3500Cohort2019JulySeptember.homework2.Fetterolf;
 
-import MV3500Cohort2019JulySeptember.homework2.*;
 import java.io.*;
 import java.net.*;
 import java.util.Scanner;
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Knobeloch/Knobeloch_TCPIP_Server.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Knobeloch/Knobeloch_TCPIP_Server.java
index ddb8936bfe9de6d37c3d931586e07cc05b217c4e..82ef93d0102906081aacaa5aba42acd30538a8f6 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Knobeloch/Knobeloch_TCPIP_Server.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Knobeloch/Knobeloch_TCPIP_Server.java
@@ -24,6 +24,11 @@ import java.net.*;
  */
 public class Knobeloch_TCPIP_Server {
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels program
+     */
     public static void main(String[] args) throws InterruptedException {
         try {
             
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannClient.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannClient.java
index dad6563446742c8e1d3ca3f38c174c910eaa246f..230387392f2337bc5240bacbc979e3d4e1d11187 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannClient.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannClient.java
@@ -1,79 +1,84 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package MV3500Cohort2019JulySeptember.homework2.McCann;
-
-import MV3500Cohort2019JulySeptember.homework2.*;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.Socket;
-import java.io.*;
-import java.net.*;
-import static javax.swing.Spring.constant;
-
-/**
- *
- * @author ljmm1
- */
-public class McCannClient {
-
-   // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    public static void main(String[] args) {
-        
-        // Local vars/fields
-        Socket socket;
-        InputStream is;
-        InputStreamReader isr;
-        BufferedReader br;
-        String serverMessage;
-        
-        try {
-            while (true) {
-                
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2317); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-               // System.out.println("Now we're talking!");
-               
-                System.out.println(serverMessage);
-                System.out.println("My name is Sir Launcelot of Camelot");
-                System.out.println("What is your quest?");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-            } // end while(true)
-        } catch (IOException e) {
-            System.err.println("Problem with TcpExample3ServerClient networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        } finally {
-        
-            // program exit: tell somebody about that
-            System.out.println("\nclient exit");
-        }
-    }
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2019JulySeptember.homework2.McCann;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.Socket;
+import java.io.*;
+import java.net.*;
+import static javax.swing.Spring.constant;
+
+/**
+ *
+ * @author ljmm1
+ */
+public class McCannClient
+{
+
+    /** socket parameter of interest */   // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** socket parameter of interest */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) {
+        
+        // Local vars/fields
+        Socket socket;
+        InputStream is;
+        InputStreamReader isr;
+        BufferedReader br;
+        String serverMessage;
+        
+        try {
+            while (true) {
+                
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+               // System.out.println("Now we're talking!");
+               
+                System.out.println(serverMessage);
+                System.out.println("My name is Sir Launcelot of Camelot");
+                System.out.println("What is your quest?");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+            } // end while(true)
+        } catch (IOException e) {
+            System.err.println("Problem with TcpExample3ServerClient networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        } finally {
+        
+            // program exit: tell somebody about that
+            System.out.println("\nclient exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannServer.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannServer.java
index 208095fa2edf1790d004ba90acd62e1917ed75b3..401089d99c26ea1ba4d0d410cc164c038345289b 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannServer.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/McCann/McCannServer.java
@@ -1,83 +1,87 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package MV3500Cohort2019JulySeptember.homework2.McCann;
-
-import MV3500Cohort2019JulySeptember.homework2.*;
-import java.io.*;
-import java.net.*;
-import java.util.Scanner;
-
-/**
- *
- * @author ljmm1
- */
-public class McCannServer {
-
- public static void main(String[] args) {
-        try {
-            
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            System.out.println("McCannServer has started..."); // it helps debugging to put this on console first
-            //System.out.println("What is your name?");
-            ServerSocket serverSocket = new ServerSocket(2317);
-            OutputStream os;
-            PrintStream ps;
-            InetAddress localAddress, remoteAddress;
-            int localPort, remotePort;
-
-            // Server is up and waiting (i.e. "blocked" or paused)
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while (true) { 
-                
-                // block until connected to a client
-                    try (Socket clientConnection = serverSocket.accept()) {
-                    
-                    // Now hook everything up (i.e. set up the streams), Java style:
-                    os = clientConnection.getOutputStream();
-                    ps = new PrintStream(os);
-                    Scanner keyboard = new Scanner(System.in);
-                    ps.println("What is your name?"); // this gets sent back to client!
-                    //tried to add an input but couldn't get it to work
-                    //String message = keyboard.nextLine();
-                   // ps.println(message);
-                    
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair).
-                    localAddress = clientConnection.getLocalAddress();
-                    remoteAddress = clientConnection.getInetAddress();
-                    localPort = clientConnection.getLocalPort();
-                    remotePort = clientConnection.getPort();
-                    
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    
-                    // Why is the first IP/port the same, while the second set has different ports?
-                    System.out.println("TcpExample3Server socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( "
-                            + remoteAddress.toString() + ", " + remotePort + " ))");
-                    
-                    // Notice the use of flush() and try w/ resources. Without
-                    // the try w/ resources the Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. try w/ resources explicitly ends the connection.
-                    ps.flush();
-                    // like it or not, you're outta here!
-                }
-            }
-        } catch (IOException e) {
-            System.err.println("Problem with TcpExample3Server networking: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-    }
-    
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2019JulySeptember.homework2.McCann;
+
+import java.io.*;
+import java.net.*;
+import java.util.Scanner;
+
+/**
+ *
+ * @author ljmm1
+ */
+public class McCannServer {
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {
+        try {
+            
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println("McCannServer has started..."); // it helps debugging to put this on console first
+            //System.out.println("What is your name?");
+            ServerSocket serverSocket = new ServerSocket(2317);
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) { 
+                
+                // block until connected to a client
+                    try (Socket clientConnection = serverSocket.accept()) {
+                    
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnection.getOutputStream();
+                    ps = new PrintStream(os);
+                    Scanner keyboard = new Scanner(System.in);
+                    ps.println("What is your name?"); // this gets sent back to client!
+                    //tried to add an input but couldn't get it to work
+                    //String message = keyboard.nextLine();
+                   // ps.println(message);
+                    
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                    localAddress = clientConnection.getLocalAddress();
+                    remoteAddress = clientConnection.getInetAddress();
+                    localPort = clientConnection.getLocalPort();
+                    remotePort = clientConnection.getPort();
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println("TcpExample3Server socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( "
+                            + remoteAddress.toString() + ", " + remotePort + " ))");
+                    
+                    // Notice the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with TcpExample3Server networking: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttClient.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttClient.java
index 1e5ed3ef2c0bc419a968d7da14b2af6e0b17decf..be05e6258a88660af080eb02a55edf05b4d672ab 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttClient.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttClient.java
@@ -9,8 +9,12 @@ import java.net.*;
  *
  * @author Schutt
  */
-public class SchuttClient {
-
+public class SchuttClient
+{
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) {
         
         // Local vars/fields
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttServerDispatcher.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttServerDispatcher.java
index e23e63df7a02a665e0baebd7c043b85a6e64ab61..cd2ffce0fb43adc7013e8919ecf424eb6e4bfcff 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttServerDispatcher.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Schutt/SchuttServerDispatcher.java
@@ -9,8 +9,13 @@ import java.net.*;
  *
  * @author Schutt
  */
-public class SchuttServerDispatcher {
+public class SchuttServerDispatcher
+{
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) // execution starts here
     {
         try{
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/package-info.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2b43f14d51b5d65ad4bff05d44df17845ccabaa
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2019JulySeptember.homework2;
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduReceiver.java
index d0fb9650e901642d4bcc5ec3f352658ab7c46110..62ad868fb850fb6ca3eebcb5925e103231b3af6c 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduReceiver.java
@@ -18,9 +18,11 @@ import edu.nps.moves.dis7.utilities.*;
 
 public class BoronPduReceiver
 {
-  public static final int DEFAULT_MULTICAST_PORT = BoronPduSender.DEFAULT_MULTICAST_PORT;
-  public static final String DEFAULT_MULTICAST_ADDRESS = BoronPduSender.DEFAULT_MULTICAST_ADDRESS;
-  public static final boolean USE_FAST_ESPDU = false;
+    /** socket parameter of interest */
+    public static final int DEFAULT_MULTICAST_PORT = BoronPduSender.DEFAULT_MULTICAST_PORT;
+    /** socket parameter of interest */
+    public static final String DEFAULT_MULTICAST_ADDRESS = BoronPduSender.DEFAULT_MULTICAST_ADDRESS;
+    static final boolean USE_FAST_ESPDU = false;
 
     /**
      * Program invocation, execution starts here
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java
index e716b530dc4b84fc1908862e7fb3b5de489fc7c7..2830627ffeaf652fadb37b8df1ae833a10a1cc1f 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java
@@ -26,7 +26,8 @@ public class BoronPduSender
     private int port;
     InetAddress multicastAddress;
 
-    public BoronPduSender(int port, String multicast) {
+    public BoronPduSender(int port, String multicast)
+    {
         try
         {
             this.port = port;
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/BrennenstuhlEspduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/BrennenstuhlEspduSender.java
index 3523e189825bbc6f4c533d99e6ac093a612a5863..231aa4017787551b7ef2fb62118593f3a9330f5d 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/BrennenstuhlEspduSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/BrennenstuhlEspduSender.java
@@ -19,7 +19,7 @@ import edu.nps.moves.dis7.enumerations.PlatformDomain;
  */
 public class BrennenstuhlEspduSender
 {
-	public static final int NUMBER_TO_SEND = 5; // 5000
+	static final int NUMBER_TO_SEND = 5; // 5000
         
 
 	/**
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/Version2/AllPduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/Version2/AllPduReceiver.java
index ec33bba46cdb4ab7e1f515a338c1566ce197f0d3..96f1df7633641b8892dcd14628064e2966b4afd5 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/Version2/AllPduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Brennenstuhl/Version2/AllPduReceiver.java
@@ -10,9 +10,11 @@ import java.util.ArrayList;
 
 public class AllPduReceiver
 {
-  public static final int DEFAULT_MULTICAST_PORT = AllPduSender.DEFAULT_MULTICAST_PORT;
-  public static final String DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS;
-  public static final boolean USE_FAST_ESPDU = false;
+    /** socket parameter of interest */
+    public static final int DEFAULT_MULTICAST_PORT = AllPduSender.DEFAULT_MULTICAST_PORT;
+    /** socket parameter of interest */
+    public static final String DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS;
+    static final boolean USE_FAST_ESPDU = false;
 
   public static void main(String args[])
   {
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Fetterolf/FetterolfPduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Fetterolf/FetterolfPduReceiver.java
index b5c3ef49b587bd15fefc995963f5a172739cac15..7dc61d603031c38a7ed40ce2df24b65a2ffd0722 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Fetterolf/FetterolfPduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Fetterolf/FetterolfPduReceiver.java
@@ -10,9 +10,11 @@ import java.util.ArrayList;
 
 public class FetterolfPduReceiver {
 
+    /** socket value of shared interest */
     public static final int DEFAULT_MULTICAST_PORT = FetterolfPduReceiver.DEFAULT_MULTICAST_PORT;
+    /** socket value of shared interest */
     public static final String DEFAULT_MULTICAST_ADDRESS = FetterolfPduReceiver.DEFAULT_MULTICAST_ADDRESS;
-    public static final boolean USE_FAST_ESPDU = false;
+    private static final boolean USE_FAST_ESPDU = false;
 
     /**
      * Program invocation, execution starts here
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduReceiver.java
index 3de8c19b07a59e3b770e69a4fdb6ac86b3a398b9..f5f2f7c5dcb93c047e521204f631b2f522136c01 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduReceiver.java
@@ -11,8 +11,12 @@ public class Knobeloch_PduReceiver
 {
   public static final int DEFAULT_MULTICAST_PORT = Knobeloch_PduSender.DEFAULT_MULTICAST_PORT;
   public static final String DEFAULT_MULTICAST_ADDRESS = Knobeloch_PduSender.DEFAULT_MULTICAST_ADDRESS;
-  public static final boolean USE_FAST_ESPDU = false;
+  static final boolean USE_FAST_ESPDU = false;
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
   public static void main(String args[])
   {
     PduFactory factory;
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduSender.java
index ca64e3c2c1b6b7a8254bb4d9f807436e9087a5cc..626a30555b7f2305f16fbb92864e3e15608e0daa 100755
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Knobeloch/Knobeloch_PduSender.java
@@ -91,6 +91,10 @@ public class Knobeloch_PduSender
         }
     }
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String args[])
     {
         if (args.length == 2)
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduReceiver.java
index 2bf8e0c912a3bda54180c1173189de5538ecf46a..a64e729f78641da1b29c10f2beedd08b0bb4a156 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduReceiver.java
@@ -10,10 +10,16 @@ import java.util.ArrayList;
 
 public class McCannPduReceiver
 {
-  public static final int DEFAULT_MULTICAST_PORT = McCannPduSender.DEFAULT_MULTICAST_PORT;
-  public static final String DEFAULT_MULTICAST_ADDRESS = McCannPduSender.DEFAULT_MULTICAST_ADDRESS;
-  public static final boolean USE_FAST_ESPDU = false;
+    /** socket parameter of interest */
+    public static final int DEFAULT_MULTICAST_PORT = McCannPduSender.DEFAULT_MULTICAST_PORT;
+    /** socket parameter of interest */
+    public static final String DEFAULT_MULTICAST_ADDRESS = McCannPduSender.DEFAULT_MULTICAST_ADDRESS;
+    static final boolean USE_FAST_ESPDU = false;
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
   public static void main(String args[])
   {
     PduFactory factory;
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduSender.java
index f977877f8571a205883ac78253b40791b9e0e34f..3ad2da6423ecc89a7821db0fb56ce2b08a2aa805 100755
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/McCann/McCannPduSender.java
@@ -465,6 +465,10 @@ public class McCannPduSender
         }
     }
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String args[])
 	{
         if (args.length == 2)
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttESPDUSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttESPDUSender.java
index c84558a28f586f269d91fbf8783899430091a92d..c5eea7be576d8786e53a4d03204a314aa2032654 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttESPDUSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttESPDUSender.java
@@ -26,7 +26,7 @@ import java.nio.ByteBuffer;
  */
 public class SchuttESPDUSender {
 
-    public static final int NUMBER_TO_SEND = 5; // 5000
+    static final int NUMBER_TO_SEND = 5; // 5000
 
     /**
      * Default multicast group address we send on.
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttEspduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttEspduReceiver.java
index ef2c11e4e87e74722d0950bcfe3746b772178465..c866a1fb5c8c700a439354f4635e6762cf1228cf 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttEspduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttEspduReceiver.java
@@ -28,6 +28,10 @@ public class SchuttEspduReceiver
     /** Default multicast port used, matches Wireshark DIS capture default */
     public static final int    DEFAULT_MULTICAST_PORT    = SchuttESPDUSender.DEFAULT_MULTICAST_PORT;
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String args[])
 	{
 		System.out.println("DisExamplesOpenDis7.EspduReceiver started...");
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttPDUSaverListener.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttPDUSaverListener.java
index b4e9018c36866a4c67a4322d7ab2cdd28157954a..1260918c3c8d57e4e229907a6610742c11b72ebc 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttPDUSaverListener.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Schutt/SchuttPDUSaverListener.java
@@ -27,6 +27,10 @@ public class SchuttPDUSaverListener
     PAUSED;
   }
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
   public static void main(String[] args)
   {
     String outDir = DEFAULT_OUTPUTDIR;
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Yurkovich/Yurk_EspduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Yurkovich/Yurk_EspduSender.java
index 257f567ba59e4d9420577aa1ac8927592862d479..68597af2f7015773f1fd9d1e6000f7f50298c113 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Yurkovich/Yurk_EspduSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Yurkovich/Yurk_EspduSender.java
@@ -16,7 +16,7 @@ import edu.nps.moves.dis7.utilities.*;
  */
 public class Yurk_EspduSender
 {
-	public static final int NUMBER_TO_SEND = 5; // 5000
+	static final int NUMBER_TO_SEND = 5; // 5000
 
 	/**
 	 * Default multicast group address we send on.
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
index d9a767d946b08a3ed47c2cc6bbd21731f5f1bd1b..04f00cadb54cade62a15cae86db458e06fc5e0bc 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
@@ -17,7 +17,7 @@ import java.util.logging.Logger;
 public class BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver extends Thread
 {
 
-    public static final boolean USE_FAST_ESPDU = false;
+    static final boolean USE_FAST_ESPDU = false;
     static List<Integer> savedMCASTMessages = new ArrayList();
     static List<Pdu> mcastMessagesToSend = new ArrayList();
     static Mutex mutex = new Mutex();
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/projects/SchuttFetterolf/AllPduRoundTripTest.java b/assignments/src/MV3500Cohort2019JulySeptember/projects/SchuttFetterolf/AllPduRoundTripTest.java
index bdfca90f4814cdb12b8f580fd748a971ec0ce0a0..54d6a8d6d8b3aa3c82d960d8119da2ee927b23f4 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/projects/SchuttFetterolf/AllPduRoundTripTest.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/projects/SchuttFetterolf/AllPduRoundTripTest.java
@@ -196,7 +196,7 @@
 //  private void setupRecorder() throws Exception
 //  {
 //    recorderDirectory = Files.createTempDir();
-//    recorder = new Recorder(recorderDirectory.getAbsolutePath(), disNetworkInterface.getMcastGroup(), disNetworkInterface.getDisPort());
+//    recorder = new Recorder(recorderDirectory.getAbsolutePath(), disNetworkInterface.getMulticastGroup(), disNetworkInterface.getDisPort());
 //    System.out.println("Recorder log at " + recorderDirectory.getAbsolutePath());
 //  }
 //
@@ -215,7 +215,7 @@
 //  private void getAllFromRecorder(Semaphore sem) throws Exception
 //  {
 //    sem.acquire();
-//    Player player = new Player(disNetworkInterface.getMcastGroup(), disNetworkInterface.getDisPort(), recorderDirectory.toPath());
+//    Player player = new Player(disNetworkInterface.getMulticastGroup(), disNetworkInterface.getDisPort(), recorderDirectory.toPath());
 //    player.sendToNet(false);
 //    player.addRawListener(ba -> {
 //      if (ba != null) {
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/GaribayTCPExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GaribayTCPExample1Telnet.java
index d7058f112d68488dfc1af58db3fab665c93a98bc..7f915e744d25a487c3c91a59fb38d53100938e9f 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework1/GaribayTCPExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GaribayTCPExample1Telnet.java
@@ -1,64 +1,67 @@
-
-package MV3500Cohort2020JulySeptember.homework1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- *
- * @author chris
- */
-
-
-public class GaribayTCPExample1Telnet {
-    public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("Client response was written by Chris' server TcpExample1."); // to remote clientnc
-                ps.println("Fall forward. Every failed experiment is one step closer to success.");
-                System.out.println("Server response was written by Chris' server TcpExample1."); // to server console
-                System.out.println("Denzel Washington");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("TcpExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-}
-
+
+package MV3500Cohort2020JulySeptember.homework1;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ *
+ * @author chris
+ */
+
+
+public class GaribayTCPExample1Telnet
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("Client response was written by Chris' server TcpExample1."); // to remote clientnc
+                ps.println("Fall forward. Every failed experiment is one step closer to success.");
+                System.out.println("Server response was written by Chris' server TcpExample1."); // to server console
+                System.out.println("Denzel Washington");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("TcpExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+}
+
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/GoerickeTcpExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GoerickeTcpExample1Telnet.java
index 009f541410e1619b42caeada953a47a54de95cc8..93931a9845fa6d4b58f2f2e34d1a8d7e7c7a3577 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework1/GoerickeTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GoerickeTcpExample1Telnet.java
@@ -1,72 +1,72 @@
-
-package MV3500Cohort2020JulySeptember.homework1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- * Homework 1 for class MV3500 - Summer 2020
- * @author Goericke, Stefan
- */
-public class GoerickeTcpExample1Telnet {
-
-    /**
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) throws IOException {
-        System.out.println("Homework 1 MV3500 - Summer 2020 (Author: Stefan Goericke)");
-        System.out.println("---------------------------------------------------------");
-        String masterString = "           #########   ######    #       #\r\n";
-        masterString = masterString + "               #       #          #     #\r\n";
-        masterString = masterString + "               #       ######      #   #\r\n";
-        masterString = masterString + "               #            #       # #\r\n";
-        masterString = masterString + "               #       ######        #\r\n";
-        
-        //build up connection
-        try
-        {
-            // build serverSOcket with port 2317
-            ServerSocket serverSocket = new ServerSocket(2317);
-            System.out.println("ServerSocket created with port 2317 ..."); 
-            
-            // open client connection. Wait for answer (method accept)
-            System.out.println("Open telnet client in cmd-console: telnet localhost 2317");
-            Socket clientConnection = serverSocket.accept();
-            System.out.println("Client Connection established ...");
-            
-            // create stream-objects
-            OutputStream os = clientConnection.getOutputStream();
-            PrintStream ps = new PrintStream(os); // already declared outside try-block
-            System.out.println("Stream objects created ...");      
-        
-            try{// connection was established
-                System.out.println("Connection established, sending message --> /n");
-                
-                ps.println("This client response was written by server TcpExample1.");          
-                ps.println(masterString);
-                
-                System.out.println("This server response was written by server TcpExample1.");
-                System.out.println(masterString);
-
-                ps.flush();
-            }
-            catch(Exception e){ // in case message could not be send
-                System.out.println("Error while sending message .... press ENTER");
-                System.in.read();
-                System.exit(0);
-                
-            }
-            clientConnection.close();
-        }
-        catch (IOException e){ // connection could not be established
-            System.out.println("Connection could not be established. Quit programm");
-            System.in.read();
-            System.exit(0);   
-        }
-       
-    }
-    
-}
+
+package MV3500Cohort2020JulySeptember.homework1;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * Homework 1 for class MV3500 - Summer 2020
+ * @author Goericke, Stefan
+ */
+public class GoerickeTcpExample1Telnet {
+
+    /**
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {
+        System.out.println("Homework 1 MV3500 - Summer 2020 (Author: Stefan Goericke)");
+        System.out.println("---------------------------------------------------------");
+        String masterString = "           #########   ######    #       #\r\n";
+        masterString = masterString + "               #       #          #     #\r\n";
+        masterString = masterString + "               #       ######      #   #\r\n";
+        masterString = masterString + "               #            #       # #\r\n";
+        masterString = masterString + "               #       ######        #\r\n";
+        
+        //build up connection
+        try
+        {
+            // build serverSOcket with port 2317
+            ServerSocket serverSocket = new ServerSocket(2317);
+            System.out.println("ServerSocket created with port 2317 ..."); 
+            
+            // open client connection. Wait for answer (method accept)
+            System.out.println("Open telnet client in cmd-console: telnet localhost 2317");
+            Socket clientConnection = serverSocket.accept();
+            System.out.println("Client Connection established ...");
+            
+            // create stream-objects
+            OutputStream os = clientConnection.getOutputStream();
+            PrintStream ps = new PrintStream(os); // already declared outside try-block
+            System.out.println("Stream objects created ...");      
+        
+            try{// connection was established
+                System.out.println("Connection established, sending message --> /n");
+                
+                ps.println("This client response was written by server TcpExample1.");          
+                ps.println(masterString);
+                
+                System.out.println("This server response was written by server TcpExample1.");
+                System.out.println(masterString);
+
+                ps.flush();
+            }
+            catch(Exception e){ // in case message could not be send
+                System.out.println("Error while sending message .... press ENTER");
+                System.in.read();
+                System.exit(0);
+                
+            }
+            clientConnection.close();
+        }
+        catch (IOException e){ // connection could not be established
+            System.out.println("Connection could not be established. Quit program");
+            System.exit(0);   
+        }
+       
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/MahanTCPExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/MahanTCPExample1Telnet.java
index 2383eabdd4d2836ba05979a0fb26fe79883ce5ed..187b7b58d51b0b31932d63632c0d273b8023a046 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework1/MahanTCPExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/MahanTCPExample1Telnet.java
@@ -1,61 +1,64 @@
-
-
-package MV3500Cohort2020JulySeptember.homework1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-/**
- *
- * @author Bill
- */
-public class MahanTCPExample1Telnet {
-        public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("This client response was written by Bill's server TcpExample1."); // to remote clientnc
-                ps.println("When you see something that is not right, not fair, not just, you have to speak up. You have to say something; you have to do something. ");
-                System.out.println("This server response was written by Bill's server TcpExample1."); // to server console
-                System.out.println("John Lewis");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("TcpExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
+
+
+package MV3500Cohort2020JulySeptember.homework1;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+/**
+ *
+ * @author Bill
+ */
+public class MahanTCPExample1Telnet
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("This client response was written by Bill's server TcpExample1."); // to remote clientnc
+                ps.println("When you see something that is not right, not fair, not just, you have to speak up. You have to say something; you have to do something. ");
+                System.out.println("This server response was written by Bill's server TcpExample1."); // to server console
+                System.out.println("John Lewis");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("TcpExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
 }
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/WeissenbergerTcpExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/WeissenbergerTcpExample1Telnet.java
index 319d385bfb9714c46cae16ec9e88e3bb823dfbaf..593449b5830ac33991f24172311945c96357cc5e 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework1/WeissenbergerTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/WeissenbergerTcpExample1Telnet.java
@@ -1,63 +1,66 @@
-
-package MV3500Cohort2020JulySeptember.homework1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- * Simple TCP Telnet Server, MV3500 Homework 1
- * copied parts from: TcpExample1Telnet.java by @author mcgredo and @author brutzman
- * @version 07/16/2020
- * @author Loki
- */
-public class WeissenbergerTcpExample1Telnet {
-        public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("This client response was written by Loki's server TcpExample1."); // to remote clientnc
-                ps.println(" _       _    _"+"\r\n"+"| |     | |  (_)"+"\r\n"+"| | ___ | | ___"+"\r\n"+"| |/ _ \\| |/ / |"+"\r\n"+"| | (_) |   <| |"+"\r\n"+"|_|\\___/|_|\\_\\_|");
-                System.out.println("This server response was written by Loki's server TcpExample1."); // to server console
-                System.out.println(" _       _    _"+"\n"+"| |     | |  (_)"+"\n"+"| | ___ | | ___"+"\n"+"| |/ _ \\| |/ / |"+"\n"+"| | (_) |   <| |"+"\n"+"|_|\\___/|_|\\_\\_|");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("TcpExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-}
+
+package MV3500Cohort2020JulySeptember.homework1;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * Simple TCP Telnet Server, MV3500 Homework 1
+ * copied parts from: TcpExample1Telnet.java by @author mcgredo and @author brutzman
+ * @version 07/16/2020
+ * @author Loki
+ */
+public class WeissenbergerTcpExample1Telnet
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("This client response was written by Loki's server TcpExample1."); // to remote clientnc
+                ps.println(" _       _    _"+"\r\n"+"| |     | |  (_)"+"\r\n"+"| | ___ | | ___"+"\r\n"+"| |/ _ \\| |/ / |"+"\r\n"+"| | (_) |   <| |"+"\r\n"+"|_|\\___/|_|\\_\\_|");
+                System.out.println("This server response was written by Loki's server TcpExample1."); // to server console
+                System.out.println(" _       _    _"+"\n"+"| |     | |  (_)"+"\n"+"| | ___ | | ___"+"\n"+"| |/ _ \\| |/ / |"+"\n"+"| | (_) |   <| |"+"\n"+"|_|\\___/|_|\\_\\_|");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("TcpExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/WhiteTcpExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/WhiteTcpExample1Telnet.java
index 68dc004b03f218ec9f65f4909e9ad7cd3be7fc54..aeaf29104108ff95aa91b1cd1a51a99fd04187b4 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework1/WhiteTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/WhiteTcpExample1Telnet.java
@@ -32,6 +32,8 @@ import java.net.*;
  */
 public class WhiteTcpExample1Telnet 
 {
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) 
     {
         try
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/package-info.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..e53cf136eba4d87fca030ff4e43280b640d01b8f
--- /dev/null
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2020JulySeptember.homework1;
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Britt/Britt_Client.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Britt/Britt_Client.java
index c63847a97b66a608c237ba38bd19d3011c57d858..99209e87d5b600415094b95e520c91aa714a5cef 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Britt/Britt_Client.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Britt/Britt_Client.java
@@ -16,7 +16,7 @@ import java.net.Socket;
  */
 public class Britt_Client {
     
-// IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1 */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
     /**
@@ -36,7 +36,6 @@ public class Britt_Client {
         OutputStream os;
         PrintStream ps;
         
-        
         try {
             while (true) {
                 System.out.println("TCP Homework2 creating socket...");
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Cannon/CannonClient.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Cannon/CannonClient.java
index af3cddb99ab61aa33b25aed577622ca09a6e9a99..6885993f3755a12a0e79a376f29904ea988eb856 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Cannon/CannonClient.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Cannon/CannonClient.java
@@ -23,6 +23,7 @@ import java.net.Socket;
 public class CannonClient {
 
     // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayClient.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayClient.java
index 54f7d6be6479793e473fcfa4efe2c81b0b7b93b7..705a3b1a1b92c9c391d4c1794b968cbe48cdd096 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayClient.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayClient.java
@@ -1,80 +1,83 @@
-package MV3500Cohort2020JulySeptember.homework2.Garibay;
-
-import java.io.*;
-import java.net.*;
-/**
- *
- * @author Chris
- */
-public class GaribayClient {
-
-    // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    public static void main(String[] args) {
-        
-        // Local vars/fields
-        Socket socket;
-        InputStream is;
-        InputStreamReader isr;
-        BufferedReader br;
-        String serverMessage;
-        Integer count = 0;
-        OutputStream os;
-        PrintStream ps;
-        
-        
-        try {
-            while (true) {
-                System.out.println("TcpExample3Client creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2317); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br = new BufferedReader(isr);
-                
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-                System.out.println("'How many beer bottles are on the wall?");
-                System.out.println("The GaribayServer responds by saying: '" + serverMessage + "'");
-                System.out.println("GaribayClient says, 'There are "+ count +" beer bottles on the wall. Always good to have more beer bottles.");
-                count++;
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-                
-                // Now hook everything up (i.e. set up the streams), Java style:
-                os = socket.getOutputStream();
-                ps = new PrintStream(os);
-                ps.println("GaribayClient message."); // this gets sent back to client!
-                
-                ps.flush();
-                
-                
-                
-            } // end while(true)
-        } catch (IOException e) {
-            System.err.println("Problem with TcpExample3ServerClient networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        } finally {
-        
-            // program exit: tell somebody about that
-            System.out.println("\nclient exit");
-        }
-    }
-}
+package MV3500Cohort2020JulySeptember.homework2.Garibay;
+
+import java.io.*;
+import java.net.*;
+/**
+ *
+ * @author Chris
+ */
+public class GaribayClient {
+
+    // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** socket value of shared interest */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) {
+        
+        // Local vars/fields
+        Socket socket;
+        InputStream is;
+        InputStreamReader isr;
+        BufferedReader br;
+        String serverMessage;
+        Integer count = 0;
+        OutputStream os;
+        PrintStream ps;
+        
+        
+        try {
+            while (true) {
+                System.out.println("TcpExample3Client creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+                
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+                System.out.println("'How many beer bottles are on the wall?");
+                System.out.println("The GaribayServer responds by saying: '" + serverMessage + "'");
+                System.out.println("GaribayClient says, 'There are "+ count +" beer bottles on the wall. Always good to have more beer bottles.");
+                count++;
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                
+                // Now hook everything up (i.e. set up the streams), Java style:
+                os = socket.getOutputStream();
+                ps = new PrintStream(os);
+                ps.println("GaribayClient message."); // this gets sent back to client!
+                
+                ps.flush();
+                
+                
+                
+            } // end while(true)
+        } catch (IOException e) {
+            System.err.println("Problem with TcpExample3ServerClient networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        } finally {
+        
+            // program exit: tell somebody about that
+            System.out.println("\nclient exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayServer.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayServer.java
index 353cdebcd1e38aeb2397d457b5a97ec064a4fc7c..7be36855fd8864ef7092baa394ce8e8e0a15fc20 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayServer.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/GaribayServer.java
@@ -1,93 +1,96 @@
-package MV3500Cohort2020JulySeptember.homework2.Garibay;
-
-import java.io.*;
-import java.net.*;
-
-/**
- *
- * @author Chris
- */
-public class GaribayServer {
-
-    public static void main(String[] args) {
-        try {
-            
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            System.out.println("TcpExample3Server has started..."); // it helps debugging to put this on console first
-            
-            ServerSocket serverSocket = new ServerSocket(2317);
-            OutputStream os;
-            PrintStream ps;
-            InetAddress localAddress, remoteAddress;
-            
-            InputStream is;
-            InputStreamReader isr;
-            BufferedReader br;
-            String clientMessage;
-            int localPort, remotePort;
-
-            // Server is up and waiting (i.e. "blocked" or paused)
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while (true) { 
-                
-                // block until connected to a client
-                try (Socket clientConnection = serverSocket.accept()) {
-                    
-                    // Now hook everything up (i.e. set up the streams), Java style:
-                    os = clientConnection.getOutputStream();
-                    ps = new PrintStream(os);
-                    ps.println("Count for yourself!"); // this gets sent back to client!
-                    
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair).
-                    localAddress = clientConnection.getLocalAddress();
-                    remoteAddress = clientConnection.getInetAddress();
-                    localPort = clientConnection.getLocalPort();
-                    remotePort = clientConnection.getPort();
-                    
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    
-                    // Why is the first IP/port the same, while the second set has different ports?
-                    System.out.println("TcpExample3Server socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( "
-                            + remoteAddress.toString() + ", " + remotePort + " ))");
-                    
-                    // Notice the use of flush() and try w/ resources. Without
-                    // the try w/ resources the Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. try w/ resources explicitly ends the connection.
-                    
-                                    // Now hook everything up (i.e. set up the streams), Java style:
-                is = clientConnection.getInputStream();
-                isr = new InputStreamReader(is);
-                br = new BufferedReader(isr);
-                
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                clientMessage = br.readLine();
-                System.out.println("==================================================");
-                System.out.println("Now we're talking!");
-                System.out.println("The message the server sent was: '" + clientMessage + "'");
-//                System.out.println("This was the "+ count +" connection.");
-                    
-              
-                    ps.flush();
-                    // like it or not, you're outta here!
-                }
-            }
-        } catch (IOException e) {
-            System.err.println("Problem with TcpExample3Server networking: " + e);
-
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-    }
-}
+package MV3500Cohort2020JulySeptember.homework2.Garibay;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ *
+ * @author Chris
+ */
+public class GaribayServer {
+
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try {
+            
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println("TcpExample3Server has started..."); // it helps debugging to put this on console first
+            
+            ServerSocket serverSocket = new ServerSocket(2317);
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            
+            InputStream is;
+            InputStreamReader isr;
+            BufferedReader br;
+            String clientMessage;
+            int localPort, remotePort;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) { 
+                
+                // block until connected to a client
+                try (Socket clientConnection = serverSocket.accept()) {
+                    
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnection.getOutputStream();
+                    ps = new PrintStream(os);
+                    ps.println("Count for yourself!"); // this gets sent back to client!
+                    
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                    localAddress = clientConnection.getLocalAddress();
+                    remoteAddress = clientConnection.getInetAddress();
+                    localPort = clientConnection.getLocalPort();
+                    remotePort = clientConnection.getPort();
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println("TcpExample3Server socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( "
+                            + remoteAddress.toString() + ", " + remotePort + " ))");
+                    
+                    // Notice the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    
+                                    // Now hook everything up (i.e. set up the streams), Java style:
+                is = clientConnection.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+                
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                clientMessage = br.readLine();
+                System.out.println("==================================================");
+                System.out.println("Now we're talking!");
+                System.out.println("The message the server sent was: '" + clientMessage + "'");
+//                System.out.println("This was the "+ count +" connection.");
+                    
+              
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with TcpExample3Server networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Goericke/GoerickeClient.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Goericke/GoerickeClient.java
index 092a90ba4ddbd267e7aa0eccc98a4b70f25c3663..919c8b1ac05de1beb082669583020a97b5217f53 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Goericke/GoerickeClient.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Goericke/GoerickeClient.java
@@ -15,9 +15,11 @@ import java.net.Socket;
  */
 public class GoerickeClient {
 
-    // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1 */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
     public static void main(String[] args) {
         
         // Local vars/fields
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Client.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Client.java
index a3bc4bc62668dd67bd48c7cd79a86b97979e4a0a..429fc7b3fdc8aae8a407fe2e5b9da3cb0f2deefb 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Client.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Client.java
@@ -6,11 +6,16 @@ import java.net.*;
  *
  * @author Bill
  */
-public class Mahan_Client {
-
+public class Mahan_Client
+{
     // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) {
         
         // Local vars/fields
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Server.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Server.java
index 7e8ef6460bda2cb538461e6dc6d4cf61b5d6482c..dcc26646da7a169959570d4fd03f8e8dbade8816 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Server.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/Mahan_Server.java
@@ -7,8 +7,12 @@ import java.net.*;
  *
  * @author Bill
  */
-public class Mahan_Server {
-
+public class Mahan_Server
+{
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     public static void main(String[] args) {
         try {
             
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/package-info.java b/assignments/src/MV3500Cohort2020JulySeptember/homework2/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..a114222ec161fc2d3b35015051af9c6a6504e077
--- /dev/null
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2020JulySeptember.homework2;
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpReceiver.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpReceiver.java
index 869bc444d15ade6a546dba5e999f01eb9782771c..e87809cd11168a1121187c3090356ab87c5e1bd5 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpReceiver.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpReceiver.java
@@ -18,7 +18,9 @@ import java.net.*;
 public class UdpReceiver 
 {
 //  public static final int       SENDING_PORT = 1414; // port used by UdpSender, unneeded here
+    /** socket parameter of interest */
     public static final int     RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final String DESINATION_HOST = "localhost";
 
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpSender.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpSender.java
index 63480cde717525156fc2569671f73672ded45e26..a98f5e4ca49bf75a3319ed8c7634ff729fbf23dd 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpSender.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/UdpSender.java
@@ -19,12 +19,15 @@ import java.net.*;
  */
 public class UdpSender 
 {
-    public static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
+    static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
 //  public static final int          SENDING_PORT = 1414; // not needed, can let system choose an open local port
+    /** socket parameter of interest */
     public static final int        RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final int TOTAL_PACKETS_TO_SEND = 100;
     
     // here is what we need for lab comms
+    /** socket parameter of interest */
     public static final String   DESTINATION_HOST = "10.1.105.16"; // localhost 127.0.0.1 or argon 10.1.105.1 or 10.1.105.1 or whatever
     
     @SuppressWarnings("SleepWhileInLoop")
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpReceiver.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpReceiver.java
index 099e91a9d6638bdd8e5091da2e892d3784132cfe..5fee78c3a77554eb460854e425f2d706d3427a96 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpReceiver.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpReceiver.java
@@ -18,7 +18,9 @@ import java.net.*;
 public class CannonUdpReceiver 
 {
 //  public static final int       SENDING_PORT = 1414; // port used by UdpSender, unneeded here
+    /** socket value of shared interest */
     public static final int     RECEIVING_PORT = 1415;
+    /** socket value of shared interest */
     public static final String DESINATION_HOST = "localhost";
 
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpSender.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpSender.java
index 6699b7b5c649307964a5dc072e3196e732b48e48..201edd748840cbb494b00252f95257513aeae326 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpSender.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/CannonUdpSender.java
@@ -19,12 +19,14 @@ import java.net.*;
  */
 public class CannonUdpSender 
 {
-    public static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
+    private static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
 //  public static final int          SENDING_PORT = 1414; // not needed, can let system choose an open local port
+    /** socket value of shared interest */
     public static final int        RECEIVING_PORT = 1415;
-    public static final int TOTAL_PACKETS_TO_SEND = 100;
+    private static final int TOTAL_PACKETS_TO_SEND = 100;
     
     // here is what we need for lab comms
+    /** socket parameter of interest */
     public static final String   DESTINATION_HOST = "10.1.105.7"; // localhost 127.0.0.1 or argon 10.1.105.1 or 10.1.105.1 or whatever
     
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPReceiverGaribay.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPReceiverGaribay.java
index 98c79c0360cabe7614d5c22c371c5a7d0958df58..28e906467134c24b35af24f960231e20dd447c10 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPReceiverGaribay.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPReceiverGaribay.java
@@ -1,88 +1,89 @@
-
-package MV3500Cohort2020JulySeptember.homework3.Garibay;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-
-/**
- *
- * @author chris
- */
-public class UDPReceiverGaribay 
-{
-//  public static final int       SENDING_PORT = 1414; // port used by UdpSender, unneeded here
-    public static final int     RECEIVING_PORT = 1415;
-    public static final String DESINATION_HOST = "localhost";
-
-    /**
-     * @param args command-line arguments
-     * @throws java.io.IOException
-     */
-    public static void main(String[] args) throws IOException 
-    {
-        DatagramSocket udpSocket = null;
-        
-        try
-        {
-            System.out.println(UDPReceiverGaribay.class.getName() + " started...");
-            
-            // Create a UDP socket
-            udpSocket = new DatagramSocket(RECEIVING_PORT);
-            udpSocket.setReceiveBufferSize(1500); // how many bytes are in buffer?  MTU=1500 is good
-            udpSocket.setBroadcast(false);        // we're just receiving here
-            
-            byte[] byteArray = new byte[1500];
-            DatagramPacket receivePacket = new DatagramPacket(byteArray, byteArray.length);
-            
-            ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
-            DataInputStream dis = new DataInputStream(bais);
-            
-            boolean       isEvenParity;
-            int           packetCount = 0;
-            int           firstInt;   
-            float         secondFloat;
-            String        thirdString;
-            String        padding;
-            
-            // You need a new receiving packet to read from every packet received
-            while (true)
-            {
-                packetCount++; // good practice to increment counter at start of loop, when possible
-                udpSocket.receive(receivePacket); // blocks until packet is received
-                
-                // values of interest follow. order and types of what was sent must match what you are reading!
-                firstInt     = dis.readInt();     // packetID
-                secondFloat  = dis.readFloat();
-                thirdString  = dis.readUTF();     // string value with guaranteed encoding, matches UTF-8 is 8 bit
-                isEvenParity = dis.readBoolean(); // ok, we've gotten everything we're looking for.  
-                
-                dis.reset(); // now clear the input stream after reading, in preparation for next loop
-                
-                if  (isEvenParity) 
-                     padding = " ";
-                else padding = "";
-                
-                System.out.println("[" + UDPReceiverGaribay.class.getName() + "]" + 
-                                               " packetID="   + firstInt +            // have output message use same name as sender
-                                     ", second float value="   + secondFloat  + 
-                                     ", third String value=\"" + thirdString  + "\"" + // note that /" is literal quote character
-                                    " isPacketIdEvenParity="   + isEvenParity + ","  + padding +
-                                     " packet counter="        + packetCount);
-            }
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with UdpReceiver, see exception trace:");
-            System.err.println(e);
-        } 
-        finally // clean up prior to exit, don't want to leave behind zombie socket
-        {
-            if (udpSocket != null)
-                udpSocket.close();
-            System.out.println(UDPReceiverGaribay.class.getName() + " complete."); // all done
-        }
-    }
-}
+
+package MV3500Cohort2020JulySeptember.homework3.Garibay;
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+
+/**
+ *
+ * @author chris
+ */
+public class UDPReceiverGaribay 
+{
+//  public static final int       SENDING_PORT = 1414; // port used by UdpSender, unneeded here
+    /** socket value of shared interest */
+    public static final int     RECEIVING_PORT = 1415;
+    /** socket value of shared interest */
+    public static final String DESINATION_HOST = "localhost";
+
+    /**
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {
+        DatagramSocket udpSocket = null;
+        
+        try
+        {
+            System.out.println(UDPReceiverGaribay.class.getName() + " started...");
+            
+            // Create a UDP socket
+            udpSocket = new DatagramSocket(RECEIVING_PORT);
+            udpSocket.setReceiveBufferSize(1500); // how many bytes are in buffer?  MTU=1500 is good
+            udpSocket.setBroadcast(false);        // we're just receiving here
+            
+            byte[] byteArray = new byte[1500];
+            DatagramPacket receivePacket = new DatagramPacket(byteArray, byteArray.length);
+            
+            ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
+            DataInputStream dis = new DataInputStream(bais);
+            
+            boolean       isEvenParity;
+            int           packetCount = 0;
+            int           firstInt;   
+            float         secondFloat;
+            String        thirdString;
+            String        padding;
+            
+            // You need a new receiving packet to read from every packet received
+            while (true)
+            {
+                packetCount++; // good practice to increment counter at start of loop, when possible
+                udpSocket.receive(receivePacket); // blocks until packet is received
+                
+                // values of interest follow. order and types of what was sent must match what you are reading!
+                firstInt     = dis.readInt();     // packetID
+                secondFloat  = dis.readFloat();
+                thirdString  = dis.readUTF();     // string value with guaranteed encoding, matches UTF-8 is 8 bit
+                isEvenParity = dis.readBoolean(); // ok, we've gotten everything we're looking for.  
+                
+                dis.reset(); // now clear the input stream after reading, in preparation for next loop
+                
+                if  (isEvenParity) 
+                     padding = " ";
+                else padding = "";
+                
+                System.out.println("[" + UDPReceiverGaribay.class.getName() + "]" + 
+                                               " packetID="   + firstInt +            // have output message use same name as sender
+                                     ", second float value="   + secondFloat  + 
+                                     ", third String value=\"" + thirdString  + "\"" + // note that /" is literal quote character
+                                    " isPacketIdEvenParity="   + isEvenParity + ","  + padding +
+                                     " packet counter="        + packetCount);
+            }
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with UdpReceiver, see exception trace:");
+            System.err.println(e);
+        } 
+        finally // clean up prior to exit, don't want to leave behind zombie socket
+        {
+            if (udpSocket != null)
+                udpSocket.close();
+            System.out.println(UDPReceiverGaribay.class.getName() + " complete."); // all done
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPSenderGaribay.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPSenderGaribay.java
index 8d6a81c06dd090f9d281f90818551cfed1c50a11..7d08bfd78535ff2838bcce94f79f71bacc564ffb 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPSenderGaribay.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/UDPSenderGaribay.java
@@ -1,112 +1,121 @@
-
-package MV3500Cohort2020JulySeptember.homework3.Garibay;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
-
-/**
- *
- * @author chris
- */
-public class UDPSenderGaribay 
-{
-    // System properties: https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
-    public static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
-//  public static final int          SENDING_PORT = 1414; // not needed, can let system choose an open local port
-    public static final int        RECEIVING_PORT = 1415;
-    public static final int TOTAL_PACKETS_TO_SEND = 100;
-    
-    // here is what we need for lab comms
-    // Bill Mahan's host ip
-    public static final String   DESTINATION_HOST = "10.1.105.13"; // localhost 127.0.0.1 or argon 10.1.105.1 or 10.1.105.1 or whatever
-    
-    @SuppressWarnings("SleepWhileInLoop")
-    public static void main(String[] args) throws IOException 
-    {
-        DatagramSocket udpSocket = null;
-        DataOutputStream  dos = null;
-        int   packetID = 0;     // counter variable to send in packet
-        float    value = -1.0f; // unreachable value is good sentinel to ensure expected changes occur
-        String message = MY_NAME + "It's not a trick question!"; // no really
-        String padding = new String();
-        
-        try
-        {
-            System.out.println(UDPSenderGaribay.class.getName() + " shows how to send simple-type values via DataOutputStream");
-            System.out.println(UDPSenderGaribay.class.getName() + " started...");
-            
-            // Create a UDP socket
-            udpSocket = new DatagramSocket(); // let system assign output port, then SENDING_PORT not needed
-            
-            // Put together a message with binary content. "ByteArrayOutputStream"
-            // is a java.io utility that lets us put together an array of binary
-            // data, which we put into the UDP packet.
-            
-            ByteArrayOutputStream baos = new ByteArrayOutputStream(1500); // how many bytes are in buffer?  MTU=1500 is good
-            dos = new DataOutputStream(baos); // wrapper for writing values, connects both streams
-			
-            // Put together a packet to send
-            // these types and order of variables must match on sender and receiver
-            byte[] byteArray = baos.toByteArray();
-            
-            // ID of the host we are sending to
-            InetAddress destinationAddress = InetAddress.getByName(DESTINATION_HOST);
-            // ID of the host we are sending from
-            InetAddress      sourceAddress = InetAddress.getByName("localhost"); // possibly identical if source not modified
-            
-            DatagramPacket datagramPacket = new DatagramPacket(byteArray, byteArray.length, destinationAddress, RECEIVING_PORT);
-       
-            // Hmmm, how fast does UDP stream go? Does UDP effectively slow packets down, or does
-            // this cause network problems? (hint: yes for an unlimited send rate, unlike TCP).
-            // How do you know on the receiving side that you haven't received a
-            // duplicate UDP packet, out-of-order packet, or dropped packet? your responsibility.
-            
-            for (int index = 1; index <= TOTAL_PACKETS_TO_SEND; index++) // avoid infinite send loops in code, they can be hard to kill!
-            {
-                packetID++;                               // increment counter, prefer using explicit value to index
-                value = TOTAL_PACKETS_TO_SEND - packetID; // countdown
-                boolean isPacketIdEvenParity = ((packetID % 2) == 0); // % is modulo operator; result 0 is even parity, 1 is odd parity
-                
-                // values of interest follow. order and types of what was sent must match what you are reading!
-                dos.writeInt    (packetID);
-                dos.writeFloat  (value);
-                dos.writeUTF    (message); // string value with guaranteed encoding, matches UTF-8 is 8 bit
-                dos.writeBoolean(isPacketIdEvenParity);
-                
-                dos.flush(); // sends DataOutputStream to ByteArrayOutputStream
-                byteArray = baos.toByteArray();    // OK so go get the flushed result...
-                datagramPacket.setData(byteArray); // and put it in the packet...
-                udpSocket.send(datagramPacket);    // and send it away. boom gone, nonblocking.
-//              System.out.println("udpSocket output port=" + udpSocket.getLocalPort()); // diagnostic tells what port was chosen by system
-                
-                if  (isPacketIdEvenParity)
-                     padding = " ";
-                else padding = "";
-            
-                Thread.sleep(1000); // Send packets at rate of one per second
-                System.out.println("[" + UDPSenderGaribay.class.getName() + "] " + MY_NAME + " " + sourceAddress + 
-                                   " sent values(" + packetID + "," + value + ",\"" + message + "\"," + isPacketIdEvenParity +
-                                   ")" + padding + " as packet #" + index + " of " + TOTAL_PACKETS_TO_SEND);
-                baos.reset(); // clear the output stream after sending
-            }
-        }
-        catch (IOException | InterruptedException e)
-        {
-            System.err.println("Problem with UDPSenderGaribay, see exception trace:");
-            System.err.println(e);
-        } 
-        finally // clean up prior to exit, don't want to leave behind zombies
-        {
-            if (udpSocket != null)
-                udpSocket.close();
-            
-            if (dos != null)
-                dos.close();
-            System.out.println(UDPSenderGaribay.class.getName() + " complete."); // all done
-        }
-    }
-}
+
+package MV3500Cohort2020JulySeptember.homework3.Garibay;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+
+/**
+ *
+ * @author chris
+ */
+public class UDPSenderGaribay 
+{
+    // System properties: https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
+    private static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
+//  public static final int          SENDING_PORT = 1414; // not needed, can let system choose an open local port
+    /** socket value of shared interest */
+    public static final int        RECEIVING_PORT = 1415;
+    /** socket value of shared interest */
+    private static final int TOTAL_PACKETS_TO_SEND = 100;
+    
+    /** here is what we need for lab comms;  Bill Mahan's host ip */
+    public static final String   DESTINATION_HOST = "10.1.105.13"; // localhost 127.0.0.1 or argon 10.1.105.1 or 10.1.105.1 or whatever
+    
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    @SuppressWarnings("SleepWhileInLoop")
+    public static void main(String[] args)
+    {
+        DatagramSocket udpSocket = null;
+        DataOutputStream  dos = null;
+        int   packetID = 0;     // counter variable to send in packet
+        float    value = -1.0f; // unreachable value is good sentinel to ensure expected changes occur
+        String message = MY_NAME + "It's not a trick question!"; // no really
+        String padding = new String();
+        
+        try
+        {
+            System.out.println(UDPSenderGaribay.class.getName() + " shows how to send simple-type values via DataOutputStream");
+            System.out.println(UDPSenderGaribay.class.getName() + " started...");
+            
+            // Create a UDP socket
+            udpSocket = new DatagramSocket(); // let system assign output port, then SENDING_PORT not needed
+            
+            // Put together a message with binary content. "ByteArrayOutputStream"
+            // is a java.io utility that lets us put together an array of binary
+            // data, which we put into the UDP packet.
+            
+            ByteArrayOutputStream baos = new ByteArrayOutputStream(1500); // how many bytes are in buffer?  MTU=1500 is good
+            dos = new DataOutputStream(baos); // wrapper for writing values, connects both streams
+			
+            // Put together a packet to send
+            // these types and order of variables must match on sender and receiver
+            byte[] byteArray = baos.toByteArray();
+            
+            // ID of the host we are sending to
+            InetAddress destinationAddress = InetAddress.getByName(DESTINATION_HOST);
+            // ID of the host we are sending from
+            InetAddress      sourceAddress = InetAddress.getByName("localhost"); // possibly identical if source not modified
+            
+            DatagramPacket datagramPacket = new DatagramPacket(byteArray, byteArray.length, destinationAddress, RECEIVING_PORT);
+       
+            // Hmmm, how fast does UDP stream go? Does UDP effectively slow packets down, or does
+            // this cause network problems? (hint: yes for an unlimited send rate, unlike TCP).
+            // How do you know on the receiving side that you haven't received a
+            // duplicate UDP packet, out-of-order packet, or dropped packet? your responsibility.
+            
+            for (int index = 1; index <= TOTAL_PACKETS_TO_SEND; index++) // avoid infinite send loops in code, they can be hard to kill!
+            {
+                packetID++;                               // increment counter, prefer using explicit value to index
+                value = TOTAL_PACKETS_TO_SEND - packetID; // countdown
+                boolean isPacketIdEvenParity = ((packetID % 2) == 0); // % is modulo operator; result 0 is even parity, 1 is odd parity
+                
+                // values of interest follow. order and types of what was sent must match what you are reading!
+                dos.writeInt    (packetID);
+                dos.writeFloat  (value);
+                dos.writeUTF    (message); // string value with guaranteed encoding, matches UTF-8 is 8 bit
+                dos.writeBoolean(isPacketIdEvenParity);
+                
+                dos.flush(); // sends DataOutputStream to ByteArrayOutputStream
+                byteArray = baos.toByteArray();    // OK so go get the flushed result...
+                datagramPacket.setData(byteArray); // and put it in the packet...
+                udpSocket.send(datagramPacket);    // and send it away. boom gone, nonblocking.
+//              System.out.println("udpSocket output port=" + udpSocket.getLocalPort()); // diagnostic tells what port was chosen by system
+                
+                if  (isPacketIdEvenParity)
+                     padding = " ";
+                else padding = "";
+            
+                Thread.sleep(1000); // Send packets at rate of one per second
+                System.out.println("[" + UDPSenderGaribay.class.getName() + "] " + MY_NAME + " " + sourceAddress + 
+                                   " sent values(" + packetID + "," + value + ",\"" + message + "\"," + isPacketIdEvenParity +
+                                   ")" + padding + " as packet #" + index + " of " + TOTAL_PACKETS_TO_SEND);
+                baos.reset(); // clear the output stream after sending
+            }
+        }
+        catch (IOException | InterruptedException e)
+        {
+            System.err.println("Problem with UDPSenderGaribay, see exception trace:");
+            System.err.println(e);
+        } 
+        finally // clean up prior to exit, don't want to leave behind zombies
+        {
+            if (udpSocket != null)
+                udpSocket.close();
+            try {
+                if (dos != null)
+                    dos.close();
+            }
+            catch (IOException e)
+            {
+                System.err.println("Problem with UDPSenderGaribay, see exception trace:");
+                System.err.println(e);
+            } 
+            System.out.println(UDPSenderGaribay.class.getName() + " complete."); // all done
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Goericke/TCPNumberReceiverUDPResultSender.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Goericke/TCPNumberReceiverUDPResultSender.java
index 561f3537470dcac8fadeb17873a7b3034bad2dc0..010f6e9c62e1821c45058248adbe87f0fb9089e5 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Goericke/TCPNumberReceiverUDPResultSender.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Goericke/TCPNumberReceiverUDPResultSender.java
@@ -21,7 +21,7 @@ import java.net.Socket;
  */
 public class TCPNumberReceiverUDPResultSender {
 
-    // Change this to the port where the TCP server is listening
+    /** Change this to the port where the TCP server is listening */
     public static final int TCP_ARGON_SERVER_PORT = 2317;
 
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpReceiver.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpReceiver.java
index af090a23bd74a8a2b1e1a08c17ae134af1b6606a..39f689c8d20715c2d9e4ca8bba95e9b33b074ad8 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpReceiver.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpReceiver.java
@@ -10,7 +10,9 @@ import java.net.*;
 public class MahanUdpReceiver 
 {
 //  public static final int       SENDING_PORT = 1414; // port used by UdpSender, unneeded here
+    /** socket parameter of interest */
     public static final int     RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final String DESINATION_HOST = "10.1.105.12";
 
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpSender.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpSender.java
index 199cbd5217bd2e9ce943a7df983686dc3ed3a474..633ac03b6917f8d5d7d295a8ac0fde0f867e5b69 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpSender.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/MahanUdpSender.java
@@ -10,14 +10,21 @@ import java.net.*;
 public class MahanUdpSender
 {
     // System properties: https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
-    public static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
+    private static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
 //  public static final int          SENDING_PORT = 1414; // not needed, can let system choose an open local port
+    /** socket parameter of interest */
     public static final int        RECEIVING_PORT = 1415;
+    /** socket parameter of interest */
     public static final int TOTAL_PACKETS_TO_SEND = 100;
     
     // here is what we need for lab comms
+    /** socket parameter of interest */
     public static final String   DESTINATION_HOST = "10.1.105.12"; // localhost 127.0.0.1 or argon 10.1.105.1 or 10.1.105.1 or whatever
     
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
     @SuppressWarnings("SleepWhileInLoop")
     public static void main(String[] args) throws IOException 
     {
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/TCPNumberSender.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/TCPNumberSender.java
index 5f00e22ff84f4a7810377948dba618ae9fbc746e..0301696245af21a2b50b18f3e5d64736a5023a14 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/TCPNumberSender.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/TCPNumberSender.java
@@ -17,18 +17,21 @@ import java.net.Socket;
 public class TCPNumberSender {
     
     // Change this to the IP address of the TCP server 10.1.105.9 (127.0.0.1 just for testing)
+    /** socket parameter of interest */
     public static final String TCP_ARGON_SERVER_IP = "127.0.0.1";
     // Change this to the port where the TCP server is listening
+    /** socket parameter of interest */
     public static final int TCP_ARGON_SERVER_PORT = 2317;
     // Where the result should be posted (port)
+    /** socket parameter of interest */
     public static final int UDP_ARGON_RECEIVING_PORT = 1415;
     
-    public static final int NUMBER1 = 16;
-    public static final int NUMBER2 = 2;
-    public static final String CALCULATION_METHOD = "-";
+    static final int NUMBER1 = 16;
+    static final int NUMBER2 = 2;
+    static final String CALCULATION_METHOD = "-";
     
     // how many times should the number being sent
-    public static final int REPETITION = 1;
+    private static final int REPETITION = 1;
     private static int counter = 0;
     
     public static void main(String[] args) throws InterruptedException {
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/UDPResultReceiver.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/UDPResultReceiver.java
index 8dc85b0427ad8f360a8577944cc97c55cea5bf27..939f63f4ef32252f4d7a44429938f621c844406e 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/UDPResultReceiver.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/UDPResultReceiver.java
@@ -16,6 +16,7 @@ import java.net.DatagramSocket;
  */
 public class UDPResultReceiver {
 
+    /** socket parameter of interest */
     public static final int    RECEIVING_PORT = 1415;
 
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/WeissenbergerGoericke/TCPNumberReceiverUDPResultSender.java b/assignments/src/MV3500Cohort2020JulySeptember/homework3/WeissenbergerGoericke/TCPNumberReceiverUDPResultSender.java
index 30eeb323c6b5b7fa12dbd6abd8fbf8dc535db36a..016bd924e2332e1d73df4e032b49ab20c86cd3f4 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework3/WeissenbergerGoericke/TCPNumberReceiverUDPResultSender.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/WeissenbergerGoericke/TCPNumberReceiverUDPResultSender.java
@@ -22,6 +22,7 @@ import java.net.Socket;
 public class TCPNumberReceiverUDPResultSender {
 
     // Change this to the port where the TCP server is listening
+    /** socket parameter of interest */
     public static final int TCP_ARGON_SERVER_PORT = 2317;
 
     /**
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/BrittSimulation.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/BrittSimulation.java
index d5a2909abd3d68c07c88c2745ffd765d5cb40152..6abc7c2579f0072df14888329a3d68b712581e92 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/BrittSimulation.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/BrittSimulation.java
@@ -92,7 +92,7 @@ public class BrittSimulation
     {
         disNetworkInterface = new DisThreadedNetworkInterface(getNetworkAddress(), getNetworkPort());
         
-        System.out.println("Network confirmation: address=" + disNetworkInterface.getMcastGroup() + " port=" + disNetworkInterface.getDisPort());
+        System.out.println("Network confirmation: address=" + disNetworkInterface.getMulticastGroup() + " port=" + disNetworkInterface.getDisPort());
         pduListener = new DisThreadedNetworkInterface.PduListener()
         {
             /** Callback handler for listener */
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/ExampleSimulationProgram.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/ExampleSimulationProgram.java
index 0b3f007706a8281e7f1e02ed0d72b463329a86bf..5c13f1a55a7d9251472b7fa89cdc61432a699ba5 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/ExampleSimulationProgram.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/ExampleSimulationProgram.java
@@ -82,7 +82,7 @@ public class ExampleSimulationProgram
     {
         disNetworkInterface = new DisThreadedNetworkInterface(getNetworkAddress(), getNetworkPort());
         
-        System.out.println("Network confirmation: address=" + disNetworkInterface.getMcastGroup() + " port=" + disNetworkInterface.getDisPort());
+        System.out.println("Network confirmation: address=" + disNetworkInterface.getMulticastGroup() + " port=" + disNetworkInterface.getDisPort());
         pduListener = new DisThreadedNetworkInterface.PduListener()
         {
             /** Callback handler for listener */
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/CannonArtillerySimulation.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/CannonArtillerySimulation.java
index cc43ae2fd99bc4f5bf3b6800a75011cefb7fbbcc..585b8606511bb6c71c73e22dc341e30deb873b8f 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/CannonArtillerySimulation.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/CannonArtillerySimulation.java
@@ -87,7 +87,7 @@ public class CannonArtillerySimulation {
     public void setUpNetworkInterface() {
         disNetworkInterface = new DisThreadedNetworkInterface(getNetworkAddress(), getNetworkPort());
 
-        System.out.println("Network confirmation: address=" + disNetworkInterface.getMcastGroup() + " port=" + disNetworkInterface.getDisPort());
+        System.out.println("Network confirmation: address=" + disNetworkInterface.getMulticastGroup() + " port=" + disNetworkInterface.getDisPort());
         pduListener = new DisThreadedNetworkInterface.PduListener() {
             /**
              * Callback handler for listener
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/PDUReciever.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/PDUReciever.java
index 87658e1bc040f4669517411e94a77d2dd445c5c3..0fb971caadac84762dec4b25d8bb997ace99446f 100755
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/PDUReciever.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/PDUReciever.java
@@ -1,132 +1,134 @@
-package MV3500Cohort2020JulySeptember.homework4.Cannon;
-
-import MV3500Cohort2020JulySeptember.homework4.White.working.*;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis7.pdus.*;
-import edu.nps.moves.dis7.utilities.*;
-
-/**
- * Receives PDUs from GermanyEspduReceiverEspduVPNSender in IEEE DIS format.
- *
- * @version 09/05/2020
- * @author Bernd/Stefan
- * @version 0.1
- */
-public class PDUReciever {
-
-    /**
-     * Max size of a PDU in binary format that we can receive. This is actually
-     * somewhat outdated--PDUs can be larger--but this is a reasonable starting
-     * point.
-     */
-    public static final int MAX_PDU_SIZE = 8192;
-
-    /**
-     * Default port used, matches Wireshark DIS capture default
-     */
-    public static final int DEFAULT_PORT = 2317;
-    public static final int SECOND_PORT = 3000;
-    public static final int THIRD_PORT = 2318;
-    
-    
-    /**
-     * Output prefix to identify this class
-     */
-    private final static String TRACE_PREFIX = "[" + PDUReciever.class.getName() + "] ";
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String args[]) {
-        System.out.println(TRACE_PREFIX + "started...");
-
-        MulticastSocket socket1;
-        MulticastSocket socket2;
-        MulticastSocket socket3;
-        DatagramPacket packet;
-        DatagramPacket packet2;
-        DatagramPacket packet3;
-        PduFactory pduFactory = new PduFactory();
-        ArrayList<EntityID> knownEntities = new ArrayList<EntityID>();
-        int pduCount = 0;
-
-        try {
-            // Specify the socket to receive data
-            socket1 = new MulticastSocket(DEFAULT_PORT);
-            socket2 = new MulticastSocket(SECOND_PORT);
-            socket3 = new MulticastSocket(THIRD_PORT);
-            
-            System.out.println(TRACE_PREFIX + "listening for PDU packets on port " + DEFAULT_PORT );//+ " " + SECOND_PORT + " " + THIRD_PORT);
-            System.out.println("====================================================");
-
-            while (true) // Loop infinitely, receiving datagrams
-            {
-                byte buffer[] = new byte[MAX_PDU_SIZE];
-                packet = new DatagramPacket(buffer, buffer.length);
-
-                socket1.receive(packet);
-                
-                
-                
-                List<Pdu> pduBundle = pduFactory.getPdusFromBundle(packet.getData(), packet.getLength());
-                if (pduBundle.size() > 1) { // should be 1 for this project
-                    System.out.println("Bundle size is " + pduBundle.size());
-                }
-
-                // end iterator loop through PDU bundle
-                for (Pdu aPdu : pduBundle) {
-                    pduCount++;
-                    String receiptMessage = String.format("%3s", pduCount) // right justify, 3 characters
-                            + ". received PDU type " + aPdu.getPduType().getValue() + "=" + aPdu.getPduType().name() + " " + aPdu.getClass().getName() + "  from " + packet.getAddress();
-                    if (aPdu instanceof EntityStatePdu) {
-                        System.out.println(receiptMessage);
-                        EntityID entityID = ((EntityStatePdu) aPdu).getEntityID();
-                        Vector3Double position = ((EntityStatePdu) aPdu).getEntityLocation();
-                        System.out.println("     entityID triplet: [" + entityID.getSiteID() + ", " + entityID.getApplicationID() + ", " + entityID.getEntityID() + "] ");
-                        if (!knownEntities.contains(entityID)){
-                            knownEntities.add(entityID);
-                            EntityType entityType = ((EntityStatePdu) aPdu).getEntityType();
-                            System.out.println("     New Entity: " +entityType.getEntityKind() + " "+ entityType.getDomain() + " "+ entityType.getCountry() + " "+  entityType.getCategory() + " "+ entityType.getSubCategory() + " "+  entityType.getSpecific() );
-                        }
-                        System.out.println("     Location in DIS coordinates:        [" + position.getX() + ", " + position.getY() + ", " + position.getZ() + "]");
-
-                    }
-                    else if (aPdu instanceof FirePdu){
-                        System.out.println(receiptMessage);
-                        EntityID firingEntityID = ((FirePdu) aPdu).getFiringEntityID();
-                        EntityID targetEntityID = ((FirePdu) aPdu).getTargetEntityID();
-                        MunitionDescriptor munitionDescriptor = ((FirePdu) aPdu).getDescriptor();
-                        System.out.println("     firingEntityID triplet: [" + firingEntityID.getSiteID() + ", " + firingEntityID.getApplicationID() + ", " + firingEntityID.getEntityID() + "] ");
-                        System.out.println("     targetEntityID triplet: [" + targetEntityID.getSiteID() + ", " + targetEntityID.getApplicationID() + ", " + targetEntityID.getEntityID() + "] ");
-                        System.out.println("     Munition Information:   [" + munitionDescriptor.getMunitionType().getDomain() + "."+munitionDescriptor.getMunitionType().getCountry()   + "." + munitionDescriptor.getMunitionType().getCategory() + "."+ munitionDescriptor.getMunitionType().getSubCategory() + "." + munitionDescriptor.getMunitionType().getSpecific() + "." + munitionDescriptor.getMunitionType().getExtra() +  "]");
-                    }
-                    else if (aPdu instanceof CommentReliablePdu){
-                        System.out.println(receiptMessage);
-                       ArrayList<VariableDatum> payloadList = (ArrayList)((CommentReliablePdu) aPdu).getVariableDatumRecords();
-                    if (!payloadList.isEmpty())
-                        System.out.print  ("     messages: ");
-                    for (VariableDatum variableDatum : payloadList)
-                    {
-                        String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
-                        System.out.print  (" \"" + nextComment + "\"");
-                        System.out.println();
-                    }
-                    } //OTHER PDU TYPES
-                    else {
-                        System.out.println(receiptMessage);
-                    }
-                } // end of bundle loop
-                
-            } // end of while loop
-        } // end try block // end try block // end try block // end try block
-        catch (IOException ioe) {
-            System.out.println(TRACE_PREFIX + "Problem with input/output, see exception trace:");
-            System.out.println(ioe);
-        }
-        System.out.println(TRACE_PREFIX + "complete.");
-    } // end main
-} // end class
+package MV3500Cohort2020JulySeptember.homework4.Cannon;
+
+import MV3500Cohort2020JulySeptember.homework4.White.working.*;
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis7.pdus.*;
+import edu.nps.moves.dis7.utilities.*;
+
+/**
+ * Receives PDUs from GermanyEspduReceiverEspduVPNSender in IEEE DIS format.
+ *
+ * @version 09/05/2020
+ * @author Bernd/Stefan
+ * @version 0.1
+ */
+public class PDUReciever {
+
+    /**
+     * Max size of a PDU in binary format that we can receive. This is actually
+     * somewhat outdated--PDUs can be larger--but this is a reasonable starting
+     * point.
+     */
+    public static final int MAX_PDU_SIZE = 8192;
+
+    /**
+     * Default port used, matches Wireshark DIS capture default
+     */
+    public static final int DEFAULT_PORT = 2317;
+    /** socket value of shared interest */
+    public static final int SECOND_PORT = 3000;
+    /** socket value of shared interest */
+    public static final int THIRD_PORT = 2318;
+    
+    
+    /**
+     * Output prefix to identify this class
+     */
+    private final static String TRACE_PREFIX = "[" + PDUReciever.class.getName() + "] ";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String args[]) {
+        System.out.println(TRACE_PREFIX + "started...");
+
+        MulticastSocket socket1;
+        MulticastSocket socket2;
+        MulticastSocket socket3;
+        DatagramPacket packet;
+        DatagramPacket packet2;
+        DatagramPacket packet3;
+        PduFactory pduFactory = new PduFactory();
+        ArrayList<EntityID> knownEntities = new ArrayList<EntityID>();
+        int pduCount = 0;
+
+        try {
+            // Specify the socket to receive data
+            socket1 = new MulticastSocket(DEFAULT_PORT);
+            socket2 = new MulticastSocket(SECOND_PORT);
+            socket3 = new MulticastSocket(THIRD_PORT);
+            
+            System.out.println(TRACE_PREFIX + "listening for PDU packets on port " + DEFAULT_PORT );//+ " " + SECOND_PORT + " " + THIRD_PORT);
+            System.out.println("====================================================");
+
+            while (true) // Loop infinitely, receiving datagrams
+            {
+                byte buffer[] = new byte[MAX_PDU_SIZE];
+                packet = new DatagramPacket(buffer, buffer.length);
+
+                socket1.receive(packet);
+                
+                
+                
+                List<Pdu> pduBundle = pduFactory.getPdusFromBundle(packet.getData(), packet.getLength());
+                if (pduBundle.size() > 1) { // should be 1 for this project
+                    System.out.println("Bundle size is " + pduBundle.size());
+                }
+
+                // end iterator loop through PDU bundle
+                for (Pdu aPdu : pduBundle) {
+                    pduCount++;
+                    String receiptMessage = String.format("%3s", pduCount) // right justify, 3 characters
+                            + ". received PDU type " + aPdu.getPduType().getValue() + "=" + aPdu.getPduType().name() + " " + aPdu.getClass().getName() + "  from " + packet.getAddress();
+                    if (aPdu instanceof EntityStatePdu) {
+                        System.out.println(receiptMessage);
+                        EntityID entityID = ((EntityStatePdu) aPdu).getEntityID();
+                        Vector3Double position = ((EntityStatePdu) aPdu).getEntityLocation();
+                        System.out.println("     entityID triplet: [" + entityID.getSiteID() + ", " + entityID.getApplicationID() + ", " + entityID.getEntityID() + "] ");
+                        if (!knownEntities.contains(entityID)){
+                            knownEntities.add(entityID);
+                            EntityType entityType = ((EntityStatePdu) aPdu).getEntityType();
+                            System.out.println("     New Entity: " +entityType.getEntityKind() + " "+ entityType.getDomain() + " "+ entityType.getCountry() + " "+  entityType.getCategory() + " "+ entityType.getSubCategory() + " "+  entityType.getSpecific() );
+                        }
+                        System.out.println("     Location in DIS coordinates:        [" + position.getX() + ", " + position.getY() + ", " + position.getZ() + "]");
+
+                    }
+                    else if (aPdu instanceof FirePdu){
+                        System.out.println(receiptMessage);
+                        EntityID firingEntityID = ((FirePdu) aPdu).getFiringEntityID();
+                        EntityID targetEntityID = ((FirePdu) aPdu).getTargetEntityID();
+                        MunitionDescriptor munitionDescriptor = ((FirePdu) aPdu).getDescriptor();
+                        System.out.println("     firingEntityID triplet: [" + firingEntityID.getSiteID() + ", " + firingEntityID.getApplicationID() + ", " + firingEntityID.getEntityID() + "] ");
+                        System.out.println("     targetEntityID triplet: [" + targetEntityID.getSiteID() + ", " + targetEntityID.getApplicationID() + ", " + targetEntityID.getEntityID() + "] ");
+                        System.out.println("     Munition Information:   [" + munitionDescriptor.getMunitionType().getDomain() + "."+munitionDescriptor.getMunitionType().getCountry()   + "." + munitionDescriptor.getMunitionType().getCategory() + "."+ munitionDescriptor.getMunitionType().getSubCategory() + "." + munitionDescriptor.getMunitionType().getSpecific() + "." + munitionDescriptor.getMunitionType().getExtra() +  "]");
+                    }
+                    else if (aPdu instanceof CommentReliablePdu){
+                        System.out.println(receiptMessage);
+                       ArrayList<VariableDatum> payloadList = (ArrayList)((CommentReliablePdu) aPdu).getVariableDatumRecords();
+                    if (!payloadList.isEmpty())
+                        System.out.print  ("     messages: ");
+                    for (VariableDatum variableDatum : payloadList)
+                    {
+                        String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
+                        System.out.print  (" \"" + nextComment + "\"");
+                        System.out.println();
+                    }
+                    } //OTHER PDU TYPES
+                    else {
+                        System.out.println(receiptMessage);
+                    }
+                } // end of bundle loop
+                
+            } // end of while loop
+        } // end try block // end try block // end try block // end try block
+        catch (IOException ioe) {
+            System.out.println(TRACE_PREFIX + "Problem with input/output, see exception trace:");
+            System.out.println(ioe);
+        }
+        System.out.println(TRACE_PREFIX + "complete.");
+    } // end main
+} // end class
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/PDUReciever.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/PDUReceiver.java
similarity index 97%
rename from assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/PDUReciever.java
rename to assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/PDUReceiver.java
index cb0b4929c443ff7614054a9f290669805a36c0c8..c029215bc3a66369422c4b51acfbce95a7f0a856 100755
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/PDUReciever.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/PDUReceiver.java
@@ -1,144 +1,146 @@
-package MV3500Cohort2020JulySeptember.homework4.White.test;
-
-import MV3500Cohort2020JulySeptember.homework4.White.working.*;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis7.pdus.*;
-import edu.nps.moves.dis7.utilities.*;
-
-/**
- * Receives PDUs from GermanyEspduReceiverEspduVPNSender in IEEE DIS format.
- *
- * @version 09/05/2020
- * @author Bernd/Stefan
- * @version 0.1
- */
-public class PDUReciever {
-
-    /**
-     * Max size of a PDU in binary format that we can receive. This is actually
-     * somewhat outdated--PDUs can be larger--but this is a reasonable starting
-     * point.
-     */
-    public static final int MAX_PDU_SIZE = 8192;
-
-    /**
-     * Default port used, matches Wireshark DIS capture default
-     */
-    public static final int DEFAULT_PORT = 2317;
-    public static final int SECOND_PORT = 3000;
-    public static final int THIRD_PORT = 2318;
-    
-    
-    /**
-     * Output prefix to identify this class
-     */
-    private final static String TRACE_PREFIX = "[" + PDUReciever.class.getName() + "] ";
-
-    public static void main(String args[]) {
-        System.out.println(TRACE_PREFIX + "started...");
-
-        MulticastSocket socket1;
-        MulticastSocket socket2;
-        MulticastSocket socket3;
-        DatagramPacket packet;
-        DatagramPacket packet2;
-        DatagramPacket packet3;
-        PduFactory pduFactory = new PduFactory();
-        ArrayList<EntityID> knownEntities = new ArrayList<EntityID>();
-        int pduCount = 0;
-
-        try {
-            // Specify the socket to receive data
-            socket1 = new MulticastSocket(DEFAULT_PORT);
-            socket2 = new MulticastSocket(SECOND_PORT);
-            socket3 = new MulticastSocket(THIRD_PORT);
-            
-            System.out.println(TRACE_PREFIX + "listening for PDU packets on port " + DEFAULT_PORT );//+ " " + SECOND_PORT + " " + THIRD_PORT);
-            System.out.println("====================================================");
-
-            while (true) // Loop infinitely, receiving datagrams
-            {
-                byte buffer[] = new byte[MAX_PDU_SIZE];
-                packet = new DatagramPacket(buffer, buffer.length);
-
-                socket1.receive(packet);
-                
-                
-                
-                List<Pdu> pduBundle = pduFactory.getPdusFromBundle(packet.getData(), packet.getLength());
-                if (pduBundle.size() > 1) { // should be 1 for this project
-                    System.out.println("Bundle size is " + pduBundle.size());
-                }
-
-                // end iterator loop through PDU bundle
-                for (Pdu aPdu : pduBundle) {
-                    pduCount++;
-                    String receiptMessage = String.format("%3s", pduCount) // right justify, 3 characters
-                            + ". received PDU type " + aPdu.getPduType().getValue() + "=" + aPdu.getPduType().name() + " " + aPdu.getClass().getName() + "  from " + packet.getAddress();
-                    if (aPdu instanceof EntityStatePdu) {
-                        System.out.println(receiptMessage);
-                        EntityID entityID = ((EntityStatePdu) aPdu).getEntityID();
-                        Vector3Double position = ((EntityStatePdu) aPdu).getEntityLocation();
-                        System.out.println("     entityID triplet: [" + entityID.getSiteID() + ", " + entityID.getApplicationID() + ", " + entityID.getEntityID() + "] ");
-                        if (!knownEntities.contains(entityID)){
-                            knownEntities.add(entityID);
-                            EntityType entityType = ((EntityStatePdu) aPdu).getEntityType();
-                            System.out.println("     New Entity: " +entityType.getEntityKind() + " "+ entityType.getDomain() + " "+ entityType.getCountry() + " "+  entityType.getCategory() + " "+ entityType.getSubCategory() + " "+  entityType.getSpecific() );
-                        }
-                        System.out.println("     Location in DIS coordinates:        [" + position.getX() + ", " + position.getY() + ", " + position.getZ() + "]");
-
-                    }
-                    else if (aPdu instanceof FirePdu){
-                        System.out.println(receiptMessage);
-                        EntityID firingEntityID = ((FirePdu) aPdu).getFiringEntityID();
-                        EntityID targetEntityID = ((FirePdu) aPdu).getTargetEntityID();
-                        MunitionDescriptor munitionDescriptor = ((FirePdu) aPdu).getDescriptor();
-                        System.out.println("     firingEntityID triplet: [" + firingEntityID.getSiteID() + ", " + firingEntityID.getApplicationID() + ", " + firingEntityID.getEntityID() + "] ");
-                        System.out.println("     targetEntityID triplet: [" + targetEntityID.getSiteID() + ", " + targetEntityID.getApplicationID() + ", " + targetEntityID.getEntityID() + "] ");
-                        System.out.println("     Munition Information:   [" + munitionDescriptor.getMunitionType().getDomain() + "."+munitionDescriptor.getMunitionType().getCountry()   + "." + munitionDescriptor.getMunitionType().getCategory() + "."+ munitionDescriptor.getMunitionType().getSubCategory() + "." + munitionDescriptor.getMunitionType().getSpecific() + "]");
-                    }
-                    else if (aPdu instanceof CommentReliablePdu){
-                        System.out.println(receiptMessage);
-                       ArrayList<VariableDatum> payloadList = (ArrayList)((CommentReliablePdu) aPdu).getVariableDatumRecords();
-                        if (!payloadList.isEmpty())
-                            System.out.print  ("     messages: ");
-                        for (VariableDatum variableDatum : payloadList)
-                        {
-                            String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
-                            System.out.print  (" \"" + nextComment + "\"");
-                            System.out.println();
-                        }//
-                    }
-                    else if (aPdu instanceof ResupplyOfferPdu){
-                            System.out.println(receiptMessage);
-                            EntityID receiverID = ((ResupplyOfferPdu) aPdu).getReceivingEntityID();
-                            EntityID supplierID = ((ResupplyOfferPdu) aPdu).getSupplyingEntityID();
-                            List<SupplyQuantity> supplyList = ((ResupplyOfferPdu) aPdu).getSupplies();
-                            System.out.println("     Resupply Offer from Entity [" + supplierID.getSiteID() + ", "+ supplierID.getApplicationID() + ", " + supplierID.getEntityID() + "] to resupply Entity ["+ receiverID.getSiteID() + ", "+ receiverID.getApplicationID() + ", " + receiverID.getEntityID() + "]" );
-                            for (int i = 0; i < supplyList.size(); i++){
-                            SupplyQuantity supplyQ = supplyList.get(i);
-                            EntityType entityType = supplyQ.getSupplyType();
-                            float supplyQuantity = supplyQ.getQuantity();
-                            System.out.println("     Supplies Offered:   [Quantity: " + supplyQuantity + ",   Type: " +entityType.getEntityKind() + " "+ entityType.getDomain() + " "+ entityType.getCountry() + " "+  entityType.getCategory() + " "+ entityType.getSubCategory() + " "+  entityType.getSpecific() + " ]");
-                            
-                            }
-                    }
-                    
-                     //OTHER PDU TYPES
-                    else {
-                        System.out.println(receiptMessage);
-                    }
-                } // end of bundle loop
-                
-            } // end of while loop
-        } // end try block // end try block // end try block // end try block
-        catch (IOException ioe) {
-            System.out.println(TRACE_PREFIX + "Problem with input/output, see exception trace:");
-            System.out.println(ioe);
-        }
-        System.out.println(TRACE_PREFIX + "complete.");
-    } // end main
-} // end class
+package MV3500Cohort2020JulySeptember.homework4.White.test;
+
+import MV3500Cohort2020JulySeptember.homework4.White.working.*;
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis7.pdus.*;
+import edu.nps.moves.dis7.utilities.*;
+
+/**
+ * Receives PDUs from GermanyEspduReceiverEspduVPNSender in IEEE DIS format.
+ *
+ * @version 09/05/2020
+ * @author Bernd/Stefan
+ * @version 0.1
+ */
+public class PDUReceiver {
+
+    /**
+     * Max size of a PDU in binary format that we can receive. This is actually
+     * somewhat outdated--PDUs can be larger--but this is a reasonable starting
+     * point.
+     */
+    public static final int MAX_PDU_SIZE = 8192;
+
+    /**
+     * Default port used, matches Wireshark DIS capture default
+     */
+    public static final int DEFAULT_PORT = 2317;
+    /** socket parameter of interest */
+    public static final int SECOND_PORT = 3000;
+    /** socket parameter of interest */
+    public static final int THIRD_PORT = 2318;
+    
+    
+    /**
+     * Output prefix to identify this class
+     */
+    private final static String TRACE_PREFIX = "[" + PDUReceiver.class.getName() + "] ";
+
+    public static void main(String args[]) {
+        System.out.println(TRACE_PREFIX + "started...");
+
+        MulticastSocket socket1;
+        MulticastSocket socket2;
+        MulticastSocket socket3;
+        DatagramPacket packet;
+        DatagramPacket packet2;
+        DatagramPacket packet3;
+        PduFactory pduFactory = new PduFactory();
+        ArrayList<EntityID> knownEntities = new ArrayList<EntityID>();
+        int pduCount = 0;
+
+        try {
+            // Specify the socket to receive data
+            socket1 = new MulticastSocket(DEFAULT_PORT);
+            socket2 = new MulticastSocket(SECOND_PORT);
+            socket3 = new MulticastSocket(THIRD_PORT);
+            
+            System.out.println(TRACE_PREFIX + "listening for PDU packets on port " + DEFAULT_PORT );//+ " " + SECOND_PORT + " " + THIRD_PORT);
+            System.out.println("====================================================");
+
+            while (true) // Loop infinitely, receiving datagrams
+            {
+                byte buffer[] = new byte[MAX_PDU_SIZE];
+                packet = new DatagramPacket(buffer, buffer.length);
+
+                socket1.receive(packet);
+                
+                
+                
+                List<Pdu> pduBundle = pduFactory.getPdusFromBundle(packet.getData(), packet.getLength());
+                if (pduBundle.size() > 1) { // should be 1 for this project
+                    System.out.println("Bundle size is " + pduBundle.size());
+                }
+
+                // end iterator loop through PDU bundle
+                for (Pdu aPdu : pduBundle) {
+                    pduCount++;
+                    String receiptMessage = String.format("%3s", pduCount) // right justify, 3 characters
+                            + ". received PDU type " + aPdu.getPduType().getValue() + "=" + aPdu.getPduType().name() + " " + aPdu.getClass().getName() + "  from " + packet.getAddress();
+                    if (aPdu instanceof EntityStatePdu) {
+                        System.out.println(receiptMessage);
+                        EntityID entityID = ((EntityStatePdu) aPdu).getEntityID();
+                        Vector3Double position = ((EntityStatePdu) aPdu).getEntityLocation();
+                        System.out.println("     entityID triplet: [" + entityID.getSiteID() + ", " + entityID.getApplicationID() + ", " + entityID.getEntityID() + "] ");
+                        if (!knownEntities.contains(entityID)){
+                            knownEntities.add(entityID);
+                            EntityType entityType = ((EntityStatePdu) aPdu).getEntityType();
+                            System.out.println("     New Entity: " +entityType.getEntityKind() + " "+ entityType.getDomain() + " "+ entityType.getCountry() + " "+  entityType.getCategory() + " "+ entityType.getSubCategory() + " "+  entityType.getSpecific() );
+                        }
+                        System.out.println("     Location in DIS coordinates:        [" + position.getX() + ", " + position.getY() + ", " + position.getZ() + "]");
+
+                    }
+                    else if (aPdu instanceof FirePdu){
+                        System.out.println(receiptMessage);
+                        EntityID firingEntityID = ((FirePdu) aPdu).getFiringEntityID();
+                        EntityID targetEntityID = ((FirePdu) aPdu).getTargetEntityID();
+                        MunitionDescriptor munitionDescriptor = ((FirePdu) aPdu).getDescriptor();
+                        System.out.println("     firingEntityID triplet: [" + firingEntityID.getSiteID() + ", " + firingEntityID.getApplicationID() + ", " + firingEntityID.getEntityID() + "] ");
+                        System.out.println("     targetEntityID triplet: [" + targetEntityID.getSiteID() + ", " + targetEntityID.getApplicationID() + ", " + targetEntityID.getEntityID() + "] ");
+                        System.out.println("     Munition Information:   [" + munitionDescriptor.getMunitionType().getDomain() + "."+munitionDescriptor.getMunitionType().getCountry()   + "." + munitionDescriptor.getMunitionType().getCategory() + "."+ munitionDescriptor.getMunitionType().getSubCategory() + "." + munitionDescriptor.getMunitionType().getSpecific() + "]");
+                    }
+                    else if (aPdu instanceof CommentReliablePdu){
+                        System.out.println(receiptMessage);
+                       ArrayList<VariableDatum> payloadList = (ArrayList)((CommentReliablePdu) aPdu).getVariableDatumRecords();
+                        if (!payloadList.isEmpty())
+                            System.out.print  ("     messages: ");
+                        for (VariableDatum variableDatum : payloadList)
+                        {
+                            String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
+                            System.out.print  (" \"" + nextComment + "\"");
+                            System.out.println();
+                        }//
+                    }
+                    else if (aPdu instanceof ResupplyOfferPdu){
+                            System.out.println(receiptMessage);
+                            EntityID receiverID = ((ResupplyOfferPdu) aPdu).getReceivingEntityID();
+                            EntityID supplierID = ((ResupplyOfferPdu) aPdu).getSupplyingEntityID();
+                            List<SupplyQuantity> supplyList = ((ResupplyOfferPdu) aPdu).getSupplies();
+                            System.out.println("     Resupply Offer from Entity [" + supplierID.getSiteID() + ", "+ supplierID.getApplicationID() + ", " + supplierID.getEntityID() + "] to resupply Entity ["+ receiverID.getSiteID() + ", "+ receiverID.getApplicationID() + ", " + receiverID.getEntityID() + "]" );
+                            for (int i = 0; i < supplyList.size(); i++){
+                            SupplyQuantity supplyQ = supplyList.get(i);
+                            EntityType entityType = supplyQ.getSupplyType();
+                            float supplyQuantity = supplyQ.getQuantity();
+                            System.out.println("     Supplies Offered:   [Quantity: " + supplyQuantity + ",   Type: " +entityType.getEntityKind() + " "+ entityType.getDomain() + " "+ entityType.getCountry() + " "+  entityType.getCategory() + " "+ entityType.getSubCategory() + " "+  entityType.getSpecific() + " ]");
+                            
+                            }
+                    }
+                    
+                     //OTHER PDU TYPES
+                    else {
+                        System.out.println(receiptMessage);
+                    }
+                } // end of bundle loop
+                
+            } // end of while loop
+        } // end try block // end try block // end try block // end try block
+        catch (IOException ioe) {
+            System.out.println(TRACE_PREFIX + "Problem with input/output, see exception trace:");
+            System.out.println(ioe);
+        }
+        System.out.println(TRACE_PREFIX + "complete.");
+    } // end main
+} // end class
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java
index ca5d0405f2a4e8a01709d9d8d89225fe8e991c8c..669117f1ecad8ae43c7710754c2c776e1eefe782 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java
@@ -93,7 +93,7 @@ public class WhiteSimulation
     {
         disNetworkInterface = new DisThreadedNetworkInterface(getNetworkAddress(), getNetworkPort());
         
-        System.out.println("Network confirmation: address=" + disNetworkInterface.getMcastGroup() + " port=" + disNetworkInterface.getDisPort());
+        System.out.println("Network confirmation: address=" + disNetworkInterface.getMulticastGroup() + " port=" + disNetworkInterface.getDisPort());
         pduListener = new DisThreadedNetworkInterface.PduListener()
         {
             /** Callback handler for listener */
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java
index ebee25ed486ab4686f7ab3bc88430a30e5fea01e..bf004e918f52b1b22e2963457172efa2eede91aa 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java
@@ -92,7 +92,7 @@ public class WhiteSimulation
     {
         disNetworkInterface = new DisThreadedNetworkInterface(getNetworkAddress(), getNetworkPort());
         
-        System.out.println("Network confirmation: address=" + disNetworkInterface.getMcastGroup() + " port=" + disNetworkInterface.getDisPort());
+        System.out.println("Network confirmation: address=" + disNetworkInterface.getMulticastGroup() + " port=" + disNetworkInterface.getDisPort());
         pduListener = new DisThreadedNetworkInterface.PduListener()
         {
             /** Callback handler for listener */
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/FisherTCPExample1Telnet.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/FisherTCPExample1Telnet.java
index 91f18ffa79d3cd8ba9126bd8e399d3b57b10d304..02c665c7ee222eb8b51f601147517ddd9043de22 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/FisherTCPExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/FisherTCPExample1Telnet.java
@@ -1,64 +1,67 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- *
- * @author adfis
- */
-
-
-public class FisherTCPExample1Telnet {
-    public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("Client response was written by Alex' server TcpExample1."); // to remote clientnc
-                ps.println("We are crushing this assignment, good work.");
-                System.out.println("Server response was written by Alex' server TcpExample1."); // to server console
-                System.out.println("SUCCESS!");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("FisherTCPExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with FisherTCPExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-}
-
+package MV3500Cohort2021JulySeptember.homework1;
+
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ *
+ * @author adfis
+ */
+
+
+public class FisherTCPExample1Telnet
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("Client response was written by Alex' server TcpExample1."); // to remote clientnc
+                ps.println("We are crushing this assignment, good work.");
+                System.out.println("Server response was written by Alex' server TcpExample1."); // to server console
+                System.out.println("SUCCESS!");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("FisherTCPExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with FisherTCPExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+}
+
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java
index 67275fa64d71b19b353d4a84947fa57fab80d2df..bc10d3f03a375cbe549ba81203e6238894866f3b 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java
@@ -1,96 +1,97 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.Socket;
-
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-/**
- *
- * @author justi
- */
-public class FrankTCPExample3Client {
-
-    /**
-     */
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     *
-     * @param args command-line arguments
-     * @throws java.lang.InterruptedException
-     */
-    public static void main(String[] args) throws InterruptedException {
-
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-
-        try {
-            while (true) {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(FrankTCPExample3Client.class.getName() + " creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2318); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-
-                System.out.print("Client loop " + clientLoopCount + ": ");
-                System.out.println("now we're talking!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                if (serverMessage.equals("this is good bye message from the server")) { //if client recieved termanation message stop client
-                    break;
-                }
-                Thread.sleep(1000); // turned it down to 1 second
-
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } catch (IOException e) {
-            System.err.println("Problem with " + FrankTCPExample3Client.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        } finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null) {
-                    socket.close();
-                }
-            } catch (IOException e) {
-            }
-
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println("FrankTCPExample3Client.class.getName() + exit");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.Socket;
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+/**
+ *
+ * @author justi
+ */
+public class FrankTCPExample3Client {
+
+    /**
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     *
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+
+        try {
+            while (true) {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(FrankTCPExample3Client.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2318); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+
+                System.out.print("Client loop " + clientLoopCount + ": ");
+                System.out.println("now we're talking!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                if (serverMessage.equals("this is good bye message from the server")) { //if client recieved termanation message stop client
+                    break;
+                }
+                Thread.sleep(1000); // turned it down to 1 second
+
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException | InterruptedException e) 
+        {
+            System.err.println("Problem with " + FrankTCPExample3Client.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        } finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null) {
+                    socket.close();
+                }
+            } catch (IOException e) {
+            }
+
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println("FrankTCPExample3Client.class.getName() + exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.java
index 45c8aa10fe6e56ddac91ec864216aac7eb93cafd..4f2f56382d86421fa3a0dca356e9996ed4f8ba23 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.java
@@ -1,107 +1,108 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * Very slightly more complex than example1, further modifying example2. The
- * only thing this does differently is introduce a loop into the response, so
- * you don't have to restart the program after one response. Also, it prints out
- * the socket pair the server sees. Run the program via telnet several times and
- * compare the socket pairs.
- *
- * telnet (nc) localhost 2318
- *
- * If you're sophisticated you can contact the instructor's computer while
- * running this program.
- *
- * telnet (nc) [ipNumberOfServerLaptop] 2317
- *
- * and have the instructor display the socket pairs received.
- *
- * @author mcgredo
- * @author brutzman
- */
-public class FrankTCPExample3Server {
-
-    /**
-     * Program invocation, execution starts here If already compiled, can run
-     * using console in directory ../../build/classes/ by invoking \ java
-     * -classpath . TcpExamples.TcpExample3Server
-     *
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) throws InterruptedException {
-        try {
-
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            System.out.println(FrankTCPExample3Server.class.getName() + " has started..."); // it helps debugging to put this on console first
-
-            ServerSocket serverSocket = new ServerSocket(2318); // changed from 2317 to 2318
-            OutputStream os;
-            PrintStream ps;
-            InetAddress localAddress, remoteAddress;
-            int localPort, remotePort;
-            int serverLoopCount = 0;
-
-            // Server is up and waiting (i.e. "blocked" or paused)
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while (true) {
-
-                // block until connected to a client
-                try ( Socket clientConnectionSocket = serverSocket.accept()) {
-                    serverLoopCount++; // increment at beginning of loop for reliability
-
-                    // Now hook everything up (i.e. set up the streams), Java style:
-                    os = clientConnectionSocket.getOutputStream();
-                    ps = new PrintStream(os);
-                    if (serverLoopCount <= 20) { // checking if the loop count <= 20
-                        ps.println("This is response " + serverLoopCount + " produced by the server."); // this gets sent back to client!
-                    } else {
-                        ps.println("this is good bye message from the server"); // termination after 20 messages
-                        break; // Stop server
-                    }
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair).
-                    localAddress = clientConnectionSocket.getLocalAddress();
-                    remoteAddress = clientConnectionSocket.getInetAddress();
-                    localPort = clientConnectionSocket.getLocalPort();
-                    remotePort = clientConnectionSocket.getPort();
-
-                    System.out.print("Server loop " + serverLoopCount + ": ");
-
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    // Why is the first IP/port the same, while the second set has different ports?
-                    System.out.println(FrankTCPExample3Server.class.getName() + " socket pair showing host name, address, port:");
-                    System.out.println("  (( "
-                            + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( "
-                            + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
-
-                    if (localAddress.getHostName().equals(localAddress.getHostAddress())
-                            || remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) {
-                        System.out.println("  note HostName matches address if host has no DNS name");
-                    }
-
-                    // Not/*i*/ce the use of flush() and try w/ resources. Without
-                    // the try w/ resources the Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. try w/ resources explicitly ends the connection.
-                    ps.flush();
-                    // like it or not, you're outta here!
-                }
-            }
-        } catch (IOException e) {
-            System.err.println("Problem with " + FrankTCPExample3Server.class.getName() + " networking: " + e);
-
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * Very slightly more complex than example1, further modifying example2. The
+ * only thing this does differently is introduce a loop into the response, so
+ * you don't have to restart the program after one response. Also, it prints out
+ * the socket pair the server sees. Run the program via telnet several times and
+ * compare the socket pairs.
+ *
+ * telnet (nc) localhost 2318
+ *
+ * If you're sophisticated you can contact the instructor's computer while
+ * running this program.
+ *
+ * telnet (nc) [ipNumberOfServerLaptop] 2317
+ *
+ * and have the instructor display the socket pairs received.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class FrankTCPExample3Server {
+
+    /**
+     * Program invocation, execution starts here If already compiled, can run
+     * using console in directory ../../build/classes/ by invoking \ java
+     * -classpath . TcpExamples.TcpExample3Server
+     *
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {
+        try {
+
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(FrankTCPExample3Server.class.getName() + " has started..."); // it helps debugging to put this on console first
+
+            ServerSocket serverSocket = new ServerSocket(2318); // changed from 2317 to 2318
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) {
+
+                // block until connected to a client
+                try ( Socket clientConnectionSocket = serverSocket.accept()) {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    if (serverLoopCount <= 20) { // checking if the loop count <= 20
+                        ps.println("This is response " + serverLoopCount + " produced by the server."); // this gets sent back to client!
+                    } else {
+                        ps.println("this is good bye message from the server"); // termination after 20 messages
+                        break; // Stop server
+                    }
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                    localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                    localPort = clientConnectionSocket.getLocalPort();
+                    remotePort = clientConnectionSocket.getPort();
+
+                    System.out.print("Server loop " + serverLoopCount + ": ");
+
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println(FrankTCPExample3Server.class.getName() + " socket pair showing host name, address, port:");
+                    System.out.println("  (( "
+                            + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( "
+                            + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
+
+                    if (localAddress.getHostName().equals(localAddress.getHostAddress())
+                            || remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) {
+                        System.out.println("  note HostName matches address if host has no DNS name");
+                    }
+
+                    // Not/*i*/ce the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + FrankTCPExample3Server.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerDomTcpExample1Telnet.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerDomTcpExample1Telnet.java
index 3ba4381f1ad60668101abdd5a16b4a0283e5f2cd..9404f23dd9e679af6eb7a4e8388d838a6b149b87 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerDomTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerDomTcpExample1Telnet.java
@@ -1,63 +1,66 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- *
- * @author adfis
- */
-
-
-public class HittnerDomTcpExample1Telnet {
-    public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("Client response was brought to you by the Domo"); // to remote clientnc
-                ps.println("DomsaMom");
-                System.out.println("Client response was brought to you by the Domo"); // to server console
-                System.out.println("DomsaMom");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("TcpExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ *
+ * @author adfis
+ */
+
+
+public class HittnerDomTcpExample1Telnet 
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("Client response was brought to you by the Domo"); // to remote clientnc
+                ps.println("DomsaMom");
+                System.out.println("Client response was brought to you by the Domo"); // to server console
+                System.out.println("DomsaMom");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("TcpExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerNickTcpExample1Telnet.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerNickTcpExample1Telnet.java
index 495dcb25294407aa06f1e22268a6eb25ebdfdbd7..7a23828f5a550bde530b97b09898a97487f10b61 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerNickTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/HittnerNickTcpExample1Telnet.java
@@ -1,63 +1,66 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- *
- * @author adfis
- */
-
-
-public class HittnerNickTcpExample1Telnet {
-    public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("Client response was brought to you by the Highlander"); // to remote clientnc
-                ps.println("There Can Be Only One");
-                System.out.println("Client response was brought to you by the Highlander"); // to server console
-                System.out.println("There Can be Only One");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("TcpExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ *
+ * @author adfis
+ */
+
+
+public class HittnerNickTcpExample1Telnet
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("Client response was brought to you by the Highlander"); // to remote clientnc
+                ps.println("There Can Be Only One");
+                System.out.println("Client response was brought to you by the Highlander"); // to server console
+                System.out.println("There Can be Only One");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("TcpExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/KeevenTCPExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/KeevenTCPExample3Client.java
index baa963c2f6dbaebe3157da7c2e9b31a7e1797322..f318ba5ab1d4d68c6bbbd7f2a889a891ada842b1 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/KeevenTCPExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/KeevenTCPExample3Client.java
@@ -1,99 +1,100 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * This is Assignment 1 where I have modified the given code from TCPExample3Client
- * -sleep time has been extended to give more time in between loops
- * -Initial print line has been altered to reflect assingnment 1
- * -Loop only runs a finite number of times ,10.
- * Before, we always used telnet (netcat) to connect to the server. Here we are 
- * now writing our own program to do the connection.
- *
- * As you will see, when we run this after we start the server we will see the
- * same string telnet printed, sent by the server. The output at the server will
- * show different socket pairs for each time the loop iterates.
- *
- * @author mcgredo
- * @author brutzman
- */
-public class KeevenTCPExample3Client {
-
-    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
-     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
-     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
-     */
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) throws InterruptedException {
-        
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-        int numbLoops = 10;
-        
-        try {
-            while (clientLoopCount < numbLoops)
-            {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(KeevenTCPExample3Client.class.getName() + " creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2317); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is  = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br  = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("======================Assignment1===========================");
-                       
-                System.out.print  ("Client loop " + clientLoopCount + ": ");
-                System.out.println("now we're talking!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-                Thread.sleep(800l); // slow things down, for example 500l (long) = 500 msec
-                
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } 
-        catch (IOException e)
-        {
-            System.err.println("Problem with " + KeevenTCPExample3Client.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-        finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null)
-                    socket.close();
-            } catch (IOException e) {}
-            
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println(KeevenTCPExample3Client.class.getName() + " exit");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * This is Assignment 1 where I have modified the given code from TCPExample3Client
+ * -sleep time has been extended to give more time in between loops
+ * -Initial print line has been altered to reflect assingnment 1
+ * -Loop only runs a finite number of times ,10.
+ * Before, we always used telnet (netcat) to connect to the server. Here we are 
+ * now writing our own program to do the connection.
+ *
+ * As you will see, when we run this after we start the server we will see the
+ * same string telnet printed, sent by the server. The output at the server will
+ * show different socket pairs for each time the loop iterates.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class KeevenTCPExample3Client {
+
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {
+        
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        int numbLoops = 10;
+        
+        try {
+            while (clientLoopCount < numbLoops)
+            {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(KeevenTCPExample3Client.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is  = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br  = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("======================Assignment1===========================");
+                       
+                System.out.print  ("Client loop " + clientLoopCount + ": ");
+                System.out.println("now we're talking!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                Thread.sleep(800l); // slow things down, for example 500l (long) = 500 msec
+                
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException | InterruptedException e)
+        {
+            System.err.println("Problem with " + KeevenTCPExample3Client.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+        finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null)
+                    socket.close();
+            } catch (IOException e) {}
+            
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(KeevenTCPExample3Client.class.getName() + " exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/LeckieTcpExample2.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/LeckieTcpExample2.java
index 037e875c50c1d270f877119b837a3e2cda1ca00f..df128ef178a8e722c931db42395d7b2cbd4148d0 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/LeckieTcpExample2.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/LeckieTcpExample2.java
@@ -1,103 +1,107 @@
-package pkg3500.leckie;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- * Very slightly more complex than example1. The only thing this does
- * differently is introduce a loop into the response, so you don't
- * have to restart the program after one response. Also, it prints
- * out the socket pair the server sees. Run the program via telnet
- * several times and compare the socket pairs.
- * 
- * <code>telnet localhost 2317</code>
- * 
- * If you're sophisticated you can contact the instructor's computer
- * while running this program.
- * 
- * <code>telnet ipOfServersLaptop 2317</code>
- * 
- * And have that machine display the socket pairs received.
- * @author mcgredo
- * @author brutzman
- * @author leckie
- */
-public class LeckieTcpExample2 
-{
- public static void main(String[] args)
-    {
-        try
-        {
-            System.out.println("TcpExample2ConnectionCounting has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (nc localhost 2317) or (telnet localhost 2317)..." );
-			
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket needs to be made only once.
-			
-            int connectionCount = 0; // state variable
-            int totalEntrantCount = 31; // spoofed entrants
-            
-            ServerSocket serverSocket = new ServerSocket(2317); // server decides here what port to listen on.
-			// of interest: often client doesn't care what port it uses locally when connecting to that server port.
-
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while(true)
-            {
-                // blocks! then proceeds once a connection is "accept"ed
-                try (Socket clientConnection = serverSocket.accept()) {
-                    connectionCount++; // got another one!
-                    
-                    OutputStream os = clientConnection.getOutputStream();
-                    PrintStream ps = new PrintStream(os);
-                    
-                    ps.println("This client response was written by server " + LeckieTcpExample2.class.getName()); // to remote client
-                    System.out.println("This server response was written by server " + LeckieTcpExample2.class.getName()); // to server console
-                    
-                            ps.println("This is your lottery attempt number #" + connectionCount + ", you are aplicant number " + totalEntrantCount + " to try and win. Keep trying!");
-                    
-                    totalEntrantCount = (totalEntrantCount + 79);
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair.)
-                    
-                    InetAddress  localAddress = clientConnection.getLocalAddress();
-                    InetAddress remoteAddress = clientConnection.getInetAddress();
-                    
-                    int  localPort = clientConnection.getLocalPort();
-                    int remotePort = clientConnection.getPort();       // remember the prior question, why are 2 ports different?
-                    
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 )) note IPv6
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    //
-                    // Why is first IP/port the same, while the second set has different ports?
-                    
-                    System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
-                            remoteAddress.toString() + ", " + remotePort + " ))");
-                    
-                    System.out.println("got another connection, #" + connectionCount); // report progress
-                    
-                    // Notice the use of flush() and close(). Without
-                    // the close() to Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. Close() explicitly ends the connection.
-                    ps.flush();
-                }
-            }
-       }
-        catch(IOException e)
-        {
-            System.err.println("Problem with  " + LeckieTcpExample2.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-    
-}
+package pkg3500.leckie;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * Very slightly more complex than example1. The only thing this does
+ * differently is introduce a loop into the response, so you don't
+ * have to restart the program after one response. Also, it prints
+ * out the socket pair the server sees. Run the program via telnet
+ * several times and compare the socket pairs.
+ * 
+ * <code>telnet localhost 2317</code>
+ * 
+ * If you're sophisticated you can contact the instructor's computer
+ * while running this program.
+ * 
+ * <code>telnet ipOfServersLaptop 2317</code>
+ * 
+ * And have that machine display the socket pairs received.
+ * @author mcgredo
+ * @author brutzman
+ * @author leckie
+ */
+public class LeckieTcpExample2 
+{
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+ public static void main(String[] args)
+    {
+        try
+        {
+            System.out.println("TcpExample2ConnectionCounting has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (nc localhost 2317) or (telnet localhost 2317)..." );
+			
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket needs to be made only once.
+			
+            int connectionCount = 0; // state variable
+            int totalEntrantCount = 31; // spoofed entrants
+            
+            ServerSocket serverSocket = new ServerSocket(2317); // server decides here what port to listen on.
+			// of interest: often client doesn't care what port it uses locally when connecting to that server port.
+
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while(true)
+            {
+                // blocks! then proceeds once a connection is "accept"ed
+                try (Socket clientConnection = serverSocket.accept()) {
+                    connectionCount++; // got another one!
+                    
+                    OutputStream os = clientConnection.getOutputStream();
+                    PrintStream ps = new PrintStream(os);
+                    
+                    ps.println("This client response was written by server " + LeckieTcpExample2.class.getName()); // to remote client
+                    System.out.println("This server response was written by server " + LeckieTcpExample2.class.getName()); // to server console
+                    
+                            ps.println("This is your lottery attempt number #" + connectionCount + ", you are aplicant number " + totalEntrantCount + " to try and win. Keep trying!");
+                    
+                    totalEntrantCount = (totalEntrantCount + 79);
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair.)
+                    
+                    InetAddress  localAddress = clientConnection.getLocalAddress();
+                    InetAddress remoteAddress = clientConnection.getInetAddress();
+                    
+                    int  localPort = clientConnection.getLocalPort();
+                    int remotePort = clientConnection.getPort();       // remember the prior question, why are 2 ports different?
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 )) note IPv6
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    //
+                    // Why is first IP/port the same, while the second set has different ports?
+                    
+                    System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
+                            remoteAddress.toString() + ", " + remotePort + " ))");
+                    
+                    System.out.println("got another connection, #" + connectionCount); // report progress
+                    
+                    // Notice the use of flush() and close(). Without
+                    // the close() to Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. Close() explicitly ends the connection.
+                    ps.flush();
+                }
+            }
+       }
+        catch(IOException e)
+        {
+            System.err.println("Problem with  " + LeckieTcpExample2.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/McNeelyTCPExample2.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/McNeelyTCPExample2.java
index fc40c12a19f53e231416efc2d81e898277a8e3c0..3ac41ef7ab069ac08cf204be58f669005a4cf497 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/McNeelyTCPExample2.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/McNeelyTCPExample2.java
@@ -1,103 +1,105 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- * Very slightly more complex than example1. The only thing this does
- * differently is introduce a loop into the response, so you don't
- * have to restart the program after one response. Also, it prints
- * out the socket pair the server sees. Run the program via telnet
- * several times and compare the socket pairs.
- * 
- * <code>telnet localhost 2317</code>
- * 
- * If you're sophisticated you can contact the instructor's computer
- * while running this program.
- * 
- * <code>telnet ipOfServersLaptop 2317</code>
- * 
- * And have that machine display the socket pairs received.
- * @author mcgredo
- * @author brutzman
- * @author McNeely
- */
-public class McNeelyTCPExample2
-{
- public static void main(String[] args)
-    {
-        try
-        {
-            System.out.println("Justin McNeely's TcpExample2 has started and is waiting for a connection...");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (nc localhost 2317) or (telnet localhost 2317) to win..." );
-			
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket needs to be made only once.
-			
-            int connectionCount = 0; // state variable
-            int totalEntrantCount = 31; // spoofed entrants
-            
-            ServerSocket serverSocket = new ServerSocket(2317); // server decides here what port to listen on.
-			// of interest: often client doesn't care what port it uses locally when connecting to that server port.
-
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while(true)
-            {
-                // blocks! then proceeds once a connection is "accept"ed
-                try (Socket clientConnection = serverSocket.accept()) {
-                    connectionCount++; // got another one!
-                    
-                    OutputStream os = clientConnection.getOutputStream();
-                    PrintStream ps = new PrintStream(os);
-                    
-                    ps.println("This client response was written by server " + McNeelyTCPExample2.class.getName()); // to remote client
-                    System.out.println("This server response was written by server " + McNeelyTCPExample2.class.getName()); // to server console
-                    
-                            ps.println("You have attempted " + connectionCount + "times, you are now aplicant number " + totalEntrantCount + " to win. Keep trying!");
-                    
-                    totalEntrantCount = (totalEntrantCount + 24);
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair.)
-                    
-                    InetAddress  localAddress = clientConnection.getLocalAddress();
-                    InetAddress remoteAddress = clientConnection.getInetAddress();
-                    
-                    int  localPort = clientConnection.getLocalPort();
-                    int remotePort = clientConnection.getPort();       // remember the prior question, why are 2 ports different?
-                    
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 )) note IPv6
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    //
-                    // Why is first IP/port the same, while the second set has different ports?
-                    
-                    System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
-                            remoteAddress.toString() + ", " + remotePort + " ))");
-                    
-                    System.out.println("got another connection! WINNING!, #" + connectionCount); // report progress
-                    
-                    // Notice the use of flush() and close(). Without
-                    // the close() to Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. Close() explicitly ends the connection.
-                    ps.flush();
-                }
-            }
-       }
-        catch(IOException e)
-        {
-            System.err.println("Problem with  " + McNeelyTCPExample2.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-    
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * Very slightly more complex than example1. The only thing this does
+ * differently is introduce a loop into the response, so you don't
+ * have to restart the program after one response. Also, it prints
+ * out the socket pair the server sees. Run the program via telnet
+ * several times and compare the socket pairs.
+ * 
+ * <code>telnet localhost 2317</code>
+ * 
+ * If you're sophisticated you can contact the instructor's computer
+ * while running this program.
+ * 
+ * <code>telnet ipOfServersLaptop 2317</code>
+ * 
+ * And have that machine display the socket pairs received.
+ * @author mcgredo
+ * @author brutzman
+ * @author McNeely
+ */
+public class McNeelyTCPExample2
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args)
+    {
+        try
+        {
+            System.out.println("Justin McNeely's TcpExample2 has started and is waiting for a connection...");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (nc localhost 2317) or (telnet localhost 2317) to win..." );
+			
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket needs to be made only once.
+			
+            int connectionCount = 0; // state variable
+            int totalEntrantCount = 31; // spoofed entrants
+            
+            ServerSocket serverSocket = new ServerSocket(2317); // server decides here what port to listen on.
+			// of interest: often client doesn't care what port it uses locally when connecting to that server port.
+
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while(true)
+            {
+                // blocks! then proceeds once a connection is "accept"ed
+                try (Socket clientConnection = serverSocket.accept()) {
+                    connectionCount++; // got another one!
+                    
+                    OutputStream os = clientConnection.getOutputStream();
+                    PrintStream ps = new PrintStream(os);
+                    
+                    ps.println("This client response was written by server " + McNeelyTCPExample2.class.getName()); // to remote client
+                    System.out.println("This server response was written by server " + McNeelyTCPExample2.class.getName()); // to server console
+                    
+                            ps.println("You have attempted " + connectionCount + "times, you are now aplicant number " + totalEntrantCount + " to win. Keep trying!");
+                    
+                    totalEntrantCount = (totalEntrantCount + 24);
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair.)
+                    
+                    InetAddress  localAddress = clientConnection.getLocalAddress();
+                    InetAddress remoteAddress = clientConnection.getInetAddress();
+                    
+                    int  localPort = clientConnection.getLocalPort();
+                    int remotePort = clientConnection.getPort();       // remember the prior question, why are 2 ports different?
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 )) note IPv6
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    //
+                    // Why is first IP/port the same, while the second set has different ports?
+                    
+                    System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
+                            remoteAddress.toString() + ", " + remotePort + " ))");
+                    
+                    System.out.println("got another connection! WINNING!, #" + connectionCount); // report progress
+                    
+                    // Notice the use of flush() and close(). Without
+                    // the close() to Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. Close() explicitly ends the connection.
+                    ps.flush();
+                }
+            }
+       }
+        catch(IOException e)
+        {
+            System.err.println("Problem with  " + McNeelyTCPExample2.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/PughTcp2ConnectionCounting.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/PughTcp2ConnectionCounting.java
index 47ccc375d2671a5cf86c545b8c2b77ff1c053698..a95d95748eb8d8774fd482b10b535cf1a5d1c718 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/PughTcp2ConnectionCounting.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/PughTcp2ConnectionCounting.java
@@ -48,7 +48,7 @@ public class PughTcp2ConnectionCounting {
             while (true) {
                 // blocks! then proceeds once a connection is "accept"ed
                 try ( Socket clientConnection = serverSocket.accept()) {
-                    connectionCount++; // got another one!
+                    
 
                     OutputStream os = clientConnection.getOutputStream();
                     PrintStream ps = new PrintStream(os);
@@ -58,11 +58,11 @@ public class PughTcp2ConnectionCounting {
                     if (connectionCount % 2 == 1) {
                         System.out.println("Go\n");
                     }
-                    if (connectionCount % 2 == 0) {
-                        System.out.println("Gators!\n");
+                    if (connectionCount % 2 == 0 && connectionCount % 3 == 1) {
+                        System.out.println("Gators!");
                     }
                     if (connectionCount % 3 == 1 && connectionCount != 0) {
-                        System.out.println("O'Doyle Rules!!! \n");
+                        System.out.println("O'Doyle Rules!!!");
                     }
                     ps.println("You were connection #" + connectionCount + ", by my count");
 
@@ -89,6 +89,7 @@ public class PughTcp2ConnectionCounting {
                     // a while after the client has stopped needing this
                     // connection. Close() explicitly ends the connection.
                     ps.flush();
+                    connectionCount++; // got another one!
                 }
             }
         } catch (IOException e) {
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/ReynoldsTcpExample1Telnet1.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/ReynoldsTcpExample1Telnet1.java
index 2758b2dcafecba78d0f32534a03d3aaa2f1934ba..fffbf2d7e4ca972f0c4da1b219af7afc3e3ecda5 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/ReynoldsTcpExample1Telnet1.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/ReynoldsTcpExample1Telnet1.java
@@ -1,63 +1,66 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- *
- * @author kReynolds
- */
-
-
-public class ReynoldsTcpExample1Telnet1 {
-    public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("Client response was brought to you by the Domo"); // to remote clientnc
-                ps.println("DomsaMom");
-                System.out.println("Client response was brought to you by the Domo"); // to server console
-                System.out.println("DomsaMom");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("TcpExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ *
+ * @author kReynolds
+ */
+
+
+public class ReynoldsTcpExample1Telnet1
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("Client response was brought to you by the Domo"); // to remote clientnc
+                ps.println("DomsaMom");
+                System.out.println("Client response was brought to you by the Domo"); // to server console
+                System.out.println("DomsaMom");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("TcpExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/RobinsonTcpExample1Telnet.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/RobinsonTcpExample1Telnet.java
index 608af41e7dee3bfa8a370716eb6e513b28aba79f..5c201f36d6ccefeea1bbc402c462c1d852a8f04f 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/RobinsonTcpExample1Telnet.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/RobinsonTcpExample1Telnet.java
@@ -1,60 +1,63 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- *
- * @author mrobi
- */
-public class RobinsonTcpExample1Telnet {
-    public static void main(String[] args) 
-    {
-        try
-        {
-            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
-			
-            // The ServerSocket waits for a connection from a client.
-            // It returns a Socket object when the connection occurs.
-            ServerSocket serverSocket = new ServerSocket(2317);
-            
-            // Use Java io classes to write text (as opposed to
-            // unknown bytes of some sort) to the client
-            
-            // The Socket object represents the connection between
-            // the server and client, including a full duplex connection
-            try (Socket clientConnection = serverSocket.accept()) {
-                // Use Java io classes to write text (as opposed to
-                // unknown bytes of some sort) to the client
-                OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                ps.println("Client response was written by Matt's server TcpExample1."); // to remote clientnc
-                ps.println("Can you hear me?");
-                System.out.println("Client response was written by Matt's server TcpExample1."); // to server console
-                System.out.println("Yes");
-
-                // "flush()" in important in that it forces a write
-                // across what is in fact a slow connection
-                ps.flush();
-            }
-            System.out.println("TcpExample1 completed successfully.");
-        }
-        catch(IOException e)
-        {
-            System.err.println("Problem with FisherTCPExample1Telnet networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            
-            // brute force exception checking, can be brittle if exception message changes
-            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework1;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ *
+ * @author mrobi
+ */
+public class RobinsonTcpExample1Telnet
+{
+    /** run the program
+     * @param args command-line arguments, string parameters (unused) */
+    public static void main(String[] args) 
+    {
+        try
+        {
+            System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (telnet localhost 2317) or (nc localhost 2317)..." );
+			
+            // The ServerSocket waits for a connection from a client.
+            // It returns a Socket object when the connection occurs.
+            ServerSocket serverSocket = new ServerSocket(2317);
+            
+            // Use Java io classes to write text (as opposed to
+            // unknown bytes of some sort) to the client
+            
+            // The Socket object represents the connection between
+            // the server and client, including a full duplex connection
+            try (Socket clientConnection = serverSocket.accept()) {
+                // Use Java io classes to write text (as opposed to
+                // unknown bytes of some sort) to the client
+                OutputStream os = clientConnection.getOutputStream();
+                PrintStream ps = new PrintStream(os);
+                
+                ps.println("Client response was written by Matt's server TcpExample1."); // to remote clientnc
+                ps.println("Can you hear me?");
+                System.out.println("Client response was written by Matt's server TcpExample1."); // to server console
+                System.out.println("Yes");
+
+                // "flush()" in important in that it forces a write
+                // across what is in fact a slow connection
+                ps.flush();
+            }
+            System.out.println("TcpExample1 completed successfully.");
+        }
+        catch(IOException e)
+        {
+            System.err.println("Problem with FisherTCPExample1Telnet networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            
+            // brute force exception checking, can be brittle if exception message changes
+            // if (e.getMessage().equals("Address already in use: NET_Bind")) 
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/TcpExample2_Leckie_Mod_Hw1.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/TcpExample2_Leckie_Mod_Hw1.java
index 6fed11d3d705393f355c5db404295fd373f5159c..12176c49203f1f884fbef2ff62ba85a3a49876f5 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework1/TcpExample2_Leckie_Mod_Hw1.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/TcpExample2_Leckie_Mod_Hw1.java
@@ -1,103 +1,107 @@
-package pkg3500.leckie;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-/**
- * Very slightly more complex than example1. The only thing this does
- * differently is introduce a loop into the response, so you don't
- * have to restart the program after one response. Also, it prints
- * out the socket pair the server sees. Run the program via telnet
- * several times and compare the socket pairs.
- * 
- * <code>telnet localhost 2317</code>
- * 
- * If you're sophisticated you can contact the instructor's computer
- * while running this program.
- * 
- * <code>telnet ipOfServersLaptop 2317</code>
- * 
- * And have that machine display the socket pairs received.
- * @author mcgredo
- * @author brutzman
- * @author leckie
- */
-public class TcpExample2_Leckie_Mod_Hw1 
-{
- public static void main(String[] args)
-    {
-        try
-        {
-            System.out.println("TcpExample2ConnectionCounting has started and is waiting for a connection.");
-            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
-            System.out.println("  enter (nc localhost 2317) or (telnet localhost 2317)..." );
-			
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket needs to be made only once.
-			
-            int connectionCount = 0; // state variable
-            int totalEntrantCount = 31; // spoofed entrants
-            
-            ServerSocket serverSocket = new ServerSocket(2317); // server decides here what port to listen on.
-			// of interest: often client doesn't care what port it uses locally when connecting to that server port.
-
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while(true)
-            {
-                // blocks! then proceeds once a connection is "accept"ed
-                try (Socket clientConnection = serverSocket.accept()) {
-                    connectionCount++; // got another one!
-                    
-                    OutputStream os = clientConnection.getOutputStream();
-                    PrintStream ps = new PrintStream(os);
-                    
-                    ps.println("This client response was written by server " + TcpExample2_Leckie_Mod_Hw1.class.getName()); // to remote client
-                    System.out.println("This server response was written by server " + TcpExample2_Leckie_Mod_Hw1.class.getName()); // to server console
-                    
-                            ps.println("This is your lottery attempt number #" + connectionCount + ", you are aplicant number " + totalEntrantCount + " to try and win. Keep trying!");
-                    
-                    totalEntrantCount = (totalEntrantCount + 79);
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair.)
-                    
-                    InetAddress  localAddress = clientConnection.getLocalAddress();
-                    InetAddress remoteAddress = clientConnection.getInetAddress();
-                    
-                    int  localPort = clientConnection.getLocalPort();
-                    int remotePort = clientConnection.getPort();       // remember the prior question, why are 2 ports different?
-                    
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 )) note IPv6
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    //
-                    // Why is first IP/port the same, while the second set has different ports?
-                    
-                    System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
-                            remoteAddress.toString() + ", " + remotePort + " ))");
-                    
-                    System.out.println("got another connection, #" + connectionCount); // report progress
-                    
-                    // Notice the use of flush() and close(). Without
-                    // the close() to Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. Close() explicitly ends the connection.
-                    ps.flush();
-                }
-            }
-       }
-        catch(IOException e)
-        {
-            System.err.println("Problem with  " + TcpExample2_Leckie_Mod_Hw1.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException)
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-        }
-    }
-    
-}
+package pkg3500.leckie;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * Very slightly more complex than example1. The only thing this does
+ * differently is introduce a loop into the response, so you don't
+ * have to restart the program after one response. Also, it prints
+ * out the socket pair the server sees. Run the program via telnet
+ * several times and compare the socket pairs.
+ * 
+ * <code>telnet localhost 2317</code>
+ * 
+ * If you're sophisticated you can contact the instructor's computer
+ * while running this program.
+ * 
+ * <code>telnet ipOfServersLaptop 2317</code>
+ * 
+ * And have that machine display the socket pairs received.
+ * @author mcgredo
+ * @author brutzman
+ * @author leckie
+ */
+public class TcpExample2_Leckie_Mod_Hw1 
+{
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+ public static void main(String[] args)
+    {
+        try
+        {
+            System.out.println("TcpExample2ConnectionCounting has started and is waiting for a connection.");
+            System.out.println("  help: https://savage.nps.edu/Savage/developers.html#telnet");
+            System.out.println("  enter (nc localhost 2317) or (telnet localhost 2317)..." );
+			
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket needs to be made only once.
+			
+            int connectionCount = 0; // state variable
+            int totalEntrantCount = 31; // spoofed entrants
+            
+            ServerSocket serverSocket = new ServerSocket(2317); // server decides here what port to listen on.
+			// of interest: often client doesn't care what port it uses locally when connecting to that server port.
+
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while(true)
+            {
+                // blocks! then proceeds once a connection is "accept"ed
+                try (Socket clientConnection = serverSocket.accept()) {
+                    connectionCount++; // got another one!
+                    
+                    OutputStream os = clientConnection.getOutputStream();
+                    PrintStream ps = new PrintStream(os);
+                    
+                    ps.println("This client response was written by server " + TcpExample2_Leckie_Mod_Hw1.class.getName()); // to remote client
+                    System.out.println("This server response was written by server " + TcpExample2_Leckie_Mod_Hw1.class.getName()); // to server console
+                    
+                            ps.println("This is your lottery attempt number #" + connectionCount + ", you are aplicant number " + totalEntrantCount + " to try and win. Keep trying!");
+                    
+                    totalEntrantCount = (totalEntrantCount + 79);
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair.)
+                    
+                    InetAddress  localAddress = clientConnection.getLocalAddress();
+                    InetAddress remoteAddress = clientConnection.getInetAddress();
+                    
+                    int  localPort = clientConnection.getLocalPort();
+                    int remotePort = clientConnection.getPort();       // remember the prior question, why are 2 ports different?
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 )) note IPv6
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    //
+                    // Why is first IP/port the same, while the second set has different ports?
+                    
+                    System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " +
+                            remoteAddress.toString() + ", " + remotePort + " ))");
+                    
+                    System.out.println("got another connection, #" + connectionCount); // report progress
+                    
+                    // Notice the use of flush() and close(). Without
+                    // the close() to Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. Close() explicitly ends the connection.
+                    ps.flush();
+                }
+            }
+       }
+        catch(IOException e)
+        {
+            System.err.println("Problem with  " + TcpExample2_Leckie_Mod_Hw1.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException)
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+        }
+    }
+    
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework1/package-info.java b/assignments/src/MV3500Cohort2021JulySeptember/homework1/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..d69bfa62e613ce4b4a966ac3b23f6af57d248958
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework1/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2021JulySeptember.homework1;
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Client.java
index ef9b10791b649039f00c9d6260a0919c9fa49d9a..2184a1be395895c4fc9da11d10e3129698c901b7 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Client.java
@@ -24,6 +24,7 @@ public class AllenTcpExample3Client {
     /**
      * Program invocation, execution starts here
      * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
      */
     public static void main(String[] args) throws InterruptedException {
         
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Server.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Server.java
index 912102f5ec3dacfe25834c8acecace1dc93e8ea9..3f4344fe53b26d963cc9bfd6564bb773160ba5a4 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Server.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/AllenTcpExample3Server.java
@@ -19,7 +19,6 @@ import java.net.*;
  *
  * and have the instructor display the socket pairs received.
  *
- * @snapp
  */
 public class AllenTcpExample3Server {
 
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherClient.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherClient.java
index 256202cd33f873e8b414c9d071c4b4a54ba6d087..ea2fe6d1b86c55f4195b84cecaf7643e03a12c4c 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherClient.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherClient.java
@@ -10,7 +10,7 @@ import java.io.PrintStream;
 import java.net.Socket;
 
 /**
- * Before, we always used telnet (netcat) to connect to the server. Here we are
+ * Before, we always used telnet (netcat) to connect to server. Here we are
  * now writing our own program to do the connection.
  *
  * As you will see, when we run this after we start the server we will see the
@@ -19,9 +19,10 @@ import java.net.Socket;
  *
  * @author adfis
  */
-public class FisherClient {
-
+public class FisherClient
+{
     // IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+    /** socket parameter of interest */
     public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
                                             // Sub with someone's IP 
                                             // Got it to work with McNeely in class
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherServer.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherServer.java
index 164e32a072be7227420787be72028f85fb2f54c6..c6b16ee66f6232df0f0735a47b0f92d762a3a038 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherServer.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Fisher/FisherServer.java
@@ -59,7 +59,7 @@ public class FisherServer {
             // Made a loop counter for server to stop after 10 pings with client
             while (serverLoopCount <= 10) {
 
-                // block until connected to a client
+                // block until connected to the client
                 try ( Socket clientConnectionSocket = serverSocket.accept()) {
 
                     // Now hook everything up (i.e. set up the streams), Java style:
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankClient.JPG b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankClient.JPG
new file mode 100644
index 0000000000000000000000000000000000000000..620c37fabefb933270da0040244d029706887afe
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankClient.JPG differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankClient.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e8440366cc60797eb19efcdc0f48a358bbbdf2b
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankClient.java
@@ -0,0 +1,109 @@
+package MV3500Cohort2021JulySeptember.homework2.Frank;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.Reader;
+import java.net.Socket;
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+/**
+ *
+ * @author justi
+ */
+public class FrankClient {
+
+    /**
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     *
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        OutputStream os;
+        PrintStream ps;
+        
+
+        try {
+            while (true) {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println( "creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2318). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2318); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("*********************************");
+
+                System.out.print( clientLoopCount + ": ");
+                System.out.println("Hola!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                
+               
+               
+// socket gets closed, either automatically/silently by this code (or possibly by the server)
+                if (serverMessage.equals("this is good bye message from Franks server")) { //if client recieved termanation message stop client
+                    break;
+                }
+                os = socket.getOutputStream();
+                ps = new PrintStream(os);
+                ps.println("I'm doing well!"); // this gets sent back to server
+                ps.flush();
+                
+                Thread.sleep(1000); // turned it down to 1 second
+
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } catch (IOException e) {
+            System.err.println("Problem with " + FrankClient.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        } finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null) {
+                    socket.close();
+                }
+            } catch (IOException e) {
+            }
+
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println("Good Bye!!!");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankEventGraph.png b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankEventGraph.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d3a798d7b0723d59a70c29ab790c1604a366208
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankEventGraph.png differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankServer.JPG b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankServer.JPG
new file mode 100644
index 0000000000000000000000000000000000000000..d3da29b342839f53571c4a08d1d7d48feb2163d3
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankServer.JPG differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankServer.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankServer.java
new file mode 100644
index 0000000000000000000000000000000000000000..864516dda793c18c1d042be86e063df40a433e6c
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Frank/FrankServer.java
@@ -0,0 +1,98 @@
+package MV3500Cohort2021JulySeptember.homework2.Frank;
+
+import java.io.*;
+import java.net.*;
+
+
+public class FrankServer {
+
+    /**
+     * Program invocation, execution starts here If already compiled, can run
+     * using console in directory ../../build/classes/ by invoking \ java
+     * -classpath .TcpExamples.TcpExample3Server
+     *
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+        try {
+
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(FrankServer.class.getName() + " has started..."); // it helps debugging to put this on console first
+
+            ServerSocket serverSocket = new ServerSocket(2318); // changed from 2317 to 2318
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+            InputStream is;
+            InputStreamReader isr;
+            BufferedReader br;
+            String clientMessage;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) {
+
+                // block until connected to a client
+                try ( Socket clientConnectionSocket = serverSocket.accept()) {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    if (serverLoopCount <= 10) { // checking if the loop count <= 10
+                        ps.println("How are you doing?"); // this gets sent back to client!
+                    } else {
+                        ps.println("this is good bye message from Franks server"); // termination after 20 messages
+                        break; // Stop server
+                    }
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                    localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                    localPort = clientConnectionSocket.getLocalPort();
+                    remotePort = clientConnectionSocket.getPort();
+
+                    System.out.print("Server loop " + serverLoopCount + ": ");
+
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println(FrankServer.class.getName() + " socket pair showing host name, address, port:");
+                    System.out.println("  (( "
+                            + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( "
+                            + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
+
+                    if (localAddress.getHostName().equals(localAddress.getHostAddress())
+                            || remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) {
+                        System.out.println("  note HostName matches address if host has no DNS name");
+                    }
+                is = clientConnectionSocket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+                clientMessage = br.readLine();
+                System.out.println("The message the client sent was: '" + clientMessage + "'");// Displaying the message the client sent
+                    // Not/*i*/ce the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + FrankServer.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankClient.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a47fc9139e04f668c57b2448f8f907fc511b538
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankClient.java
@@ -0,0 +1,99 @@
+package MV3500Cohort2021JulySeptember.homework2;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.Socket;
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+/**
+ *
+ * @author justi
+ */
+public class FrankClient {
+
+    /**
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     *
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+
+        try {
+            while (true) {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println( "creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2318); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("*********************************");
+
+                System.out.print( clientLoopCount + ": ");
+                System.out.println("Hola!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                int count = 0;
+                System.out.println("test");
+                count++;
+// socket gets closed, either automatically/silently by this code (or possibly by the server)
+                if (serverMessage.equals("this is good bye message from Franks server")) { //if client recieved termanation message stop client
+                    break;
+                }
+                Thread.sleep(1000); // turned it down to 1 second
+
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } catch (IOException e) {
+            System.err.println("Problem with " + FrankClient.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        } finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null) {
+                    socket.close();
+                }
+            } catch (IOException e) {
+            }
+
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println("Good Bye!!!");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankServer.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankServer.java
new file mode 100644
index 0000000000000000000000000000000000000000..aafe9a4a2ee3a0126f26a4f906abf699ea2a5864
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankServer.java
@@ -0,0 +1,90 @@
+package MV3500Cohort2021JulySeptember.homework2;
+
+import java.io.*;
+import java.net.*;
+
+
+public class FrankServer {
+
+    /**
+     * Program invocation, execution starts here If already compiled, can run
+     * using console in directory ../../build/classes/ by invoking \ java
+     * -classpath . TcpExamples.TcpExample3Server
+     *
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+        try {
+
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(FrankServer.class.getName() + " has started..."); // it helps debugging to put this on console first
+
+            ServerSocket serverSocket = new ServerSocket(2318); // changed from 2317 to 2318
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) {
+
+                // block until connected to a client
+                try ( Socket clientConnectionSocket = serverSocket.accept()) {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    if (serverLoopCount <= 10) { // checking if the loop count <= 10
+                        ps.println("How are you doing?"); // this gets sent back to client!
+                    } else {
+                        ps.println("this is good bye message from Franks server"); // termination after 20 messages
+                        break; // Stop server
+                    }
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                    localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                    localPort = clientConnectionSocket.getLocalPort();
+                    remotePort = clientConnectionSocket.getPort();
+
+                    System.out.print("Server loop " + serverLoopCount + ": ");
+
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println(FrankServer.class.getName() + " socket pair showing host name, address, port:");
+                    System.out.println("  (( "
+                            + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( "
+                            + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
+
+                    if (localAddress.getHostName().equals(localAddress.getHostAddress())
+                            || remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) {
+                        System.out.println("  note HostName matches address if host has no DNS name");
+                    }
+
+                    // Not/*i*/ce the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + FrankServer.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankTcpExample3Client.java
similarity index 80%
rename from examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java
rename to assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankTcpExample3Client.java
index 67275fa64d71b19b353d4a84947fa57fab80d2df..59842415433cd6df81d943477b2c6af87b316d61 100644
--- a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankTcpExample3Client.java
@@ -1,96 +1,96 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.Socket;
-
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-/**
- *
- * @author justi
- */
-public class FrankTCPExample3Client {
-
-    /**
-     */
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     *
-     * @param args command-line arguments
-     * @throws java.lang.InterruptedException
-     */
-    public static void main(String[] args) throws InterruptedException {
-
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-
-        try {
-            while (true) {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(FrankTCPExample3Client.class.getName() + " creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2318); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-
-                System.out.print("Client loop " + clientLoopCount + ": ");
-                System.out.println("now we're talking!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                if (serverMessage.equals("this is good bye message from the server")) { //if client recieved termanation message stop client
-                    break;
-                }
-                Thread.sleep(1000); // turned it down to 1 second
-
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } catch (IOException e) {
-            System.err.println("Problem with " + FrankTCPExample3Client.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        } finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null) {
-                    socket.close();
-                }
-            } catch (IOException e) {
-            }
-
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println("FrankTCPExample3Client.class.getName() + exit");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework2;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.Socket;
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+/**
+ *
+ * @author justi
+ */
+public class FrankTcpExample3Client {
+
+    /**
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     *
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+
+        try {
+            while (true) {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println( "creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2318); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("*********************************");
+
+                System.out.print( clientLoopCount + ": ");
+                System.out.println("Hola!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                if (serverMessage.equals("this is good bye message from Franks server")) { //if client recieved termanation message stop client
+                    break;
+                }
+                Thread.sleep(1000); // turned it down to 1 second
+
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } catch (IOException e) {
+            System.err.println("Problem with " + FrankTcpExample3Client.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        } finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null) {
+                    socket.close();
+                }
+            } catch (IOException e) {
+            }
+
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println("Good Bye!!!");
+        }
+    }
+}
diff --git a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankTcpExample3Server.java
similarity index 76%
rename from examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.java
rename to assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankTcpExample3Server.java
index 45c8aa10fe6e56ddac91ec864216aac7eb93cafd..037239a06f9d2e3f4f4685f20e94da4afe79178b 100644
--- a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/FrankTcpExample3Server.java
@@ -1,107 +1,90 @@
-package MV3500Cohort2021JulySeptember.homework1;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * Very slightly more complex than example1, further modifying example2. The
- * only thing this does differently is introduce a loop into the response, so
- * you don't have to restart the program after one response. Also, it prints out
- * the socket pair the server sees. Run the program via telnet several times and
- * compare the socket pairs.
- *
- * telnet (nc) localhost 2318
- *
- * If you're sophisticated you can contact the instructor's computer while
- * running this program.
- *
- * telnet (nc) [ipNumberOfServerLaptop] 2317
- *
- * and have the instructor display the socket pairs received.
- *
- * @author mcgredo
- * @author brutzman
- */
-public class FrankTCPExample3Server {
-
-    /**
-     * Program invocation, execution starts here If already compiled, can run
-     * using console in directory ../../build/classes/ by invoking \ java
-     * -classpath . TcpExamples.TcpExample3Server
-     *
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) throws InterruptedException {
-        try {
-
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            System.out.println(FrankTCPExample3Server.class.getName() + " has started..."); // it helps debugging to put this on console first
-
-            ServerSocket serverSocket = new ServerSocket(2318); // changed from 2317 to 2318
-            OutputStream os;
-            PrintStream ps;
-            InetAddress localAddress, remoteAddress;
-            int localPort, remotePort;
-            int serverLoopCount = 0;
-
-            // Server is up and waiting (i.e. "blocked" or paused)
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while (true) {
-
-                // block until connected to a client
-                try ( Socket clientConnectionSocket = serverSocket.accept()) {
-                    serverLoopCount++; // increment at beginning of loop for reliability
-
-                    // Now hook everything up (i.e. set up the streams), Java style:
-                    os = clientConnectionSocket.getOutputStream();
-                    ps = new PrintStream(os);
-                    if (serverLoopCount <= 20) { // checking if the loop count <= 20
-                        ps.println("This is response " + serverLoopCount + " produced by the server."); // this gets sent back to client!
-                    } else {
-                        ps.println("this is good bye message from the server"); // termination after 20 messages
-                        break; // Stop server
-                    }
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair).
-                    localAddress = clientConnectionSocket.getLocalAddress();
-                    remoteAddress = clientConnectionSocket.getInetAddress();
-                    localPort = clientConnectionSocket.getLocalPort();
-                    remotePort = clientConnectionSocket.getPort();
-
-                    System.out.print("Server loop " + serverLoopCount + ": ");
-
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    // Why is the first IP/port the same, while the second set has different ports?
-                    System.out.println(FrankTCPExample3Server.class.getName() + " socket pair showing host name, address, port:");
-                    System.out.println("  (( "
-                            + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( "
-                            + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
-
-                    if (localAddress.getHostName().equals(localAddress.getHostAddress())
-                            || remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) {
-                        System.out.println("  note HostName matches address if host has no DNS name");
-                    }
-
-                    // Not/*i*/ce the use of flush() and try w/ resources. Without
-                    // the try w/ resources the Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. try w/ resources explicitly ends the connection.
-                    ps.flush();
-                    // like it or not, you're outta here!
-                }
-            }
-        } catch (IOException e) {
-            System.err.println("Problem with " + FrankTCPExample3Server.class.getName() + " networking: " + e);
-
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework2;
+
+import java.io.*;
+import java.net.*;
+
+
+public class FrankTcpExample3Server {
+
+    /**
+     * Program invocation, execution starts here If already compiled, can run
+     * using console in directory ../../build/classes/ by invoking \ java
+     * -classpath . TcpExamples.TcpExample3Server
+     *
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+        try {
+
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(FrankTcpExample3Server.class.getName() + " has started..."); // it helps debugging to put this on console first
+
+            ServerSocket serverSocket = new ServerSocket(2318); // changed from 2317 to 2318
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) {
+
+                // block until connected to a client
+                try ( Socket clientConnectionSocket = serverSocket.accept()) {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    if (serverLoopCount <= 10) { // checking if the loop count <= 10
+                        ps.println("How are you doing?"); // this gets sent back to client!
+                    } else {
+                        ps.println("this is good bye message from Franks server"); // termination after 20 messages
+                        break; // Stop server
+                    }
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                    localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                    localPort = clientConnectionSocket.getLocalPort();
+                    remotePort = clientConnectionSocket.getPort();
+
+                    System.out.print("Server loop " + serverLoopCount + ": ");
+
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println(FrankTcpExample3Server.class.getName() + " socket pair showing host name, address, port:");
+                    System.out.println("  (( "
+                            + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( "
+                            + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
+
+                    if (localAddress.getHostName().equals(localAddress.getHostAddress())
+                            || remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) {
+                        System.out.println("  note HostName matches address if host has no DNS name");
+                    }
+
+                    // Not/*i*/ce the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + FrankTcpExample3Server.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/MV3500Cohort2021JulySeptember/homework1/FrankClient.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerDTcpExample3Client.java
similarity index 71%
rename from MV3500Cohort2021JulySeptember/homework1/FrankClient.java
rename to assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerDTcpExample3Client.java
index aa3fdc86cb7ea1e63fbe5120a56086d5b184b321..682a2435132c35f7dae16f287136d11bcc9c0a16 100644
--- a/MV3500Cohort2021JulySeptember/homework1/FrankClient.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerDTcpExample3Client.java
@@ -1,100 +1,86 @@
-
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.Socket;
-
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-/**
- *
- * @author justi
- */
-
-
-
-public class FrankClient {
-
-    /**
-     */
-
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     * @throws java.lang.InterruptedException
-     */
-    public static void main(String[] args) throws InterruptedException {
-        
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-        
-        try {
-            while (true)
-            {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(FrankClient.class.getName() + " creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2318); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is  = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br  = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-                       
-                System.out.print  ("Client loop " + clientLoopCount + ": ");
-                System.out.println("now we're talking!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec
-                
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } 
-        catch (IOException e)
-        {
-            System.err.println("Problem with " + FrankClient.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-        finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null)
-                    socket.close();
-            } catch (IOException e) {}
-            
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println( "FrankClient.class.getName() + exit");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework2.HittnerD;
+import java.io.*;
+import java.net.*;
+
+/**
+ *
+ * @author Dom Hittner
+ */
+public class HittnerDTcpExample3Client {
+
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) throws InterruptedException {
+        
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        
+        try {
+            while (true)
+            {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(HittnerDTcpExample3Client.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is  = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br  = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+                       
+//                System.out.print  ("Client loop " + clientLoopCount + ": ");
+                System.out.println("I am hungry");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec (1/2 second)
+                
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException e)
+        {
+            System.err.println("Problem with " + HittnerDTcpExample3Client.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+        finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null)
+                    socket.close();
+            } catch (IOException e) {}
+            
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(HittnerDTcpExample3Client.class.getName() + " exit");
+        }
+    }
+}
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerDTcpExampleServer.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerDTcpExampleServer.java
new file mode 100644
index 0000000000000000000000000000000000000000..becdc6e6bcb0f860115d75705ae11aa512c379a6
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerDTcpExampleServer.java
@@ -0,0 +1,88 @@
+package MV3500Cohort2021JulySeptember.homework2.HittnerD;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ *
+ * @author Dom Hittner
+ */
+public class HittnerDTcpExampleServer {
+
+    /**
+     * Program invocation, execution starts here
+     * If already compiled, can run using console in directory ../../build/classes/ by invoking \
+     *      java -classpath . TcpExamples.TcpExample3Server
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) {
+        try {
+            
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(HittnerDTcpExampleServer.class.getName() + " has started..."); // it helps debugging to put this on console first
+            
+            ServerSocket serverSocket = new ServerSocket(2317);
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) { 
+                
+                // block until connected to a client
+                try (Socket clientConnectionSocket = serverSocket.accept())
+                {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+                    
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    ps.println("okay " + serverLoopCount + " let's go to Starbucks"); // this gets sent back to client!
+                    
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                     localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                        localPort = clientConnectionSocket.getLocalPort();
+                       remotePort = clientConnectionSocket.getPort();
+                       
+                    System.out.print ("Server loop " + serverLoopCount + ": ");
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println(HittnerDTcpExampleServer.class.getName() + " socket pair showing host name, address, port:");
+                    System.out.println("  (( " + 
+                         localAddress.getHostName() + "=" +  localAddress.getHostAddress() + ", " + localPort + " ), ( " + 
+                        remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
+                    
+                    if ( localAddress.getHostName().equals( localAddress.getHostAddress()) ||
+                        remoteAddress.getHostName().equals(remoteAddress.getHostAddress()))
+                        System.out.println("  note HostName matches address if host has no DNS name");
+                    
+                    // Notice the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + HittnerDTcpExampleServer.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickTcpExample3Client.java
similarity index 67%
rename from MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java
rename to assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickTcpExample3Client.java
index 72a96f5e3812aa01ba7a5961d5ac2fff95987157..3b2181ec113de8539797f020909d4fcb12566dc4 100644
--- a/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickTcpExample3Client.java
@@ -1,100 +1,94 @@
-package MV3500Cohort2021JulySeptember.homework1; 
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.Socket;
-
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-/**
- *
- * @author justi
- */
-
-
-
-public class FrankTCPExample3Client {
-
-    /**
-     */
-
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     * @throws java.lang.InterruptedException
-     */
-    public static void main(String[] args) throws InterruptedException {
-        
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-        
-        try {
-            while (true)
-            {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(FrankTCPExample3Client.class.getName() + " creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2318); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is  = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br  = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-                       
-                System.out.print  ("Client loop " + clientLoopCount + ": ");
-                System.out.println("now we're talking!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec
-                
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } 
-        catch (IOException e)
-        {
-            System.err.println("Problem with " + FrankTCPExample3Client.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-        finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null)
-                    socket.close();
-            } catch (IOException e) {}
-            
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println( "FrankTCPExample3Client.class.getName() + exit");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework2;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * Before, we always used telnet (netcat) to connect to the server. Here we are 
+ * now writing our own program to do the connection.
+ *
+ * As you will see, when we run this after we start the server we will see the
+ * same string telnet printed, sent by the server. The output at the server will
+ * show different socket pairs for each time the loop iterates.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class HittnerNickTcpExample3Client {
+
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) throws InterruptedException {
+        
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        
+        try {
+            while (true)
+            {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(HittnerNickTcpExample3Client.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost? 
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is  = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br  = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+                       
+                System.out.print  ("Client loop " + clientLoopCount + ": ");
+                System.out.println("Good morning, Nick");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec (1/2 second)
+                
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException e)
+        {
+            System.err.println("Problem with " + HittnerNickTcpExample3Client.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+        finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null)
+                    socket.close();
+            } catch (IOException e) {}
+            
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(HittnerNickTcpExample3Client.class.getName() + " exit");
+        }
+    }
+}
diff --git a/MV3500Cohort2021JulySeptember/homework1/FrankServer.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickTcpExample3Server.java
similarity index 85%
rename from MV3500Cohort2021JulySeptember/homework1/FrankServer.java
rename to assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickTcpExample3Server.java
index ddbe0d62b7a2728ad4e160be0193e504d142c26b..1739a997b408eb424ac6301e3c3a1219b7d03636 100644
--- a/MV3500Cohort2021JulySeptember/homework1/FrankServer.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickTcpExample3Server.java
@@ -1,101 +1,103 @@
-import java.io.*;
-import java.net.*;
-
-/**
- * Very slightly more complex than example1, further modifying example2. The
- * only thing this does differently is introduce a loop into the response, so
- * you don't have to restart the program after one response. Also, it prints out
- * the socket pair the server sees. Run the program via telnet several times and
- * compare the socket pairs.
- *
- * telnet (nc) localhost 2318
- *
- * If you're sophisticated you can contact the instructor's computer while
- * running this program.
- *
- *      telnet (nc) [ipNumberOfServerLaptop] 2317
- *
- * and have the instructor display the socket pairs received.
- *
- * @author mcgredo
- * @author brutzman
- */
-public class FrankServer {
-
-    /**
-     * Program invocation, execution starts here
-     * If already compiled, can run using console in directory ../../build/classes/ by invoking \
-     *      java -classpath . TcpExamples.TcpExample3Server
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) {
-        try {
-            
-            // ServerSocket waits for a connection from a client. 
-            // Notice that it is outside the loop; ServerSocket
-            // needs to be made only once.
-            System.out.println(FrankServer.class.getName() + " has started..."); // it helps debugging to put this on console first
-            
-            ServerSocket serverSocket = new ServerSocket(2318);
-            OutputStream os;
-            PrintStream ps;
-            InetAddress localAddress, remoteAddress;
-            int localPort, remotePort;
-            int serverLoopCount = 0;
-
-            // Server is up and waiting (i.e. "blocked" or paused)
-            // Loop, infinitely, waiting for client connections.
-            // Stop the program somewhere else.
-            while (true) { 
-                
-                // block until connected to a client
-                try (Socket clientConnectionSocket = serverSocket.accept())
-                {
-                    serverLoopCount++; // increment at beginning of loop for reliability
-                    
-                    // Now hook everything up (i.e. set up the streams), Java style:
-                    os = clientConnectionSocket.getOutputStream();
-                    ps = new PrintStream(os);
-                    ps.println("This is response " + serverLoopCount + " produced by the server."); // this gets sent back to client!
-                    
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair).
-                     localAddress = clientConnectionSocket.getLocalAddress();
-                    remoteAddress = clientConnectionSocket.getInetAddress();
-                        localPort = clientConnectionSocket.getLocalPort();
-                       remotePort = clientConnectionSocket.getPort();
-                       
-                    System.out.print ("Server loop " + serverLoopCount + ": ");
-                    
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    
-                    // Why is the first IP/port the same, while the second set has different ports?
-                    System.out.println(FrankServer.class.getName() + " socket pair showing host name, address, port:");
-                    System.out.println("  (( " + 
-                         localAddress.getHostName() + "=" +  localAddress.getHostAddress() + ", " + localPort + " ), ( " + 
-                        remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
-                    
-                    if ( localAddress.getHostName().equals( localAddress.getHostAddress()) ||
-                        remoteAddress.getHostName().equals(remoteAddress.getHostAddress()))
-                        System.out.println("  note HostName matches address if host has no DNS name");
-                    
-                    // Not/*i*/ce the use of flush() and try w/ resources. Without
-                    // the try w/ resources the Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. try w/ resources explicitly ends the connection.
-                    ps.flush();
-                    // like it or not, you're outta here!
-                }
-            }
-        } catch (IOException e) {
-            System.err.println("Problem with " + FrankServer.class.getName() + " networking: " + e);
-
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework2;
+
+    import java.io.*;
+import java.net.*;
+
+/**
+ * Very slightly more complex than example1, further modifying example2. The
+ * only thing this does differently is introduce a loop into the response, so
+ * you don't have to restart the program after one response. Also, it prints out
+ * the socket pair the server sees. Run the program via telnet several times and
+ * compare the socket pairs.
+ *
+ * telnet (nc) localhost 2317
+ *
+ * If you're sophisticated you can contact the instructor's computer while
+ * running this program.
+ *
+ *      telnet (nc) [ipNumberOfServerLaptop] 2317
+ *
+ * and have the instructor display the socket pairs received.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class HittnerNickTcpExample3Server {
+
+    /**
+     * Program invocation, execution starts here
+     * If already compiled, can run using console in directory ../../build/classes/ by invoking \
+     *      java -classpath . TcpExamples.TcpExample3Server
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) {
+        try {
+            
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(HittnerNickTcpExample3Server.class.getName() + " has started..."); // it helps debugging to put this on console first
+            
+            ServerSocket serverSocket = new ServerSocket(2317);
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) { 
+                
+                // block until connected to a client
+                try (Socket clientConnectionSocket = serverSocket.accept())
+                {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+                    
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    ps.println("This is response " + serverLoopCount + " Good morning, Domonique. "); // this gets sent back to client!
+                    
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                     localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                        localPort = clientConnectionSocket.getLocalPort();
+                       remotePort = clientConnectionSocket.getPort();
+                       
+                    System.out.print ("Server loop " + serverLoopCount + ": ");
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println(HittnerNickTcpExample3Server.class.getName() + " socket pair showing host name, address, port:");
+                    System.out.println("  (( " + 
+                         localAddress.getHostName() + "=" +  localAddress.getHostAddress() + ", " + localPort + " ), ( " + 
+                        remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
+                    
+                    if ( localAddress.getHostName().equals( localAddress.getHostAddress()) ||
+                        remoteAddress.getHostName().equals(remoteAddress.getHostAddress()))
+                        System.out.println("  note HostName matches address if host has no DNS name");
+                    
+                    // Notice the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + HittnerNickTcpExample3Server.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickUmlSequenceDiagram.pdf b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickUmlSequenceDiagram.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6d672dc7d7bd638305144ea3e04cc31592246b22
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/HittnerNickUmlSequenceDiagram.pdf differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/HW2UML_1.PNG b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/HW2UML_1.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..8799d7b3ca71cfd1cba9a5a47cf51e097cef25bd
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/HW2UML_1.PNG differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/KeevenTCPExample3Client2.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/KeevenTCPExample3Client2.java
new file mode 100644
index 0000000000000000000000000000000000000000..1881ef609cf00f2ad8939693ccb5fd5aad6bcf7e
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/KeevenTCPExample3Client2.java
@@ -0,0 +1,99 @@
+package MV3500Cohort2021JulySeptember.homework2.Keeven;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * This is Assignment 2 where I have modified the given code from TCPExample3Client
+ * -sleep time has been extended to give more time in between loops
+ * -Initial print line has been altered to reflect assingnment 2
+ * -Loop only runs a finite number of times ,10.
+ * Before, we always used telnet (netcat) to connect to the server. Here we are 
+ * now writing our own program to do the connection.
+ *
+ * As you will see, when we run this after we start the server we will see the
+ * same string telnet printed, sent by the server. The output at the server will
+ * show different socket pairs for each time the loop iterates.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class KeevenTCPExample3Client2 {
+
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) throws InterruptedException {
+        
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        int numbLoops = 10;
+        
+        try {
+            while (clientLoopCount < numbLoops)
+            {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(KeevenTCPExample3Client2.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is  = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br  = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("======================Assignment2===========================");
+                       
+                System.out.print  ("Client loop " + clientLoopCount + ": ");
+                System.out.println("now we're talking!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                Thread.sleep(800l); // slow things down, for example 500l (long) = 500 msec
+                
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException e)
+        {
+            System.err.println("Problem with " + KeevenTCPExample3Client2.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+        finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null)
+                    socket.close();
+            } catch (IOException e) {}
+            
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(KeevenTCPExample3Client2.class.getName() + " exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/KeevenTCPExample3Server2.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/KeevenTCPExample3Server2.java
new file mode 100644
index 0000000000000000000000000000000000000000..77f5ec48d5e12d434f1516479a31810e717477e6
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/KeevenTCPExample3Server2.java
@@ -0,0 +1,107 @@
+package MV3500Cohort2021JulySeptember.homework2.Keeven;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * This is Assignment 2 where I have modified the given code from TCPExample3Server
+ *-server response message changed to reflect changes made for assignment 2
+ * 
+ * Very slightly more complex than example1, further modifying example2. The
+ * only thing this does differently is introduce a loop into the response, so
+ * you don't have to restart the program after one response. Also, it prints out
+ * the socket pair the server sees. Run the program via telnet several times and
+ * compare the socket pairs.
+ *
+ * telnet (nc) localhost 2317
+ *
+ * If you're sophisticated you can contact the instructor's computer while
+ * running this program.
+ *
+ *      telnet (nc) [ipNumberOfServerLaptop] 2317
+ *
+ * and have the instructor display the socket pairs received.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class KeevenTCPExample3Server2 {
+
+    /**
+     * Program invocation, execution starts here
+     * If already compiled, can run using console in directory ../../build/classes/ by invoking \
+     *      java -classpath . TcpExamples.TcpExample3Server
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) {
+        try {
+            
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(KeevenTCPExample3Server2.class.getName() + " has started..."); // it helps debugging to put this on console first
+            
+            ServerSocket serverSocket = new ServerSocket(2317);
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) { 
+                
+                // block until connected to a client
+                try (Socket clientConnectionSocket = serverSocket.accept())
+                {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+                    
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    ps.println("This is response " + serverLoopCount + " produced by the server, " 
+                            + KeevenTCPExample3Server2.class.getName()); // this gets sent back to client!
+                    
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                     localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                        localPort = clientConnectionSocket.getLocalPort();
+                       remotePort = clientConnectionSocket.getPort();
+                       
+                    System.out.print ("Server loop " + serverLoopCount + ": ");
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    System.out.println(KeevenTCPExample3Server2.class.getName() + " socket pair showing host name, address, port:");
+                    System.out.println("  (( " + 
+                         localAddress.getHostName() + "=" +  localAddress.getHostAddress() + ", " + localPort + " ), ( " + 
+                        remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
+                    
+                    if ( localAddress.getHostName().equals( localAddress.getHostAddress()) ||
+                        remoteAddress.getHostName().equals(remoteAddress.getHostAddress()))
+                        System.out.println(" Assignemnt 2 working");
+                    
+                    // Notice the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + KeevenTCPExample3Server2.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/ServerOutput.PNG b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/ServerOutput.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..83324a92f2f265aadb790b433ca1aac69a34bec2
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/ServerOutput.PNG differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/clientOutput.PNG b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/clientOutput.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..2eda10732a0df80aa184de6e656317241964ec57
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Keeven/clientOutput.PNG differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Leckie/LeckieClient.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Leckie/LeckieClient.java
index 3dac42ae73832877e0eeeb318db292023e0532af..a562830b2833c68dcfd03e7b646847bbbf08ba9a 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Leckie/LeckieClient.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Leckie/LeckieClient.java
@@ -1,86 +1,87 @@
-package MV3500Cohort2021JulySeptember.homework2.Leckie;
-import java.io.*;
-import java.net.*;
-
-/**
- *
- * @author Jacob Leckie
- */
-public class LeckieClient {
-
-    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
-     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
-     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
-     */
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) throws InterruptedException {
-        
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-        
-        try {
-            while (true)
-            {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(LeckieClient.class.getName() + " creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2317); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is  = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br  = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-                       
-//                System.out.print  ("Client loop " + clientLoopCount + ": ");
-                System.out.println("I dont want to clean my room!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec (1/2 second)
-                
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } 
-        catch (IOException e)
-        {
-            System.err.println("Problem with " + LeckieClient.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-        finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null)
-                    socket.close();
-            } catch (IOException e) {}
-            
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println(LeckieClient.class.getName() + " exit");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework2.Leckie;
+import java.io.*;
+import java.net.*;
+
+/**
+ *
+ * @author Jacob Leckie
+ */
+public class LeckieClient {
+
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels program
+     */
+    public static void main(String[] args) throws InterruptedException {
+        
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        
+        try {
+            while (true)
+            {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(LeckieClient.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is  = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br  = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+                       
+//                System.out.print  ("Client loop " + clientLoopCount + ": ");
+                System.out.println("I dont want to clean my room!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec (1/2 second)
+                
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException e)
+        {
+            System.err.println("Problem with " + LeckieClient.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+        finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null)
+                    socket.close();
+            } catch (IOException e) {}
+            
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(LeckieClient.class.getName() + " exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Leckie/hw2_Leckie.pdf b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Leckie/hw2_Leckie.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..80257d92b0e5f0d9515f9ccbc5643d0c10a62f57
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Leckie/hw2_Leckie.pdf differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/.gitkeep b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/client.py b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/client.py
new file mode 100644
index 0000000000000000000000000000000000000000..3bf853c4108b45a77639d375d7d5db0296124415
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/client.py
@@ -0,0 +1,80 @@
+#Adapted from https://github.com/realpython/materials/blob/master/multiconn-client.py
+import sys
+import socket
+import selectors
+import types
+import contextlib
+import os
+
+with contextlib.suppress(FileNotFoundError):
+    os.remove('screenshot.png')
+
+sel = selectors.DefaultSelector()
+
+def start_connections(host, port, x3d_id):
+    server_addr = (host, port)
+    print("starting connection to", server_addr)
+    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    sock.setblocking(False)
+    sock.connect_ex(server_addr)
+    events = selectors.EVENT_READ | selectors.EVENT_WRITE
+    data = types.SimpleNamespace(
+        connid=1,
+        msg_total=sum([1]),
+        recv_total=0,
+        messages=[str(x3d_id).encode()],
+        outb=b"",
+    )
+    sel.register(sock, events, data=data)
+
+
+def service_connection(key, mask):
+    sock = key.fileobj
+    data = key.data
+    if mask & selectors.EVENT_READ:
+        recv_data = sock.recv(1024)  # Should be ready to read
+        sock.settimeout(None)
+        if not recv_data:
+            print("closing connection", data.connid)
+            sel.unregister(sock)
+            sock.close()
+        if recv_data:
+            with open('screenshot.png','ab') as b:
+                b.write(recv_data)
+            data.recv_total += len(recv_data)
+            print("received " + str(data.recv_total)  +  " image bytes from connection", data.connid)
+
+        
+                
+
+    if mask & selectors.EVENT_WRITE:
+        if not data.outb and data.messages:
+            data.outb = data.messages.pop(0)
+        if data.outb:
+            print("sending", repr(data.outb), "to connection", data.connid)
+            sent = sock.send(data.outb)  # Should be ready to write
+            data.outb = data.outb[sent:]
+
+
+if len(sys.argv) != 4:
+    print("This program simulates the agent communicate process where a client requests a dynamically rendered X3D asset from the host.")
+    print("usage:", sys.argv[0], "<host 192.168.86.225> <port 65500> <x3d asset number [0-14138] >")
+    sys.exit(1)
+
+host, port, x3d_id = sys.argv[1:4]
+start_connections(host, int(port), int(x3d_id))
+
+try:
+    while True:
+        events = sel.select(timeout=1)
+        if events:
+            for key, mask in events:
+                service_connection(key, mask)
+        # Check for a socket being monitored to continue.
+        if not sel.get_map():
+            break
+except KeyboardInterrupt:
+    print("caught keyboard interrupt, exiting")
+finally:
+    sel.close()
+sel.close()
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/sequence.png b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/sequence.png
new file mode 100644
index 0000000000000000000000000000000000000000..b00a72917b9696b38350f9b45c7bd011743ddf95
Binary files /dev/null and b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/sequence.png differ
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/server.py b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/server.py
new file mode 100644
index 0000000000000000000000000000000000000000..260a999e6ad95e668564e790573db6d6c9ae30de
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Lentz/server.py
@@ -0,0 +1,70 @@
+#Adapted from https://github.com/realpython/materials/blob/master/multiconn-client.py
+
+import sys
+import socket
+import selectors
+import types
+import subprocess
+import time
+
+sel = selectors.DefaultSelector()
+
+
+def accept_wrapper(sock):
+    conn, addr = sock.accept()  # Should be ready to read
+    print("accepted connection from", addr)
+    conn.setblocking(False)
+    data = types.SimpleNamespace(addr=addr, inb=b"", outb=b"")
+    events = selectors.EVENT_READ | selectors.EVENT_WRITE
+    sel.register(conn, events, data=data)
+
+
+def service_connection(key, mask):
+    sock = key.fileobj
+    data = key.data
+    if mask & selectors.EVENT_READ:
+        recv_data = sock.recv(1024)  # Should be ready to read
+        if recv_data:
+            data.outb += recv_data
+        else:
+            print("closing connection to", data.addr)
+            sel.unregister(sock)
+            sock.close()
+    if mask & selectors.EVENT_WRITE:
+        if data.outb:
+            fn = data.outb.decode('ascii')+'.x3d'
+            print( "getting " + fn )
+            subprocess.run(["wget", "https://nps.edu/x3d_repository/"+fn,"-O","x3d.x3d"])
+            subprocess.run(["/castle_game_engine/bin/view3dscene", "--screenshot","0","screenshot.png","x3d.x3d"])
+            png_bytes = open('screenshot.png','rb').read()
+            print("sending png of length " + str(len(png_bytes)) + ' to ', data.addr)
+            sent = sock.send(png_bytes)  # Should be ready to write
+            data.outb = png_bytes[sent:]
+            #time.sleep(5)
+            #subprocess.run(["rm", "screenshot.png","x3d.x3d"])
+
+
+if len(sys.argv) != 3:
+    print("usage:", sys.argv[0], "<host> <port>")
+    sys.exit(1)
+
+host, port = sys.argv[1], int(sys.argv[2])
+lsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+lsock.bind((host, port))
+lsock.listen()
+print("listening on", (host, port))
+lsock.setblocking(False)
+sel.register(lsock, selectors.EVENT_READ, data=None)
+
+try:
+    while True:
+        events = sel.select(timeout=None)
+        for key, mask in events:
+            if key.data is None:
+                accept_wrapper(key.fileobj)
+            else:
+                service_connection(key, mask)
+except KeyboardInterrupt:
+    print("caught keyboard interrupt, exiting")
+finally:
+    sel.close()
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/McNeely/McNeelyTCPExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/McNeely/McNeelyTCPExample3Client.java
index 8e495a0b9649ac5266259d5ba73a5546a2d054b0..221949b5bcee43ca55b39659123b22881baa2806 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/McNeely/McNeelyTCPExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/McNeely/McNeelyTCPExample3Client.java
@@ -1,93 +1,94 @@
-package MV3500Cohort2021JulySeptember.homework2.McNeely;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * Before, we always used telnet (netcat) to connect to the server. Here we are 
- * now writing our own program to do the connection.
- *
- * As you will see, when we run this after we start the server we will see the
- * same string telnet printed, sent by the server. The output at the server will
- * show different socket pairs for each time the loop iterates.
- *
- * @author jrm_u
- */
-public class McNeelyTCPExample3Client {
-
-    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
-     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
-     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
-     */
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) throws InterruptedException {
-        
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-        
-        try {
-            while (true)
-            {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(McNeelyTCPExample3Client.class.getName() + "McNeely creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2317); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is  = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br  = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("==================================================");
-                       
-                System.out.print  ("Client loop " + clientLoopCount + ": ");
-                System.out.println("now we're cooking with diesel fuel!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec
-                
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } 
-        catch (IOException e)
-        {
-            System.err.println("Problem with " + McNeelyTCPExample3Client.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-        finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null)
-                    socket.close();
-            } catch (IOException e) {}
-            
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println(McNeelyTCPExample3Client.class.getName() + " exit");
-        }
-    }
-}
+package MV3500Cohort2021JulySeptember.homework2.McNeely;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * Before, we always used telnet (netcat) to connect to the server. Here we are 
+ * now writing our own program to do the connection.
+ *
+ * As you will see, when we run this after we start the server we will see the
+ * same string telnet printed, sent by the server. The output at the server will
+ * show different socket pairs for each time the loop iterates.
+ *
+ * @author jrm_u
+ */
+public class McNeelyTCPExample3Client {
+
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+        
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        
+        try {
+            while (true)
+            {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(McNeelyTCPExample3Client.class.getName() + "McNeely creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is  = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br  = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+                       
+                System.out.print  ("Client loop " + clientLoopCount + ": ");
+                System.out.println("now we're cooking with diesel fuel!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec
+                
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException e)
+        {
+            System.err.println("Problem with " + McNeelyTCPExample3Client.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+        finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null)
+                    socket.close();
+            } catch (IOException e) {}
+            
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(McNeelyTCPExample3Client.class.getName() + " exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Morris/MorrisTCPExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Morris/MorrisTCPExample3Client.java
index 1eb66d23a88cb5160dba541a39bb75dd06e608df..1464b865580f738842569c01878f7ba40a6af9b9 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Morris/MorrisTCPExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Morris/MorrisTCPExample3Client.java
@@ -23,6 +23,7 @@ public class MorrisTCPExample3Client {
     /**
      * Program invocation, execution starts here
      * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
      */
     public static void main(String[] args) throws InterruptedException {
         
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Pugh/Pugh3Client_homework2.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Pugh/Pugh3Client_homework2.java
new file mode 100644
index 0000000000000000000000000000000000000000..48c6e8de5afd18679b6289336b94cf1ca6e1ac8d
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Pugh/Pugh3Client_homework2.java
@@ -0,0 +1,112 @@
+package MV3500Cohort2021JulySeptember.homework2.Pugh;
+
+import MV3500Cohort2021JulySeptember.homework2.*;
+import java.io.*;
+import java.net.*;
+
+/**
+ * Before, we always used telnet (netcat) to connect to the server. Here we are
+ * now writing our own program to do the connection.
+ *
+ * As you will see, when we run this after we start the server we will see the
+ * same string telnet printed, sent by the server. The output at the server will
+ * show different socket pairs for each time the loop iterates.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class Pugh3Client_homework2 {
+
+    /**
+     * IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     *
+     * @see
+     * <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see
+     * <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a>
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; //Local host
+
+    /**
+     * Program invocation, execution starts here
+     *
+     * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
+     */
+    public static void main(String[] args) throws InterruptedException {
+
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+
+        try {
+            while (true) {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(Pugh3Client_homework2.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("==================================================");
+
+                if (clientLoopCount == 1) {
+                    System.out.print("Client loop " + clientLoopCount + ": ");
+                    System.out.println("now we're talking!");
+                    System.out.println("The message the server sent was: '" + serverMessage + "'");
+                    // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                }
+                
+                if (clientLoopCount == 2){
+                    System.out.println("I'm ready.  Shoot.");
+                }
+                
+                if ( clientLoopCount == 3){
+                    System.out.println("That is a horrible joke.");
+                }
+                
+                if (clientLoopCount >= 4){
+                    System.out.println("No...");
+                }
+                Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec
+
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } catch (IOException e) {
+            System.err.println("Problem with " + Pugh3Client_homework2.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        } finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null) {
+                    socket.close();
+                }
+            } catch (IOException e) {
+            }
+
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(Pugh3Client_homework2.class.getName() + " exit");
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/Pugh/Pugh3Server.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Pugh/Pugh3Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd33baf4091f733c0cbc4a602cdc50f92fcce79d
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/Pugh/Pugh3Server.java
@@ -0,0 +1,124 @@
+package MV3500Cohort2021JulySeptember.homework2.Pugh;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * Very slightly more complex than example1, further modifying example2. The
+ * only thing this does differently is introduce a loop into the response, so
+ * you don't have to restart the program after one response. Also, it prints out
+ * the socket pair the server sees. Run the program via telnet several times and
+ * compare the socket pairs.
+ *
+ * telnet (nc) localhost 2317
+ *
+ * If you're sophisticated you can contact the instructor's computer while
+ * running this program.
+ *
+ * telnet (nc) [ipNumberOfServerLaptop] 2317
+ *
+ * and have the instructor display the socket pairs received.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class Pugh3Server {
+
+    /**
+     * Program invocation, execution starts here If already compiled, can run
+     * using console in directory ../../build/classes/ by invoking \ java
+     * -classpath . TcpExamples.TcpExample3Server
+     *
+     * @param args command-line arguments
+     */
+    public static void main(String[] args) {
+        try {
+
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            System.out.println(Pugh3Server.class.getName() + " has started..."); // it helps debugging to put this on console first
+
+            ServerSocket serverSocket = new ServerSocket(2317);
+            OutputStream os;
+            PrintStream ps;
+            InetAddress localAddress, remoteAddress;
+            int localPort, remotePort;
+            int serverLoopCount = 0;
+
+            // Server is up and waiting (i.e. "blocked" or paused)
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while (true) {
+
+                // block until connected to a client
+                try (Socket clientConnectionSocket = serverSocket.accept()) {
+                    serverLoopCount++; // increment at beginning of loop for reliability
+
+                    // Now hook everything up (i.e. set up the streams), Java style:
+                    os = clientConnectionSocket.getOutputStream();
+                    ps = new PrintStream(os);
+                    ps.println("This is response " + serverLoopCount + " produced by the server.\n"); // this gets sent back to client!
+
+                    // Print some information locally about the Socket connection.
+                    // This includes the port and IP numbers on both sides (the socket pair).
+                    localAddress = clientConnectionSocket.getLocalAddress();
+                    remoteAddress = clientConnectionSocket.getInetAddress();
+                    localPort = clientConnectionSocket.getLocalPort();
+                    remotePort = clientConnectionSocket.getPort();
+
+                    System.out.print("Server loop: " + serverLoopCount + "\n");
+
+                    
+                    // My socket pair connection looks like this, to localhost:
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                    // Why is the first IP/port the same, while the second set has different ports?
+                    if (serverLoopCount == 1) {
+                        System.out.println(Pugh3Server.class.getName() + " socket pair showing host name, address, port:");
+                        System.out.println("  (( "
+                                + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( "
+                                + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))\n");
+
+                        if (localAddress.getHostName().equals(localAddress.getHostAddress())
+                                || remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) {
+                            System.out.println("  note HostName matches address if host has no DNS name\n");
+                        }
+                    }
+
+                    if (serverLoopCount == 1) {
+                        System.out.println("Ready for some great Dad Jokes?!?\n");
+                    }
+                    if (serverLoopCount == 2) {
+                        System.out.println("Ok, get ready...\n");
+                    }
+                    if (serverLoopCount == 3) {
+                        System.out.print("A ham sandwich walks into a bar and orders a beer. The bartender says, Sorry, we don’t serve food here.\n");
+                    }
+
+                    if (serverLoopCount == 4) {
+                        System.out.println("Funny, right?\n");
+                    }
+
+                    if (serverLoopCount >= 5) {
+                        System.out.print("Keep laughing, it's funny!\n");
+                    }
+
+                    // Notice the use of flush() and try w/ resources. Without
+                    // the try w/ resources the Socket object may stay open for
+                    // a while after the client has stopped needing this
+                    // connection. try w/ resources explicitly ends the connection.
+                    ps.flush();
+                    // like it or not, you're outta here!
+                }
+            }
+        } catch (IOException e) {
+            System.err.println("Problem with " + Pugh3Server.class.getName() + " networking: " + e);
+
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/ReynoldsTcpExample3Client.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/ReynoldsTcpExample3Client.java
index 7d5dbec55a350f8ac33103692a6c7f93abd7d2fe..3ffc35822e0bc7acd21a856e8afb7d9e938bb992 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework2/ReynoldsTcpExample3Client.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/ReynoldsTcpExample3Client.java
@@ -26,6 +26,7 @@ public class ReynoldsTcpExample3Client {
     /**
      * Program invocation, execution starts here
      * @param args command-line arguments
+     * @throws java.lang.InterruptedException user cancels execution
      */
     public static void main(String[] args) throws InterruptedException {
         
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework2/package-info.java b/assignments/src/MV3500Cohort2021JulySeptember/homework2/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..21be874258fc77b84709b0574463bb99e6c7aa6d
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework2/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
+ * 
+ * @see java.lang.Package
+ * @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful</a>
+ * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
+ */
+
+package MV3500Cohort2021JulySeptember.homework2;
diff --git a/examples/nbproject/configs/7e.ExampleSimulationProgram.properties b/examples/nbproject/configs/7e.ExampleSimulationProgram.properties
new file mode 100644
index 0000000000000000000000000000000000000000..cb3e7ce3c1e2d5bcdd795d6af5dcf10b0840b968
--- /dev/null
+++ b/examples/nbproject/configs/7e.ExampleSimulationProgram.properties
@@ -0,0 +1 @@
+main.class=OpenDis7Examples.ExampleSimulationProgram
diff --git a/examples/nbproject/configs/7e.PduListenerSaver.properties b/examples/nbproject/configs/7f._PduListenerSaver.properties
similarity index 61%
rename from examples/nbproject/configs/7e.PduListenerSaver.properties
rename to examples/nbproject/configs/7f._PduListenerSaver.properties
index 769047adbaff3f8e94b5c75b0430da146ecc5034..4f72137d4d513aacc34db4d196193b4eddd03a91 100644
--- a/examples/nbproject/configs/7e.PduListenerSaver.properties
+++ b/examples/nbproject/configs/7f._PduListenerSaver.properties
@@ -1 +1,2 @@
-main.class=OpenDis7Examples.PduListenerSaver
+$label=7f. PduListenerSaver
+main.class=OpenDis7Examples.PduListenerSaver
diff --git a/examples/nbproject/configs/7f.PduReaderPlayer.properties b/examples/nbproject/configs/7g.PduReaderPlayer.properties
similarity index 97%
rename from examples/nbproject/configs/7f.PduReaderPlayer.properties
rename to examples/nbproject/configs/7g.PduReaderPlayer.properties
index 1d36802d6f732e46863c7e2ab98a2b364d81d51b..caa70e18e71782cdbac76be78e37ecaf7957b14f 100644
--- a/examples/nbproject/configs/7f.PduReaderPlayer.properties
+++ b/examples/nbproject/configs/7g.PduReaderPlayer.properties
@@ -1 +1 @@
-main.class=OpenDis7Examples.PduReaderPlayer
+main.class=OpenDis7Examples.PduReaderPlayer
diff --git a/examples/nbproject/project.properties b/examples/nbproject/project.properties
index 8a0e7178ee766267fb52d73a650a066500bfaf5a..a6343b0a90b4544d363071432b4b79bb71aaab0d 100644
--- a/examples/nbproject/project.properties
+++ b/examples/nbproject/project.properties
@@ -52,15 +52,15 @@ javac.classpath=\
     ${file.reference.open-dis_4.16.jar}:\
     ${file.reference.dis-enums-1.3.jar}
 # Space-separated list of extra javac options
-javac.compilerargs=
+javac.compilerargs=-Xlint:deprecation -Xlint:unchecked
 javac.deprecation=false
 javac.external.vm=true
 javac.modulepath=
 javac.processormodulepath=
 javac.processorpath=\
     ${javac.classpath}
-javac.source=1.8
-javac.target=1.8
+javac.source=16
+javac.target=16
 javac.test.classpath=\
     ${javac.classpath}:\
     ${build.classes.dir}
diff --git a/examples/pduLog/PduCaptureLog.dislog b/examples/pduLog/PduCaptureLog.dislog
new file mode 100644
index 0000000000000000000000000000000000000000..6bef2500980837a1e623dffb8eab0a1f71eb5f2b
--- /dev/null
+++ b/examples/pduLog/PduCaptureLog.dislog
@@ -0,0 +1,74 @@
+# Start, ENCODING_PLAINTEXT, 20210814_173156, DIS capture file, pduLog\PduCaptureLog2.dislog
+[0,0,0,0,0,0,0,0],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0] # DisPduType 01 ENTITY_STATE
+[0,0,0,0,1,93,-67,-104],[7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 02 FIRE
+[0,0,0,0,1,-7,8,72],[7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 03 DETONATION
+[0,0,0,0,2,50,81,32],[7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 04 COLLISION
+[0,0,0,0,2,93,-9,-68],[7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 05 SERVICE_REQUEST
+[0,0,0,0,2,122,-111,56],[7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 06 RESUPPLY_OFFER
+[0,0,0,0,2,-126,-99,96],[7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 07 RESUPPLY_RECEIVED
+[0,0,0,0,2,-120,45,-104],[7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 08 RESUPPLY_CANCEL
+[0,0,0,0,2,-117,-6,64],[7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 09 REPAIR_COMPLETE
+[0,0,0,0,2,-91,-90,-24],[7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 10 REPAIR_RESPONSE
+[0,0,0,0,2,-69,23,-108],[7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 11 CREATE_ENTITY
+[0,0,0,0,2,-54,-31,96],[7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 12 REMOVE_ENTITY
+[0,0,0,0,2,-49,27,104],[7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 13 START_RESUME
+[0,0,0,0,2,-32,-128,-120],[7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 14 STOP_FREEZE
+[0,0,0,0,2,-1,-93,-96],[7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0] # DisPduType 15 ACKNOWLEDGE
+[0,0,0,0,3,21,-126,116],[7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 16 ACTION_REQUEST
+[0,0,0,0,3,45,98,-12],[7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 17 ACTION_RESPONSE
+[0,0,0,0,3,65,92,60],[7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 18 DATA_QUERY
+[0,0,0,0,3,69,-60,-64],[7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 19 SET_DATA
+[0,0,0,0,3,75,25,52],[7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 20 DATA
+[0,0,0,0,3,80,68,64],[7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 21 EVENT_REPORT
+[0,0,0,0,3,94,-11,48],[7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,1,0,0,1,112,72,101,114,101,32,105,115,32,97,32,115,101,99,111,110,100,32,108,105,110,101,32,111,102,32,116,101,120,116,32,105,110,32,116,104,105,115,32,99,111,109,109,101,110,116,46,0,0] # DisPduType 22 COMMENT
+[0,0,0,0,4,-11,8,-88],[7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 23 ELECTROMAGNETIC_EMISSION
+[0,0,0,0,5,6,70,84],[7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 24 DESIGNATOR
+[0,0,0,0,5,41,-124,52],[7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 25 TRANSMITTER
+[0,0,0,0,5,-60,-19,-64],[7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0] # DisPduType 26 SIGNAL
+[0,0,0,0,5,-15,-53,-80],[7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 27 RECEIVER
+[0,0,0,0,6,11,-15,-44],[7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE
+[0,0,0,0,6,107,-107,8],[7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 29 UNDERWATER_ACOUSTIC
+[0,0,0,0,6,-121,-10,68],[7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE
+[0,0,0,0,6,-115,42,-80],[7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0] # DisPduType 31 INTERCOM_SIGNAL
+[0,0,0,0,6,-100,-47,-72],[7,0,32,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 32 INTERCOM_CONTROL
+[0,0,0,0,6,-66,61,-8],[7,0,33,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 33 AGGREGATE_STATE
+[0,0,0,0,7,25,44,24],[7,0,34,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 34 ISGROUPOF
+[0,0,0,0,7,48,77,-108],[7,0,35,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 35 TRANSFER_OWNERSHIP
+[0,0,0,0,7,92,46,0],[7,0,36,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 36 ISPARTOF
+[0,0,0,0,7,-104,99,72],[7,0,37,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 37 MINEFIELD_STATE
+[0,0,0,0,7,-6,51,-24],[7,0,38,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 38 MINEFIELD_QUERY
+[0,0,0,0,8,10,73,124],[7,0,39,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 39 MINEFIELD_DATA
+[0,0,0,0,8,24,-90,112],[7,0,40,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 40 MINEFIELD_RESPONSE_NACK
+[0,0,0,0,8,29,73,-16],[7,0,41,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 41 ENVIRONMENTAL_PROCESS
+[0,0,0,0,8,66,73,-48],[7,0,42,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 42 GRIDDED_DATA
+[0,0,0,0,8,92,94,-60],[7,0,43,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 43 POINT_OBJECT_STATE
+[0,0,0,0,8,-59,113,-4],[7,0,44,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 44 LINEAR_OBJECT_STATE
+[0,0,0,0,8,-50,117,-52],[7,0,45,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 45 AREAL_OBJECT_STATE
+[0,0,0,0,8,-20,39,-64],[7,0,46,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 46 TIME_SPACE_POSITION_INFORMATION
+[0,0,0,0,9,100,-111,36],[7,0,47,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 47 APPEARANCE
+[0,0,0,0,9,119,65,32],[7,0,48,11,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 48 ARTICULATED_PARTS
+[0,0,0,0,9,126,87,-8],[7,0,49,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 49 LIVE_ENTITY_FIRE
+[0,0,0,0,9,-122,82,-16],[7,0,50,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 50 LIVE_ENTITY_DETONATION
+[0,0,0,0,9,-86,-64,-72],[7,0,51,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 51 CREATE_ENTITY_RELIABLE
+[0,0,0,0,9,-76,-125,-116],[7,0,52,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 52 REMOVE_ENTITY_RELIABLE
+[0,0,0,0,9,-68,-60,112],[7,0,53,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 53 START_RESUME_RELIABLE
+[0,0,0,0,9,-61,79,12],[7,0,54,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 54 STOP_FREEZE_RELIABLE
+[0,0,0,0,9,-50,98,-4],[7,0,55,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0] # DisPduType 55 ACKNOWLEDGE_RELIABLE
+[0,0,0,0,9,-42,124,-48],[7,0,56,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 56 ACTION_REQUEST_RELIABLE
+[0,0,0,0,9,-31,42,104],[7,0,57,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 57 ACTION_RESPONSE_RELIABLE
+[0,0,0,0,9,-21,-95,-76],[7,0,58,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 58 DATA_QUERY_RELIABLE
+[0,0,0,0,9,-6,62,-72],[7,0,59,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 59 SET_DATA_RELIABLE
+[0,0,0,0,10,2,74,-32],[7,0,60,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 60 DATA_RELIABLE
+[0,0,0,0,10,12,-88,0],[7,0,61,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 61 EVENT_REPORT_RELIABLE
+[0,0,0,0,10,22,-105,92],[7,0,62,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 62 COMMENT_RELIABLE
+[0,0,0,0,10,26,-6,-52],[7,0,63,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 63 RECORD_RELIABLE
+[0,0,0,0,10,54,-76,-40],[7,0,64,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 64 SET_RECORD_RELIABLE
+[0,0,0,0,10,62,73,120],[7,0,65,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 65 RECORD_QUERY_RELIABLE
+[0,0,0,0,10,81,92,-84],[7,0,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 66 COLLISION_ELASTIC
+[0,0,0,0,10,87,-28,-116],[7,0,67,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 67 ENTITY_STATE_UPDATE
+[0,0,0,0,10,93,64,8],[7,0,68,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 68 DIRECTED_ENERGY_FIRE
+[0,0,0,0,10,-118,-59,40],[7,0,69,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 69 ENTITY_DAMAGE_STATUS
+[0,0,0,0,10,-113,-122,-68],[7,0,70,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 70 INFORMATION_OPERATIONS_ACTION
+[0,0,0,0,12,120,-36,-88],[7,0,71,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 71 INFORMATION_OPERATIONS_REPORT
+[0,0,0,0,12,-114,53,-28],[7,0,72,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0] # DisPduType 72 ATTRIBUTE
+# Finish, ENCODING_PLAINTEXT, 20210814_173309, DIS capture file, pduLog\PduCaptureLog2.dislog
diff --git a/examples/pduLog/PduCaptureLog1.dislog b/examples/pduLog/PduCaptureLog1.dislog
deleted file mode 100644
index bc6f6fa111d68762aea1de5713f482855232a4b3..0000000000000000000000000000000000000000
--- a/examples/pduLog/PduCaptureLog1.dislog
+++ /dev/null
@@ -1 +0,0 @@
-# Finish, ENCODING_PLAINTEXT, 20201115_145232, DIS capture file, pduLog\PduCaptureLog1.dislog
diff --git a/examples/pduLog/Pdusave.dislog b/examples/pduLog/Pdusave.dislog
deleted file mode 100644
index 1147453e9f93a9c96fbd0bea4f398953116bcbe8..0000000000000000000000000000000000000000
--- a/examples/pduLog/Pdusave.dislog
+++ /dev/null
@@ -1,74 +0,0 @@
-# Start, ENCODING_PLAINTEXT, 20200726_162608, DIS capture file, pduLog\Pdusave1.dislog
-[0,0,0,0,0,0,0,0],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,1,52,2,-56],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,1,-61,-76,83],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,2,119,122,-105],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,3,27,-93,-5],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,3,-56,-79,-17],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,4,106,78,-104],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,5,37,68,79],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,5,-52,87,4],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,6,114,-44,-128],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,7,23,-58,-84],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,7,-65,73,23],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,8,106,111,-16],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,9,23,-115,32],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,9,-56,79,-124],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,10,110,61,64],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,11,19,-115,-113],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,11,-57,-66,20],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,12,106,-69,119],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,13,17,40,40],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,13,-69,74,-41],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,14,-102,33,-72],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,15,74,105,-41],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,15,-17,-99,64],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,16,-106,-107,100],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,17,90,34,84],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,18,7,97,-29],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,18,-82,108,0],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,19,83,71,-24],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,20,4,114,-104],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,20,-77,101,80],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,21,105,-44,-44],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,22,26,-32,-88],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,22,-66,89,124],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,23,108,80,-92],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,24,32,99,19],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,24,-60,-127,35],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,25,-127,-36,-20],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,26,41,71,32],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,26,-49,-58,-112],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,27,-120,-3,-52],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,28,66,4,-5],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,28,-23,-18,36],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,29,-116,90,-1],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,30,68,8,24],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,30,-20,78,-1],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,31,-109,-77,88],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,32,56,-96,111],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,32,-19,102,44],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,33,-107,-88,100],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,34,61,127,-108],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,34,-25,73,-5],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,35,-117,-3,-89],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,36,51,-10,112],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,36,-37,72,108],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,37,127,-90,40],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,38,40,-37,88],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,38,-46,109,28],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,39,120,-27,-124],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,40,32,66,112],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,40,-36,47,108],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,41,125,11,-29],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,42,53,-30,64],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,42,-14,-62,-104],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,43,-109,-10,44],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,44,58,-8,-36],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,44,-25,-78,11],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,45,-117,2,-93],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,46,49,-76,120],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,46,-39,62,-76],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,47,126,106,-81],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-[0,0,0,0,48,39,-97,-32],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0,7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,-23,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,0,0,0,3,-23,0,0,0,-88,72,101,114,101,32,105,115,32,97,32,110,101,119,32,109,101,115,115,97,103,101,0,0,0,7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: ENTITY_STATE: 1
-# Finish, ENCODING_PLAINTEXT, 20200726_162629, DIS capture file, pduLog\Pdusave1.dislog
diff --git a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.JPG b/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.JPG
deleted file mode 100644
index a2652f97a08b14422f64213a8f3d0050257e8563..0000000000000000000000000000000000000000
Binary files a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3Server.JPG and /dev/null differ
diff --git a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3ServerClient.JPG b/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3ServerClient.JPG
deleted file mode 100644
index 3a5853becfde3cdc97b73849da1f168963efe360..0000000000000000000000000000000000000000
Binary files a/examples/src/MV3500Cohort2021JulySeptember/homework1/FrankTCPExample3ServerClient.JPG and /dev/null differ
diff --git a/examples/src/OpenDis4Examples/EspduSender.java b/examples/src/OpenDis4Examples/EspduSender.java
index d5a95c03ac678efbe86a83e0bdda89e6be5f0151..ed43dc4562f55934869740fb799d86a5828d73e8 100644
--- a/examples/src/OpenDis4Examples/EspduSender.java
+++ b/examples/src/OpenDis4Examples/EspduSender.java
@@ -1,332 +1,342 @@
-package OpenDis4Examples;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis.*;
-import edu.nps.moves.disutil.CoordinateConversions;
-import edu.nps.moves.disutil.DisTime;
-
-/**
- * Creates and sends ESPDUs in IEEE binary format. Adapted from OpenDIS library
- * example package edu.nps.moves.examples
- *
- * @author DMcG
- */
-public class EspduSender {
-
-    /** Defining number of packets to send is superior to infinite loops
-      * which have possible hazard of unstoppably sending packets as a zombie process */
-	public static final int NUMBER_TO_SEND = 5000;
-
-    /** Type of network connection */
-	public enum NetworkMode {
-        /** @see <a href="https://en.wikipedia.org/wiki/Unicast">https://en.wikipedia.org/wiki/Unicast</a> */
-		UNICAST,
-        /** @see <a href="https://en.wikipedia.org/wiki/Multicast">https://en.wikipedia.org/wiki/Multicast</a> */
-        MULTICAST,
-        /** @see <a href="https://en.wikipedia.org/wiki/Broadcasting_(networking)">https://en.wikipedia.org/wiki/Broadcasting_(networking)</a> */
-        BROADCAST
-	};
-
-	/**
-	 * Default multicast group address we send on.
-	 */
-	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-
-	/**
-	 * Default multicast port used, matches Wireshark DIS capture default
-     * @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a>
-	 */
-	public static final int DEFAULT_MULTICAST_PORT = 3000;
-
-	/**
-	 * Possible system properties, passed in via -Dattr=val networkMode:
-	 * unicast, broadcast, multicast destinationIp: where to send the packet. If
-	 * in multicast mode, this can be multicast. To determine broadcast
-	 * destination IP, use an online broadcast address calculator, for example
-	 * http://www.remotemonitoringsystems.ca/broadcast.php If in multicast mode,
-	 * a join() will be done on the multicast address. port: port used for both
-	 * source and destination.
-	 *
-	 * @param args command-line arguments
-	 */
-	public static void main(String args[])
-	{
-		System.out.println("OpenDis4Examples.EspduSender started... send " + NUMBER_TO_SEND + " ESPDUs, initial index=0");
-		/**
-		 * an entity state pdu
-		 */
-		EntityStatePdu espdu = new EntityStatePdu();
-		MulticastSocket socket = null; // must be initialized, even if null
-		DisTime disTime = DisTime.getInstance(); // TODO explain
-		int alternator = -1;
-
-		// ICBM coordinates for my office
-		double lat = 36.595517;
-		double lon = -121.877000;
-
-		// Default settings. These are used if no system properties are set. 
-		// If system properties are passed in, these are over ridden.
-		int port = DEFAULT_MULTICAST_PORT;
-		NetworkMode mode = NetworkMode.BROADCAST;
-		InetAddress destinationIp = null; // must be initialized, even if null
-
-		try {
-			destinationIp = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-		} catch (UnknownHostException e) {
-			System.out.println(e + " Cannot create multicast address");
-			System.exit(0);
-		}
-
-		// All system properties, passed in on the command line via -Dattribute=value
-		Properties systemProperties = System.getProperties();
-
-		// IP address we send to
-		String destinationIpString = systemProperties.getProperty("destinationIp");
-
-		// Port we send to, and local port we open the socket on
-		String portString = systemProperties.getProperty("port");
-
-		// Network mode: unicast, multicast, broadcast
-		String networkModeString = systemProperties.getProperty("networkMode"); // unicast or multicast or broadcast
-
-		// Set up a socket to send information
-		try {
-			// Port we send to
-			if (portString != null) 
-			{
-				port = Integer.parseInt(portString);
-			}
-
-			socket = new MulticastSocket(port);
-
-			// Where we send packets to, the destination IP address
-			if (destinationIpString != null) 
-			{
-				destinationIp = InetAddress.getByName(destinationIpString);
-			}
-
-			// Type of transport: unicast, broadcast, or multicast
-			// TODO convert to String constants
-			if (networkModeString != null) {
-				if (networkModeString.equalsIgnoreCase("unicast")) 
-				{
-					mode = NetworkMode.UNICAST;
-				} 
-				else if (networkModeString.equalsIgnoreCase("broadcast")) {
-					mode = NetworkMode.BROADCAST;
-				} 
-				else if (networkModeString.equalsIgnoreCase("multicast")) {
-					mode = NetworkMode.MULTICAST;
-					if (!destinationIp.isMulticastAddress())
-					{
-						throw new RuntimeException("Sending to multicast address, but destination address " + destinationIp.toString() + "is not multicast");
-					}
-					socket.joinGroup(destinationIp);
-				}
-			} // end networkModeString
-		}
-		catch (IOException | RuntimeException e)
-		{
-			System.out.println("Unable to initialize networking. Exiting.");
-			System.out.println(e);
-			System.exit(-1);
-		}
-
-		// Initialize values in the Entity State PDU object. The exercise ID is 
-		// a way to differentiate between different virtual worlds on one network.
-		// Note that some values (such as the PDU type and PDU family) are set
-		// automatically when you create the ESPDU.
-		espdu.setExerciseID((short) 1);
-
-		// The EID is the unique identifier for objects in the world. This 
-		// EID should match up with the ID for the object specified in the 
-		// VMRL/x3d/virtual world.
-		EntityID entityID = espdu.getEntityID();
-		entityID.setSite(1);  // 0 is apparently not a valid site number, per the spec
-		entityID.setApplication(1);
-		entityID.setEntity(2);
-
-		// Set the entity type. SISO has a big list of enumerations, so that by
-		// specifying various numbers we can say this is an M1A2 American tank,
-		// the USS Enterprise, and so on. We'll make this a tank. There is a 
-		// separate project elsehwhere in this project that implements DIS 
-		// enumerations in C++ and Java, but to keep things simple we just use
-		// numbers here.
-		EntityType entityType = espdu.getEntityType();
-		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)
-		entityType.setCountry(225);              // USA
-		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space)
-		entityType.setCategory((short) 1);        // Tank
-		entityType.setSubcategory((short) 1);     // M1 Abrams
-		entityType.setSpec((short) 3);            // M1A2 Abrams
-
-		Set<InetAddress> broadcastAddresses;
-		// Loop through sending N ESPDUs
-		try
-		{
-			System.out.println("Sending " + NUMBER_TO_SEND + " ESPDU packets to " + destinationIp.toString());
-			
-			for (int index = 0; index < NUMBER_TO_SEND; index++) {
-				// DIS time is a pain in the uh, neck. DIS time units are 2^31-1 units per
-				// hour, and time is set to DIS time units from the top of the hour. 
-				// This means that if you start sending just before the top of the hour
-				// the time units can roll over to zero as you are sending. The receivers
-				// (escpecially homegrown ones) are often not able to detect rollover
-				// and may start discarding packets as dupes or out of order. We use
-				// an NPS timestamp here, hundredths of a second since the start of the
-				// year. The DIS standard for time is often ignored in the wild; I've seen
-				// people use Unix time (seconds since 1970) and more. Or you can
-				// just stuff idx into the timestamp field to get something that is monotonically
-				// increasing.
-
-				// Note that timestamp is used to detect duplicate and out of order packets. 
-				// That means if you DON'T change the timestamp, many implementations will simply
-				// discard subsequent packets that have an identical timestamp. Also, if they
-				// receive a PDU with an timestamp lower than the last one they received, they
-				// may discard it as an earlier, out-of-order PDU. So it is a good idea to
-				// update the timestamp on ALL packets sent.
-				// An alterative approach: actually follow the standard. It's a crazy concept,
-				// but it might just work.
-				int timestamp = disTime.getDisAbsoluteTimestamp();
-				espdu.setTimestamp(timestamp);
-
-				// Set the position of the entity in the world. DIS uses a cartesian 
-				// coordinate system with the origin at the center of the earth, the x
-				// axis out at the equator and prime meridian, y out at the equator and
-				// 90 deg east, and z up and out the north pole. To place an object on
-				// the earth's surface you also need a model for the shape of the earth
-				// (it's not a sphere.) All the fancy math necessary to do this is in
-				// the SEDRIS SRM package. There are also some one-off formulas for 
-				// doing conversions from, for example, lat/lon/altitude to DIS coordinates.
-				// Here we use those one-off formulas.
-				// Modify the position of the object. This will send the object a little
-				// due east by adding some to the longitude every iteration. Since we
-				// are on the Pacific coast, this sends the object east. Assume we are
-				// at zero altitude. In other worlds you'd use DTED to determine the
-				// local ground altitude at that lat/lon, or you'd just use ground clamping.
-				// The x and y values will change, but the z value should not.
-				//lon = lon + (double)((double)idx / 100000.0);
-				//System.out.println("lla=" + lat + "," + lon + ", 0.0");
-				double direction = Math.pow((double) (-1.0), (double) (index));
-				lon = lon + (direction * 0.00006);
-				System.out.println(lon);
-
-				double disCoordinates[] = CoordinateConversions.getXYZfromLatLonDegrees(lat, lon, 1.0);
-				Vector3Double location = espdu.getEntityLocation();
-				location.setX(disCoordinates[0]);
-				location.setY(disCoordinates[1]);
-				location.setZ(disCoordinates[2]);
-				System.out.println("lat, lon:" + lat + ", " + lon);
-				System.out.println("DIS coord:" + disCoordinates[0] + ", " + disCoordinates[1] + ", " + disCoordinates[2]);
-
-				// Optionally, we can do some rotation of the entity
-				/*
-            Orientation orientation = espdu.getEntityOrientation();
-            float psi = orientation.getPsi();
-            psi = psi + idx;
-            orientation.setPsi(psi);
-            orientation.setTheta((float)(orientation.getTheta() + idx /2.0));
-				 */
-				// You can set other ESPDU values here, such as the velocity, acceleration,
-				// and so on.
-				// Marshal out the espdu object to a byte array, then send a datagram
-				// packet with that data in it.
-				ByteArrayOutputStream baos = new ByteArrayOutputStream();
-				DataOutputStream dos = new DataOutputStream(baos);
-				espdu.marshal(dos);
-
-				FirePdu fire = new FirePdu();
-				byte[] fireArray = fire.marshal();
-
-				// The byte array here is the packet in DIS format. We put that into a 
-				// datagram and send it.
-				byte[] data = baos.toByteArray();
-
-				broadcastAddresses = getBroadcastAddresses();
-				Iterator iterator = broadcastAddresses.iterator();
-				while (iterator.hasNext())
-				{
-					InetAddress broadcast = (InetAddress) iterator.next();
-					System.out.println("Sending broadcast datagram packet to " + broadcast);
-					DatagramPacket packet = new DatagramPacket(data, data.length, broadcast, port);
-					socket.send(packet);
-					// TODO experiment with these!  8)
-					packet = new DatagramPacket(fireArray, fireArray.length, broadcast, port); // alternate
-					socket.send(packet);
-				}
-
-				// Send every 1 sec. Otherwise all this will be all over in a fraction of a second.
-				Thread.sleep(1000); // msec
-
-				location = espdu.getEntityLocation();
-
-				System.out.println("Espdu #" + index + " EID=[" + entityID.getSite() + "," + entityID.getApplication() + "," + entityID.getEntity() + "]");
-				System.out.println(" DIS coordinates location=[" + location.getX() + "," + location.getY() + "," + location.getZ() + "]");
-				double c[] = {location.getX(), location.getY(), location.getZ()};
-				double lla[] = CoordinateConversions.xyzToLatLonDegrees(c);
-// debug:		System.out.println(" Location (lat/lon/alt): [" + lla[0] + ", " + lla[1] + ", " + lla[2] + "]");
-			}
-		}
-		catch (IOException | InterruptedException e)
-		{
-            System.out.println("Problem with OpenDis4Examples.EspduSender, see exception trace:");
-			System.out.println(e);
-		}
-	}
-
-	/**
-	 * A number of sites get all snippy about using 255.255.255.255 for a
-	 * broadcast address; it trips their security software and they kick you off
-	 * their network. (Comcast, NPS.) This determines the broadcast address for
-	 * all connected interfaces, based on the IP and subnet mask. If you have a
-	 * dual-homed host it will return a broadcast address for both. If you have
-	 * some VMs running on your host this will pick up the addresses for those
-	 * as well--e.g. running VMWare on your laptop with a local IP this will also
-	 * pick up a 192.168 address assigned to the VM by the host OS.
-	 *
-	 * @return set of all broadcast addresses
-	 */
-	public static Set<InetAddress> getBroadcastAddresses()
-	{
-		Set<InetAddress> broadcastAddresses = new HashSet<>();
-		Enumeration interfaces;
-
-		try {
-			interfaces = NetworkInterface.getNetworkInterfaces();
-
-			while (interfaces.hasMoreElements())
-			{
-				NetworkInterface anInterface = (NetworkInterface) interfaces.nextElement();
-
-				if (anInterface.isUp())
-				{
-					Iterator iterator = anInterface.getInterfaceAddresses().iterator();
-					while (iterator.hasNext())
-					{
-						InterfaceAddress anAddress = (InterfaceAddress) iterator.next();
-						if ((anAddress == null || anAddress.getAddress().isLinkLocalAddress()))
-						{
-							continue;
-						}
-
-						//System.out.println("Getting broadcast address for " + anAddress);
-						InetAddress broadcastAddress = anAddress.getBroadcast();
-						if (broadcastAddress != null)
-						{
-							broadcastAddresses.add(broadcastAddress);
-						}
-					}
-				}
-			}
-		}
-		catch (SocketException e) 
-		{
-            System.out.println("Problem with OpenDis4Examples.EspduSender.getBroadcastAddresses(), see exception trace:");
-			System.out.println(e);
-		}
-		return broadcastAddresses;
-	}
-}
+package OpenDis4Examples;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis.*;
+import edu.nps.moves.disutil.CoordinateConversions;
+import edu.nps.moves.disutil.DisTime;
+
+/**
+ * Creates and sends ESPDUs in IEEE binary format. Adapted from OpenDIS library
+ * example package edu.nps.moves.examples
+ *
+ * @author DMcG
+ */
+public class EspduSender {
+
+    /** Defining number of packets to send is superior to infinite loops
+      * which have possible hazard of unstoppably sending packets as a zombie process */
+	public static final int NUMBER_TO_SEND = 5; // 5000;
+
+    /** Type of network connection */
+	public enum NetworkMode {
+        /** @see <a href="https://en.wikipedia.org/wiki/Unicast">https://en.wikipedia.org/wiki/Unicast</a> */
+		UNICAST,
+        /** @see <a href="https://en.wikipedia.org/wiki/Multicast">https://en.wikipedia.org/wiki/Multicast</a> */
+        MULTICAST,
+        /** @see <a href="https://en.wikipedia.org/wiki/Broadcasting_(networking)">https://en.wikipedia.org/wiki/Broadcasting_(networking)</a> */
+        BROADCAST
+	};
+
+	/**
+	 * Default multicast group address we send on.
+	 */
+	public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+
+	/**
+	 * Default multicast port used, matches Wireshark DIS capture default
+     * @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a>
+	 */
+	public static final int DEFAULT_MULTICAST_PORT = 3000;
+
+	/**
+	 * Possible system properties, passed in via -Dattr=val networkMode:
+	 * unicast, broadcast, multicast destinationIp: where to send the packet. If
+	 * in multicast mode, this can be multicast. To determine broadcast
+	 * destination IP, use an online broadcast address calculator, for example
+	 * http://www.remotemonitoringsystems.ca/broadcast.php If in multicast mode,
+	 * a join() will be done on the multicast address. port: port used for both
+	 * source and destination.
+	 *
+	 * @param args command-line arguments
+	 */
+	public static void main(String args[])
+	{
+		System.out.println("OpenDis4Examples.EspduSender started... send " + NUMBER_TO_SEND + " ESPDUs, initial index=0");
+		/**
+		 * an entity state pdu
+		 */
+		EntityStatePdu espdu = new EntityStatePdu();
+		MulticastSocket socket = null; // must be initialized, even if null
+		DisTime disTime = DisTime.getInstance(); // TODO explain
+		int alternator = -1;
+
+		// ICBM coordinates for my office
+		double lat = 36.595517;
+		double lon = -121.877000;
+
+		// Default settings. These are used if no system properties are set. 
+		// If system properties are passed in, these are over ridden.
+		int port = DEFAULT_MULTICAST_PORT;
+		NetworkMode mode = NetworkMode.BROADCAST;
+		InetAddress destinationIp = null; // must be initialized, even if null
+
+		try {
+			destinationIp = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+		} catch (UnknownHostException e) {
+			System.out.println(e + " Cannot create multicast address");
+			System.exit(0);
+		}
+
+		// All system properties, passed in on the command line via -Dattribute=value
+		Properties systemProperties = System.getProperties();
+
+		// IP address we send to
+		String destinationIpString = systemProperties.getProperty("destinationIp");
+
+		// Port we send to, and local port we open the socket on
+		String portString = systemProperties.getProperty("port");
+
+		// Network mode: unicast, multicast, broadcast
+		String networkModeString = systemProperties.getProperty("networkMode"); // unicast or multicast or broadcast
+
+		// Set up a socket to send information
+		try {
+			// Port we send to
+			if (portString != null) 
+			{
+			    System.out.println("Using systemProperties port=" + portString);
+				port = Integer.parseInt(portString);
+			}
+
+			socket = new MulticastSocket(port);
+
+			// Where we send packets to, the destination IP address
+			if (destinationIpString != null) 
+			{
+				destinationIp = InetAddress.getByName(destinationIpString);
+			}
+
+			// Type of transport: unicast, broadcast, or multicast
+			// TODO convert to String constants
+			if (networkModeString != null) {
+				if (networkModeString.equalsIgnoreCase("unicast")) 
+				{
+					mode = NetworkMode.UNICAST;
+				} 
+				else if (networkModeString.equalsIgnoreCase("broadcast")) {
+					mode = NetworkMode.BROADCAST;
+				} 
+				else if (networkModeString.equalsIgnoreCase("multicast")) {
+					mode = NetworkMode.MULTICAST;
+					if (!destinationIp.isMulticastAddress())
+					{
+						throw new RuntimeException("Sending to multicast address, but destination address " + destinationIp.toString() + "is not multicast");
+					}
+//					socket.joinGroup(destinationIp); // deprecated, TODO select correct NetworkInterface
+                    // =======================================================================
+                    // updated approach using NetworkInterface
+                    NetworkInterface networkInterface = NetworkInterface.getByInetAddress(destinationIp);
+                    if (networkInterface != null)
+                        System.out.println("networkInterface=" + networkInterface.getDisplayName()); // typically null if loopback
+                    SocketAddress localMulticastSocketAddress = new InetSocketAddress(destinationIp, DEFAULT_MULTICAST_PORT);
+                    MulticastSocket multicastSocket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+                    multicastSocket.joinGroup(localMulticastSocketAddress, networkInterface);
+                    // =======================================================================
+				}
+			} // end networkModeString
+		}
+		catch (IOException | RuntimeException e)
+		{
+			System.out.println("Unable to initialize networking. Exiting.");
+			System.out.println(e);
+			System.exit(-1);
+		}
+
+		// Initialize values in the Entity State PDU object. The exercise ID is 
+		// a way to differentiate between different virtual worlds on one network.
+		// Note that some values (such as the PDU type and PDU family) are set
+		// automatically when you create the ESPDU.
+		espdu.setExerciseID((short) 1);
+
+		// The EID is the unique identifier for objects in the world. This 
+		// EID should match up with the ID for the object specified in the 
+		// VMRL/x3d/virtual world.
+		EntityID entityID = espdu.getEntityID();
+		entityID.setSite(1);  // 0 is apparently not a valid site number, per the spec
+		entityID.setApplication(1);
+		entityID.setEntity(2);
+
+		// Set the entity type. SISO has a big list of enumerations, so that by
+		// specifying various numbers we can say this is an M1A2 American tank,
+		// the USS Enterprise, and so on. We'll make this a tank. There is a 
+		// separate project elsehwhere in this project that implements DIS 
+		// enumerations in C++ and Java, but to keep things simple we just use
+		// numbers here.
+		EntityType entityType = espdu.getEntityType();
+		entityType.setEntityKind((short) 1);      // Platform (vs lifeform, munition, sensor, etc.)
+		entityType.setCountry(225);              // USA
+		entityType.setDomain((short) 1);          // Land (vs air, surface, subsurface, space)
+		entityType.setCategory((short) 1);        // Tank
+		entityType.setSubcategory((short) 1);     // M1 Abrams
+		entityType.setSpec((short) 3);            // M1A2 Abrams
+
+		Set<InetAddress> broadcastAddresses;
+		// Loop through sending N ESPDUs
+		try
+		{
+			System.out.println("Sending " + NUMBER_TO_SEND + " ESPDU packets to " + destinationIp.toString());
+			
+			for (int index = 0; index < NUMBER_TO_SEND; index++) {
+				// DIS time is a pain in the uh, neck. DIS time units are 2^31-1 units per
+				// hour, and time is set to DIS time units from the top of the hour. 
+				// This means that if you start sending just before the top of the hour
+				// the time units can roll over to zero as you are sending. The receivers
+				// (escpecially homegrown ones) are often not able to detect rollover
+				// and may start discarding packets as dupes or out of order. We use
+				// an NPS timestamp here, hundredths of a second since the start of the
+				// year. The DIS standard for time is often ignored in the wild; I've seen
+				// people use Unix time (seconds since 1970) and more. Or you can
+				// just stuff idx into the timestamp field to get something that is monotonically
+				// increasing.
+
+				// Note that timestamp is used to detect duplicate and out of order packets. 
+				// That means if you DON'T change the timestamp, many implementations will simply
+				// discard subsequent packets that have an identical timestamp. Also, if they
+				// receive a PDU with an timestamp lower than the last one they received, they
+				// may discard it as an earlier, out-of-order PDU. So it is a good idea to
+				// update the timestamp on ALL packets sent.
+				// An alterative approach: actually follow the standard. It's a crazy concept,
+				// but it might just work.
+				int timestamp = disTime.getDisAbsoluteTimestamp();
+				espdu.setTimestamp(timestamp);
+
+				// Set the position of the entity in the world. DIS uses a cartesian 
+				// coordinate system with the origin at the center of the earth, the x
+				// axis out at the equator and prime meridian, y out at the equator and
+				// 90 deg east, and z up and out the north pole. To place an object on
+				// the earth's surface you also need a model for the shape of the earth
+				// (it's not a sphere.) All the fancy math necessary to do this is in
+				// the SEDRIS SRM package. There are also some one-off formulas for 
+				// doing conversions from, for example, lat/lon/altitude to DIS coordinates.
+				// Here we use those one-off formulas.
+				// Modify the position of the object. This will send the object a little
+				// due east by adding some to the longitude every iteration. Since we
+				// are on the Pacific coast, this sends the object east. Assume we are
+				// at zero altitude. In other worlds you'd use DTED to determine the
+				// local ground altitude at that lat/lon, or you'd just use ground clamping.
+				// The x and y values will change, but the z value should not.
+				//lon = lon + (double)((double)idx / 100000.0);
+				//System.out.println("lla=" + lat + "," + lon + ", 0.0");
+				double direction = Math.pow((double) (-1.0), (double) (index));
+				lon = lon + (direction * 0.00006);
+				System.out.println(lon);
+
+				double disCoordinates[] = CoordinateConversions.getXYZfromLatLonDegrees(lat, lon, 1.0);
+				Vector3Double location = espdu.getEntityLocation();
+				location.setX(disCoordinates[0]);
+				location.setY(disCoordinates[1]);
+				location.setZ(disCoordinates[2]);
+				System.out.println("lat, lon:" + lat + ", " + lon);
+				System.out.println("DIS coord:" + disCoordinates[0] + ", " + disCoordinates[1] + ", " + disCoordinates[2]);
+
+				// Optionally, we can do some rotation of the entity
+				/*
+            Orientation orientation = espdu.getEntityOrientation();
+            float psi = orientation.getPsi();
+            psi = psi + idx;
+            orientation.setPsi(psi);
+            orientation.setTheta((float)(orientation.getTheta() + idx /2.0));
+				 */
+				// You can set other ESPDU values here, such as the velocity, acceleration,
+				// and so on.
+				// Marshal out the espdu object to a byte array, then send a datagram
+				// packet with that data in it.
+				ByteArrayOutputStream baos = new ByteArrayOutputStream();
+				DataOutputStream dos = new DataOutputStream(baos);
+				espdu.marshal(dos);
+
+				FirePdu fire = new FirePdu();
+				byte[] fireArray = fire.marshal();
+
+				// The byte array here is the packet in DIS format. We put that into a 
+				// datagram and send it.
+				byte[] data = baos.toByteArray();
+
+				broadcastAddresses = getBroadcastAddresses();
+				Iterator iterator = broadcastAddresses.iterator();
+				while (iterator.hasNext())
+				{
+					InetAddress broadcast = (InetAddress) iterator.next();
+					System.out.println("Sending broadcast datagram packet to " + broadcast);
+					DatagramPacket packet = new DatagramPacket(data, data.length, broadcast, port);
+					socket.send(packet);
+					// TODO experiment with these!  8)
+					packet = new DatagramPacket(fireArray, fireArray.length, broadcast, port); // alternate
+					socket.send(packet);
+				}
+
+				// Send every 1 sec. Otherwise all this will be all over in a fraction of a second.
+				Thread.sleep(1000); // msec
+
+				location = espdu.getEntityLocation();
+
+				System.out.println("Espdu #" + index + " EID=[" + entityID.getSite() + "," + entityID.getApplication() + "," + entityID.getEntity() + "]");
+				System.out.println(" DIS coordinates location=[" + location.getX() + "," + location.getY() + "," + location.getZ() + "]");
+				double c[] = {location.getX(), location.getY(), location.getZ()};
+				double lla[] = CoordinateConversions.xyzToLatLonDegrees(c);
+// debug:		System.out.println(" Location (lat/lon/alt): [" + lla[0] + ", " + lla[1] + ", " + lla[2] + "]");
+			}
+		}
+		catch (IOException | InterruptedException e)
+		{
+            System.out.println("Problem with OpenDis4Examples.EspduSender, see exception trace:");
+			System.out.println(e);
+		}
+	}
+
+	/**
+	 * A number of sites get all snippy about using 255.255.255.255 for a
+	 * broadcast address; it trips their security software and they kick you off
+	 * their network. (Comcast, NPS.) This determines the broadcast address for
+	 * all connected interfaces, based on the IP and subnet mask. If you have a
+	 * dual-homed host it will return a broadcast address for both. If you have
+	 * some VMs running on your host this will pick up the addresses for those
+	 * as well--e.g. running VMWare on your laptop with a local IP this will also
+	 * pick up a 192.168 address assigned to the VM by the host OS.
+	 *
+	 * @return set of all broadcast addresses
+	 */
+	public static Set<InetAddress> getBroadcastAddresses()
+	{
+		Set<InetAddress> broadcastAddresses = new HashSet<>();
+		Enumeration interfaces;
+
+		try {
+			interfaces = NetworkInterface.getNetworkInterfaces();
+
+			while (interfaces.hasMoreElements())
+			{
+				NetworkInterface anInterface = (NetworkInterface) interfaces.nextElement();
+
+				if (anInterface.isUp())
+				{
+					Iterator iterator = anInterface.getInterfaceAddresses().iterator();
+					while (iterator.hasNext())
+					{
+						InterfaceAddress anAddress = (InterfaceAddress) iterator.next();
+						if ((anAddress == null || anAddress.getAddress().isLinkLocalAddress()))
+						{
+							continue;
+						}
+
+						//System.out.println("Getting broadcast address for " + anAddress);
+						InetAddress broadcastAddress = anAddress.getBroadcast();
+						if (broadcastAddress != null)
+						{
+							broadcastAddresses.add(broadcastAddress);
+						}
+					}
+				}
+			}
+		}
+		catch (SocketException e) 
+		{
+            System.out.println("Problem with OpenDis4Examples.EspduSender.getBroadcastAddresses(), see exception trace:");
+			System.out.println(e);
+		}
+		return broadcastAddresses;
+	}
+}
diff --git a/examples/src/OpenDis4Examples/EspduSenderWireshark.png b/examples/src/OpenDis4Examples/EspduSenderWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fedce0aacc3fcdb97f895ecc8176890aa104e8c
Binary files /dev/null and b/examples/src/OpenDis4Examples/EspduSenderWireshark.png differ
diff --git a/examples/src/OpenDis4Examples/EspduTerminalLog.txt b/examples/src/OpenDis4Examples/EspduTerminalLog.txt
index a0f6d0922777387168bd48ea2fc59ab00af399b8..cfa5e53f475063a3d869e359bee1f495ba4851e3 100644
--- a/examples/src/OpenDis4Examples/EspduTerminalLog.txt
+++ b/examples/src/OpenDis4Examples/EspduTerminalLog.txt
@@ -1,98 +1,117 @@
-Invocation instructions:
-1. run/debug EspduReceiver.java (since sender does not block, be ready to listen)
-2. run/debug EspduSender.java
-
-Program responses:
-
-===================================================
-run:
-DisExamples.EspduSender started... send 5 ESPDUs, initial index=0
-Sending 5 ESPDU packets to /239.1.2.3
--121.87693999999999
-lat, lon:36.595517, -121.87693999999999
-DIS coord:-2707488.3677768684, -4353666.735244378, 3781450.3202754413
-Sending broadcast datagram packet to /127.255.255.255
-Sending broadcast datagram packet to /172.20.220.105
-Sending broadcast datagram packet to /10.0.0.255
-Espdu #0 EID=[1,1,2]
- DIS coordinates location=[-2707488.3677768684,-4353666.735244378,3781450.3202754413]
--121.877
-lat, lon:36.595517, -121.877
-DIS coord:-2707492.9269245286, -4353663.899966802, 3781450.3202754413
-Sending broadcast datagram packet to /127.255.255.255
-Sending broadcast datagram packet to /172.20.220.105
-Sending broadcast datagram packet to /10.0.0.255
-Espdu #1 EID=[1,1,2]
- DIS coordinates location=[-2707492.9269245286,-4353663.899966802,3781450.3202754413]
--121.87693999999999
-lat, lon:36.595517, -121.87693999999999
-DIS coord:-2707488.3677768684, -4353666.735244378, 3781450.3202754413
-Sending broadcast datagram packet to /127.255.255.255
-Sending broadcast datagram packet to /172.20.220.105
-Sending broadcast datagram packet to /10.0.0.255
-Espdu #2 EID=[1,1,2]
- DIS coordinates location=[-2707488.3677768684,-4353666.735244378,3781450.3202754413]
--121.877
-lat, lon:36.595517, -121.877
-DIS coord:-2707492.9269245286, -4353663.899966802, 3781450.3202754413
-Sending broadcast datagram packet to /127.255.255.255
-Sending broadcast datagram packet to /172.20.220.105
-Sending broadcast datagram packet to /10.0.0.255
-Espdu #3 EID=[1,1,2]
- DIS coordinates location=[-2707492.9269245286,-4353663.899966802,3781450.3202754413]
--121.87693999999999
-lat, lon:36.595517, -121.87693999999999
-DIS coord:-2707488.3677768684, -4353666.735244378, 3781450.3202754413
-Sending broadcast datagram packet to /127.255.255.255
-Sending broadcast datagram packet to /172.20.220.105
-Sending broadcast datagram packet to /10.0.0.255
-Espdu #4 EID=[1,1,2]
- DIS coordinates location=[-2707488.3677768684,-4353666.735244378,3781450.3202754413]
-BUILD SUCCESSFUL (total time: 7 seconds)
-
-===================================================
-run:
-DisExamples.EspduReceiver started...
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
-Bundle size is 1
-got PDU of type: edu.nps.moves.dis.FirePdu
-
-===================================================
-
+Invocation instructions:
+1. run/debug EspduReceiver.java (since sender does not block, must first be ready to listen)
+2. run/debug EspduSender.java
+
+Program responses for sender and receiver:
+
+===================================================
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis4Examples/EspduSender.java -Drun.class=OpenDis4Examples.EspduSender run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+OpenDis4Examples.EspduSender started... send 5 ESPDUs, initial index=0
+Sending 5 ESPDU packets to /239.1.2.3
+-121.87693999999999
+lat, lon:36.595517, -121.87693999999999
+DIS coord:-2707488.3677768684, -4353666.735244378, 3781450.3202754413
+Sending broadcast datagram packet to /127.255.255.255
+Sending broadcast datagram packet to /172.23.143.255
+Sending broadcast datagram packet to /172.16.0.255
+Sending broadcast datagram packet to /172.20.209.219
+Espdu #0 EID=[1,1,2]
+ DIS coordinates location=[-2707488.3677768684,-4353666.735244378,3781450.3202754413]
+-121.877
+lat, lon:36.595517, -121.877
+DIS coord:-2707492.9269245286, -4353663.899966802, 3781450.3202754413
+Sending broadcast datagram packet to /127.255.255.255
+Sending broadcast datagram packet to /172.23.143.255
+Sending broadcast datagram packet to /172.16.0.255
+Sending broadcast datagram packet to /172.20.209.219
+Espdu #1 EID=[1,1,2]
+ DIS coordinates location=[-2707492.9269245286,-4353663.899966802,3781450.3202754413]
+-121.87693999999999
+lat, lon:36.595517, -121.87693999999999
+DIS coord:-2707488.3677768684, -4353666.735244378, 3781450.3202754413
+Sending broadcast datagram packet to /127.255.255.255
+Sending broadcast datagram packet to /172.23.143.255
+Sending broadcast datagram packet to /172.16.0.255
+Sending broadcast datagram packet to /172.20.209.219
+Espdu #2 EID=[1,1,2]
+ DIS coordinates location=[-2707488.3677768684,-4353666.735244378,3781450.3202754413]
+-121.877
+lat, lon:36.595517, -121.877
+DIS coord:-2707492.9269245286, -4353663.899966802, 3781450.3202754413
+Sending broadcast datagram packet to /127.255.255.255
+Sending broadcast datagram packet to /172.23.143.255
+Sending broadcast datagram packet to /172.16.0.255
+Sending broadcast datagram packet to /172.20.209.219
+Espdu #3 EID=[1,1,2]
+ DIS coordinates location=[-2707492.9269245286,-4353663.899966802,3781450.3202754413]
+-121.87693999999999
+lat, lon:36.595517, -121.87693999999999
+DIS coord:-2707488.3677768684, -4353666.735244378, 3781450.3202754413
+Sending broadcast datagram packet to /127.255.255.255
+Sending broadcast datagram packet to /172.23.143.255
+Sending broadcast datagram packet to /172.16.0.255
+Sending broadcast datagram packet to /172.20.209.219
+Espdu #4 EID=[1,1,2]
+ DIS coordinates location=[-2707488.3677768684,-4353666.735244378,3781450.3202754413]
+BUILD SUCCESSFUL (total time: 12 seconds)
+
+===================================================
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis4Examples/EspduReceiver.java -Drun.class=OpenDis4Examples.EspduReceiver run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+OpenDis4Examples.EspduReceiver started...
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.EntityStatePdu EID:[1, 1, 2]  Location in DIS coordinates: [-2707488.3677768684, -4353666.735244378, 3781450.3202754413]
+Bundle size is 1
+got PDU of type: edu.nps.moves.dis.FirePdu
+
+===================================================
+
diff --git a/examples/src/OpenDis4Examples/PduReceiver.java b/examples/src/OpenDis4Examples/PduReceiver.java
index 10075dc020ed5c097b57e963c698d173a1e4e66a..b6c3cadf6d925887c30e8d898a5ab5364adcc3e6 100644
--- a/examples/src/OpenDis4Examples/PduReceiver.java
+++ b/examples/src/OpenDis4Examples/PduReceiver.java
@@ -31,7 +31,13 @@ public class PduReceiver
 			System.out.println("OpenDis4Examples.PduReceiver started...");
             socket  = new MulticastSocket  (MULTICAST_PORT);
             address = InetAddress.getByName(MULTICAST_GROUP);
-            socket.joinGroup(address);
+//          socket.joinGroup(address); // deprecated
+            // =======================================================================
+            // new approach using interface
+            NetworkInterface networkInterface = NetworkInterface.getByInetAddress(address);
+            SocketAddress localMulticastSocketAddress = new InetSocketAddress(address, MULTICAST_PORT);
+            socket.joinGroup(localMulticastSocketAddress, networkInterface);
+            // =======================================================================
             
             factory = new PduFactory();
             
diff --git a/examples/src/OpenDis4Examples/PduReceiverTerminalLog.txt b/examples/src/OpenDis4Examples/PduReceiverTerminalLog.txt
index 7854e72e0fffc75213b3db9adafbdf86e25d7ca3..88dc4affa0a0426ced004f094bcf45c8370b2d19 100644
--- a/examples/src/OpenDis4Examples/PduReceiverTerminalLog.txt
+++ b/examples/src/OpenDis4Examples/PduReceiverTerminalLog.txt
@@ -1,5 +1,12 @@
-run:
-DisExamples.PduReceiver started...
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis4Examples/PduReceiver.java -Drun.class=OpenDis4Examples.PduReceiver run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+OpenDis4Examples.PduReceiver started...
 received DIS PDU: pduType  1 edu.nps.moves.dis.EntityStatePdu, protocolFamily 1 EntityInformationFamilyPdu
 received DIS PDU: pduType  2 edu.nps.moves.dis.FirePdu, protocolFamily 2 WarfareFamilyPdu
 received DIS PDU: pduType  3 edu.nps.moves.dis.DetonationPdu, protocolFamily 2 WarfareFamilyPdu
diff --git a/examples/src/OpenDis4Examples/PduSender.java b/examples/src/OpenDis4Examples/PduSender.java
index eac0ae10ee8113939d6c9cc263b22db241eb5ca8..601d7116e027b63c5edd961a26309eaaebe68071 100644
--- a/examples/src/OpenDis4Examples/PduSender.java
+++ b/examples/src/OpenDis4Examples/PduSender.java
@@ -1,207 +1,215 @@
-package OpenDis4Examples;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis.*;
-import edu.nps.moves.disenum.*;
-import edu.nps.moves.examples.ClassNameComparator;
-
-/**
- * This is an example that sends many/most types of PDUs. Useful for testing standards
- * compliance or getting a full set of PDUs. It also writes the generated PDUs to an XML file.
- * Adapted from OpenDIS library example package edu.nps.moves.examples
- *
- * @author DMcG
- * @version $Id:$
- */
-public class PduSender
-{
-    /** Default multicast group address we send on.
-      * @see <a href="https://en.wikipedia.org/wiki/Multicast_address">https://en.wikipedia.org/wiki/Multicast_address</a> */
-    private static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-	
-    /** Default multicast port used, matches Wireshark DIS capture default
-      * @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
-    private static final int    DEFAULT_MULTICAST_PORT    = 3000;
-	
-    private int port;
-    InetAddress multicastAddress;
-
-    /** Object constructor
-     * @param port port of interest
-     * @param multicast address of interest */
-    public PduSender(int port, String multicast) {
-        try
-		{
-            this.port = port;
-            multicastAddress = InetAddress.getByName(multicast);
-            if (!multicastAddress.isMulticastAddress())
-			{
-                System.out.println("Not a multicast address: " + multicast);
-            }
-        } 
-		catch (UnknownHostException e) {
-            System.out.println("Unable to open socket: " + e);
-        }
-    }
-
-    /** Begin operations */
-    public void run()
-	{
-		System.out.println("OpenDis4Examples.PduSender started...");
-        try {
-            List<Pdu> generatedPdusList = new ArrayList<>();
-
-            // Loop through all the enumerated PDU types, create a PDU for each type,
-            // add that PDU to generatedPdusList, and send each one
-            for (PduType pdu : PduType.values()) 
-			{
-                Pdu aPdu = null; // edu.​nps.​moves.​dis,PDU superclass for all PDUs, 
-
-                switch (pdu) // using enumeration values from edu.nps.moves.disenum.*
-				{
-                    case ENTITY_STATE:
-                        aPdu = new EntityStatePdu();
-						EntityStatePdu espdu = (EntityStatePdu) aPdu;
-						Marking marking = new Marking ();
-						marking.setCharactersString("PduSender"); // 11 characters max
-						espdu.setMarking(marking);
-						Vector3Double espduLocation = new Vector3Double();
-						espduLocation.setX(1.0);
-						espduLocation.setY(2.0);
-						espduLocation.setZ(3.0);
-						espdu.setEntityLocation(espduLocation);
-						// it is important to identify questions as you think of them
-						// TODO how to set azimuth, i.e. course direction over ground?
-                        break;
-                        
-                    case COMMENT:
-                        aPdu = new CommentPdu();
-						CommentPdu    newCommentPdu = (CommentPdu)aPdu;
-						VariableDatum newVariableDatum = new VariableDatum();
-						// etc. see Garrett and Pete's code
-                        break;
-
-                    case FIRE:
-                        aPdu = new FirePdu();
-                        break;
-
-                    case DETONATION:
-                        aPdu = new DetonationPdu();
-                        break;
-
-                    case COLLISION:
-                        aPdu = new CollisionPdu();
-                        break;
-
-                    case SERVICE_REQUEST:
-                        aPdu = new ServiceRequestPdu();
-                        break;
-
-                    case RESUPPLY_OFFER:
-                        aPdu = new ResupplyOfferPdu();
-                        break;
-
-                    case RESUPPLY_RECEIVED:
-                        aPdu = new ResupplyReceivedPdu();
-                        break;
-
-                    case RESUPPLY_CANCEL:
-                        aPdu = new ResupplyCancelPdu();
-                        break;
-
-                    case REPAIR_COMPLETE:
-                        aPdu = new RepairCompletePdu();
-                        break;
-
-                    case REPAIR_RESPONSE:
-                        aPdu = new RepairResponsePdu();
-                        break;
-
-                    case CREATE_ENTITY:
-                        aPdu = new CreateEntityPdu();
-                        break;
-
-                    case REMOVE_ENTITY:
-                        aPdu = new RemoveEntityPdu();
-                        break;
-
-                    case START_RESUME:
-                        aPdu = new StartResumePdu();
-                        break;
-
-                    case STOP_FREEZE:
-                        aPdu = new StopFreezePdu();
-                        break;
-
-                    case ACKNOWLEDGE:
-                        aPdu = new AcknowledgePdu();
-                        break;
-
-                    case ACTION_REQUEST:
-                        aPdu = new ActionRequestPdu();
-                        break;
-
-                    default:
-                        System.out.print("PDU of type " + pdu + " not supported, created or sent ");
-                        System.out.println();
-                }
-                if (aPdu != null)
-				{
-                    generatedPdusList.add(aPdu);
-                }
-            }
-
-            // Sort the created PDUs by class name, if desired
-//            Collections.sort(generatedPdusList, new ClassNameComparator());
-
-            System.out.println("Send the " + generatedPdusList.size() + " PDUs we created...");
-
-            // Send the PDUs we created
-            InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-            MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-            socket.joinGroup(localMulticastAddress);
-
-            for (int idx = 0; idx < generatedPdusList.size(); idx++)
-			{
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                DataOutputStream dos = new DataOutputStream(baos);
-                byte[] buffer;
-
-                Pdu aPdu = generatedPdusList.get(idx);
-                aPdu.marshal(dos);
-
-                buffer = baos.toByteArray();
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-                socket.send(packet);
-                System.out.println("Sent PDU of type " + aPdu.getClass().getName());
-            }
-            // write the PDUs out to an XML file.
-            //PduContainer container = new PduContainer();
-            //container.setPdus(generatedPdus);
-            //container.marshallToXml("examplePdus.xml");
-        } catch (IOException e)
-		{
-            System.out.println(e);
-        }
-    }
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String args[])
-	{
-        if (args.length == 2) {
-            PduSender sender = new PduSender(Integer.parseInt(args[0]), args[1]);
-            sender.run();
-        } else {
-            System.out.println("Usage:   PduSender <port> <multicast group>");
-            System.out.println("Default: PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-            PduSender sender = new  PduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
-            sender.run();
-        }
-    }
-}
+package OpenDis4Examples;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis.*;
+import edu.nps.moves.disenum.*;
+import edu.nps.moves.examples.ClassNameComparator;
+
+/**
+ * This is an example that sends many/most types of PDUs. Useful for testing standards
+ * compliance or getting a full set of PDUs. It also writes the generated PDUs to an XML file.
+ * Adapted from OpenDIS library example package edu.nps.moves.examples
+ *
+ * @author DMcG
+ * @version $Id:$
+ */
+public class PduSender
+{
+    /** Default multicast group address we send on.
+      * @see <a href="https://en.wikipedia.org/wiki/Multicast_address">https://en.wikipedia.org/wiki/Multicast_address</a> */
+    private static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+	
+    /** Default multicast port used, matches Wireshark DIS capture default
+      * @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
+    private static final int    DEFAULT_MULTICAST_PORT    = 3000;
+	
+    private int port;
+    InetAddress multicastAddress;
+
+    /** Object constructor
+     * @param port port of interest
+     * @param multicast address of interest */
+    public PduSender(int port, String multicast) {
+        try
+		{
+            this.port = port;
+            multicastAddress = InetAddress.getByName(multicast);
+            if (!multicastAddress.isMulticastAddress())
+			{
+                System.out.println("Not a multicast address: " + multicast);
+            }
+        } 
+		catch (UnknownHostException e) {
+            System.out.println("Unable to open socket: " + e);
+        }
+    }
+
+    /** Begin operations */
+    public void run()
+	{
+		System.out.println("OpenDis4Examples.PduSender started...");
+        try {
+            List<Pdu> generatedPdusList = new ArrayList<>();
+
+            // Loop through all the enumerated PDU types, create a PDU for each type,
+            // add that PDU to generatedPdusList, and send each one
+            for (PduType pdu : PduType.values()) 
+			{
+                Pdu aPdu = null; // edu.​nps.​moves.​dis,PDU superclass for all PDUs, 
+
+                switch (pdu) // using enumeration values from edu.nps.moves.disenum.*
+				{
+                    case ENTITY_STATE:
+                        aPdu = new EntityStatePdu();
+						EntityStatePdu espdu = (EntityStatePdu) aPdu;
+						Marking marking = new Marking ();
+						marking.setCharactersString("PduSender"); // 11 characters max
+						espdu.setMarking(marking);
+						Vector3Double espduLocation = new Vector3Double();
+						espduLocation.setX(1.0);
+						espduLocation.setY(2.0);
+						espduLocation.setZ(3.0);
+						espdu.setEntityLocation(espduLocation);
+						// it is important to identify questions as you think of them
+						// TODO how to set azimuth, i.e. course direction over ground?
+                        break;
+                        
+                    case COMMENT:
+                        aPdu = new CommentPdu();
+						CommentPdu    newCommentPdu = (CommentPdu)aPdu;
+						VariableDatum newVariableDatum = new VariableDatum();
+						// etc. see Garrett and Pete's code
+                        break;
+
+                    case FIRE:
+                        aPdu = new FirePdu();
+                        break;
+
+                    case DETONATION:
+                        aPdu = new DetonationPdu();
+                        break;
+
+                    case COLLISION:
+                        aPdu = new CollisionPdu();
+                        break;
+
+                    case SERVICE_REQUEST:
+                        aPdu = new ServiceRequestPdu();
+                        break;
+
+                    case RESUPPLY_OFFER:
+                        aPdu = new ResupplyOfferPdu();
+                        break;
+
+                    case RESUPPLY_RECEIVED:
+                        aPdu = new ResupplyReceivedPdu();
+                        break;
+
+                    case RESUPPLY_CANCEL:
+                        aPdu = new ResupplyCancelPdu();
+                        break;
+
+                    case REPAIR_COMPLETE:
+                        aPdu = new RepairCompletePdu();
+                        break;
+
+                    case REPAIR_RESPONSE:
+                        aPdu = new RepairResponsePdu();
+                        break;
+
+                    case CREATE_ENTITY:
+                        aPdu = new CreateEntityPdu();
+                        break;
+
+                    case REMOVE_ENTITY:
+                        aPdu = new RemoveEntityPdu();
+                        break;
+
+                    case START_RESUME:
+                        aPdu = new StartResumePdu();
+                        break;
+
+                    case STOP_FREEZE:
+                        aPdu = new StopFreezePdu();
+                        break;
+
+                    case ACKNOWLEDGE:
+                        aPdu = new AcknowledgePdu();
+                        break;
+
+                    case ACTION_REQUEST:
+                        aPdu = new ActionRequestPdu();
+                        break;
+
+                    default:
+                        System.out.print("PDU of type " + pdu + " not supported, created or sent ");
+                        System.out.println();
+                }
+                if (aPdu != null)
+				{
+                    generatedPdusList.add(aPdu);
+                }
+            }
+
+            // Sort the created PDUs by class name, if desired
+//            Collections.sort(generatedPdusList, new ClassNameComparator());
+
+            System.out.println("Send the " + generatedPdusList.size() + " PDUs we created...");
+
+            // Send the PDUs we created
+            InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+            MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+//          socket.joinGroup(localMulticastAddress); // deprecated, TODO select correct NetworkInterface
+            // =======================================================================
+            // updated approach using NetworkInterface
+            NetworkInterface networkInterface = NetworkInterface.getByInetAddress(localMulticastAddress);
+            if (networkInterface != null)
+                System.out.println("networkInterface=" + networkInterface.getDisplayName()); // typically null if loopback
+            SocketAddress localMulticastSocketAddress = new InetSocketAddress(localMulticastAddress, DEFAULT_MULTICAST_PORT);
+            socket.joinGroup(localMulticastSocketAddress, networkInterface);
+            // =======================================================================
+
+            for (int idx = 0; idx < generatedPdusList.size(); idx++)
+			{
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                DataOutputStream dos = new DataOutputStream(baos);
+                byte[] buffer;
+
+                Pdu aPdu = generatedPdusList.get(idx);
+                aPdu.marshal(dos);
+
+                buffer = baos.toByteArray();
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+                socket.send(packet);
+                System.out.println("Sent PDU of type " + aPdu.getClass().getName());
+            }
+            // write the PDUs out to an XML file.
+            //PduContainer container = new PduContainer();
+            //container.setPdus(generatedPdus);
+            //container.marshallToXml("examplePdus.xml");
+        } catch (IOException e)
+		{
+            System.out.println(e);
+        }
+    }
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String args[])
+	{
+        if (args.length == 2) {
+            PduSender sender = new PduSender(Integer.parseInt(args[0]), args[1]);
+            sender.run();
+        } else {
+            System.out.println("Usage:   PduSender <port> <multicast group>");
+            System.out.println("Default: PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
+            PduSender sender = new  PduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
+            sender.run();
+        }
+    }
+}
diff --git a/examples/src/OpenDis4Examples/PduSenderTerminalLog.txt b/examples/src/OpenDis4Examples/PduSenderTerminalLog.txt
index d2b471978fc81239338f9f3b586882d1e8eb5c6b..e9d69b91e924154dabf6132a952fe563d9fa7b8c 100644
--- a/examples/src/OpenDis4Examples/PduSenderTerminalLog.txt
+++ b/examples/src/OpenDis4Examples/PduSenderTerminalLog.txt
@@ -1,80 +1,81 @@
-Invocation instructions:
-1. run/debug PduSender.java
-
-Program response:
-
-===================================================
-run:
-Usage:   PduSender <port> <multicast group>
-Default: PduSender  3000   239.1.2.3
-DisExamples.PduSender started...
-PDU of type OTHER not supported, created or sent 
-PDU of type ACTION_RESPONSE not supported, created or sent 
-PDU of type DATA_QUERY not supported, created or sent 
-PDU of type SET_DATA not supported, created or sent 
-PDU of type DATA not supported, created or sent 
-PDU of type EVENT_REPORT not supported, created or sent 
-PDU of type ELECTROMAGNETIC_EMISSION not supported, created or sent 
-PDU of type DESIGNATOR not supported, created or sent 
-PDU of type TRANSMITTER not supported, created or sent 
-PDU of type SIGNAL not supported, created or sent 
-PDU of type RECEIVER not supported, created or sent 
-PDU of type IFF_ATC_NAVAIDS not supported, created or sent 
-PDU of type UNDERWATER_ACOUSTIC not supported, created or sent 
-PDU of type SUPPLEMENTAL_EMISSION_ENTITY_STATE not supported, created or sent 
-PDU of type INTERCOM_SIGNAL not supported, created or sent 
-PDU of type INTERCOM_CONTROL not supported, created or sent 
-PDU of type AGGREGATE_STATE not supported, created or sent 
-PDU of type ISGROUPOF not supported, created or sent 
-PDU of type TRANSFER_CONTROL not supported, created or sent 
-PDU of type ISPARTOF not supported, created or sent 
-PDU of type MINEFIELD_STATE not supported, created or sent 
-PDU of type MINEFIELD_QUERY not supported, created or sent 
-PDU of type MINEFIELD_DATA not supported, created or sent 
-PDU of type MINEFIELD_RESPONSE_NAK not supported, created or sent 
-PDU of type ENVIRONMENTAL_PROCESS not supported, created or sent 
-PDU of type GRIDDED_DATA not supported, created or sent 
-PDU of type POINT_OBJECT_STATE not supported, created or sent 
-PDU of type LINEAR_OBJECT_STATE not supported, created or sent 
-PDU of type AREAL_OBJECT_STATE not supported, created or sent 
-PDU of type TSPI not supported, created or sent 
-PDU of type APPEARANCE not supported, created or sent 
-PDU of type ARTICULATED_PARTS not supported, created or sent 
-PDU of type LE_FIRE not supported, created or sent 
-PDU of type LE_DETONATION not supported, created or sent 
-PDU of type CREATE_ENTITY_R not supported, created or sent 
-PDU of type REMOVE_ENTITY_R not supported, created or sent 
-PDU of type START_RESUME_R not supported, created or sent 
-PDU of type STOP_FREEZE_R not supported, created or sent 
-PDU of type ACKNOWLEDGE_R not supported, created or sent 
-PDU of type ACTION_REQUEST_R not supported, created or sent 
-PDU of type ACTION_RESPONSE_R not supported, created or sent 
-PDU of type DATA_QUERY_R not supported, created or sent 
-PDU of type SET_DATA_R not supported, created or sent 
-PDU of type DATA_R not supported, created or sent 
-PDU of type EVENT_REPORT_R not supported, created or sent 
-PDU of type COMMENT_R not supported, created or sent 
-PDU of type RECORD_R not supported, created or sent 
-PDU of type SET_RECORD_R not supported, created or sent 
-PDU of type RECORD_QUERY_R not supported, created or sent 
-PDU of type COLLISION_ELASTIC not supported, created or sent 
-PDU of type ENTITY_STATE_UPDATE not supported, created or sent 
-Send the 17 PDUs we created...
-Sent PDU of type edu.nps.moves.dis.EntityStatePdu
-Sent PDU of type edu.nps.moves.dis.FirePdu
-Sent PDU of type edu.nps.moves.dis.DetonationPdu
-Sent PDU of type edu.nps.moves.dis.CollisionPdu
-Sent PDU of type edu.nps.moves.dis.ServiceRequestPdu
-Sent PDU of type edu.nps.moves.dis.ResupplyOfferPdu
-Sent PDU of type edu.nps.moves.dis.ResupplyReceivedPdu
-Sent PDU of type edu.nps.moves.dis.ResupplyCancelPdu
-Sent PDU of type edu.nps.moves.dis.RepairCompletePdu
-Sent PDU of type edu.nps.moves.dis.RepairResponsePdu
-Sent PDU of type edu.nps.moves.dis.CreateEntityPdu
-Sent PDU of type edu.nps.moves.dis.RemoveEntityPdu
-Sent PDU of type edu.nps.moves.dis.StartResumePdu
-Sent PDU of type edu.nps.moves.dis.StopFreezePdu
-Sent PDU of type edu.nps.moves.dis.AcknowledgePdu
-Sent PDU of type edu.nps.moves.dis.ActionRequestPdu
-Sent PDU of type edu.nps.moves.dis.CommentPdu
-BUILD SUCCESSFUL (total time: 1 second)
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis4Examples/PduSender.java -Drun.class=OpenDis4Examples.PduSender run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+Usage:   PduSender <port> <multicast group>
+Default: PduSender  3000   239.1.2.3
+OpenDis4Examples.PduSender started...
+PDU of type OTHER not supported, created or sent 
+PDU of type ACTION_RESPONSE not supported, created or sent 
+PDU of type DATA_QUERY not supported, created or sent 
+PDU of type SET_DATA not supported, created or sent 
+PDU of type DATA not supported, created or sent 
+PDU of type EVENT_REPORT not supported, created or sent 
+PDU of type ELECTROMAGNETIC_EMISSION not supported, created or sent 
+PDU of type DESIGNATOR not supported, created or sent 
+PDU of type TRANSMITTER not supported, created or sent 
+PDU of type SIGNAL not supported, created or sent 
+PDU of type RECEIVER not supported, created or sent 
+PDU of type IFF_ATC_NAVAIDS not supported, created or sent 
+PDU of type UNDERWATER_ACOUSTIC not supported, created or sent 
+PDU of type SUPPLEMENTAL_EMISSION_ENTITY_STATE not supported, created or sent 
+PDU of type INTERCOM_SIGNAL not supported, created or sent 
+PDU of type INTERCOM_CONTROL not supported, created or sent 
+PDU of type AGGREGATE_STATE not supported, created or sent 
+PDU of type ISGROUPOF not supported, created or sent 
+PDU of type TRANSFER_CONTROL not supported, created or sent 
+PDU of type ISPARTOF not supported, created or sent 
+PDU of type MINEFIELD_STATE not supported, created or sent 
+PDU of type MINEFIELD_QUERY not supported, created or sent 
+PDU of type MINEFIELD_DATA not supported, created or sent 
+PDU of type MINEFIELD_RESPONSE_NAK not supported, created or sent 
+PDU of type ENVIRONMENTAL_PROCESS not supported, created or sent 
+PDU of type GRIDDED_DATA not supported, created or sent 
+PDU of type POINT_OBJECT_STATE not supported, created or sent 
+PDU of type LINEAR_OBJECT_STATE not supported, created or sent 
+PDU of type AREAL_OBJECT_STATE not supported, created or sent 
+PDU of type TSPI not supported, created or sent 
+PDU of type APPEARANCE not supported, created or sent 
+PDU of type ARTICULATED_PARTS not supported, created or sent 
+PDU of type LE_FIRE not supported, created or sent 
+PDU of type LE_DETONATION not supported, created or sent 
+PDU of type CREATE_ENTITY_R not supported, created or sent 
+PDU of type REMOVE_ENTITY_R not supported, created or sent 
+PDU of type START_RESUME_R not supported, created or sent 
+PDU of type STOP_FREEZE_R not supported, created or sent 
+PDU of type ACKNOWLEDGE_R not supported, created or sent 
+PDU of type ACTION_REQUEST_R not supported, created or sent 
+PDU of type ACTION_RESPONSE_R not supported, created or sent 
+PDU of type DATA_QUERY_R not supported, created or sent 
+PDU of type SET_DATA_R not supported, created or sent 
+PDU of type DATA_R not supported, created or sent 
+PDU of type EVENT_REPORT_R not supported, created or sent 
+PDU of type COMMENT_R not supported, created or sent 
+PDU of type RECORD_R not supported, created or sent 
+PDU of type SET_RECORD_R not supported, created or sent 
+PDU of type RECORD_QUERY_R not supported, created or sent 
+PDU of type COLLISION_ELASTIC not supported, created or sent 
+PDU of type ENTITY_STATE_UPDATE not supported, created or sent 
+Send the 17 PDUs we created...
+Sent PDU of type edu.nps.moves.dis.EntityStatePdu
+Sent PDU of type edu.nps.moves.dis.FirePdu
+Sent PDU of type edu.nps.moves.dis.DetonationPdu
+Sent PDU of type edu.nps.moves.dis.CollisionPdu
+Sent PDU of type edu.nps.moves.dis.ServiceRequestPdu
+Sent PDU of type edu.nps.moves.dis.ResupplyOfferPdu
+Sent PDU of type edu.nps.moves.dis.ResupplyReceivedPdu
+Sent PDU of type edu.nps.moves.dis.ResupplyCancelPdu
+Sent PDU of type edu.nps.moves.dis.RepairCompletePdu
+Sent PDU of type edu.nps.moves.dis.RepairResponsePdu
+Sent PDU of type edu.nps.moves.dis.CreateEntityPdu
+Sent PDU of type edu.nps.moves.dis.RemoveEntityPdu
+Sent PDU of type edu.nps.moves.dis.StartResumePdu
+Sent PDU of type edu.nps.moves.dis.StopFreezePdu
+Sent PDU of type edu.nps.moves.dis.AcknowledgePdu
+Sent PDU of type edu.nps.moves.dis.ActionRequestPdu
+Sent PDU of type edu.nps.moves.dis.CommentPdu
+BUILD SUCCESSFUL (total time: 2 seconds)
diff --git a/examples/src/OpenDis4Examples/PduSenderWireshark.png b/examples/src/OpenDis4Examples/PduSenderWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..2991771d646657e5803b2aa58758a417296ba26b
Binary files /dev/null and b/examples/src/OpenDis4Examples/PduSenderWireshark.png differ
diff --git a/examples/src/OpenDis4Examples/README.md b/examples/src/OpenDis4Examples/README.md
index 35d1b42415402055ea9742a9ee2216b4b7adc100..538a10cd70b2988ff1a85cc7e6ca061d4696c953 100644
--- a/examples/src/OpenDis4Examples/README.md
+++ b/examples/src/OpenDis4Examples/README.md
@@ -1,6 +1,7 @@
 # DIS Protocol Examples using Open-DIS-4 Java Library
 
-*Note:* these examples demonstrate an earlier version of Open-DIS-Java Library.  Please work with current version [OpenDis7Examples](../OpenDis7Examples) instead.
+*Note:* these archived examples demonstrate an earlier version of Open-DIS-Java Library.
+Please work with current version [OpenDis7Examples](../OpenDis7Examples) instead.
 
 ---
 
diff --git a/examples/src/OpenDis7Examples/AllPduReceiver.java b/examples/src/OpenDis7Examples/AllPduReceiver.java
index d413c2779a5f3f2662701d15a45088f191736662..f51eccc1de74f8a9d8d6892552462e5f5d159595 100644
--- a/examples/src/OpenDis7Examples/AllPduReceiver.java
+++ b/examples/src/OpenDis7Examples/AllPduReceiver.java
@@ -23,99 +23,106 @@ public class AllPduReceiver
 	/** Output prefix to identify this class */
     private final static String TRACE_PREFIX = "[" + AllPduReceiver.class.getName() + "] ";
 
-  /**
+    /**
      * Program invocation, execution starts here
      * @param args command-line arguments
      */
     public static void main(String args[])
-  {
-    MulticastSocket multicastSocket;
-    InetAddress     internetAddress;
-    PduFactory      pduFactory = new PduFactory();
+    {
+        MulticastSocket multicastSocket;
+        InetAddress     multicastInetAddress;
+        PduFactory      pduFactory = new PduFactory();
 
-    System.out.println(TRACE_PREFIX + "started...");
+        System.out.println(TRACE_PREFIX + "started...");
 
-    try {
-      if (args.length == 2)
-      {
-        internetAddress = InetAddress.getByName(args[0]);
-        multicastSocket  = new MulticastSocket(Integer.parseInt(args[1]));
-      }
-      else
-      {
-        System.out.println("Usage:   AllPduReceiver <multicast group> <port>");
-        System.out.println("Default: AllPduReceiver     " + DEFAULT_MULTICAST_ADDRESS + "      " + DEFAULT_MULTICAST_PORT);
-        multicastSocket  = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-        internetAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-      }
-      System.out.println("To quit: stop or kill this process");
-      multicastSocket.joinGroup(internetAddress);
+        try {
+            if (args.length == 2)
+            {
+                multicastInetAddress = InetAddress.getByName(args[0]);
+                multicastSocket  = new MulticastSocket(Integer.parseInt(args[1]));
+            }
+            else
+            {
+                System.out.println("Usage:   AllPduReceiver <multicast group> <port>");
+                System.out.println("Default: AllPduReceiver     " + DEFAULT_MULTICAST_ADDRESS + "      " + DEFAULT_MULTICAST_PORT);
+                multicastSocket  = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+                multicastInetAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+            }
+            System.out.println("To quit: stop or kill this process");
+    //      multicastSocket.joinGroup(multicastInetAddress); // deprecated
+
+            // =======================================================================
+            // new approach using interface
+            NetworkInterface networkInterface = NetworkInterface.getByInetAddress(multicastInetAddress);
+            SocketAddress localMulticastSocketAddress = new InetSocketAddress(multicastInetAddress, DEFAULT_MULTICAST_PORT);
+            multicastSocket.joinGroup(localMulticastSocketAddress, networkInterface);
+            // =======================================================================
 
-      byte buffer[]  = new byte[1500]; // typical MTU size in bytes
-        
-      while (true) // Loop infinitely, receiving datagrams
-      {
-        Arrays.fill(buffer, (byte)0);
-        DatagramPacket datagramPacket = new DatagramPacket(buffer, buffer.length); // reset packet each time
-        multicastSocket.receive(datagramPacket);  // process blocks here until receipt of network packet with PDU
-//        datagramPacket.setLength(buffer.length);
+            byte buffer[]  = new byte[1500]; // typical MTU size in bytes
 
-//      Pdu pdu = pduFactory.createPdu(packet.getData()); // packet.getData() returns byte[] array data buffer
+            while (true) // Loop indefinitely, receiving datagrams
+            {
+                Arrays.fill(buffer, (byte)0);
+                DatagramPacket datagramPacket = new DatagramPacket(buffer, buffer.length); // reset packet each time
+                multicastSocket.receive(datagramPacket);  // process blocks here until receipt of network packet with PDU
+        //        datagramPacket.setLength(buffer.length);
 
-        List<Pdu> pduBundle = pduFactory.getPdusFromBundle(datagramPacket.getData(),datagramPacket.getLength());
-        
-        if      (pduBundle.isEmpty())
-             System.out.println("Received PDU bundle is empty, packet.getData().length=" + datagramPacket.getData().length + ", error...");
-//      else if (pduBundle.size() == 1)// common case, typically unremarkable
-//           System.out.println("Received PDU bundle size is " + pduBundle.size());
-        else if (pduBundle.size() > 1)
-             System.out.println("Received PDU bundle size is " + pduBundle.size());
+        //      Pdu pdu = pduFactory.createPdu(packet.getData()); // packet.getData() returns byte[] array data buffer
 
-        for (Pdu nextPdu : pduBundle) // iterator loop through PDU bundle
-        {
-            DisPduType currentPduType       = nextPdu.getPduType(); //short  currentPduType = nextPdu.getPduType();
-            String     currentPduTypeName   = nextPdu.getClass().getName();
-            String     currentPduFamilyName = nextPdu.getClass().getSuperclass().getSimpleName();
-            DISProtocolFamily currentProtocolFamilyID = nextPdu.getProtocolFamily(); //short  currentProtocolFamilyID = nextPdu.getProtocolFamily();
- 
-            StringBuilder message = new StringBuilder();
-            message.append(DisTime.timeStampToString(nextPdu.getTimestamp())).append(" ");
-            message.append("received new DIS PDU ");
-            String currentPduTypePadded     = String.format("%-48s", currentPduType);     // - indicates right padding of whitespace
-            message.append(currentPduTypePadded);
-            // optional, verbose
-//            String currentPduTypeNamePadded = String.format("%-49s", currentPduTypeName); // - indicates right padding of whitespace
-//            message.append(" of type ").append(currentPduTypeNamePadded); // package.class name
-            message.append(" (").append(currentProtocolFamilyID);
-//          message.append(" ").append(currentPduFamilyName); // class name is also available
-            message.append(")");
-            System.out.println(message.toString()); // diagnostic information helps
+                List<Pdu> pduBundle = pduFactory.getPdusFromBundle(datagramPacket.getData(),datagramPacket.getLength());
 
-            // additional message information of interest, if any
-            switch (currentPduType) // using enumeration values from edu.​nps.​moves.​dis7.​enumerations.​DisPduType
-            {
-                case COMMENT:
-                    CommentPdu commentPdu = (CommentPdu)nextPdu; // cast to precise type
-                    ArrayList<VariableDatum> payloadList = (ArrayList)commentPdu.getVariableDatums();
-                    if (!payloadList.isEmpty())
-                        System.out.print  ("   messages: ");
-                    for (VariableDatum variableDatum : payloadList)
+                if      (pduBundle.isEmpty())
+                     System.out.println("Received PDU bundle is empty, packet.getData().length=" + datagramPacket.getData().length + ", error...");
+        //      else if (pduBundle.size() == 1)// common case, typically unremarkable
+        //           System.out.println("Received PDU bundle size is " + pduBundle.size());
+                else if (pduBundle.size() > 1)
+                     System.out.println("Received PDU bundle size is " + pduBundle.size());
+
+                for (Pdu nextPdu : pduBundle) // iterator loop through PDU bundle
+                {
+                    DisPduType currentPduType       = nextPdu.getPduType(); //short  currentPduType = nextPdu.getPduType();
+                    String     currentPduTypeName   = nextPdu.getClass().getName();
+                    String     currentPduFamilyName = nextPdu.getClass().getSuperclass().getSimpleName();
+                    DISProtocolFamily currentProtocolFamilyID = nextPdu.getProtocolFamily(); //short  currentProtocolFamilyID = nextPdu.getProtocolFamily();
+
+                    StringBuilder message = new StringBuilder();
+                    message.append(DisTime.timeStampToString(nextPdu.getTimestamp())).append(" ");
+                    message.append("received new DIS PDU ");
+                    String currentPduTypePadded     = String.format("%-48s", currentPduType);     // - indicates right padding of whitespace
+                    message.append(currentPduTypePadded);
+                    // optional, verbose
+        //            String currentPduTypeNamePadded = String.format("%-49s", currentPduTypeName); // - indicates right padding of whitespace
+        //            message.append(" of type ").append(currentPduTypeNamePadded); // package.class name
+                    message.append(" (").append(currentProtocolFamilyID);
+        //          message.append(" ").append(currentPduFamilyName); // class name is also available
+                    message.append(")");
+                    System.out.println(message.toString()); // diagnostic information helps
+
+                    // additional message information of interest, if any
+                    switch (currentPduType) // using enumeration values from edu.​nps.​moves.​dis7.​enumerations.​DisPduType
                     {
-                        String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
-                        System.out.print  (" \"" + nextComment + "\"");
+                        case COMMENT:
+                            CommentPdu commentPdu = (CommentPdu)nextPdu; // cast to precise type
+                            ArrayList<VariableDatum> payloadList = (ArrayList<VariableDatum>)commentPdu.getVariableDatums();
+                            if (!payloadList.isEmpty())
+                                System.out.print  ("   messages: ");
+                            for (VariableDatum variableDatum : payloadList)
+                            {
+                                String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
+                                System.out.print  (" \"" + nextComment + "\"");
+                            }
+                            System.out.println();
                     }
-                    System.out.println();
+                }
+                pduBundle.clear();
             }
         }
-        pduBundle.clear();
+        catch (IOException e) {
+          System.out.println("Problem with OpenDis7Examples.AllPduReceiver, see exception trace:");
+          System.out.println(e);
+        }
+        finally {
+          System.out.println("OpenDis7Examples.AllPduReceiver complete.");
+        }
       }
-    }
-    catch (IOException e) {
-      System.out.println("Problem with OpenDis7Examples.AllPduReceiver, see exception trace:");
-      System.out.println(e);
-    }
-    finally {
-      System.out.println("OpenDis7Examples.AllPduReceiver complete.");
-    }
-  }
 }
diff --git a/examples/src/OpenDis7Examples/AllPduReceiverLog.txt b/examples/src/OpenDis7Examples/AllPduReceiverLog.txt
index 0c4e6639a433cf4bc18d91a5a6ff079519434629..9c9648192df389ba6f3711046cc6d4b7db904198 100644
--- a/examples/src/OpenDis7Examples/AllPduReceiverLog.txt
+++ b/examples/src/OpenDis7Examples/AllPduReceiverLog.txt
@@ -4,12 +4,6 @@ Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.prope
 deps-jar:
 Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
 Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
-warning: [options] bootstrap class path not set in conjunction with -source 8
-Note: Some input files use or override a deprecated API.
-Note: Recompile with -Xlint:deprecation for details.
-Note: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\src\OpenDis7Examples\AllPduReceiver.java uses unchecked or unsafe operations.
-Note: Recompile with -Xlint:unchecked for details.
-1 warning
 compile-single:
 run-single:
 [OpenDis7Examples.AllPduReceiver] started...
@@ -42,12 +36,8 @@ To quit: stop or kill this process
 16:00:00 received new DIS PDU DisPduType 23 ELECTROMAGNETIC_EMISSION           (DisPduType 6 DISTRIBUTED_EMISSION_REGENERATION)
 16:00:00 received new DIS PDU DisPduType 24 DESIGNATOR                         (DisPduType 6 DISTRIBUTED_EMISSION_REGENERATION)
 16:00:00 received new DIS PDU DisPduType 25 TRANSMITTER                        (DisPduType 4 RADIO_COMMUNICATIONS)
-Jul 19, 2021 1:01:12 PM edu.nps.moves.dis7.utilities.PduFactory createPdu
-SEVERE: unknown pduType=DisPduType 00 OTHER, PduFactory fails
 16:00:00 received new DIS PDU DisPduType 26 SIGNAL                             (DisPduType 4 RADIO_COMMUNICATIONS)
 16:00:00 received new DIS PDU DisPduType 27 RECEIVER                           (DisPduType 4 RADIO_COMMUNICATIONS)
-Jul 19, 2021 1:01:12 PM edu.nps.moves.dis7.utilities.PduFactory createPdu
-SEVERE: unknown pduType=DisPduType 00 OTHER, PduFactory fails
 16:00:00 received new DIS PDU DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE       (DisPduType 6 DISTRIBUTED_EMISSION_REGENERATION)
 16:00:00 received new DIS PDU DisPduType 29 UNDERWATER_ACOUSTIC                (DisPduType 6 DISTRIBUTED_EMISSION_REGENERATION)
 16:00:00 received new DIS PDU DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE (DisPduType 6 DISTRIBUTED_EMISSION_REGENERATION)
@@ -93,4 +83,4 @@ SEVERE: unknown pduType=DisPduType 00 OTHER, PduFactory fails
 16:00:00 received new DIS PDU DisPduType 70 INFORMATION_OPERATIONS_ACTION      (DisPduType 13 INFORMATION_OPERATIONS)
 16:00:00 received new DIS PDU DisPduType 71 INFORMATION_OPERATIONS_REPORT      (DisPduType 13 INFORMATION_OPERATIONS)
 16:00:00 received new DIS PDU DisPduType 72 ATTRIBUTE                          (DisPduType 1 ENTITY_INFORMATION_INTERACTION)
-BUILD STOPPED (total time: 1 minute 16 seconds)
+BUILD STOPPED (total time: 33 seconds)
diff --git a/examples/src/OpenDis7Examples/AllPduSender.java b/examples/src/OpenDis7Examples/AllPduSender.java
index aa4d339e6d0286a6d108ed59b7a9d9494ae2010e..1485b3cba82f3085af5467c3a7f36207834c93d1 100755
--- a/examples/src/OpenDis7Examples/AllPduSender.java
+++ b/examples/src/OpenDis7Examples/AllPduSender.java
@@ -32,7 +32,7 @@ public class AllPduSender
      * Putting any upper limit on # packets sent avoids possibility of non-terminating infinite loops that continue sending packets. */
     private int                SEND_LOOPS_TO_PERFORM = 1;
     
-    private static InetAddress multicastAddress;
+    private static InetAddress multicastInetAddress;
     private static int         port;
 
     /** Object constructor
@@ -43,8 +43,8 @@ public class AllPduSender
         this.port = DEFAULT_MULTICAST_PORT;
         try
 		{
-            multicastAddress = InetAddress.getByName(newMulticastAddress);
-            if (!multicastAddress.isMulticastAddress())
+            multicastInetAddress = InetAddress.getByName(newMulticastAddress);
+            if (!multicastInetAddress.isMulticastAddress())
 			{
                 System.out.println("Not a multicast address: " + newMulticastAddress);
             }
@@ -453,13 +453,24 @@ public class AllPduSender
                 // Send the PDUs we created
                 System.out.println("Send the " + generatedPdusList.size() + " PDUs we created...");
 
-                InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+                // =======================================================================
+                // prior appproach
+//                InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+//                MulticastSocket multicastSocket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+//                if (!localMulticastAddress.isMulticastAddress())
+//                {
+//                    throw new RuntimeException("*** Error: sending to multicast address, but destination address " + localMulticastAddress.toString() + "is not multicast");
+//                }
+//                multicastSocket.joinGroup(localMulticastAddress); // deprecated
+                // =======================================================================
+                // updated approach using NetworkInterface
+                NetworkInterface networkInterface = NetworkInterface.getByInetAddress(multicastInetAddress);
+                if (networkInterface != null)
+                    System.out.println("networkInterface=" + networkInterface.getDisplayName()); // typically null if loopback
+                SocketAddress localMulticastSocketAddress = new InetSocketAddress(multicastInetAddress, DEFAULT_MULTICAST_PORT);
                 MulticastSocket multicastSocket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-                if (!localMulticastAddress.isMulticastAddress())
-                {
-                    throw new RuntimeException("*** Error: sending to multicast address, but destination address " + localMulticastAddress.toString() + "is not multicast");
-                }
-                multicastSocket.joinGroup(localMulticastAddress);
+                multicastSocket.joinGroup(localMulticastSocketAddress, networkInterface);
+                // =======================================================================
 
                 byte[] buffer;
                 Pdu aPdu;
@@ -477,7 +488,7 @@ public class AllPduSender
                         aPdu.marshal(dos); // dos is DataOutputStream connected to ByteArrayOutputStrea
 
                         buffer = baos.toByteArray();
-                        packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+                        packet = new DatagramPacket(buffer, buffer.length, multicastInetAddress, DEFAULT_MULTICAST_PORT);
                         multicastSocket.send(packet);
                         
                         DisPduType disPduType= aPdu.getPduType();
@@ -526,7 +537,7 @@ public class AllPduSender
         if (args.length == 2)
         {
             System.out.println("Usage:   AllPduSender <multicast group> <port>");
-            System.out.println("Actual:  AllPduSender  " + multicastAddress.getHostAddress() + "   " + port);
+            System.out.println("Actual:  AllPduSender  " + multicastInetAddress.getHostAddress() + "   " + port);
             allPduSender = new AllPduSender(args[0], Integer.parseInt(args[1]));
         } 
         else
diff --git a/examples/src/OpenDis7Examples/AllPduSenderLog.txt b/examples/src/OpenDis7Examples/AllPduSenderLog.txt
index 462c5db6274526a32ca08f79da5629ded473acd2..6e4a9f03b4f3b3ed61606c7cdd4a4329045121cb 100644
--- a/examples/src/OpenDis7Examples/AllPduSenderLog.txt
+++ b/examples/src/OpenDis7Examples/AllPduSenderLog.txt
@@ -4,10 +4,6 @@ Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.prope
 deps-jar:
 Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
 Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
-warning: [options] bootstrap class path not set in conjunction with -source 8
-Note: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\src\OpenDis7Examples\AllPduSender.java uses or overrides a deprecated API.
-Note: Recompile with -Xlint:deprecation for details.
-1 warning
 compile-single:
 run-single:
 Usage:   AllPduSender <multicast group> <port>
diff --git a/examples/src/OpenDis7Examples/AllPduSenderWireshark.png b/examples/src/OpenDis7Examples/AllPduSenderWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..41308ac879a6c4820e7221193006d47f724811fc
Binary files /dev/null and b/examples/src/OpenDis7Examples/AllPduSenderWireshark.png differ
diff --git a/examples/src/OpenDis7Examples/AllPduSenderWiresharkCapture.pcapng b/examples/src/OpenDis7Examples/AllPduSenderWiresharkCapture.pcapng
new file mode 100644
index 0000000000000000000000000000000000000000..9f19fb108d4950d9fc61b86d0704754c31784adc
Binary files /dev/null and b/examples/src/OpenDis7Examples/AllPduSenderWiresharkCapture.pcapng differ
diff --git a/examples/src/OpenDis7Examples/EspduReceiver.java b/examples/src/OpenDis7Examples/EspduReceiver.java
index 8aa82cad2955a48c05415f41b89fdba963c77f38..6fd1f1f237e4207e2349a727dd14be3b048e59a8 100755
--- a/examples/src/OpenDis7Examples/EspduReceiver.java
+++ b/examples/src/OpenDis7Examples/EspduReceiver.java
@@ -38,9 +38,9 @@ public class EspduReceiver
      */
     public static void main(String args[])
 	{
-        MulticastSocket socket;
+        MulticastSocket multicastSocket;
+        InetAddress     multicastInetAddress;
         DatagramPacket  packet;
-        InetAddress     address;
         PduFactory      pduFactory = new PduFactory();
         int pduCount = 0;
 
@@ -48,13 +48,19 @@ public class EspduReceiver
 		
         try {
             // Specify the socket to receive data
-            socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+            multicastSocket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
 //          socket.setBroadcast(true);
        
-            address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-            socket.joinGroup(address);
+            multicastInetAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+//          socket.joinGroup(address); // deprecated
+            // =======================================================================
+            // new approach using interface
+            NetworkInterface networkInterface = NetworkInterface.getByInetAddress(multicastInetAddress);
+            SocketAddress localMulticastSocketAddress = new InetSocketAddress(multicastInetAddress, DEFAULT_MULTICAST_PORT);
+            multicastSocket.joinGroup(localMulticastSocketAddress, networkInterface);
+            // =======================================================================
         
-            System.out.println(TRACE_PREFIX + "listening for PDU packets on " + address.getHostAddress() + " port " + DEFAULT_MULTICAST_PORT);
+            System.out.println(TRACE_PREFIX + "listening for PDU packets on " + multicastInetAddress.getHostAddress() + " port " + DEFAULT_MULTICAST_PORT);
             System.out.println("To quit: stop or kill this process");
             System.out.println("===============");
             
@@ -63,7 +69,7 @@ public class EspduReceiver
                 byte buffer[] = new byte[MAX_PDU_SIZE];
                 packet = new DatagramPacket(buffer, buffer.length); // reset packet each time
 
-                socket.receive(packet); // process blocks here until receipt of network packet with PDU
+                multicastSocket.receive(packet); // process blocks here until receipt of network packet with PDU
 
                 List<Pdu> pduBundle = pduFactory.getPdusFromBundle(packet.getData(),packet.getLength());
                 if (pduBundle.size() > 1)
diff --git a/examples/src/OpenDis7Examples/EspduSender.java b/examples/src/OpenDis7Examples/EspduSender.java
index 8909d65c099cfa1be1366075f5dc02b484419b8d..a70a4190c8f42a7debe9aeeae3e63d0ee2499a6a 100644
--- a/examples/src/OpenDis7Examples/EspduSender.java
+++ b/examples/src/OpenDis7Examples/EspduSender.java
@@ -23,7 +23,7 @@ public class EspduSender
 	/**
 	 * Number of complete loops to perform.
      * Putting any upper limit on # packets sent avoids possibility of non-terminating infinite loops that continue sending packets. */
-	public static final int SEND_LOOPS_TO_PERFORM = 1; // 5
+	public static final int SEND_LOOPS_TO_PERFORM = 5; // 5
 
 	/**
 	 * Default multicast group address we send on.
@@ -68,19 +68,19 @@ public class EspduSender
 
         // Default settings. These are used if no system properties are set. 
         // If system properties are passed in, these are overridden later.
-        NetworkMode networkMode = NetworkMode.MULTICAST;
-        InetAddress     address = null; // must be initialized, even if null
-        int                port = DEFAULT_MULTICAST_PORT;
-        MulticastSocket  socket = null; // must be initialized to avoid later error, even if null;
-        EntityStatePdu    espdu = new EntityStatePdu();
-        DisTime         disTime = new DisTime();
+        NetworkMode          networkMode = NetworkMode.MULTICAST;
+        InetAddress multicastInetAddress = null; // must be initialized, even if null
+        int                         port = DEFAULT_MULTICAST_PORT;
+        MulticastSocket           socket = null; // must be initialized to avoid later error, even if null;
+        EntityStatePdu             espdu = new EntityStatePdu();
+        DisTime                  disTime = new DisTime();
 
 		// ICBM coordinates for my office
 		double latitude  =   36.595517;
 		double longitude = -121.877000;
 		try
         {
-			address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+			multicastInetAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
 		}
         catch (UnknownHostException e)
         {
@@ -112,7 +112,7 @@ public class EspduSender
 			// Where we send packets to, the destination IP address
 			if (destinationIpString != null) 
 			{
-				address = InetAddress.getByName(destinationIpString);
+				multicastInetAddress = InetAddress.getByName(destinationIpString);
 			}
 
 			// Type of transport: unicast, broadcast, or multicast
@@ -129,11 +129,20 @@ public class EspduSender
 				else if (networkModeString.equalsIgnoreCase("multicast"))
                 {
 					networkMode = NetworkMode.MULTICAST;
-					if (!address.isMulticastAddress())
+					if (!multicastInetAddress.isMulticastAddress())
 					{
-						throw new RuntimeException("*** Error: sending to multicast address, but destination address " + address.toString() + "is not multicast");
+						throw new RuntimeException("*** Error: sending to multicast address, but destination address " + multicastInetAddress.toString() + "is not multicast");
 					}
-					socket.joinGroup(address); // TODO select correct NetworkInterface
+//					socket.joinGroup(multicastInetAddress); // deprecated, TODO select correct NetworkInterface
+                    // =======================================================================
+                    // updated approach using NetworkInterface
+                    NetworkInterface networkInterface = NetworkInterface.getByInetAddress(multicastInetAddress);
+                    if (networkInterface != null)
+                        System.out.println("networkInterface=" + networkInterface.getDisplayName()); // typically null if loopback
+                    SocketAddress localMulticastSocketAddress = new InetSocketAddress(multicastInetAddress, DEFAULT_MULTICAST_PORT);
+                    MulticastSocket multicastSocket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+                    multicastSocket.joinGroup(localMulticastSocketAddress, networkInterface);
+                    // =======================================================================
 				}
 			} // end networkModeString
             else if (networkMode == NetworkMode.MULTICAST)
@@ -156,7 +165,7 @@ public class EspduSender
 			System.exit(-1); // outta here
 		}
         System.out.println(TRACE_PREFIX + " sending " + networkModeString + " ESPDU packets to " +
-                            address.getHostAddress() + " port " + port);
+                            multicastInetAddress.getHostAddress() + " port " + port);
 
 		// Initialize values in the Entity State PDU object. The exercise ID is 
 		// a way to differentiate between different virtual worlds on one network.
diff --git a/examples/src/OpenDis7Examples/EspduSenderWireshark.png b/examples/src/OpenDis7Examples/EspduSenderWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..209629a1a0fe7c5f804efe32b5ab36ba7645e722
Binary files /dev/null and b/examples/src/OpenDis7Examples/EspduSenderWireshark.png differ
diff --git a/examples/src/OpenDis7Examples/EspduSenderWiresharkCapture.pcapng b/examples/src/OpenDis7Examples/EspduSenderWiresharkCapture.pcapng
new file mode 100644
index 0000000000000000000000000000000000000000..5615b7f12f140a50082049eadb7076a73bb80da7
Binary files /dev/null and b/examples/src/OpenDis7Examples/EspduSenderWiresharkCapture.pcapng differ
diff --git a/examples/src/OpenDis7Examples/EspduTerminalLog.txt b/examples/src/OpenDis7Examples/EspduTerminalLog.txt
index 4ed84791f0d86c50b3f8a2a653d5103f8791c16e..aa29451610ecf5f3884d99c4a5f5f74eff878516 100644
--- a/examples/src/OpenDis7Examples/EspduTerminalLog.txt
+++ b/examples/src/OpenDis7Examples/EspduTerminalLog.txt
@@ -2,7 +2,7 @@ Invocation instructions:
 1. run/debug EspduReceiver.java (since sender does not block, first be ready to listen)
 2. run/debug EspduSender.java
 
-Program responses, sender and receiver:
+Program responses follow for sender and receiver:
 
 ===================================================
 ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/EspduSender.java -Drun.class=OpenDis7Examples.EspduSender run-single
@@ -11,23 +11,19 @@ Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.prope
 deps-jar:
 Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
 Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
-warning: [options] bootstrap class path not set in conjunction with -source 8
-Note: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\src\OpenDis7Examples\EspduSender.java uses or overrides a deprecated API.
-Note: Recompile with -Xlint:deprecation for details.
-1 warning
 compile-single:
 run-single:
 [OpenDis7Examples.EspduSender]  started...
 [OpenDis7Examples.EspduSender]  sending multicast ESPDU packets to 239.1.2.3 port 3000
 ===============
 espdu entityType information:
-  EntityKind =EntityKind 1 PLATFORM
+  EntityKind =DisPduType 1 PLATFORM
   Country    =Country 225 UNITED_STATES_OF_AMERICA_USA
   Domain     =Land
   Category   =1
   SubCategory=1
   Specific   =Country 225 UNITED_STATES_OF_AMERICA_USA
-[OpenDis7Examples.EspduSender] sending 1 sets of packets:
+[OpenDis7Examples.EspduSender] sending 5 sets of packets:
 ===============
 Create new PDUs
   latitude, longitude:   [36.595517, -121.87706]
@@ -35,7 +31,7 @@ Create new PDUs
 Espdu #1 entityID=[1,2,3]
 FirePdu #1 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor:
  munitionType: EntityType:
- entityKind: EntityKind 0 OTHER
+ entityKind: DisPduType 0 OTHER
  domain: Other
  country: Country 0 OTHER
  category: 0
@@ -48,20 +44,141 @@ FirePdu #1 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor:
  quantity: 0
  rate: 0
 ]
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE        ] packet.getLength()= 96, to 127.255.255.255 port 3000
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 172.19.143.255  port 3000
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE        ] packet.getLength()= 96, to 172.19.143.255  port 3000
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 10.0.0.255      port 3000
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE        ] packet.getLength()= 96, to 10.0.0.255      port 3000
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219  port 3000
-[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE        ] packet.getLength()= 96, to 172.20.209.219  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.20.209.219  port 3000
+===============
+Create new PDUs
+  latitude, longitude:   [36.595517, -121.877]
+  coordinate conversion: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+Espdu #2 entityID=[1,2,3]
+FirePdu #2 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor:
+ munitionType: EntityType:
+ entityKind: DisPduType 0 OTHER
+ domain: Other
+ country: Country 0 OTHER
+ category: 0
+ subCategory: 0
+ specific: 0
+ extra: 0
+
+ warhead: MunitionDescriptorWarhead 0 OTHER
+ fuse: MunitionDescriptorFuse 0 OTHER
+ quantity: 0
+ rate: 0
+]
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.20.209.219  port 3000
+===============
+Create new PDUs
+  latitude, longitude:   [36.595517, -121.87706]
+  coordinate conversion: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+Espdu #3 entityID=[1,2,3]
+FirePdu #3 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor:
+ munitionType: EntityType:
+ entityKind: DisPduType 0 OTHER
+ domain: Other
+ country: Country 0 OTHER
+ category: 0
+ subCategory: 0
+ specific: 0
+ extra: 0
+
+ warhead: MunitionDescriptorWarhead 0 OTHER
+ fuse: MunitionDescriptorFuse 0 OTHER
+ quantity: 0
+ rate: 0
+]
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.20.209.219  port 3000
+===============
+Create new PDUs
+  latitude, longitude:   [36.595517, -121.877]
+  coordinate conversion: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+Espdu #4 entityID=[1,2,3]
+FirePdu #4 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor:
+ munitionType: EntityType:
+ entityKind: DisPduType 0 OTHER
+ domain: Other
+ country: Country 0 OTHER
+ category: 0
+ subCategory: 0
+ specific: 0
+ extra: 0
+
+ warhead: MunitionDescriptorWarhead 0 OTHER
+ fuse: MunitionDescriptorFuse 0 OTHER
+ quantity: 0
+ rate: 0
+]
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.20.209.219  port 3000
+===============
+Create new PDUs
+  latitude, longitude:   [36.595517, -121.87706]
+  coordinate conversion: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+Espdu #5 entityID=[1,2,3]
+FirePdu #5 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor:
+ munitionType: EntityType:
+ entityKind: DisPduType 0 OTHER
+ domain: Other
+ country: Country 0 OTHER
+ category: 0
+ subCategory: 0
+ specific: 0
+ extra: 0
+
+ warhead: MunitionDescriptorWarhead 0 OTHER
+ fuse: MunitionDescriptorFuse 0 OTHER
+ quantity: 0
+ rate: 0
+]
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 127.255.255.255 port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.28.239.255  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.16.0.255    port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219  port 3000
+[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE        ] packet.getLength()= 96, to 172.20.209.219  port 3000
 ===============
 [OpenDis7Examples.EspduSender] complete.
-BUILD SUCCESSFUL (total time: 5 seconds)
+BUILD SUCCESSFUL (total time: 11 seconds)
+
 
 ===================================================
 
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/EspduReceiver.java -Drun.class=OpenDis7Examples.EspduReceiver run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
 [OpenDis7Examples.EspduReceiver] started...
 [OpenDis7Examples.EspduReceiver] listening for PDU packets on 239.1.2.3 port 3000
 To quit: stop or kill this process
@@ -71,4 +188,58 @@ To quit: stop or kill this process
      Location in DIS coordinates:        [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
   2. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
      FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+===============
+  3. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+  4. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+===============
+  5. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+  6. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+===============
+  7. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+  8. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+===============
+  9. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+ 10. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+===============
+ 11. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+ 12. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+===============
+ 13. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+ 14. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+===============
+ 15. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+ 16. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413]
+===============
+ 17. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+ 18. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+===============
+ 19. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu
+     entityID triplet: [1, 2, 3] 
+     Location in DIS coordinates:        [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
+ 20. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu
+     FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413]
 ===============
\ No newline at end of file
diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgram.java b/examples/src/OpenDis7Examples/ExampleSimulationProgram.java
index 3127dc0d83404980fdcaf9a7d50120cd50b510fe..959428cbf1897e2d0ec21cfaeee152e9c7a0895d 100644
--- a/examples/src/OpenDis7Examples/ExampleSimulationProgram.java
+++ b/examples/src/OpenDis7Examples/ExampleSimulationProgram.java
@@ -12,6 +12,7 @@ import edu.nps.moves.dis7.pdus.FirePdu;
 import edu.nps.moves.dis7.pdus.Pdu;
 import edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface;
 import edu.nps.moves.dis7.utilities.PduFactory;
+import edu.nps.moves.dis7.utilities.stream.PduRecorder;
 import java.util.ArrayList;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -30,15 +31,12 @@ public class ExampleSimulationProgram
     {
       try
       {
-          
-          
         final double LOOP_DURATION_SECONDS  =  1.0; // seconds
         final int    MAX_LOOP_COUNT = 10;
               int    loopCount = 0;
-        VariableRecordType narrativeType = VariableRecordType.OTHER; // of potential use
         boolean simulationComplete = false; // sentinel variable as termination condition
         
-        // TODO reset clock to zero each time for consistent outputs.
+        // TODO reset clock to zero each time for consistent outputs
         
         // your model setup: who's who in this zoo?
         // create PDU objects and set their values
@@ -52,10 +50,11 @@ public class ExampleSimulationProgram
         FirePdu               firePdu = pduFactory.makeFirePdu();
         // should we customize this munition?  what is it for your simulation?
         
+        // TODO simulation management PDUs for startup
+        
         // loop the simulation while allowed, programmer can set additional conditions to break out and finish
         while (loopCount < MAX_LOOP_COUNT) 
         {
-            String narrativeMessage1, narrativeMessage2, narrativeMessage3;
             // initialize loop variables
             loopCount++;
             
@@ -91,21 +90,26 @@ public class ExampleSimulationProgram
             // keep track of timestep: wait duration for elapsed time in this loop
             // Thread.sleep needs a (long) parameter for milliseconds, which are clumsy to use sometimes
             Thread.sleep((long)(LOOP_DURATION_SECONDS * 1000)); // seconds * (1000 msec/sec) = milliseconds
-            System.out.println ("... Pausing for " + LOOP_DURATION_SECONDS + " seconds");
+            System.out.println ("... [Pausing for " + LOOP_DURATION_SECONDS + " seconds]");
             
             // send the status PDUs for this loop and continue
             System.out.println ("sending PDUs for simulation step " + loopCount + ", monitor loopback to confirm sent");
-            sendAllPdus(entityStatePdu, firePdu, null, narrativeMessage1, narrativeMessage2, narrativeMessage3);
-            System.out.println ("... PDUs successfully sent");
+            sendAllPdus(entityStatePdu, firePdu, timeStepComment, narrativeMessage1, narrativeMessage2, narrativeMessage3);
+            System.out.println ("... [PDUs successfully sent for this loop]");
             
             // ===============================
             // loop now finished, thus terminate if simulation complete, otherwise send latest PDUs and continue
             if (simulationComplete || (loopCount > 10000)) // for example; including fail-safe condition is good
             {
-                System.out.println ("... Termination condition met, simulationComplete=" + simulationComplete);
+                System.out.println ("... [Termination condition met, simulationComplete=" + simulationComplete + "]"); // ", final loopCount=" + loopCount + 
                 break;
             }
         }   // end of while loop
+        // all done
+        narrativeMessage2 = "runSimulation() completed successfully";
+        sendCommentPdu(narrativeComment, narrativeMessage1, narrativeMessage2, narrativeMessage3);
+        System.out.println ("... [final CommentPdu successfully sent for simulation]");
+        // TODO simulation management PDUs
       } 
       catch (InterruptedException iex) // handle any exception that your code might choose to provoke!
       {
@@ -113,7 +117,19 @@ public class ExampleSimulationProgram
       }
     }
     /* **************************** infrastructure code, modification is seldom needed ************************* */
-    
+        
+    private boolean verboseComments = true;
+    String narrativeMessage1 = new String();
+    String narrativeMessage2 = new String();
+    String narrativeMessage3 = new String();
+          
+    /* VariableRecordType enumerations have potential use with CommentPdu logs */
+    VariableRecordType descriptionComment = VariableRecordType.DESCRIPTION;
+    VariableRecordType   narrativeComment = VariableRecordType.COMPLETE_EVENT_REPORT;
+    VariableRecordType      statusComment = VariableRecordType.APPLICATION_STATUS;
+    VariableRecordType    timeStepComment = VariableRecordType.APPLICATION_TIMESTEP;
+    VariableRecordType       otherComment = VariableRecordType.OTHER;
+        
 	/**
 	 * Output prefix to identify this class, helps with logging
 	 */
@@ -125,8 +141,10 @@ public class ExampleSimulationProgram
     DisThreadedNetworkInterface.PduListener pduListener;
     Pdu receivedPdu;
     
-    private String networkAddress = "239.1.2.3";
-    private int    networkPort    = 3000;
+    static final String networkAddress_DEFAULT = "239.1.2.3";
+    static final int    networkPort_DEFAULT    = 3000;
+    static       String networkAddress         = networkAddress_DEFAULT;
+    static       int    networkPort            = networkPort_DEFAULT;
     
     /**
      * Constructor design goal: additional built-in initialization conveniences can go here
@@ -158,11 +176,11 @@ public class ExampleSimulationProgram
     }
 
     /**
-     * @param networkAddress the networkAddress to set
+     * @param newNetworkAddress the networkAddress to set
      */
-    public final void setNetworkAddress(String networkAddress)
+    public final void setNetworkAddress(String newNetworkAddress)
     {
-        this.networkAddress = networkAddress;
+        this.networkAddress = newNetworkAddress;
     }
 
     /**
@@ -174,11 +192,11 @@ public class ExampleSimulationProgram
     }
 
     /**
-     * @param networkPort the networkPort to set
+     * @param newNetworkPort the networkPort to set
      */
-    public final void setNetworkPort(int networkPort)
+    public final void setNetworkPort(int newNetworkPort)
     {
-        this.networkPort = networkPort;
+        this.networkPort = newNetworkPort;
     }
 
     /**
@@ -227,19 +245,32 @@ public class ExampleSimulationProgram
         }
     }
 
+    /**
+     * Send Comment PDU
+     * @see <a href="https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html">Passing Information to a Method or a Constructor</a> Arbitrary Number of Arguments
+     * @param commentType    enumeration value describing purpose of the narrative comment
+     * @param comments       String array of narrative comments
+     */
+    public void sendCommentPdu(VariableRecordType commentType,
+                                     // vararg... variable-length set of String comments can optionally follow
+                                       String... comments)
+    {
+        sendAllPdus (null, null, commentType, comments);
+    }
+
     /**
      * Send EntityState, Fire, Comment PDUs
      * @see <a href="https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html">Passing Information to a Method or a Constructor</a> Arbitrary Number of Arguments
      * @param entityStatePdu the ESPDU to send, if any
      * @param firePdu        the FirePDU to send, if any
-     * @param commentType    enumeration value describing the narrative comment
+     * @param commentType    enumeration value describing purpose of the narrative comment
      * @param comments       String array of narrative comments
      */
     public void sendAllPdus(EntityStatePdu entityStatePdu,
-                               FirePdu firePdu,
-                               VariableRecordType commentType,
-                               // vararg... variable length string
-                               String... comments)
+                                   FirePdu firePdu,
+                        VariableRecordType commentType,
+                              // vararg... variable-length set of String comments can optionally follow
+                                 String... comments)
     {
         if (entityStatePdu != null)
             sendSinglePdu(entityStatePdu);
@@ -258,9 +289,12 @@ public class ExampleSimulationProgram
             if (!newCommentsList.isEmpty())
             {
                 if (commentType == null)
-                    commentType = VariableRecordType.OTHER;
+                    commentType = otherComment; // fallback value otherComment
+                // now build the commentPdu from these string inputs
                 CommentPdu commentPdu = pduFactory.makeCommentPdu(commentType, newCommentsList.toArray(new String[0])); // comments);
                 sendSinglePdu(commentPdu);
+                if (isVerboseComments())
+                    System.out.println("*** [Narrative comment sent: " + commentType.name() + "] " + newCommentsList.toString());
             }
         }
     }
@@ -293,11 +327,32 @@ public class ExampleSimulationProgram
         // OK here we go...
 
         thisProgram.setUpNetworkInterface();
+        
+        String DEFAULT_OUTPUT_DIRECTORY = "./pduLog";
+        String outputDirectory = DEFAULT_OUTPUT_DIRECTORY;
+        System.out.println("Beginning pdu save to directory " + outputDirectory);
+        PduRecorder pduRecorder = new PduRecorder(outputDirectory, networkAddress, networkPort); // assumes save
 
-        thisProgram.runSimulation (); // your simulation execution code goes in there
+        thisProgram.runSimulation (); // ... your simulation execution code goes in there ...
+        
+        pduRecorder.end();
 
         thisProgram.tearDownNetworkInterface(); // make sure no processes are left lingering
         
         System.out.println(TRACE_PREFIX + "complete."); // report successful completion
     }
+
+    /**
+     * @return whether verboseComments mode is enabled
+     */
+    public boolean isVerboseComments() {
+        return verboseComments;
+    }
+
+    /**
+     * @param newVerboseComments whether verboseComments mode is enabled
+     */
+    public void setVerboseComments(boolean newVerboseComments) {
+        this.verboseComments = newVerboseComments;
+    }
 }
diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgramLog.txt b/examples/src/OpenDis7Examples/ExampleSimulationProgramLog.txt
new file mode 100644
index 0000000000000000000000000000000000000000..13c9f96360354e1d6e3a4e13e5ef558d750439d3
--- /dev/null
+++ b/examples/src/OpenDis7Examples/ExampleSimulationProgramLog.txt
@@ -0,0 +1,79 @@
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/ExampleSimulationProgram.java -Drun.class=OpenDis7Examples.ExampleSimulationProgram run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+[OpenDis7Examples.ExampleSimulationProgram] started...
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  Using network interface Intel(R) Centrino(R) Ultimate-N 6300 AGN
+Network confirmation: address=239.1.2.3 port=3000
+Beginning pdu save to directory ./pduLog
+Recorder log file open: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog1.dislog
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  Using network interface Intel(R) Centrino(R) Ultimate-N 6300 AGN
+class edu.nps.moves.dis7.utilities.stream.PduRecorder listening to IP address 239.1.2.3 on port 3000
+... My simulation just did something, no really...
+... [Pausing for 1.0 seconds]
+sending PDUs for simulation step 1, monitor loopback to confirm sent
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 1. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 1. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 2. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 2. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 3. received DisPduType 22 COMMENT, size 104 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 3. received DisPduType 22 COMMENT, size 104 bytes)
+*** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 1]
+... [PDUs successfully sent for this loop]
+... My simulation just did something, no really...
+... [Pausing for 1.0 seconds]
+sending PDUs for simulation step 2, monitor loopback to confirm sent
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 4. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 4. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 5. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 5. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 6. received DisPduType 22 COMMENT, size 104 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 6. received DisPduType 22 COMMENT, size 104 bytes)
+*** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 2]
+... [PDUs successfully sent for this loop]
+... My simulation just did something, no really...
+... [Pausing for 1.0 seconds]
+sending PDUs for simulation step 3, monitor loopback to confirm sent
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 7. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 7. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 8. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 8. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 9. received DisPduType 22 COMMENT, size 104 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 9. received DisPduType 22 COMMENT, size 104 bytes)
+*** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 3]
+... [PDUs successfully sent for this loop]
+... My simulation just did something, no really...
+... [Pausing for 1.0 seconds]
+sending PDUs for simulation step 4, monitor loopback to confirm sent
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 10. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 10. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 11. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 11. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 12. received DisPduType 22 COMMENT, size 104 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 12. received DisPduType 22 COMMENT, size 104 bytes)
+*** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 4]
+... [PDUs successfully sent for this loop]
+... My simulation just did something, no really...
+... [Pausing for 1.0 seconds]
+sending PDUs for simulation step 5, monitor loopback to confirm sent
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 13. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 13. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 14. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 14. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 15. received DisPduType 22 COMMENT, size 104 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 15. received DisPduType 22 COMMENT, size 104 bytes)
+*** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 5]
+... [PDUs successfully sent for this loop]
+... [Termination condition met, simulationComplete=true]
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 16. received DisPduType 22 COMMENT, size 120 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 16. received DisPduType 22 COMMENT, size 120 bytes)
+*** [Narrative comment sent: COMPLETE_EVENT_REPORT] [MV3500 ExampleSimulationProgram, runSimulation() completed successfully]
+... [final CommentPdu successfully sent for simulation]
+
+Closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog1.dislog
+[OpenDis7Examples.ExampleSimulationProgram] complete.
+BUILD SUCCESSFUL (total time: 10 seconds)
diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt b/examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt
deleted file mode 100644
index 0b2cc4a134eb703858fcaf8d47d920bf27ee78c7..0000000000000000000000000000000000000000
--- a/examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/ExampleSimulationProgram.java -Drun.class=OpenDis7Examples.ExampleSimulationProgram run-single
-init:
-Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
-deps-jar:
-Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
-Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
-warning: [options] bootstrap class path not set in conjunction with -source 8
-1 warning
-compile-single:
-run-single:
-[OpenDis7Examples.ExampleSimulationProgram] started...
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] Using network interface Intel(R) Centrino(R) Ultimate-N 6300 AGN
-Network confirmation: address=239.1.2.3 port=3000
-... Pausing for 1.0 seconds
-sending PDUs for simulation step 1, monitor loopback to confirm sent
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   1. received DisPduType 01 ENTITY_STATE size 144 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   2. received DisPduType 02 FIRE size 96 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   3. received DisPduType 22 COMMENT size 104 bytes
-... PDUs successfully sent
-... Pausing for 1.0 seconds
-sending PDUs for simulation step 2, monitor loopback to confirm sent
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   4. received DisPduType 01 ENTITY_STATE size 144 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   5. received DisPduType 02 FIRE size 96 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   6. received DisPduType 22 COMMENT size 104 bytes
-... PDUs successfully sent
-... Pausing for 1.0 seconds
-sending PDUs for simulation step 3, monitor loopback to confirm sent
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   7. received DisPduType 01 ENTITY_STATE size 144 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   8. received DisPduType 02 FIRE size 96 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]   9. received DisPduType 22 COMMENT size 104 bytes
-... PDUs successfully sent
-... Pausing for 1.0 seconds
-sending PDUs for simulation step 4, monitor loopback to confirm sent
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  10. received DisPduType 01 ENTITY_STATE size 144 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  11. received DisPduType 02 FIRE size 96 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  12. received DisPduType 22 COMMENT size 104 bytes
-... PDUs successfully sent
-... Pausing for 1.0 seconds
-sending PDUs for simulation step 5, monitor loopback to confirm sent
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  13. received DisPduType 01 ENTITY_STATE size 144 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  14. received DisPduType 02 FIRE size 96 bytes
-[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  15. received DisPduType 22 COMMENT size 104 bytes
-... PDUs successfully sent
-... Termination condition met, simulationComplete=true
-[OpenDis7Examples.ExampleSimulationProgram] complete.
-BUILD SUCCESSFUL (total time: 10 seconds)
diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgramPduCaptureLog.dislog b/examples/src/OpenDis7Examples/ExampleSimulationProgramPduCaptureLog.dislog
new file mode 100644
index 0000000000000000000000000000000000000000..be53e3cacf67b2bf120063c0ad168fd9a0703eb2
--- /dev/null
+++ b/examples/src/OpenDis7Examples/ExampleSimulationProgramPduCaptureLog.dislog
@@ -0,0 +1,18 @@
+# Start, ENCODING_PLAINTEXT, 20210815_133514, DIS capture file, .\pduLog\PduCaptureLog1.dislog
+[0,0,0,0,0,0,0,0],[7,1,1,1,-106,70,-6,-89,0,-112,40,0,0,1,0,2,0,3,0,0,0,0,0,-31,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 01 ENTITY_STATE
+[0,0,0,0,6,54,78,92],[7,1,2,2,-106,71,22,-99,0,96,40,0,0,2,0,3,0,0,0,2,0,3,0,0,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 02 FIRE
+[0,0,0,0,12,-63,-17,76],[7,1,22,5,-106,93,52,-19,0,32,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,-81,-46,0,0,0,-8,77,86,51,53,48,48,32,69,120,97,109,112,108,101,83,105,109,117,108,97,116,105,111,110,80,114,111,103,114,97,109,0,0,0,-81,-46,0,0,0,-80,114,117,110,83,105,109,117,108,97,116,105,111,110,40,41,32,108,111,111,112,32,49,0,0] # DisPduType 22 COMMENT
+[0,0,0,0,78,-4,-47,76],[7,1,1,1,-106,70,-6,-89,0,-112,40,0,0,1,0,2,0,3,0,0,0,0,0,-31,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 01 ENTITY_STATE
+[0,0,0,0,85,4,122,-92],[7,1,2,2,-106,71,22,-99,0,96,40,0,0,2,0,3,0,0,0,2,0,3,0,0,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 02 FIRE
+[0,0,0,0,91,-68,76,-36],[7,1,22,5,-106,117,116,127,0,32,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,-81,-46,0,0,0,-8,77,86,51,53,48,48,32,69,120,97,109,112,108,101,83,105,109,117,108,97,116,105,111,110,80,114,111,103,114,97,109,0,0,0,-81,-46,0,0,0,-80,114,117,110,83,105,109,117,108,97,116,105,111,110,40,41,32,108,111,111,112,32,50,0,0] # DisPduType 22 COMMENT
+[0,0,0,0,-99,119,-83,-40],[7,1,1,1,-106,70,-6,-89,0,-112,40,0,0,1,0,2,0,3,0,0,0,0,0,-31,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 01 ENTITY_STATE
+[0,0,0,0,-92,71,-121,60],[7,1,2,2,-106,71,22,-99,0,96,40,0,0,2,0,3,0,0,0,2,0,3,0,0,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 02 FIRE
+[0,0,0,0,-86,109,66,60],[7,1,22,5,-106,-115,124,35,0,32,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,-81,-46,0,0,0,-8,77,86,51,53,48,48,32,69,120,97,109,112,108,101,83,105,109,117,108,97,116,105,111,110,80,114,111,103,114,97,109,0,0,0,-81,-46,0,0,0,-80,114,117,110,83,105,109,117,108,97,116,105,111,110,40,41,32,108,111,111,112,32,51,0,0] # DisPduType 22 COMMENT
+[0,0,0,0,-20,-73,-43,8],[7,1,1,1,-106,70,-6,-89,0,-112,40,0,0,1,0,2,0,3,0,0,0,0,0,-31,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 01 ENTITY_STATE
+[0,0,0,0,-14,-65,-44,80],[7,1,2,2,-106,71,22,-99,0,96,40,0,0,2,0,3,0,0,0,2,0,3,0,0,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 02 FIRE
+[0,0,0,0,-7,-92,104,88],[7,1,22,5,-106,-91,-87,17,0,32,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,-81,-46,0,0,0,-8,77,86,51,53,48,48,32,69,120,97,109,112,108,101,83,105,109,117,108,97,116,105,111,110,80,114,111,103,114,97,109,0,0,0,-81,-46,0,0,0,-80,114,117,110,83,105,109,117,108,97,116,105,111,110,40,41,32,108,111,111,112,32,52,0,0] # DisPduType 22 COMMENT
+[0,0,0,1,60,85,-80,28],[7,1,1,1,-106,70,-6,-89,0,-112,40,0,0,1,0,2,0,3,0,0,0,0,0,-31,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 01 ENTITY_STATE
+[0,0,0,1,67,46,-37,-44],[7,1,2,2,-106,71,22,-99,0,96,40,0,0,2,0,3,0,0,0,2,0,3,0,0,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 02 FIRE
+[0,0,0,1,73,-94,-117,-36],[7,1,22,5,-106,-66,32,-111,0,32,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,-81,-46,0,0,0,-8,77,86,51,53,48,48,32,69,120,97,109,112,108,101,83,105,109,117,108,97,116,105,111,110,80,114,111,103,114,97,109,0,0,0,-81,-46,0,0,0,-80,114,117,110,83,105,109,117,108,97,116,105,111,110,40,41,32,108,111,111,112,32,53,0,0] # DisPduType 22 COMMENT
+[0,0,0,1,79,-27,-45,80],[7,1,22,5,-106,-64,14,-113,0,32,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,9,90,-90,0,0,0,-8,77,86,51,53,48,48,32,69,120,97,109,112,108,101,83,105,109,117,108,97,116,105,111,110,80,114,111,103,114,97,109,0,0,9,90,-90,0,0,1,48,114,117,110,83,105,109,117,108,97,116,105,111,110,40,41,32,99,111,109,112,108,101,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,0] # DisPduType 22 COMMENT
+# Finish, ENCODING_PLAINTEXT, 20210815_133520, DIS capture file, .\pduLog\PduCaptureLog1.dislog
diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgramWireshark.png b/examples/src/OpenDis7Examples/ExampleSimulationProgramWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..34e2b468ea32b01f0d057110ff464973d7490df0
Binary files /dev/null and b/examples/src/OpenDis7Examples/ExampleSimulationProgramWireshark.png differ
diff --git a/examples/src/OpenDis7Examples/PduListenerSaver.java b/examples/src/OpenDis7Examples/PduListenerSaver.java
index ba88bd6b31e187b794623f10ae686ec15bddb8e6..a3a80ef7d1b2d46fa3ae48ef023024187a6c45d7 100644
--- a/examples/src/OpenDis7Examples/PduListenerSaver.java
+++ b/examples/src/OpenDis7Examples/PduListenerSaver.java
@@ -20,85 +20,82 @@ import java.util.Scanner;
  */
 public class PduListenerSaver
 {
-  private final static String DEFAULT_OUTPUT_DIRECTORY  = "pduLog";
-  /**
-	 * Default multicast group address we send on.
-     * @see <a href="https://en.wikipedia.org/wiki/Multicast_address">https://en.wikipedia.org/wiki/Multicast_address</a> */
-  public static final String  DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS;
-  /** @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
-  public static final int     DEFAULT_MULTICAST_PORT    = AllPduSender.DEFAULT_MULTICAST_PORT;
+    private final static String DEFAULT_OUTPUT_DIRECTORY  = "pduLog";
+    /**
+       * Default multicast group address we send on.
+       * @see <a href="https://en.wikipedia.org/wiki/Multicast_address">https://en.wikipedia.org/wiki/Multicast_address</a> */
+    public static final String  DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS;
+    /** @see <a href="https://en.wikipedia.org/wiki/Port_(computer_networking)">https://en.wikipedia.org/wiki/Port_(computer_networking)</a> */
+    public static final int     DEFAULT_MULTICAST_PORT    = AllPduSender.DEFAULT_MULTICAST_PORT;
 
-  private enum mystate
-  {
-    RUNNING,
-    PAUSED;
-  }
+    private enum mystate
+    {
+        RUNNING,
+        PAUSED;
+    }
 
-  /**
+    /**
      * Program invocation, execution starts here
      * @param args command-line arguments
      */
     public static void main(String[] args)
-  {
-    String outputDirectory  = DEFAULT_OUTPUT_DIRECTORY;
-    String multicastAddress = DEFAULT_MULTICAST_ADDRESS;
-    int       multicastPort = DEFAULT_MULTICAST_PORT;
-    
-    System.out.println("OpenDis7Examples.PduListenerSaver started...");
-
-    switch (args.length) {
-      case 0:
-        break;
-      case 1:
-        outputDirectory = args[0];
-        break;
-      case 3:
-        outputDirectory  = args[0];
-        multicastAddress = args[1];
-        multicastPort    = Integer.parseInt(args[2]);
-        break;
-      default:
-        // Common-sense practice is to print help message if invocation is problematic
-        System.err.println("Usage: PduListenerSaver() or PduListenerSaver(\"outputdir\") or PduListenerSaver(\"outputDirectory\",\"multicastAddress\", multicastPort");
-        System.exit(1);
-    }
+    {
+        String outputDirectory  = DEFAULT_OUTPUT_DIRECTORY;
+        String multicastAddress = DEFAULT_MULTICAST_ADDRESS;
+        int       multicastPort = DEFAULT_MULTICAST_PORT;
 
-    System.out.println("Beginning PduListenerSaver (" + multicastAddress + ":" + multicastPort + ") to directory " + outputDirectory);
-    try {
-      PduRecorder recorder = new PduRecorder(outputDirectory, multicastAddress, multicastPort); // assumes save
-      mystate state = mystate.RUNNING;
-      Scanner scan = new Scanner(System.in);
+        System.out.println("OpenDis7Examples.PduListenerSaver started...");
 
-      while (true) {
-        System.out.println("Type p/enter to pause, r/enter to resume, q/enter to quit");
-        String line = scan.nextLine();
-        if (line.equalsIgnoreCase("p") && state == mystate.RUNNING) {
-          recorder.stopPause();
-          state = mystate.PAUSED;
-          System.out.println("... now PAUSED");
-        }
-        else if (line.equalsIgnoreCase("p")) {
-          System.out.println("... still PAUSED");
-        }
-        else if (line.equalsIgnoreCase("r") && state == mystate.PAUSED) {
-          recorder.startResume();
-          state = mystate.RUNNING;
-          System.out.println("... now RUNNING");
+        switch (args.length)
+        {
+            case 0:
+                break;
+            case 1:
+                outputDirectory = args[0];
+                break;
+            case 3:
+                outputDirectory  = args[0];
+                multicastAddress = args[1];
+                multicastPort    = Integer.parseInt(args[2]);
+                break;
+            default:
+                // Common-sense practice is to print help message if invocation is problematic
+                System.err.println("Usage: PduListenerSaver() or PduListenerSaver(\"outputdir\") or PduListenerSaver(\"outputDirectory\",\"multicastAddress\", multicastPort");
+                System.exit(1);
         }
-        else if (line.equalsIgnoreCase("r")) {
-          System.out.println("... still RUNNING");
-        }
-        else if (line.equalsIgnoreCase("q")) {
-          System.out.println("... QUIT");
-          recorder.end();
-          break;
+        System.out.println("Beginning PduListenerSaver (" + multicastAddress + ":" + multicastPort + ") to directory " + outputDirectory);
+
+        mystate state = mystate.RUNNING;
+        Scanner terminalKeyboardScanner = new Scanner(System.in);
+        PduRecorder pduRecorder = new PduRecorder(outputDirectory, multicastAddress, multicastPort); // assumes save on quit
+
+        while (true) // monitor user input via keyboard
+        {
+            System.out.println("Type p/enter to pause, r/enter to resume, q/enter to quit");
+            String line = terminalKeyboardScanner.nextLine();
+            if (line.equalsIgnoreCase("p") && state == mystate.RUNNING) {
+                pduRecorder.stopPause();
+                state = mystate.PAUSED;
+                System.out.println("... now PAUSED");
+            }
+            else if (line.equalsIgnoreCase("p")) {
+                System.out.println("... still PAUSED");
+            }
+            else if (line.equalsIgnoreCase("r") && state == mystate.PAUSED) {
+                pduRecorder.startResume();
+                state = mystate.RUNNING;
+                System.out.println("... now RUNNING");
+            }
+            else if (line.equalsIgnoreCase("r")) {
+                System.out.println("... still RUNNING");
+            }
+            else if (line.equalsIgnoreCase("q")) {
+                System.out.println("... QUIT");
+                pduRecorder.end();
+                break;
+            }
         }
-      }
-      System.out.println("Ending PduListenerSaver pdu recording, saved to file:");
-      System.out.println(recorder.getLogFilePath());
-    }
-    catch (IOException ex) {
-      System.err.println("Exception: " + ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage());
+        System.out.println("Ending PduListenerSaver pdu recording, saved to file:");
+        System.out.println(pduRecorder.getLogFilePath());
     }
-  }
 }
diff --git a/examples/src/OpenDis7Examples/PduListenerSaverCaptureLog.dislog b/examples/src/OpenDis7Examples/PduListenerSaverCaptureLog.dislog
new file mode 100644
index 0000000000000000000000000000000000000000..7fea7f6edf50824a8681119bc0708518007fb08d
--- /dev/null
+++ b/examples/src/OpenDis7Examples/PduListenerSaverCaptureLog.dislog
@@ -0,0 +1,74 @@
+# Start, ENCODING_PLAINTEXT, 20210815_131752, DIS capture file, pduLog\PduCaptureLog1.dislog
+[0,0,0,0,0,0,0,0],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,-16,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,108,108,80,100,117,83,101,110,100,101,0,0,0,0] # DisPduType 01 ENTITY_STATE
+[0,0,0,0,1,124,34,116],[7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 02 FIRE
+[0,0,0,0,2,69,68,76],[7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 03 DETONATION
+[0,0,0,0,2,115,28,60],[7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 04 COLLISION
+[0,0,0,0,2,-115,-46,-24],[7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 05 SERVICE_REQUEST
+[0,0,0,0,2,-79,-58,-48],[7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 06 RESUPPLY_OFFER
+[0,0,0,0,2,-71,124,64],[7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 07 RESUPPLY_RECEIVED
+[0,0,0,0,2,-64,-88,-8],[7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 08 RESUPPLY_CANCEL
+[0,0,0,0,2,-60,119,-108],[7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 09 REPAIR_COMPLETE
+[0,0,0,0,2,-8,-7,-60],[7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 10 REPAIR_RESPONSE
+[0,0,0,0,3,24,-51,108],[7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 11 CREATE_ENTITY
+[0,0,0,0,3,39,-45,-24],[7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 12 REMOVE_ENTITY
+[0,0,0,0,3,43,-119,32],[7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 13 START_RESUME
+[0,0,0,0,3,55,-105,-40],[7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 14 STOP_FREEZE
+[0,0,0,0,3,82,-70,-72],[7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0] # DisPduType 15 ACKNOWLEDGE
+[0,0,0,0,3,107,38,-84],[7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 16 ACTION_REQUEST
+[0,0,0,0,3,126,-15,-36],[7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 17 ACTION_RESPONSE
+[0,0,0,0,3,-113,47,72],[7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 18 DATA_QUERY
+[0,0,0,0,3,-109,-20,-12],[7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 19 SET_DATA
+[0,0,0,0,3,-103,75,-112],[7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 20 DATA
+[0,0,0,0,3,-97,0,-128],[7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 21 EVENT_REPORT
+[0,0,0,0,3,-82,84,-72],[7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,-128,72,101,108,108,111,32,67,111,109,109,101,110,116,80,68,85,0,0,0,1,0,0,1,112,72,101,114,101,32,105,115,32,97,32,115,101,99,111,110,100,32,108,105,110,101,32,111,102,32,116,101,120,116,32,105,110,32,116,104,105,115,32,99,111,109,109,101,110,116,46,0,0] # DisPduType 22 COMMENT
+[0,0,0,0,5,83,4,108],[7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 23 ELECTROMAGNETIC_EMISSION
+[0,0,0,0,5,102,-89,-60],[7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 24 DESIGNATOR
+[0,0,0,0,5,-114,-111,88],[7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 25 TRANSMITTER
+[0,0,0,0,6,49,-6,40],[7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0] # DisPduType 26 SIGNAL
+[0,0,0,0,6,98,37,104],[7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 27 RECEIVER
+[0,0,0,0,6,122,61,-60],[7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE
+[0,0,0,0,6,-2,40,20],[7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 29 UNDERWATER_ACOUSTIC
+[0,0,0,0,7,38,21,-12],[7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE
+[0,0,0,0,7,43,-30,-72],[7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0] # DisPduType 31 INTERCOM_SIGNAL
+[0,0,0,0,7,61,89,8],[7,0,32,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 32 INTERCOM_CONTROL
+[0,0,0,0,7,102,123,28],[7,0,33,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 33 AGGREGATE_STATE
+[0,0,0,0,7,-59,-119,124],[7,0,34,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 34 ISGROUPOF
+[0,0,0,0,7,-42,113,56],[7,0,35,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 35 TRANSFER_OWNERSHIP
+[0,0,0,0,7,-8,21,84],[7,0,36,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 36 ISPARTOF
+[0,0,0,0,8,45,67,0],[7,0,37,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 37 MINEFIELD_STATE
+[0,0,0,0,8,-106,-126,-64],[7,0,38,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 38 MINEFIELD_QUERY
+[0,0,0,0,8,-81,58,124],[7,0,39,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 39 MINEFIELD_DATA
+[0,0,0,0,8,-42,1,-44],[7,0,40,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 40 MINEFIELD_RESPONSE_NACK
+[0,0,0,0,8,-35,-28,-108],[7,0,41,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 41 ENVIRONMENTAL_PROCESS
+[0,0,0,0,9,23,98,-16],[7,0,42,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 42 GRIDDED_DATA
+[0,0,0,0,9,69,57,80],[7,0,43,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 43 POINT_OBJECT_STATE
+[0,0,0,0,9,-84,-98,-40],[7,0,44,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 44 LINEAR_OBJECT_STATE
+[0,0,0,0,9,-75,98,-104],[7,0,45,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 45 AREAL_OBJECT_STATE
+[0,0,0,0,9,-42,-55,-60],[7,0,46,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 46 TIME_SPACE_POSITION_INFORMATION
+[0,0,0,0,10,87,63,-76],[7,0,47,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 47 APPEARANCE
+[0,0,0,0,10,120,85,60],[7,0,48,11,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 48 ARTICULATED_PARTS
+[0,0,0,0,10,127,38,40],[7,0,49,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 49 LIVE_ENTITY_FIRE
+[0,0,0,0,10,-119,82,16],[7,0,50,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 50 LIVE_ENTITY_DETONATION
+[0,0,0,0,10,-87,-4,-12],[7,0,51,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 51 CREATE_ENTITY_RELIABLE
+[0,0,0,0,10,-79,-10,-64],[7,0,52,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 52 REMOVE_ENTITY_RELIABLE
+[0,0,0,0,10,-73,-36,32],[7,0,53,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 53 START_RESUME_RELIABLE
+[0,0,0,0,10,-66,121,-32],[7,0,54,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 54 STOP_FREEZE_RELIABLE
+[0,0,0,0,10,-59,-13,-116],[7,0,55,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0] # DisPduType 55 ACKNOWLEDGE_RELIABLE
+[0,0,0,0,10,-53,-125,96],[7,0,56,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 56 ACTION_REQUEST_RELIABLE
+[0,0,0,0,10,-44,22,76],[7,0,57,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 57 ACTION_RESPONSE_RELIABLE
+[0,0,0,0,10,-37,93,-108],[7,0,58,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 58 DATA_QUERY_RELIABLE
+[0,0,0,0,10,-28,94,-88],[7,0,59,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 59 SET_DATA_RELIABLE
+[0,0,0,0,10,-20,-116,104],[7,0,60,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 60 DATA_RELIABLE
+[0,0,0,0,10,-10,13,56],[7,0,61,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 61 EVENT_REPORT_RELIABLE
+[0,0,0,0,10,-2,-108,108],[7,0,62,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 62 COMMENT_RELIABLE
+[0,0,0,0,11,4,-46,20],[7,0,63,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 63 RECORD_RELIABLE
+[0,0,0,0,11,28,-39,-92],[7,0,64,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 64 SET_RECORD_RELIABLE
+[0,0,0,0,11,37,30,112],[7,0,65,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 65 RECORD_QUERY_RELIABLE
+[0,0,0,0,20,84,34,52],[7,0,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 66 COLLISION_ELASTIC
+[0,0,0,0,20,96,-44,-104],[7,0,67,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 67 ENTITY_STATE_UPDATE
+[0,0,0,0,20,105,-100,-92],[7,0,68,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 68 DIRECTED_ENERGY_FIRE
+[0,0,0,0,20,-78,46,-60],[7,0,69,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 69 ENTITY_DAMAGE_STATUS
+[0,0,0,0,20,-69,-25,112],[7,0,70,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 70 INFORMATION_OPERATIONS_ACTION
+[0,0,0,0,21,8,116,-76],[7,0,71,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DisPduType 71 INFORMATION_OPERATIONS_REPORT
+[0,0,0,0,21,39,-96,100],[7,0,72,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0] # DisPduType 72 ATTRIBUTE
+# Finish, ENCODING_PLAINTEXT, 20210815_131801, DIS capture file, pduLog\PduCaptureLog1.dislog
diff --git a/examples/src/OpenDis7Examples/PduListenerSaverLog.txt b/examples/src/OpenDis7Examples/PduListenerSaverLog.txt
index 81a25d029e4b071344000167aa16232be6576ce6..6ea0ec839523574fd823cc2338c95e860f1e59c4 100644
--- a/examples/src/OpenDis7Examples/PduListenerSaverLog.txt
+++ b/examples/src/OpenDis7Examples/PduListenerSaverLog.txt
@@ -1,25 +1,108 @@
 Invocation instructions:
 
 1. run or debug PduListenerSaver.java
-2. send PDUs from another program such as AllPduSender.java (used here)
-3. also running AllPduReceiver can confirm that DIS replay actually occurs.
-4. Type p/enter to pause, r/enter to resume, q/enter to quit
-5. if Pdusave.dislog file(s) already exist, your recording will be added.
+2. send DIS PDUs from another program such as AllPduSender.java (used here)
+3. also running AllPduReceiver or Wireshark can confirm that DIS replay actually occurs.
+4. Type p/enter to pause, r/enter to resume, q/enter in console window to quit PduListenerSaver.
+5. if Pdusave.dislog file(s) already exist, your recording will be appended.
 6. note existence of recorded files in directory, e.g. examples/pduLog/Pdusave.dislog
 7. rename/cut/paste your recording file to keep track of your results.
+8. Example capture log found in PduListenerSaverCaptureLog.dislog
 
 Program response:
 
 ===================================================
 
-DisExamplesOpenDis7.PduListenerSaver started...
-Beginning pdu save to directory pduLog
-* recorder.startResume(), state=RUNNING
-Warning: you must quit when complete, otherwise recorded PDUs are lost!
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/PduListenerSaver.java -Drun.class=OpenDis7Examples.PduListenerSaver run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+OpenDis7Examples.PduListenerSaver started...
+Beginning PduListenerSaver (239.1.2.3:3000) to directory pduLog
+Recorder log file open: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog1.dislog
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  Using network interface Intel(R) Centrino(R) Ultimate-N 6300 AGN
+class edu.nps.moves.dis7.utilities.stream.PduRecorder listening to IP address 239.1.2.3 on port 3000
 Type p/enter to pause, r/enter to resume, q/enter to quit
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 1. received DisPduType 01 ENTITY_STATE, size 144 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 2. received DisPduType 02 FIRE, size 96 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 3. received DisPduType 03 DETONATION, size 104 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 4. received DisPduType 04 COLLISION, size 60 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 5. received DisPduType 05 SERVICE_REQUEST, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 6. received DisPduType 06 RESUPPLY_OFFER, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 7. received DisPduType 07 RESUPPLY_RECEIVED, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 8. received DisPduType 08 RESUPPLY_CANCEL, size 24 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 9. received DisPduType 09 REPAIR_COMPLETE, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 10. received DisPduType 10 REPAIR_RESPONSE, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 11. received DisPduType 11 CREATE_ENTITY, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 12. received DisPduType 12 REMOVE_ENTITY, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 13. received DisPduType 13 START_RESUME, size 44 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 14. received DisPduType 14 STOP_FREEZE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 15. received DisPduType 15 ACKNOWLEDGE, size 32 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 16. received DisPduType 16 ACTION_REQUEST, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 17. received DisPduType 17 ACTION_RESPONSE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 18. received DisPduType 18 DATA_QUERY, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 19. received DisPduType 19 SET_DATA, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 20. received DisPduType 20 DATA, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 21. received DisPduType 21 EVENT_REPORT, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 22. received DisPduType 22 COMMENT, size 112 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 23. received DisPduType 23 ELECTROMAGNETIC_EMISSION, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 24. received DisPduType 24 DESIGNATOR, size 88 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 25. received DisPduType 25 TRANSMITTER, size 107 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 26. received DisPduType 26 SIGNAL, size 33 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 27. received DisPduType 27 RECEIVER, size 36 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 28. received DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE, size 60 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 29. received DisPduType 29 UNDERWATER_ACOUSTIC, size 32 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 30. received DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE, size 28 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 31. received DisPduType 31 INTERCOM_SIGNAL, size 33 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 32. received DisPduType 32 INTERCOM_CONTROL, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 33. received DisPduType 33 AGGREGATE_STATE, size 136 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 34. received DisPduType 34 ISGROUPOF, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 35. received DisPduType 35 TRANSFER_OWNERSHIP, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 36. received DisPduType 36 ISPARTOF, size 52 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 37. received DisPduType 37 MINEFIELD_STATE, size 72 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 38. received DisPduType 38 MINEFIELD_QUERY, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 39. received DisPduType 39 MINEFIELD_DATA, size 44 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 40. received DisPduType 40 MINEFIELD_RESPONSE_NACK, size 26 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 41. received DisPduType 41 ENVIRONMENTAL_PROCESS, size 32 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 42. received DisPduType 42 GRIDDED_DATA, size 64 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 43. received DisPduType 43 POINT_OBJECT_STATE, size 91 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 44. received DisPduType 44 LINEAR_OBJECT_STATE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 45. received DisPduType 45 AREAL_OBJECT_STATE, size 49 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 46. received DisPduType 46 TIME_SPACE_POSITION_INFORMATION, size 54 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 47. received DisPduType 47 APPEARANCE, size 67 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 48. received DisPduType 48 ARTICULATED_PARTS, size 17 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 49. received DisPduType 49 LIVE_ENTITY_FIRE, size 67 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 50. received DisPduType 50 LIVE_ENTITY_DETONATION, size 79 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 51. received DisPduType 51 CREATE_ENTITY_RELIABLE, size 32 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 52. received DisPduType 52 REMOVE_ENTITY_RELIABLE, size 32 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 53. received DisPduType 53 START_RESUME_RELIABLE, size 48 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 54. received DisPduType 54 STOP_FREEZE_RELIABLE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 55. received DisPduType 55 ACKNOWLEDGE_RELIABLE, size 32 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 56. received DisPduType 56 ACTION_REQUEST_RELIABLE, size 44 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 57. received DisPduType 57 ACTION_RESPONSE_RELIABLE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 58. received DisPduType 58 DATA_QUERY_RELIABLE, size 44 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 59. received DisPduType 59 SET_DATA_RELIABLE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 60. received DisPduType 60 DATA_RELIABLE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 61. received DisPduType 61 EVENT_REPORT_RELIABLE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 62. received DisPduType 62 COMMENT_RELIABLE, size 32 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 63. received DisPduType 63 RECORD_RELIABLE, size 36 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 64. received DisPduType 64 SET_RECORD_RELIABLE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 65. received DisPduType 65 RECORD_QUERY_RELIABLE, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 66. received DisPduType 66 COLLISION_ELASTIC, size 100 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 67. received DisPduType 67 ENTITY_STATE_UPDATE, size 72 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 68. received DisPduType 68 DIRECTED_ENERGY_FIRE, size 88 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 69. received DisPduType 69 ENTITY_DAMAGE_STATUS, size 24 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 70. received DisPduType 70 INFORMATION_OPERATIONS_ACTION, size 56 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 71. received DisPduType 71 INFORMATION_OPERATIONS_REPORT, size 40 bytes)
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 72. received DisPduType 72 ATTRIBUTE, size 32 bytes)
 q
+... QUIT
 
-Recorder log file closed
-* recorder.end(), recording complete.
-Ending pdu save to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\Pdusave2.dislog
-BUILD SUCCESSFUL (total time: 33 seconds)
+Closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog1.dislog
+Ending PduListenerSaver pdu recording, saved to file:
+C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog1.dislog
+BUILD SUCCESSFUL (total time: 32 seconds)
diff --git a/examples/src/OpenDis7Examples/PduReaderPlayer.java b/examples/src/OpenDis7Examples/PduReaderPlayer.java
index 4995353667f53e97bad02e758fbb0d9d0b2cc00a..606798dcdfa6504ceca60a3a7aa8412a4662758e 100644
--- a/examples/src/OpenDis7Examples/PduReaderPlayer.java
+++ b/examples/src/OpenDis7Examples/PduReaderPlayer.java
@@ -43,7 +43,7 @@ public class PduReaderPlayer
     String  outputDirectory = DEFAULT_OUTPUT_DIRECTORY;
     String multicastAddress = DEFAULT_MULTICAST_ADDRESS;
     int       multicastPort = DEFAULT_MULTICAST_PORT;
-    boolean sendToNet = false;
+    boolean       sendToNet = true;
     
     System.out.println("OpenDis7Examples.PduReaderPlayer started...");
 
@@ -71,12 +71,14 @@ public class PduReaderPlayer
     try {
       PduPlayer pduPlayer = new PduPlayer(multicastAddress, multicastPort, Path.of(outputDirectory), sendToNet);
       pduPlayer.startResume();
+      
       mystate state = mystate.RUNNING;
-      Scanner scan = new Scanner(System.in);
+      Scanner terminalKeyboardScanner = new Scanner(System.in);
 
-      while (true) {
+      while (true) // monitor user input via keyboard
+      {
         System.out.println("Type p/enter to pause, r/enter to resume, q/enter to quit");
-        String line = scan.nextLine();
+        String line = terminalKeyboardScanner.nextLine();
         if (line.equalsIgnoreCase("p") && state == mystate.RUNNING) {
           pduPlayer.stopPause();
           state = mystate.PAUSED;
@@ -86,6 +88,7 @@ public class PduReaderPlayer
           state = mystate.RUNNING;
         }
         else if (line.equalsIgnoreCase("q")) {
+          System.out.println("... QUIT");
           pduPlayer.end();
           break;
         }
diff --git a/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt b/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt
index 7c6a4361a8bd52edb1b201b3d1fa30f04e886f5a..23dc83d78903da357cee5db9c8ab3cf3d0c5e187 100644
--- a/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt
+++ b/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt
@@ -1,24 +1,104 @@
-Invocation instructions:
-
-0. check for existence of recorded files in directory, e.g. examples/pduLog/Pdusave.dislog
-1. first running AllPduReceiver can confirm that DIS replay actually occurs.
-2. run or debug PduReaderPlayer.java
-3. Type p/enter to pause, r/enter to resume, q/enter to quit
-
-Program response:
-
-===================================================
-
-DisExamplesOpenDis7.PduReaderPlayer started...
-Beginning pdu playback from directory pduLog
-Replaying DIS logs.
-Replaying C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\Pdusave.dislog
-Beginning of DIS capture file, Pdusave.dislog.  
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/PduReaderPlayer.java -Drun.class=OpenDis7Examples.PduReaderPlayer run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+OpenDis7Examples.PduReaderPlayer started...
+Beginning PduReaderPlayer (239.1.2.3:3000) to directory pduLog
+PduPlayer begin() playing DIS logs.
 Type p/enter to pause, r/enter to resume, q/enter to quit
-72
-End of replay from Pdusave.dislog
-End of DIS capture file, Pdusave.dislog.
+Replaying C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog
+ENCODING_PLAINTEXT
+Sent PDU: DisPduType 01 ENTITY_STATE
+Sent PDU: DisPduType 02 FIRE
+Sent PDU: DisPduType 03 DETONATION
+Sent PDU: DisPduType 04 COLLISION
+Sent PDU: DisPduType 05 SERVICE_REQUEST
+Sent PDU: DisPduType 06 RESUPPLY_OFFER
+Sent PDU: DisPduType 07 RESUPPLY_RECEIVED
+Sent PDU: DisPduType 08 RESUPPLY_CANCEL
+Sent PDU: DisPduType 09 REPAIR_COMPLETE
+Sent PDU: DisPduType 10 REPAIR_RESPONSE
+Sent PDU: DisPduType 11 CREATE_ENTITY
+Sent PDU: DisPduType 12 REMOVE_ENTITY
+Sent PDU: DisPduType 13 START_RESUME
+Sent PDU: DisPduType 14 STOP_FREEZE
+Sent PDU: DisPduType 15 ACKNOWLEDGE
+Sent PDU: DisPduType 16 ACTION_REQUEST
+Sent PDU: DisPduType 17 ACTION_RESPONSE
+Sent PDU: DisPduType 18 DATA_QUERY
+Sent PDU: DisPduType 19 SET_DATA
+Sent PDU: DisPduType 20 DATA
+Sent PDU: DisPduType 21 EVENT_REPORT
+Sent PDU: DisPduType 22 COMMENT
+Sent PDU: DisPduType 23 ELECTROMAGNETIC_EMISSION
+Sent PDU: DisPduType 24 DESIGNATOR
+Sent PDU: DisPduType 25 TRANSMITTER
+Sent PDU: DisPduType 26 SIGNAL
+Sent PDU: DisPduType 27 RECEIVER
+Sent PDU: DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE
+Sent PDU: DisPduType 29 UNDERWATER_ACOUSTIC
+Sent PDU: DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE
+Sent PDU: DisPduType 31 INTERCOM_SIGNAL
+Sent PDU: DisPduType 32 INTERCOM_CONTROL
+Sent PDU: DisPduType 33 AGGREGATE_STATE
+Sent PDU: DisPduType 34 ISGROUPOF
+Sent PDU: DisPduType 35 TRANSFER_OWNERSHIP
+Sent PDU: DisPduType 36 ISPARTOF
+Sent PDU: DisPduType 37 MINEFIELD_STATE
+Sent PDU: DisPduType 38 MINEFIELD_QUERY
+Sent PDU: DisPduType 39 MINEFIELD_DATA
+Sent PDU: DisPduType 40 MINEFIELD_RESPONSE_NACK
+Sent PDU: DisPduType 41 ENVIRONMENTAL_PROCESS
+Sent PDU: DisPduType 42 GRIDDED_DATA
+Sent PDU: DisPduType 43 POINT_OBJECT_STATE
+Sent PDU: DisPduType 44 LINEAR_OBJECT_STATE
+Sent PDU: DisPduType 45 AREAL_OBJECT_STATE
+Sent PDU: DisPduType 46 TIME_SPACE_POSITION_INFORMATION
+Sent PDU: DisPduType 47 APPEARANCE
+Sent PDU: DisPduType 48 ARTICULATED_PARTS
+Sent PDU: DisPduType 49 LIVE_ENTITY_FIRE
+Sent PDU: DisPduType 50 LIVE_ENTITY_DETONATION
+Sent PDU: DisPduType 51 CREATE_ENTITY_RELIABLE
+Sent PDU: DisPduType 52 REMOVE_ENTITY_RELIABLE
+Sent PDU: DisPduType 53 START_RESUME_RELIABLE
+Sent PDU: DisPduType 54 STOP_FREEZE_RELIABLE
+Sent PDU: DisPduType 55 ACKNOWLEDGE_RELIABLE
+Sent PDU: DisPduType 56 ACTION_REQUEST_RELIABLE
+Sent PDU: DisPduType 57 ACTION_RESPONSE_RELIABLE
+Sent PDU: DisPduType 58 DATA_QUERY_RELIABLE
+Sent PDU: DisPduType 59 SET_DATA_RELIABLE
+Sent PDU: DisPduType 60 DATA_RELIABLE
+Sent PDU: DisPduType 61 EVENT_REPORT_RELIABLE
+Sent PDU: DisPduType 62 COMMENT_RELIABLE
+Sent PDU: DisPduType 63 RECORD_RELIABLE
+Sent PDU: DisPduType 64 SET_RECORD_RELIABLE
+Sent PDU: DisPduType 65 RECORD_QUERY_RELIABLE
+Sent PDU: DisPduType 66 COLLISION_ELASTIC
+Sent PDU: DisPduType 67 ENTITY_STATE_UPDATE
+Sent PDU: DisPduType 68 DIRECTED_ENERGY_FIRE
+Sent PDU: DisPduType 69 ENTITY_DAMAGE_STATUS
+Sent PDU: DisPduType 70 INFORMATION_OPERATIONS_ACTION
+Sent PDU: DisPduType 71 INFORMATION_OPERATIONS_REPORT
+Sent PDU: DisPduType 72 ATTRIBUTE
+Total PDUs: 72
+End of replay from PduCaptureLog.dislog
+edu.nps.moves.dis7.utilities.stream.X3dSlidingWindowCompression.doSlidingWindow() regression: localMap.size()=1
+Insufficient keys to create X3D interpolators
+edu.nps.moves.dis7.utilities.stream.X3dSlidingWindowCompression.doSlidingWindow() regression: localMap.size()=1
+Insufficient keys to create X3D LineSet
+Replaying C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog1.dislog
+Total PDUs: 72 1...
+End of replay from PduCaptureLog1.dislog
+edu.nps.moves.dis7.utilities.stream.X3dSlidingWindowCompression.doSlidingWindow() regression: localMap.size()=1
+Insufficient keys to create X3D interpolators
+edu.nps.moves.dis7.utilities.stream.X3dSlidingWindowCompression.doSlidingWindow() regression: localMap.size()=1
+Insufficient keys to create X3D LineSet
 q
+... QUIT
 Ending pdu files playback for directory pduLog
-DisExamplesOpenDis7.PduReaderPlayer complete.
-BUILD SUCCESSFUL (total time: 20 seconds)
\ No newline at end of file
+OpenDis7Examples.PduReaderPlayer complete.
+BUILD SUCCESSFUL (total time: 46 seconds)
diff --git a/examples/src/OpenDis7Examples/PduReaderPlayerWireshark.png b/examples/src/OpenDis7Examples/PduReaderPlayerWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe642633248c7935d6aeb5ed7f0e0f8b4e43a13f
Binary files /dev/null and b/examples/src/OpenDis7Examples/PduReaderPlayerWireshark.png differ
diff --git a/examples/src/OpenDis7Examples/README.md b/examples/src/OpenDis7Examples/README.md
index 059f42eaf976a8e8d08ffaf8c3a58330fdae5315..13f02dc8e06baab2d76610f2649a3745a653e84a 100644
--- a/examples/src/OpenDis7Examples/README.md
+++ b/examples/src/OpenDis7Examples/README.md
@@ -1,6 +1,6 @@
 # DIS Protocol Examples using Open-DIS-Java Library v7
 
-TODO under development!
+All examples tested, TODO PduReaderPlayer operation still needs debugging.
 
 Course examples using the [Open-DIS-Java](https://github.com/open-dis/open-dis-java) library are presented in this package.
 
diff --git a/examples/src/TcpExamples/Assignment1TCPExample3ClientChange.java b/examples/src/TcpExamples/Assignment1TCPExample3ClientChange.java
index 10b89e0ed0515e96475cd5ebd66fb4d7935f91ba..862a2d1b9ffee90e0403a7501d5330fc46a8d63e 100644
--- a/examples/src/TcpExamples/Assignment1TCPExample3ClientChange.java
+++ b/examples/src/TcpExamples/Assignment1TCPExample3ClientChange.java
@@ -1,99 +1,99 @@
-package TcpExamples;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * This is Assignment 1 where I have modified the given code from TCPExample3Client
- * -sleep time has been extended to give more time in between loops
- * -Initial print line has been altered to reflect assingnment 1
- * -Loop only runs a finite number of times ,10.
- * Before, we always used telnet (netcat) to connect to the server. Here we are 
- * now writing our own program to do the connection.
- *
- * As you will see, when we run this after we start the server we will see the
- * same string telnet printed, sent by the server. The output at the server will
- * show different socket pairs for each time the loop iterates.
- *
- * @author mcgredo
- * @author brutzman
- */
-public class Assignment1TCPExample3ClientChange {
-
-    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
-     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
-     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
-     */
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
-
-    /**
-     * Program invocation, execution starts here
-     * @param args command-line arguments
-     */
-    public static void main(String[] args) throws InterruptedException {
-        
-        // Local variables/fields
-        Socket socket = null;
-        InputStream is;
-        Reader isr;
-        BufferedReader br;
-        String serverMessage;
-        int clientLoopCount = 0;
-        int numbLoops = 10;
-        
-        try {
-            while (clientLoopCount < numbLoops)
-            {
-                clientLoopCount++; // increment at beginning of loop for reliability
-                System.out.println(Assignment1TCPExample3ClientChange.class.getName() + " creating socket...");
-
-                // We request an IP to connect to ("localhost") and
-                // port number at that IP (2317). This establishes
-                // a connection to that IP in the form of a Socket
-                // object; the server uses a ServerSocket to wait for
-                // connections.
-                socket = new Socket(LOCALHOST, 2317); // locohost?
-
-                // Now hook everything up (i.e. set up the streams), Java style:
-                is  = socket.getInputStream();
-                isr = new InputStreamReader(is);
-                br  = new BufferedReader(isr);
-
-                // Read a single line written by the server. We'd
-                // do things a bit differently if there were many lines to be read
-                // from the server instead of one only.
-                serverMessage = br.readLine();
-                System.out.println("======================Assignment1===========================");
-                       
-                System.out.print  ("Client loop " + clientLoopCount + ": ");
-                System.out.println("now we're talking!");
-                System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
-                
-                Thread.sleep(800l); // slow things down, for example 500l (long) = 500 msec
-                
-            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
-        } 
-        catch (IOException e)
-        {
-            System.err.println("Problem with " + TcpExample3Client.class.getName() + " networking:"); // describe what is happening
-            System.err.println("Error: " + e);
-            
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
-        }
-        finally // occurs after any other activity when shutting down
-        {
-            try {
-                if (socket != null)
-                    socket.close();
-            } catch (IOException e) {}
-            
-            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
-            System.out.println();
-            System.out.println(TcpExample3Client.class.getName() + " exit");
-        }
-    }
-}
+package TcpExamples;
+
+import java.io.*;
+import java.net.*;
+
+/**
+ * This is Assignment 1 where I have modified the given code from TCPExample3Client
+ * -sleep time has been extended to give more time in between loops
+ * -Initial print line has been altered to reflect assingnment 1
+ * -Loop only runs a finite number of times ,10.
+ * Before, we always used telnet (netcat) to connect to the server. Here we are 
+ * now writing our own program to do the connection.
+ *
+ * As you will see, when we run this after we start the server we will see the
+ * same string telnet printed, sent by the server. The output at the server will
+ * show different socket pairs for each time the loop iterates.
+ *
+ * @author mcgredo
+ * @author brutzman
+ */
+public class Assignment1TCPExample3ClientChange {
+
+    /** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
+     * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
+     * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
+     */
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+
+    /**
+     * Program invocation, execution starts here
+     * @param args command-line arguments
+     */
+    public static void main(String[] args)
+    {    
+        // Local variables/fields
+        Socket socket = null;
+        InputStream is;
+        Reader isr;
+        BufferedReader br;
+        String serverMessage;
+        int clientLoopCount = 0;
+        int numberOfLoops = 10;
+        
+        try {
+            while (clientLoopCount < numberOfLoops)
+            {
+                clientLoopCount++; // increment at beginning of loop for reliability
+                System.out.println(Assignment1TCPExample3ClientChange.class.getName() + " creating socket...");
+
+                // We request an IP to connect to ("localhost") and
+                // port number at that IP (2317). This establishes
+                // a connection to that IP in the form of a Socket
+                // object; the server uses a ServerSocket to wait for
+                // connections.
+                socket = new Socket(LOCALHOST, 2317); // locohost?
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                is  = socket.getInputStream();
+                isr = new InputStreamReader(is);
+                br  = new BufferedReader(isr);
+
+                // Read a single line written by the server. We'd
+                // do things a bit differently if there were many lines to be read
+                // from the server instead of one only.
+                serverMessage = br.readLine();
+                System.out.println("======================Assignment1===========================");
+                       
+                System.out.print  ("Client loop " + clientLoopCount + ": ");
+                System.out.println("now we're talking!");
+                System.out.println("The message the server sent was: '" + serverMessage + "'");
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
+                
+                Thread.sleep(800l); // slow things down, for example 500l (long) = 500 msec
+                
+            } // end while(true) // infinite loops are dangerous, be sure to kill this process!
+        } 
+        catch (IOException | InterruptedException e)
+        {
+            System.err.println("Problem with " + TcpExample3Client.class.getName() + " networking:"); // describe what is happening
+            System.err.println("Error: " + e);
+            
+            // Provide more helpful information to user if exception occurs due to running twice at one time
+            if (e instanceof java.net.BindException) {
+                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
+            }
+        }
+        finally // occurs after any other activity when shutting down
+        {
+            try {
+                if (socket != null)
+                    socket.close();
+            } catch (IOException e) {}
+            
+            // program exit: tell somebody about that happening.  Likely cause: server drops connection.
+            System.out.println();
+            System.out.println(TcpExample3Client.class.getName() + " exit");
+        }
+    }
+}
diff --git a/examples/src/TcpExamples/TcpExample1Telnet.java b/examples/src/TcpExamples/TcpExample1Telnet.java
index df9d5745c9f45f3bf975ce79df71db8c0d8fa9c3..e969b7958c6c8ec3c52a34acc17a694cb714a42b 100644
--- a/examples/src/TcpExamples/TcpExample1Telnet.java
+++ b/examples/src/TcpExamples/TcpExample1Telnet.java
@@ -59,7 +59,7 @@ public class TcpExample1Telnet
                 // Use Java io classes to write text (as opposed to
                 // unknown bytes of some sort) to the client
                 OutputStream os = clientConnection.getOutputStream();
-                PrintStream ps = new PrintStream(os);
+                PrintStream  ps = new PrintStream(os);
                 
                         ps.println("This client response was written by server " + TcpExample1Telnet.class.getName()); // to remote client
                 System.out.println("This server response was written by server " + TcpExample1Telnet.class.getName()); // to server console
diff --git a/examples/src/TcpExamples/TcpExample3Client.java b/examples/src/TcpExamples/TcpExample3Client.java
index 64113b2e71279ff361251f2240ae9898793fffde..f5f7e1c5a842de1a4567ee27837c6e6ee01b5f36 100644
--- a/examples/src/TcpExamples/TcpExample3Client.java
+++ b/examples/src/TcpExamples/TcpExample3Client.java
@@ -20,14 +20,14 @@ public class TcpExample3Client {
      * @see <a href="https://en.wikipedia.org/wiki/localhost">https://en.wikipedia.org/wiki/localhost</a>
      * @see <a href="https://en.wikipedia.org/wiki/IPv6_address">https://en.wikipedia.org/wiki/IPv6_address</a> 
      */
-    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; //Local host
 
     /**
      * Program invocation, execution starts here
      * @param args command-line arguments
      */
-    public static void main(String[] args) throws InterruptedException {
-        
+    public static void main(String[] args)
+    {        
         // Local variables/fields
         Socket socket = null;
         InputStream is;
@@ -69,7 +69,7 @@ public class TcpExample3Client {
                 
             } // end while(true) // infinite loops are dangerous, be sure to kill this process!
         } 
-        catch (IOException e)
+        catch (IOException | InterruptedException e )
         {
             System.err.println("Problem with " + TcpExample3Client.class.getName() + " networking:"); // describe what is happening
             System.err.println("Error: " + e);
diff --git a/examples/src/TcpExamples/TcpExample3Server.java b/examples/src/TcpExamples/TcpExample3Server.java
index 0e7a3f29f14da43c766d9a9f083a01a21c0358c3..7d5439e1bb0e96b125bb31a3a3a4c4ead6c0ae78 100644
--- a/examples/src/TcpExamples/TcpExample3Server.java
+++ b/examples/src/TcpExamples/TcpExample3Server.java
@@ -81,8 +81,7 @@ public class TcpExample3Server {
                     
                     if ( localAddress.getHostName().equals( localAddress.getHostAddress()) ||
                         remoteAddress.getHostName().equals(remoteAddress.getHostAddress()))
-                        System.out.println("  note HostName matches address if host has no DNS name");
-                    
+                        System.out.println("  note HostName matches address if host has no DNS name");                    
                     // Notice the use of flush() and try w/ resources. Without
                     // the try w/ resources the Socket object may stay open for
                     // a while after the client has stopped needing this
diff --git a/examples/src/TcpExamples/TcpExample4Client.java b/examples/src/TcpExamples/TcpExample4Client.java
index d23536a8887d420f74cb2725b66e2be0c957c34d..f7bea7cc274da41c6e402d6814b572212e69a2d0 100644
--- a/examples/src/TcpExamples/TcpExample4Client.java
+++ b/examples/src/TcpExamples/TcpExample4Client.java
@@ -12,7 +12,8 @@ import java.net.*;
  * @author Don Brutzman
  * @author MV3500 class
  */
-public class TcpExample4Client {
+public class TcpExample4Client
+{
     static String DESTINATION_HOST = "localhost";
     static int    MAX_LOOP_COUNT   = 4;
 
diff --git a/examples/src/UdpMulticastExamples/MulticastReceiver.java b/examples/src/UdpExamples/MulticastUdpReceiver.java
similarity index 93%
rename from examples/src/UdpMulticastExamples/MulticastReceiver.java
rename to examples/src/UdpExamples/MulticastUdpReceiver.java
index 6a55a5c050fd4e00d5c8764c054d655c2b07100e..a54f2fd50d811f2667b9b523f2944a7fa8e7e5ee 100644
--- a/examples/src/UdpMulticastExamples/MulticastReceiver.java
+++ b/examples/src/UdpExamples/MulticastUdpReceiver.java
@@ -1,4 +1,4 @@
-package UdpMulticastExamples;
+package UdpExamples;
 
 import edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface;
 import java.io.*;
@@ -13,7 +13,7 @@ import java.util.logging.Logger;
  * @author mcgredo
  * @author brutzman
  */
-public class MulticastReceiver {
+public class MulticastUdpReceiver {
 
     // reserved range for all IPv4 multicast: 224.0.0.0 through 239.255.255.255
     // https://en.wikipedia.org/wiki/Multicast_address
@@ -41,7 +41,7 @@ public class MulticastReceiver {
         DatagramPacket packet = new DatagramPacket(buffer.array(), buffer.capacity());
         
         try {
-            System.out.println("MulticastReceiver started...");
+            System.out.println("UdpMulticastExamples.MulticastUdpReceiver started...");
 
             // This is a java/IPv6 problem. You should also add it to the
             // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
@@ -78,8 +78,8 @@ public class MulticastReceiver {
                     nextChar = buffer.getChar();
                     firstCharacters.append(nextChar);
                 }
-                if (firstCharacters.toString().contains(MulticastSender.QUIT_SENTINEL)) {
-                    System.out.println("Received sentinel \"" + MulticastSender.QUIT_SENTINEL + "\"");
+                if (firstCharacters.toString().contains(MulticastUdpSender.QUIT_SENTINEL)) {
+                    System.out.println("Received sentinel \"" + MulticastUdpSender.QUIT_SENTINEL + "\"");
                     if (!INFINITE_READ_LOOP) {
                         break; // exit out of reading loop
                     }
@@ -107,7 +107,7 @@ public class MulticastReceiver {
                 try {
                     multicastSocket.leaveGroup(group, ni);
                 } catch (IOException ex) {
-                    Logger.getLogger(MulticastReceiver.class.getName()).log(Level.SEVERE, null, ex);
+                    Logger.getLogger(MulticastUdpReceiver.class.getName()).log(Level.SEVERE, null, ex);
                 }
                 multicastSocket.close();
             }
diff --git a/examples/src/UdpMulticastExamples/MulticastSender.java b/examples/src/UdpExamples/MulticastUdpSender.java
similarity index 94%
rename from examples/src/UdpMulticastExamples/MulticastSender.java
rename to examples/src/UdpExamples/MulticastUdpSender.java
index 9a1f4a7141c1b9a34e1ac02570f92cd2e47b4726..3611f0e501047320e14e524ad4d1128bc4283cdb 100644
--- a/examples/src/UdpMulticastExamples/MulticastSender.java
+++ b/examples/src/UdpExamples/MulticastUdpSender.java
@@ -1,4 +1,4 @@
-package UdpMulticastExamples;
+package UdpExamples;
 
 import edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface;
 import java.io.*;
@@ -14,8 +14,8 @@ import java.util.logging.Logger;
  * @author mcgredo
  * @author brutzman
  */
-public class MulticastSender {
-
+public class MulticastUdpSender
+{
     // reserved range for all IPv4 multicast: 224.0.0.0 through 239.255.255.255
     // https://www.iana.org/assignments/multicast-addresses/multicast-addresses.xhtml
 
@@ -56,7 +56,7 @@ public class MulticastSender {
         
         try
         {
-            System.out.println("MulticastSender started...");
+            System.out.println("UdpMulticastExamples.MulticastUdpSender started...");
             // This is a java/IPv6 problem. You should also add it to the
             // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
             // set in the "run" section of preferences. Also, typically
@@ -95,7 +95,7 @@ public class MulticastSender {
                 buffer = baos.toByteArray();
                 packet.setData(buffer);
                 multicastSocket.send(packet);
-                System.out.println("Sent multicast packet " + index + " of " + LOOPSIZE);
+                System.out.println("Sent multicast packet " + (index + 1) + " of " + LOOPSIZE);
                 baos.reset();
 
                 // How fast does this go? Does UDP try to slow it down, or does
@@ -117,7 +117,7 @@ public class MulticastSender {
                 try {
                     multicastSocket.leaveGroup(group, ni);
                 } catch (IOException ex) {
-                    Logger.getLogger(MulticastSender.class.getName()).log(Level.SEVERE, null, ex);
+                    Logger.getLogger(MulticastUdpSender.class.getName()).log(Level.SEVERE, null, ex);
                 }
                 multicastSocket.close();
             }
diff --git a/examples/src/UdpExamples/MulticastUdpSenderWireshark.png b/examples/src/UdpExamples/MulticastUdpSenderWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..554252e59b9815a5e8704ee219a71b6d7cf39e3b
Binary files /dev/null and b/examples/src/UdpExamples/MulticastUdpSenderWireshark.png differ
diff --git a/examples/src/UdpExamples/MulticastUdpTerminalLog.txt b/examples/src/UdpExamples/MulticastUdpTerminalLog.txt
new file mode 100644
index 0000000000000000000000000000000000000000..812f534444435079cdb571599980a61693ef0d72
--- /dev/null
+++ b/examples/src/UdpExamples/MulticastUdpTerminalLog.txt
@@ -0,0 +1,82 @@
+Invocation instructions:
+1. run/debug MulticastReceiver.java
+2. run/debug MulticastSender.java
+
+Program responses follow for sender and receiver:
+
+===================================================
+UdpMulticastExamples.MulticastUdpSender started...
+Multicast address/port: 239.1.2.15/1718
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  Using network interface Intel(R) Centrino(R) Ultimate-N 6300 AGN
+Sent multicast packet 1 of 20
+Sent multicast packet 2 of 20
+Sent multicast packet 3 of 20
+Sent multicast packet 4 of 20
+Sent multicast packet 5 of 20
+Sent multicast packet 6 of 20
+Sent multicast packet 7 of 20
+Sent multicast packet 8 of 20
+Sent multicast packet 9 of 20
+Sent multicast packet 10 of 20
+Sent multicast packet 11 of 20
+Sent multicast packet 12 of 20
+Sent multicast packet 13 of 20
+Sent multicast packet 14 of 20
+Sent multicast packet 15 of 20
+Sent multicast packet 16 of 20
+Sent multicast packet 17 of 20
+Sent multicast packet 18 of 20
+Sent multicast packet 19 of 20
+Sent multicast packet 20 of 20
+MulticastSender complete.
+BUILD SUCCESSFUL (total time: 22 seconds)
+
+===================================================
+run:
+UdpMulticastExamples.MulticastUdpReceiver started...
+[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface]  Using network interface Intel(R) Centrino(R) Ultimate-N 6300 AGN
+Multicast address/port: 239.1.2.15/1718
+Multicast packets received log:
+ 1. "From don: MulticastSender packet 0;" index=0, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 2. "From don: MulticastSender packet 1;" index=1, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 3. "From don: MulticastSender packet 2;" index=2, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 4. "From don: MulticastSender packet 3;" index=3, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 5. "From don: MulticastSender packet 4;" index=4, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 6. "From don: MulticastSender packet 5;" index=5, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 7. "From don: MulticastSender packet 6;" index=6, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 8. "From don: MulticastSender packet 7;" index=7, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+ 9. "From don: MulticastSender packet 8;" index=8, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+10. "From don: MulticastSender packet 9;" index=9, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+11. "From don: MulticastSender packet 10;" index=10, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+12. "From don: MulticastSender packet 11;" index=11, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+13. "From don: MulticastSender packet 12;" index=12, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+14. "From don: MulticastSender packet 13;" index=13, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+15. "From don: MulticastSender packet 14;" index=14, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+16. "From don: MulticastSender packet 15;" index=15, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+17. "From don: MulticastSender packet 16;" index=16, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+18. "From don: MulticastSender packet 17;" index=17, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+19. "From don: MulticastSender packet 18;" index=18, firstFloat=17.0 secondFloat=23.0
+MulticastReceiver loop complete.
+Received sentinel "QUIT QUIT QUIT!"
+20. "QUIT QUIT QUIT!;" index=6357107, firstFloat=1.0653034E-38 secondFloat=9.275539E-39
+MulticastReceiver loop complete.
+
+===================================================
diff --git a/examples/src/UdpMulticastExamples/UdpReceiver.java b/examples/src/UdpExamples/UnicastUdpReceiver.java
similarity index 68%
rename from examples/src/UdpMulticastExamples/UdpReceiver.java
rename to examples/src/UdpExamples/UnicastUdpReceiver.java
index 987493ecdd9ce1b68d24a8d455660f6c1501ccfc..bb5e018feafb798690169866cd56387c3ac978dd 100644
--- a/examples/src/UdpMulticastExamples/UdpReceiver.java
+++ b/examples/src/UdpExamples/UnicastUdpReceiver.java
@@ -1,4 +1,4 @@
-package UdpMulticastExamples;
+package UdpExamples;
 
 import java.io.*;
 import java.net.*;
@@ -9,35 +9,38 @@ import java.net.*;
  * for each. This prevents collision complaints from the localhost.
  * 
  * Start this before launching UdpSender.
- * 
+ *
+ * @see <a href="https://docs.oracle.com/javase/tutorial/networking/datagrams/index.html">https://docs.oracle.com/javase/tutorial/networking/datagrams/index.html</a>
  * @see <a href="https://docs.oracle.com/javase/tutorial/essential/io/datastreams.html">https://docs.oracle.com/javase/tutorial/essential/io/datastreams.html</a>
  * @see <a href="https://en.wikipedia.org/wiki/User_Datagram_Protocol">https://en.wikipedia.org/wiki/User_Datagram_Protocol</a>
  * @author mcgredo
  * @author brutzman
  */
-public class UdpReceiver 
+public class UnicastUdpReceiver 
 {
-//  private static final int       SENDING_PORT = 1414; // port used by UdpSender, unneeded here
-    private static final int     RECEIVING_PORT = 1415;
-    private static final String DESINATION_HOST = "localhost";
+//  public static final int        SENDING_PORT = 1414;        // port used by UdpSender, unneeded here
+    /** socket value of shared interest */
+    public static final int      UDP_PORT = 1415;        // sharable
+    /** socket value of shared interest */
+    public static final String DESTINATION_HOST = "localhost";
 
     /**
      * Program invocation, execution starts here
      * @param args command-line arguments
-     * @throws java.io.IOException execution error
      */
-    public static void main(String[] args) throws IOException
+    public static void main(String[] args)
     {
         DatagramSocket udpSocket = null;
         
         try
         {
-            System.out.println(UdpReceiver.class.getName() + " started...");
+            System.out.println(UnicastUdpReceiver.class.getName() + " started...");
             
             // Create a UDP socket
-            udpSocket = new DatagramSocket(RECEIVING_PORT);
+            udpSocket = new DatagramSocket(UDP_PORT);
             udpSocket.setReceiveBufferSize(1500); // how many bytes are in buffer?  MTU=1500 is good
             udpSocket.setBroadcast(false);        // we're just receiving here
+//            udpSocket.setReuseAddress(true);
             
             byte[] byteArray = new byte[1500];
             DatagramPacket receivePacket = new DatagramPacket(byteArray, byteArray.length);
@@ -58,6 +61,13 @@ public class UdpReceiver
                 packetCount++; // good practice to increment counter at start of loop, when possible
                 udpSocket.receive(receivePacket); // blocks until packet is received
                 
+                if (packetCount == 1)
+                {                
+                    if  (udpSocket.getInetAddress() == null)
+                         System.out.println("UdpReceiver address/port: UDP socket address null (loopback)" + "/" + UDP_PORT);
+                    else System.out.println("UdpReceiver address/port: " + udpSocket.getInetAddress().getHostAddress() + "/" + UDP_PORT);
+                }
+
                 // values of interest follow. order and types of what was sent must match what you are reading!
                 firstInt     = dis.readInt();     // packetID
                 secondFloat  = dis.readFloat();
@@ -70,8 +80,9 @@ public class UdpReceiver
                      padding = " ";
                 else padding = "";
                 
-                System.out.println("[" + UdpReceiver.class.getName() + "]" + 
-                                               " packetID="   + firstInt +            // have output message use same name as sender
+                System.out.println("[" + UnicastUdpReceiver.class.getName() + "]" + 
+                                                    " port="   + UDP_PORT +
+                                                " packetID="   + firstInt +            // have output message use same name as sender
                                      ", second float value="   + secondFloat  + 
                                      ", third String value=\"" + thirdString  + "\"" + // note that /" is literal quote character
                                     " isPacketIdEvenParity="   + isEvenParity + ","  + padding +
@@ -87,7 +98,7 @@ public class UdpReceiver
         {
             if (udpSocket != null)
                 udpSocket.close();
-            System.out.println(UdpReceiver.class.getName() + " complete."); // all done
+            System.out.println(UnicastUdpReceiver.class.getName() + " complete."); // all done
         }
     }
 }
diff --git a/examples/src/UdpMulticastExamples/UdpSender.java b/examples/src/UdpExamples/UnicastUdpSender.java
similarity index 75%
rename from examples/src/UdpMulticastExamples/UdpSender.java
rename to examples/src/UdpExamples/UnicastUdpSender.java
index e4e9bab1c2267379bc8e33f1cad7fed231894aa2..246375aebe29390b8392b1dae8759a0b5e67a9ce 100644
--- a/examples/src/UdpMulticastExamples/UdpSender.java
+++ b/examples/src/UdpExamples/UnicastUdpSender.java
@@ -1,4 +1,4 @@
-package UdpMulticastExamples;
+package UdpExamples;
 
 import java.io.*;
 import java.net.*;
@@ -17,23 +17,25 @@ import java.net.*;
  * @author mcgredo
  * @author brutzman
  */
-public class UdpSender 
+public class UnicastUdpSender 
 {
     private static final String            MY_NAME = System.getProperty("user.name"); // guru incantation   8)
-//  private static final int          SENDING_PORT = 1414; // not needed, can let system choose an open local port
-    private static final int        RECEIVING_PORT = 1415;
+//  public  static final int          SENDING_PORT = 1414; // not needed, can let system choose an open local port
+    /** socket value of shared interest */
+    public  static final int              UDP_PORT = UnicastUdpReceiver.UDP_PORT; // 1415; ensure consistent
     private static final int TOTAL_PACKETS_TO_SEND = 100;
     
+    /** socket value of shared interest */
+    public static  final String   DESTINATION_HOST = "localhost"; 
     // here is what we need for lab comms
-    private static final String   DESTINATION_HOST = "10.1.105.16"; // localhost 127.0.0.1 or argon 10.1.105.1 or 10.1.105.1 or whatever
+//  public static final String   DESTINATION_HOST = "10.1.105.16"; // localhost 127.0.0.1 or argon 10.1.105.1 or 10.1.105.1 or whatever
     
     /**
      * Program invocation, execution starts here
      * @param args command-line arguments
-     * @throws java.io.IOException execution error
      */
     @SuppressWarnings("SleepWhileInLoop")
-    public static void main(String[] args) throws IOException 
+    public static void main(String[] args)
     {
         DatagramSocket udpSocket = null;
         DataOutputStream  dos = null;
@@ -44,8 +46,8 @@ public class UdpSender
         
         try
         {
-            System.out.println(UdpSender.class.getName() + " shows how to send simple-type values via DataOutputStream");
-            System.out.println(UdpSender.class.getName() + " started...");
+            System.out.println(UnicastUdpSender.class.getName() + " shows how to send simple-type values via DataOutputStream");
+            System.out.println(UnicastUdpSender.class.getName() + " started...");
             
             // Create a UDP socket
             udpSocket = new DatagramSocket(); // let system assign output port, then SENDING_PORT not needed
@@ -66,7 +68,9 @@ public class UdpSender
             // ID of the host we are sending from
             InetAddress      sourceAddress = InetAddress.getByName("localhost"); // possibly identical if source not modified
             
-            DatagramPacket datagramPacket = new DatagramPacket(byteArray, byteArray.length, destinationAddress, RECEIVING_PORT);
+            DatagramPacket datagramPacket = new DatagramPacket(byteArray, byteArray.length, destinationAddress, UDP_PORT);
+            
+            System.out.println("UdpSender address/port: " + destinationAddress.getHostAddress() + "/" + UDP_PORT);
        
             // Hmmm, how fast does UDP stream go? Does UDP effectively slow packets down, or does
             // this cause network problems? (hint: yes for an unlimited send rate, unlike TCP).
@@ -95,12 +99,13 @@ public class UdpSender
                      padding = " ";
                 else padding = "";
             
-                Thread.sleep(1000); // Send packets at rate of one per second
-                System.out.println("[" + UdpSender.class.getName() + "] " + MY_NAME + " " + sourceAddress + 
-                                   " sent values(" + packetID + "," + value + ",\"" + message + "\"," + isPacketIdEvenParity +
+                Thread.sleep(100); // Send packets at rate of one per second
+                System.out.println("[" + UnicastUdpSender.class.getName() + "] " + MY_NAME + " " + sourceAddress +
+                                   " port=" + UDP_PORT +
+                                   " has sent values (" + packetID + "," + value + ",\"" + message + "\"," + isPacketIdEvenParity +
                                    ")" + padding + " as packet #" + index + " of " + TOTAL_PACKETS_TO_SEND);
                 baos.reset(); // clear the output stream after sending
-            }
+            }   // end for loop
         }
         catch (IOException | InterruptedException e)
         {
@@ -111,10 +116,17 @@ public class UdpSender
         {
             if (udpSocket != null)
                 udpSocket.close();
-            
-            if (dos != null)
-                dos.close();
-            System.out.println(UdpSender.class.getName() + " complete."); // all done
+            try
+            {
+                if (dos != null)
+                    dos.close();
+            }
+            catch (IOException e)
+            {
+                System.err.println("Problem with UdpSender, see exception trace:");
+                System.err.println(e);
+            } 
+            System.out.println(UnicastUdpSender.class.getName() + " complete."); // all done
         }
     }
 }
diff --git a/examples/src/UdpExamples/UnicastUdpSenderWireshark.png b/examples/src/UdpExamples/UnicastUdpSenderWireshark.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f942e7bb96079af5b73e17424c727700e8b6d92
Binary files /dev/null and b/examples/src/UdpExamples/UnicastUdpSenderWireshark.png differ
diff --git a/examples/src/UdpExamples/UnicastUdpSenderWiresharkCapture.pcapng b/examples/src/UdpExamples/UnicastUdpSenderWiresharkCapture.pcapng
new file mode 100644
index 0000000000000000000000000000000000000000..19954b32a75dc72d76cf4a4f2962870914b89dc5
Binary files /dev/null and b/examples/src/UdpExamples/UnicastUdpSenderWiresharkCapture.pcapng differ
diff --git a/examples/src/UdpExamples/UnicastUdpTerminalLog.txt b/examples/src/UdpExamples/UnicastUdpTerminalLog.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4299dbbd2e5c33f5714efa39c7f66ee421c0b9e6
--- /dev/null
+++ b/examples/src/UdpExamples/UnicastUdpTerminalLog.txt
@@ -0,0 +1,336 @@
+These Java program examples read/write strictly typed values (integer, float, string, boolean).
+
+Invocation instructions:
+1. first run/debug UdpReceiver.java so it is listening.
+2.  then run/debug UdpSender.java
+
+Program responses follow for sender and receiver:
+
+===================================================
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=UdpMulticastExamples/UdpSender.java -Drun.class=UdpMulticastExamples.UdpSender run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+UdpMulticastExamples.UdpSender shows how to send simple-type values via DataOutputStream
+UdpMulticastExamples.UdpSender started...
+UdpSender address/port: 127.0.0.1/1415
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (1,99.0,"don says Hello MV3500",false) as packet #1 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (2,98.0,"don says Hello MV3500",true)  as packet #2 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (3,97.0,"don says Hello MV3500",false) as packet #3 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (4,96.0,"don says Hello MV3500",true)  as packet #4 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (5,95.0,"don says Hello MV3500",false) as packet #5 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (6,94.0,"don says Hello MV3500",true)  as packet #6 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (7,93.0,"don says Hello MV3500",false) as packet #7 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (8,92.0,"don says Hello MV3500",true)  as packet #8 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (9,91.0,"don says Hello MV3500",false) as packet #9 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (10,90.0,"don says Hello MV3500",true)  as packet #10 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (11,89.0,"don says Hello MV3500",false) as packet #11 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (12,88.0,"don says Hello MV3500",true)  as packet #12 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (13,87.0,"don says Hello MV3500",false) as packet #13 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (14,86.0,"don says Hello MV3500",true)  as packet #14 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (15,85.0,"don says Hello MV3500",false) as packet #15 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (16,84.0,"don says Hello MV3500",true)  as packet #16 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (17,83.0,"don says Hello MV3500",false) as packet #17 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (18,82.0,"don says Hello MV3500",true)  as packet #18 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (19,81.0,"don says Hello MV3500",false) as packet #19 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (20,80.0,"don says Hello MV3500",true)  as packet #20 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (21,79.0,"don says Hello MV3500",false) as packet #21 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (22,78.0,"don says Hello MV3500",true)  as packet #22 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (23,77.0,"don says Hello MV3500",false) as packet #23 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (24,76.0,"don says Hello MV3500",true)  as packet #24 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (25,75.0,"don says Hello MV3500",false) as packet #25 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (26,74.0,"don says Hello MV3500",true)  as packet #26 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (27,73.0,"don says Hello MV3500",false) as packet #27 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (28,72.0,"don says Hello MV3500",true)  as packet #28 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (29,71.0,"don says Hello MV3500",false) as packet #29 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (30,70.0,"don says Hello MV3500",true)  as packet #30 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (31,69.0,"don says Hello MV3500",false) as packet #31 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (32,68.0,"don says Hello MV3500",true)  as packet #32 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (33,67.0,"don says Hello MV3500",false) as packet #33 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (34,66.0,"don says Hello MV3500",true)  as packet #34 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (35,65.0,"don says Hello MV3500",false) as packet #35 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (36,64.0,"don says Hello MV3500",true)  as packet #36 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (37,63.0,"don says Hello MV3500",false) as packet #37 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (38,62.0,"don says Hello MV3500",true)  as packet #38 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (39,61.0,"don says Hello MV3500",false) as packet #39 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (40,60.0,"don says Hello MV3500",true)  as packet #40 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (41,59.0,"don says Hello MV3500",false) as packet #41 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (42,58.0,"don says Hello MV3500",true)  as packet #42 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (43,57.0,"don says Hello MV3500",false) as packet #43 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (44,56.0,"don says Hello MV3500",true)  as packet #44 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (45,55.0,"don says Hello MV3500",false) as packet #45 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (46,54.0,"don says Hello MV3500",true)  as packet #46 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (47,53.0,"don says Hello MV3500",false) as packet #47 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (48,52.0,"don says Hello MV3500",true)  as packet #48 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (49,51.0,"don says Hello MV3500",false) as packet #49 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (50,50.0,"don says Hello MV3500",true)  as packet #50 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (51,49.0,"don says Hello MV3500",false) as packet #51 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (52,48.0,"don says Hello MV3500",true)  as packet #52 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (53,47.0,"don says Hello MV3500",false) as packet #53 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (54,46.0,"don says Hello MV3500",true)  as packet #54 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (55,45.0,"don says Hello MV3500",false) as packet #55 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (56,44.0,"don says Hello MV3500",true)  as packet #56 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (57,43.0,"don says Hello MV3500",false) as packet #57 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (58,42.0,"don says Hello MV3500",true)  as packet #58 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (59,41.0,"don says Hello MV3500",false) as packet #59 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (60,40.0,"don says Hello MV3500",true)  as packet #60 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (61,39.0,"don says Hello MV3500",false) as packet #61 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (62,38.0,"don says Hello MV3500",true)  as packet #62 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (63,37.0,"don says Hello MV3500",false) as packet #63 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (64,36.0,"don says Hello MV3500",true)  as packet #64 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (65,35.0,"don says Hello MV3500",false) as packet #65 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (66,34.0,"don says Hello MV3500",true)  as packet #66 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (67,33.0,"don says Hello MV3500",false) as packet #67 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (68,32.0,"don says Hello MV3500",true)  as packet #68 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (69,31.0,"don says Hello MV3500",false) as packet #69 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (70,30.0,"don says Hello MV3500",true)  as packet #70 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (71,29.0,"don says Hello MV3500",false) as packet #71 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (72,28.0,"don says Hello MV3500",true)  as packet #72 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (73,27.0,"don says Hello MV3500",false) as packet #73 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (74,26.0,"don says Hello MV3500",true)  as packet #74 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (75,25.0,"don says Hello MV3500",false) as packet #75 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (76,24.0,"don says Hello MV3500",true)  as packet #76 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (77,23.0,"don says Hello MV3500",false) as packet #77 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (78,22.0,"don says Hello MV3500",true)  as packet #78 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (79,21.0,"don says Hello MV3500",false) as packet #79 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (80,20.0,"don says Hello MV3500",true)  as packet #80 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (81,19.0,"don says Hello MV3500",false) as packet #81 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (82,18.0,"don says Hello MV3500",true)  as packet #82 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (83,17.0,"don says Hello MV3500",false) as packet #83 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (84,16.0,"don says Hello MV3500",true)  as packet #84 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (85,15.0,"don says Hello MV3500",false) as packet #85 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (86,14.0,"don says Hello MV3500",true)  as packet #86 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (87,13.0,"don says Hello MV3500",false) as packet #87 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (88,12.0,"don says Hello MV3500",true)  as packet #88 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (89,11.0,"don says Hello MV3500",false) as packet #89 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (90,10.0,"don says Hello MV3500",true)  as packet #90 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (91,9.0,"don says Hello MV3500",false) as packet #91 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (92,8.0,"don says Hello MV3500",true)  as packet #92 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (93,7.0,"don says Hello MV3500",false) as packet #93 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (94,6.0,"don says Hello MV3500",true)  as packet #94 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (95,5.0,"don says Hello MV3500",false) as packet #95 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (96,4.0,"don says Hello MV3500",true)  as packet #96 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (97,3.0,"don says Hello MV3500",false) as packet #97 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (98,2.0,"don says Hello MV3500",true)  as packet #98 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (99,1.0,"don says Hello MV3500",false) as packet #99 of 100
+[UdpMulticastExamples.UdpSender] don localhost/127.0.0.1 port=1415 has sent values (100,0.0,"don says Hello MV3500",true)  as packet #100 of 100
+UdpMulticastExamples.UdpSender complete.
+BUILD SUCCESSFUL (total time: 13 seconds)
+
+===================================================
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=UdpMulticastExamples/UdpReceiver.java -Drun.class=UdpMulticastExamples.UdpReceiver run-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+run-single:
+UdpMulticastExamples.UdpReceiver started...
+UdpReceiver address/port: UDP socket address null (loopback)/1415
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=1, second float value=99.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=1
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=2, second float value=98.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=2
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=3, second float value=97.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=3
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=4, second float value=96.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=4
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=5, second float value=95.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=5
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=6, second float value=94.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=6
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=7, second float value=93.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=7
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=8, second float value=92.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=8
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=9, second float value=91.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=9
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=10, second float value=90.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=10
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=11, second float value=89.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=11
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=12, second float value=88.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=12
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=13, second float value=87.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=13
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=14, second float value=86.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=14
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=15, second float value=85.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=15
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=16, second float value=84.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=16
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=17, second float value=83.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=17
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=18, second float value=82.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=18
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=19, second float value=81.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=19
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=20, second float value=80.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=20
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=21, second float value=79.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=21
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=22, second float value=78.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=22
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=23, second float value=77.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=23
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=24, second float value=76.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=24
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=25, second float value=75.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=25
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=26, second float value=74.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=26
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=27, second float value=73.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=27
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=28, second float value=72.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=28
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=29, second float value=71.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=29
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=30, second float value=70.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=30
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=31, second float value=69.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=31
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=32, second float value=68.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=32
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=33, second float value=67.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=33
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=34, second float value=66.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=34
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=35, second float value=65.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=35
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=36, second float value=64.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=36
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=37, second float value=63.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=37
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=38, second float value=62.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=38
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=39, second float value=61.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=39
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=40, second float value=60.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=40
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=41, second float value=59.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=41
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=42, second float value=58.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=42
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=43, second float value=57.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=43
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=44, second float value=56.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=44
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=45, second float value=55.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=45
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=46, second float value=54.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=46
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=47, second float value=53.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=47
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=48, second float value=52.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=48
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=49, second float value=51.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=49
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=50, second float value=50.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=50
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=51, second float value=49.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=51
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=52, second float value=48.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=52
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=53, second float value=47.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=53
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=54, second float value=46.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=54
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=55, second float value=45.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=55
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=56, second float value=44.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=56
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=57, second float value=43.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=57
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=58, second float value=42.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=58
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=59, second float value=41.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=59
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=60, second float value=40.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=60
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=61, second float value=39.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=61
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=62, second float value=38.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=62
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=63, second float value=37.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=63
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=64, second float value=36.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=64
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=65, second float value=35.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=65
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=66, second float value=34.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=66
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=67, second float value=33.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=67
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=68, second float value=32.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=68
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=69, second float value=31.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=69
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=70, second float value=30.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=70
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=71, second float value=29.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=71
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=72, second float value=28.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=72
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=73, second float value=27.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=73
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=74, second float value=26.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=74
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=75, second float value=25.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=75
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=76, second float value=24.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=76
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=77, second float value=23.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=77
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=78, second float value=22.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=78
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=79, second float value=21.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=79
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=80, second float value=20.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=80
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=81, second float value=19.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=81
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=82, second float value=18.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=82
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=83, second float value=17.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=83
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=84, second float value=16.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=84
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=85, second float value=15.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=85
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=86, second float value=14.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=86
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=87, second float value=13.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=87
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=88, second float value=12.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=88
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=89, second float value=11.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=89
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=90, second float value=10.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=90
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=91, second float value=9.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=91
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=92, second float value=8.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=92
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=93, second float value=7.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=93
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=94, second float value=6.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=94
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=95, second float value=5.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=95
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=96, second float value=4.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=96
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=97, second float value=3.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=97
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=98, second float value=2.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=98
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=99, second float value=1.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=99
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=100, second float value=0.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=100
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=1, second float value=99.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=101
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=2, second float value=98.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=102
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=3, second float value=97.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=103
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=4, second float value=96.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=104
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=5, second float value=95.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=105
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=6, second float value=94.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=106
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=7, second float value=93.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=107
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=8, second float value=92.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=108
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=9, second float value=91.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=109
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=10, second float value=90.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=110
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=11, second float value=89.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=111
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=12, second float value=88.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=112
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=13, second float value=87.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=113
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=14, second float value=86.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=114
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=15, second float value=85.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=115
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=16, second float value=84.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=116
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=17, second float value=83.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=117
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=18, second float value=82.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=118
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=19, second float value=81.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=119
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=20, second float value=80.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=120
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=21, second float value=79.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=121
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=22, second float value=78.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=122
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=23, second float value=77.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=123
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=24, second float value=76.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=124
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=25, second float value=75.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=125
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=26, second float value=74.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=126
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=27, second float value=73.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=127
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=28, second float value=72.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=128
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=29, second float value=71.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=129
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=30, second float value=70.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=130
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=31, second float value=69.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=131
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=32, second float value=68.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=132
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=33, second float value=67.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=133
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=34, second float value=66.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=134
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=35, second float value=65.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=135
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=36, second float value=64.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=136
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=37, second float value=63.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=137
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=38, second float value=62.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=138
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=39, second float value=61.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=139
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=40, second float value=60.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=140
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=41, second float value=59.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=141
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=42, second float value=58.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=142
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=43, second float value=57.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=143
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=44, second float value=56.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=144
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=45, second float value=55.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=145
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=46, second float value=54.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=146
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=47, second float value=53.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=147
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=48, second float value=52.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=148
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=49, second float value=51.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=149
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=50, second float value=50.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=150
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=51, second float value=49.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=151
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=52, second float value=48.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=152
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=53, second float value=47.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=153
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=54, second float value=46.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=154
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=55, second float value=45.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=155
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=56, second float value=44.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=156
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=57, second float value=43.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=157
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=58, second float value=42.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=158
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=59, second float value=41.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=159
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=60, second float value=40.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=160
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=61, second float value=39.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=161
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=62, second float value=38.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=162
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=63, second float value=37.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=163
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=64, second float value=36.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=164
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=65, second float value=35.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=165
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=66, second float value=34.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=166
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=67, second float value=33.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=167
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=68, second float value=32.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=168
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=69, second float value=31.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=169
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=70, second float value=30.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=170
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=71, second float value=29.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=171
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=72, second float value=28.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=172
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=73, second float value=27.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=173
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=74, second float value=26.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=174
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=75, second float value=25.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=175
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=76, second float value=24.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=176
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=77, second float value=23.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=177
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=78, second float value=22.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=178
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=79, second float value=21.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=179
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=80, second float value=20.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=180
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=81, second float value=19.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=181
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=82, second float value=18.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=182
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=83, second float value=17.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=183
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=84, second float value=16.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=184
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=85, second float value=15.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=185
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=86, second float value=14.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=186
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=87, second float value=13.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=187
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=88, second float value=12.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=188
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=89, second float value=11.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=189
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=90, second float value=10.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=190
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=91, second float value=9.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=191
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=92, second float value=8.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=192
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=93, second float value=7.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=193
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=94, second float value=6.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=194
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=95, second float value=5.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=195
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=96, second float value=4.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=196
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=97, second float value=3.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=197
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=98, second float value=2.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=198
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=99, second float value=1.0, third String value="don says Hello MV3500" isPacketIdEvenParity=false, packet counter=199
+[UdpMulticastExamples.UdpReceiver]port=1415 packetID=100, second float value=0.0, third String value="don says Hello MV3500" isPacketIdEvenParity=true,  packet counter=200
+
+===================================================
\ No newline at end of file
diff --git a/examples/src/UdpMulticastExamples/package-info.java b/examples/src/UdpExamples/package-info.java
similarity index 94%
rename from examples/src/UdpMulticastExamples/package-info.java
rename to examples/src/UdpExamples/package-info.java
index 07ce08516f8987b7f0b87e4c2951d9f527b523f7..3aaca69fdeaabc141eb491256557922a4b6ec9da 100644
--- a/examples/src/UdpMulticastExamples/package-info.java
+++ b/examples/src/UdpExamples/package-info.java
@@ -6,4 +6,4 @@
  * @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java</a>
  */
 
-package UdpMulticastExamples;
+package UdpExamples;
diff --git a/examples/src/UdpMulticastExamples/MulticastTerminalLog.txt b/examples/src/UdpMulticastExamples/MulticastTerminalLog.txt
deleted file mode 100644
index 62d5a5c369890b28fe4b5ce9551688a5a3edb2e7..0000000000000000000000000000000000000000
--- a/examples/src/UdpMulticastExamples/MulticastTerminalLog.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Invocation instructions:
-1. run/debug MulticastReceiver.java
-2. run/debug MulticastSender.java
-
-Program responses:
-
-===================================================
-run:
-MulticastSender started...
-Multicast address/port: 239.1.2.15/1718
-Sent multicast packet 0 of 20
-Sent multicast packet 1 of 20
-Sent multicast packet 2 of 20
-Sent multicast packet 3 of 20
-Sent multicast packet 4 of 20
-Sent multicast packet 5 of 20
-Sent multicast packet 6 of 20
-Sent multicast packet 7 of 20
-Sent multicast packet 8 of 20
-Sent multicast packet 9 of 20
-Sent multicast packet 10 of 20
-Sent multicast packet 11 of 20
-Sent multicast packet 12 of 20
-Sent multicast packet 13 of 20
-Sent multicast packet 14 of 20
-Sent multicast packet 15 of 20
-Sent multicast packet 16 of 20
-Sent multicast packet 17 of 20
-Sent multicast packet 18 of 20
-Sent multicast packet 19 of 20
-MulticastSender complete.
-BUILD SUCCESSFUL (total time: 20 seconds)
-
-===================================================
-run:
-MulticastReceiver started...
-Multicast address/port: 239.1.2.15/1718
-Multicast packets received log:
- 1. "MulticastSender packet 0;" index=0, firstFloat=17.0 secondFloat=23.0
- 2. "MulticastSender packet 1;" index=1, firstFloat=17.0 secondFloat=23.0
- 3. "MulticastSender packet 2;" index=2, firstFloat=17.0 secondFloat=23.0
- 4. "MulticastSender packet 3;" index=3, firstFloat=17.0 secondFloat=23.0
- 5. "MulticastSender packet 4;" index=4, firstFloat=17.0 secondFloat=23.0
- 6. "MulticastSender packet 5;" index=5, firstFloat=17.0 secondFloat=23.0
- 7. "MulticastSender packet 6;" index=6, firstFloat=17.0 secondFloat=23.0
- 8. "MulticastSender packet 7;" index=7, firstFloat=17.0 secondFloat=23.0
- 9. "MulticastSender packet 8;" index=8, firstFloat=17.0 secondFloat=23.0
-10. "MulticastSender packet 9;" index=9, firstFloat=17.0 secondFloat=23.0
-11. "MulticastSender packet 10;" index=10, firstFloat=17.0 secondFloat=23.0
-12. "MulticastSender packet 11;" index=11, firstFloat=17.0 secondFloat=23.0
-13. "MulticastSender packet 12;" index=12, firstFloat=17.0 secondFloat=23.0
-14. "MulticastSender packet 13;" index=13, firstFloat=17.0 secondFloat=23.0
-15. "MulticastSender packet 14;" index=14, firstFloat=17.0 secondFloat=23.0
-16. "MulticastSender packet 15;" index=15, firstFloat=17.0 secondFloat=23.0
-17. "MulticastSender packet 16;" index=16, firstFloat=17.0 secondFloat=23.0
-18. "MulticastSender packet 17;" index=17, firstFloat=17.0 secondFloat=23.0
-19. "MulticastSender packet 18;" index=18, firstFloat=17.0 secondFloat=23.0
-Received "quit;" sentinel
-MulticastReceiver loop complete.
-MulticastReceiver finally block, complete.
-BUILD SUCCESSFUL (total time: 31 seconds)
-
-===================================================
diff --git a/examples/src/UdpMulticastExamples/UdpTerminalLog.txt b/examples/src/UdpMulticastExamples/UdpTerminalLog.txt
deleted file mode 100644
index 4b66a4c7a712ee84deb673e44e850afa10908634..0000000000000000000000000000000000000000
--- a/examples/src/UdpMulticastExamples/UdpTerminalLog.txt
+++ /dev/null
@@ -1,232 +0,0 @@
-Invocation instructions:
-1. run/debug UdpReceiver.java so it is listening.
-2. run/debug UdpSender.java
-
-Program responses, sender and receiver:
-
-===================================================
-ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=UdpMulticastExamples/UdpSender.java -Drun.class=UdpMulticastExamples.UdpSender run-single
-init:
-Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
-deps-jar:
-Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
-Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
-compile-single:
-run-single:
-UdpMulticastExamples.UdpSender shows how to send simple-type values via DataOutputStream
-UdpMulticastExamples.UdpSender started...
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(1,99.0,"Hello MV3500",false) as packet #1 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(2,98.0,"Hello MV3500",true)  as packet #2 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(3,97.0,"Hello MV3500",false) as packet #3 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(4,96.0,"Hello MV3500",true)  as packet #4 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(5,95.0,"Hello MV3500",false) as packet #5 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(6,94.0,"Hello MV3500",true)  as packet #6 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(7,93.0,"Hello MV3500",false) as packet #7 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(8,92.0,"Hello MV3500",true)  as packet #8 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(9,91.0,"Hello MV3500",false) as packet #9 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(10,90.0,"Hello MV3500",true)  as packet #10 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(11,89.0,"Hello MV3500",false) as packet #11 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(12,88.0,"Hello MV3500",true)  as packet #12 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(13,87.0,"Hello MV3500",false) as packet #13 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(14,86.0,"Hello MV3500",true)  as packet #14 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(15,85.0,"Hello MV3500",false) as packet #15 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(16,84.0,"Hello MV3500",true)  as packet #16 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(17,83.0,"Hello MV3500",false) as packet #17 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(18,82.0,"Hello MV3500",true)  as packet #18 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(19,81.0,"Hello MV3500",false) as packet #19 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(20,80.0,"Hello MV3500",true)  as packet #20 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(21,79.0,"Hello MV3500",false) as packet #21 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(22,78.0,"Hello MV3500",true)  as packet #22 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(23,77.0,"Hello MV3500",false) as packet #23 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(24,76.0,"Hello MV3500",true)  as packet #24 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(25,75.0,"Hello MV3500",false) as packet #25 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(26,74.0,"Hello MV3500",true)  as packet #26 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(27,73.0,"Hello MV3500",false) as packet #27 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(28,72.0,"Hello MV3500",true)  as packet #28 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(29,71.0,"Hello MV3500",false) as packet #29 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(30,70.0,"Hello MV3500",true)  as packet #30 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(31,69.0,"Hello MV3500",false) as packet #31 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(32,68.0,"Hello MV3500",true)  as packet #32 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(33,67.0,"Hello MV3500",false) as packet #33 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(34,66.0,"Hello MV3500",true)  as packet #34 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(35,65.0,"Hello MV3500",false) as packet #35 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(36,64.0,"Hello MV3500",true)  as packet #36 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(37,63.0,"Hello MV3500",false) as packet #37 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(38,62.0,"Hello MV3500",true)  as packet #38 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(39,61.0,"Hello MV3500",false) as packet #39 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(40,60.0,"Hello MV3500",true)  as packet #40 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(41,59.0,"Hello MV3500",false) as packet #41 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(42,58.0,"Hello MV3500",true)  as packet #42 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(43,57.0,"Hello MV3500",false) as packet #43 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(44,56.0,"Hello MV3500",true)  as packet #44 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(45,55.0,"Hello MV3500",false) as packet #45 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(46,54.0,"Hello MV3500",true)  as packet #46 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(47,53.0,"Hello MV3500",false) as packet #47 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(48,52.0,"Hello MV3500",true)  as packet #48 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(49,51.0,"Hello MV3500",false) as packet #49 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(50,50.0,"Hello MV3500",true)  as packet #50 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(51,49.0,"Hello MV3500",false) as packet #51 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(52,48.0,"Hello MV3500",true)  as packet #52 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(53,47.0,"Hello MV3500",false) as packet #53 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(54,46.0,"Hello MV3500",true)  as packet #54 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(55,45.0,"Hello MV3500",false) as packet #55 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(56,44.0,"Hello MV3500",true)  as packet #56 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(57,43.0,"Hello MV3500",false) as packet #57 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(58,42.0,"Hello MV3500",true)  as packet #58 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(59,41.0,"Hello MV3500",false) as packet #59 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(60,40.0,"Hello MV3500",true)  as packet #60 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(61,39.0,"Hello MV3500",false) as packet #61 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(62,38.0,"Hello MV3500",true)  as packet #62 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(63,37.0,"Hello MV3500",false) as packet #63 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(64,36.0,"Hello MV3500",true)  as packet #64 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(65,35.0,"Hello MV3500",false) as packet #65 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(66,34.0,"Hello MV3500",true)  as packet #66 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(67,33.0,"Hello MV3500",false) as packet #67 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(68,32.0,"Hello MV3500",true)  as packet #68 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(69,31.0,"Hello MV3500",false) as packet #69 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(70,30.0,"Hello MV3500",true)  as packet #70 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(71,29.0,"Hello MV3500",false) as packet #71 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(72,28.0,"Hello MV3500",true)  as packet #72 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(73,27.0,"Hello MV3500",false) as packet #73 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(74,26.0,"Hello MV3500",true)  as packet #74 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(75,25.0,"Hello MV3500",false) as packet #75 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(76,24.0,"Hello MV3500",true)  as packet #76 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(77,23.0,"Hello MV3500",false) as packet #77 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(78,22.0,"Hello MV3500",true)  as packet #78 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(79,21.0,"Hello MV3500",false) as packet #79 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(80,20.0,"Hello MV3500",true)  as packet #80 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(81,19.0,"Hello MV3500",false) as packet #81 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(82,18.0,"Hello MV3500",true)  as packet #82 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(83,17.0,"Hello MV3500",false) as packet #83 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(84,16.0,"Hello MV3500",true)  as packet #84 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(85,15.0,"Hello MV3500",false) as packet #85 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(86,14.0,"Hello MV3500",true)  as packet #86 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(87,13.0,"Hello MV3500",false) as packet #87 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(88,12.0,"Hello MV3500",true)  as packet #88 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(89,11.0,"Hello MV3500",false) as packet #89 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(90,10.0,"Hello MV3500",true)  as packet #90 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(91,9.0,"Hello MV3500",false) as packet #91 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(92,8.0,"Hello MV3500",true)  as packet #92 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(93,7.0,"Hello MV3500",false) as packet #93 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(94,6.0,"Hello MV3500",true)  as packet #94 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(95,5.0,"Hello MV3500",false) as packet #95 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(96,4.0,"Hello MV3500",true)  as packet #96 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(97,3.0,"Hello MV3500",false) as packet #97 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(98,2.0,"Hello MV3500",true)  as packet #98 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(99,1.0,"Hello MV3500",false) as packet #99 of 100
-[UdpMulticastExamples.UdpSender] brutzman localhost/127.0.0.1 sent values(100,0.0,"Hello MV3500",true)  as packet #100 of 100
-UdpMulticastExamples.UdpSender complete.
-BUILD SUCCESSFUL (total time: 1 minute 41 seconds)
-
-===================================================
-ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=UdpMulticastExamples/UdpReceiver.java -Drun.class=UdpMulticastExamples.UdpReceiver run-single
-init:
-Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
-deps-jar:
-Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
-Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
-compile-single:
-run-single:
-UdpMulticastExamples.UdpReceiver started...
-[UdpMulticastExamples.UdpReceiver] packetID=1, second float value=99.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=1
-[UdpMulticastExamples.UdpReceiver] packetID=2, second float value=98.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=2
-[UdpMulticastExamples.UdpReceiver] packetID=3, second float value=97.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=3
-[UdpMulticastExamples.UdpReceiver] packetID=4, second float value=96.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=4
-[UdpMulticastExamples.UdpReceiver] packetID=5, second float value=95.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=5
-[UdpMulticastExamples.UdpReceiver] packetID=6, second float value=94.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=6
-[UdpMulticastExamples.UdpReceiver] packetID=7, second float value=93.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=7
-[UdpMulticastExamples.UdpReceiver] packetID=8, second float value=92.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=8
-[UdpMulticastExamples.UdpReceiver] packetID=9, second float value=91.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=9
-[UdpMulticastExamples.UdpReceiver] packetID=10, second float value=90.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=10
-[UdpMulticastExamples.UdpReceiver] packetID=11, second float value=89.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=11
-[UdpMulticastExamples.UdpReceiver] packetID=12, second float value=88.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=12
-[UdpMulticastExamples.UdpReceiver] packetID=13, second float value=87.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=13
-[UdpMulticastExamples.UdpReceiver] packetID=14, second float value=86.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=14
-[UdpMulticastExamples.UdpReceiver] packetID=15, second float value=85.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=15
-[UdpMulticastExamples.UdpReceiver] packetID=16, second float value=84.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=16
-[UdpMulticastExamples.UdpReceiver] packetID=17, second float value=83.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=17
-[UdpMulticastExamples.UdpReceiver] packetID=18, second float value=82.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=18
-[UdpMulticastExamples.UdpReceiver] packetID=19, second float value=81.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=19
-[UdpMulticastExamples.UdpReceiver] packetID=20, second float value=80.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=20
-[UdpMulticastExamples.UdpReceiver] packetID=21, second float value=79.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=21
-[UdpMulticastExamples.UdpReceiver] packetID=22, second float value=78.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=22
-[UdpMulticastExamples.UdpReceiver] packetID=23, second float value=77.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=23
-[UdpMulticastExamples.UdpReceiver] packetID=24, second float value=76.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=24
-[UdpMulticastExamples.UdpReceiver] packetID=25, second float value=75.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=25
-[UdpMulticastExamples.UdpReceiver] packetID=26, second float value=74.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=26
-[UdpMulticastExamples.UdpReceiver] packetID=27, second float value=73.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=27
-[UdpMulticastExamples.UdpReceiver] packetID=28, second float value=72.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=28
-[UdpMulticastExamples.UdpReceiver] packetID=29, second float value=71.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=29
-[UdpMulticastExamples.UdpReceiver] packetID=30, second float value=70.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=30
-[UdpMulticastExamples.UdpReceiver] packetID=31, second float value=69.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=31
-[UdpMulticastExamples.UdpReceiver] packetID=32, second float value=68.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=32
-[UdpMulticastExamples.UdpReceiver] packetID=33, second float value=67.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=33
-[UdpMulticastExamples.UdpReceiver] packetID=34, second float value=66.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=34
-[UdpMulticastExamples.UdpReceiver] packetID=35, second float value=65.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=35
-[UdpMulticastExamples.UdpReceiver] packetID=36, second float value=64.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=36
-[UdpMulticastExamples.UdpReceiver] packetID=37, second float value=63.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=37
-[UdpMulticastExamples.UdpReceiver] packetID=38, second float value=62.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=38
-[UdpMulticastExamples.UdpReceiver] packetID=39, second float value=61.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=39
-[UdpMulticastExamples.UdpReceiver] packetID=40, second float value=60.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=40
-[UdpMulticastExamples.UdpReceiver] packetID=41, second float value=59.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=41
-[UdpMulticastExamples.UdpReceiver] packetID=42, second float value=58.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=42
-[UdpMulticastExamples.UdpReceiver] packetID=43, second float value=57.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=43
-[UdpMulticastExamples.UdpReceiver] packetID=44, second float value=56.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=44
-[UdpMulticastExamples.UdpReceiver] packetID=45, second float value=55.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=45
-[UdpMulticastExamples.UdpReceiver] packetID=46, second float value=54.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=46
-[UdpMulticastExamples.UdpReceiver] packetID=47, second float value=53.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=47
-[UdpMulticastExamples.UdpReceiver] packetID=48, second float value=52.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=48
-[UdpMulticastExamples.UdpReceiver] packetID=49, second float value=51.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=49
-[UdpMulticastExamples.UdpReceiver] packetID=50, second float value=50.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=50
-[UdpMulticastExamples.UdpReceiver] packetID=51, second float value=49.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=51
-[UdpMulticastExamples.UdpReceiver] packetID=52, second float value=48.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=52
-[UdpMulticastExamples.UdpReceiver] packetID=53, second float value=47.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=53
-[UdpMulticastExamples.UdpReceiver] packetID=54, second float value=46.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=54
-[UdpMulticastExamples.UdpReceiver] packetID=55, second float value=45.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=55
-[UdpMulticastExamples.UdpReceiver] packetID=56, second float value=44.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=56
-[UdpMulticastExamples.UdpReceiver] packetID=57, second float value=43.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=57
-[UdpMulticastExamples.UdpReceiver] packetID=58, second float value=42.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=58
-[UdpMulticastExamples.UdpReceiver] packetID=59, second float value=41.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=59
-[UdpMulticastExamples.UdpReceiver] packetID=60, second float value=40.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=60
-[UdpMulticastExamples.UdpReceiver] packetID=61, second float value=39.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=61
-[UdpMulticastExamples.UdpReceiver] packetID=62, second float value=38.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=62
-[UdpMulticastExamples.UdpReceiver] packetID=63, second float value=37.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=63
-[UdpMulticastExamples.UdpReceiver] packetID=64, second float value=36.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=64
-[UdpMulticastExamples.UdpReceiver] packetID=65, second float value=35.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=65
-[UdpMulticastExamples.UdpReceiver] packetID=66, second float value=34.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=66
-[UdpMulticastExamples.UdpReceiver] packetID=67, second float value=33.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=67
-[UdpMulticastExamples.UdpReceiver] packetID=68, second float value=32.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=68
-[UdpMulticastExamples.UdpReceiver] packetID=69, second float value=31.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=69
-[UdpMulticastExamples.UdpReceiver] packetID=70, second float value=30.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=70
-[UdpMulticastExamples.UdpReceiver] packetID=71, second float value=29.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=71
-[UdpMulticastExamples.UdpReceiver] packetID=72, second float value=28.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=72
-[UdpMulticastExamples.UdpReceiver] packetID=73, second float value=27.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=73
-[UdpMulticastExamples.UdpReceiver] packetID=74, second float value=26.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=74
-[UdpMulticastExamples.UdpReceiver] packetID=75, second float value=25.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=75
-[UdpMulticastExamples.UdpReceiver] packetID=76, second float value=24.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=76
-[UdpMulticastExamples.UdpReceiver] packetID=77, second float value=23.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=77
-[UdpMulticastExamples.UdpReceiver] packetID=78, second float value=22.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=78
-[UdpMulticastExamples.UdpReceiver] packetID=79, second float value=21.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=79
-[UdpMulticastExamples.UdpReceiver] packetID=80, second float value=20.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=80
-[UdpMulticastExamples.UdpReceiver] packetID=81, second float value=19.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=81
-[UdpMulticastExamples.UdpReceiver] packetID=82, second float value=18.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=82
-[UdpMulticastExamples.UdpReceiver] packetID=83, second float value=17.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=83
-[UdpMulticastExamples.UdpReceiver] packetID=84, second float value=16.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=84
-[UdpMulticastExamples.UdpReceiver] packetID=85, second float value=15.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=85
-[UdpMulticastExamples.UdpReceiver] packetID=86, second float value=14.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=86
-[UdpMulticastExamples.UdpReceiver] packetID=87, second float value=13.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=87
-[UdpMulticastExamples.UdpReceiver] packetID=88, second float value=12.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=88
-[UdpMulticastExamples.UdpReceiver] packetID=89, second float value=11.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=89
-[UdpMulticastExamples.UdpReceiver] packetID=90, second float value=10.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=90
-[UdpMulticastExamples.UdpReceiver] packetID=91, second float value=9.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=91
-[UdpMulticastExamples.UdpReceiver] packetID=92, second float value=8.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=92
-[UdpMulticastExamples.UdpReceiver] packetID=93, second float value=7.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=93
-[UdpMulticastExamples.UdpReceiver] packetID=94, second float value=6.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=94
-[UdpMulticastExamples.UdpReceiver] packetID=95, second float value=5.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=95
-[UdpMulticastExamples.UdpReceiver] packetID=96, second float value=4.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=96
-[UdpMulticastExamples.UdpReceiver] packetID=97, second float value=3.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=97
-[UdpMulticastExamples.UdpReceiver] packetID=98, second float value=2.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=98
-[UdpMulticastExamples.UdpReceiver] packetID=99, second float value=1.0, third String value="Hello MV3500" isPacketIdEvenParity=false, packet counter=99
-[UdpMulticastExamples.UdpReceiver] packetID=100, second float value=0.0, third String value="Hello MV3500" isPacketIdEvenParity=true,  packet counter=100
-BUILD STOPPED (total time: 2 minutes 29 seconds)
-===================================================
\ No newline at end of file
diff --git a/lib/open-dis7-pdus-classes.jar b/lib/open-dis7-pdus-classes.jar
index 9125b329d7a9170fa4464c8bc699c0aad8cb934a..a3abdbea4353260cde5cbe36716f986e097cfff9 100644
Binary files a/lib/open-dis7-pdus-classes.jar and b/lib/open-dis7-pdus-classes.jar differ
diff --git a/lib/open-dis7-pdus-javadoc.jar b/lib/open-dis7-pdus-javadoc.jar
index c54e4049b746189736d360aea00ca7497b90df61..abfa5435b1b2ad27154c50eed209f6b446d64762 100644
Binary files a/lib/open-dis7-pdus-javadoc.jar and b/lib/open-dis7-pdus-javadoc.jar differ
diff --git a/lib/open-dis7-pdus-source.jar b/lib/open-dis7-pdus-source.jar
index 2c8a990ec1728b10a4e27f2eed4147eceed21c05..811105222760e4cb1f599fd656532800a9db37c6 100644
Binary files a/lib/open-dis7-pdus-source.jar and b/lib/open-dis7-pdus-source.jar differ
diff --git a/presentations/00_ConfiguringJavaNetbeansGit.pdf b/presentations/00_ConfiguringJavaNetbeansGit.pdf
index f8a54eadac67d32b24bd4def771bb596df5dfc47..8f0b594b22e48f62aa0d465256c7298b2a3904a7 100644
Binary files a/presentations/00_ConfiguringJavaNetbeansGit.pdf and b/presentations/00_ConfiguringJavaNetbeansGit.pdf differ
diff --git a/presentations/00_ConfiguringJavaNetbeansGit.pptx b/presentations/00_ConfiguringJavaNetbeansGit.pptx
index a71e57da845af97ae6c69ba9d8333996ff883db2..a2a10d9d61f21806f43a1ba4010273dee453938f 100644
Binary files a/presentations/00_ConfiguringJavaNetbeansGit.pptx and b/presentations/00_ConfiguringJavaNetbeansGit.pptx differ
diff --git a/presentations/04_TCPSocketsJava.pptx b/presentations/04_TCPSocketsJava.pptx
index 23ca879f0de227bc27de42d6138ed38860fa7b5c..3f23261834903ccd5c3b874738e19cc5738a1664 100644
Binary files a/presentations/04_TCPSocketsJava.pptx and b/presentations/04_TCPSocketsJava.pptx differ
diff --git a/presentations/05_JavaIO_InputOutput_CheatSheet.pptx b/presentations/05_JavaIO_InputOutput_CheatSheet.pptx
index 20f74c433911a222f5bf002131f2eabf7c18ae2c..0b3f0e56f40bb6e403d571b8c40d9ecca66cbccb 100644
Binary files a/presentations/05_JavaIO_InputOutput_CheatSheet.pptx and b/presentations/05_JavaIO_InputOutput_CheatSheet.pptx differ
diff --git a/presentations/06_UDP_UserDatagramProtocol.pptx b/presentations/06_UDP_UserDatagramProtocol.pptx
index 98d130f62bad21ead878a64992c9281f4014de93..e479bce518d63b3aec5e2efefdbbc34ec54d8fba 100644
Binary files a/presentations/06_UDP_UserDatagramProtocol.pptx and b/presentations/06_UDP_UserDatagramProtocol.pptx differ
diff --git a/presentations/07_NetworkScalability.pptx b/presentations/07_NetworkScalability.pptx
index 28bf26c20ecab765e034c1e850ffc0d770628809..f85ffa86703ec34abd0b7d36ebe3b3e93a3b2aa9 100644
Binary files a/presentations/07_NetworkScalability.pptx and b/presentations/07_NetworkScalability.pptx differ
diff --git a/specifications/downloads/IEEE1278.1-2012.DistributedInteractiveSimulation.ApplicationProtocols.12781-2012.pdf b/specifications/downloads/IEEE1278.1-2012.DistributedInteractiveSimulation.ApplicationProtocols.12781-2012.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..88aacbd2671fb41ffd83c38a373574eecff34052
Binary files /dev/null and b/specifications/downloads/IEEE1278.1-2012.DistributedInteractiveSimulation.ApplicationProtocols.12781-2012.pdf differ
diff --git a/specifications/downloads/IEEE1278.2-2015.DistributedInteractiveSimulation.CommunicationsServices.12782-2015.pdf b/specifications/downloads/IEEE1278.2-2015.DistributedInteractiveSimulation.CommunicationsServices.12782-2015.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ffc26e3a50d5cdb4d18022ec2353b175d9ba1952
Binary files /dev/null and b/specifications/downloads/IEEE1278.2-2015.DistributedInteractiveSimulation.CommunicationsServices.12782-2015.pdf differ
diff --git a/specifications/downloads/IEEE1278.3-2015.DistributedInteractiveSimulation.CommunicationsServices.00587529.pdf b/specifications/downloads/IEEE1278.3-2015.DistributedInteractiveSimulation.CommunicationsServices.00587529.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..d8ba28b454f4a9781f26f6671e4257dd82ab5f79
Binary files /dev/null and b/specifications/downloads/IEEE1278.3-2015.DistributedInteractiveSimulation.CommunicationsServices.00587529.pdf differ
diff --git a/specifications/downloads/IEEE1278.4-2013.DistributedInteractiveSimulation.VV+A.12784-1997.pdf b/specifications/downloads/IEEE1278.4-2013.DistributedInteractiveSimulation.VV+A.12784-1997.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ddc505e6ed611735f5e47c67be042be0f03f9120
Binary files /dev/null and b/specifications/downloads/IEEE1278.4-2013.DistributedInteractiveSimulation.VV+A.12784-1997.pdf differ
diff --git a/specifications/downloads/README.md b/specifications/downloads/README.md
index e32e010ddf99239ccf332b3b4706f60baf9fd619..da912a9d6a97618e9269bffb10869666e2cfcc3d 100644
--- a/specifications/downloads/README.md
+++ b/specifications/downloads/README.md
@@ -1 +1,3 @@
 This is a convenient directory for saving downloaded specification documents.
+
+Please do not commit any restricted material into the public archive!