diff --git a/src-generated/edu/nps/moves/dis7/pdus/ActionRequestPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ActionRequestPdu.java
index 8e3ff241011720726e6a03868422b23f35591218..df2b575e28061fdc272dc00bcbbf28ce35340ead 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ActionRequestPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ActionRequestPdu.java
@@ -404,11 +404,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatums: ");
     fixedDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatums: ");
     variableDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ActionRequestRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ActionRequestRPdu.java
index 3e757845f7fe338ac349b2e8d24f7c3cad62080e..e05bb5c4500c36731362382ef08bc2e3b88cc9b8 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ActionRequestRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ActionRequestRPdu.java
@@ -500,11 +500,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumRecords: ");
     fixedDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumRecords: ");
     variableDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ActionResponsePdu.java b/src-generated/edu/nps/moves/dis7/pdus/ActionResponsePdu.java
index 9d19d7a0e32b9ab1609553d99a23373736b43c33..7db33852836d9da6f3ce52cf8ab428c4d27f8320 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ActionResponsePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ActionResponsePdu.java
@@ -404,11 +404,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatums: ");
     fixedDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatums: ");
     variableDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ActionResponseRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ActionResponseRPdu.java
index 8ca75d91d60048682534ab99c26f14f98826d6b0..678b2eaeb6a41eadd318a8b310b11b1f324fede0 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ActionResponseRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ActionResponseRPdu.java
@@ -404,11 +404,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumRecords: ");
     fixedDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumRecords: ");
     variableDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/AggregateStatePdu.java b/src-generated/edu/nps/moves/dis7/pdus/AggregateStatePdu.java
index 03c8091ffbce6dc78156f172ae498242faf09686..7304283d09105cab26b356d4fbe1864fedb47f88 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/AggregateStatePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/AggregateStatePdu.java
@@ -843,23 +843,28 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" aggregateIDList: ");
     aggregateIDList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" entityIDList: ");
     entityIDList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" silentAggregateSystemList: ");
     silentAggregateSystemList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" silentEntitySystemList: ");
     silentEntitySystemList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumList: ");
     variableDatumList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ArealObjectStatePdu.java b/src-generated/edu/nps/moves/dis7/pdus/ArealObjectStatePdu.java
index 5bb1d9d346a0ef026dd4ac727af607c889e32ded..1c8975c1bae989111a27d5ca921bc662132f579e 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ArealObjectStatePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ArealObjectStatePdu.java
@@ -572,7 +572,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" objectLocation: ");
     objectLocation.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ArticulatedPartsPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ArticulatedPartsPdu.java
index 632b94e3734214ced55eada08fdfb719cb71a222..abdbf5f0058bba7f235bf47aa53acc515a109490 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ArticulatedPartsPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ArticulatedPartsPdu.java
@@ -310,7 +310,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" variableParameters: ");
     variableParameters.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/AttributePdu.java b/src-generated/edu/nps/moves/dis7/pdus/AttributePdu.java
index 343a2bdd2678a0ac5eaaa6a657a44eeb721e3c7f..f8a2875fef0643269d8ff0fff86319e349bb0365 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/AttributePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/AttributePdu.java
@@ -517,7 +517,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" attributeRecordSets: ");
     attributeRecordSets.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/AttributeRecordSet.java b/src-generated/edu/nps/moves/dis7/pdus/AttributeRecordSet.java
index c4a554dbe295acfae65f45a0c4f24587d07fdea6..8507633b1c3746b588694068365a594ab1591a43 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/AttributeRecordSet.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/AttributeRecordSet.java
@@ -243,7 +243,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" attributeRecords: ");
     attributeRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/CommentPdu.java b/src-generated/edu/nps/moves/dis7/pdus/CommentPdu.java
index d5c6bc6a2abac3c4f0fc153e58c43ad040fd84c1..20e2e5e6fa5bfde1728cf8b75074cf95579bd568 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/CommentPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/CommentPdu.java
@@ -292,7 +292,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" variableDatums: ");
     variableDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/CommentRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/CommentRPdu.java
index d4781f017b6fa39803a1a2c0233214431c2fbd6d..52087bff6d14b9aadd3560ce7023118fb6b42303 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/CommentRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/CommentRPdu.java
@@ -292,7 +292,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" variableDatumRecords: ");
     variableDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DataPdu.java b/src-generated/edu/nps/moves/dis7/pdus/DataPdu.java
