diff --git a/examples/src/OpenDis7Examples/PduListenerSaverLog.txt b/examples/src/OpenDis7Examples/PduListenerSaverLog.txt
index 72e7c1bb0afb88419591b52bb8f125203a7cb9d8..c5e18a26def9dead3503e1c053301491fc35f9f5 100644
--- a/examples/src/OpenDis7Examples/PduListenerSaverLog.txt
+++ b/examples/src/OpenDis7Examples/PduListenerSaverLog.txt
@@ -1,42 +1,28 @@
-Invocation instructions:
-
-1. run or debug PduListenerSaver.java
-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:
-
-===================================================
-
-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
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=debug.single -Djavac.includes=OpenDis7Examples/PduListenerSaver.java -Ddebug.class=OpenDis7Examples.PduListenerSaver debug-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\PduCaptureLog40.dislog
-[DisThreadedNetworkInterface] using network interface Intel(R) Centrino(R) Ultimate-N 6300 AGN
-[DisThreadedNetworkInterface] datagramSocket.joinGroup  address=239.1.2.3 port=3000 start() complete
+Recorder log file open: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog
+[DisThreadedNetworkInterface] using network interface PANGP Virtual Ethernet Adapter
+[DisThreadedNetworkInterface] datagramSocket.joinGroup  address=239.1.2.3 port=3000 isConnected()=false createDatagramSocket() complete.
+[DisThreadedNetworkInterface] createThreads() receiveThread.isAlive()=true
+[DisThreadedNetworkInterface] createThreads() sendingThread.isAlive()=true
 [PduRecorder PduListenerSaver] listening to IP address 239.1.2.3 on port 3000
 Type p/enter to pause, r/enter to resume, q/enter to quit
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 1] DisPduType 01 ENTITY_STATE, size 144 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 2] DisPduType 02 FIRE, size 96 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 3] DisPduType 03 DETONATION, size 104 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 4] DisPduType 04 COLLISION, size 60 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 5] DisPduType 05 SERVICE_REQUEST, size 28 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 6] DisPduType 06 RESUPPLY_OFFER, size 28 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 7] DisPduType 07 RESUPPLY_RECEIVED, size 28 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 8] DisPduType 08 RESUPPLY_CANCEL, size 24 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 9] DisPduType 09 REPAIR_COMPLETE, size 28 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  1] DisPduType 01 ENTITY_STATE AllPduSende, size 144 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  2] DisPduType 02 FIRE, size 96 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  3] DisPduType 03 DETONATION, size 104 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  4] DisPduType 04 COLLISION, size 60 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  5] DisPduType 05 SERVICE_REQUEST, size 28 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  6] DisPduType 06 RESUPPLY_OFFER, size 28 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  7] DisPduType 07 RESUPPLY_RECEIVED, size 28 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  8] DisPduType 08 RESUPPLY_CANCEL, size 24 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt  9] DisPduType 09 REPAIR_COMPLETE, size 28 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 10] DisPduType 10 REPAIR_RESPONSE, size 28 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 11] DisPduType 11 CREATE_ENTITY, size 28 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 12] DisPduType 12 REMOVE_ENTITY, size 28 bytes)
@@ -52,13 +38,13 @@ Type p/enter to pause, r/enter to resume, q/enter to quit
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 22] DisPduType 22 COMMENT, size 112 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 23] DisPduType 23 ELECTROMAGNETIC_EMISSION, size 28 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 24] DisPduType 24 DESIGNATOR, size 88 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 25] DisPduType 25 TRANSMITTER, size 107 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 26] DisPduType 26 SIGNAL, size 32 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt 25] DisPduType 25 TRANSMITTER, size 106 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt 26] DisPduType 26 SIGNAL, size 33 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 27] DisPduType 27 RECEIVER, size 36 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 28] DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE, size 60 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 29] DisPduType 29 UNDERWATER_ACOUSTIC, size 32 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 30] DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE, size 28 bytes)
-[DisThreadedNetworkInterface PduListenerSaver] [receipt 31] DisPduType 31 INTERCOM_SIGNAL, size 32 bytes)
+[DisThreadedNetworkInterface PduListenerSaver] [receipt 31] DisPduType 31 INTERCOM_SIGNAL, size 33 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 32] DisPduType 32 INTERCOM_CONTROL, size 40 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 33] DisPduType 33 AGGREGATE_STATE, size 136 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 34] DisPduType 34 ISGROUPOF, size 40 bytes)
@@ -101,9 +87,16 @@ Type p/enter to pause, r/enter to resume, q/enter to quit
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 71] DisPduType 71 INFORMATION_OPERATIONS_REPORT, size 40 bytes)
 [DisThreadedNetworkInterface PduListenerSaver] [receipt 72] DisPduType 72 ATTRIBUTE, size 32 bytes)
 q
