import java.util.*;
import java.util.zip.*;
import java.util.List;
import java.util.regex.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.concurrent.locks.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.table.*;
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
import java.lang.ref.*;
import java.lang.management.*;
import java.security.*;
import java.security.spec.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.math.*;
import java.awt.datatransfer.*;
import java.text.SimpleDateFormat;
import java.awt.datatransfer.StringSelection;
import java.text.NumberFormat;
import java.text.*;
import javax.swing.undo.UndoManager;
import java.util.TimeZone;
import javax.net.ssl.*;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import javax.imageio.metadata.*;
import javax.imageio.stream.*;
import java.awt.geom.*;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
class main {
abstract static class DynObjectTable extends DynModule {
List data = new ArrayList();
transient JTable table;
transient F1 itemToMap;
transient VF1 defaultAction;
transient boolean debug, fieldsInOrder = true, withSearcher;
transient TableSearcher searcher;
transient List onListChanged;
transient Set hideFields;
transient boolean useStruct = false; // possible breaking change for older modules
void start() { try { super.start();
itemToMap = new F1() { Map get(A a) { try {
if (a instanceof String) return litorderedmap("" , (String) a);
Map map = humanizeKeys(fieldsInOrder ? objectToMap_inOrder_withoutFields(a, hideFields) : objectToMap(a));
if (!useStruct) map = mapValues("strOrEmpty",map);
return map;
} catch (Exception __e) { throw rethrow(__e); } }
public String toString() { return "if (a instanceof S) ret litorderedmap(\"\" := (S) a);\r\n Map map = humanize..."; }};
onChange(new Runnable() { public void run() { try { updateTable();
} catch (Exception __e) { throw rethrow(__e); } } public String toString() { return "updateTable();"; }});
} catch (Exception __e) { throw rethrow(__e); } }
void onListChanged(Runnable r) {
if (r == null) return;
onListChanged = addDyn_sync(onListChanged, r);
}
void onListChangedAndNow(Runnable r) {
if (r == null) return;
onListChanged(r);
r.run();
}
void addCountToName() {
onListChangedAndNow(new Runnable() { public void run() { try { addCountToNameNow();
} catch (Exception __e) { throw rethrow(__e); } } public String toString() { return "addCountToNameNow();"; }});
}
void addCountToNameNow() { AutoCloseable __1 = enter(); try {
setModuleName(programTitle() + " (" + count() + ")");
} finally { _close(__1); }}
public JComponent visualize() {
List