index c9f5d31adfab43fc0782a0d269ccda00dd03ddaa..dd07afd11cda3d6f7f9bb4532cbb6bc6571e969e 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DataPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DataPdu.java
@@ -403,11 +403,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatums: ");
     fixedDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatums: ");
     variableDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DataQueryDatumSpecification.java b/src-generated/edu/nps/moves/dis7/pdus/DataQueryDatumSpecification.java
index 986adb8248a17e5f9e723d3860a9bbbe0d009398..7d000420c0dbc52ebe5a8cb236a8095d3d6f2eed 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DataQueryDatumSpecification.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DataQueryDatumSpecification.java
@@ -283,11 +283,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumIDList: ");
     fixedDatumIDList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumIDList: ");
     variableDatumIDList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DataQueryPdu.java b/src-generated/edu/nps/moves/dis7/pdus/DataQueryPdu.java
index 6b18dde6a2a806c262aefd6aca901316336122c5..e5dbaaa312705d6d488f0981e0b73e85acaf5661 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DataQueryPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DataQueryPdu.java
@@ -403,11 +403,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatums: ");
     fixedDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatums: ");
     variableDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DataQueryRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/DataQueryRPdu.java
index 1121a393f3f0109d5979f4818adb29e355e22e54..55668148e33bbb3f5733177a5fbcc44f04bea735 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DataQueryRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DataQueryRPdu.java
@@ -499,11 +499,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumRecords: ");
     fixedDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumRecords: ");
     variableDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DataRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/DataRPdu.java
index 4cc540d1d117bd1072ff4e316ddce95fdbf66ab9..f1a2494dd6116a65168fdaa26d8c11be78029979 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DataRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DataRPdu.java
@@ -472,11 +472,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumRecords: ");
     fixedDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumRecords: ");
     variableDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DatumSpecification.java b/src-generated/edu/nps/moves/dis7/pdus/DatumSpecification.java
index 34dfdb309f65e511ad543c9b7284c17c2e77767f..98eb5aac3cd26c8f8fc37179e10b6ee34bdd5ee1 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DatumSpecification.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DatumSpecification.java
@@ -283,11 +283,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumIDList: ");
     fixedDatumIDList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumIDList: ");
     variableDatumIDList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DetonationPdu.java b/src-generated/edu/nps/moves/dis7/pdus/DetonationPdu.java
index bda1f289d6185e906760966ef2240020766b6373..23d8660986b6a7161ddfad98f4f87569d3e12af9 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DetonationPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DetonationPdu.java
@@ -568,7 +568,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" variableParameters: ");
     variableParameters.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyAreaAimpoint.java b/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyAreaAimpoint.java
index d62947e449b3774f8a97b11304c8340c849bc45f..3fd15bc8a0a5d448c3a3c1734feaf912ca6d2581 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyAreaAimpoint.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyAreaAimpoint.java
@@ -391,11 +391,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" beamAntennaParameterList: ");
     beamAntennaParameterList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" directedEnergyTargetEnergyDepositionRecordList: ");
     directedEnergyTargetEnergyDepositionRecordList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyFirePdu.java b/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyFirePdu.java
index b811358e81948f7f1a33b643c9d13b2208285558..cfd0c700112f943db3844dd0f275d0cf1895b378 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyFirePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/DirectedEnergyFirePdu.java
@@ -734,7 +734,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" dERecords: ");
     dERecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/DisTime.java b/src-generated/edu/nps/moves/dis7/pdus/DisTime.java