+*** setKillSentinelAndInterrupts() killed=true sendingThread.isInterrupted()=true receiveThread.isInterrupted()=true
+[DisThreadedNetworkInterface PduListenerSaver] close(): pdus2send.size()=0 baos.size()=0 dos.size()=0
+[DisThreadedNetworkInterface PduListenerSaver] datagramSocket.leaveGroup address=239.1.2.3 port=3000 isClosed()=true close() complete.
+*** killThread() status: sendingThread.isAlive()=false sendingThread.isInterrupted()=true
+*** killThread() status: receiveThread.isAlive()=false receiveThread.isInterrupted()=true
+*** Thread close status: sendingThread.isAlive()=false receiveThread.isAlive()=false
 
-Closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog40.dislog
+PduRecorder.stop() closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog
 ... QUIT
 Finished PduListenerSaver pdu recording, saved to file:
-C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog40.dislog
-BUILD SUCCESSFUL (total time: 24 seconds)
+C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog
+debug-single:
+BUILD SUCCESSFUL (total time: 1 minute 7 seconds)
diff --git a/examples/src/OpenDis7Examples/PduReaderPlayer.java b/examples/src/OpenDis7Examples/PduReaderPlayer.java
index 913f9a40820ee81cc9e12fe6f8a10b148be3b11d..4c467bf3a505fca2e399cfbcc6993af5982b6829 100644
--- a/examples/src/OpenDis7Examples/PduReaderPlayer.java
+++ b/examples/src/OpenDis7Examples/PduReaderPlayer.java
@@ -37,7 +37,7 @@ public class PduReaderPlayer
   /** Command-line invocation (CLI) of program, execution starts here
      * @param args command-line arguments
      */
-    public static void main(String[] args)
+  public static void main(String[] args)
   {
     String  outputDirectory = DEFAULT_OUTPUT_DIRECTORY;
     String multicastAddress = DEFAULT_MULTICAST_ADDRESS;
@@ -73,7 +73,7 @@ public class PduReaderPlayer
       mystate state = mystate.RUNNING;
       Scanner terminalKeyboardScanner = new Scanner(System.in);
       PduPlayer pduPlayer = new PduPlayer(multicastAddress, multicastPort, Path.of(outputDirectory), sendToNet);
-      pduPlayer.startResume();
+      pduPlayer.begin();
       
       while (true) // monitor user input via keyboard
       {
diff --git a/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt b/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt
index 20a6fa2aae951d408bcb9d478b04a343769b3a4a..6c100c84fc91ae6f5fa593fc23326367aee1b207 100644
--- a/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt
+++ b/examples/src/OpenDis7Examples/PduReaderPlayerLog.txt
@@ -8,10 +8,9 @@ compile-single:
 run-single:
 OpenDis7Examples.PduReaderPlayer started...
 Beginning PduReaderPlayer (239.1.2.3:3000) to directory pduLog
-Type p/enter to pause, r/enter to resume, q/enter to quit
-PduPlayer begin() playing DIS logs.
-Replaying C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog
+PduPlayer begin() playing DIS logs found in ancestor pduLog directory.
 ENCODING_PLAINTEXT
+Replaying PDU log file with ENCODING_PLAINTEXT: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog
 Sent PDU: DisPduType 01 ENTITY_STATE
 Sent PDU: DisPduType 02 FIRE
 Sent PDU: DisPduType 03 DETONATION
@@ -85,13 +84,10 @@ 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
+PduPlayer handleComment() found FINISH_COMMENT_MARKER, end of replay from log file PduCaptureLog.dislog
+Type p/enter to pause, r/enter to resume, q/enter to quit
 q
 ... QUIT
 Ending pdu files playback for directory pduLog
 OpenDis7Examples.PduReaderPlayer complete.
-BUILD SUCCESSFUL (total time: 10 seconds)
+BUILD SUCCESSFUL (total time: 14 seconds)