deleted file mode 100644
index 9669b3b37be691061cf33718ea2856e99bf45129..0000000000000000000000000000000000000000
--- a/src-generated/edu/nps/moves/dis7/pdus/DisTime.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * Copyright (c) 2008-2022, MOVES Institute, Naval Postgraduate School (NPS). All rights reserved.
- * This work is provided under a BSD open-source license, see project license.html and license.txt
- */
-
-package edu.nps.moves.dis7.pdus;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-/**
- * <p>DIS time units are a pain to work with. As specified by the IEEE DIS Protocol specification, 
- * DIS time units are defined in a custom manner and set
- * equal to 2^31 - 1 time units per hour. The DIS time is set to the number of time
- * units since the start of the hour. Rollover problems can easily occur.  The timestamp field in the PDU header is
- * four bytes long and is specified to be an unsigned integer value.</p>
- *
- * <p>Additionally, there are two types of official timestamps in the PDU header: 
- * <i>absolute time</i> and <i>relative time</i>. Absolute time is used when the host is synchronized to 
- * <a href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time" target="_blank">Coordinated Universal Time (UTC)</a>, i.e. the host
- * is accurately synchronized with UTC via <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol" target="_blank">Network Time Protocol (NTP)</a>.
- * The packet timestamps originating from such hosts can be legitimately
- * compared to the timestamp of packets received from other hosts, since they all are
- * referenced to the same universal time.</p>
- *
- * <p><b>Absolute timestamps</b> have their least significant bit (LSB) set to 1, and relative timestamps have their
- * LSB set to 0. The idea in the DIS specification is to get the current time since the top of the hour,
- * divide by 2^31-1, shift left one bit, then set the LSB to either 0 for relative
- * timestamps or 1 for absolute timestamps.</p>
- *
- * <p><b>Relative timestamps</b> are used when the host does NOT have access to NTP, and hence
- * the system time might not be coordinated with that of other hosts. This means that
- * a host receiving DIS packets from several hosts might have to set up a per-host
- * table to correlate baseline time references before ordering packets, and that 
- * the PDU timestamp fields from one host is not
- * directly comparable to the PDU timestamp field from another host.</p>
- *
- * <p>The nature of shared DIS data is such that the timestamp values <i>roll over</i> once an
- * hour, and simulations must be prepared for that eventuality. In other words, at the top of the hour
- * outgoing PDUs will have a timestamp of 1, then just before the end of the hour the
- * PDUs will have a timestamp of 2^31 - 1, and then they will roll back over to a value of 1.
- * Receiving applications should expect this behavior, and not simply expect a
- * monotonically increasing timestamp field.</p>
- *
- * <p><b>Unix time</b>. Note that many applications in the wild have been known to completely ignore
- * the standard and to simply put commonly used <a href="https://en.wikipedia.org/wiki/Unix_time">Unix time</a> (seconds since 1 January 1970) into the
- * field. </p>
- *
- * <p><b>Year time</b>.  The rollover associated with official DIS timestamps don't work all that well in numerous applications,
- * which often expect a monotonically increasing timestamp field.   Such unpredictable rollover variations are also incompatible
- * with archival recording or streaming playback of Live-Virtual-Constructive (LVC) behavior streams.
- * To avoid such problems, NPS created a "yearly" timestamp which measures 
- * hundredths of a second since the start of the current year. The maximum value for
- * such measurements is 3,153,600,000, which can fit into an unsigned int. 
- * One hundredth of a second resolution is accurate enough for most applications, and you typically don't have to worry about
- * rollover, instead getting only a monotonically increasing timestamp value.</p>
- *
- * <p><b>TODO: time 0.0</b>.  Functionality is needed to define a shared common time origin, and also to
- * precisely adjust stream timestamps when coordinating recorded PDU playback within LVC applications.
- * We think the ability to "start at time 0.0", or normalizing initial time to zero 
- * for a recorded PDU stream, is actually a pretty common use case.</p>
- * <p> Don McGregor, Mike Bailey,  and Don Brutzman</p>
- * 
- * @author DMcG
- */
-// * problems unlikely:
-// * <p><b>TODO: confirm thread safe</b>. Be careful with the shared instance of this class --
-// * it has static synchronized methods but is not yet
-// * confirmed to be thread safe. If you are using multiple threads, suggest you
-// * create a new instance of the class for each thread to prevent the values from
-// * getting stomped on.</p>
-
-public class DisTime
-{
-    /** mask for absolute timestamps */
-    public static final int ABSOLUTE_TIMESTAMP_MASK = 0x00000001;
-    
-    /** mask for relative timestamps */
-    public static final int RELATIVE_TIMESTAMP_MASK = 0xfffffffe;
-    
-    /** calendar instance */
-    private static GregorianCalendar calendar;
-
-   // public static DisTime disTime = null;
-
-    /**
-     * Shared instance. This is not thread-safe. If you are working in multiple threads,
-     * create a new instance for each thread.
-     * return singleton instance of DisTime
-     */
-   /* public static DisTime createInstance()
-    {
-        if (disTime == null) {
-            disTime = new DisTime();
-        }
-
-        return disTime;
-    }
-    */
-    
-    public DisTime()
-    {
-        calendar = new GregorianCalendar();
-    }
-
-    /**
-     * Returns the number of DIS time units since the top of the hour. there are 2^31-1 DIS time
-     * units per hour.
-     * @return integer DIS time units since the start of the hour.
-     */
-    private static synchronized int getCurrentDisTimeUnitsSinceTopOfHour()
-    {
-        // set calendar object to current time
-        long currentTime = System.currentTimeMillis(); // UTC milliseconds since 1970
-        calendar.setTimeInMillis(currentTime);
-
-        // Set calendar to top of the hour, then compute what the calendar object says was milliseconds since 1970
-        // at the top of the hour
-        calendar.set(Calendar.MINUTE, 0);
-        calendar.set(Calendar.SECOND, 0);
-        calendar.set(Calendar.MILLISECOND, 0);
-        long topOfHour = calendar.getTimeInMillis();
-
-        // Milliseconds since the top of the hour
-        long diff = currentTime - topOfHour;
-
-        // It turns out that Integer.MAX_VALUE is 2^31-1, which is the time unit value, ie there are
-        // 2^31-1 DIS time units in an hour. 3600 sec/hr X 1000 msec/sec divided into the number of
-        // msec since the start of the hour gives the percentage of DIS time units in the hour, times
-        // the number of DIS time units per hour, equals the time value
-        double val = (diff / (3600.0 * 1000.0)) * Integer.MAX_VALUE;
-        int ts = (int) val;
-
-        return ts;
-    }
-
-    /**
-     * Checks local system clock and returns the current DIS standard absolute timestamp, assuming that this host is synchronized to NTP.
-     * // Fix to bitshift by mvormelch.
-     * @see <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol" target="_blank">Wikipedia: Network Time Protocol (NTP)</a>
-     * @return DIS time units, get absolute timestamp
-     */
-    public static synchronized int getCurrentDisAbsoluteTimestamp()
-    {
-         int val = getCurrentDisTimeUnitsSinceTopOfHour();
-         val = (val << 1) | ABSOLUTE_TIMESTAMP_MASK; // always flip the lsb to 1
-         return val;
-    }
-
-    /**
-     * Checks local system clock and returns the current DIS standard relative timestamp, which should be used if this host
-     * is not slaved to NTP. Fix to bitshift by mvormelch
-     * @see <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol" target="_blank">Wikipedia: Network Time Protocol (NTP)</a>
-     * @return DIS time units, relative
-     */
-    public static int getCurrentDisRelativeTimestamp()
-    {
-        int val = getCurrentDisTimeUnitsSinceTopOfHour();
-        val = (val << 1) & RELATIVE_TIMESTAMP_MASK; // always flip the lsb to 0
-        return val;
-    }
-
-    /**
-     * Checks local system clock and returns a useful timestamp, hundredths of a second since the start of the year.
-     * This effectively eliminates the need for receivers to handle timestamp rollover,
-     * as long as you're not working late on New Year's Eve.
-     * (Previously referred to as NPS timestamp.)
-     * TODO consider renaming as Annual timestamp.
-     * TODO consult with DIS working group about timestamp disambiguation.
-     * @return a timestamp in hundredths of a second since the start of the year
-     */
-    public static synchronized int getCurrentYearTimestamp()
-    {
-        // set calendar object to current time
-        long currentTime = System.currentTimeMillis(); // UTC milliseconds since 1970
-        calendar.setTimeInMillis(currentTime);
-
-        // Set calendar to the start of the year
-        calendar.set(Calendar.MONTH, 0);
-        calendar.set(Calendar.DAY_OF_MONTH, 1);
-        calendar.set(Calendar.HOUR, 0);
-        calendar.set(Calendar.MINUTE, 0);
-        calendar.set(Calendar.SECOND, 0);
-        calendar.set(Calendar.MILLISECOND, 0);
-        long startOfYear = calendar.getTimeInMillis();
-
-        // Milliseconds since the top of the hour
-        long diff = currentTime - startOfYear;
-        diff /= 10; // milliseconds to hundredths of a second
-
-        return (int) diff;
-    }
-
-    /**
-     * Checks local system clock and returns a useful timestamp as local Unix time.
-     * Another option for marshalling with the timestamp field set automatically. The UNIX
-     * time is conventionally seconds since January 1, 1970. UTC time is used, and leap seconds
-     * are excluded. This approach is popular in the wild, but the time resolution is not very
-     * good for high frequency updates, such as aircraft. An entity updating at 30 PDUs/second
-     * would see 30 PDUs sent out with the same timestamp, and have 29 of them discarded as
-     * duplicate packets.
-     *
-     * Note that there are other "Unix times", such milliseconds since 1/1/1970, saved in a long.
-     * This cannot be used, since the value is saved in a long. Java's System.getCurrentTimeMillis()
-     * uses this value.
-     *
-     * Unix time (in seconds) rolls over in 2038. 
-     *
-     * Consult the Wikipedia page on <a href="https://en.wikipedia.org/wiki/Unix_time">Unix time</a> for the gory details
-     * @return seconds since 1970
-     */
-    public static synchronized int getCurrentUnixTimestamp()
-    {
-        long t = System.currentTimeMillis();
-        t /= 1000l;   // NB: integer division, convert milliseconds to seconds
-        return (int) t;
-    }
-    
-    /**
-     * Convert timestamp value to string for logging and diagnostics.
-     * TODO consider different formats for different timestampStyle values.
-     * @param timestamp value in milliseconds
-     * @see GregorianCalendar
-     * @return string value provided by GregorianCalendar
-     */
-    public static String convertToString(int timestamp)
-    {
-        GregorianCalendar newCalendar = new GregorianCalendar();
-        newCalendar.setTimeInMillis(timestamp);
-        DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
-        return formatter.format(newCalendar.getTime());
-    }
-}
\ No newline at end of file
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ElectromagneticEmissionPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ElectromagneticEmissionPdu.java
index c411dcdacfa00ff3518a84dab71b7ef350adb52a..af18cb74ddd9778573da1ee58d96a6d24f6afd6a 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ElectromagneticEmissionPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ElectromagneticEmissionPdu.java
@@ -401,7 +401,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" systems: ");
     systems.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ElectronicEmitter.java b/src-generated/edu/nps/moves/dis7/pdus/ElectronicEmitter.java
index 49fd0edc24d110fc3e26a5b571e6d4b14c44e4f1..de719d9c8ee17f4cbb75ec28ba11df8cbcb91397 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ElectronicEmitter.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ElectronicEmitter.java
@@ -305,7 +305,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" beams: ");
     beams.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/EmitterBeam.java b/src-generated/edu/nps/moves/dis7/pdus/EmitterBeam.java
index 164b27916547f31d3399f9049a70b3fbd2791cf5..a5924148e4f3fc7c0e94dfec6ab404e5fd1c8a50 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/EmitterBeam.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/EmitterBeam.java
@@ -485,7 +485,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" trackJamData: ");
     trackJamData.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/EntityDamageStatusPdu.java b/src-generated/edu/nps/moves/dis7/pdus/EntityDamageStatusPdu.java
index d18b3b1795b2dec85a6b58100c77ecfaaabed7b7..f20ec1c64fb563ff6ddbda10fb3c70c1624ac70c 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/EntityDamageStatusPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/EntityDamageStatusPdu.java
@@ -378,7 +378,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" damageDescriptionRecords: ");
     damageDescriptionRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/EntityStatePdu.java b/src-generated/edu/nps/moves/dis7/pdus/EntityStatePdu.java
index 1d869f186e2390a6ffb876fd68c31df2d5d639db..044b9d8d40420144583cb14c125e27ba1413f140 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/EntityStatePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/EntityStatePdu.java
@@ -588,7 +588,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" variableParameters: ");
     variableParameters.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/EntityStateUpdatePdu.java b/src-generated/edu/nps/moves/dis7/pdus/EntityStateUpdatePdu.java
index 322eff5a2cf642295e64cebe213557dd5bba30bb..3990c54ecd0f73d175b6c466ff6fd870c4a5bd57 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/EntityStateUpdatePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/EntityStateUpdatePdu.java
@@ -455,7 +455,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" variableParameters: ");
     variableParameters.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/EnvironmentalProcessPdu.java b/src-generated/edu/nps/moves/dis7/pdus/EnvironmentalProcessPdu.java
index 54360deb1eee7e9c37331e5c647beadd41882f6d..bdfe08b9a035f5d095fc525d77017be59d3bf604 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/EnvironmentalProcessPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/EnvironmentalProcessPdu.java
@@ -427,7 +427,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" environmentRecords: ");
     environmentRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/EventReportPdu.java b/src-generated/edu/nps/moves/dis7/pdus/EventReportPdu.java
index 225165d175ee2b7539bf383b22a303c95e454ac1..e9509b66078a44e753c114c9ce7cf74bf255c2d8 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/EventReportPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/EventReportPdu.java
@@ -404,11 +404,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatums: ");
     fixedDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatums: ");
     variableDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/EventReportRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/EventReportRPdu.java
index 2ba7b57247adaeebea76af40a9b2f5eda99e6982..b0818aef5e02cc1e43cf1b4ef31a5733b1a1639d 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/EventReportRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/EventReportRPdu.java
@@ -404,11 +404,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumRecords: ");
     fixedDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumRecords: ");
     variableDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/GriddedDataPdu.java b/src-generated/edu/nps/moves/dis7/pdus/GriddedDataPdu.java
index 61a06f4ce2f1f9c5369824d9c2ec70c8e161ee1c..6d5419d33ea864b4e4740775b6792348d3949475 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/GriddedDataPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/GriddedDataPdu.java
@@ -738,11 +738,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" gridAxisDescriptors: ");
     gridAxisDescriptors.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" gridDataRecords: ");
     gridDataRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/IFFLayer2Pdu.java b/src-generated/edu/nps/moves/dis7/pdus/IFFLayer2Pdu.java
index 3a539d2245b2594111385e56b8b659075c84d419..53a043a6f28502c1b6430636a802b7fbbb206947 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/IFFLayer2Pdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/IFFLayer2Pdu.java
@@ -405,7 +405,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fundamentalIFFParameters: ");
     fundamentalIFFParameters.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/IffDataSpecification.java b/src-generated/edu/nps/moves/dis7/pdus/IffDataSpecification.java
index c6199299ff513120b2757a1685c898bf03677f97..e913981b6e48fb620e5e4daec89ed3370034e71d 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/IffDataSpecification.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/IffDataSpecification.java
@@ -216,7 +216,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" iffDataRecords: ");
     iffDataRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsActionPdu.java b/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsActionPdu.java
index e4690322154186c2f97cda2ca5286bcd92803dec..a27aa596579d1484bea88558fabd9d1b863072f3 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsActionPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsActionPdu.java
@@ -566,7 +566,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" ioRecords: ");
     ioRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsReportPdu.java b/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsReportPdu.java
index 972b49e3837fb007ba51a2bb638b990f310baa5d..8c6784605c35593f76f38f15908e3cc5e68d274d 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsReportPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/InformationOperationsReportPdu.java
@@ -496,7 +496,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" ioRecords: ");
     ioRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/IntercomControlPdu.java b/src-generated/edu/nps/moves/dis7/pdus/IntercomControlPdu.java
index 2f45e8f3b3ae70d7743a2bb6f23025a846ccc7df..bb84e45ae312920007db8530b79d28795acedd74 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/IntercomControlPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/IntercomControlPdu.java
@@ -626,7 +626,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" intercomParameters: ");
     intercomParameters.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/IsGroupOfPdu.java b/src-generated/edu/nps/moves/dis7/pdus/IsGroupOfPdu.java
index 5330408660959e6f8c170e18ef61ffdfe04e9979..91d5999559b0763d92caef505e98825a6912fef3 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/IsGroupOfPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/IsGroupOfPdu.java
@@ -419,7 +419,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" groupedEntityDescriptions: ");
     groupedEntityDescriptions.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/LinearObjectStatePdu.java b/src-generated/edu/nps/moves/dis7/pdus/LinearObjectStatePdu.java
index 768c0dd30113c54f6e17c55935693be25cba6291..465be677443805131afc58ba1ef86aa93f340684 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/LinearObjectStatePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/LinearObjectStatePdu.java
@@ -484,7 +484,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" linearSegmentParameters: ");
     linearSegmentParameters.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/MinefieldDataPdu.java b/src-generated/edu/nps/moves/dis7/pdus/MinefieldDataPdu.java
index 0cf6084733ca3729a59c301884a978f13af2a31d..8c080ec81b68ef020f9240b2af601e07d34fad89 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/MinefieldDataPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/MinefieldDataPdu.java
@@ -1276,27 +1276,33 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" sensorTypes: ");
     sensorTypes.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" mineLocation: ");
     mineLocation.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" mineOrientation: ");
     mineOrientation.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" mineEmplacementTime: ");
     mineEmplacementTime.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" fusing: ");
     fusing.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" paintScheme: ");
     paintScheme.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/MinefieldQueryPdu.java b/src-generated/edu/nps/moves/dis7/pdus/MinefieldQueryPdu.java
index caa79f788b26e672a40734f86fe47033d2ddf5ae..26fb912dc9df2921730edd50e8ad6fb56dacc1b0 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/MinefieldQueryPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/MinefieldQueryPdu.java
@@ -529,11 +529,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" requestedPerimeterPoints: ");
     requestedPerimeterPoints.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" sensorTypes: ");
     sensorTypes.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/MinefieldStatePdu.java b/src-generated/edu/nps/moves/dis7/pdus/MinefieldStatePdu.java
index 203ce99c96ff9494a8cdc5b546f83ff0054493ff..f3103415bae6b3ba9dc6a82dad2c14e29da3786e 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/MinefieldStatePdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/MinefieldStatePdu.java
@@ -578,11 +578,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" perimeterPoints: ");
     perimeterPoints.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" mineType: ");
     mineType.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/RecordQueryRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/RecordQueryRPdu.java
index 23fa8e94fb87df5c42afe813f673dee6ca2c6eac..12ad09a28b7613b8e823fec0ee9fb586ac7d77b1 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/RecordQueryRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/RecordQueryRPdu.java
@@ -426,7 +426,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" recordIDs: ");
     recordIDs.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/RecordQuerySpecification.java b/src-generated/edu/nps/moves/dis7/pdus/RecordQuerySpecification.java
index 962feb32fd7ff13e1b5d607ab656b95938d2cc8e..b44e79ba7fd6041ca0215af54dd82652dcc09f1b 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/RecordQuerySpecification.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/RecordQuerySpecification.java
@@ -215,7 +215,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" recordIDs: ");
     recordIDs.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/RecordRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/RecordRPdu.java
index bd72009ad16f0e238899c06834a914aacf7665f3..6a1dea110fbbb099ea493767a07e7e40a71db19f 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/RecordRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/RecordRPdu.java
@@ -399,7 +399,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" recordSets: ");
     recordSets.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/RecordSpecification.java b/src-generated/edu/nps/moves/dis7/pdus/RecordSpecification.java
index 7525545bb2dea79a7bb00d4427c9817de5308862..eae5c94c303a5ead8b46af99efd0513b80662b46 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/RecordSpecification.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/RecordSpecification.java
@@ -216,7 +216,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" recordSets: ");
     recordSets.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ResupplyOfferPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ResupplyOfferPdu.java
index 595f5079c9cfb8f4ea3876a830b0fdcc544f8ee6..a36d37003d5cfd7fbd49b2cfaec936f9820689fd 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ResupplyOfferPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ResupplyOfferPdu.java
@@ -406,7 +406,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" supplies: ");
     supplies.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ResupplyReceivedPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ResupplyReceivedPdu.java
index 92e82c4ece8f5683cff1e026d4c73583630c2e3d..80c8e8705640534db52ca831bd1aa3f04e955f29 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ResupplyReceivedPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ResupplyReceivedPdu.java
@@ -406,7 +406,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" supplies: ");
     supplies.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/SEESPdu.java b/src-generated/edu/nps/moves/dis7/pdus/SEESPdu.java
index 95b7266eab6adba33083201691fe504a3c7599a7..b79f1c9236823e343c276121ae6208817fa6501a 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/SEESPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/SEESPdu.java
@@ -479,11 +479,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" propulsionSystemData: ");
     propulsionSystemData.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" vectoringSystemData: ");
     vectoringSystemData.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/ServiceRequestPdu.java b/src-generated/edu/nps/moves/dis7/pdus/ServiceRequestPdu.java
index d16782976290d5599f947b8779a433dcc8bac64c..1895f6031d5e8ce25fc1b9019d4f033900854c24 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/ServiceRequestPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/ServiceRequestPdu.java
@@ -400,7 +400,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" supplies: ");
     supplies.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/SetDataPdu.java b/src-generated/edu/nps/moves/dis7/pdus/SetDataPdu.java
index 993aede681f66bbad72cdd84ebb7f8c108362f6a..23be101b92a9d60f041dcdd0a7f5c47ef7d7084b 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/SetDataPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/SetDataPdu.java
@@ -403,11 +403,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatums: ");
     fixedDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatums: ");
     variableDatums.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/SetDataRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/SetDataRPdu.java
index 2d9706d2e1d0a667f54c63c6f6a45414dd2fe26c..8eaffc14920d690bd3f6f660b6b63742f314cdd0 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/SetDataRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/SetDataRPdu.java
@@ -472,11 +472,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" fixedDatumRecords: ");
     fixedDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" variableDatumRecords: ");
     variableDatumRecords.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/SetRecordRPdu.java b/src-generated/edu/nps/moves/dis7/pdus/SetRecordRPdu.java
index 308963237e0d50625b46cbc8d132ef532f1fa8d7..635f1469fae63e33492717e866a6ccb548346401 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/SetRecordRPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/SetRecordRPdu.java
@@ -432,7 +432,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" recordSets: ");
     recordSets.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/StandardVariableSpecification.java b/src-generated/edu/nps/moves/dis7/pdus/StandardVariableSpecification.java
index 2b542b36a9fd29d74423a32316eddcb014291cf8..70128d77e7c15ce08ab60ffeb20a0e8b0d7e6e22 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/StandardVariableSpecification.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/StandardVariableSpecification.java
@@ -237,7 +237,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" standardVariables: ");
     standardVariables.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/TransmitterPdu.java b/src-generated/edu/nps/moves/dis7/pdus/TransmitterPdu.java
index fc1e6f99d6b0e43074905eca5e492b94ace2cec8..8157fabc94930a3cb0e9c246b329973352fb61af 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/TransmitterPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/TransmitterPdu.java
@@ -859,11 +859,13 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" modulationParametersList: ");
     modulationParametersList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" antennaPatternList: ");
     antennaPatternList.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/UAEmitter.java b/src-generated/edu/nps/moves/dis7/pdus/UAEmitter.java
index 63a834168f8d107673f150a55defbf381f4f0629..4e7042bc309efc5827aededf0405eb1bb41fa4bd 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/UAEmitter.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/UAEmitter.java
@@ -339,7 +339,8 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" beams: ");
     beams.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }
diff --git a/src-generated/edu/nps/moves/dis7/pdus/UnderwaterAcousticPdu.java b/src-generated/edu/nps/moves/dis7/pdus/UnderwaterAcousticPdu.java
index 9e3b571968cbc4f458baa67e49a5cdc1c42244e4..e9cb9edb5d36d15b907e2d51c6da41f4b450dbd1 100644
--- a/src-generated/edu/nps/moves/dis7/pdus/UnderwaterAcousticPdu.java
+++ b/src-generated/edu/nps/moves/dis7/pdus/UnderwaterAcousticPdu.java
@@ -596,15 +596,18 @@ public int unmarshal(java.nio.ByteBuffer byteBuffer) throws Exception
     sb.append(" shaftRPMs: ");
     shaftRPMs.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" apaData: ");
     apaData.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
     sb.append(" emitterSystems: ");
     emitterSystems.forEach(r->{ sb2.append(" ").append(r);}); // writeList
     sb.append(sb2.toString().trim());
-    sb2.delete(0,sb2.length()-1); // reset
+    // https://stackoverflow.com/questions/2242471/clearing-a-string-buffer-builder-after-loop
+    sb2.setLength(0); // reset
 
    return sb.toString();
  }