JAL-1807 Bob
authorhansonr <hansonr@stolaf.edu>
Sat, 25 Jul 2015 07:05:19 +0000 (08:05 +0100)
committerhansonr <hansonr@stolaf.edu>
Sat, 25 Jul 2015 07:05:19 +0000 (08:05 +0100)
jars/closure_compiler.jar [new file with mode: 0644]
package/package.js [new file with mode: 0644]
site/j2s/awt2swing/Util.js [new file with mode: 0644]
site/j2s/core/corejalview.js [new file with mode: 0644]
site/j2s/core/corejalview.z.js [new file with mode: 0644]
site/j2s/java/awt/peer/rep5459595286819881521.tmp [new file with mode: 0644]
site/j2s/swingjs/plaf/JSPopupMenuSeparatorUI.js [new file with mode: 0644]
site/js/t [new file with mode: 0644]
src/awt2swing/Util.java [new file with mode: 0644]
swingjs.zip [new file with mode: 0644]

diff --git a/jars/closure_compiler.jar b/jars/closure_compiler.jar
new file mode 100644 (file)
index 0000000..53037b0
Binary files /dev/null and b/jars/closure_compiler.jar differ
diff --git a/package/package.js b/package/package.js
new file mode 100644 (file)
index 0000000..e07efb9
--- /dev/null
@@ -0,0 +1,78 @@
+// package.js from Jmol project -- template only here for Swingjs
+
+// NOTE: Any changes here must also be reflected in build xml
+// NOTE: this code does not allow for multiple J2S applications on a page
+
+if (!window["java.registered"])
+ window["java.registered"] = false;
+
+(function (ClazzLoader) {
+
+       if (window["java.packaged"]) return;
+       window["java.packaged"] = true;
+
+       //if (!Jmol._isAsync) {
+               for (var i = 0; i < Jmol._coreFiles.length; i++)
+                 ClazzLoader.loadZJar(Jmol._coreFiles[i], ClazzLoader.runtimeKeyClass);
+       //}
+               
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "java/awt/geom/Point2D.js", [
+  "java.awt.geom.Point2D", 
+  "java.awt.geom.Point2D.Double", 
+  "java.awt.geom.Point2D.Float"  
+       ]);
+
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "sun/awt/SunHints.js", [
+  "sun.awt.SunHints", 
+  "sun.awt.SunHints.Value", 
+  "sun.awt.SunHints.Key", 
+  "sun.awt.SunHints.LCDContrastKey",
+  "sun.awt.SunHints.SunKey" 
+       ]);
+
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "javax/swing/text/AbstractDocument.js", [
+  "javax.swing.text.AbstractDocument", 
+  "javax.swing.text.AbstractDocument.UndoRedoDocumentEvent" 
+       ]);
+
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "javax/swing/Popup.js", [
+  "javax.swing.Popup", 
+  "javax.swing.Popup.DefaultFrame",
+  "javax.swing.Popup.HeavyWeightWindow" 
+       ]);
+
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "javax/swing/text/LayeredHighlighter.js", [
+  "javax.swing.text.LayeredHighlighter", 
+  "javax.swing.text.LayeredHighlighter.LayerPainter" 
+       ]);
+
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "javax/swing/JComponent.js", [
+  "javax.swing.JComponent", 
+  "javax.swing.JComponent.KeyboardState", 
+  "javax.swing.JComponent.ActionStandin", 
+  "javax.swing.JComponent.IntVector" 
+       ]);
+
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "sun/util/resources/LocaleData.js", [
+  "sun.util.resources.LocaleData", 
+  "sun.util.resources.LocaleDataResourceBundleControl"
+       ]);
+
+ClazzLoader.jarClasspath (ClazzLoader.getJ2SLibBase() + "java/text/DateFormat.js", [
+  "java.text.DateFormat", 
+  "java.text.DateFormat.Field"
+       ]);
+
+  if (Jmol._debugCode)
+    return;
+
+       var     base = ClazzLoader.getJ2SLibBase() + "core/";
+
+// note - we don't need to list ALL the classes -- only the ones that are entry points.
+
+       ClazzLoader.jarClasspath (base + "corejalview.z.js",    [
+  "jalview.javascript.JalviewLiteJsApi"
+       ]);
+
+}) (Clazz._Loader);
+window["java.registered"] = true;
diff --git a/site/j2s/awt2swing/Util.js b/site/j2s/awt2swing/Util.js
new file mode 100644 (file)
index 0000000..eaf6bf6
--- /dev/null
@@ -0,0 +1,7 @@
+Clazz.declarePackage ("awt2swing");
+c$ = Clazz.declareType (awt2swing, "Util");
+c$.drawString = Clazz.defineMethod (c$, "drawString", 
+function (g, text, x, y) {
+{
+g.drawStringUnique(text, x, y);
+}}, "java.awt.Graphics,~S,~N,~N");
diff --git a/site/j2s/core/corejalview.js b/site/j2s/core/corejalview.js
new file mode 100644 (file)
index 0000000..89feb54
--- /dev/null
@@ -0,0 +1,72014 @@
+(function(Clazz
+,Clazz_getClassName
+,Clazz_newLongArray
+,Clazz_doubleToByte
+,Clazz_doubleToInt
+,Clazz_doubleToLong
+,Clazz_declarePackage
+,Clazz_instanceOf
+,Clazz_load
+,Clazz_instantialize
+,Clazz_decorateAsClass
+,Clazz_floatToInt
+,Clazz_floatToLong
+,Clazz_makeConstructor
+,Clazz_defineEnumConstant
+,Clazz_exceptionOf
+,Clazz_newIntArray
+,Clazz_defineStatics
+,Clazz_newFloatArray
+,Clazz_declareType
+,Clazz_prepareFields
+,Clazz_superConstructor
+,Clazz_newByteArray
+,Clazz_declareInterface
+,Clazz_p0p
+,Clazz_pu$h
+,Clazz_newShortArray
+,Clazz_innerTypeInstance
+,Clazz_isClassDefined
+,Clazz_prepareCallback
+,Clazz_newArray
+,Clazz_castNullAs
+,Clazz_floatToShort
+,Clazz_superCall
+,Clazz_decorateAsType
+,Clazz_newBooleanArray
+,Clazz_newCharArray
+,Clazz_implementOf
+,Clazz_newDoubleArray
+,Clazz_overrideConstructor
+,Clazz_clone
+,Clazz_doubleToShort
+,Clazz_getInheritedLevel
+,Clazz_getParamsType
+,Clazz_isAF
+,Clazz_isAI
+,Clazz_isAS
+,Clazz_isASS
+,Clazz_isAP
+,Clazz_isAFloat
+,Clazz_isAII
+,Clazz_isAFF
+,Clazz_isAFFF
+,Clazz_tryToSearchAndExecute
+,Clazz_getStackTrace
+,Clazz_inheritArgs
+,Clazz_alert
+,Clazz_defineMethod
+,Clazz_overrideMethod
+,Clazz_declareAnonymous
+,Clazz_checkPrivateMethod
+,Clazz_cloneFinals
+){
+var $t$;
+//var c$;
+Clazz_load (["java.io.Reader"], "java.io.InputStreamReader", ["java.lang.NullPointerException"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.$in = null;
+this.isOpen = true;
+this.charsetName = null;
+this.isUTF8 = false;
+this.bytearr = null;
+this.pos = 0;
+Clazz_instantialize (this, arguments);
+}, java.io, "InputStreamReader", java.io.Reader);
+Clazz_makeConstructor (c$, 
+function ($in) {
+//just sets lock Clazz_superConstructor (this, java.io.InputStreamReader, [$in]);
+this.$in = $in;
+var charsetName = (arguments.length > 1 ? arguments[1] : "UTF-8");
+
+this.charsetName = charsetName;
+if (!(this.isUTF8 = "UTF-8".equals (charsetName)) && !"ISO-8859-1".equals (charsetName)) throw  new NullPointerException ("charsetName");
+}, "java.io.InputStream");
+Clazz_defineMethod (c$, "getEncoding", 
+function () {
+return this.charsetName;
+});
+Clazz_overrideMethod (c$, "read", 
+function (cbuf, offset, length) {
+if (this.bytearr == null || this.bytearr.length < length) this.bytearr =  Clazz_newByteArray (length, 0);
+var c;
+var char2;
+var char3;
+var byteCount = 0;
+var charCount = offset;
+var byteLen = this.$in.read (this.bytearr, this.pos, length - this.pos);
+var nAvail = this.$in.available ();
+if (byteLen < 0) return -1;
+var nMax = byteLen;
+while (byteCount < nMax) {
+c = this.bytearr[byteCount] & 0xff;
+if (this.isUTF8) switch (c >> 4) {
+case 0xC:
+case 0xD:
+if (byteCount + 1 >= byteLen) {
+if (nAvail >= 1) {
+nMax = byteCount;
+continue;
+}} else if (((char2 = this.bytearr[byteCount + 1]) & 0xC0) == 0x80) {
+cbuf[charCount++] = String.fromCharCode (((c & 0x1F) << 6) | (char2 & 0x3F));
+byteCount += 2;
+continue;
+}this.isUTF8 = false;
+break;
+case 0xE:
+if (byteCount + 2 >= byteLen) {
+if (nAvail >= 2) {
+nMax = byteCount;
+continue;
+}} else if (((char2 = this.bytearr[byteCount + 1]) & 0xC0) == 0x80 && ((char3 = this.bytearr[byteCount + 2]) & 0xC0) == 0x80) {
+cbuf[charCount++] = String.fromCharCode (((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | (char3 & 0x3F));
+byteCount += 3;
+continue;
+}this.isUTF8 = false;
+break;
+}
+byteCount++;
+cbuf[charCount++] = String.fromCharCode (c);
+}
+this.pos = byteLen - byteCount;
+for (var i = 0; i < this.pos; i++) {
+this.bytearr[i] = this.bytearr[byteCount++];
+}
+return charCount - offset;
+}, "~A,~N,~N");
+Clazz_overrideMethod (c$, "ready", 
+function () {
+return this.isOpen;
+});
+Clazz_overrideMethod (c$, "close", 
+function () {
+this.$in.close ();
+this.isOpen = false;
+});
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["java.awt.event.FocusListener", "$.MouseListener", "javax.swing.ActionMap", "$.InputMap", "$.JComponent", "$.Scrollable", "javax.swing.event.CaretEvent", "$.ChangeListener", "javax.swing.text.Keymap", "javax.swing.DropMode"], "javax.swing.text.JTextComponent", ["java.io.IOException", "java.lang.Boolean", "$.Character", "$.IllegalArgumentException", "java.util.HashMap", "$.Hashtable", "$.Vector", "java.awt.Point", "javax.swing.Action", "$.JViewport", "$.UIManager", "javax.swing.event.CaretListener", "javax.swing.text.DefaultEditorKit", "$.JSMinimalAbstractDocument", "jssun.awt.AppContext", "swingjs.JSToolkit"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.model = null;
+this.caret = null;
+this.navigationFilter = null;
+this.highlighter = null;
+this.keymap = null;
+this.caretEvent = null;
+this.caretColor = null;
+this.selectionColor = null;
+this.selectedTextColor = null;
+this.disabledTextColor = null;
+this.editable = false;
+this.margin = null;
+this.focusAccelerator = '\0';
+this.dragEnabled = false;
+this.dropMode = null;
+this.composedTextAttribute = null;
+this.composedTextContent = null;
+this.composedTextStart = null;
+this.composedTextEnd = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "JTextComponent", javax.swing.JComponent, javax.swing.Scrollable);
+Clazz_prepareFields (c$, function () {
+this.dropMode = javax.swing.DropMode.USE_SELECTION;
+});
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.JTextComponent);
+this.enableEvents (2056);
+this.caretEvent =  new javax.swing.text.JTextComponent.MutableCaretEvent (this);
+this.addMouseListener (this.caretEvent);
+this.addFocusListener (this.caretEvent);
+this.setEditable (true);
+this.setDragEnabled (false);
+this.setLayout (null);
+this.updateUI ();
+});
+Clazz_overrideMethod (c$, "getUI", 
+function () {
+return this.ui;
+});
+Clazz_overrideMethod (c$, "updateUI", 
+function () {
+this.setUI (javax.swing.UIManager.getUI (this));
+this.invalidate ();
+});
+Clazz_defineMethod (c$, "addCaretListener", 
+function (listener) {
+this.listenerList.add (javax.swing.event.CaretListener, listener);
+}, "javax.swing.event.CaretListener");
+Clazz_defineMethod (c$, "removeCaretListener", 
+function (listener) {
+this.listenerList.remove (javax.swing.event.CaretListener, listener);
+}, "javax.swing.event.CaretListener");
+Clazz_defineMethod (c$, "getCaretListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.CaretListener);
+});
+Clazz_defineMethod (c$, "fireCaretUpdate", 
+function (e) {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.CaretListener) {
+(listeners[i + 1]).caretUpdate (e);
+}}
+}, "javax.swing.event.CaretEvent");
+Clazz_defineMethod (c$, "setDocument", 
+function (doc) {
+var old = this.model;
+try {
+this.model = doc;
+this.firePropertyChangeObject ("document", old, doc);
+} finally {
+}
+this.revalidate ();
+this.repaint ();
+}, "javax.swing.text.Document");
+Clazz_defineMethod (c$, "getDocument", 
+function () {
+return this.model;
+});
+Clazz_defineMethod (c$, "getActions", 
+function () {
+if (this.getUI () == null) return null;
+return this.getUI ().getEditorKit (this).getActions ();
+});
+Clazz_defineMethod (c$, "setMargin", 
+function (m) {
+var old = this.margin;
+this.margin = m;
+this.firePropertyChangeObject ("margin", old, m);
+this.invalidate ();
+}, "java.awt.Insets");
+Clazz_defineMethod (c$, "getMargin", 
+function () {
+return this.margin;
+});
+Clazz_defineMethod (c$, "setNavigationFilter", 
+function (filter) {
+this.navigationFilter = filter;
+}, "javax.swing.text.NavigationFilter");
+Clazz_defineMethod (c$, "getNavigationFilter", 
+function () {
+return this.navigationFilter;
+});
+Clazz_defineMethod (c$, "getCaret", 
+function () {
+return this.caret;
+});
+Clazz_defineMethod (c$, "setCaret", 
+function (c) {
+if (this.caret != null) {
+this.caret.removeChangeListener (this.caretEvent);
+this.caret.deinstall (this);
+}var old = this.caret;
+this.caret = c;
+if (this.caret != null) {
+this.caret.install (this);
+this.caret.addChangeListener (this.caretEvent);
+}this.firePropertyChangeObject ("caret", old, this.caret);
+}, "javax.swing.text.Caret");
+Clazz_defineMethod (c$, "getHighlighter", 
+function () {
+return this.highlighter;
+});
+Clazz_defineMethod (c$, "setHighlighter", 
+function (h) {
+if (this.highlighter != null) {
+this.highlighter.deinstall (this);
+}var old = this.highlighter;
+this.highlighter = h;
+if (this.highlighter != null) {
+this.highlighter.install (this);
+}this.firePropertyChangeObject ("highlighter", old, h);
+}, "javax.swing.text.Highlighter");
+Clazz_defineMethod (c$, "setKeymap", 
+function (map) {
+var old = this.keymap;
+this.keymap = map;
+this.firePropertyChangeObject ("keymap", old, this.keymap);
+this.updateInputMap (old, map);
+}, "javax.swing.text.Keymap");
+Clazz_defineMethod (c$, "setDragEnabled", 
+function (b) {
+this.dragEnabled = b;
+}, "~B");
+Clazz_defineMethod (c$, "getDragEnabled", 
+function () {
+return this.dragEnabled;
+});
+Clazz_defineMethod (c$, "setDropMode", 
+function (dropMode) {
+if (dropMode != null) {
+switch (dropMode) {
+case javax.swing.DropMode.USE_SELECTION:
+case javax.swing.DropMode.INSERT:
+this.dropMode = dropMode;
+return;
+}
+}throw  new IllegalArgumentException (dropMode + ": Unsupported drop mode for text");
+}, "javax.swing.DropMode");
+Clazz_defineMethod (c$, "getDropMode", 
+function () {
+return this.dropMode;
+});
+Clazz_defineMethod (c$, "updateInputMap", 
+function (oldKm, newKm) {
+var km = this.getInputMap (0);
+var last = km;
+while (km != null && !(Clazz_instanceOf (km, javax.swing.text.JTextComponent.KeymapWrapper))) {
+last = km;
+km = km.getParent ();
+}
+if (km != null) {
+if (newKm == null) {
+if (last !== km) {
+last.setParent (km.getParent ());
+} else {
+last.setParent (null);
+}} else {
+var newKM =  new javax.swing.text.JTextComponent.KeymapWrapper (newKm);
+last.setParent (newKM);
+if (last !== km) {
+newKM.setParent (km.getParent ());
+}}} else if (newKm != null) {
+km = this.getInputMap (0);
+if (km != null) {
+var newKM =  new javax.swing.text.JTextComponent.KeymapWrapper (newKm);
+newKM.setParent (km.getParent ());
+km.setParent (newKM);
+}}var am = this.getActionMap ();
+var lastAM = am;
+while (am != null && !(Clazz_instanceOf (am, javax.swing.text.JTextComponent.KeymapActionMap))) {
+lastAM = am;
+am = am.getParent ();
+}
+if (am != null) {
+if (newKm == null) {
+if (lastAM !== am) {
+lastAM.setParent (am.getParent ());
+} else {
+lastAM.setParent (null);
+}} else {
+var newAM =  new javax.swing.text.JTextComponent.KeymapActionMap (newKm);
+lastAM.setParent (newAM);
+if (lastAM !== am) {
+newAM.setParent (am.getParent ());
+}}} else if (newKm != null) {
+am = this.getActionMap ();
+if (am != null) {
+var newAM =  new javax.swing.text.JTextComponent.KeymapActionMap (newKm);
+newAM.setParent (am.getParent ());
+am.setParent (newAM);
+}}}, "javax.swing.text.Keymap,javax.swing.text.Keymap");
+Clazz_defineMethod (c$, "getKeymap", 
+function () {
+return this.keymap;
+});
+c$.addKeymap = Clazz_defineMethod (c$, "addKeymap", 
+function (nm, parent) {
+var map =  new javax.swing.text.JTextComponent.DefaultKeymap (nm, parent);
+if (nm != null) {
+javax.swing.text.JTextComponent.getKeymapTable ().put (nm, map);
+}return map;
+}, "~S,javax.swing.text.Keymap");
+c$.removeKeymap = Clazz_defineMethod (c$, "removeKeymap", 
+function (nm) {
+return javax.swing.text.JTextComponent.getKeymapTable ().remove (nm);
+}, "~S");
+c$.getKeymap = Clazz_defineMethod (c$, "getKeymap", 
+function (nm) {
+return javax.swing.text.JTextComponent.getKeymapTable ().get (nm);
+}, "~S");
+c$.getKeymapTable = Clazz_defineMethod (c$, "getKeymapTable", 
+ function () {
+{
+var appContext = jssun.awt.AppContext.getAppContext ();
+var keymapTable = appContext.get (javax.swing.text.JTextComponent.KEYMAP_TABLE);
+if (keymapTable == null) {
+keymapTable =  new java.util.HashMap (17);
+appContext.put (javax.swing.text.JTextComponent.KEYMAP_TABLE, keymapTable);
+var binding = javax.swing.text.JTextComponent.addKeymap ("default", null);
+binding.setDefaultAction ( new javax.swing.text.DefaultEditorKit.DefaultKeyTypedAction ());
+}return keymapTable;
+}});
+c$.loadKeymap = Clazz_defineMethod (c$, "loadKeymap", 
+function (map, bindings, actions) {
+var h =  new java.util.Hashtable ();
+for (var i = 0; i < actions.length; i++) {
+var a = actions[i];
+var value = a.getValue ("Name");
+h.put ((value != null ? value : ""), a);
+}
+for (var i = 0; i < bindings.length; i++) {
+var a = h.get (bindings[i].actionName);
+if (a != null) {
+map.addActionForKeyStroke (bindings[i].key, a);
+}}
+}, "javax.swing.text.Keymap,~A,~A");
+Clazz_defineMethod (c$, "getCaretColor", 
+function () {
+return this.caretColor;
+});
+Clazz_defineMethod (c$, "setCaretColor", 
+function (c) {
+var old = this.caretColor;
+this.caretColor = c;
+this.firePropertyChangeObject ("caretColor", old, this.caretColor);
+}, "java.awt.Color");
+Clazz_defineMethod (c$, "getSelectionColor", 
+function () {
+return this.selectionColor;
+});
+Clazz_defineMethod (c$, "setSelectionColor", 
+function (c) {
+var old = this.selectionColor;
+this.selectionColor = c;
+this.firePropertyChangeObject ("selectionColor", old, this.selectionColor);
+}, "java.awt.Color");
+Clazz_defineMethod (c$, "getSelectedTextColor", 
+function () {
+return this.selectedTextColor;
+});
+Clazz_defineMethod (c$, "setSelectedTextColor", 
+function (c) {
+var old = this.selectedTextColor;
+this.selectedTextColor = c;
+this.firePropertyChangeObject ("selectedTextColor", old, this.selectedTextColor);
+}, "java.awt.Color");
+Clazz_defineMethod (c$, "getDisabledTextColor", 
+function () {
+return this.disabledTextColor;
+});
+Clazz_defineMethod (c$, "setDisabledTextColor", 
+function (c) {
+var old = this.disabledTextColor;
+this.disabledTextColor = c;
+this.firePropertyChangeObject ("disabledTextColor", old, this.disabledTextColor);
+}, "java.awt.Color");
+Clazz_defineMethod (c$, "replaceSelection", 
+function (content) {
+var doc = this.getDocument ();
+if (doc != null) {
+try {
+var composedTextSaved = this.saveComposedText (this.caret.getDot ());
+var p0 = Math.min (this.caret.getDot (), this.caret.getMark ());
+var p1 = Math.max (this.caret.getDot (), this.caret.getMark ());
+if (Clazz_instanceOf (doc, javax.swing.text.JSMinimalAbstractDocument)) {
+(doc).replace (p0, p1 - p0, content, null);
+} else {
+if (p0 != p1) {
+doc.remove (p0, p1 - p0);
+}if (content != null && content.length > 0) {
+doc.insertString (p0, content, null);
+}}if (composedTextSaved) {
+this.restoreComposedText ();
+}} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+swingjs.JSToolkit.alert ("SWINGJS BAD LOCATION EXCEPTION (replace):" + e.getMessage () + swingjs.JSToolkit.getStackTrace (-10));
+} else {
+throw e;
+}
+}
+}}, "~S");
+Clazz_defineMethod (c$, "getText", 
+function (offs, len) {
+return this.getDocument ().getText (offs, len);
+}, "~N,~N");
+Clazz_defineMethod (c$, "modelToView", 
+function (pos) {
+return this.getUI ().modelToView (this, pos);
+}, "~N");
+Clazz_defineMethod (c$, "viewToModel", 
+function (pt) {
+return this.getUI ().viewToModel (this, pt);
+}, "java.awt.Point");
+Clazz_defineMethod (c$, "cut", 
+function () {
+});
+Clazz_defineMethod (c$, "copy", 
+function () {
+});
+Clazz_defineMethod (c$, "paste", 
+function () {
+});
+Clazz_defineMethod (c$, "moveCaretPosition", 
+function (pos) {
+var doc = this.getDocument ();
+if (doc != null) {
+if (pos > doc.getLength () || pos < 0) {
+throw  new IllegalArgumentException ("bad position: " + pos);
+}this.caret.moveDot (pos);
+}}, "~N");
+Clazz_defineMethod (c$, "setFocusAccelerator", 
+function (aKey) {
+aKey = Character.toUpperCase (aKey);
+var old = this.focusAccelerator;
+this.focusAccelerator = aKey;
+this.firePropertyChange ("focusAcceleratorKey", old, this.focusAccelerator);
+this.firePropertyChange ("focusAccelerator", old, this.focusAccelerator);
+}, "~S");
+Clazz_defineMethod (c$, "getFocusAccelerator", 
+function () {
+return this.focusAccelerator;
+});
+Clazz_defineMethod (c$, "read", 
+function ($in, desc) {
+var kit = this.getUI ().getEditorKit (this);
+var doc = kit.createDefaultDocument ();
+if (desc != null) {
+doc.putProperty ("stream", desc);
+}try {
+kit.read ($in, doc, 0);
+this.setDocument (doc);
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+throw  new java.io.IOException (e.getMessage ());
+} else {
+throw e;
+}
+}
+}, "java.io.Reader,~O");
+Clazz_defineMethod (c$, "write", 
+function (out) {
+var doc = this.getDocument ();
+try {
+this.getUI ().getEditorKit (this).write (out, doc, 0, doc.getLength ());
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+throw  new java.io.IOException (e.getMessage ());
+} else {
+throw e;
+}
+}
+}, "java.io.Writer");
+Clazz_defineMethod (c$, "removeNotify", 
+function () {
+Clazz_superCall (this, javax.swing.text.JTextComponent, "removeNotify", []);
+if (javax.swing.text.JTextComponent.getFocusedComponent () === this) {
+jssun.awt.AppContext.getAppContext ().remove (javax.swing.text.JTextComponent.FOCUSED_COMPONENT);
+}});
+Clazz_defineMethod (c$, "setCaretPosition", 
+function (position) {
+var doc = this.getDocument ();
+if (doc != null) {
+if (position > doc.getLength () || position < 0) {
+throw  new IllegalArgumentException ("bad position: " + position);
+}this.caret.setDot (position);
+}}, "~N");
+Clazz_defineMethod (c$, "getCaretPosition", 
+function () {
+return this.caret.getDot ();
+});
+Clazz_defineMethod (c$, "setText", 
+function (t) {
+try {
+var doc = this.getDocument ();
+if (Clazz_instanceOf (doc, javax.swing.text.JSMinimalAbstractDocument)) {
+(doc).replace (0, doc.getLength (), t, null);
+} else {
+doc.remove (0, doc.getLength ());
+doc.insertString (0, t, null);
+}} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+swingjs.JSToolkit.alert ("SWINGJS BAD LOCATION EXCEPTION (setText):" + e.getMessage () + swingjs.JSToolkit.getStackTrace (-10));
+} else {
+throw e;
+}
+}
+}, "~S");
+Clazz_defineMethod (c$, "getText", 
+function () {
+var doc = this.getDocument ();
+var txt;
+try {
+txt = doc.getText (0, doc.getLength ());
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+txt = null;
+} else {
+throw e;
+}
+}
+return txt;
+});
+Clazz_defineMethod (c$, "getSelectedText", 
+function () {
+var txt = null;
+var p0 = Math.min (this.caret.getDot (), this.caret.getMark ());
+var p1 = Math.max (this.caret.getDot (), this.caret.getMark ());
+if (p0 != p1) {
+try {
+var doc = this.getDocument ();
+txt = doc.getText (p0, p1 - p0);
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+throw  new IllegalArgumentException (e.getMessage ());
+} else {
+throw e;
+}
+}
+}return txt;
+});
+Clazz_defineMethod (c$, "isEditable", 
+function () {
+return this.editable;
+});
+Clazz_defineMethod (c$, "setEditable", 
+function (b) {
+if (b != this.editable) {
+var oldVal = this.editable;
+this.editable = b;
+this.firePropertyChangeObject ("editable", Boolean.$valueOf (oldVal), Boolean.$valueOf (this.editable));
+this.repaint ();
+}}, "~B");
+Clazz_defineMethod (c$, "getSelectionStart", 
+function () {
+var start = Math.min (this.caret.getDot (), this.caret.getMark ());
+return start;
+});
+Clazz_defineMethod (c$, "setSelectionStart", 
+function (selectionStart) {
+this.select (selectionStart, this.getSelectionEnd ());
+}, "~N");
+Clazz_defineMethod (c$, "getSelectionEnd", 
+function () {
+var end = Math.max (this.caret.getDot (), this.caret.getMark ());
+return end;
+});
+Clazz_defineMethod (c$, "setSelectionEnd", 
+function (selectionEnd) {
+this.select (this.getSelectionStart (), selectionEnd);
+}, "~N");
+Clazz_defineMethod (c$, "select", 
+function (selectionStart, selectionEnd) {
+var docLength = this.getDocument ().getLength ();
+if (selectionStart < 0) {
+selectionStart = 0;
+}if (selectionStart > docLength) {
+selectionStart = docLength;
+}if (selectionEnd > docLength) {
+selectionEnd = docLength;
+}if (selectionEnd < selectionStart) {
+selectionEnd = selectionStart;
+}this.setCaretPosition (selectionStart);
+this.moveCaretPosition (selectionEnd);
+}, "~N,~N");
+Clazz_defineMethod (c$, "selectAll", 
+function () {
+var doc = this.getDocument ();
+if (doc != null) {
+this.setCaretPosition (0);
+this.moveCaretPosition (doc.getLength ());
+}});
+Clazz_defineMethod (c$, "getToolTipText", 
+function (event) {
+var retValue = Clazz_superCall (this, javax.swing.text.JTextComponent, "getToolTipText", [event]);
+if (retValue == null) {
+var ui = this.getUI ();
+if (ui != null) {
+retValue = ui.getToolTipText (this,  new java.awt.Point (event.getX (), event.getY ()));
+}}return retValue;
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "getPreferredScrollableViewportSize", 
+function () {
+return this.getPreferredSize ();
+});
+Clazz_overrideMethod (c$, "getScrollableUnitIncrement", 
+function (visibleRect, orientation, direction) {
+switch (orientation) {
+case 1:
+return Clazz_doubleToInt (visibleRect.height / 10);
+case 0:
+return Clazz_doubleToInt (visibleRect.width / 10);
+default:
+throw  new IllegalArgumentException ("Invalid orientation: " + orientation);
+}
+}, "java.awt.Rectangle,~N,~N");
+Clazz_overrideMethod (c$, "getScrollableBlockIncrement", 
+function (visibleRect, orientation, direction) {
+switch (orientation) {
+case 1:
+return visibleRect.height;
+case 0:
+return visibleRect.width;
+default:
+throw  new IllegalArgumentException ("Invalid orientation: " + orientation);
+}
+}, "java.awt.Rectangle,~N,~N");
+Clazz_overrideMethod (c$, "getScrollableTracksViewportWidth", 
+function () {
+if (Clazz_instanceOf (this.getParent (), javax.swing.JViewport)) {
+return ((this.getParent ()).getWidth () > this.getPreferredSize ().width);
+}return false;
+});
+Clazz_overrideMethod (c$, "getScrollableTracksViewportHeight", 
+function () {
+if (Clazz_instanceOf (this.getParent (), javax.swing.JViewport)) {
+return ((this.getParent ()).getHeight () > this.getPreferredSize ().height);
+}return false;
+});
+Clazz_defineMethod (c$, "paramString", 
+function () {
+var editableString = (this.editable ? "true" : "false");
+var caretColorString = (this.caretColor != null ? this.caretColor.toString () : "");
+var selectionColorString = (this.selectionColor != null ? this.selectionColor.toString () : "");
+var selectedTextColorString = (this.selectedTextColor != null ? this.selectedTextColor.toString () : "");
+var disabledTextColorString = (this.disabledTextColor != null ? this.disabledTextColor.toString () : "");
+var marginString = (this.margin != null ? this.margin.toString () : "");
+return Clazz_superCall (this, javax.swing.text.JTextComponent, "paramString", []) + ",caretColor=" + caretColorString + ",disabledTextColor=" + disabledTextColorString + ",editable=" + editableString + ",margin=" + marginString + ",selectedTextColor=" + selectedTextColorString + ",selectionColor=" + selectionColorString;
+});
+c$.getFocusedComponent = Clazz_defineMethod (c$, "getFocusedComponent", 
+function () {
+return jssun.awt.AppContext.getAppContext ().get (javax.swing.text.JTextComponent.FOCUSED_COMPONENT);
+});
+Clazz_defineMethod (c$, "addInputMethodListener", 
+function (l) {
+Clazz_superCall (this, javax.swing.text.JTextComponent, "addInputMethodListener", [l]);
+if (l != null) {
+}}, "java.awt.event.InputMethodListener");
+Clazz_defineMethod (c$, "saveComposedText", 
+ function (pos) {
+if (this.composedTextExists ()) {
+var start = this.composedTextStart.getOffset ();
+var len = this.composedTextEnd.getOffset () - this.composedTextStart.getOffset ();
+if (pos >= start && pos <= start + len) {
+try {
+this.getDocument ().remove (start, len);
+return true;
+} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+} else {
+throw ble;
+}
+}
+}}return false;
+}, "~N");
+Clazz_defineMethod (c$, "restoreComposedText", 
+ function () {
+var doc = this.getDocument ();
+try {
+doc.insertString (this.caret.getDot (), this.composedTextContent, this.composedTextAttribute);
+this.composedTextStart = doc.createPosition (this.caret.getDot () - this.composedTextContent.length);
+this.composedTextEnd = doc.createPosition (this.caret.getDot ());
+} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+} else {
+throw ble;
+}
+}
+});
+Clazz_defineMethod (c$, "composedTextExists", 
+function () {
+return (this.composedTextStart != null);
+});
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.key = null;
+this.actionName = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.JTextComponent, "KeyBinding");
+Clazz_makeConstructor (c$, 
+function (a, b) {
+this.key = a;
+this.actionName = b;
+}, "javax.swing.KeyStroke,~S");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.nm = null;
+this.parent = null;
+this.bindings = null;
+this.defaultAction = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.JTextComponent, "DefaultKeymap", null, javax.swing.text.Keymap);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+this.nm = a;
+this.parent = b;
+this.bindings =  new java.util.Hashtable ();
+}, "~S,javax.swing.text.Keymap");
+Clazz_defineMethod (c$, "getDefaultAction", 
+function () {
+if (this.defaultAction != null) {
+return this.defaultAction;
+}return (this.parent != null) ? this.parent.getDefaultAction () : null;
+});
+Clazz_overrideMethod (c$, "setDefaultAction", 
+function (a) {
+this.defaultAction = a;
+}, "javax.swing.Action");
+Clazz_overrideMethod (c$, "getName", 
+function () {
+return this.nm;
+});
+Clazz_defineMethod (c$, "getAction", 
+function (a) {
+var b = this.bindings.get (a);
+if ((b == null) && (this.parent != null)) {
+b = this.parent.getAction (a);
+}return b;
+}, "javax.swing.KeyStroke");
+Clazz_overrideMethod (c$, "getBoundKeyStrokes", 
+function () {
+var a =  new Array (this.bindings.size ());
+var b = 0;
+for (var c = this.bindings.keys (); c.hasMoreElements (); ) {
+a[b++] = c.nextElement ();
+}
+return a;
+});
+Clazz_overrideMethod (c$, "getBoundActions", 
+function () {
+var a =  new Array (this.bindings.size ());
+var b = 0;
+for (var c = this.bindings.elements (); c.hasMoreElements (); ) {
+a[b++] = c.nextElement ();
+}
+return a;
+});
+Clazz_defineMethod (c$, "getKeyStrokesForAction", 
+function (a) {
+if (a == null) {
+return null;
+}var b = null;
+var c = null;
+for (var d = this.bindings.keys (); d.hasMoreElements (); ) {
+var e = d.nextElement ();
+if (this.bindings.get (e) === a) {
+if (c == null) {
+c =  new java.util.Vector ();
+}c.addElement (e);
+}}
+if (this.parent != null) {
+var e = this.parent.getKeyStrokesForAction (a);
+if (e != null) {
+var f = 0;
+for (var g = e.length - 1; g >= 0; g--) {
+if (this.isLocallyDefined (e[g])) {
+e[g] = null;
+f++;
+}}
+if (f > 0 && f < e.length) {
+if (c == null) {
+c =  new java.util.Vector ();
+}for (var h = e.length - 1; h >= 0; h--) {
+if (e[h] != null) {
+c.addElement (e[h]);
+}}
+} else if (f == 0) {
+if (c == null) {
+b = e;
+} else {
+b =  new Array (c.size () + e.length);
+c.copyInto (b);
+System.arraycopy (e, 0, b, c.size (), e.length);
+c = null;
+}}}}if (c != null) {
+b =  new Array (c.size ());
+c.copyInto (b);
+}return b;
+}, "javax.swing.Action");
+Clazz_overrideMethod (c$, "isLocallyDefined", 
+function (a) {
+return this.bindings.containsKey (a);
+}, "javax.swing.KeyStroke");
+Clazz_overrideMethod (c$, "addActionForKeyStroke", 
+function (a, b) {
+this.bindings.put (a, b);
+}, "javax.swing.KeyStroke,javax.swing.Action");
+Clazz_overrideMethod (c$, "removeKeyStrokeBinding", 
+function (a) {
+this.bindings.remove (a);
+}, "javax.swing.KeyStroke");
+Clazz_overrideMethod (c$, "removeBindings", 
+function () {
+this.bindings.clear ();
+});
+Clazz_overrideMethod (c$, "getResolveParent", 
+function () {
+return this.parent;
+});
+Clazz_overrideMethod (c$, "setResolveParent", 
+function (a) {
+this.parent = a;
+}, "javax.swing.text.Keymap");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return "Keymap[" + this.nm + "]" + this.bindings;
+});
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.keymap = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.JTextComponent, "KeymapWrapper", javax.swing.InputMap);
+Clazz_makeConstructor (c$, 
+function (a) {
+Clazz_superConstructor (this, javax.swing.text.JTextComponent.KeymapWrapper, []);
+this.keymap = a;
+}, "javax.swing.text.Keymap");
+Clazz_defineMethod (c$, "keys", 
+function () {
+var a = Clazz_superCall (this, javax.swing.text.JTextComponent.KeymapWrapper, "keys", []);
+var b = this.keymap.getBoundKeyStrokes ();
+var c = (a == null) ? 0 : a.length;
+var d = (b == null) ? 0 : b.length;
+if (c == 0) {
+return b;
+}if (d == 0) {
+return a;
+}var e =  new Array (c + d);
+System.arraycopy (a, 0, e, 0, c);
+System.arraycopy (b, 0, e, c, d);
+return e;
+});
+Clazz_defineMethod (c$, "size", 
+function () {
+var a = this.keymap.getBoundKeyStrokes ();
+var b = (a == null) ? 0 : a.length;
+return Clazz_superCall (this, javax.swing.text.JTextComponent.KeymapWrapper, "size", []) + b;
+});
+Clazz_defineMethod (c$, "get", 
+function (a) {
+var b = this.keymap.getAction (a);
+if (b == null) {
+b = Clazz_superCall (this, javax.swing.text.JTextComponent.KeymapWrapper, "get", [a]);
+if (b == null && a.getKeyChar () != '\uffff' && this.keymap.getDefaultAction () != null) {
+b = javax.swing.text.JTextComponent.KeymapWrapper.DefaultActionKey;
+}}return b;
+}, "javax.swing.KeyStroke");
+c$.DefaultActionKey = c$.prototype.DefaultActionKey =  new Clazz._O ();
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.keymap = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.JTextComponent, "KeymapActionMap", javax.swing.ActionMap);
+Clazz_makeConstructor (c$, 
+function (a) {
+Clazz_superConstructor (this, javax.swing.text.JTextComponent.KeymapActionMap, []);
+this.keymap = a;
+}, "javax.swing.text.Keymap");
+Clazz_defineMethod (c$, "keys", 
+function () {
+var a = Clazz_superCall (this, javax.swing.text.JTextComponent.KeymapActionMap, "keys", []);
+var b = this.keymap.getBoundActions ();
+var c = (a == null) ? 0 : a.length;
+var d = (b == null) ? 0 : b.length;
+var e = (this.keymap.getDefaultAction () != null);
+if (e) {
+d++;
+}if (c == 0) {
+if (e) {
+var f =  new Array (d);
+if (d > 1) {
+System.arraycopy (b, 0, f, 0, d - 1);
+}f[d - 1] = javax.swing.text.JTextComponent.KeymapWrapper.DefaultActionKey;
+return f;
+}return b;
+}if (d == 0) {
+return a;
+}var f =  new Array (c + d);
+System.arraycopy (a, 0, f, 0, c);
+if (e) {
+if (d > 1) {
+System.arraycopy (b, 0, f, c, d - 1);
+}f[c + d - 1] = javax.swing.text.JTextComponent.KeymapWrapper.DefaultActionKey;
+} else {
+System.arraycopy (b, 0, f, c, d);
+}return f;
+});
+Clazz_defineMethod (c$, "size", 
+function () {
+var a = this.keymap.getBoundActions ();
+var b = (a == null) ? 0 : a.length;
+if (this.keymap.getDefaultAction () != null) {
+b++;
+}return Clazz_superCall (this, javax.swing.text.JTextComponent.KeymapActionMap, "size", []) + b;
+});
+Clazz_defineMethod (c$, "get", 
+function (a) {
+var b = Clazz_superCall (this, javax.swing.text.JTextComponent.KeymapActionMap, "get", [a]);
+if (b == null) {
+if (a === javax.swing.text.JTextComponent.KeymapWrapper.DefaultActionKey) {
+b = this.keymap.getDefaultAction ();
+} else if (Clazz_instanceOf (a, javax.swing.Action)) {
+b = a;
+}}return b;
+}, "~O");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.dragActive = false;
+this.dot = 0;
+this.mark = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.JTextComponent, "MutableCaretEvent", javax.swing.event.CaretEvent, [javax.swing.event.ChangeListener, java.awt.event.FocusListener, java.awt.event.MouseListener]);
+Clazz_defineMethod (c$, "fire", 
+function () {
+var a = this.getSource ();
+if (a != null) {
+var b = a.getCaret ();
+if (b != null) {
+this.dot = b.getDot ();
+this.mark = b.getMark ();
+a.fireCaretUpdate (this);
+}}});
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return "dot=" + this.dot + "," + "mark=" + this.mark;
+});
+Clazz_overrideMethod (c$, "getDot", 
+function () {
+return this.dot;
+});
+Clazz_overrideMethod (c$, "getMark", 
+function () {
+return this.mark;
+});
+Clazz_overrideMethod (c$, "stateChanged", 
+function (a) {
+if (!this.dragActive) {
+this.fire ();
+}}, "javax.swing.event.ChangeEvent");
+Clazz_overrideMethod (c$, "focusGained", 
+function (a) {
+jssun.awt.AppContext.getAppContext ().put (javax.swing.text.JTextComponent.FOCUSED_COMPONENT, a.getSource ());
+}, "java.awt.event.FocusEvent");
+Clazz_overrideMethod (c$, "focusLost", 
+function (a) {
+}, "java.awt.event.FocusEvent");
+Clazz_overrideMethod (c$, "mousePressed", 
+function (a) {
+this.dragActive = true;
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseReleased", 
+function (a) {
+this.dragActive = false;
+this.fire ();
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseClicked", 
+function (a) {
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseEntered", 
+function (a) {
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseExited", 
+function (a) {
+}, "java.awt.event.MouseEvent");
+c$ = Clazz_p0p ();
+Clazz_defineStatics (c$,
+"FOCUS_ACCELERATOR_KEY", "focusAcceleratorKey");
+c$.KEYMAP_TABLE = c$.prototype.KEYMAP_TABLE =  new Clazz._O ();
+c$.FOCUSED_COMPONENT = c$.prototype.FOCUSED_COMPONENT =  new Clazz._O ();
+Clazz_defineStatics (c$,
+"DEFAULT_KEYMAP", "default");
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_declareInterface (javax.swing.text, "Keymap");
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.EditorKit", "$.TextAction"], "javax.swing.text.DefaultEditorKit", ["java.io.InputStreamReader", "$.OutputStreamWriter", "java.awt.ComponentOrientation", "$.Point", "$.Rectangle", "javax.swing.UIManager", "javax.swing.text.BadLocationException", "$.DefaultCaret", "$.Position", "$.Segment", "$.Utilities", "swingjs.JSPlainDocument"], function () {
+c$ = Clazz_declareType (javax.swing.text, "DefaultEditorKit", javax.swing.text.EditorKit);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit, []);
+});
+Clazz_overrideMethod (c$, "getContentType", 
+function () {
+return "text/plain";
+});
+Clazz_overrideMethod (c$, "getViewFactory", 
+function () {
+return null;
+});
+Clazz_overrideMethod (c$, "getActions", 
+function () {
+return javax.swing.text.DefaultEditorKit.defaultActions;
+});
+Clazz_overrideMethod (c$, "createCaret", 
+function () {
+return null;
+});
+Clazz_overrideMethod (c$, "createDefaultDocument", 
+function () {
+return  new swingjs.JSPlainDocument ();
+});
+Clazz_defineMethod (c$, "read", 
+function ($in, doc, pos) {
+this.read ( new java.io.InputStreamReader ($in), doc, pos);
+}, "java.io.InputStream,javax.swing.text.Document,~N");
+Clazz_defineMethod (c$, "write", 
+function (out, doc, pos, len) {
+var osw =  new java.io.OutputStreamWriter (out);
+this.write (osw, doc, pos, len);
+osw.flush ();
+}, "java.io.OutputStream,javax.swing.text.Document,~N,~N");
+Clazz_defineMethod (c$, "getInputAttributes", 
+function () {
+return null;
+});
+Clazz_defineMethod (c$, "read", 
+function ($in, doc, pos) {
+var buff =  Clazz_newCharArray (4096, '\0');
+var nch;
+var lastWasCR = false;
+var isCRLF = false;
+var isCR = false;
+var last;
+var wasEmpty = (doc.getLength () == 0);
+var attr = this.getInputAttributes ();
+while ((nch = $in.read (buff, 0, buff.length)) != -1) {
+last = 0;
+for (var counter = 0; counter < nch; counter++) {
+switch (buff[counter]) {
+case '\r':
+if (lastWasCR) {
+isCR = true;
+if (counter == 0) {
+doc.insertString (pos, "\n", attr);
+pos++;
+} else {
+buff[counter - 1] = '\n';
+}} else {
+lastWasCR = true;
+}break;
+case '\n':
+if (lastWasCR) {
+if (counter > (last + 1)) {
+doc.insertString (pos,  String.instantialize (buff, last, counter - last - 1), attr);
+pos += (counter - last - 1);
+}lastWasCR = false;
+last = counter;
+isCRLF = true;
+}break;
+default:
+if (lastWasCR) {
+isCR = true;
+if (counter == 0) {
+doc.insertString (pos, "\n", attr);
+pos++;
+} else {
+buff[counter - 1] = '\n';
+}lastWasCR = false;
+}break;
+}
+}
+if (last < nch) {
+if (lastWasCR) {
+if (last < (nch - 1)) {
+doc.insertString (pos,  String.instantialize (buff, last, nch - last - 1), attr);
+pos += (nch - last - 1);
+}} else {
+doc.insertString (pos,  String.instantialize (buff, last, nch - last), attr);
+pos += (nch - last);
+}}}
+if (lastWasCR) {
+doc.insertString (pos, "\n", attr);
+isCR = true;
+}if (wasEmpty) {
+if (isCRLF) {
+doc.putProperty ("__EndOfLine__", "\r\n");
+} else if (isCR) {
+doc.putProperty ("__EndOfLine__", "\r");
+} else {
+doc.putProperty ("__EndOfLine__", "\n");
+}}}, "java.io.Reader,javax.swing.text.Document,~N");
+Clazz_defineMethod (c$, "write", 
+function (out, doc, pos, len) {
+if ((pos < 0) || ((pos + len) > doc.getLength ())) {
+throw  new javax.swing.text.BadLocationException ("DefaultEditorKit.write", pos);
+}var data =  new javax.swing.text.Segment ();
+var nleft = len;
+var offs = pos;
+var endOfLineProperty = doc.getProperty ("__EndOfLine__");
+if (endOfLineProperty == null) {
+try {
+endOfLineProperty = System.getProperty ("line.separator");
+} catch (se) {
+if (Clazz_exceptionOf (se, SecurityException)) {
+} else {
+throw se;
+}
+}
+}var endOfLine;
+if (Clazz_instanceOf (endOfLineProperty, String)) {
+endOfLine = endOfLineProperty;
+} else {
+endOfLine = null;
+}if (endOfLineProperty != null && !endOfLine.equals ("\n")) {
+while (nleft > 0) {
+var n = Math.min (nleft, 4096);
+doc.getText (offs, n, data);
+var last = data.offset;
+var array = data.array;
+var maxCounter = last + data.count;
+for (var counter = last; counter < maxCounter; counter++) {
+if (array[counter] == '\n') {
+if (counter > last) {
+out.write (array, last, counter - last);
+}out.write (endOfLine);
+last = counter + 1;
+}}
+if (maxCounter > last) {
+out.write (array, last, maxCounter - last);
+}offs += n;
+nleft -= n;
+}
+} else {
+while (nleft > 0) {
+var n = Math.min (nleft, 4096);
+doc.getText (offs, n, data);
+out.write (data.array, data.offset, data.count);
+offs += n;
+nleft -= n;
+}
+}out.flush ();
+}, "java.io.Writer,javax.swing.text.Document,~N,~N");
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "DefaultKeyTypedAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.DefaultKeyTypedAction, ["default-typed"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if ((b != null) && (a != null)) {
+if ((!b.isEditable ()) || (!b.isEnabled ())) {
+return;
+}var c = a.getActionCommand ();
+var d = a.getModifiers ();
+if ((c != null) && (c.length > 0) && ((d & 8) == (d & 2))) {
+var e = c.charAt (0);
+if ((e.charCodeAt (0) >= 0x20) && (e.charCodeAt (0) != 0x7F)) {
+b.replaceSelection (c);
+}}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "InsertContentAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.InsertContentAction, ["insert-content"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if ((b != null) && (a != null)) {
+if ((!b.isEditable ()) || (!b.isEnabled ())) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+return;
+}var c = a.getActionCommand ();
+if (c != null) {
+b.replaceSelection (c);
+} else {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "InsertBreakAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.InsertBreakAction, ["insert-break"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+if ((!b.isEditable ()) || (!b.isEnabled ())) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+return;
+}b.replaceSelection ("\n");
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "InsertTabAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.InsertTabAction, ["insert-tab"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+if ((!b.isEditable ()) || (!b.isEnabled ())) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+return;
+}b.replaceSelection ("\t");
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "DeletePrevCharAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.DeletePrevCharAction, ["delete-previous"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+var c = true;
+if ((b != null) && (b.isEditable ())) {
+try {
+var d = b.getDocument ();
+var e = b.getCaret ();
+var f = e.getDot ();
+var g = e.getMark ();
+if (f != g) {
+d.remove (Math.min (f, g), Math.abs (f - g));
+c = false;
+} else if (f > 0) {
+var h = 1;
+if (f > 1) {
+var i = d.getText (f - 2, 2);
+var j = i.charAt (0);
+var k = i.charAt (1);
+if (j >= '\uD800' && j <= '\uDBFF' && k >= '\uDC00' && k <= '\uDFFF') {
+h = 2;
+}}d.remove (f - h, h);
+c = false;
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+} else {
+throw bl;
+}
+}
+}if (c) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "DeleteNextCharAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.DeleteNextCharAction, ["delete-next"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+var c = true;
+if ((b != null) && (b.isEditable ())) {
+try {
+var d = b.getDocument ();
+var e = b.getCaret ();
+var f = e.getDot ();
+var g = e.getMark ();
+if (f != g) {
+d.remove (Math.min (f, g), Math.abs (f - g));
+c = false;
+} else if (f < d.getLength ()) {
+var h = 1;
+if (f < d.getLength () - 1) {
+var i = d.getText (f, 2);
+var j = i.charAt (0);
+var k = i.charAt (1);
+if (j >= '\uD800' && j <= '\uDBFF' && k >= '\uDC00' && k <= '\uDFFF') {
+h = 2;
+}}d.remove (f, h);
+c = false;
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+} else {
+throw bl;
+}
+}
+}if (c) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "ReadOnlyAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.ReadOnlyAction, ["set-read-only"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+b.setEditable (false);
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "WritableAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.WritableAction, ["set-writable"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+b.setEditable (true);
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "CutAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.CutAction, ["cut-to-clipboard"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+b.cut ();
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "CopyAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.CopyAction, ["copy-to-clipboard"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+b.copy ();
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "PasteAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.PasteAction, ["paste-from-clipboard"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+b.paste ();
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "BeepAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.BeepAction, ["beep"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+this.direction = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "VerticalPageAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b, c) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.VerticalPageAction, [a]);
+this.select = c;
+this.direction = b;
+}, "~S,~N,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getVisibleRect ();
+var d =  new java.awt.Rectangle (c);
+var e = b.getCaretPosition ();
+var f = this.direction * b.getScrollableBlockIncrement (c, 1, this.direction);
+var g = c.y;
+var h = b.getCaret ();
+var i = h.getMagicCaretPosition ();
+if (e != -1) {
+try {
+var j = b.modelToView (e);
+var k = (i != null) ? i.x : j.x;
+var l = j.height;
+if (l > 0) {
+f = Clazz_doubleToInt (f / l) * l;
+}d.y = this.constrainY (b, g + f, c.height);
+var m;
+if (c.contains (j.x, j.y)) {
+m = b.viewToModel ( new java.awt.Point (k, this.constrainY (b, j.y + f, 0)));
+} else {
+if (this.direction == -1) {
+m = b.viewToModel ( new java.awt.Point (k, d.y));
+} else {
+m = b.viewToModel ( new java.awt.Point (k, d.y + c.height));
+}}m = this.constrainOffset (b, m);
+if (m != e) {
+this.adjustScrollIfNecessary (b, d, g, m);
+if (this.select) {
+b.moveCaretPosition (m);
+} else {
+b.setCaretPosition (m);
+}}} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+} else {
+throw ble;
+}
+}
+} else {
+d.y = this.constrainY (b, g + f, c.height);
+}if (i != null) {
+h.setMagicCaretPosition (i);
+}b.scrollRectToVisible (d);
+}}, "java.awt.event.ActionEvent");
+Clazz_defineMethod (c$, "constrainY", 
+ function (a, b, c) {
+if (b < 0) {
+b = 0;
+} else if (b + c > a.getHeight ()) {
+b = Math.max (0, a.getHeight () - c);
+}return b;
+}, "javax.swing.text.JTextComponent,~N,~N");
+Clazz_defineMethod (c$, "constrainOffset", 
+ function (a, b) {
+var c = a.getDocument ();
+if ((b != 0) && (b > c.getLength ())) {
+b = c.getLength ();
+}if (b < 0) {
+b = 0;
+}return b;
+}, "javax.swing.text.JTextComponent,~N");
+Clazz_defineMethod (c$, "adjustScrollIfNecessary", 
+ function (a, b, c, d) {
+try {
+var e = a.modelToView (d);
+if (e.y < b.y || (e.y > (b.y + b.height)) || (e.y + e.height) > (b.y + b.height)) {
+var f;
+if (e.y < b.y) {
+f = e.y;
+} else {
+f = e.y + e.height - b.height;
+}if ((this.direction == -1 && f < c) || (this.direction == 1 && f > c)) {
+b.y = f;
+}}} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+} else {
+throw ble;
+}
+}
+}, "javax.swing.text.JTextComponent,java.awt.Rectangle,~N,~N");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+this.left = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "PageAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b, c) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.PageAction, [a]);
+this.select = c;
+this.left = b;
+}, "~S,~B,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c;
+var d =  new java.awt.Rectangle ();
+b.computeVisibleRect (d);
+if (this.left) {
+d.x = Math.max (0, d.x - d.width);
+} else {
+d.x += d.width;
+}c = b.getCaretPosition ();
+if (c != -1) {
+if (this.left) {
+c = b.viewToModel ( new java.awt.Point (d.x, d.y));
+} else {
+c = b.viewToModel ( new java.awt.Point (d.x + d.width - 1, d.y + d.height - 1));
+}var e = b.getDocument ();
+if ((c != 0) && (c > (e.getLength () - 1))) {
+c = e.getLength () - 1;
+} else if (c < 0) {
+c = 0;
+}if (this.select) b.moveCaretPosition (c);
+ else b.setCaretPosition (c);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+this.direction = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "NextVisualPositionAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b, c) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.NextVisualPositionAction, [a]);
+this.select = b;
+this.direction = c;
+}, "~S,~B,~N");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getCaret ();
+var d = (Clazz_instanceOf (c, javax.swing.text.DefaultCaret)) ? c : null;
+var e = c.getDot ();
+var f =  new Array (1);
+var g = c.getMagicCaretPosition ();
+try {
+if (g == null && (this.direction == 1 || this.direction == 5)) {
+var h = (d != null) ? b.getUI ().modelToView (b, e, d.getDotBias ()) : b.modelToView (e);
+g =  new java.awt.Point (h.x, h.y);
+}var h = b.getNavigationFilter ();
+if (h != null) {
+e = h.getNextVisualPositionFrom (b, e, (d != null) ? d.getDotBias () : javax.swing.text.Position.Bias.Forward, this.direction, f);
+} else {
+e = b.getUI ().getNextVisualPositionFrom (b, e, (d != null) ? d.getDotBias () : javax.swing.text.Position.Bias.Forward, this.direction, f);
+}if (f[0] == null) {
+f[0] = javax.swing.text.Position.Bias.Forward;
+}if (d != null) {
+if (this.select) {
+d.moveDot (e, f[0]);
+} else {
+d.setDot (e, f[0]);
+}} else {
+if (this.select) {
+c.moveDot (e);
+} else {
+c.setDot (e);
+}}if (g != null && (this.direction == 1 || this.direction == 5)) {
+b.getCaret ().setMagicCaretPosition (g);
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, javax.swing.text.BadLocationException)) {
+} else {
+throw ex;
+}
+}
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "BeginWordAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.BeginWordAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+try {
+var c = b.getCaretPosition ();
+var d = javax.swing.text.Utilities.getWordStart (b, c);
+if (this.select) {
+b.moveCaretPosition (d);
+} else {
+b.setCaretPosition (d);
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+} else {
+throw bl;
+}
+}
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "EndWordAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.EndWordAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+try {
+var c = b.getCaretPosition ();
+var d = javax.swing.text.Utilities.getWordEnd (b, c);
+if (this.select) {
+b.moveCaretPosition (d);
+} else {
+b.setCaretPosition (d);
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+} else {
+throw bl;
+}
+}
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "PreviousWordAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.PreviousWordAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getCaretPosition ();
+var d = false;
+try {
+var e = javax.swing.text.Utilities.getParagraphElement (b, c);
+c = javax.swing.text.Utilities.getPreviousWord (b, c);
+if (c < e.getStartOffset ()) {
+c = javax.swing.text.Utilities.getParagraphElement (b, c).getEndOffset () - 1;
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+if (c != 0) {
+c = 0;
+} else {
+d = true;
+}} else {
+throw bl;
+}
+}
+if (!d) {
+if (this.select) {
+b.moveCaretPosition (c);
+} else {
+b.setCaretPosition (c);
+}} else {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "NextWordAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.NextWordAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getCaretPosition ();
+var d = false;
+var e = c;
+var f = javax.swing.text.Utilities.getParagraphElement (b, c);
+try {
+c = javax.swing.text.Utilities.getNextWord (b, c);
+if (c >= f.getEndOffset () && e != f.getEndOffset () - 1) {
+c = f.getEndOffset () - 1;
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+var g = b.getDocument ().getLength ();
+if (c != g) {
+if (e != f.getEndOffset () - 1) {
+c = f.getEndOffset () - 1;
+} else {
+c = g;
+}} else {
+d = true;
+}} else {
+throw bl;
+}
+}
+if (!d) {
+if (this.select) {
+b.moveCaretPosition (c);
+} else {
+b.setCaretPosition (c);
+}} else {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "BeginLineAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.BeginLineAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+try {
+var c = b.getCaretPosition ();
+var d = javax.swing.text.Utilities.getRowStart (b, c);
+if (this.select) {
+b.moveCaretPosition (d);
+} else {
+b.setCaretPosition (d);
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+} else {
+throw bl;
+}
+}
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "EndLineAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.EndLineAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+try {
+var c = b.getCaretPosition ();
+var d = javax.swing.text.Utilities.getRowEnd (b, c);
+if (this.select) {
+b.moveCaretPosition (d);
+} else {
+b.setCaretPosition (d);
+}} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+javax.swing.UIManager.getLookAndFeel ().provideErrorFeedback (b);
+} else {
+throw bl;
+}
+}
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "BeginParagraphAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.BeginParagraphAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getCaretPosition ();
+var d = javax.swing.text.Utilities.getParagraphElement (b, c);
+c = d.getStartOffset ();
+if (this.select) {
+b.moveCaretPosition (c);
+} else {
+b.setCaretPosition (c);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "EndParagraphAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.EndParagraphAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getCaretPosition ();
+var d = javax.swing.text.Utilities.getParagraphElement (b, c);
+c = Math.min (b.getDocument ().getLength (), d.getEndOffset ());
+if (this.select) {
+b.moveCaretPosition (c);
+} else {
+b.setCaretPosition (c);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "BeginAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.BeginAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+if (this.select) {
+b.moveCaretPosition (0);
+} else {
+b.setCaretPosition (0);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.select = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "EndAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.EndAction, [a]);
+this.select = b;
+}, "~S,~B");
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getDocument ();
+var d = c.getLength ();
+if (this.select) {
+b.moveCaretPosition (d);
+} else {
+b.setCaretPosition (d);
+}}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.start = null;
+this.end = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "SelectWordAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.SelectWordAction, ["select-word"]);
+this.start =  new javax.swing.text.DefaultEditorKit.BeginWordAction ("pigdog", false);
+this.end =  new javax.swing.text.DefaultEditorKit.EndWordAction ("pigdog", true);
+});
+Clazz_defineMethod (c$, "actionPerformed", 
+function (a) {
+this.start.actionPerformed (a);
+this.end.actionPerformed (a);
+}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.start = null;
+this.end = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "SelectLineAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.SelectLineAction, ["select-line"]);
+this.start =  new javax.swing.text.DefaultEditorKit.BeginLineAction ("pigdog", false);
+this.end =  new javax.swing.text.DefaultEditorKit.EndLineAction ("pigdog", true);
+});
+Clazz_defineMethod (c$, "actionPerformed", 
+function (a) {
+this.start.actionPerformed (a);
+this.end.actionPerformed (a);
+}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.start = null;
+this.end = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultEditorKit, "SelectParagraphAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.SelectParagraphAction, ["select-paragraph"]);
+this.start =  new javax.swing.text.DefaultEditorKit.BeginParagraphAction ("pigdog", false);
+this.end =  new javax.swing.text.DefaultEditorKit.EndParagraphAction ("pigdog", true);
+});
+Clazz_defineMethod (c$, "actionPerformed", 
+function (a) {
+this.start.actionPerformed (a);
+this.end.actionPerformed (a);
+}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "SelectAllAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.SelectAllAction, ["select-all"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getDocument ();
+b.setCaretPosition (0);
+b.moveCaretPosition (c.getLength ());
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "UnselectAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.UnselectAction, ["unselect"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+b.setCaretPosition (b.getCaretPosition ());
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DefaultEditorKit, "ToggleComponentOrientationAction", javax.swing.text.TextAction);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultEditorKit.ToggleComponentOrientationAction, ["toggle-componentOrientation"]);
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+var b = this.getTextComponent (a);
+if (b != null) {
+var c = b.getComponentOrientation ();
+var d;
+if (c === java.awt.ComponentOrientation.RIGHT_TO_LEFT) d = java.awt.ComponentOrientation.LEFT_TO_RIGHT;
+ else d = java.awt.ComponentOrientation.RIGHT_TO_LEFT;
+b.setComponentOrientation (d);
+b.repaint ();
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+Clazz_defineStatics (c$,
+"EndOfLineStringProperty", "__EndOfLine__",
+"insertContentAction", "insert-content",
+"insertBreakAction", "insert-break",
+"insertTabAction", "insert-tab",
+"deletePrevCharAction", "delete-previous",
+"deleteNextCharAction", "delete-next",
+"deleteNextWordAction", "delete-next-word",
+"deletePrevWordAction", "delete-previous-word",
+"readOnlyAction", "set-read-only",
+"writableAction", "set-writable",
+"cutAction", "cut-to-clipboard",
+"copyAction", "copy-to-clipboard",
+"pasteAction", "paste-from-clipboard",
+"beepAction", "beep",
+"pageUpAction", "page-up",
+"pageDownAction", "page-down",
+"selectionPageUpAction", "selection-page-up",
+"selectionPageDownAction", "selection-page-down",
+"selectionPageLeftAction", "selection-page-left",
+"selectionPageRightAction", "selection-page-right",
+"forwardAction", "caret-forward",
+"backwardAction", "caret-backward",
+"selectionForwardAction", "selection-forward",
+"selectionBackwardAction", "selection-backward",
+"upAction", "caret-up",
+"downAction", "caret-down",
+"selectionUpAction", "selection-up",
+"selectionDownAction", "selection-down",
+"beginWordAction", "caret-begin-word",
+"endWordAction", "caret-end-word",
+"selectionBeginWordAction", "selection-begin-word",
+"selectionEndWordAction", "selection-end-word",
+"previousWordAction", "caret-previous-word",
+"nextWordAction", "caret-next-word",
+"selectionPreviousWordAction", "selection-previous-word",
+"selectionNextWordAction", "selection-next-word",
+"beginLineAction", "caret-begin-line",
+"endLineAction", "caret-end-line",
+"selectionBeginLineAction", "selection-begin-line",
+"selectionEndLineAction", "selection-end-line",
+"beginParagraphAction", "caret-begin-paragraph",
+"endParagraphAction", "caret-end-paragraph",
+"selectionBeginParagraphAction", "selection-begin-paragraph",
+"selectionEndParagraphAction", "selection-end-paragraph",
+"beginAction", "caret-begin",
+"endAction", "caret-end",
+"selectionBeginAction", "selection-begin",
+"selectionEndAction", "selection-end",
+"selectWordAction", "select-word",
+"selectLineAction", "select-line",
+"selectParagraphAction", "select-paragraph",
+"selectAllAction", "select-all",
+"unselectAction", "unselect",
+"toggleComponentOrientationAction", "toggle-componentOrientation",
+"defaultKeyTypedAction", "default-typed");
+c$.defaultActions = c$.prototype.defaultActions =  Clazz_newArray (-1, [ new javax.swing.text.DefaultEditorKit.InsertContentAction (),  new javax.swing.text.DefaultEditorKit.DeletePrevCharAction (),  new javax.swing.text.DefaultEditorKit.DeleteNextCharAction (),  new javax.swing.text.DefaultEditorKit.ReadOnlyAction (),  new javax.swing.text.DefaultEditorKit.WritableAction (),  new javax.swing.text.DefaultEditorKit.CutAction (),  new javax.swing.text.DefaultEditorKit.CopyAction (),  new javax.swing.text.DefaultEditorKit.PasteAction (),  new javax.swing.text.DefaultEditorKit.VerticalPageAction ("page-up", -1, false),  new javax.swing.text.DefaultEditorKit.VerticalPageAction ("page-down", 1, false),  new javax.swing.text.DefaultEditorKit.VerticalPageAction ("selection-page-up", -1, true),  new javax.swing.text.DefaultEditorKit.VerticalPageAction ("selection-page-down", 1, true),  new javax.swing.text.DefaultEditorKit.PageAction ("selection-page-left", true, true),  new javax.swing.text.DefaultEditorKit.PageAction ("selection-page-right", false, true),  new javax.swing.text.DefaultEditorKit.InsertBreakAction (),  new javax.swing.text.DefaultEditorKit.BeepAction (),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("caret-forward", false, 3),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("caret-backward", false, 7),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("selection-forward", true, 3),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("selection-backward", true, 7),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("caret-up", false, 1),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("caret-down", false, 5),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("selection-up", true, 1),  new javax.swing.text.DefaultEditorKit.NextVisualPositionAction ("selection-down", true, 5),  new javax.swing.text.DefaultEditorKit.BeginWordAction ("caret-begin-word", false),  new javax.swing.text.DefaultEditorKit.EndWordAction ("caret-end-word", false),  new javax.swing.text.DefaultEditorKit.BeginWordAction ("selection-begin-word", true),  new javax.swing.text.DefaultEditorKit.EndWordAction ("selection-end-word", true),  new javax.swing.text.DefaultEditorKit.PreviousWordAction ("caret-previous-word", false),  new javax.swing.text.DefaultEditorKit.NextWordAction ("caret-next-word", false),  new javax.swing.text.DefaultEditorKit.PreviousWordAction ("selection-previous-word", true),  new javax.swing.text.DefaultEditorKit.NextWordAction ("selection-next-word", true),  new javax.swing.text.DefaultEditorKit.BeginLineAction ("caret-begin-line", false),  new javax.swing.text.DefaultEditorKit.EndLineAction ("caret-end-line", false),  new javax.swing.text.DefaultEditorKit.BeginLineAction ("selection-begin-line", true),  new javax.swing.text.DefaultEditorKit.EndLineAction ("selection-end-line", true),  new javax.swing.text.DefaultEditorKit.BeginParagraphAction ("caret-begin-paragraph", false),  new javax.swing.text.DefaultEditorKit.EndParagraphAction ("caret-end-paragraph", false),  new javax.swing.text.DefaultEditorKit.BeginParagraphAction ("selection-begin-paragraph", true),  new javax.swing.text.DefaultEditorKit.EndParagraphAction ("selection-end-paragraph", true),  new javax.swing.text.DefaultEditorKit.BeginAction ("caret-begin", false),  new javax.swing.text.DefaultEditorKit.EndAction ("caret-end", false),  new javax.swing.text.DefaultEditorKit.BeginAction ("selection-begin", true),  new javax.swing.text.DefaultEditorKit.EndAction ("selection-end", true),  new javax.swing.text.DefaultEditorKit.DefaultKeyTypedAction (),  new javax.swing.text.DefaultEditorKit.InsertTabAction (),  new javax.swing.text.DefaultEditorKit.SelectWordAction (),  new javax.swing.text.DefaultEditorKit.SelectLineAction (),  new javax.swing.text.DefaultEditorKit.SelectParagraphAction (),  new javax.swing.text.DefaultEditorKit.SelectAllAction (),  new javax.swing.text.DefaultEditorKit.UnselectAction (),  new javax.swing.text.DefaultEditorKit.ToggleComponentOrientationAction ()]);
+});
+Clazz_declarePackage ("javax.swing.text");
+c$ = Clazz_declareType (javax.swing.text, "EditorKit", null, Cloneable);
+Clazz_makeConstructor (c$, 
+function () {
+});
+Clazz_defineMethod (c$, "clone", 
+function () {
+var o;
+try {
+o = Clazz_superCall (this, javax.swing.text.EditorKit, "clone", []);
+} catch (cnse) {
+if (Clazz_exceptionOf (cnse, CloneNotSupportedException)) {
+o = null;
+} else {
+throw cnse;
+}
+}
+return o;
+});
+Clazz_defineMethod (c$, "install", 
+function (c) {
+}, "javax.swing.JEditorPane");
+Clazz_defineMethod (c$, "deinstall", 
+function (c) {
+}, "javax.swing.JEditorPane");
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.AbstractAction"], "javax.swing.text.TextAction", ["java.util.Hashtable", "javax.swing.text.JTextComponent"], function () {
+c$ = Clazz_declareType (javax.swing.text, "TextAction", javax.swing.AbstractAction);
+Clazz_defineMethod (c$, "getTextComponent", 
+function (e) {
+if (e != null) {
+var o = e.getSource ();
+if (Clazz_instanceOf (o, javax.swing.text.JTextComponent)) {
+return o;
+}}return this.getFocusedComponent ();
+}, "java.awt.event.ActionEvent");
+c$.augmentList = Clazz_defineMethod (c$, "augmentList", 
+function (list1, list2) {
+var h =  new java.util.Hashtable ();
+if (list1 != null) for (var i = 0; i < list1.length; i++) {
+var a = list1[i];
+var value = a.getValue ("Name");
+h.put ((value != null ? value : ""), a);
+}
+for (var i = 0; i < list2.length; i++) {
+var a = list2[i];
+var value = a.getValue ("Name");
+h.put ((value != null ? value : ""), a);
+}
+var actions =  new Array (h.size ());
+var index = 0;
+for (var e = h.elements (); e.hasMoreElements (); ) {
+actions[index++] = e.nextElement ();
+}
+return actions;
+}, "~A,~A");
+Clazz_defineMethod (c$, "getFocusedComponent", 
+function () {
+return javax.swing.text.JTextComponent.getFocusedComponent ();
+});
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["java.lang.Exception"], "javax.swing.text.BadLocationException", null, function () {
+c$ = Clazz_decorateAsClass (function () {
+this.offs = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "BadLocationException", Exception);
+Clazz_makeConstructor (c$, 
+function (s, offs) {
+Clazz_superConstructor (this, javax.swing.text.BadLocationException, [s]);
+this.offs = offs;
+}, "~S,~N");
+Clazz_defineMethod (c$, "offsetRequested", 
+function () {
+return this.offs;
+});
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["java.awt.Rectangle", "java.awt.event.ActionListener", "$.FocusListener", "$.MouseListener", "$.MouseMotionListener", "java.beans.PropertyChangeListener", "javax.swing.event.DocumentListener", "javax.swing.text.Caret", "$.NavigationFilter", "javax.swing.event.EventListenerList"], "javax.swing.text.DefaultCaret", ["java.lang.Boolean", "$.IllegalArgumentException", "java.awt.Point", "java.awt.event.ActionEvent", "javax.swing.SwingUtilities", "javax.swing.event.ChangeEvent", "$.ChangeListener", "javax.swing.text.AbstractDocument", "javax.swing.text.AbstractDocument.UndoRedoDocumentEvent", "javax.swing.text.DefaultEditorKit", "$.DefaultHighlighter", "$.Document", "$.Position", "$.Segment", "$.StateInvariantError"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.listenerList = null;
+this.changeEvent = null;
+this.component = null;
+this.updatePolicy = 0;
+this.visible = false;
+this.active = false;
+this.dot = 0;
+this.mark = 0;
+this.selectionTag = null;
+this.selectionVisible = false;
+this.magicCaretPosition = null;
+this.dotBias = null;
+this.markBias = null;
+this.dotLTR = false;
+this.markLTR = false;
+this.handler = null;
+this.flagXPoints = null;
+this.flagYPoints = null;
+this.filterBypass = null;
+this.ownsSelection = false;
+this.forceCaretPositionChange = false;
+this.shouldHandleRelease = false;
+this.selectedWordEvent = null;
+this.caretWidth = -1;
+this.aspectRatio = -1;
+if (!Clazz_isClassDefined ("javax.swing.text.DefaultCaret.SafeScroller")) {
+javax.swing.text.DefaultCaret.$DefaultCaret$SafeScroller$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.DefaultCaret.Handler")) {
+javax.swing.text.DefaultCaret.$DefaultCaret$Handler$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.DefaultCaret.DefaultFilterBypass")) {
+javax.swing.text.DefaultCaret.$DefaultCaret$DefaultFilterBypass$ ();
+}
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "DefaultCaret", java.awt.Rectangle, [javax.swing.text.Caret, java.awt.event.FocusListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener]);
+Clazz_prepareFields (c$, function () {
+this.listenerList =  new javax.swing.event.EventListenerList ();
+this.handler = Clazz_innerTypeInstance (javax.swing.text.DefaultCaret.Handler, this, null);
+this.flagXPoints =  Clazz_newIntArray (3, 0);
+this.flagYPoints =  Clazz_newIntArray (3, 0);
+});
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultCaret, []);
+});
+Clazz_defineMethod (c$, "setUpdatePolicy", 
+function (policy) {
+this.updatePolicy = policy;
+}, "~N");
+Clazz_defineMethod (c$, "getUpdatePolicy", 
+function () {
+return this.updatePolicy;
+});
+Clazz_defineMethod (c$, "getComponent", 
+function () {
+return this.component;
+});
+Clazz_defineMethod (c$, "repaint", 
+function () {
+if (this.component != null) {
+this.component.repaint (this.x, this.y, this.width, this.height);
+}});
+Clazz_defineMethod (c$, "damage", 
+function (r) {
+if (r != null) {
+var damageWidth = this.getCaretWidth (r.height);
+this.x = r.x - 4 - (damageWidth >> 1);
+this.y = r.y;
+this.width = 9 + damageWidth;
+this.height = r.height;
+this.repaint ();
+}}, "java.awt.Rectangle");
+Clazz_defineMethod (c$, "adjustVisibility", 
+function (nloc) {
+if (this.component == null) {
+return;
+}if (javax.swing.SwingUtilities.isEventDispatchThread ()) {
+this.component.scrollRectToVisible (nloc);
+} else {
+javax.swing.SwingUtilities.invokeLater (Clazz_innerTypeInstance (javax.swing.text.DefaultCaret.SafeScroller, this, null, nloc));
+}}, "java.awt.Rectangle");
+Clazz_defineMethod (c$, "getSelectionPainter", 
+function () {
+return javax.swing.text.DefaultHighlighter.DefaultPainter;
+});
+Clazz_defineMethod (c$, "positionCaret", 
+function (e) {
+var pt =  new java.awt.Point (e.getX (), e.getY ());
+var biasRet =  new Array (1);
+var pos = this.component.getUI ().viewToModel (this.component, pt, biasRet);
+if (biasRet[0] == null) biasRet[0] = javax.swing.text.Position.Bias.Forward;
+if (pos >= 0) {
+this.setDot (pos, biasRet[0]);
+}}, "java.awt.event.MouseEvent");
+Clazz_defineMethod (c$, "moveCaret", 
+function (e) {
+var pt =  new java.awt.Point (e.getX (), e.getY ());
+var biasRet =  new Array (1);
+var pos = this.component.getUI ().viewToModel (this.component, pt, biasRet);
+if (biasRet[0] == null) biasRet[0] = javax.swing.text.Position.Bias.Forward;
+if (pos >= 0) {
+this.moveDot (pos, biasRet[0]);
+}}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "focusGained", 
+function (e) {
+if (this.component.isEnabled ()) {
+if (this.component.isEditable ()) {
+this.setVisible (true);
+}this.setSelectionVisible (true);
+}}, "java.awt.event.FocusEvent");
+Clazz_overrideMethod (c$, "focusLost", 
+function (e) {
+this.setVisible (false);
+this.setSelectionVisible (this.ownsSelection || e.isTemporary ());
+}, "java.awt.event.FocusEvent");
+Clazz_overrideMethod (c$, "mouseClicked", 
+function (e) {
+var nclicks = e.getClickCount ();
+if (!e.isConsumed ()) {
+if (javax.swing.SwingUtilities.isLeftMouseButton (e)) {
+if (nclicks == 1) {
+this.selectedWordEvent = null;
+}} else if (javax.swing.SwingUtilities.isMiddleMouseButton (e)) {
+}}}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mousePressed", 
+function (e) {
+if (javax.swing.SwingUtilities.isLeftMouseButton (e)) {
+if (e.isConsumed ()) {
+this.shouldHandleRelease = true;
+} else {
+this.shouldHandleRelease = false;
+this.adjustCaretAndFocus (e);
+}}}, "java.awt.event.MouseEvent");
+Clazz_defineMethod (c$, "adjustCaretAndFocus", 
+function (e) {
+this.adjustCaret (e);
+this.adjustFocus (false);
+}, "java.awt.event.MouseEvent");
+Clazz_defineMethod (c$, "adjustCaret", 
+ function (e) {
+if ((e.getModifiers () & 1) != 0 && this.getDot () != -1) {
+this.moveCaret (e);
+} else {
+this.positionCaret (e);
+}}, "java.awt.event.MouseEvent");
+Clazz_defineMethod (c$, "adjustFocus", 
+ function (inWindow) {
+if ((this.component != null) && this.component.isEnabled () && this.component.isRequestFocusEnabled ()) {
+if (inWindow) {
+this.component.requestFocusInWindow ();
+} else {
+this.component.requestFocus ();
+}}}, "~B");
+Clazz_overrideMethod (c$, "mouseReleased", 
+function (e) {
+if (!e.isConsumed () && this.shouldHandleRelease && javax.swing.SwingUtilities.isLeftMouseButton (e)) {
+this.adjustCaretAndFocus (e);
+}}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseEntered", 
+function (e) {
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseExited", 
+function (e) {
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseDragged", 
+function (e) {
+if ((!e.isConsumed ()) && javax.swing.SwingUtilities.isLeftMouseButton (e)) {
+this.moveCaret (e);
+}}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "mouseMoved", 
+function (e) {
+}, "java.awt.event.MouseEvent");
+Clazz_overrideMethod (c$, "paint", 
+function (g) {
+if (this.isVisible ()) {
+try {
+var mapper = this.component.getUI ();
+var r = mapper.modelToView (this.component, this.dot, this.dotBias);
+if ((r == null) || ((r.width == 0) && (r.height == 0))) {
+return;
+}if (this.width > 0 && this.height > 0 && !this._contains (r.x, r.y, r.width, r.height)) {
+var clip = g.getClipBounds ();
+if (clip != null && !clip.contains (this)) {
+this.repaint ();
+}this.damage (r);
+}g.setColor (this.component.getCaretColor ());
+var paintWidth = this.getCaretWidth (r.height);
+r.x -= paintWidth >> 1;
+g.fillRect (r.x, r.y, paintWidth, r.height);
+var doc = this.component.getDocument ();
+if (Clazz_instanceOf (doc, javax.swing.text.AbstractDocument)) {
+var bidi = (doc).getBidiRootElement ();
+if ((bidi != null) && (bidi.getElementCount () > 1)) {
+this.flagXPoints[0] = r.x + ((this.dotLTR) ? paintWidth : 0);
+this.flagYPoints[0] = r.y;
+this.flagXPoints[1] = this.flagXPoints[0];
+this.flagYPoints[1] = this.flagYPoints[0] + 4;
+this.flagXPoints[2] = this.flagXPoints[0] + ((this.dotLTR) ? 4 : -4);
+this.flagYPoints[2] = this.flagYPoints[0];
+g.fillPolygon (this.flagXPoints, this.flagYPoints, 3);
+}}} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+} else {
+throw e;
+}
+}
+}}, "java.awt.Graphics");
+Clazz_overrideMethod (c$, "install", 
+function (c) {
+this.component = c;
+var doc = c.getDocument ();
+this.dot = this.mark = 0;
+this.dotLTR = this.markLTR = true;
+this.dotBias = this.markBias = javax.swing.text.Position.Bias.Forward;
+if (doc != null) {
+doc.addDocumentListener (this.handler);
+}c.addPropertyChangeListener (this.handler);
+c.addFocusListener (this);
+c.addMouseListener (this);
+c.addMouseMotionListener (this);
+if (this.component.hasFocus ()) {
+this.focusGained (null);
+}var ratio = c.getClientProperty ("caretAspectRatio");
+if (ratio != null) {
+this.aspectRatio = ratio.floatValue ();
+} else {
+this.aspectRatio = -1;
+}var width = c.getClientProperty ("caretWidth");
+if (width != null) {
+this.caretWidth = width.intValue ();
+} else {
+this.caretWidth = -1;
+}}, "javax.swing.text.JTextComponent");
+Clazz_overrideMethod (c$, "deinstall", 
+function (c) {
+c.removeMouseListener (this);
+c.removeMouseMotionListener (this);
+c.removeFocusListener (this);
+c.removePropertyChangeListener (this.handler);
+var doc = c.getDocument ();
+if (doc != null) {
+doc.removeDocumentListener (this.handler);
+}{
+this.component = null;
+}}, "javax.swing.text.JTextComponent");
+Clazz_overrideMethod (c$, "addChangeListener", 
+function (l) {
+this.listenerList.add (javax.swing.event.ChangeListener, l);
+}, "javax.swing.event.ChangeListener");
+Clazz_overrideMethod (c$, "removeChangeListener", 
+function (l) {
+this.listenerList.remove (javax.swing.event.ChangeListener, l);
+}, "javax.swing.event.ChangeListener");
+Clazz_defineMethod (c$, "getChangeListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.ChangeListener);
+});
+Clazz_defineMethod (c$, "fireStateChanged", 
+function () {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.ChangeListener) {
+if (this.changeEvent == null) this.changeEvent =  new javax.swing.event.ChangeEvent (this);
+(listeners[i + 1]).stateChanged (this.changeEvent);
+}}
+});
+Clazz_defineMethod (c$, "getListeners", 
+function (listenerType) {
+return this.listenerList.getListeners (listenerType);
+}, "Class");
+Clazz_overrideMethod (c$, "setSelectionVisible", 
+function (vis) {
+if (vis != this.selectionVisible) {
+this.selectionVisible = vis;
+if (this.selectionVisible) {
+var h = this.component.getHighlighter ();
+if ((this.dot != this.mark) && (h != null) && (this.selectionTag == null)) {
+var p0 = Math.min (this.dot, this.mark);
+var p1 = Math.max (this.dot, this.mark);
+var p = this.getSelectionPainter ();
+try {
+this.selectionTag = h.addHighlight (p0, p1, p);
+} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+this.selectionTag = null;
+} else {
+throw bl;
+}
+}
+}} else {
+if (this.selectionTag != null) {
+var h = this.component.getHighlighter ();
+h.removeHighlight (this.selectionTag);
+this.selectionTag = null;
+}}}}, "~B");
+Clazz_overrideMethod (c$, "isSelectionVisible", 
+function () {
+return this.selectionVisible;
+});
+Clazz_defineMethod (c$, "isActive", 
+function () {
+return this.active;
+});
+Clazz_overrideMethod (c$, "isVisible", 
+function () {
+return this.visible;
+});
+Clazz_overrideMethod (c$, "setVisible", 
+function (e) {
+if (this.component != null) {
+this.active = e;
+var mapper = this.component.getUI ();
+if (this.visible != e) {
+this.visible = e;
+try {
+var loc = mapper.modelToView (this.component, this.dot, this.dotBias);
+this.damage (loc);
+} catch (badloc) {
+if (Clazz_exceptionOf (badloc, javax.swing.text.BadLocationException)) {
+} else {
+throw badloc;
+}
+}
+}}}, "~B");
+Clazz_overrideMethod (c$, "setBlinkRate", 
+function (rate) {
+}, "~N");
+Clazz_overrideMethod (c$, "getBlinkRate", 
+function () {
+return 0;
+});
+Clazz_overrideMethod (c$, "getDot", 
+function () {
+return this.dot;
+});
+Clazz_overrideMethod (c$, "getMark", 
+function () {
+return this.mark;
+});
+Clazz_defineMethod (c$, "setDot", 
+function (dot) {
+this.setDot (dot, javax.swing.text.Position.Bias.Forward);
+}, "~N");
+Clazz_defineMethod (c$, "moveDot", 
+function (dot) {
+this.moveDot (dot, javax.swing.text.Position.Bias.Forward);
+}, "~N");
+Clazz_defineMethod (c$, "moveDot", 
+function (dot, dotBias) {
+if (dotBias == null) {
+throw  new IllegalArgumentException ("null bias");
+}if (!this.component.isEnabled ()) {
+this.setDot (dot, dotBias);
+return;
+}if (dot != this.dot) {
+var filter = this.component.getNavigationFilter ();
+if (filter != null) {
+filter.moveDot (this.getFilterBypass (), dot, dotBias);
+} else {
+this.handleMoveDot (dot, dotBias);
+}}}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "handleMoveDot", 
+function (dot, dotBias) {
+this.changeCaretPosition (dot, dotBias);
+if (this.selectionVisible) {
+var h = this.component.getHighlighter ();
+if (h != null) {
+var p0 = Math.min (dot, this.mark);
+var p1 = Math.max (dot, this.mark);
+if (p0 == p1) {
+if (this.selectionTag != null) {
+h.removeHighlight (this.selectionTag);
+this.selectionTag = null;
+}} else {
+try {
+if (this.selectionTag != null) {
+h.changeHighlight (this.selectionTag, p0, p1);
+} else {
+var p = this.getSelectionPainter ();
+this.selectionTag = h.addHighlight (p0, p1, p);
+}} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+throw  new javax.swing.text.StateInvariantError ("Bad caret position");
+} else {
+throw e;
+}
+}
+}}}}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "setDot", 
+function (dot, dotBias) {
+if (dotBias == null) {
+throw  new IllegalArgumentException ("null bias");
+}var filter = this.component.getNavigationFilter ();
+if (filter != null) {
+filter.setDot (this.getFilterBypass (), dot, dotBias);
+} else {
+this.handleSetDot (dot, dotBias);
+}}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "handleSetDot", 
+function (dot, dotBias) {
+var doc = this.component.getDocument ();
+if (doc != null) {
+dot = Math.min (dot, doc.getLength ());
+}dot = Math.max (dot, 0);
+if (dot == 0) dotBias = javax.swing.text.Position.Bias.Forward;
+this.mark = dot;
+if (this.dot != dot || this.dotBias !== dotBias || this.selectionTag != null || this.forceCaretPositionChange) {
+this.changeCaretPosition (dot, dotBias);
+}this.markBias = this.dotBias;
+this.markLTR = this.dotLTR;
+var h = this.component.getHighlighter ();
+if ((h != null) && (this.selectionTag != null)) {
+h.removeHighlight (this.selectionTag);
+this.selectionTag = null;
+}}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "getDotBias", 
+function () {
+return this.dotBias;
+});
+Clazz_defineMethod (c$, "getMarkBias", 
+function () {
+return this.markBias;
+});
+Clazz_defineMethod (c$, "isDotLeftToRight", 
+function () {
+return this.dotLTR;
+});
+Clazz_defineMethod (c$, "isMarkLeftToRight", 
+function () {
+return this.markLTR;
+});
+Clazz_defineMethod (c$, "isPositionLTR", 
+function (position, bias) {
+var doc = this.component.getDocument ();
+if (Clazz_instanceOf (doc, javax.swing.text.AbstractDocument)) {
+if (bias === javax.swing.text.Position.Bias.Backward && --position < 0) position = 0;
+return (doc).isLeftToRight (position, position);
+}return true;
+}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "guessBiasForOffset", 
+function (offset, lastBias, lastLTR) {
+if (lastLTR != this.isPositionLTR (offset, lastBias)) {
+lastBias = javax.swing.text.Position.Bias.Backward;
+} else if (lastBias !== javax.swing.text.Position.Bias.Backward && lastLTR != this.isPositionLTR (offset, javax.swing.text.Position.Bias.Backward)) {
+lastBias = javax.swing.text.Position.Bias.Backward;
+}if (lastBias === javax.swing.text.Position.Bias.Backward && offset > 0) {
+try {
+var s =  new javax.swing.text.Segment ();
+this.component.getDocument ().getText (offset - 1, 1, s);
+if (s.count > 0 && s.array[s.offset] == '\n') {
+lastBias = javax.swing.text.Position.Bias.Forward;
+}} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+} else {
+throw ble;
+}
+}
+}return lastBias;
+}, "~N,javax.swing.text.Position.Bias,~B");
+Clazz_defineMethod (c$, "changeCaretPosition", 
+function (dot, dotBias) {
+this.repaint ();
+this.dot = dot;
+this.dotBias = dotBias;
+this.dotLTR = this.isPositionLTR (dot, dotBias);
+this.fireStateChanged ();
+this.updateSystemSelection ();
+this.setMagicCaretPosition (null);
+var callRepaintNewCaret = ((Clazz_isClassDefined ("javax.swing.text.DefaultCaret$1") ? 0 : javax.swing.text.DefaultCaret.$DefaultCaret$1$ ()), Clazz_innerTypeInstance (javax.swing.text.DefaultCaret$1, this, null));
+javax.swing.SwingUtilities.invokeLater (callRepaintNewCaret);
+}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "repaintNewCaret", 
+function () {
+if (this.component != null) {
+var mapper = this.component.getUI ();
+var doc = this.component.getDocument ();
+if ((mapper != null) && (doc != null)) {
+var newLoc;
+try {
+newLoc = mapper.modelToView (this.component, this.dot, this.dotBias);
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+newLoc = null;
+} else {
+throw e;
+}
+}
+if (newLoc != null) {
+this.adjustVisibility (newLoc);
+if (this.getMagicCaretPosition () == null) {
+this.setMagicCaretPosition ( new java.awt.Point (newLoc.x, newLoc.y));
+}}this.damage (newLoc);
+}}});
+Clazz_defineMethod (c$, "updateSystemSelection", 
+ function () {
+});
+Clazz_defineMethod (c$, "ensureValidPosition", 
+ function () {
+var length = this.component.getDocument ().getLength ();
+if (this.dot > length || this.mark > length) {
+this.handleSetDot (length, javax.swing.text.Position.Bias.Forward);
+}});
+Clazz_overrideMethod (c$, "setMagicCaretPosition", 
+function (p) {
+this.magicCaretPosition = p;
+}, "java.awt.Point");
+Clazz_overrideMethod (c$, "getMagicCaretPosition", 
+function () {
+return this.magicCaretPosition;
+});
+Clazz_overrideMethod (c$, "equals", 
+function (obj) {
+return (this === obj);
+}, "~O");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+var s = "Dot=(" + this.dot + ", " + this.dotBias + ")";
+s += " Mark=(" + this.mark + ", " + this.markBias + ")";
+return s;
+});
+Clazz_defineMethod (c$, "getFilterBypass", 
+ function () {
+if (this.filterBypass == null) {
+this.filterBypass = Clazz_innerTypeInstance (javax.swing.text.DefaultCaret.DefaultFilterBypass, this, null);
+}return this.filterBypass;
+});
+Clazz_defineMethod (c$, "_contains", 
+ function (X, Y, W, H) {
+var w = this.width;
+var h = this.height;
+if ((w | h | W | H) < 0) {
+return false;
+}var x = this.x;
+var y = this.y;
+if (X < x || Y < y) {
+return false;
+}if (W > 0) {
+w += x;
+W += X;
+if (W <= X) {
+if (w >= x || W > w) return false;
+} else {
+if (w >= x && W > w) return false;
+}} else if ((x + w) < X) {
+return false;
+}if (H > 0) {
+h += y;
+H += Y;
+if (H <= Y) {
+if (h >= y || H > h) return false;
+} else {
+if (h >= y && H > h) return false;
+}} else if ((y + h) < Y) {
+return false;
+}return true;
+}, "~N,~N,~N,~N");
+Clazz_defineMethod (c$, "getCaretWidth", 
+function (height) {
+if (this.aspectRatio > -1) {
+return Clazz_floatToInt (this.aspectRatio * height) + 1;
+}if (this.caretWidth > -1) {
+return this.caretWidth;
+}return 1;
+}, "~N");
+c$.$DefaultCaret$SafeScroller$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.r = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultCaret, "SafeScroller", null, Runnable);
+Clazz_makeConstructor (c$, 
+function (a) {
+this.r = a;
+}, "java.awt.Rectangle");
+Clazz_overrideMethod (c$, "run", 
+function () {
+if (this.b$["javax.swing.text.DefaultCaret"].component != null) {
+this.b$["javax.swing.text.DefaultCaret"].component.scrollRectToVisible (this.r);
+}});
+c$ = Clazz_p0p ();
+};
+c$.$DefaultCaret$Handler$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultCaret, "Handler", null, [java.beans.PropertyChangeListener, javax.swing.event.DocumentListener, java.awt.event.ActionListener]);
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (a) {
+if (this.b$["javax.swing.text.DefaultCaret"].width == 0 || this.b$["javax.swing.text.DefaultCaret"].height == 0) {
+if (this.b$["javax.swing.text.DefaultCaret"].component != null) {
+var b = this.b$["javax.swing.text.DefaultCaret"].component.getUI ();
+try {
+var c = b.modelToView (this.b$["javax.swing.text.DefaultCaret"].component, this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].dotBias);
+if (c != null && c.width != 0 && c.height != 0) {
+this.b$["javax.swing.text.DefaultCaret"].damage (c);
+}} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+} else {
+throw ble;
+}
+}
+}}this.b$["javax.swing.text.DefaultCaret"].visible = !this.b$["javax.swing.text.DefaultCaret"].visible;
+this.b$["javax.swing.text.DefaultCaret"].repaint ();
+}, "java.awt.event.ActionEvent");
+Clazz_overrideMethod (c$, "insertUpdate", 
+function (a) {
+if (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 1 || (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 0 && !javax.swing.SwingUtilities.isEventDispatchThread ())) {
+if ((a.getOffset () <= this.b$["javax.swing.text.DefaultCaret"].dot || a.getOffset () <= this.b$["javax.swing.text.DefaultCaret"].mark) && this.b$["javax.swing.text.DefaultCaret"].selectionTag != null) {
+try {
+this.b$["javax.swing.text.DefaultCaret"].component.getHighlighter ().changeHighlight (this.b$["javax.swing.text.DefaultCaret"].selectionTag, Math.min (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark), Math.max (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark));
+} catch (e1) {
+if (Clazz_exceptionOf (e1, javax.swing.text.BadLocationException)) {
+e1.printStackTrace ();
+} else {
+throw e1;
+}
+}
+}return;
+}var b = 0;
+var c = a.getOffset ();
+var d = a.getLength ();
+var e = this.b$["javax.swing.text.DefaultCaret"].dot;
+var f = 0;
+if (Clazz_instanceOf (a, javax.swing.text.AbstractDocument.UndoRedoDocumentEvent)) {
+this.b$["javax.swing.text.DefaultCaret"].setDot (c + d);
+return;
+}if (e >= c) {
+e += d;
+f |= 1;
+}var g = this.b$["javax.swing.text.DefaultCaret"].mark;
+if (g >= c) {
+g += d;
+f |= 2;
+}if (f != 0) {
+var h = this.b$["javax.swing.text.DefaultCaret"].dotBias;
+if (this.b$["javax.swing.text.DefaultCaret"].dot == c) {
+var i = this.b$["javax.swing.text.DefaultCaret"].component.getDocument ();
+var j;
+try {
+var k =  new javax.swing.text.Segment ();
+i.getText (e - 1, 1, k);
+j = (k.count > 0 && k.array[k.offset] == '\n');
+} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+j = false;
+} else {
+throw ble;
+}
+}
+if (j) {
+h = javax.swing.text.Position.Bias.Forward;
+} else {
+h = javax.swing.text.Position.Bias.Backward;
+}}if (g == e) {
+this.b$["javax.swing.text.DefaultCaret"].setDot (e, h);
+this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
+} else {
+this.b$["javax.swing.text.DefaultCaret"].setDot (g, this.b$["javax.swing.text.DefaultCaret"].markBias);
+if (this.b$["javax.swing.text.DefaultCaret"].getDot () == g) {
+this.b$["javax.swing.text.DefaultCaret"].moveDot (e, h);
+}this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
+}}}, "javax.swing.event.DocumentEvent");
+Clazz_overrideMethod (c$, "removeUpdate", 
+function (a) {
+if (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 1 || (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 0 && !javax.swing.SwingUtilities.isEventDispatchThread ())) {
+var b = this.b$["javax.swing.text.DefaultCaret"].component.getDocument ().getLength ();
+this.b$["javax.swing.text.DefaultCaret"].dot = Math.min (this.b$["javax.swing.text.DefaultCaret"].dot, b);
+this.b$["javax.swing.text.DefaultCaret"].mark = Math.min (this.b$["javax.swing.text.DefaultCaret"].mark, b);
+if ((a.getOffset () < this.b$["javax.swing.text.DefaultCaret"].dot || a.getOffset () < this.b$["javax.swing.text.DefaultCaret"].mark) && this.b$["javax.swing.text.DefaultCaret"].selectionTag != null) {
+try {
+this.b$["javax.swing.text.DefaultCaret"].component.getHighlighter ().changeHighlight (this.b$["javax.swing.text.DefaultCaret"].selectionTag, Math.min (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark), Math.max (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark));
+} catch (e1) {
+if (Clazz_exceptionOf (e1, javax.swing.text.BadLocationException)) {
+e1.printStackTrace ();
+} else {
+throw e1;
+}
+}
+}return;
+}var b = a.getOffset ();
+var c = b + a.getLength ();
+var d = 0;
+var e = this.b$["javax.swing.text.DefaultCaret"].dot;
+var f = false;
+var g = this.b$["javax.swing.text.DefaultCaret"].mark;
+var h = false;
+if (Clazz_instanceOf (a, javax.swing.text.AbstractDocument.UndoRedoDocumentEvent)) {
+this.b$["javax.swing.text.DefaultCaret"].setDot (b);
+return;
+}if (e >= c) {
+e -= (c - b);
+if (e == c) {
+f = true;
+}} else if (e >= b) {
+e = b;
+f = true;
+}if (g >= c) {
+g -= (c - b);
+if (g == c) {
+h = true;
+}} else if (g >= b) {
+g = b;
+h = true;
+}if (g == e) {
+this.b$["javax.swing.text.DefaultCaret"].forceCaretPositionChange = true;
+try {
+this.b$["javax.swing.text.DefaultCaret"].setDot (e, this.b$["javax.swing.text.DefaultCaret"].guessBiasForOffset (e, this.b$["javax.swing.text.DefaultCaret"].dotBias, this.b$["javax.swing.text.DefaultCaret"].dotLTR));
+} finally {
+this.b$["javax.swing.text.DefaultCaret"].forceCaretPositionChange = false;
+}
+this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
+} else {
+var i = this.b$["javax.swing.text.DefaultCaret"].dotBias;
+var j = this.b$["javax.swing.text.DefaultCaret"].markBias;
+if (f) {
+i = this.b$["javax.swing.text.DefaultCaret"].guessBiasForOffset (e, i, this.b$["javax.swing.text.DefaultCaret"].dotLTR);
+}if (h) {
+j = this.b$["javax.swing.text.DefaultCaret"].guessBiasForOffset (this.b$["javax.swing.text.DefaultCaret"].mark, j, this.b$["javax.swing.text.DefaultCaret"].markLTR);
+}this.b$["javax.swing.text.DefaultCaret"].setDot (g, j);
+if (this.b$["javax.swing.text.DefaultCaret"].getDot () == g) {
+this.b$["javax.swing.text.DefaultCaret"].moveDot (e, i);
+}this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
+}}, "javax.swing.event.DocumentEvent");
+Clazz_overrideMethod (c$, "changedUpdate", 
+function (a) {
+if (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 1 || (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 0 && !javax.swing.SwingUtilities.isEventDispatchThread ())) {
+return;
+}if (Clazz_instanceOf (a, javax.swing.text.AbstractDocument.UndoRedoDocumentEvent)) {
+this.b$["javax.swing.text.DefaultCaret"].setDot (a.getOffset () + a.getLength ());
+}}, "javax.swing.event.DocumentEvent");
+Clazz_overrideMethod (c$, "propertyChange", 
+function (a) {
+var b = a.getOldValue ();
+var c = a.getNewValue ();
+if ((Clazz_instanceOf (b, javax.swing.text.Document)) || (Clazz_instanceOf (c, javax.swing.text.Document))) {
+this.b$["javax.swing.text.DefaultCaret"].setDot (0);
+if (b != null) {
+(b).removeDocumentListener (this);
+}if (c != null) {
+(c).addDocumentListener (this);
+}} else if ("enabled".equals (a.getPropertyName ())) {
+var d = a.getNewValue ();
+if (this.b$["javax.swing.text.DefaultCaret"].component.isFocusOwner ()) {
+if (d === Boolean.TRUE) {
+if (this.b$["javax.swing.text.DefaultCaret"].component.isEditable ()) {
+this.b$["javax.swing.text.DefaultCaret"].setVisible (true);
+}this.b$["javax.swing.text.DefaultCaret"].setSelectionVisible (true);
+} else {
+this.b$["javax.swing.text.DefaultCaret"].setVisible (false);
+this.b$["javax.swing.text.DefaultCaret"].setSelectionVisible (false);
+}}} else if ("caretWidth".equals (a.getPropertyName ())) {
+var d = a.getNewValue ();
+if (d != null) {
+this.b$["javax.swing.text.DefaultCaret"].caretWidth = d.intValue ();
+} else {
+this.b$["javax.swing.text.DefaultCaret"].caretWidth = -1;
+}this.b$["javax.swing.text.DefaultCaret"].repaint ();
+} else if ("caretAspectRatio".equals (a.getPropertyName ())) {
+var d = a.getNewValue ();
+if (d != null) {
+this.b$["javax.swing.text.DefaultCaret"].aspectRatio = d.floatValue ();
+} else {
+this.b$["javax.swing.text.DefaultCaret"].aspectRatio = -1;
+}this.b$["javax.swing.text.DefaultCaret"].repaint ();
+}}, "java.beans.PropertyChangeEvent");
+c$ = Clazz_p0p ();
+};
+c$.$DefaultCaret$DefaultFilterBypass$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultCaret, "DefaultFilterBypass", javax.swing.text.NavigationFilter.FilterBypass);
+Clazz_overrideMethod (c$, "getCaret", 
+function () {
+return this.b$["javax.swing.text.DefaultCaret"];
+});
+Clazz_overrideMethod (c$, "setDot", 
+function (a, b) {
+this.b$["javax.swing.text.DefaultCaret"].handleSetDot (a, b);
+}, "~N,javax.swing.text.Position.Bias");
+Clazz_overrideMethod (c$, "moveDot", 
+function (a, b) {
+this.b$["javax.swing.text.DefaultCaret"].handleMoveDot (a, b);
+}, "~N,javax.swing.text.Position.Bias");
+c$ = Clazz_p0p ();
+};
+c$.$DefaultCaret$1$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (javax.swing.text, "DefaultCaret$1", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+this.b$["javax.swing.text.DefaultCaret"].repaintNewCaret ();
+});
+c$ = Clazz_p0p ();
+};
+Clazz_defineStatics (c$,
+"UPDATE_WHEN_ON_EDT", 0,
+"NEVER_UPDATE", 1,
+"ALWAYS_UPDATE", 2,
+"$selectWord", null,
+"selectLine", null);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_declareInterface (javax.swing.text, "Caret");
+Clazz_declarePackage ("javax.swing.text");
+c$ = Clazz_declareType (javax.swing.text, "NavigationFilter");
+Clazz_defineMethod (c$, "setDot", 
+function (fb, dot, bias) {
+fb.setDot (dot, bias);
+}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "moveDot", 
+function (fb, dot, bias) {
+fb.moveDot (dot, bias);
+}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "getNextVisualPositionFrom", 
+function (text, pos, bias, direction, biasRet) {
+return text.getUI ().getNextVisualPositionFrom (text, pos, bias, direction, biasRet);
+}, "javax.swing.text.JTextComponent,~N,javax.swing.text.Position.Bias,~N,~A");
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.NavigationFilter, "FilterBypass");
+c$ = Clazz_p0p ();
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.event.DocumentEvent", "javax.swing.text.DocumentFilter", "$.Element", "$.JSMinimalAbstractDocument", "$.MutableAttributeSet", "javax.swing.tree.TreeNode", "javax.swing.undo.AbstractUndoableEdit", "$.CompoundEdit", "javax.swing.event.EventListenerList"], "javax.swing.text.AbstractDocument", ["java.lang.Boolean", "java.util.Hashtable", "$.Vector", "javax.swing.UIManager", "javax.swing.event.DocumentEvent.ElementChange", "javax.swing.event.DocumentListener", "$.UndoableEditEvent", "$.UndoableEditListener", "javax.swing.text.BadLocationException", "$.SegmentCache", "$.StateInvariantError", "$.StyleConstants", "$.StyleContext", "$.Utilities"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.documentProperties = null;
+this.listenerList = null;
+this.data = null;
+this.context = null;
+this.bidiRoot = null;
+this.documentFilter = null;
+this.filterBypass = null;
+if (!Clazz_isClassDefined ("javax.swing.text.AbstractDocument.AbstractElement")) {
+javax.swing.text.AbstractDocument.$AbstractDocument$AbstractElement$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.AbstractDocument.BranchElement")) {
+javax.swing.text.AbstractDocument.$AbstractDocument$BranchElement$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.AbstractDocument.LeafElement")) {
+javax.swing.text.AbstractDocument.$AbstractDocument$LeafElement$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.AbstractDocument.DefaultDocumentEvent")) {
+javax.swing.text.AbstractDocument.$AbstractDocument$DefaultDocumentEvent$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.AbstractDocument.UndoRedoDocumentEvent")) {
+javax.swing.text.AbstractDocument.$AbstractDocument$UndoRedoDocumentEvent$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.AbstractDocument.DefaultFilterBypass")) {
+javax.swing.text.AbstractDocument.$AbstractDocument$DefaultFilterBypass$ ();
+}
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "AbstractDocument", null, javax.swing.text.JSMinimalAbstractDocument);
+Clazz_prepareFields (c$, function () {
+this.listenerList =  new javax.swing.event.EventListenerList ();
+});
+Clazz_makeConstructor (c$, 
+function (data) {
+this.construct (data, javax.swing.text.StyleContext.getDefaultStyleContext ());
+}, "javax.swing.text.AbstractDocument.Content");
+Clazz_makeConstructor (c$, 
+function (data, context) {
+this.data = data;
+this.context = context;
+}, "javax.swing.text.AbstractDocument.Content,javax.swing.text.AbstractDocument.AttributeContext");
+Clazz_defineMethod (c$, "getDocumentProperties", 
+function () {
+if (this.documentProperties == null) {
+this.documentProperties =  new java.util.Hashtable (2);
+}return this.documentProperties;
+});
+Clazz_defineMethod (c$, "setDocumentProperties", 
+function (x) {
+this.documentProperties = x;
+}, "java.util.Dictionary");
+Clazz_defineMethod (c$, "fireInsertUpdate", 
+function (e) {
+try {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.DocumentListener) {
+(listeners[i + 1]).insertUpdate (e);
+}}
+} finally {
+}
+}, "javax.swing.event.DocumentEvent");
+Clazz_defineMethod (c$, "fireChangedUpdate", 
+function (e) {
+try {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.DocumentListener) {
+(listeners[i + 1]).changedUpdate (e);
+}}
+} finally {
+}
+}, "javax.swing.event.DocumentEvent");
+Clazz_defineMethod (c$, "fireRemoveUpdate", 
+function (e) {
+try {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.DocumentListener) {
+(listeners[i + 1]).removeUpdate (e);
+}}
+} finally {
+}
+}, "javax.swing.event.DocumentEvent");
+Clazz_defineMethod (c$, "fireUndoableEditUpdate", 
+function (e) {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.UndoableEditListener) {
+(listeners[i + 1]).undoableEditHappened (e);
+}}
+}, "javax.swing.event.UndoableEditEvent");
+Clazz_defineMethod (c$, "getListeners", 
+function (listenerType) {
+return this.listenerList.getListeners (listenerType);
+}, "Class");
+Clazz_overrideMethod (c$, "getAsynchronousLoadPriority", 
+function () {
+var loadPriority = this.getProperty ("load priority");
+if (loadPriority != null) {
+return loadPriority.intValue ();
+}return -1;
+});
+Clazz_defineMethod (c$, "setAsynchronousLoadPriority", 
+function (p) {
+var loadPriority = (p >= 0) ?  new Integer (p) : null;
+this.putProperty ("load priority", loadPriority);
+}, "~N");
+Clazz_overrideMethod (c$, "setDocumentFilter", 
+function (filter) {
+this.documentFilter = filter;
+}, "javax.swing.text.DocumentFilter");
+Clazz_defineMethod (c$, "getDocumentFilter", 
+function () {
+return this.documentFilter;
+});
+Clazz_overrideMethod (c$, "getLength", 
+function () {
+return this.data.length () - 1;
+});
+Clazz_overrideMethod (c$, "addDocumentListener", 
+function (listener) {
+this.listenerList.add (javax.swing.event.DocumentListener, listener);
+}, "javax.swing.event.DocumentListener");
+Clazz_overrideMethod (c$, "removeDocumentListener", 
+function (listener) {
+this.listenerList.remove (javax.swing.event.DocumentListener, listener);
+}, "javax.swing.event.DocumentListener");
+Clazz_defineMethod (c$, "getDocumentListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.DocumentListener);
+});
+Clazz_overrideMethod (c$, "addUndoableEditListener", 
+function (listener) {
+this.listenerList.add (javax.swing.event.UndoableEditListener, listener);
+}, "javax.swing.event.UndoableEditListener");
+Clazz_overrideMethod (c$, "removeUndoableEditListener", 
+function (listener) {
+this.listenerList.remove (javax.swing.event.UndoableEditListener, listener);
+}, "javax.swing.event.UndoableEditListener");
+Clazz_defineMethod (c$, "getUndoableEditListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.UndoableEditListener);
+});
+Clazz_overrideMethod (c$, "getProperty", 
+function (key) {
+return this.getDocumentProperties ().get (key);
+}, "~O");
+Clazz_overrideMethod (c$, "putProperty", 
+function (key, value) {
+if (value != null) {
+this.getDocumentProperties ().put (key, value);
+} else {
+this.getDocumentProperties ().remove (key);
+}}, "~O,~O");
+Clazz_overrideMethod (c$, "remove", 
+function (offs, len) {
+var filter = this.getDocumentFilter ();
+this.writeLock ();
+try {
+if (filter != null) {
+filter.remove (this.getFilterBypass (), offs, len);
+} else {
+this.handleRemove (offs, len);
+}} finally {
+this.writeUnlock ();
+}
+}, "~N,~N");
+Clazz_defineMethod (c$, "handleRemove", 
+function (offs, len) {
+if (len > 0) {
+if (offs < 0 || (offs + len) > this.getLength ()) {
+throw  new javax.swing.text.BadLocationException ("Invalid remove", this.getLength () + 1);
+}var chng = Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.DefaultDocumentEvent, this, null, offs, len, javax.swing.event.DocumentEvent.EventType.REMOVE);
+var isComposedTextElement = false;
+isComposedTextElement = javax.swing.text.Utilities.isComposedTextElement (this, offs);
+this.removeUpdate (chng);
+var u = this.data.remove (offs, len);
+if (u != null) {
+chng.addEdit (u);
+}this.postRemoveUpdate (chng);
+chng.end ();
+this.fireRemoveUpdate (chng);
+if ((u != null) && !isComposedTextElement) {
+this.fireUndoableEditUpdate ( new javax.swing.event.UndoableEditEvent (this, chng));
+}}}, "~N,~N");
+Clazz_overrideMethod (c$, "replace", 
+function (offset, length, text, attrs) {
+if (length == 0 && (text == null || text.length == 0)) {
+return;
+}var filter = this.getDocumentFilter ();
+this.writeLock ();
+try {
+if (filter != null) {
+filter.replace (this.getFilterBypass (), offset, length, text, attrs);
+} else {
+if (length > 0) {
+this.remove (offset, length);
+}if (text != null && text.length > 0) {
+this.insertString (offset, text, attrs);
+}}} finally {
+this.writeUnlock ();
+}
+}, "~N,~N,~S,javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "insertString", 
+function (offs, str, a) {
+if ((str == null) || (str.length == 0)) {
+return;
+}var filter = this.getDocumentFilter ();
+this.writeLock ();
+try {
+if (filter != null) {
+filter.insertString (this.getFilterBypass (), offs, str, a);
+} else {
+this.handleInsertString (offs, str, a);
+}} finally {
+this.writeUnlock ();
+}
+}, "~N,~S,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "handleInsertString", 
+function (offs, str, a) {
+if ((str == null) || (str.length == 0)) {
+return;
+}var u = this.data.insertString (offs, str);
+var e = Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.DefaultDocumentEvent, this, null, offs, str.length, javax.swing.event.DocumentEvent.EventType.INSERT);
+if (u != null) {
+e.addEdit (u);
+}if (this.getProperty ("i18n").equals (Boolean.FALSE)) {
+}this.insertUpdate (e, a);
+e.end ();
+this.fireInsertUpdate (e);
+if (u != null && (a == null || !a.isDefined (javax.swing.text.StyleConstants.ComposedTextAttribute))) {
+this.fireUndoableEditUpdate ( new javax.swing.event.UndoableEditEvent (this, e));
+}}, "~N,~S,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getText", 
+function (offset, length) {
+if (length < 0) {
+throw  new javax.swing.text.BadLocationException ("Length must be positive", length);
+}var str = this.data.getString (offset, length);
+return str;
+}, "~N,~N");
+Clazz_defineMethod (c$, "getText", 
+function (offset, length, txt) {
+if (length < 0) {
+throw  new javax.swing.text.BadLocationException ("Length must be positive", length);
+}this.data.getChars (offset, length, txt);
+}, "~N,~N,javax.swing.text.Segment");
+Clazz_overrideMethod (c$, "createPosition", 
+function (offs) {
+return this.data.createPosition (offs);
+}, "~N");
+Clazz_overrideMethod (c$, "getStartPosition", 
+function () {
+var p;
+try {
+p = this.createPosition (0);
+} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+p = null;
+} else {
+throw bl;
+}
+}
+return p;
+});
+Clazz_overrideMethod (c$, "getEndPosition", 
+function () {
+var p;
+try {
+p = this.createPosition (this.data.length ());
+} catch (bl) {
+if (Clazz_exceptionOf (bl, javax.swing.text.BadLocationException)) {
+p = null;
+} else {
+throw bl;
+}
+}
+return p;
+});
+Clazz_overrideMethod (c$, "getRootElements", 
+function () {
+var elems =  new Array (2);
+elems[0] = this.getDefaultRootElement ();
+elems[1] = this.getBidiRootElement ();
+return elems;
+});
+Clazz_defineMethod (c$, "getFilterBypass", 
+ function () {
+if (this.filterBypass == null) {
+this.filterBypass = Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.DefaultFilterBypass, this, null);
+}return this.filterBypass;
+});
+Clazz_defineMethod (c$, "getBidiRootElement", 
+function () {
+return this.bidiRoot;
+});
+Clazz_defineMethod (c$, "isLeftToRight", 
+function (p0, p1) {
+if (!this.getProperty ("i18n").equals (Boolean.TRUE)) {
+return true;
+}var bidiRoot = this.getBidiRootElement ();
+var index = bidiRoot.getElementIndex (p0);
+var bidiElem = bidiRoot.getElement (index);
+if (bidiElem.getEndOffset () >= p1) {
+var bidiAttrs = bidiElem.getAttributes ();
+return ((javax.swing.text.StyleConstants.getBidiLevel (bidiAttrs) % 2) == 0);
+}return true;
+}, "~N,~N");
+Clazz_defineMethod (c$, "getAttributeContext", 
+function () {
+return this.context;
+});
+Clazz_defineMethod (c$, "insertUpdate", 
+function (chng, attr) {
+if (chng.type === javax.swing.event.DocumentEvent.EventType.INSERT && chng.getLength () > 0 && !Boolean.TRUE.equals (this.getProperty (javax.swing.text.AbstractDocument.MultiByteProperty))) {
+var segment = javax.swing.text.SegmentCache.getSharedSegment ();
+try {
+this.getText (chng.getOffset (), chng.getLength (), segment);
+segment.first ();
+do {
+if ((segment.current ()).charCodeAt (0) > 255) {
+this.putProperty (javax.swing.text.AbstractDocument.MultiByteProperty, Boolean.TRUE);
+break;
+}} while (segment.next () != '\uffff');
+} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+} else {
+throw ble;
+}
+}
+javax.swing.text.SegmentCache.releaseSharedSegment (segment);
+}}, "javax.swing.text.AbstractDocument.DefaultDocumentEvent,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "removeUpdate", 
+function (chng) {
+}, "javax.swing.text.AbstractDocument.DefaultDocumentEvent");
+Clazz_defineMethod (c$, "postRemoveUpdate", 
+function (chng) {
+}, "javax.swing.text.AbstractDocument.DefaultDocumentEvent");
+Clazz_defineMethod (c$, "getContent", 
+function () {
+return this.data;
+});
+Clazz_defineMethod (c$, "createLeafElement", 
+function (parent, a, p0, p1) {
+return Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.LeafElement, this, null, parent, a, p0, p1);
+}, "javax.swing.text.Element,javax.swing.text.AttributeSet,~N,~N");
+Clazz_defineMethod (c$, "createBranchElement", 
+function (parent, a) {
+return Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.BranchElement, this, null, parent, a);
+}, "javax.swing.text.Element,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "writeLock", 
+function () {
+});
+Clazz_defineMethod (c$, "writeUnlock", 
+function () {
+});
+Clazz_defineMethod (c$, "readLock", 
+function () {
+});
+Clazz_defineMethod (c$, "readUnlock", 
+function () {
+});
+c$.$AbstractDocument$AbstractElement$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.parent = null;
+this.attributes = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.AbstractDocument, "AbstractElement", null, [javax.swing.text.Element, javax.swing.text.MutableAttributeSet, javax.swing.tree.TreeNode]);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+this.parent = a;
+this.attributes = this.b$["javax.swing.text.AbstractDocument"].getAttributeContext ().getEmptySet ();
+if (b != null) {
+this.addAttributes (b);
+}}, "javax.swing.text.Element,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getAttributeCount", 
+function () {
+return this.attributes.getAttributeCount ();
+});
+Clazz_defineMethod (c$, "isDefined", 
+function (a) {
+return this.attributes.isDefined (a);
+}, "~O");
+Clazz_defineMethod (c$, "isEqual", 
+function (a) {
+return this.attributes.isEqual (a);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "copyAttributes", 
+function () {
+return this.attributes.copyAttributes ();
+});
+Clazz_defineMethod (c$, "getAttribute", 
+function (a) {
+var b = this.attributes.getAttribute (a);
+if (b == null) {
+var c = (this.parent != null) ? this.parent.getAttributes () : null;
+if (c != null) {
+b = c.getAttribute (a);
+}}return b;
+}, "~O");
+Clazz_defineMethod (c$, "getAttributeNames", 
+function () {
+return this.attributes.getAttributeNames ();
+});
+Clazz_defineMethod (c$, "containsAttribute", 
+function (a, b) {
+return this.attributes.containsAttribute (a, b);
+}, "~O,~O");
+Clazz_defineMethod (c$, "containsAttributes", 
+function (a) {
+return this.attributes.containsAttributes (a);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getResolveParent", 
+function () {
+var a = this.attributes.getResolveParent ();
+if ((a == null) && (this.parent != null)) {
+a = this.parent.getAttributes ();
+}return a;
+});
+Clazz_overrideMethod (c$, "addAttribute", 
+function (a, b) {
+this.checkForIllegalCast ();
+var c = this.b$["javax.swing.text.AbstractDocument"].getAttributeContext ();
+this.attributes = c.addAttribute (this.attributes, a, b);
+}, "~O,~O");
+Clazz_overrideMethod (c$, "addAttributes", 
+function (a) {
+this.checkForIllegalCast ();
+var b = this.b$["javax.swing.text.AbstractDocument"].getAttributeContext ();
+this.attributes = b.addAttributes (this.attributes, a);
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "removeAttribute", 
+function (a) {
+this.checkForIllegalCast ();
+var b = this.b$["javax.swing.text.AbstractDocument"].getAttributeContext ();
+this.attributes = b.removeAttribute (this.attributes, a);
+}, "~O");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (a) {
+this.checkForIllegalCast ();
+var b = this.b$["javax.swing.text.AbstractDocument"].getAttributeContext ();
+this.attributes = b.removeAttributes (this.attributes, a);
+}, "java.util.Enumeration");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (a) {
+this.checkForIllegalCast ();
+var b = this.b$["javax.swing.text.AbstractDocument"].getAttributeContext ();
+if (a === this) {
+this.attributes = b.getEmptySet ();
+} else {
+this.attributes = b.removeAttributes (this.attributes, a);
+}}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "setResolveParent", 
+function (a) {
+this.checkForIllegalCast ();
+var b = this.b$["javax.swing.text.AbstractDocument"].getAttributeContext ();
+if (a != null) {
+this.attributes = b.addAttribute (this.attributes, javax.swing.text.StyleConstants.ResolveAttribute, a);
+} else {
+this.attributes = b.removeAttribute (this.attributes, javax.swing.text.StyleConstants.ResolveAttribute);
+}}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "checkForIllegalCast", 
+ function () {
+});
+Clazz_overrideMethod (c$, "getDocument", 
+function () {
+return this.b$["javax.swing.text.AbstractDocument"];
+});
+Clazz_overrideMethod (c$, "getParentElement", 
+function () {
+return this.parent;
+});
+Clazz_defineMethod (c$, "getAttributes", 
+function () {
+return this;
+});
+Clazz_overrideMethod (c$, "getName", 
+function () {
+if (this.attributes.isDefined ("$ename")) {
+return this.attributes.getAttribute ("$ename");
+}return null;
+});
+Clazz_overrideMethod (c$, "getChildAt", 
+function (a) {
+return this.getElement (a);
+}, "~N");
+Clazz_overrideMethod (c$, "getChildCount", 
+function () {
+return this.getElementCount ();
+});
+Clazz_overrideMethod (c$, "getParent", 
+function () {
+return this.getParentElement ();
+});
+Clazz_overrideMethod (c$, "getIndex", 
+function (a) {
+for (var b = this.getChildCount () - 1; b >= 0; b--) if (this.getChildAt (b) === a) return b;
+
+return -1;
+}, "javax.swing.tree.TreeNode");
+c$ = Clazz_p0p ();
+};
+c$.$AbstractDocument$BranchElement$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.$children = null;
+this.nchildren = 0;
+this.lastIndex = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.AbstractDocument, "BranchElement", javax.swing.text.AbstractDocument.AbstractElement, null, Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.AbstractElement, this, null, Clazz_inheritArgs));
+Clazz_makeConstructor (c$, 
+function (a, b) {
+Clazz_superConstructor (this, javax.swing.text.AbstractDocument.BranchElement, [a, b]);
+this.$children =  new Array (1);
+this.nchildren = 0;
+this.lastIndex = -1;
+}, "javax.swing.text.Element,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "positionToElement", 
+function (a) {
+var b = this.getElementIndex (a);
+var c = this.$children[b];
+var d = c.getStartOffset ();
+var e = c.getEndOffset ();
+if ((a >= d) && (a < e)) {
+return c;
+}return null;
+}, "~N");
+Clazz_defineMethod (c$, "replace", 
+function (a, b, c) {
+var d = c.length - b;
+var e = a + b;
+var f = this.nchildren - e;
+var g = e + d;
+if ((this.nchildren + d) >= this.$children.length) {
+var h = Math.max (2 * this.$children.length, this.nchildren + d);
+var i =  new Array (h);
+System.arraycopy (this.$children, 0, i, 0, a);
+System.arraycopy (c, 0, i, a, c.length);
+System.arraycopy (this.$children, e, i, g, f);
+this.$children = i;
+} else {
+System.arraycopy (this.$children, e, this.$children, g, f);
+System.arraycopy (c, 0, this.$children, a, c.length);
+}this.nchildren = this.nchildren + d;
+}, "~N,~N,~A");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return "BranchElement(" + this.getName () + ") " + this.getStartOffset () + "," + this.getEndOffset () + "\n";
+});
+Clazz_defineMethod (c$, "getName", 
+function () {
+var a = Clazz_superCall (this, javax.swing.text.AbstractDocument.BranchElement, "getName", []);
+if (a == null) {
+a = "paragraph";
+}return a;
+});
+Clazz_defineMethod (c$, "getStartOffset", 
+function () {
+return this.$children[0].getStartOffset ();
+});
+Clazz_overrideMethod (c$, "getEndOffset", 
+function () {
+var a = (this.nchildren > 0) ? this.$children[this.nchildren - 1] : this.$children[0];
+return a.getEndOffset ();
+});
+Clazz_overrideMethod (c$, "getElement", 
+function (a) {
+if (a < this.nchildren) {
+return this.$children[a];
+}return null;
+}, "~N");
+Clazz_overrideMethod (c$, "getElementCount", 
+function () {
+return this.nchildren;
+});
+Clazz_overrideMethod (c$, "getElementIndex", 
+function (a) {
+var b;
+var c = 0;
+var d = this.nchildren - 1;
+var e = 0;
+var f = this.getStartOffset ();
+var g;
+if (this.nchildren == 0) {
+return 0;
+}if (a >= this.getEndOffset ()) {
+return this.nchildren - 1;
+}if ((this.lastIndex >= c) && (this.lastIndex <= d)) {
+var h = this.$children[this.lastIndex];
+f = h.getStartOffset ();
+g = h.getEndOffset ();
+if ((a >= f) && (a < g)) {
+return this.lastIndex;
+}if (a < f) {
+d = this.lastIndex;
+} else {
+c = this.lastIndex;
+}}while (c <= d) {
+e = c + (Clazz_doubleToInt ((d - c) / 2));
+var h = this.$children[e];
+f = h.getStartOffset ();
+g = h.getEndOffset ();
+if ((a >= f) && (a < g)) {
+b = e;
+this.lastIndex = b;
+return b;
+} else if (a < f) {
+d = e - 1;
+} else {
+c = e + 1;
+}}
+if (a < f) {
+b = e;
+} else {
+b = e + 1;
+}this.lastIndex = b;
+return b;
+}, "~N");
+Clazz_overrideMethod (c$, "isLeaf", 
+function () {
+return false;
+});
+Clazz_overrideMethod (c$, "getAllowsChildren", 
+function () {
+return true;
+});
+Clazz_overrideMethod (c$, "children", 
+function () {
+if (this.nchildren == 0) return null;
+var a =  new java.util.Vector (this.nchildren);
+for (var b = 0; b < this.nchildren; b++) a.addElement (this.$children[b]);
+
+return a.elements ();
+});
+c$ = Clazz_p0p ();
+};
+c$.$AbstractDocument$LeafElement$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.p0 = null;
+this.p1 = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.AbstractDocument, "LeafElement", javax.swing.text.AbstractDocument.AbstractElement, null, Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.AbstractElement, this, null, Clazz_inheritArgs));
+Clazz_makeConstructor (c$, 
+function (a, b, c, d) {
+Clazz_superConstructor (this, javax.swing.text.AbstractDocument.LeafElement, [a, b]);
+try {
+this.p0 = this.b$["javax.swing.text.AbstractDocument"].createPosition (c);
+this.p1 = this.b$["javax.swing.text.AbstractDocument"].createPosition (d);
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+this.p0 = null;
+this.p1 = null;
+throw  new javax.swing.text.StateInvariantError ("Can't create Position references");
+} else {
+throw e;
+}
+}
+}, "javax.swing.text.Element,javax.swing.text.AttributeSet,~N,~N");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return "LeafElement(" + this.getName () + ") " + this.p0 + "," + this.p1 + "\n";
+});
+Clazz_overrideMethod (c$, "getStartOffset", 
+function () {
+return this.p0.getOffset ();
+});
+Clazz_overrideMethod (c$, "getEndOffset", 
+function () {
+return this.p1.getOffset ();
+});
+Clazz_defineMethod (c$, "getName", 
+function () {
+var a = Clazz_superCall (this, javax.swing.text.AbstractDocument.LeafElement, "getName", []);
+if (a == null) {
+a = "content";
+}return a;
+});
+Clazz_overrideMethod (c$, "getElementIndex", 
+function (a) {
+return -1;
+}, "~N");
+Clazz_overrideMethod (c$, "getElement", 
+function (a) {
+return null;
+}, "~N");
+Clazz_overrideMethod (c$, "getElementCount", 
+function () {
+return 0;
+});
+Clazz_overrideMethod (c$, "isLeaf", 
+function () {
+return true;
+});
+Clazz_overrideMethod (c$, "getAllowsChildren", 
+function () {
+return false;
+});
+Clazz_overrideMethod (c$, "children", 
+function () {
+return null;
+});
+c$ = Clazz_p0p ();
+};
+c$.$AbstractDocument$DefaultDocumentEvent$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.offset = 0;
+this.length = 0;
+this.changeLookup = null;
+this.type = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.AbstractDocument, "DefaultDocumentEvent", javax.swing.undo.CompoundEdit, javax.swing.event.DocumentEvent);
+Clazz_makeConstructor (c$, 
+function (a, b, c) {
+Clazz_superConstructor (this, javax.swing.text.AbstractDocument.DefaultDocumentEvent);
+this.offset = a;
+this.length = b;
+this.type = c;
+}, "~N,~N,javax.swing.event.DocumentEvent.EventType");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return this.edits.toString ();
+});
+Clazz_defineMethod (c$, "addEdit", 
+function (a) {
+if ((this.changeLookup == null) && (this.edits.size () > 10)) {
+this.changeLookup =  new java.util.Hashtable ();
+var b = this.edits.size ();
+for (var c = 0; c < b; c++) {
+var d = this.edits.elementAt (c);
+if (Clazz_instanceOf (d, javax.swing.event.DocumentEvent.ElementChange)) {
+var e = d;
+this.changeLookup.put (e.getElement (), e);
+}}
+}if ((this.changeLookup != null) && (Clazz_instanceOf (a, javax.swing.event.DocumentEvent.ElementChange))) {
+var b = a;
+this.changeLookup.put (b.getElement (), b);
+}return Clazz_superCall (this, javax.swing.text.AbstractDocument.DefaultDocumentEvent, "addEdit", [a]);
+}, "javax.swing.undo.UndoableEdit");
+Clazz_defineMethod (c$, "redo", 
+function () {
+this.b$["javax.swing.text.AbstractDocument"].writeLock ();
+try {
+Clazz_superCall (this, javax.swing.text.AbstractDocument.DefaultDocumentEvent, "redo", []);
+var a = Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.UndoRedoDocumentEvent, this, null, this, false);
+if (this.type === javax.swing.event.DocumentEvent.EventType.INSERT) {
+this.b$["javax.swing.text.AbstractDocument"].fireInsertUpdate (a);
+} else if (this.type === javax.swing.event.DocumentEvent.EventType.REMOVE) {
+this.b$["javax.swing.text.AbstractDocument"].fireRemoveUpdate (a);
+} else {
+this.b$["javax.swing.text.AbstractDocument"].fireChangedUpdate (a);
+}} finally {
+this.b$["javax.swing.text.AbstractDocument"].writeUnlock ();
+}
+});
+Clazz_defineMethod (c$, "undo", 
+function () {
+this.b$["javax.swing.text.AbstractDocument"].writeLock ();
+try {
+Clazz_superCall (this, javax.swing.text.AbstractDocument.DefaultDocumentEvent, "undo", []);
+var a = Clazz_innerTypeInstance (javax.swing.text.AbstractDocument.UndoRedoDocumentEvent, this, null, this, true);
+if (this.type === javax.swing.event.DocumentEvent.EventType.REMOVE) {
+this.b$["javax.swing.text.AbstractDocument"].fireInsertUpdate (a);
+} else if (this.type === javax.swing.event.DocumentEvent.EventType.INSERT) {
+this.b$["javax.swing.text.AbstractDocument"].fireRemoveUpdate (a);
+} else {
+this.b$["javax.swing.text.AbstractDocument"].fireChangedUpdate (a);
+}} finally {
+this.b$["javax.swing.text.AbstractDocument"].writeUnlock ();
+}
+});
+Clazz_overrideMethod (c$, "isSignificant", 
+function () {
+return true;
+});
+Clazz_overrideMethod (c$, "getPresentationName", 
+function () {
+var a = this.getType ();
+if (a === javax.swing.event.DocumentEvent.EventType.INSERT) return javax.swing.UIManager.getString ("AbstractDocument.additionText");
+if (a === javax.swing.event.DocumentEvent.EventType.REMOVE) return javax.swing.UIManager.getString ("AbstractDocument.deletionText");
+return javax.swing.UIManager.getString ("AbstractDocument.styleChangeText");
+});
+Clazz_overrideMethod (c$, "getUndoPresentationName", 
+function () {
+return javax.swing.UIManager.getString ("AbstractDocument.undoText") + " " + this.getPresentationName ();
+});
+Clazz_overrideMethod (c$, "getRedoPresentationName", 
+function () {
+return javax.swing.UIManager.getString ("AbstractDocument.redoText") + " " + this.getPresentationName ();
+});
+Clazz_overrideMethod (c$, "getType", 
+function () {
+return this.type;
+});
+Clazz_overrideMethod (c$, "getOffset", 
+function () {
+return this.offset;
+});
+Clazz_overrideMethod (c$, "getLength", 
+function () {
+return this.length;
+});
+Clazz_overrideMethod (c$, "getDocument", 
+function () {
+return this.b$["javax.swing.text.AbstractDocument"];
+});
+Clazz_overrideMethod (c$, "getChange", 
+function (a) {
+if (this.changeLookup != null) {
+return this.changeLookup.get (a);
+}var b = this.edits.size ();
+for (var c = 0; c < b; c++) {
+var d = this.edits.elementAt (c);
+if (Clazz_instanceOf (d, javax.swing.event.DocumentEvent.ElementChange)) {
+var e = d;
+if (a.equals (e.getElement ())) {
+return e;
+}}}
+return null;
+}, "javax.swing.text.Element");
+c$ = Clazz_p0p ();
+};
+c$.$AbstractDocument$UndoRedoDocumentEvent$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.src = null;
+this.type = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.AbstractDocument, "UndoRedoDocumentEvent", null, javax.swing.event.DocumentEvent);
+Clazz_makeConstructor (c$, 
+function (a, b) {
+this.src = a;
+if (b) {
+if (a.getType ().equals (javax.swing.event.DocumentEvent.EventType.INSERT)) {
+this.type = javax.swing.event.DocumentEvent.EventType.REMOVE;
+} else if (a.getType ().equals (javax.swing.event.DocumentEvent.EventType.REMOVE)) {
+this.type = javax.swing.event.DocumentEvent.EventType.INSERT;
+} else {
+this.type = a.getType ();
+}} else {
+this.type = a.getType ();
+}}, "javax.swing.text.AbstractDocument.DefaultDocumentEvent,~B");
+Clazz_defineMethod (c$, "getSource", 
+function () {
+return this.src;
+});
+Clazz_overrideMethod (c$, "getOffset", 
+function () {
+return this.src.getOffset ();
+});
+Clazz_overrideMethod (c$, "getLength", 
+function () {
+return this.src.getLength ();
+});
+Clazz_overrideMethod (c$, "getDocument", 
+function () {
+return this.src.getDocument ();
+});
+Clazz_overrideMethod (c$, "getType", 
+function () {
+return this.type;
+});
+Clazz_overrideMethod (c$, "getChange", 
+function (a) {
+return this.src.getChange (a);
+}, "javax.swing.text.Element");
+c$ = Clazz_p0p ();
+};
+c$.$AbstractDocument$DefaultFilterBypass$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.AbstractDocument, "DefaultFilterBypass", javax.swing.text.DocumentFilter.FilterBypass);
+Clazz_overrideMethod (c$, "getDocument", 
+function () {
+return this.b$["javax.swing.text.AbstractDocument"];
+});
+Clazz_overrideMethod (c$, "remove", 
+function (a, b) {
+this.b$["javax.swing.text.AbstractDocument"].handleRemove (a, b);
+}, "~N,~N");
+Clazz_overrideMethod (c$, "insertString", 
+function (a, b, c) {
+this.b$["javax.swing.text.AbstractDocument"].handleInsertString (a, b, c);
+}, "~N,~S,javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "replace", 
+function (a, b, c, d) {
+this.b$["javax.swing.text.AbstractDocument"].handleRemove (a, b);
+this.b$["javax.swing.text.AbstractDocument"].handleInsertString (a, c, d);
+}, "~N,~N,~S,javax.swing.text.AttributeSet");
+c$ = Clazz_p0p ();
+};
+Clazz_declareInterface (javax.swing.text.AbstractDocument, "Content");
+Clazz_declareInterface (javax.swing.text.AbstractDocument, "AttributeContext");
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.e = null;
+this.index = 0;
+this.removed = null;
+this.added = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.AbstractDocument, "ElementEdit", javax.swing.undo.AbstractUndoableEdit, javax.swing.event.DocumentEvent.ElementChange);
+Clazz_makeConstructor (c$, 
+function (a, b, c, d) {
+Clazz_superConstructor (this, javax.swing.text.AbstractDocument.ElementEdit);
+this.e = a;
+this.index = b;
+this.removed = c;
+this.added = d;
+}, "javax.swing.text.Element,~N,~A,~A");
+Clazz_overrideMethod (c$, "getElement", 
+function () {
+return this.e;
+});
+Clazz_overrideMethod (c$, "getIndex", 
+function () {
+return this.index;
+});
+Clazz_overrideMethod (c$, "getChildrenRemoved", 
+function () {
+return this.removed;
+});
+Clazz_overrideMethod (c$, "getChildrenAdded", 
+function () {
+return this.added;
+});
+Clazz_defineMethod (c$, "redo", 
+function () {
+Clazz_superCall (this, javax.swing.text.AbstractDocument.ElementEdit, "redo", []);
+var a = this.removed;
+this.removed = this.added;
+this.added = a;
+(this.e).replace (this.index, this.removed.length, this.added);
+});
+Clazz_defineMethod (c$, "undo", 
+function () {
+Clazz_superCall (this, javax.swing.text.AbstractDocument.ElementEdit, "undo", []);
+(this.e).replace (this.index, this.added.length, this.removed);
+var a = this.removed;
+this.removed = this.added;
+this.added = a;
+});
+c$ = Clazz_p0p ();
+Clazz_defineStatics (c$,
+"BAD_LOCATION", "document location failure",
+"ParagraphElementName", "paragraph",
+"ContentElementName", "content",
+"SectionElementName", "section",
+"BidiElementName", "bidi level",
+"ElementNameAttribute", "$ename",
+"I18NProperty", "i18n",
+"MultiByteProperty", "multiByte",
+"AsyncLoadPriority", "load priority");
+});
+Clazz_declarePackage ("javax.swing.event");
+Clazz_declareInterface (javax.swing.event, "DocumentEvent");
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.typeString = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.event.DocumentEvent, "EventType");
+Clazz_makeConstructor (c$, 
+ function (a) {
+this.typeString = a;
+}, "~S");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return this.typeString;
+});
+c$.INSERT = c$.prototype.INSERT =  new javax.swing.event.DocumentEvent.EventType ("INSERT");
+c$.REMOVE = c$.prototype.REMOVE =  new javax.swing.event.DocumentEvent.EventType ("REMOVE");
+c$.CHANGE = c$.prototype.CHANGE =  new javax.swing.event.DocumentEvent.EventType ("CHANGE");
+c$ = Clazz_p0p ();
+Clazz_declareInterface (javax.swing.event.DocumentEvent, "ElementChange");
+Clazz_declarePackage ("javax.swing.text");
+c$ = Clazz_declareType (javax.swing.text, "DocumentFilter");
+Clazz_defineMethod (c$, "remove", 
+function (fb, offset, length) {
+fb.remove (offset, length);
+}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N");
+Clazz_defineMethod (c$, "insertString", 
+function (fb, offset, string, attr) {
+fb.insertString (offset, string, attr);
+}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~S,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "replace", 
+function (fb, offset, length, text, attrs) {
+fb.replace (offset, length, text, attrs);
+}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.DocumentFilter, "FilterBypass");
+c$ = Clazz_p0p ();
+Clazz_declarePackage ("javax.swing.text");
+Clazz_declareInterface (javax.swing.text, "Element");
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.Document"], "javax.swing.text.JSMinimalAbstractDocument", null, function () {
+Clazz_declareInterface (javax.swing.text, "JSMinimalAbstractDocument", javax.swing.text.Document);
+});
+Clazz_declarePackage ("javax.swing.text");
+c$ = Clazz_declareInterface (javax.swing.text, "Document");
+Clazz_defineStatics (c$,
+"StreamDescriptionProperty", "stream",
+"TitleProperty", "title");
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.AttributeSet"], "javax.swing.text.MutableAttributeSet", null, function () {
+Clazz_declareInterface (javax.swing.text, "MutableAttributeSet", javax.swing.text.AttributeSet);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_declareInterface (javax.swing.text, "AttributeSet");
+Clazz_declareInterface (javax.swing.text.AttributeSet, "FontAttribute");
+Clazz_declareInterface (javax.swing.text.AttributeSet, "ColorAttribute");
+Clazz_declareInterface (javax.swing.text.AttributeSet, "CharacterAttribute");
+Clazz_declareInterface (javax.swing.text.AttributeSet, "ParagraphAttribute");
+Clazz_declarePackage ("javax.swing.tree");
+Clazz_declareInterface (javax.swing.tree, "TreeNode");
+Clazz_declarePackage ("javax.swing.undo");
+Clazz_load (["javax.swing.undo.UndoableEdit"], "javax.swing.undo.AbstractUndoableEdit", ["javax.swing.UIManager", "javax.swing.undo.CannotRedoException", "$.CannotUndoException"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.hasBeenDone = false;
+this.alive = false;
+Clazz_instantialize (this, arguments);
+}, javax.swing.undo, "AbstractUndoableEdit", null, javax.swing.undo.UndoableEdit);
+Clazz_makeConstructor (c$, 
+function () {
+this.hasBeenDone = true;
+this.alive = true;
+});
+Clazz_overrideMethod (c$, "die", 
+function () {
+this.alive = false;
+});
+Clazz_overrideMethod (c$, "undo", 
+function () {
+if (!this.canUndo ()) {
+throw  new javax.swing.undo.CannotUndoException ();
+}this.hasBeenDone = false;
+});
+Clazz_overrideMethod (c$, "canUndo", 
+function () {
+return this.alive && this.hasBeenDone;
+});
+Clazz_overrideMethod (c$, "redo", 
+function () {
+if (!this.canRedo ()) {
+throw  new javax.swing.undo.CannotRedoException ();
+}this.hasBeenDone = true;
+});
+Clazz_overrideMethod (c$, "canRedo", 
+function () {
+return this.alive && !this.hasBeenDone;
+});
+Clazz_overrideMethod (c$, "addEdit", 
+function (anEdit) {
+return false;
+}, "javax.swing.undo.UndoableEdit");
+Clazz_overrideMethod (c$, "replaceEdit", 
+function (anEdit) {
+return false;
+}, "javax.swing.undo.UndoableEdit");
+Clazz_overrideMethod (c$, "isSignificant", 
+function () {
+return true;
+});
+Clazz_overrideMethod (c$, "getPresentationName", 
+function () {
+return "";
+});
+Clazz_overrideMethod (c$, "getUndoPresentationName", 
+function () {
+var name = this.getPresentationName ();
+if (!"".equals (name)) {
+name = javax.swing.UIManager.getString ("AbstractUndoableEdit.undoText") + " " + name;
+} else {
+name = javax.swing.UIManager.getString ("AbstractUndoableEdit.undoText");
+}return name;
+});
+Clazz_overrideMethod (c$, "getRedoPresentationName", 
+function () {
+var name = this.getPresentationName ();
+if (!"".equals (name)) {
+name = javax.swing.UIManager.getString ("AbstractUndoableEdit.redoText") + " " + name;
+} else {
+name = javax.swing.UIManager.getString ("AbstractUndoableEdit.redoText");
+}return name;
+});
+Clazz_defineMethod (c$, "toString", 
+function () {
+return Clazz_superCall (this, javax.swing.undo.AbstractUndoableEdit, "toString", []) + " hasBeenDone: " + this.hasBeenDone + " alive: " + this.alive;
+});
+Clazz_defineStatics (c$,
+"UndoName", "Undo",
+"RedoName", "Redo");
+});
+Clazz_declarePackage ("javax.swing.undo");
+Clazz_declareInterface (javax.swing.undo, "UndoableEdit");
+Clazz_declarePackage ("javax.swing.undo");
+Clazz_load (["java.lang.RuntimeException"], "javax.swing.undo.CannotRedoException", null, function () {
+c$ = Clazz_declareType (javax.swing.undo, "CannotRedoException", RuntimeException);
+});
+Clazz_declarePackage ("javax.swing.undo");
+Clazz_load (["java.lang.RuntimeException"], "javax.swing.undo.CannotUndoException", null, function () {
+c$ = Clazz_declareType (javax.swing.undo, "CannotUndoException", RuntimeException);
+});
+Clazz_declarePackage ("javax.swing.undo");
+Clazz_load (["javax.swing.undo.AbstractUndoableEdit"], "javax.swing.undo.CompoundEdit", ["java.util.Vector"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.inProgress = false;
+this.edits = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.undo, "CompoundEdit", javax.swing.undo.AbstractUndoableEdit);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.undo.CompoundEdit);
+this.inProgress = true;
+this.edits =  new java.util.Vector ();
+});
+Clazz_defineMethod (c$, "undo", 
+function () {
+Clazz_superCall (this, javax.swing.undo.CompoundEdit, "undo", []);
+var i = this.edits.size ();
+while (i-- > 0) {
+var e = this.edits.elementAt (i);
+e.undo ();
+}
+});
+Clazz_defineMethod (c$, "redo", 
+function () {
+Clazz_superCall (this, javax.swing.undo.CompoundEdit, "redo", []);
+var cursor = this.edits.elements ();
+while (cursor.hasMoreElements ()) {
+(cursor.nextElement ()).redo ();
+}
+});
+Clazz_defineMethod (c$, "lastEdit", 
+function () {
+var count = this.edits.size ();
+if (count > 0) return this.edits.elementAt (count - 1);
+ else return null;
+});
+Clazz_defineMethod (c$, "die", 
+function () {
+var size = this.edits.size ();
+for (var i = size - 1; i >= 0; i--) {
+var e = this.edits.elementAt (i);
+e.die ();
+}
+Clazz_superCall (this, javax.swing.undo.CompoundEdit, "die", []);
+});
+Clazz_overrideMethod (c$, "addEdit", 
+function (anEdit) {
+if (!this.inProgress) {
+return false;
+} else {
+var last = this.lastEdit ();
+if (last == null) {
+this.edits.addElement (anEdit);
+} else if (!last.addEdit (anEdit)) {
+if (anEdit.replaceEdit (last)) {
+this.edits.removeElementAt (this.edits.size () - 1);
+}this.edits.addElement (anEdit);
+}return true;
+}}, "javax.swing.undo.UndoableEdit");
+Clazz_defineMethod (c$, "end", 
+function () {
+this.inProgress = false;
+});
+Clazz_defineMethod (c$, "canUndo", 
+function () {
+return !this.isInProgress () && Clazz_superCall (this, javax.swing.undo.CompoundEdit, "canUndo", []);
+});
+Clazz_defineMethod (c$, "canRedo", 
+function () {
+return !this.isInProgress () && Clazz_superCall (this, javax.swing.undo.CompoundEdit, "canRedo", []);
+});
+Clazz_defineMethod (c$, "isInProgress", 
+function () {
+return this.inProgress;
+});
+Clazz_overrideMethod (c$, "isSignificant", 
+function () {
+var cursor = this.edits.elements ();
+while (cursor.hasMoreElements ()) {
+if ((cursor.nextElement ()).isSignificant ()) {
+return true;
+}}
+return false;
+});
+Clazz_defineMethod (c$, "getPresentationName", 
+function () {
+var last = this.lastEdit ();
+if (last != null) {
+return last.getPresentationName ();
+} else {
+return Clazz_superCall (this, javax.swing.undo.CompoundEdit, "getPresentationName", []);
+}});
+Clazz_defineMethod (c$, "getUndoPresentationName", 
+function () {
+var last = this.lastEdit ();
+if (last != null) {
+return last.getUndoPresentationName ();
+} else {
+return Clazz_superCall (this, javax.swing.undo.CompoundEdit, "getUndoPresentationName", []);
+}});
+Clazz_defineMethod (c$, "getRedoPresentationName", 
+function () {
+var last = this.lastEdit ();
+if (last != null) {
+return last.getRedoPresentationName ();
+} else {
+return Clazz_superCall (this, javax.swing.undo.CompoundEdit, "getRedoPresentationName", []);
+}});
+Clazz_defineMethod (c$, "toString", 
+function () {
+return Clazz_superCall (this, javax.swing.undo.CompoundEdit, "toString", []) + " inProgress: " + this.inProgress + " edits: " + this.edits;
+});
+});
+Clazz_declarePackage ("javax.swing.event");
+Clazz_load (["java.util.EventObject"], "javax.swing.event.UndoableEditEvent", null, function () {
+c$ = Clazz_decorateAsClass (function () {
+this.myEdit = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.event, "UndoableEditEvent", java.util.EventObject);
+Clazz_makeConstructor (c$, 
+function (source, edit) {
+Clazz_superConstructor (this, javax.swing.event.UndoableEditEvent, [source]);
+this.myEdit = edit;
+}, "~O,javax.swing.undo.UndoableEdit");
+Clazz_defineMethod (c$, "getEdit", 
+function () {
+return this.myEdit;
+});
+});
+Clazz_declarePackage ("javax.swing.event");
+Clazz_load (["java.util.EventListener"], "javax.swing.event.UndoableEditListener", null, function () {
+Clazz_declareInterface (javax.swing.event, "UndoableEditListener", java.util.EventListener);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.Segment"], "javax.swing.text.SegmentCache", ["java.util.ArrayList"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.segments = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "SegmentCache");
+c$.getSharedInstance = Clazz_defineMethod (c$, "getSharedInstance", 
+function () {
+return javax.swing.text.SegmentCache.sharedCache;
+});
+c$.getSharedSegment = Clazz_defineMethod (c$, "getSharedSegment", 
+function () {
+return javax.swing.text.SegmentCache.getSharedInstance ().getSegment ();
+});
+c$.releaseSharedSegment = Clazz_defineMethod (c$, "releaseSharedSegment", 
+function (segment) {
+javax.swing.text.SegmentCache.getSharedInstance ().releaseSegment (segment);
+}, "javax.swing.text.Segment");
+Clazz_makeConstructor (c$, 
+function () {
+this.segments =  new java.util.ArrayList (11);
+});
+Clazz_defineMethod (c$, "getSegment", 
+function () {
+{
+var size = this.segments.size ();
+if (size > 0) {
+return this.segments.remove (size - 1);
+}}return  new javax.swing.text.SegmentCache.CachedSegment ();
+});
+Clazz_defineMethod (c$, "releaseSegment", 
+function (segment) {
+if (Clazz_instanceOf (segment, javax.swing.text.SegmentCache.CachedSegment)) {
+{
+segment.array = null;
+segment.count = 0;
+this.segments.add (segment);
+}}}, "javax.swing.text.Segment");
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.SegmentCache, "CachedSegment", javax.swing.text.Segment);
+c$ = Clazz_p0p ();
+c$.sharedCache = c$.prototype.sharedCache =  new javax.swing.text.SegmentCache ();
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["java.text.CharacterIterator"], "javax.swing.text.Segment", ["java.lang.IllegalArgumentException", "$.StringIndexOutOfBoundsException"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.array = null;
+this.offset = 0;
+this.count = 0;
+this.partialReturn = false;
+this.pos = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "Segment", null, [Cloneable, java.text.CharacterIterator, CharSequence]);
+Clazz_makeConstructor (c$, 
+function () {
+this.construct (null, 0, 0);
+});
+Clazz_makeConstructor (c$, 
+function (array, offset, count) {
+this.array = array;
+this.offset = offset;
+this.count = count;
+this.partialReturn = false;
+}, "~A,~N,~N");
+Clazz_defineMethod (c$, "setPartialReturn", 
+function (p) {
+this.partialReturn = p;
+}, "~B");
+Clazz_defineMethod (c$, "isPartialReturn", 
+function () {
+return this.partialReturn;
+});
+Clazz_overrideMethod (c$, "toString", 
+function () {
+if (this.array != null) {
+return  String.instantialize (this.array, this.offset, this.count);
+}return  String.instantialize ();
+});
+Clazz_overrideMethod (c$, "first", 
+function () {
+this.pos = this.offset;
+if (this.count != 0) {
+return this.array[this.pos];
+}return '\uffff';
+});
+Clazz_overrideMethod (c$, "last", 
+function () {
+this.pos = this.offset + this.count;
+if (this.count != 0) {
+this.pos -= 1;
+return this.array[this.pos];
+}return '\uffff';
+});
+Clazz_overrideMethod (c$, "current", 
+function () {
+if (this.count != 0 && this.pos < this.offset + this.count) {
+return this.array[this.pos];
+}return '\uffff';
+});
+Clazz_overrideMethod (c$, "next", 
+function () {
+this.pos += 1;
+var end = this.offset + this.count;
+if (this.pos >= end) {
+this.pos = end;
+return '\uffff';
+}return this.current ();
+});
+Clazz_overrideMethod (c$, "previous", 
+function () {
+if (this.pos == this.offset) {
+return '\uffff';
+}this.pos -= 1;
+return this.current ();
+});
+Clazz_overrideMethod (c$, "setIndex", 
+function (position) {
+var end = this.offset + this.count;
+if ((position < this.offset) || (position > end)) {
+throw  new IllegalArgumentException ("bad position: " + position);
+}this.pos = position;
+if ((this.pos != end) && (this.count != 0)) {
+return this.array[this.pos];
+}return '\uffff';
+}, "~N");
+Clazz_overrideMethod (c$, "getBeginIndex", 
+function () {
+return this.offset;
+});
+Clazz_overrideMethod (c$, "getEndIndex", 
+function () {
+return this.offset + this.count;
+});
+Clazz_overrideMethod (c$, "getIndex", 
+function () {
+return this.pos;
+});
+Clazz_overrideMethod (c$, "charAt", 
+function (index) {
+if (index < 0 || index >= this.count) {
+throw  new StringIndexOutOfBoundsException (index);
+}return this.array[this.offset + index];
+}, "~N");
+Clazz_overrideMethod (c$, "length", 
+function () {
+return this.count;
+});
+Clazz_overrideMethod (c$, "subSequence", 
+function (start, end) {
+if (start < 0) {
+throw  new StringIndexOutOfBoundsException (start);
+}if (end > this.count) {
+throw  new StringIndexOutOfBoundsException (end);
+}if (start > end) {
+throw  new StringIndexOutOfBoundsException (end - start);
+}var segment =  new javax.swing.text.Segment ();
+segment.array = this.array;
+segment.offset = this.offset + start;
+segment.count = end - start;
+return segment;
+}, "~N,~N");
+Clazz_overrideMethod (c$, "clone", 
+function () {
+var o;
+try {
+o = Clazz_superCall (this, javax.swing.text.Segment, "clone", []);
+} catch (cnse) {
+if (Clazz_exceptionOf (cnse, CloneNotSupportedException)) {
+o = null;
+} else {
+throw cnse;
+}
+}
+return o;
+});
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["java.lang.Error"], "javax.swing.text.StateInvariantError", null, function () {
+c$ = Clazz_declareType (javax.swing.text, "StateInvariantError", Error);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.AttributeSet"], "javax.swing.text.StyleConstants", ["java.lang.Boolean", "$.Float", "java.awt.Color"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.representation = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "StyleConstants");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return this.representation;
+});
+c$.getBidiLevel = Clazz_defineMethod (c$, "getBidiLevel", 
+function (a) {
+var o = a.getAttribute (javax.swing.text.StyleConstants.BidiLevel);
+if (o != null) {
+return o.intValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setBidiLevel = Clazz_defineMethod (c$, "setBidiLevel", 
+function (a, o) {
+a.addAttribute (javax.swing.text.StyleConstants.BidiLevel,  new Integer (o));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getComponent = Clazz_defineMethod (c$, "getComponent", 
+function (a) {
+return a.getAttribute (javax.swing.text.StyleConstants.ComponentAttribute);
+}, "javax.swing.text.AttributeSet");
+c$.setComponent = Clazz_defineMethod (c$, "setComponent", 
+function (a, c) {
+a.addAttribute ("$ename", "component");
+a.addAttribute (javax.swing.text.StyleConstants.ComponentAttribute, c);
+}, "javax.swing.text.MutableAttributeSet,java.awt.Component");
+c$.getIcon = Clazz_defineMethod (c$, "getIcon", 
+function (a) {
+return a.getAttribute (javax.swing.text.StyleConstants.IconAttribute);
+}, "javax.swing.text.AttributeSet");
+c$.setIcon = Clazz_defineMethod (c$, "setIcon", 
+function (a, c) {
+a.addAttribute ("$ename", "icon");
+a.addAttribute (javax.swing.text.StyleConstants.IconAttribute, c);
+}, "javax.swing.text.MutableAttributeSet,javax.swing.Icon");
+c$.getFontFamily = Clazz_defineMethod (c$, "getFontFamily", 
+function (a) {
+var family = a.getAttribute (javax.swing.text.StyleConstants.FontFamily);
+if (family == null) {
+family = "Monospaced";
+}return family;
+}, "javax.swing.text.AttributeSet");
+c$.setFontFamily = Clazz_defineMethod (c$, "setFontFamily", 
+function (a, fam) {
+a.addAttribute (javax.swing.text.StyleConstants.FontFamily, fam);
+}, "javax.swing.text.MutableAttributeSet,~S");
+c$.getFontSize = Clazz_defineMethod (c$, "getFontSize", 
+function (a) {
+var size = a.getAttribute (javax.swing.text.StyleConstants.FontSize);
+if (size != null) {
+return size.intValue ();
+}return 12;
+}, "javax.swing.text.AttributeSet");
+c$.setFontSize = Clazz_defineMethod (c$, "setFontSize", 
+function (a, s) {
+a.addAttribute (javax.swing.text.StyleConstants.FontSize,  new Integer (s));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.isBold = Clazz_defineMethod (c$, "isBold", 
+function (a) {
+var bold = a.getAttribute (javax.swing.text.StyleConstants.Bold);
+if (bold != null) {
+return bold.booleanValue ();
+}return false;
+}, "javax.swing.text.AttributeSet");
+c$.setBold = Clazz_defineMethod (c$, "setBold", 
+function (a, b) {
+a.addAttribute (javax.swing.text.StyleConstants.Bold, Boolean.$valueOf (b));
+}, "javax.swing.text.MutableAttributeSet,~B");
+c$.isItalic = Clazz_defineMethod (c$, "isItalic", 
+function (a) {
+var italic = a.getAttribute (javax.swing.text.StyleConstants.Italic);
+if (italic != null) {
+return italic.booleanValue ();
+}return false;
+}, "javax.swing.text.AttributeSet");
+c$.setItalic = Clazz_defineMethod (c$, "setItalic", 
+function (a, b) {
+a.addAttribute (javax.swing.text.StyleConstants.Italic, Boolean.$valueOf (b));
+}, "javax.swing.text.MutableAttributeSet,~B");
+c$.isUnderline = Clazz_defineMethod (c$, "isUnderline", 
+function (a) {
+var underline = a.getAttribute (javax.swing.text.StyleConstants.Underline);
+if (underline != null) {
+return underline.booleanValue ();
+}return false;
+}, "javax.swing.text.AttributeSet");
+c$.isStrikeThrough = Clazz_defineMethod (c$, "isStrikeThrough", 
+function (a) {
+var strike = a.getAttribute (javax.swing.text.StyleConstants.StrikeThrough);
+if (strike != null) {
+return strike.booleanValue ();
+}return false;
+}, "javax.swing.text.AttributeSet");
+c$.isSuperscript = Clazz_defineMethod (c$, "isSuperscript", 
+function (a) {
+var superscript = a.getAttribute (javax.swing.text.StyleConstants.Superscript);
+if (superscript != null) {
+return superscript.booleanValue ();
+}return false;
+}, "javax.swing.text.AttributeSet");
+c$.isSubscript = Clazz_defineMethod (c$, "isSubscript", 
+function (a) {
+var subscript = a.getAttribute (javax.swing.text.StyleConstants.Subscript);
+if (subscript != null) {
+return subscript.booleanValue ();
+}return false;
+}, "javax.swing.text.AttributeSet");
+c$.setUnderline = Clazz_defineMethod (c$, "setUnderline", 
+function (a, b) {
+a.addAttribute (javax.swing.text.StyleConstants.Underline, Boolean.$valueOf (b));
+}, "javax.swing.text.MutableAttributeSet,~B");
+c$.setStrikeThrough = Clazz_defineMethod (c$, "setStrikeThrough", 
+function (a, b) {
+a.addAttribute (javax.swing.text.StyleConstants.StrikeThrough, Boolean.$valueOf (b));
+}, "javax.swing.text.MutableAttributeSet,~B");
+c$.setSuperscript = Clazz_defineMethod (c$, "setSuperscript", 
+function (a, b) {
+a.addAttribute (javax.swing.text.StyleConstants.Superscript, Boolean.$valueOf (b));
+}, "javax.swing.text.MutableAttributeSet,~B");
+c$.setSubscript = Clazz_defineMethod (c$, "setSubscript", 
+function (a, b) {
+a.addAttribute (javax.swing.text.StyleConstants.Subscript, Boolean.$valueOf (b));
+}, "javax.swing.text.MutableAttributeSet,~B");
+c$.getForeground = Clazz_defineMethod (c$, "getForeground", 
+function (a) {
+var fg = a.getAttribute (javax.swing.text.StyleConstants.Foreground);
+if (fg == null) {
+fg = java.awt.Color.black;
+}return fg;
+}, "javax.swing.text.AttributeSet");
+c$.setForeground = Clazz_defineMethod (c$, "setForeground", 
+function (a, fg) {
+a.addAttribute (javax.swing.text.StyleConstants.Foreground, fg);
+}, "javax.swing.text.MutableAttributeSet,java.awt.Color");
+c$.getBackground = Clazz_defineMethod (c$, "getBackground", 
+function (a) {
+var fg = a.getAttribute (javax.swing.text.StyleConstants.Background);
+if (fg == null) {
+fg = java.awt.Color.black;
+}return fg;
+}, "javax.swing.text.AttributeSet");
+c$.setBackground = Clazz_defineMethod (c$, "setBackground", 
+function (a, fg) {
+a.addAttribute (javax.swing.text.StyleConstants.Background, fg);
+}, "javax.swing.text.MutableAttributeSet,java.awt.Color");
+c$.getFirstLineIndent = Clazz_defineMethod (c$, "getFirstLineIndent", 
+function (a) {
+var indent = a.getAttribute (javax.swing.text.StyleConstants.FirstLineIndent);
+if (indent != null) {
+return indent.floatValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setFirstLineIndent = Clazz_defineMethod (c$, "setFirstLineIndent", 
+function (a, i) {
+a.addAttribute (javax.swing.text.StyleConstants.FirstLineIndent,  new Float (i));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getRightIndent = Clazz_defineMethod (c$, "getRightIndent", 
+function (a) {
+var indent = a.getAttribute (javax.swing.text.StyleConstants.RightIndent);
+if (indent != null) {
+return indent.floatValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setRightIndent = Clazz_defineMethod (c$, "setRightIndent", 
+function (a, i) {
+a.addAttribute (javax.swing.text.StyleConstants.RightIndent,  new Float (i));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getLeftIndent = Clazz_defineMethod (c$, "getLeftIndent", 
+function (a) {
+var indent = a.getAttribute (javax.swing.text.StyleConstants.LeftIndent);
+if (indent != null) {
+return indent.floatValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setLeftIndent = Clazz_defineMethod (c$, "setLeftIndent", 
+function (a, i) {
+a.addAttribute (javax.swing.text.StyleConstants.LeftIndent,  new Float (i));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getLineSpacing = Clazz_defineMethod (c$, "getLineSpacing", 
+function (a) {
+var space = a.getAttribute (javax.swing.text.StyleConstants.LineSpacing);
+if (space != null) {
+return space.floatValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setLineSpacing = Clazz_defineMethod (c$, "setLineSpacing", 
+function (a, i) {
+a.addAttribute (javax.swing.text.StyleConstants.LineSpacing,  new Float (i));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getSpaceAbove = Clazz_defineMethod (c$, "getSpaceAbove", 
+function (a) {
+var space = a.getAttribute (javax.swing.text.StyleConstants.SpaceAbove);
+if (space != null) {
+return space.floatValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setSpaceAbove = Clazz_defineMethod (c$, "setSpaceAbove", 
+function (a, i) {
+a.addAttribute (javax.swing.text.StyleConstants.SpaceAbove,  new Float (i));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getSpaceBelow = Clazz_defineMethod (c$, "getSpaceBelow", 
+function (a) {
+var space = a.getAttribute (javax.swing.text.StyleConstants.SpaceBelow);
+if (space != null) {
+return space.floatValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setSpaceBelow = Clazz_defineMethod (c$, "setSpaceBelow", 
+function (a, i) {
+a.addAttribute (javax.swing.text.StyleConstants.SpaceBelow,  new Float (i));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getAlignment = Clazz_defineMethod (c$, "getAlignment", 
+function (a) {
+var align = a.getAttribute (javax.swing.text.StyleConstants.Alignment);
+if (align != null) {
+return align.intValue ();
+}return 0;
+}, "javax.swing.text.AttributeSet");
+c$.setAlignment = Clazz_defineMethod (c$, "setAlignment", 
+function (a, align) {
+a.addAttribute (javax.swing.text.StyleConstants.Alignment,  new Integer (align));
+}, "javax.swing.text.MutableAttributeSet,~N");
+c$.getTabSet = Clazz_defineMethod (c$, "getTabSet", 
+function (a) {
+var tabs = a.getAttribute (javax.swing.text.StyleConstants.TabSet);
+return tabs;
+}, "javax.swing.text.AttributeSet");
+c$.setTabSet = Clazz_defineMethod (c$, "setTabSet", 
+function (a, tabs) {
+a.addAttribute (javax.swing.text.StyleConstants.TabSet, tabs);
+}, "javax.swing.text.MutableAttributeSet,javax.swing.text.TabSet");
+Clazz_makeConstructor (c$, 
+function (representation) {
+this.representation = representation;
+}, "~S");
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.StyleConstants, "ParagraphConstants", javax.swing.text.StyleConstants, javax.swing.text.AttributeSet.ParagraphAttribute);
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.StyleConstants, "CharacterConstants", javax.swing.text.StyleConstants, javax.swing.text.AttributeSet.CharacterAttribute);
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.StyleConstants, "ColorConstants", javax.swing.text.StyleConstants, [javax.swing.text.AttributeSet.ColorAttribute, javax.swing.text.AttributeSet.CharacterAttribute]);
+c$ = Clazz_p0p ();
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.StyleConstants, "FontConstants", javax.swing.text.StyleConstants, [javax.swing.text.AttributeSet.FontAttribute, javax.swing.text.AttributeSet.CharacterAttribute]);
+c$ = Clazz_p0p ();
+Clazz_defineStatics (c$,
+"ComponentElementName", "component",
+"IconElementName", "icon");
+c$.NameAttribute = c$.prototype.NameAttribute =  new javax.swing.text.StyleConstants ("name");
+c$.ResolveAttribute = c$.prototype.ResolveAttribute =  new javax.swing.text.StyleConstants ("resolver");
+c$.ModelAttribute = c$.prototype.ModelAttribute =  new javax.swing.text.StyleConstants ("model");
+c$.BidiLevel = c$.prototype.BidiLevel =  new javax.swing.text.StyleConstants.CharacterConstants ("bidiLevel");
+c$.FontFamily = c$.prototype.FontFamily =  new javax.swing.text.StyleConstants.FontConstants ("family");
+c$.Family = c$.prototype.Family = javax.swing.text.StyleConstants.FontFamily;
+c$.FontSize = c$.prototype.FontSize =  new javax.swing.text.StyleConstants.FontConstants ("size");
+c$.Size = c$.prototype.Size = javax.swing.text.StyleConstants.FontSize;
+c$.Bold = c$.prototype.Bold =  new javax.swing.text.StyleConstants.FontConstants ("bold");
+c$.Italic = c$.prototype.Italic =  new javax.swing.text.StyleConstants.FontConstants ("italic");
+c$.Underline = c$.prototype.Underline =  new javax.swing.text.StyleConstants.CharacterConstants ("underline");
+c$.StrikeThrough = c$.prototype.StrikeThrough =  new javax.swing.text.StyleConstants.CharacterConstants ("strikethrough");
+c$.Superscript = c$.prototype.Superscript =  new javax.swing.text.StyleConstants.CharacterConstants ("superscript");
+c$.Subscript = c$.prototype.Subscript =  new javax.swing.text.StyleConstants.CharacterConstants ("subscript");
+c$.Foreground = c$.prototype.Foreground =  new javax.swing.text.StyleConstants.ColorConstants ("foreground");
+c$.Background = c$.prototype.Background =  new javax.swing.text.StyleConstants.ColorConstants ("background");
+c$.ComponentAttribute = c$.prototype.ComponentAttribute =  new javax.swing.text.StyleConstants.CharacterConstants ("component");
+c$.IconAttribute = c$.prototype.IconAttribute =  new javax.swing.text.StyleConstants.CharacterConstants ("icon");
+c$.ComposedTextAttribute = c$.prototype.ComposedTextAttribute =  new javax.swing.text.StyleConstants ("composed text");
+c$.FirstLineIndent = c$.prototype.FirstLineIndent =  new javax.swing.text.StyleConstants.ParagraphConstants ("FirstLineIndent");
+c$.LeftIndent = c$.prototype.LeftIndent =  new javax.swing.text.StyleConstants.ParagraphConstants ("LeftIndent");
+c$.RightIndent = c$.prototype.RightIndent =  new javax.swing.text.StyleConstants.ParagraphConstants ("RightIndent");
+c$.LineSpacing = c$.prototype.LineSpacing =  new javax.swing.text.StyleConstants.ParagraphConstants ("LineSpacing");
+c$.SpaceAbove = c$.prototype.SpaceAbove =  new javax.swing.text.StyleConstants.ParagraphConstants ("SpaceAbove");
+c$.SpaceBelow = c$.prototype.SpaceBelow =  new javax.swing.text.StyleConstants.ParagraphConstants ("SpaceBelow");
+c$.Alignment = c$.prototype.Alignment =  new javax.swing.text.StyleConstants.ParagraphConstants ("Alignment");
+c$.TabSet = c$.prototype.TabSet =  new javax.swing.text.StyleConstants.ParagraphConstants ("TabSet");
+c$.Orientation = c$.prototype.Orientation =  new javax.swing.text.StyleConstants.ParagraphConstants ("Orientation");
+Clazz_defineStatics (c$,
+"ALIGN_LEFT", 0,
+"ALIGN_CENTER", 1,
+"ALIGN_RIGHT", 2,
+"ALIGN_JUSTIFIED", 3);
+c$.keys = c$.prototype.keys =  Clazz_newArray (-1, [javax.swing.text.StyleConstants.NameAttribute, javax.swing.text.StyleConstants.ResolveAttribute, javax.swing.text.StyleConstants.BidiLevel, javax.swing.text.StyleConstants.FontFamily, javax.swing.text.StyleConstants.FontSize, javax.swing.text.StyleConstants.Bold, javax.swing.text.StyleConstants.Italic, javax.swing.text.StyleConstants.Underline, javax.swing.text.StyleConstants.StrikeThrough, javax.swing.text.StyleConstants.Superscript, javax.swing.text.StyleConstants.Subscript, javax.swing.text.StyleConstants.Foreground, javax.swing.text.StyleConstants.Background, javax.swing.text.StyleConstants.ComponentAttribute, javax.swing.text.StyleConstants.IconAttribute, javax.swing.text.StyleConstants.FirstLineIndent, javax.swing.text.StyleConstants.LeftIndent, javax.swing.text.StyleConstants.RightIndent, javax.swing.text.StyleConstants.LineSpacing, javax.swing.text.StyleConstants.SpaceAbove, javax.swing.text.StyleConstants.SpaceBelow, javax.swing.text.StyleConstants.Alignment, javax.swing.text.StyleConstants.TabSet, javax.swing.text.StyleConstants.Orientation, javax.swing.text.StyleConstants.ModelAttribute, javax.swing.text.StyleConstants.ComposedTextAttribute]);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["java.util.Enumeration", "javax.swing.text.AbstractDocument", "$.AttributeSet", "$.Style", "java.util.Collections", "$.HashMap", "$.Hashtable", "$.Vector", "javax.swing.event.EventListenerList", "javax.swing.text.SimpleAttributeSet"], "javax.swing.text.StyleContext", ["java.util.NoSuchElementException", "java.awt.Font", "$.Toolkit", "javax.swing.SwingUtilities", "javax.swing.event.ChangeEvent", "$.ChangeListener", "javax.swing.text.MutableAttributeSet", "$.StyleConstants"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.styles = null;
+this.fontSearch = null;
+this.fontTable = null;
+this.attributesPool = null;
+this.search = null;
+if (!Clazz_isClassDefined ("javax.swing.text.StyleContext.SmallAttributeSet")) {
+javax.swing.text.StyleContext.$StyleContext$SmallAttributeSet$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.StyleContext.KeyEnumeration")) {
+javax.swing.text.StyleContext.$StyleContext$KeyEnumeration$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.StyleContext.KeyBuilder")) {
+javax.swing.text.StyleContext.$StyleContext$KeyBuilder$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.StyleContext.NamedStyle")) {
+javax.swing.text.StyleContext.$StyleContext$NamedStyle$ ();
+}
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "StyleContext", null, javax.swing.text.AbstractDocument.AttributeContext);
+Clazz_prepareFields (c$, function () {
+this.fontSearch =  new javax.swing.text.StyleContext.FontKey (null, 0, 0);
+this.fontTable =  new java.util.Hashtable ();
+this.attributesPool = java.util.Collections.synchronizedMap ( new java.util.HashMap ());
+this.search =  new javax.swing.text.SimpleAttributeSet ();
+});
+c$.getDefaultStyleContext = Clazz_defineMethod (c$, "getDefaultStyleContext", 
+function () {
+if (javax.swing.text.StyleContext.defaultContext == null) {
+javax.swing.text.StyleContext.defaultContext =  new javax.swing.text.StyleContext ();
+}return javax.swing.text.StyleContext.defaultContext;
+});
+Clazz_makeConstructor (c$, 
+function () {
+this.styles = Clazz_innerTypeInstance (javax.swing.text.StyleContext.NamedStyle, this, null, null);
+this.addStyle ("default", null);
+});
+Clazz_defineMethod (c$, "addStyle", 
+function (nm, parent) {
+var style = Clazz_innerTypeInstance (javax.swing.text.StyleContext.NamedStyle, this, null, nm, parent);
+if (nm != null) {
+this.styles.addAttribute (nm, style);
+}return style;
+}, "~S,javax.swing.text.Style");
+Clazz_defineMethod (c$, "removeStyle", 
+function (nm) {
+this.styles.removeAttribute (nm);
+}, "~S");
+Clazz_defineMethod (c$, "getStyle", 
+function (nm) {
+return this.styles.getAttribute (nm);
+}, "~S");
+Clazz_defineMethod (c$, "getStyleNames", 
+function () {
+return this.styles.getAttributeNames ();
+});
+Clazz_defineMethod (c$, "addChangeListener", 
+function (l) {
+this.styles.addChangeListener (l);
+}, "javax.swing.event.ChangeListener");
+Clazz_defineMethod (c$, "removeChangeListener", 
+function (l) {
+this.styles.removeChangeListener (l);
+}, "javax.swing.event.ChangeListener");
+Clazz_defineMethod (c$, "getChangeListeners", 
+function () {
+return (this.styles).getChangeListeners ();
+});
+Clazz_defineMethod (c$, "getFont", 
+function (attr) {
+var style = 0;
+if (javax.swing.text.StyleConstants.isBold (attr)) {
+style |= 1;
+}if (javax.swing.text.StyleConstants.isItalic (attr)) {
+style |= 2;
+}var family = javax.swing.text.StyleConstants.getFontFamily (attr);
+var size = javax.swing.text.StyleConstants.getFontSize (attr);
+if (javax.swing.text.StyleConstants.isSuperscript (attr) || javax.swing.text.StyleConstants.isSubscript (attr)) {
+size -= 2;
+}return this.getFont (family, style, size);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getForeground", 
+function (attr) {
+return javax.swing.text.StyleConstants.getForeground (attr);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getBackground", 
+function (attr) {
+return javax.swing.text.StyleConstants.getBackground (attr);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getFont", 
+function (family, style, size) {
+this.fontSearch.setValue (family, style, size);
+var f = this.fontTable.get (this.fontSearch);
+if (f == null) {
+var defaultStyle = this.getStyle ("default");
+if (defaultStyle != null) {
+var FONT_ATTRIBUTE_KEY = "FONT_ATTRIBUTE_KEY";
+var defaultFont = defaultStyle.getAttribute ("FONT_ATTRIBUTE_KEY");
+if (defaultFont != null && defaultFont.getFamily ().equalsIgnoreCase (family)) {
+f = defaultFont.deriveFont (style, size);
+}}if (f == null) {
+f =  new java.awt.Font (family, style, size);
+}var key =  new javax.swing.text.StyleContext.FontKey (family, style, size);
+this.fontTable.put (key, f);
+}return f;
+}, "~S,~N,~N");
+Clazz_defineMethod (c$, "getFontMetrics", 
+function (f) {
+return java.awt.Toolkit.getDefaultToolkit ().getFontMetrics (f);
+}, "java.awt.Font");
+Clazz_overrideMethod (c$, "addAttribute", 
+function (old, name, value) {
+if ((old.getAttributeCount () + 1) <= this.getCompressionThreshold ()) {
+this.search.removeAttributes (this.search);
+this.search.addAttributes (old);
+this.search.addAttribute (name, value);
+this.reclaim (old);
+return this.getImmutableUniqueSet ();
+}var ma = this.getMutableAttributeSet (old);
+ma.addAttribute (name, value);
+return ma;
+}, "javax.swing.text.AttributeSet,~O,~O");
+Clazz_overrideMethod (c$, "addAttributes", 
+function (old, attr) {
+if ((old.getAttributeCount () + attr.getAttributeCount ()) <= this.getCompressionThreshold ()) {
+this.search.removeAttributes (this.search);
+this.search.addAttributes (old);
+this.search.addAttributes (attr);
+this.reclaim (old);
+return this.getImmutableUniqueSet ();
+}var ma = this.getMutableAttributeSet (old);
+ma.addAttributes (attr);
+return ma;
+}, "javax.swing.text.AttributeSet,javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "removeAttribute", 
+function (old, name) {
+if ((old.getAttributeCount () - 1) <= this.getCompressionThreshold ()) {
+this.search.removeAttributes (this.search);
+this.search.addAttributes (old);
+this.search.removeAttribute (name);
+this.reclaim (old);
+return this.getImmutableUniqueSet ();
+}var ma = this.getMutableAttributeSet (old);
+ma.removeAttribute (name);
+return ma;
+}, "javax.swing.text.AttributeSet,~O");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (old, names) {
+if (old.getAttributeCount () <= this.getCompressionThreshold ()) {
+this.search.removeAttributes (this.search);
+this.search.addAttributes (old);
+this.search.removeAttributes (names);
+this.reclaim (old);
+return this.getImmutableUniqueSet ();
+}var ma = this.getMutableAttributeSet (old);
+ma.removeAttributes (names);
+return ma;
+}, "javax.swing.text.AttributeSet,java.util.Enumeration");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (old, attrs) {
+if (old.getAttributeCount () <= this.getCompressionThreshold ()) {
+this.search.removeAttributes (this.search);
+this.search.addAttributes (old);
+this.search.removeAttributes (attrs);
+this.reclaim (old);
+return this.getImmutableUniqueSet ();
+}var ma = this.getMutableAttributeSet (old);
+ma.removeAttributes (attrs);
+return ma;
+}, "javax.swing.text.AttributeSet,javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "getEmptySet", 
+function () {
+return javax.swing.text.SimpleAttributeSet.EMPTY;
+});
+Clazz_overrideMethod (c$, "reclaim", 
+function (a) {
+if (javax.swing.SwingUtilities.isEventDispatchThread ()) {
+this.attributesPool.size ();
+}}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getCompressionThreshold", 
+function () {
+return 9;
+});
+Clazz_defineMethod (c$, "createSmallAttributeSet", 
+function (a) {
+return Clazz_innerTypeInstance (javax.swing.text.StyleContext.SmallAttributeSet, this, null, a);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "createLargeAttributeSet", 
+function (a) {
+return  new javax.swing.text.SimpleAttributeSet (a);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "removeUnusedSets", 
+function () {
+this.attributesPool.size ();
+});
+Clazz_defineMethod (c$, "getImmutableUniqueSet", 
+function () {
+return null;
+});
+Clazz_defineMethod (c$, "getMutableAttributeSet", 
+function (a) {
+if (Clazz_instanceOf (a, javax.swing.text.MutableAttributeSet) && a !== javax.swing.text.SimpleAttributeSet.EMPTY) {
+return a;
+}return this.createLargeAttributeSet (a);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "toString", 
+function () {
+this.removeUnusedSets ();
+var s = "";
+var iterator = this.attributesPool.keySet ().iterator ();
+while (iterator.hasNext ()) {
+var set = iterator.next ();
+s = s + set + "\n";
+}
+return s;
+});
+c$.registerStaticAttributeKey = Clazz_defineMethod (c$, "registerStaticAttributeKey", 
+function (key) {
+var ioFmt = key.getClass ().getName () + "." + key.toString ();
+if (javax.swing.text.StyleContext.freezeKeyMap == null) {
+javax.swing.text.StyleContext.freezeKeyMap =  new java.util.Hashtable ();
+javax.swing.text.StyleContext.thawKeyMap =  new java.util.Hashtable ();
+}javax.swing.text.StyleContext.freezeKeyMap.put (key, ioFmt);
+javax.swing.text.StyleContext.thawKeyMap.put (ioFmt, key);
+}, "~O");
+c$.getStaticAttribute = Clazz_defineMethod (c$, "getStaticAttribute", 
+function (key) {
+if (javax.swing.text.StyleContext.thawKeyMap == null || key == null) {
+return null;
+}return javax.swing.text.StyleContext.thawKeyMap.get (key);
+}, "~O");
+c$.getStaticAttributeKey = Clazz_defineMethod (c$, "getStaticAttributeKey", 
+function (key) {
+return key.getClass ().getName () + "." + key.toString ();
+}, "~O");
+c$.$StyleContext$SmallAttributeSet$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.attributes = null;
+this.resolveParent = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.StyleContext, "SmallAttributeSet", null, javax.swing.text.AttributeSet);
+Clazz_makeConstructor (c$, 
+function (a) {
+this.attributes = a;
+this.updateResolveParent ();
+}, "~A");
+Clazz_makeConstructor (c$, 
+function (a) {
+var b = a.getAttributeCount ();
+var c =  new Array (2 * b);
+var d = a.getAttributeNames ();
+var e = 0;
+while (d.hasMoreElements ()) {
+c[e] = d.nextElement ();
+c[e + 1] = a.getAttribute (c[e]);
+e += 2;
+}
+this.attributes = c;
+this.updateResolveParent ();
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "updateResolveParent", 
+ function () {
+this.resolveParent = null;
+var a = this.attributes;
+for (var b = 0; b < a.length; b += 2) {
+if (a[b] === javax.swing.text.StyleConstants.ResolveAttribute) {
+this.resolveParent = a[b + 1];
+break;
+}}
+});
+Clazz_defineMethod (c$, "getLocalAttribute", 
+function (a) {
+if (a === javax.swing.text.StyleConstants.ResolveAttribute) {
+return this.resolveParent;
+}var b = this.attributes;
+for (var c = 0; c < b.length; c += 2) {
+if (a.equals (b[c])) {
+return b[c + 1];
+}}
+return null;
+}, "~O");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+var a = "{";
+var b = this.attributes;
+for (var c = 0; c < b.length; c += 2) {
+if (Clazz_instanceOf (b[c + 1], javax.swing.text.AttributeSet)) {
+a = a + b[c] + "=" + "AttributeSet" + ",";
+} else {
+a = a + b[c] + "=" + b[c + 1] + ",";
+}}
+a = a + "}";
+return a;
+});
+Clazz_defineMethod (c$, "hashCode", 
+function () {
+var a = 0;
+var b = this.attributes;
+for (var c = 1; c < b.length; c += 2) {
+a ^= b[c].hashCode ();
+}
+return a;
+});
+Clazz_defineMethod (c$, "equals", 
+function (a) {
+if (Clazz_instanceOf (a, javax.swing.text.AttributeSet)) {
+var b = a;
+return ((this.getAttributeCount () == b.getAttributeCount ()) && this.containsAttributes (b));
+}return false;
+}, "~O");
+Clazz_overrideMethod (c$, "clone", 
+function () {
+return this;
+});
+Clazz_defineMethod (c$, "getAttributeCount", 
+function () {
+return Clazz_doubleToInt (this.attributes.length / 2);
+});
+Clazz_overrideMethod (c$, "isDefined", 
+function (a) {
+var b = this.attributes;
+var c = b.length;
+for (var d = 0; d < c; d += 2) {
+if (a.equals (b[d])) {
+return true;
+}}
+return false;
+}, "~O");
+Clazz_overrideMethod (c$, "isEqual", 
+function (a) {
+if (Clazz_instanceOf (a, javax.swing.text.StyleContext.SmallAttributeSet)) {
+return a === this;
+}return ((this.getAttributeCount () == a.getAttributeCount ()) && this.containsAttributes (a));
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "copyAttributes", 
+function () {
+return this;
+});
+Clazz_defineMethod (c$, "getAttribute", 
+function (a) {
+var b = this.getLocalAttribute (a);
+if (b == null) {
+var c = this.getResolveParent ();
+if (c != null) b = c.getAttribute (a);
+}return b;
+}, "~O");
+Clazz_defineMethod (c$, "getAttributeNames", 
+function () {
+return Clazz_innerTypeInstance (javax.swing.text.StyleContext.KeyEnumeration, this, null, this.attributes);
+});
+Clazz_overrideMethod (c$, "containsAttribute", 
+function (a, b) {
+return b.equals (this.getAttribute (a));
+}, "~O,~O");
+Clazz_overrideMethod (c$, "containsAttributes", 
+function (a) {
+var b = true;
+var c = a.getAttributeNames ();
+while (b && c.hasMoreElements ()) {
+var d = c.nextElement ();
+b = a.getAttribute (d).equals (this.getAttribute (d));
+}
+return b;
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "getResolveParent", 
+function () {
+return this.resolveParent;
+});
+c$ = Clazz_p0p ();
+};
+c$.$StyleContext$KeyEnumeration$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.attr = null;
+this.i = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.StyleContext, "KeyEnumeration", null, java.util.Enumeration);
+Clazz_makeConstructor (c$, 
+function (a) {
+this.attr = a;
+this.i = 0;
+}, "~A");
+Clazz_overrideMethod (c$, "hasMoreElements", 
+function () {
+return this.i < this.attr.length;
+});
+Clazz_overrideMethod (c$, "nextElement", 
+function () {
+if (this.i < this.attr.length) {
+var a = this.attr[this.i];
+this.i += 2;
+return a;
+}throw  new java.util.NoSuchElementException ();
+});
+c$ = Clazz_p0p ();
+};
+c$.$StyleContext$KeyBuilder$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.keys = null;
+this.data = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.StyleContext, "KeyBuilder");
+Clazz_prepareFields (c$, function () {
+this.keys =  new java.util.Vector ();
+this.data =  new java.util.Vector ();
+});
+Clazz_defineMethod (c$, "initialize", 
+function (a) {
+if (Clazz_instanceOf (a, javax.swing.text.StyleContext.SmallAttributeSet)) {
+this.initialize ((a).attributes);
+} else {
+this.keys.removeAllElements ();
+this.data.removeAllElements ();
+var b = a.getAttributeNames ();
+while (b.hasMoreElements ()) {
+var c = b.nextElement ();
+this.addAttribute (c, a.getAttribute (c));
+}
+}}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "initialize", 
+ function (a) {
+this.keys.removeAllElements ();
+this.data.removeAllElements ();
+var b = a.length;
+for (var c = 0; c < b; c += 2) {
+this.keys.addElement (a[c]);
+this.data.addElement (a[c + 1]);
+}
+}, "~A");
+Clazz_defineMethod (c$, "createTable", 
+function () {
+var a = this.keys.size ();
+var b =  new Array (2 * a);
+for (var c = 0; c < a; c++) {
+var d = 2 * c;
+b[d] = this.keys.elementAt (c);
+b[d + 1] = this.data.elementAt (c);
+}
+return b;
+});
+Clazz_defineMethod (c$, "getCount", 
+function () {
+return this.keys.size ();
+});
+Clazz_defineMethod (c$, "addAttribute", 
+function (a, b) {
+this.keys.addElement (a);
+this.data.addElement (b);
+}, "~O,~O");
+Clazz_defineMethod (c$, "addAttributes", 
+function (a) {
+if (Clazz_instanceOf (a, javax.swing.text.StyleContext.SmallAttributeSet)) {
+var b = (a).attributes;
+var c = b.length;
+for (var d = 0; d < c; d += 2) {
+this.addAttribute (b[d], b[d + 1]);
+}
+} else {
+var b = a.getAttributeNames ();
+while (b.hasMoreElements ()) {
+var c = b.nextElement ();
+this.addAttribute (c, a.getAttribute (c));
+}
+}}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "removeAttribute", 
+function (a) {
+var b = this.keys.size ();
+for (var c = 0; c < b; c++) {
+if (this.keys.elementAt (c).equals (a)) {
+this.keys.removeElementAt (c);
+this.data.removeElementAt (c);
+return;
+}}
+}, "~O");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (a) {
+while (a.hasMoreElements ()) {
+var b = a.nextElement ();
+this.removeAttribute (b);
+}
+}, "java.util.Enumeration");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (a) {
+var b = a.getAttributeNames ();
+while (b.hasMoreElements ()) {
+var c = b.nextElement ();
+var d = a.getAttribute (c);
+this.removeSearchAttribute (c, d);
+}
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "removeSearchAttribute", 
+ function (a, b) {
+var c = this.keys.size ();
+for (var d = 0; d < c; d++) {
+if (this.keys.elementAt (d).equals (a)) {
+if (this.data.elementAt (d).equals (b)) {
+this.keys.removeElementAt (d);
+this.data.removeElementAt (d);
+}return;
+}}
+}, "~O,~O");
+c$ = Clazz_p0p ();
+};
+c$.$StyleContext$NamedStyle$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.listenerList = null;
+this.changeEvent = null;
+this.attributes = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.StyleContext, "NamedStyle", null, javax.swing.text.Style);
+Clazz_prepareFields (c$, function () {
+this.listenerList =  new javax.swing.event.EventListenerList ();
+});
+Clazz_makeConstructor (c$, 
+function (a, b) {
+this.attributes = this.b$["javax.swing.text.StyleContext"].getEmptySet ();
+if (a != null) {
+this.setName (a);
+}if (b != null) {
+this.setResolveParent (b);
+}}, "~S,javax.swing.text.Style");
+Clazz_makeConstructor (c$, 
+function (a) {
+this.construct (null, a);
+}, "javax.swing.text.Style");
+Clazz_makeConstructor (c$, 
+function () {
+this.attributes = this.b$["javax.swing.text.StyleContext"].getEmptySet ();
+});
+Clazz_defineMethod (c$, "toString", 
+function () {
+return "NamedStyle:" + this.getName () + " " + this.attributes;
+});
+Clazz_overrideMethod (c$, "getName", 
+function () {
+if (this.isDefined (javax.swing.text.StyleConstants.NameAttribute)) {
+return this.getAttribute (javax.swing.text.StyleConstants.NameAttribute).toString ();
+}return null;
+});
+Clazz_defineMethod (c$, "setName", 
+function (a) {
+if (a != null) {
+this.addAttribute (javax.swing.text.StyleConstants.NameAttribute, a);
+}}, "~S");
+Clazz_overrideMethod (c$, "addChangeListener", 
+function (a) {
+this.listenerList.add (javax.swing.event.ChangeListener, a);
+}, "javax.swing.event.ChangeListener");
+Clazz_overrideMethod (c$, "removeChangeListener", 
+function (a) {
+this.listenerList.remove (javax.swing.event.ChangeListener, a);
+}, "javax.swing.event.ChangeListener");
+Clazz_defineMethod (c$, "getChangeListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.ChangeListener);
+});
+Clazz_defineMethod (c$, "fireStateChanged", 
+function () {
+var a = this.listenerList.getListenerList ();
+for (var b = a.length - 2; b >= 0; b -= 2) {
+if (a[b] === javax.swing.event.ChangeListener) {
+if (this.changeEvent == null) this.changeEvent =  new javax.swing.event.ChangeEvent (this);
+(a[b + 1]).stateChanged (this.changeEvent);
+}}
+});
+Clazz_defineMethod (c$, "getListeners", 
+function (a) {
+return this.listenerList.getListeners (a);
+}, "Class");
+Clazz_defineMethod (c$, "getAttributeCount", 
+function () {
+return this.attributes.getAttributeCount ();
+});
+Clazz_defineMethod (c$, "isDefined", 
+function (a) {
+return this.attributes.isDefined (a);
+}, "~O");
+Clazz_defineMethod (c$, "isEqual", 
+function (a) {
+return this.attributes.isEqual (a);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "copyAttributes", 
+function () {
+var a = Clazz_innerTypeInstance (javax.swing.text.StyleContext.NamedStyle, this, null);
+a.attributes = this.attributes.copyAttributes ();
+return a;
+});
+Clazz_defineMethod (c$, "getAttribute", 
+function (a) {
+return this.attributes.getAttribute (a);
+}, "~O");
+Clazz_defineMethod (c$, "getAttributeNames", 
+function () {
+return this.attributes.getAttributeNames ();
+});
+Clazz_defineMethod (c$, "containsAttribute", 
+function (a, b) {
+return this.attributes.containsAttribute (a, b);
+}, "~O,~O");
+Clazz_defineMethod (c$, "containsAttributes", 
+function (a) {
+return this.attributes.containsAttributes (a);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "getResolveParent", 
+function () {
+return this.attributes.getResolveParent ();
+});
+Clazz_overrideMethod (c$, "addAttribute", 
+function (a, b) {
+var c = this.b$["javax.swing.text.StyleContext"];
+this.attributes = c.addAttribute (this.attributes, a, b);
+this.fireStateChanged ();
+}, "~O,~O");
+Clazz_overrideMethod (c$, "addAttributes", 
+function (a) {
+var b = this.b$["javax.swing.text.StyleContext"];
+this.attributes = b.addAttributes (this.attributes, a);
+this.fireStateChanged ();
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "removeAttribute", 
+function (a) {
+var b = this.b$["javax.swing.text.StyleContext"];
+this.attributes = b.removeAttribute (this.attributes, a);
+this.fireStateChanged ();
+}, "~O");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (a) {
+var b = this.b$["javax.swing.text.StyleContext"];
+this.attributes = b.removeAttributes (this.attributes, a);
+this.fireStateChanged ();
+}, "java.util.Enumeration");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (a) {
+var b = this.b$["javax.swing.text.StyleContext"];
+if (a === this) {
+this.attributes = b.getEmptySet ();
+} else {
+this.attributes = b.removeAttributes (this.attributes, a);
+}this.fireStateChanged ();
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "setResolveParent", 
+function (a) {
+if (a != null) {
+this.addAttribute (javax.swing.text.StyleConstants.ResolveAttribute, a);
+} else {
+this.removeAttribute (javax.swing.text.StyleConstants.ResolveAttribute);
+}}, "javax.swing.text.AttributeSet");
+c$ = Clazz_p0p ();
+};
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.family = null;
+this.style = 0;
+this.size = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.StyleContext, "FontKey");
+Clazz_makeConstructor (c$, 
+function (a, b, c) {
+this.setValue (a, b, c);
+}, "~S,~N,~N");
+Clazz_defineMethod (c$, "setValue", 
+function (a, b, c) {
+this.family = (a != null) ? a.intern () : null;
+this.style = b;
+this.size = c;
+}, "~S,~N,~N");
+Clazz_overrideMethod (c$, "hashCode", 
+function () {
+var a = (this.family != null) ? this.family.hashCode () : 0;
+return a ^ this.style ^ this.size;
+});
+Clazz_overrideMethod (c$, "equals", 
+function (a) {
+if (Clazz_instanceOf (a, javax.swing.text.StyleContext.FontKey)) {
+var b = a;
+return (this.size == b.size) && (this.style == b.style) && (this.family === b.family);
+}return false;
+}, "~O");
+c$ = Clazz_p0p ();
+Clazz_defineStatics (c$,
+"defaultContext", null,
+"DEFAULT_STYLE", "default",
+"freezeKeyMap", null,
+"thawKeyMap", null,
+"THRESHOLD", 9);
+{
+}});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.MutableAttributeSet"], "javax.swing.text.Style", null, function () {
+Clazz_declareInterface (javax.swing.text, "Style", javax.swing.text.MutableAttributeSet);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.AttributeSet", "$.MutableAttributeSet", "java.util.Hashtable"], "javax.swing.text.SimpleAttributeSet", ["java.util.Enumeration", "$.NoSuchElementException", "javax.swing.text.StyleConstants"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.table = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "SimpleAttributeSet", null, [javax.swing.text.MutableAttributeSet, Cloneable]);
+Clazz_prepareFields (c$, function () {
+this.table =  new java.util.Hashtable (3);
+});
+Clazz_makeConstructor (c$, 
+function () {
+});
+Clazz_makeConstructor (c$, 
+function (source) {
+this.addAttributes (source);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "isEmpty", 
+function () {
+return this.table.isEmpty ();
+});
+Clazz_defineMethod (c$, "getAttributeCount", 
+function () {
+return this.table.size ();
+});
+Clazz_overrideMethod (c$, "isDefined", 
+function (attrName) {
+return this.table.containsKey (attrName);
+}, "~O");
+Clazz_overrideMethod (c$, "isEqual", 
+function (attr) {
+return ((this.getAttributeCount () == attr.getAttributeCount ()) && this.containsAttributes (attr));
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "copyAttributes", 
+function () {
+return this.clone ();
+});
+Clazz_defineMethod (c$, "getAttributeNames", 
+function () {
+return this.table.keys ();
+});
+Clazz_defineMethod (c$, "getAttribute", 
+function (name) {
+var value = this.table.get (name);
+if (value == null) {
+var parent = this.getResolveParent ();
+if (parent != null) {
+value = parent.getAttribute (name);
+}}return value;
+}, "~O");
+Clazz_overrideMethod (c$, "containsAttribute", 
+function (name, value) {
+return value.equals (this.getAttribute (name));
+}, "~O,~O");
+Clazz_overrideMethod (c$, "containsAttributes", 
+function (attributes) {
+var result = true;
+var names = attributes.getAttributeNames ();
+while (result && names.hasMoreElements ()) {
+var name = names.nextElement ();
+result = attributes.getAttribute (name).equals (this.getAttribute (name));
+}
+return result;
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "addAttribute", 
+function (name, value) {
+this.table.put (name, value);
+}, "~O,~O");
+Clazz_overrideMethod (c$, "addAttributes", 
+function (attributes) {
+var names = attributes.getAttributeNames ();
+while (names.hasMoreElements ()) {
+var name = names.nextElement ();
+this.addAttribute (name, attributes.getAttribute (name));
+}
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "removeAttribute", 
+function (name) {
+this.table.remove (name);
+}, "~O");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (names) {
+while (names.hasMoreElements ()) this.removeAttribute (names.nextElement ());
+
+}, "java.util.Enumeration");
+Clazz_defineMethod (c$, "removeAttributes", 
+function (attributes) {
+if (attributes === this) {
+this.table.clear ();
+} else {
+var names = attributes.getAttributeNames ();
+while (names.hasMoreElements ()) {
+var name = names.nextElement ();
+var value = attributes.getAttribute (name);
+if (value.equals (this.getAttribute (name))) this.removeAttribute (name);
+}
+}}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "getResolveParent", 
+function () {
+return this.table.get (javax.swing.text.StyleConstants.ResolveAttribute);
+});
+Clazz_overrideMethod (c$, "setResolveParent", 
+function (parent) {
+this.addAttribute (javax.swing.text.StyleConstants.ResolveAttribute, parent);
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "clone", 
+function () {
+var attr;
+try {
+attr = Clazz_superCall (this, javax.swing.text.SimpleAttributeSet, "clone", []);
+attr.table = this.table.clone ();
+} catch (cnse) {
+if (Clazz_exceptionOf (cnse, CloneNotSupportedException)) {
+attr = null;
+} else {
+throw cnse;
+}
+}
+return attr;
+});
+Clazz_overrideMethod (c$, "hashCode", 
+function () {
+return this.table.hashCode ();
+});
+Clazz_defineMethod (c$, "equals", 
+function (obj) {
+if (this === obj) {
+return true;
+}if (Clazz_instanceOf (obj, javax.swing.text.AttributeSet)) {
+var attrs = obj;
+return this.isEqual (attrs);
+}return false;
+}, "~O");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+var s = "";
+var names = this.getAttributeNames ();
+while (names.hasMoreElements ()) {
+var key = names.nextElement ();
+var value = this.getAttribute (key);
+if (Clazz_instanceOf (value, javax.swing.text.AttributeSet)) {
+s = s + key + "=**AttributeSet** ";
+} else {
+s = s + key + "=" + value + " ";
+}}
+return s;
+});
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.SimpleAttributeSet, "EmptyAttributeSet", null, javax.swing.text.AttributeSet);
+Clazz_defineMethod (c$, "getAttributeCount", 
+function () {
+return 0;
+});
+Clazz_overrideMethod (c$, "isDefined", 
+function (a) {
+return false;
+}, "~O");
+Clazz_overrideMethod (c$, "isEqual", 
+function (a) {
+return (a.getAttributeCount () == 0);
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "copyAttributes", 
+function () {
+return this;
+});
+Clazz_overrideMethod (c$, "getAttribute", 
+function (a) {
+return null;
+}, "~O");
+Clazz_overrideMethod (c$, "getAttributeNames", 
+function () {
+return ((Clazz_isClassDefined ("javax.swing.text.SimpleAttributeSet$EmptyAttributeSet$1") ? 0 : javax.swing.text.SimpleAttributeSet.EmptyAttributeSet.$SimpleAttributeSet$EmptyAttributeSet$1$ ()), Clazz_innerTypeInstance (javax.swing.text.SimpleAttributeSet$EmptyAttributeSet$1, this, null));
+});
+Clazz_overrideMethod (c$, "containsAttribute", 
+function (a, b) {
+return false;
+}, "~O,~O");
+Clazz_overrideMethod (c$, "containsAttributes", 
+function (a) {
+return (a.getAttributeCount () == 0);
+}, "javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "getResolveParent", 
+function () {
+return null;
+});
+Clazz_overrideMethod (c$, "equals", 
+function (a) {
+if (this === a) {
+return true;
+}return ((Clazz_instanceOf (a, javax.swing.text.AttributeSet)) && ((a).getAttributeCount () == 0));
+}, "~O");
+Clazz_overrideMethod (c$, "hashCode", 
+function () {
+return 0;
+});
+c$.$SimpleAttributeSet$EmptyAttributeSet$1$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (javax.swing.text, "SimpleAttributeSet$EmptyAttributeSet$1", null, java.util.Enumeration);
+Clazz_overrideMethod (c$, "hasMoreElements", 
+function () {
+return false;
+});
+Clazz_overrideMethod (c$, "nextElement", 
+function () {
+throw  new java.util.NoSuchElementException ();
+});
+c$ = Clazz_p0p ();
+};
+c$ = Clazz_p0p ();
+c$.EMPTY = c$.prototype.EMPTY =  new javax.swing.text.SimpleAttributeSet.EmptyAttributeSet ();
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (null, "javax.swing.text.Utilities", ["javax.swing.JComponent", "javax.swing.text.CompositeView", "$.Position", "$.StyleConstants", "$.StyledDocument"], function () {
+c$ = Clazz_declareType (javax.swing.text, "Utilities");
+c$.getJComponent = Clazz_defineMethod (c$, "getJComponent", 
+function (view) {
+if (view != null) {
+var component = view.getContainer ();
+if (Clazz_instanceOf (component, javax.swing.JComponent)) {
+return component;
+}}return null;
+}, "javax.swing.text.View");
+c$.getTabbedTextWidth = Clazz_defineMethod (c$, "getTabbedTextWidth", 
+function (s, metrics, x, e, startOffset) {
+return javax.swing.text.Utilities.getTabbedTextWidth (null, s, metrics, x, e, startOffset, null);
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,javax.swing.text.TabExpander,~N");
+c$.getTabbedTextWidth = Clazz_defineMethod (c$, "getTabbedTextWidth", 
+function (view, s, metrics, x, e, startOffset, justificationData) {
+var nextX = x;
+var txt = s.array;
+var txtOffset = s.offset;
+var n = s.offset + s.count;
+var charCount = 0;
+var spaceAddon = 0;
+var spaceAddonLeftoverEnd = -1;
+var startJustifiableContent = 0;
+var endJustifiableContent = 0;
+if (justificationData != null) {
+var offset = -startOffset + txtOffset;
+var parent = null;
+if (view != null && (parent = view.getParent ()) != null) {
+offset += parent.getStartOffset ();
+}spaceAddon = justificationData[0];
+spaceAddonLeftoverEnd = justificationData[1] + offset;
+startJustifiableContent = justificationData[2] + offset;
+endJustifiableContent = justificationData[3] + offset;
+}for (var i = txtOffset; i < n; i++) {
+if (txt[i] == '\t' || ((spaceAddon != 0 || i <= spaceAddonLeftoverEnd) && (txt[i] == ' ') && startJustifiableContent <= i && i <= endJustifiableContent)) {
+nextX += metrics.charsWidth (txt, i - charCount, charCount);
+charCount = 0;
+if (txt[i] == '\t') {
+if (e != null) {
+nextX = Clazz_floatToInt (e.nextTabStop (nextX, startOffset + i - txtOffset));
+} else {
+nextX += metrics.charWidth (' ');
+}} else if (txt[i] == ' ') {
+nextX += metrics.charWidth (' ') + spaceAddon;
+if (i <= spaceAddonLeftoverEnd) {
+nextX++;
+}}} else if (txt[i] == '\n') {
+nextX += metrics.charsWidth (txt, i - charCount, charCount);
+charCount = 0;
+} else {
+charCount++;
+}}
+nextX += metrics.charsWidth (txt, n - charCount, charCount);
+return nextX - x;
+}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,javax.swing.text.TabExpander,~N,~A");
+c$.getTabbedTextOffset = Clazz_defineMethod (c$, "getTabbedTextOffset", 
+function (s, metrics, x0, x, e, startOffset) {
+return javax.swing.text.Utilities.getTabbedTextOffset (s, metrics, x0, x, e, startOffset, true);
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N");
+c$.getTabbedTextOffset = Clazz_defineMethod (c$, "getTabbedTextOffset", 
+function (view, s, metrics, x0, x, e, startOffset, justificationData) {
+return javax.swing.text.Utilities.getTabbedTextOffset (view, s, metrics, x0, x, e, startOffset, true, justificationData);
+}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~A");
+c$.getTabbedTextOffset = Clazz_defineMethod (c$, "getTabbedTextOffset", 
+function (s, metrics, x0, x, e, startOffset, round) {
+return javax.swing.text.Utilities.getTabbedTextOffset (null, s, metrics, x0, x, e, startOffset, round, null);
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~B");
+c$.getTabbedTextOffset = Clazz_defineMethod (c$, "getTabbedTextOffset", 
+function (view, s, metrics, x0, x, e, startOffset, round, justificationData) {
+if (x0 >= x) {
+return 0;
+}var currX = x0;
+var nextX = currX;
+var txt = s.array;
+var txtOffset = s.offset;
+var txtCount = s.count;
+var spaceAddon = 0;
+var spaceAddonLeftoverEnd = -1;
+var startJustifiableContent = 0;
+var endJustifiableContent = 0;
+if (justificationData != null) {
+var offset = -startOffset + txtOffset;
+var parent = null;
+if (view != null && (parent = view.getParent ()) != null) {
+offset += parent.getStartOffset ();
+}spaceAddon = justificationData[0];
+spaceAddonLeftoverEnd = justificationData[1] + offset;
+startJustifiableContent = justificationData[2] + offset;
+endJustifiableContent = justificationData[3] + offset;
+}var n = s.offset + s.count;
+for (var i = s.offset; i < n; i++) {
+if (txt[i] == '\t' || ((spaceAddon != 0 || i <= spaceAddonLeftoverEnd) && (txt[i] == ' ') && startJustifiableContent <= i && i <= endJustifiableContent)) {
+if (txt[i] == '\t') {
+if (e != null) {
+nextX = Clazz_floatToInt (e.nextTabStop (nextX, startOffset + i - txtOffset));
+} else {
+nextX += metrics.charWidth (' ');
+}} else if (txt[i] == ' ') {
+nextX += metrics.charWidth (' ') + spaceAddon;
+if (i <= spaceAddonLeftoverEnd) {
+nextX++;
+}}} else {
+nextX += metrics.charWidth (txt[i]);
+}if ((x >= currX) && (x < nextX)) {
+if ((round == false) || ((x - currX) < (nextX - x))) {
+return i - txtOffset;
+} else {
+return i + 1 - txtOffset;
+}}currX = nextX;
+}
+return txtCount;
+}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~B,~A");
+c$.getBreakLocation = Clazz_defineMethod (c$, "getBreakLocation", 
+function (s, metrics, x0, x, e, startOffset) {
+return 0;
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N");
+c$.getRowStart = Clazz_defineMethod (c$, "getRowStart", 
+function (c, offs) {
+var r = c.modelToView (offs);
+if (r == null) {
+return -1;
+}var lastOffs = offs;
+var y = r.y;
+while ((r != null) && (y == r.y)) {
+if (r.height != 0) {
+offs = lastOffs;
+}lastOffs -= 1;
+r = (lastOffs >= 0) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getRowEnd = Clazz_defineMethod (c$, "getRowEnd", 
+function (c, offs) {
+var r = c.modelToView (offs);
+if (r == null) {
+return -1;
+}var n = c.getDocument ().getLength ();
+var lastOffs = offs;
+var y = r.y;
+while ((r != null) && (y == r.y)) {
+if (r.height != 0) {
+offs = lastOffs;
+}lastOffs += 1;
+r = (lastOffs <= n) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getPositionAbove = Clazz_defineMethod (c$, "getPositionAbove", 
+function (c, offs, x) {
+var lastOffs = javax.swing.text.Utilities.getRowStart (c, offs) - 1;
+if (lastOffs < 0) {
+return -1;
+}var bestSpan = 2147483647;
+var y = 0;
+var r = null;
+if (lastOffs >= 0) {
+r = c.modelToView (lastOffs);
+y = r.y;
+}while ((r != null) && (y == r.y)) {
+var span = Math.abs (r.x - x);
+if (span < bestSpan) {
+offs = lastOffs;
+bestSpan = span;
+}lastOffs -= 1;
+r = (lastOffs >= 0) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N,~N");
+c$.getPositionBelow = Clazz_defineMethod (c$, "getPositionBelow", 
+function (c, offs, x) {
+var lastOffs = javax.swing.text.Utilities.getRowEnd (c, offs) + 1;
+if (lastOffs <= 0) {
+return -1;
+}var bestSpan = 2147483647;
+var n = c.getDocument ().getLength ();
+var y = 0;
+var r = null;
+if (lastOffs <= n) {
+r = c.modelToView (lastOffs);
+y = r.y;
+}while ((r != null) && (y == r.y)) {
+var span = Math.abs (x - r.x);
+if (span < bestSpan) {
+offs = lastOffs;
+bestSpan = span;
+}lastOffs += 1;
+r = (lastOffs <= n) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N,~N");
+c$.getWordStart = Clazz_defineMethod (c$, "getWordStart", 
+function (c, offs) {
+return 0;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getWordEnd = Clazz_defineMethod (c$, "getWordEnd", 
+function (c, offs) {
+return 0;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getNextWord = Clazz_defineMethod (c$, "getNextWord", 
+function (c, offs) {
+var nextWord;
+var line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+for (nextWord = javax.swing.text.Utilities.getNextWordInParagraph (c, line, offs, false); nextWord == -1; nextWord = javax.swing.text.Utilities.getNextWordInParagraph (c, line, offs, true)) {
+offs = line.getEndOffset ();
+line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+}
+return nextWord;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getNextWordInParagraph = Clazz_defineMethod (c$, "getNextWordInParagraph", 
+function (c, line, offs, first) {
+return 0;
+}, "javax.swing.text.JTextComponent,javax.swing.text.Element,~N,~B");
+c$.getPreviousWord = Clazz_defineMethod (c$, "getPreviousWord", 
+function (c, offs) {
+var prevWord;
+var line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+for (prevWord = javax.swing.text.Utilities.getPrevWordInParagraph (c, line, offs); prevWord == -1; prevWord = javax.swing.text.Utilities.getPrevWordInParagraph (c, line, offs)) {
+offs = line.getStartOffset () - 1;
+line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+}
+return prevWord;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getPrevWordInParagraph = Clazz_defineMethod (c$, "getPrevWordInParagraph", 
+function (c, line, offs) {
+return 0;
+}, "javax.swing.text.JTextComponent,javax.swing.text.Element,~N");
+c$.getParagraphElement = Clazz_defineMethod (c$, "getParagraphElement", 
+function (c, offs) {
+var doc = c.getDocument ();
+if (Clazz_instanceOf (doc, javax.swing.text.StyledDocument)) {
+return (doc).getParagraphElement (offs);
+}var map = doc.getDefaultRootElement ();
+var index = map.getElementIndex (offs);
+var paragraph = map.getElement (index);
+if ((offs >= paragraph.getStartOffset ()) && (offs < paragraph.getEndOffset ())) {
+return paragraph;
+}return null;
+}, "javax.swing.text.JTextComponent,~N");
+c$.isComposedTextElement = Clazz_defineMethod (c$, "isComposedTextElement", 
+function (doc, offset) {
+var elem = doc.getDefaultRootElement ();
+while (!elem.isLeaf ()) {
+elem = elem.getElement (elem.getElementIndex (offset));
+}
+return javax.swing.text.Utilities.isComposedTextElement (elem);
+}, "javax.swing.text.Document,~N");
+c$.isComposedTextElement = Clazz_defineMethod (c$, "isComposedTextElement", 
+function (elem) {
+var as = elem.getAttributes ();
+return javax.swing.text.Utilities.isComposedTextAttributeDefined (as);
+}, "javax.swing.text.Element");
+c$.isComposedTextAttributeDefined = Clazz_defineMethod (c$, "isComposedTextAttributeDefined", 
+function (as) {
+return ((as != null) && (as.isDefined (javax.swing.text.StyleConstants.ComposedTextAttribute)));
+}, "javax.swing.text.AttributeSet");
+c$.isLeftToRight = Clazz_defineMethod (c$, "isLeftToRight", 
+function (c) {
+return c.getComponentOrientation ().isLeftToRight ();
+}, "java.awt.Component");
+c$.getNextVisualPositionFrom = Clazz_defineMethod (c$, "getNextVisualPositionFrom", 
+function (v, pos, b, alloc, direction, biasRet) {
+if (v.getViewCount () == 0) {
+return pos;
+}var top = (direction == 1 || direction == 7);
+var retValue;
+if (pos == -1) {
+var childIndex = (top) ? v.getViewCount () - 1 : 0;
+var child = v.getView (childIndex);
+var childBounds = v.getChildAllocation (childIndex, alloc);
+retValue = child.getNextVisualPositionFrom (pos, b, childBounds, direction, biasRet);
+if (retValue == -1 && !top && v.getViewCount () > 1) {
+child = v.getView (1);
+childBounds = v.getChildAllocation (1, alloc);
+retValue = child.getNextVisualPositionFrom (-1, biasRet[0], childBounds, direction, biasRet);
+}} else {
+var increment = (top) ? -1 : 1;
+var childIndex;
+if (b === javax.swing.text.Position.Bias.Backward && pos > 0) {
+childIndex = v.getViewIndex (pos - 1, javax.swing.text.Position.Bias.Forward);
+} else {
+childIndex = v.getViewIndex (pos, javax.swing.text.Position.Bias.Forward);
+}var child = v.getView (childIndex);
+var childBounds = v.getChildAllocation (childIndex, alloc);
+retValue = child.getNextVisualPositionFrom (pos, b, childBounds, direction, biasRet);
+if ((direction == 3 || direction == 7) && (Clazz_instanceOf (v, javax.swing.text.CompositeView)) && (v).flipEastAndWestAtEnds (pos, b)) {
+increment *= -1;
+}childIndex += increment;
+if (retValue == -1 && childIndex >= 0 && childIndex < v.getViewCount ()) {
+child = v.getView (childIndex);
+childBounds = v.getChildAllocation (childIndex, alloc);
+retValue = child.getNextVisualPositionFrom (-1, b, childBounds, direction, biasRet);
+if (retValue == pos && biasRet[0] !== b) {
+return javax.swing.text.Utilities.getNextVisualPositionFrom (v, pos, biasRet[0], alloc, direction, biasRet);
+}} else if (retValue != -1 && biasRet[0] !== b && ((increment == 1 && child.getEndOffset () == retValue) || (increment == -1 && child.getStartOffset () == retValue)) && childIndex >= 0 && childIndex < v.getViewCount ()) {
+child = v.getView (childIndex);
+childBounds = v.getChildAllocation (childIndex, alloc);
+var originalBias = biasRet[0];
+var nextPos = child.getNextVisualPositionFrom (-1, b, childBounds, direction, biasRet);
+if (biasRet[0] === b) {
+retValue = nextPos;
+} else {
+biasRet[0] = originalBias;
+}}}return retValue;
+}, "javax.swing.text.View,~N,javax.swing.text.Position.Bias,java.awt.Shape,~N,~A");
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.View"], "javax.swing.text.CompositeView", ["java.lang.IllegalArgumentException", "java.awt.Rectangle", "javax.swing.text.BadLocationException", "$.Position", "$.StyleConstants", "$.Utilities"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.children = null;
+this.nchildren = 0;
+this.left = 0;
+this.right = 0;
+this.top = 0;
+this.bottom = 0;
+this.childAlloc = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "CompositeView", javax.swing.text.View);
+Clazz_makeConstructor (c$, 
+function (elem) {
+Clazz_superConstructor (this, javax.swing.text.CompositeView, [elem]);
+this.children =  new Array (1);
+this.nchildren = 0;
+this.childAlloc =  new java.awt.Rectangle ();
+}, "javax.swing.text.Element");
+Clazz_defineMethod (c$, "loadChildren", 
+function (f) {
+if (f == null) {
+return;
+}var e = this.getElement ();
+var n = e.getElementCount ();
+if (n > 0) {
+var added =  new Array (n);
+for (var i = 0; i < n; i++) {
+added[i] = f.create (e.getElement (i));
+}
+this.replace (0, 0, added);
+}}, "javax.swing.text.ViewFactory");
+Clazz_defineMethod (c$, "setParent", 
+function (parent) {
+Clazz_superCall (this, javax.swing.text.CompositeView, "setParent", [parent]);
+if ((parent != null) && (this.nchildren == 0)) {
+var f = this.getViewFactory ();
+this.loadChildren (f);
+}}, "javax.swing.text.View");
+Clazz_overrideMethod (c$, "getViewCount", 
+function () {
+return this.nchildren;
+});
+Clazz_overrideMethod (c$, "getView", 
+function (n) {
+return this.children[n];
+}, "~N");
+Clazz_overrideMethod (c$, "replace", 
+function (offset, length, views) {
+if (views == null) {
+views = javax.swing.text.CompositeView.ZERO;
+}for (var i = offset; i < offset + length; i++) {
+if (this.children[i].getParent () === this) {
+this.children[i].setParent (null);
+}this.children[i] = null;
+}
+var delta = views.length - length;
+var src = offset + length;
+var nmove = this.nchildren - src;
+var dest = src + delta;
+if ((this.nchildren + delta) >= this.children.length) {
+var newLength = Math.max (2 * this.children.length, this.nchildren + delta);
+var newChildren =  new Array (newLength);
+System.arraycopy (this.children, 0, newChildren, 0, offset);
+System.arraycopy (views, 0, newChildren, offset, views.length);
+System.arraycopy (this.children, src, newChildren, dest, nmove);
+this.children = newChildren;
+} else {
+System.arraycopy (this.children, src, this.children, dest, nmove);
+System.arraycopy (views, 0, this.children, offset, views.length);
+}this.nchildren = this.nchildren + delta;
+for (var i = 0; i < views.length; i++) {
+views[i].setParent (this);
+}
+}, "~N,~N,~A");
+Clazz_overrideMethod (c$, "getChildAllocation", 
+function (index, a) {
+var alloc = this.getInsideAllocation (a);
+this.childAllocation (index, alloc);
+return alloc;
+}, "~N,java.awt.Shape");
+Clazz_defineMethod (c$, "modelToView", 
+function (pos, a, b) {
+var isBackward = (b === javax.swing.text.Position.Bias.Backward);
+var testPos = (isBackward) ? Math.max (0, pos - 1) : pos;
+if (isBackward && testPos < this.getStartOffset ()) {
+return null;
+}var vIndex = this.getViewIndexAtPosition (testPos);
+if ((vIndex != -1) && (vIndex < this.getViewCount ())) {
+var v = this.getView (vIndex);
+if (v != null && testPos >= v.getStartOffset () && testPos < v.getEndOffset ()) {
+var childShape = this.getChildAllocation (vIndex, a);
+if (childShape == null) {
+return null;
+}var retShape = v.modelToView (pos, childShape, b);
+if (retShape == null && v.getEndOffset () == pos) {
+if (++vIndex < this.getViewCount ()) {
+v = this.getView (vIndex);
+retShape = v.modelToView (pos, this.getChildAllocation (vIndex, a), b);
+}}return retShape;
+}}throw  new javax.swing.text.BadLocationException ("Position not represented by view", pos);
+}, "~N,java.awt.Shape,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "modelToView", 
+function (p0, b0, p1, b1, a) {
+if (p0 == this.getStartOffset () && p1 == this.getEndOffset ()) {
+return a;
+}var alloc = this.getInsideAllocation (a);
+var r0 =  new java.awt.Rectangle (alloc);
+var v0 = this.getViewAtPosition ((b0 === javax.swing.text.Position.Bias.Backward) ? Math.max (0, p0 - 1) : p0, r0);
+var r1 =  new java.awt.Rectangle (alloc);
+var v1 = this.getViewAtPosition ((b1 === javax.swing.text.Position.Bias.Backward) ? Math.max (0, p1 - 1) : p1, r1);
+if (v0 === v1) {
+if (v0 == null) {
+return a;
+}return v0.modelToView (p0, b0, p1, b1, r0);
+}var viewCount = this.getViewCount ();
+var counter = 0;
+while (counter < viewCount) {
+var v;
+if ((v = this.getView (counter)) === v0 || v === v1) {
+var endView;
+var retRect;
+var tempRect =  new java.awt.Rectangle ();
+if (v === v0) {
+retRect = v0.modelToView (p0, b0, v0.getEndOffset (), javax.swing.text.Position.Bias.Backward, r0).getBounds ();
+endView = v1;
+} else {
+retRect = v1.modelToView (v1.getStartOffset (), javax.swing.text.Position.Bias.Forward, p1, b1, r1).getBounds ();
+endView = v0;
+}while (++counter < viewCount && (v = this.getView (counter)) !== endView) {
+tempRect.setBounds (alloc);
+this.childAllocation (counter, tempRect);
+retRect.add (tempRect);
+}
+if (endView != null) {
+var endShape;
+if (endView === v1) {
+endShape = v1.modelToView (v1.getStartOffset (), javax.swing.text.Position.Bias.Forward, p1, b1, r1);
+} else {
+endShape = v0.modelToView (p0, b0, v0.getEndOffset (), javax.swing.text.Position.Bias.Backward, r0);
+}if (Clazz_instanceOf (endShape, java.awt.Rectangle)) {
+retRect.add (endShape);
+} else {
+retRect.add (endShape.getBounds ());
+}}return retRect;
+}counter++;
+}
+throw  new javax.swing.text.BadLocationException ("Position not represented by view", p0);
+}, "~N,javax.swing.text.Position.Bias,~N,javax.swing.text.Position.Bias,java.awt.Shape");
+Clazz_defineMethod (c$, "viewToModel", 
+function (x, y, a, bias) {
+var alloc = this.getInsideAllocation (a);
+if (this.isBefore (Clazz_floatToInt (x), Clazz_floatToInt (y), alloc)) {
+var retValue = -1;
+try {
+retValue = this.getNextVisualPositionFrom (-1, javax.swing.text.Position.Bias.Forward, a, 3, bias);
+} catch (e$$) {
+if (Clazz_exceptionOf (e$$, javax.swing.text.BadLocationException)) {
+var ble = e$$;
+{
+}
+} else if (Clazz_exceptionOf (e$$, IllegalArgumentException)) {
+var iae = e$$;
+{
+}
+} else {
+throw e$$;
+}
+}
+if (retValue == -1) {
+retValue = this.getStartOffset ();
+bias[0] = javax.swing.text.Position.Bias.Forward;
+}return retValue;
+} else if (this.isAfter (Clazz_floatToInt (x), Clazz_floatToInt (y), alloc)) {
+var retValue = -1;
+try {
+retValue = this.getNextVisualPositionFrom (-1, javax.swing.text.Position.Bias.Forward, a, 7, bias);
+} catch (e$$) {
+if (Clazz_exceptionOf (e$$, javax.swing.text.BadLocationException)) {
+var ble = e$$;
+{
+}
+} else if (Clazz_exceptionOf (e$$, IllegalArgumentException)) {
+var iae = e$$;
+{
+}
+} else {
+throw e$$;
+}
+}
+if (retValue == -1) {
+retValue = this.getEndOffset () - 1;
+bias[0] = javax.swing.text.Position.Bias.Forward;
+}return retValue;
+} else {
+var v = this.getViewAtPoint (Clazz_floatToInt (x), Clazz_floatToInt (y), alloc);
+if (v != null) {
+return v.viewToModel (x, y, alloc, bias);
+}}return -1;
+}, "~N,~N,java.awt.Shape,~A");
+Clazz_overrideMethod (c$, "getNextVisualPositionFrom", 
+function (pos, b, a, direction, biasRet) {
+switch (direction) {
+case 1:
+return this.getNextNorthSouthVisualPositionFrom (pos, b, a, direction, biasRet);
+case 5:
+return this.getNextNorthSouthVisualPositionFrom (pos, b, a, direction, biasRet);
+case 3:
+return this.getNextEastWestVisualPositionFrom (pos, b, a, direction, biasRet);
+case 7:
+return this.getNextEastWestVisualPositionFrom (pos, b, a, direction, biasRet);
+default:
+throw  new IllegalArgumentException ("Bad direction: " + direction);
+}
+}, "~N,javax.swing.text.Position.Bias,java.awt.Shape,~N,~A");
+Clazz_defineMethod (c$, "getViewIndex", 
+function (pos, b) {
+if (b === javax.swing.text.Position.Bias.Backward) {
+pos -= 1;
+}if ((pos >= this.getStartOffset ()) && (pos < this.getEndOffset ())) {
+return this.getViewIndexAtPosition (pos);
+}return -1;
+}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "getViewAtPosition", 
+function (pos, a) {
+var index = this.getViewIndexAtPosition (pos);
+if ((index >= 0) && (index < this.getViewCount ())) {
+var v = this.getView (index);
+if (a != null) {
+this.childAllocation (index, a);
+}return v;
+}return null;
+}, "~N,java.awt.Rectangle");
+Clazz_defineMethod (c$, "getViewIndexAtPosition", 
+function (pos) {
+var elem = this.getElement ();
+return elem.getElementIndex (pos);
+}, "~N");
+Clazz_defineMethod (c$, "getInsideAllocation", 
+function (a) {
+if (a != null) {
+var alloc;
+if (Clazz_instanceOf (a, java.awt.Rectangle)) {
+alloc = a;
+} else {
+alloc = a.getBounds ();
+}this.childAlloc.setBounds (alloc);
+this.childAlloc.x += this.getLeftInset ();
+this.childAlloc.y += this.getTopInset ();
+this.childAlloc.width -= this.getLeftInset () + this.getRightInset ();
+this.childAlloc.height -= this.getTopInset () + this.getBottomInset ();
+return this.childAlloc;
+}return null;
+}, "java.awt.Shape");
+Clazz_defineMethod (c$, "setParagraphInsets", 
+function (attr) {
+this.top = Clazz_floatToShort (javax.swing.text.StyleConstants.getSpaceAbove (attr));
+this.left = Clazz_floatToShort (javax.swing.text.StyleConstants.getLeftIndent (attr));
+this.bottom = Clazz_floatToShort (javax.swing.text.StyleConstants.getSpaceBelow (attr));
+this.right = Clazz_floatToShort (javax.swing.text.StyleConstants.getRightIndent (attr));
+}, "javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "setInsets", 
+function (top, left, bottom, right) {
+this.top = top;
+this.left = left;
+this.right = right;
+this.bottom = bottom;
+}, "~N,~N,~N,~N");
+Clazz_defineMethod (c$, "getLeftInset", 
+function () {
+return this.left;
+});
+Clazz_defineMethod (c$, "getRightInset", 
+function () {
+return this.right;
+});
+Clazz_defineMethod (c$, "getTopInset", 
+function () {
+return this.top;
+});
+Clazz_defineMethod (c$, "getBottomInset", 
+function () {
+return this.bottom;
+});
+Clazz_defineMethod (c$, "getNextNorthSouthVisualPositionFrom", 
+function (pos, b, a, direction, biasRet) {
+return javax.swing.text.Utilities.getNextVisualPositionFrom (this, pos, b, a, direction, biasRet);
+}, "~N,javax.swing.text.Position.Bias,java.awt.Shape,~N,~A");
+Clazz_defineMethod (c$, "getNextEastWestVisualPositionFrom", 
+function (pos, b, a, direction, biasRet) {
+return javax.swing.text.Utilities.getNextVisualPositionFrom (this, pos, b, a, direction, biasRet);
+}, "~N,javax.swing.text.Position.Bias,java.awt.Shape,~N,~A");
+Clazz_defineMethod (c$, "flipEastAndWestAtEnds", 
+function (position, bias) {
+return false;
+}, "~N,javax.swing.text.Position.Bias");
+c$.ZERO = c$.prototype.ZERO =  new Array (0);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.SwingConstants"], "javax.swing.text.View", ["java.lang.IllegalArgumentException", "java.awt.Rectangle", "javax.swing.event.DocumentEvent", "javax.swing.text.Position", "$.Utilities"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.parent = null;
+this.elem = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "View", null, javax.swing.SwingConstants);
+Clazz_makeConstructor (c$, 
+function (elem) {
+this.elem = elem;
+}, "javax.swing.text.Element");
+Clazz_defineMethod (c$, "getParent", 
+function () {
+return this.parent;
+});
+Clazz_defineMethod (c$, "isVisible", 
+function () {
+return true;
+});
+Clazz_defineMethod (c$, "getMinimumSpan", 
+function (axis) {
+var w = this.getResizeWeight (axis);
+if (w == 0) {
+return this.getPreferredSpan (axis);
+}return 0;
+}, "~N");
+Clazz_defineMethod (c$, "getMaximumSpan", 
+function (axis) {
+var w = this.getResizeWeight (axis);
+if (w == 0) {
+return this.getPreferredSpan (axis);
+}return 2147483647;
+}, "~N");
+Clazz_defineMethod (c$, "preferenceChanged", 
+function (child, width, height) {
+var parent = this.getParent ();
+if (parent != null) {
+parent.preferenceChanged (this, width, height);
+}}, "javax.swing.text.View,~B,~B");
+Clazz_defineMethod (c$, "getAlignment", 
+function (axis) {
+return 0.5;
+}, "~N");
+Clazz_defineMethod (c$, "setParent", 
+function (parent) {
+if (parent == null) {
+for (var i = 0; i < this.getViewCount (); i++) {
+if (this.getView (i).getParent () === this) {
+this.getView (i).setParent (null);
+}}
+}this.parent = parent;
+}, "javax.swing.text.View");
+Clazz_defineMethod (c$, "getViewCount", 
+function () {
+return 0;
+});
+Clazz_defineMethod (c$, "getView", 
+function (n) {
+return null;
+}, "~N");
+Clazz_defineMethod (c$, "removeAll", 
+function () {
+this.replace (0, this.getViewCount (), null);
+});
+Clazz_defineMethod (c$, "remove", 
+function (i) {
+this.replace (i, 1, null);
+}, "~N");
+Clazz_defineMethod (c$, "insert", 
+function (offs, v) {
+var one =  new Array (1);
+one[0] = v;
+this.replace (offs, 0, one);
+}, "~N,javax.swing.text.View");
+Clazz_defineMethod (c$, "append", 
+function (v) {
+var one =  new Array (1);
+one[0] = v;
+this.replace (this.getViewCount (), 0, one);
+}, "javax.swing.text.View");
+Clazz_defineMethod (c$, "replace", 
+function (offset, length, views) {
+}, "~N,~N,~A");
+Clazz_defineMethod (c$, "getViewIndex", 
+function (pos, b) {
+return -1;
+}, "~N,javax.swing.text.Position.Bias");
+Clazz_defineMethod (c$, "getChildAllocation", 
+function (index, a) {
+return null;
+}, "~N,java.awt.Shape");
+Clazz_defineMethod (c$, "getNextVisualPositionFrom", 
+function (pos, b, a, direction, biasRet) {
+biasRet[0] = javax.swing.text.Position.Bias.Forward;
+switch (direction) {
+case 1:
+case 5:
+{
+if (pos == -1) {
+pos = (direction == 1) ? Math.max (0, this.getEndOffset () - 1) : this.getStartOffset ();
+break;
+}var target = this.getContainer ();
+var c = (target != null) ? target.getCaret () : null;
+var mcp;
+if (c != null) {
+mcp = c.getMagicCaretPosition ();
+} else {
+mcp = null;
+}var x;
+if (mcp == null) {
+var loc = target.modelToView (pos);
+x = (loc == null) ? 0 : loc.x;
+} else {
+x = mcp.x;
+}if (direction == 1) {
+pos = javax.swing.text.Utilities.getPositionAbove (target, pos, x);
+} else {
+pos = javax.swing.text.Utilities.getPositionBelow (target, pos, x);
+}}break;
+case 7:
+if (pos == -1) {
+pos = Math.max (0, this.getEndOffset () - 1);
+} else {
+pos = Math.max (0, pos - 1);
+}break;
+case 3:
+if (pos == -1) {
+pos = this.getStartOffset ();
+} else {
+pos = Math.min (pos + 1, this.getDocument ().getLength ());
+}break;
+default:
+throw  new IllegalArgumentException ("Bad direction: " + direction);
+}
+return pos;
+}, "~N,javax.swing.text.Position.Bias,java.awt.Shape,~N,~A");
+Clazz_defineMethod (c$, "modelToView", 
+function (p0, b0, p1, b1, a) {
+var s0 = this.modelToView (p0, a, b0);
+var s1;
+if (p1 == this.getEndOffset ()) {
+try {
+s1 = this.modelToView (p1, a, b1);
+} catch (ble) {
+if (Clazz_exceptionOf (ble, javax.swing.text.BadLocationException)) {
+s1 = null;
+} else {
+throw ble;
+}
+}
+if (s1 == null) {
+var alloc = (Clazz_instanceOf (a, java.awt.Rectangle)) ? a : a.getBounds ();
+s1 =  new java.awt.Rectangle (alloc.x + alloc.width - 1, alloc.y, 1, alloc.height);
+}} else {
+s1 = this.modelToView (p1, a, b1);
+}var r0 = s0.getBounds ();
+var r1 = (Clazz_instanceOf (s1, java.awt.Rectangle)) ? s1 : s1.getBounds ();
+if (r0.y != r1.y) {
+var alloc = (Clazz_instanceOf (a, java.awt.Rectangle)) ? a : a.getBounds ();
+r0.x = alloc.x;
+r0.width = alloc.width;
+}r0.add (r1);
+return r0;
+}, "~N,javax.swing.text.Position.Bias,~N,javax.swing.text.Position.Bias,java.awt.Shape");
+Clazz_defineMethod (c$, "insertUpdate", 
+function (e, a, f) {
+if (this.getViewCount () > 0) {
+var elem = this.getElement ();
+var ec = e.getChange (elem);
+if (ec != null) {
+if (!this.updateChildren (ec, e, f)) {
+ec = null;
+}}this.forwardUpdate (ec, e, a, f);
+this.updateLayout (ec, e, a);
+}}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz_defineMethod (c$, "removeUpdate", 
+function (e, a, f) {
+if (this.getViewCount () > 0) {
+var elem = this.getElement ();
+var ec = e.getChange (elem);
+if (ec != null) {
+if (!this.updateChildren (ec, e, f)) {
+ec = null;
+}}this.forwardUpdate (ec, e, a, f);
+this.updateLayout (ec, e, a);
+}}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz_defineMethod (c$, "changedUpdate", 
+function (e, a, f) {
+if (this.getViewCount () > 0) {
+var elem = this.getElement ();
+var ec = e.getChange (elem);
+if (ec != null) {
+if (!this.updateChildren (ec, e, f)) {
+ec = null;
+}}this.forwardUpdate (ec, e, a, f);
+this.updateLayout (ec, e, a);
+}}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz_defineMethod (c$, "getDocument", 
+function () {
+return this.elem.getDocument ();
+});
+Clazz_defineMethod (c$, "getStartOffset", 
+function () {
+return this.elem.getStartOffset ();
+});
+Clazz_defineMethod (c$, "getEndOffset", 
+function () {
+return this.elem.getEndOffset ();
+});
+Clazz_defineMethod (c$, "getElement", 
+function () {
+return this.elem;
+});
+Clazz_defineMethod (c$, "getGraphics", 
+function () {
+var c = this.getContainer ();
+return c.getGraphics ();
+});
+Clazz_defineMethod (c$, "getAttributes", 
+function () {
+return this.elem.getAttributes ();
+});
+Clazz_defineMethod (c$, "breakView", 
+function (axis, offset, pos, len) {
+return this;
+}, "~N,~N,~N,~N");
+Clazz_defineMethod (c$, "createFragment", 
+function (p0, p1) {
+return this;
+}, "~N,~N");
+Clazz_defineMethod (c$, "getBreakWeight", 
+function (axis, pos, len) {
+if (len > this.getPreferredSpan (axis)) {
+return 1000;
+}return 0;
+}, "~N,~N,~N");
+Clazz_defineMethod (c$, "getResizeWeight", 
+function (axis) {
+return 0;
+}, "~N");
+Clazz_defineMethod (c$, "setSize", 
+function (width, height) {
+}, "~N,~N");
+Clazz_defineMethod (c$, "getContainer", 
+function () {
+var v = this.getParent ();
+return (v != null) ? v.getContainer () : null;
+});
+Clazz_defineMethod (c$, "getViewFactory", 
+function () {
+var v = this.getParent ();
+return (v != null) ? v.getViewFactory () : null;
+});
+Clazz_defineMethod (c$, "getToolTipText", 
+function (x, y, allocation) {
+var viewIndex = this.getViewIndex (x, y, allocation);
+if (viewIndex >= 0) {
+allocation = this.getChildAllocation (viewIndex, allocation);
+var rect = (Clazz_instanceOf (allocation, java.awt.Rectangle)) ? allocation : allocation.getBounds ();
+if (rect.contains (x, y)) {
+return this.getView (viewIndex).getToolTipText (x, y, allocation);
+}}return null;
+}, "~N,~N,java.awt.Shape");
+Clazz_defineMethod (c$, "getViewIndex", 
+function (x, y, allocation) {
+for (var counter = this.getViewCount () - 1; counter >= 0; counter--) {
+var childAllocation = this.getChildAllocation (counter, allocation);
+if (childAllocation != null) {
+var rect = (Clazz_instanceOf (childAllocation, java.awt.Rectangle)) ? childAllocation : childAllocation.getBounds ();
+if (rect.contains (x, y)) {
+return counter;
+}}}
+return -1;
+}, "~N,~N,java.awt.Shape");
+Clazz_defineMethod (c$, "updateChildren", 
+function (ec, e, f) {
+var removedElems = ec.getChildrenRemoved ();
+var addedElems = ec.getChildrenAdded ();
+var added = null;
+if (addedElems != null) {
+added =  new Array (addedElems.length);
+for (var i = 0; i < addedElems.length; i++) {
+added[i] = f.create (addedElems[i]);
+}
+}var nremoved = 0;
+var index = ec.getIndex ();
+if (removedElems != null) {
+nremoved = removedElems.length;
+}this.replace (index, nremoved, added);
+return true;
+}, "javax.swing.event.DocumentEvent.ElementChange,javax.swing.event.DocumentEvent,javax.swing.text.ViewFactory");
+Clazz_defineMethod (c$, "forwardUpdate", 
+function (ec, e, a, f) {
+var elem = this.getElement ();
+var pos = e.getOffset ();
+var index0 = this.getViewIndex (pos, javax.swing.text.Position.Bias.Forward);
+if (index0 == -1 && e.getType () === javax.swing.event.DocumentEvent.EventType.REMOVE && pos >= this.getEndOffset ()) {
+index0 = this.getViewCount () - 1;
+}var index1 = index0;
+var v = (index0 >= 0) ? this.getView (index0) : null;
+if (v != null) {
+if ((v.getStartOffset () == pos) && (pos > 0)) {
+index0 = Math.max (index0 - 1, 0);
+}}if (e.getType () !== javax.swing.event.DocumentEvent.EventType.REMOVE) {
+index1 = this.getViewIndex (pos + e.getLength (), javax.swing.text.Position.Bias.Forward);
+if (index1 < 0) {
+index1 = this.getViewCount () - 1;
+}}var hole0 = index1 + 1;
+var hole1 = hole0;
+var addedElems = (ec != null) ? ec.getChildrenAdded () : null;
+if ((addedElems != null) && (addedElems.length > 0)) {
+hole0 = ec.getIndex ();
+hole1 = hole0 + addedElems.length - 1;
+}index0 = Math.max (index0, 0);
+for (var i = index0; i <= index1; i++) {
+if (!((i >= hole0) && (i <= hole1))) {
+v = this.getView (i);
+if (v != null) {
+var childAlloc = this.getChildAllocation (i, a);
+this.forwardUpdateToView (v, e, childAlloc, f);
+}}}
+}, "javax.swing.event.DocumentEvent.ElementChange,javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz_defineMethod (c$, "forwardUpdateToView", 
+function (v, e, a, f) {
+var type = e.getType ();
+if (type === javax.swing.event.DocumentEvent.EventType.INSERT) {
+v.insertUpdate (e, a, f);
+} else if (type === javax.swing.event.DocumentEvent.EventType.REMOVE) {
+v.removeUpdate (e, a, f);
+} else {
+v.changedUpdate (e, a, f);
+}}, "javax.swing.text.View,javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz_defineMethod (c$, "updateLayout", 
+function (ec, e, a) {
+if ((ec != null) && (a != null)) {
+this.preferenceChanged (null, true, true);
+var host = this.getContainer ();
+if (host != null) {
+host.repaint ();
+}}}, "javax.swing.event.DocumentEvent.ElementChange,javax.swing.event.DocumentEvent,java.awt.Shape");
+Clazz_defineMethod (c$, "modelToView", 
+function (pos, a) {
+return this.modelToView (pos, a, javax.swing.text.Position.Bias.Forward);
+}, "~N,java.awt.Shape");
+Clazz_defineMethod (c$, "viewToModel", 
+function (x, y, a) {
+javax.swing.text.View.sharedBiasReturn[0] = javax.swing.text.Position.Bias.Forward;
+return this.viewToModel (x, y, a, javax.swing.text.View.sharedBiasReturn);
+}, "~N,~N,java.awt.Shape");
+Clazz_defineStatics (c$,
+"BadBreakWeight", 0,
+"GoodBreakWeight", 1000,
+"ExcellentBreakWeight", 2000,
+"ForcedBreakWeight", 3000,
+"X_AXIS", 0,
+"Y_AXIS", 1);
+c$.sharedBiasReturn = c$.prototype.sharedBiasReturn =  new Array (1);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_declareInterface (javax.swing.text, "Position");
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.name = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.Position, "Bias");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return this.name;
+});
+Clazz_makeConstructor (c$, 
+ function (a) {
+this.name = a;
+}, "~S");
+c$.Forward = c$.prototype.Forward =  new javax.swing.text.Position.Bias ("Forward");
+c$.Backward = c$.prototype.Backward =  new javax.swing.text.Position.Bias ("Backward");
+c$ = Clazz_p0p ();
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.Document"], "javax.swing.text.StyledDocument", null, function () {
+Clazz_declareInterface (javax.swing.text, "StyledDocument", javax.swing.text.Document);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.Highlighter", "$.LayeredHighlighter", "java.util.Vector"], "javax.swing.text.DefaultHighlighter", ["java.awt.Rectangle", "javax.swing.SwingUtilities", "javax.swing.text.LayeredHighlighter.LayerPainter", "javax.swing.text.Position"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.highlights = null;
+this.component = null;
+this.drawsLayeredHighlights = false;
+this.safeDamager = null;
+if (!Clazz_isClassDefined ("javax.swing.text.DefaultHighlighter.HighlightInfo")) {
+javax.swing.text.DefaultHighlighter.$DefaultHighlighter$HighlightInfo$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.DefaultHighlighter.LayeredHighlightInfo")) {
+javax.swing.text.DefaultHighlighter.$DefaultHighlighter$LayeredHighlightInfo$ ();
+}
+if (!Clazz_isClassDefined ("javax.swing.text.DefaultHighlighter.SafeDamager")) {
+javax.swing.text.DefaultHighlighter.$DefaultHighlighter$SafeDamager$ ();
+}
+Clazz_instantialize (this, arguments);
+}, javax.swing.text, "DefaultHighlighter", javax.swing.text.LayeredHighlighter);
+Clazz_prepareFields (c$, function () {
+this.highlights =  new java.util.Vector ();
+this.safeDamager = Clazz_innerTypeInstance (javax.swing.text.DefaultHighlighter.SafeDamager, this, null);
+});
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.text.DefaultHighlighter, []);
+this.drawsLayeredHighlights = true;
+});
+Clazz_overrideMethod (c$, "paint", 
+function (g) {
+var len = this.highlights.size ();
+for (var i = 0; i < len; i++) {
+var info = this.highlights.elementAt (i);
+if (!(Clazz_instanceOf (info, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo))) {
+var a = this.component.getBounds ();
+var insets = this.component.getInsets ();
+a.x = insets.left;
+a.y = insets.top;
+a.width -= insets.left + insets.right;
+a.height -= insets.top + insets.bottom;
+for (; i < len; i++) {
+info = this.highlights.elementAt (i);
+if (!(Clazz_instanceOf (info, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo))) {
+var p = info.getPainter ();
+p.paint (g, info.getStartOffset (), info.getEndOffset (), a, this.component);
+}}
+}}
+}, "java.awt.Graphics");
+Clazz_overrideMethod (c$, "install", 
+function (c) {
+this.component = c;
+this.removeAllHighlights ();
+}, "javax.swing.text.JTextComponent");
+Clazz_overrideMethod (c$, "deinstall", 
+function (c) {
+this.component = null;
+}, "javax.swing.text.JTextComponent");
+Clazz_overrideMethod (c$, "addHighlight", 
+function (p0, p1, p) {
+var doc = this.component.getDocument ();
+var i = (this.getDrawsLayeredHighlights () && (Clazz_instanceOf (p, javax.swing.text.LayeredHighlighter.LayerPainter))) ? Clazz_innerTypeInstance (javax.swing.text.DefaultHighlighter.LayeredHighlightInfo, this, null) : Clazz_innerTypeInstance (javax.swing.text.DefaultHighlighter.HighlightInfo, this, null);
+i.painter = p;
+i.p0 = doc.createPosition (p0);
+i.p1 = doc.createPosition (p1);
+this.highlights.addElement (i);
+this.safeDamageRange (p0, p1);
+return i;
+}, "~N,~N,javax.swing.text.Highlighter.HighlightPainter");
+Clazz_overrideMethod (c$, "removeHighlight", 
+function (tag) {
+if (Clazz_instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
+var lhi = tag;
+if (lhi.width > 0 && lhi.height > 0) {
+this.component.repaint (lhi.x, lhi.y, lhi.width, lhi.height);
+}} else {
+var info = tag;
+this.safeDamageRange (info.p0, info.p1);
+}this.highlights.removeElement (tag);
+}, "~O");
+Clazz_overrideMethod (c$, "removeAllHighlights", 
+function () {
+var mapper = this.component.getUI ();
+if (this.getDrawsLayeredHighlights ()) {
+var len = this.highlights.size ();
+if (len != 0) {
+var minX = 0;
+var minY = 0;
+var maxX = 0;
+var maxY = 0;
+var p0 = -1;
+var p1 = -1;
+for (var i = 0; i < len; i++) {
+var hi = this.highlights.elementAt (i);
+if (Clazz_instanceOf (hi, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
+var info = hi;
+minX = Math.min (minX, info.x);
+minY = Math.min (minY, info.y);
+maxX = Math.max (maxX, info.x + info.width);
+maxY = Math.max (maxY, info.y + info.height);
+} else {
+if (p0 == -1) {
+p0 = hi.p0.getOffset ();
+p1 = hi.p1.getOffset ();
+} else {
+p0 = Math.min (p0, hi.p0.getOffset ());
+p1 = Math.max (p1, hi.p1.getOffset ());
+}}}
+if (minX != maxX && minY != maxY) {
+this.component.repaint (minX, minY, maxX - minX, maxY - minY);
+}if (p0 != -1) {
+try {
+this.safeDamageRange (p0, p1);
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+} else {
+throw e;
+}
+}
+}this.highlights.removeAllElements ();
+}} else if (mapper != null) {
+var len = this.highlights.size ();
+if (len != 0) {
+var p0 = 2147483647;
+var p1 = 0;
+for (var i = 0; i < len; i++) {
+var info = this.highlights.elementAt (i);
+p0 = Math.min (p0, info.p0.getOffset ());
+p1 = Math.max (p1, info.p1.getOffset ());
+}
+try {
+this.safeDamageRange (p0, p1);
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+} else {
+throw e;
+}
+}
+this.highlights.removeAllElements ();
+}}});
+Clazz_overrideMethod (c$, "changeHighlight", 
+function (tag, p0, p1) {
+var doc = this.component.getDocument ();
+if (Clazz_instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
+var lhi = tag;
+if (lhi.width > 0 && lhi.height > 0) {
+this.component.repaint (lhi.x, lhi.y, lhi.width, lhi.height);
+}lhi.width = lhi.height = 0;
+lhi.p0 = doc.createPosition (p0);
+lhi.p1 = doc.createPosition (p1);
+this.safeDamageRange (Math.min (p0, p1), Math.max (p0, p1));
+} else {
+var info = tag;
+var oldP0 = info.p0.getOffset ();
+var oldP1 = info.p1.getOffset ();
+if (p0 == oldP0) {
+this.safeDamageRange (Math.min (oldP1, p1), Math.max (oldP1, p1));
+} else if (p1 == oldP1) {
+this.safeDamageRange (Math.min (p0, oldP0), Math.max (p0, oldP0));
+} else {
+this.safeDamageRange (oldP0, oldP1);
+this.safeDamageRange (p0, p1);
+}info.p0 = doc.createPosition (p0);
+info.p1 = doc.createPosition (p1);
+}}, "~O,~N,~N");
+Clazz_overrideMethod (c$, "getHighlights", 
+function () {
+var size = this.highlights.size ();
+if (size == 0) {
+return javax.swing.text.DefaultHighlighter.noHighlights;
+}var h =  new Array (size);
+this.highlights.copyInto (h);
+return h;
+});
+Clazz_overrideMethod (c$, "paintLayeredHighlights", 
+function (g, p0, p1, viewBounds, editor, view) {
+for (var counter = this.highlights.size () - 1; counter >= 0; counter--) {
+var tag = this.highlights.elementAt (counter);
+if (Clazz_instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
+var lhi = tag;
+var start = lhi.getStartOffset ();
+var end = lhi.getEndOffset ();
+if ((p0 < start && p1 > start) || (p0 >= start && p0 < end)) {
+lhi.paintLayeredHighlights (g, p0, p1, viewBounds, editor, view);
+}}}
+}, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
+Clazz_defineMethod (c$, "safeDamageRange", 
+ function (p0, p1) {
+this.safeDamager.damageRange (p0, p1);
+}, "javax.swing.text.Position,javax.swing.text.Position");
+Clazz_defineMethod (c$, "safeDamageRange", 
+ function (a0, a1) {
+var doc = this.component.getDocument ();
+this.safeDamageRange (doc.createPosition (a0), doc.createPosition (a1));
+}, "~N,~N");
+Clazz_defineMethod (c$, "setDrawsLayeredHighlights", 
+function (newValue) {
+this.drawsLayeredHighlights = newValue;
+}, "~B");
+Clazz_defineMethod (c$, "getDrawsLayeredHighlights", 
+function () {
+return this.drawsLayeredHighlights;
+});
+c$.$DefaultHighlighter$HighlightInfo$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.p0 = null;
+this.p1 = null;
+this.painter = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultHighlighter, "HighlightInfo", null, javax.swing.text.Highlighter.Highlight);
+Clazz_overrideMethod (c$, "getStartOffset", 
+function () {
+return this.p0.getOffset ();
+});
+Clazz_overrideMethod (c$, "getEndOffset", 
+function () {
+return this.p1.getOffset ();
+});
+Clazz_overrideMethod (c$, "getPainter", 
+function () {
+return this.painter;
+});
+c$ = Clazz_p0p ();
+};
+c$.$DefaultHighlighter$LayeredHighlightInfo$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.x = 0;
+this.y = 0;
+this.width = 0;
+this.height = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultHighlighter, "LayeredHighlightInfo", javax.swing.text.DefaultHighlighter.HighlightInfo, null, Clazz_innerTypeInstance (javax.swing.text.DefaultHighlighter.HighlightInfo, this, null, Clazz_inheritArgs));
+Clazz_defineMethod (c$, "union", 
+function (a) {
+if (a == null) return;
+var b;
+if (Clazz_instanceOf (a, java.awt.Rectangle)) {
+b = a;
+} else {
+b = a.getBounds ();
+}if (this.width == 0 || this.height == 0) {
+this.x = b.x;
+this.y = b.y;
+this.width = b.width;
+this.height = b.height;
+} else {
+this.width = Math.max (this.x + this.width, b.x + b.width);
+this.height = Math.max (this.y + this.height, b.y + b.height);
+this.x = Math.min (this.x, b.x);
+this.width -= this.x;
+this.y = Math.min (this.y, b.y);
+this.height -= this.y;
+}}, "java.awt.Shape");
+Clazz_defineMethod (c$, "paintLayeredHighlights", 
+function (a, b, c, d, e, f) {
+var g = this.getStartOffset ();
+var h = this.getEndOffset ();
+b = Math.max (g, b);
+c = Math.min (h, c);
+this.union ((this.painter).paintLayer (a, b, c, d, e, f));
+}, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
+c$ = Clazz_p0p ();
+};
+c$.$DefaultHighlighter$SafeDamager$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.p0 = null;
+this.p1 = null;
+this.lastDoc = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultHighlighter, "SafeDamager", null, Runnable);
+Clazz_prepareFields (c$, function () {
+this.p0 =  new java.util.Vector (10);
+this.p1 =  new java.util.Vector (10);
+});
+Clazz_overrideMethod (c$, "run", 
+function () {
+if (this.b$["javax.swing.text.DefaultHighlighter"].component != null) {
+var a = this.b$["javax.swing.text.DefaultHighlighter"].component.getUI ();
+if (a != null && this.lastDoc === this.b$["javax.swing.text.DefaultHighlighter"].component.getDocument ()) {
+var b = this.p0.size ();
+for (var c = 0; c < b; c++) {
+a.damageRange (this.b$["javax.swing.text.DefaultHighlighter"].component, (this.p0.get (c)).getOffset (), (this.p1.get (c)).getOffset ());
+}
+}}this.p0.clear ();
+this.p1.clear ();
+this.lastDoc = null;
+});
+Clazz_defineMethod (c$, "damageRange", 
+function (a, b) {
+if (this.b$["javax.swing.text.DefaultHighlighter"].component == null) {
+this.p0.clear ();
+this.lastDoc = null;
+return;
+}var c = this.p0.isEmpty ();
+var d = this.b$["javax.swing.text.DefaultHighlighter"].component.getDocument ();
+if (d !== this.lastDoc) {
+if (!this.p0.isEmpty ()) {
+this.p0.clear ();
+this.p1.clear ();
+}this.lastDoc = d;
+}this.p0.add (a);
+this.p1.add (b);
+if (c) {
+javax.swing.SwingUtilities.invokeLater (this);
+}}, "javax.swing.text.Position,javax.swing.text.Position");
+c$ = Clazz_p0p ();
+};
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.color = null;
+Clazz_instantialize (this, arguments);
+}, javax.swing.text.DefaultHighlighter, "DefaultHighlightPainter", javax.swing.text.LayeredHighlighter.LayerPainter);
+Clazz_makeConstructor (c$, 
+function (a) {
+Clazz_superConstructor (this, javax.swing.text.DefaultHighlighter.DefaultHighlightPainter, []);
+this.color = a;
+}, "java.awt.Color");
+Clazz_defineMethod (c$, "getColor", 
+function () {
+return this.color;
+});
+Clazz_overrideMethod (c$, "paint", 
+function (a, b, c, d, e) {
+var f = d.getBounds ();
+try {
+var g = e.getUI ();
+var h = g.modelToView (e, b);
+var i = g.modelToView (e, c);
+var j = this.getColor ();
+if (j == null) {
+a.setColor (e.getSelectionColor ());
+} else {
+a.setColor (j);
+}if (h.y == i.y) {
+var k = h.union (i);
+a.fillRect (k.x, k.y, k.width, k.height);
+} else {
+var k = f.x + f.width - h.x;
+a.fillRect (h.x, h.y, k, h.height);
+if ((h.y + h.height) != i.y) {
+a.fillRect (f.x, h.y + h.height, f.width, i.y - (h.y + h.height));
+}a.fillRect (f.x, i.y, (i.x - f.x), i.height);
+}} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+} else {
+throw e;
+}
+}
+}, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent");
+Clazz_overrideMethod (c$, "paintLayer", 
+function (a, b, c, d, e, f) {
+var g = this.getColor ();
+if (g == null) {
+a.setColor (e.getSelectionColor ());
+} else {
+a.setColor (g);
+}var h;
+if (b == f.getStartOffset () && c == f.getEndOffset ()) {
+if (Clazz_instanceOf (d, java.awt.Rectangle)) {
+h = d;
+} else {
+h = d.getBounds ();
+}} else {
+try {
+var i = f.modelToView (b, javax.swing.text.Position.Bias.Forward, c, javax.swing.text.Position.Bias.Backward, d);
+h = (Clazz_instanceOf (i, java.awt.Rectangle)) ? i : i.getBounds ();
+} catch (e) {
+if (Clazz_exceptionOf (e, javax.swing.text.BadLocationException)) {
+h = null;
+} else {
+throw e;
+}
+}
+}if (h != null) {
+h.width = Math.max (h.width, 1);
+a.fillRect (h.x, h.y, h.width, h.height);
+}return h;
+}, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
+c$ = Clazz_p0p ();
+c$.noHighlights = c$.prototype.noHighlights =  new Array (0);
+c$.DefaultPainter = c$.prototype.DefaultPainter =  new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter (null);
+});
+Clazz_declarePackage ("javax.swing.text");
+Clazz_declareInterface (javax.swing.text, "Highlighter");
+Clazz_declareInterface (javax.swing.text.Highlighter, "HighlightPainter");
+Clazz_declareInterface (javax.swing.text.Highlighter, "Highlight");
+Clazz_declarePackage ("javax.swing.text");
+Clazz_load (["javax.swing.text.Highlighter"], "javax.swing.text.LayeredHighlighter", null, function () {
+c$ = Clazz_declareType (javax.swing.text, "LayeredHighlighter", null, javax.swing.text.Highlighter);
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.text.LayeredHighlighter, "LayerPainter", null, javax.swing.text.Highlighter.HighlightPainter);
+c$ = Clazz_p0p ();
+});
+Clazz_declarePackage ("swingjs");
+Clazz_load (["swingjs.JSAbstractDocument"], "swingjs.JSPlainDocument", ["java.util.Hashtable", "JU.SB", "swingjs.JSPosition"], function () {
+c$ = Clazz_declareType (swingjs, "JSPlainDocument", swingjs.JSAbstractDocument);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, swingjs.JSPlainDocument);
+this.sb =  new JU.SB ();
+this.root = Clazz_innerTypeInstance (swingjs.JSAbstractDocument.JSElement, this, null);
+});
+Clazz_overrideMethod (c$, "getLength", 
+function () {
+return this.sb.length ();
+});
+Clazz_defineMethod (c$, "getText", 
+function (offset, length) {
+this.checkLoc (offset, offset + length);
+return this.sb.substring2 (offset, offset + length);
+}, "~N,~N");
+Clazz_defineMethod (c$, "getText", 
+function (offset, length, chars) {
+this.checkLoc (offset, offset + length);
+if (this.tempChar == null) {
+this.tempChar =  Clazz_newCharArray (this.sb.length (), '\0');
+for (var i = this.tempChar.length; --i >= 0; ) this.tempChar[i] = this.sb.charAt (i);
+
+}chars.array = this.tempChar;
+chars.offset = offset;
+chars.count = length;
+}, "~N,~N,javax.swing.text.Segment");
+Clazz_overrideMethod (c$, "getStartPosition", 
+function () {
+return  new swingjs.JSPosition (0);
+});
+Clazz_overrideMethod (c$, "getEndPosition", 
+function () {
+return  new swingjs.JSPosition (this.sb.length ());
+});
+Clazz_overrideMethod (c$, "createPosition", 
+function (offs) {
+this.checkLoc (offs, offs);
+var i = Integer.$valueOf (offs);
+if (this.positions == null) this.positions =  new java.util.Hashtable ();
+var p = this.positions.get (i);
+if (p == null) this.positions.put (i, p =  new swingjs.JSPosition (offs));
+return p;
+}, "~N");
+Clazz_overrideMethod (c$, "getDefaultRootElement", 
+function () {
+return this.root;
+});
+Clazz_overrideMethod (c$, "render", 
+function (r) {
+}, "Runnable");
+Clazz_defineStatics (c$,
+"tabSizeAttribute", "tabSize",
+"lineLimitAttribute", "lineLimit");
+});
+Clazz_declarePackage ("swingjs");
+Clazz_load (["javax.swing.text.DocumentFilter", "$.Element", "$.JSMinimalAbstractDocument"], "swingjs.JSAbstractDocument", ["java.lang.IllegalStateException", "java.util.HashMap", "JU.AU", "javax.swing.event.DocumentEvent", "$.DocumentListener", "$.EventListenerList", "javax.swing.text.BadLocationException", "swingjs.JSDocumentEvent"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.props = null;
+this.root = null;
+this.positions = null;
+this.listenerList = null;
+this.notifyingListeners = false;
+this.filterBypass = null;
+this.me = null;
+this.sb = null;
+this.tempChar = null;
+this.filter = null;
+if (!Clazz_isClassDefined ("swingjs.JSAbstractDocument.DefaultFilterBypass")) {
+swingjs.JSAbstractDocument.$JSAbstractDocument$DefaultFilterBypass$ ();
+}
+if (!Clazz_isClassDefined ("swingjs.JSAbstractDocument.JSElement")) {
+swingjs.JSAbstractDocument.$JSAbstractDocument$JSElement$ ();
+}
+Clazz_instantialize (this, arguments);
+}, swingjs, "JSAbstractDocument", null, javax.swing.text.JSMinimalAbstractDocument);
+Clazz_makeConstructor (c$, 
+function () {
+this.me = this;
+this.props =  new java.util.HashMap ();
+});
+Clazz_overrideMethod (c$, "getRootElements", 
+function () {
+return  Clazz_newArray (-1, [this.root, null]);
+});
+Clazz_defineMethod (c$, "checkLoc", 
+function (start, end) {
+if (start < 0 || end > this.getLength ()) throw  new javax.swing.text.BadLocationException ("JSAbstractDocument: out of range", (start < 0 ? start : end));
+}, "~N,~N");
+Clazz_defineMethod (c$, "fixPositions", 
+function (offset, length, isInsert) {
+if (this.positions == null || this.positions.isEmpty ()) return;
+if (isInsert) {
+for (var i, $i = this.positions.keySet ().iterator (); $i.hasNext () && ((i = $i.next ()) || true);) {
+var pos = i.intValue ();
+if (pos > offset) this.positions.get (i).pos += length;
+}
+return;
+}for (var i, $i = this.positions.keySet ().iterator (); $i.hasNext () && ((i = $i.next ()) || true);) {
+var pos = i.intValue ();
+if (pos <= offset) continue;
+if (pos >= offset + length) this.positions.get (i).pos -= length;
+ else this.positions.get (i).pos = offset;
+}
+}, "~N,~N,~B");
+Clazz_defineMethod (c$, "getFilterBypass", 
+ function () {
+if (this.filterBypass == null) {
+this.filterBypass = Clazz_innerTypeInstance (swingjs.JSAbstractDocument.DefaultFilterBypass, this, null);
+}return this.filterBypass;
+});
+Clazz_overrideMethod (c$, "remove", 
+function (offs, len) {
+var filter = this.getDocumentFilter ();
+if (filter == null) this.handleRemove (offs, len);
+ else filter.remove (this.getFilterBypass (), offs, len);
+}, "~N,~N");
+Clazz_overrideMethod (c$, "insertString", 
+function (offset, str, a) {
+var filter = this.getDocumentFilter ();
+if (filter == null) this.handleInsertString (offset, str, a);
+ else filter.insertString (this.getFilterBypass (), offset, str, a);
+}, "~N,~S,javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "replace", 
+function (offset, length, text, attrs) {
+if (length == 0 && (text == null || text.length == 0)) return;
+var filter = this.getDocumentFilter ();
+if (filter != null) {
+filter.replace (this.getFilterBypass (), offset, length, text, attrs);
+} else {
+if (length > 0) this.remove (offset, length);
+if (text != null && text.length > 0) this.insertString (offset, text, attrs);
+}}, "~N,~N,~S,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "taint", 
+ function () {
+this.tempChar = null;
+});
+Clazz_defineMethod (c$, "setLines", 
+ function () {
+this.root = Clazz_innerTypeInstance (swingjs.JSAbstractDocument.JSElement, this, null);
+var s = this.sb.toString ();
+if (s.lastIndexOf ('\n') != s.length - 1) s += "\n";
+var ilast = 0;
+for (var i = 0; i < s.length; i++) {
+if (s.charAt (i) != '\n') continue;
+var e = Clazz_innerTypeInstance (swingjs.JSAbstractDocument.JSElement, this, null);
+e.start = ilast;
+e.end = i;
+ilast = i + 1;
+this.root.addChild (e);
+}
+});
+Clazz_defineMethod (c$, "handleInsertString", 
+function (offs, str, a) {
+if ((str == null) || (str.length == 0)) {
+return;
+}this.checkLoc (offs, offs);
+this.taint ();
+this.sb.insert (offs, str);
+this.fixPositions (offs, str.length, true);
+if (str.indexOf ('\n') >= 0) this.setLines ();
+var e =  new swingjs.JSDocumentEvent (this, offs, str.length, javax.swing.event.DocumentEvent.EventType.INSERT);
+this.fireInsertUpdate (e);
+}, "~N,~S,javax.swing.text.AttributeSet");
+Clazz_defineMethod (c$, "handleRemove", 
+function (offs, len) {
+this.checkLoc (offs, offs + len);
+this.taint ();
+var str = this.sb.substring2 (offs, offs + len);
+this.sb.replace (offs, offs + len, "");
+this.fixPositions (offs, offs + len, false);
+if (str.indexOf ('\n') >= 0) this.setLines ();
+if (len > 0) {
+var chng =  new swingjs.JSDocumentEvent (this, offs, len, javax.swing.event.DocumentEvent.EventType.REMOVE);
+this.fireRemoveUpdate (chng);
+}}, "~N,~N");
+Clazz_defineMethod (c$, "fireInsertUpdate", 
+function (e) {
+if (this.listenerList == null) return;
+this.checkAlreadyNotifying ();
+this.notifyingListeners = true;
+try {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.DocumentListener) {
+(listeners[i + 1]).insertUpdate (e);
+}}
+} finally {
+this.notifyingListeners = false;
+}
+}, "javax.swing.event.DocumentEvent");
+Clazz_defineMethod (c$, "fireChangedUpdate", 
+function (e) {
+if (this.listenerList == null) return;
+this.checkAlreadyNotifying ();
+this.notifyingListeners = true;
+try {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.DocumentListener) {
+(listeners[i + 1]).changedUpdate (e);
+}}
+} finally {
+this.notifyingListeners = false;
+}
+}, "javax.swing.event.DocumentEvent");
+Clazz_defineMethod (c$, "fireRemoveUpdate", 
+function (e) {
+if (this.listenerList == null) return;
+this.checkAlreadyNotifying ();
+this.notifyingListeners = true;
+try {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.DocumentListener) {
+(listeners[i + 1]).removeUpdate (e);
+}}
+} finally {
+this.notifyingListeners = false;
+}
+}, "javax.swing.event.DocumentEvent");
+Clazz_defineMethod (c$, "checkAlreadyNotifying", 
+ function () {
+if (this.notifyingListeners) throw  new IllegalStateException ("One of the document listeners modifed the document. This is not allowed.");
+});
+Clazz_overrideMethod (c$, "addDocumentListener", 
+function (listener) {
+if (this.listenerList == null) this.listenerList =  new javax.swing.event.EventListenerList ();
+this.listenerList.add (javax.swing.event.DocumentListener, listener);
+}, "javax.swing.event.DocumentListener");
+Clazz_overrideMethod (c$, "removeDocumentListener", 
+function (listener) {
+if (this.listenerList != null) this.listenerList.remove (javax.swing.event.DocumentListener, listener);
+}, "javax.swing.event.DocumentListener");
+Clazz_overrideMethod (c$, "addUndoableEditListener", 
+function (listener) {
+}, "javax.swing.event.UndoableEditListener");
+Clazz_overrideMethod (c$, "removeUndoableEditListener", 
+function (listener) {
+}, "javax.swing.event.UndoableEditListener");
+Clazz_overrideMethod (c$, "getProperty", 
+function (key) {
+return this.props.get (key);
+}, "~O");
+Clazz_overrideMethod (c$, "putProperty", 
+function (key, value) {
+this.props.put (key, value);
+}, "~O,~O");
+Clazz_overrideMethod (c$, "getAsynchronousLoadPriority", 
+function () {
+return -1;
+});
+Clazz_overrideMethod (c$, "setDocumentFilter", 
+function (filter) {
+this.filter = filter;
+}, "javax.swing.text.DocumentFilter");
+Clazz_defineMethod (c$, "getDocumentFilter", 
+function () {
+return this.filter;
+});
+c$.$JSAbstractDocument$DefaultFilterBypass$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+Clazz_instantialize (this, arguments);
+}, swingjs.JSAbstractDocument, "DefaultFilterBypass", javax.swing.text.DocumentFilter.FilterBypass);
+Clazz_overrideMethod (c$, "getDocument", 
+function () {
+return this.b$["swingjs.JSAbstractDocument"].me;
+});
+Clazz_overrideMethod (c$, "remove", 
+function (a, b) {
+this.b$["swingjs.JSAbstractDocument"].handleRemove (a, b);
+}, "~N,~N");
+Clazz_overrideMethod (c$, "insertString", 
+function (a, b, c) {
+this.b$["swingjs.JSAbstractDocument"].handleInsertString (a, b, c);
+}, "~N,~S,javax.swing.text.AttributeSet");
+Clazz_overrideMethod (c$, "replace", 
+function (a, b, c, d) {
+this.b$["swingjs.JSAbstractDocument"].handleRemove (a, b);
+this.b$["swingjs.JSAbstractDocument"].handleInsertString (a, c, d);
+}, "~N,~N,~S,javax.swing.text.AttributeSet");
+c$ = Clazz_p0p ();
+};
+c$.$JSAbstractDocument$JSElement$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.parent = null;
+this.attributeSet = null;
+this.start = 0;
+this.end = 0;
+this.nchildren = 0;
+this.children = null;
+this.lastIndex = 0;
+Clazz_instantialize (this, arguments);
+}, swingjs.JSAbstractDocument, "JSElement", null, javax.swing.text.Element);
+Clazz_makeConstructor (c$, 
+function () {
+this.children = null;
+this.nchildren = 0;
+this.lastIndex = -1;
+});
+Clazz_defineMethod (c$, "addChild", 
+function (a) {
+if (this.children == null) this.children =  new Array (10);
+ else if (this.nchildren == this.children.length) this.children = JU.AU.doubleLength (this.children);
+this.children[this.nchildren++] = a;
+}, "swingjs.JSAbstractDocument.JSElement");
+Clazz_overrideMethod (c$, "getDocument", 
+function () {
+return this.b$["swingjs.JSAbstractDocument"].me;
+});
+Clazz_overrideMethod (c$, "getParentElement", 
+function () {
+return this.parent;
+});
+Clazz_overrideMethod (c$, "getName", 
+function () {
+return this.getName ();
+});
+Clazz_overrideMethod (c$, "getAttributes", 
+function () {
+return this.attributeSet;
+});
+Clazz_defineMethod (c$, "getStartOffset", 
+function () {
+return this.start;
+});
+Clazz_defineMethod (c$, "getEndOffset", 
+function () {
+return this.end;
+});
+Clazz_overrideMethod (c$, "getElementIndex", 
+function (a) {
+var b;
+var c = 0;
+var d = this.nchildren - 1;
+var e = 0;
+var f = this.getStartOffset ();
+var g;
+if (this.nchildren == 0) {
+return 0;
+}if (a >= this.getEndOffset ()) {
+return this.nchildren - 1;
+}if ((this.lastIndex >= c) && (this.lastIndex <= d)) {
+var h = this.children[this.lastIndex];
+f = h.getStartOffset ();
+g = h.getEndOffset ();
+if ((a >= f) && (a < g)) {
+return this.lastIndex;
+}if (a < f) {
+d = this.lastIndex;
+} else {
+c = this.lastIndex;
+}}while (c <= d) {
+e = c + (Clazz_doubleToInt ((d - c) / 2));
+var h = this.children[e];
+f = h.getStartOffset ();
+g = h.getEndOffset ();
+if ((a >= f) && (a < g)) {
+b = e;
+this.lastIndex = b;
+return b;
+} else if (a < f) {
+d = e - 1;
+} else {
+c = e + 1;
+}}
+if (a < f) {
+b = e;
+} else {
+b = e + 1;
+}this.lastIndex = b;
+return b;
+}, "~N");
+Clazz_overrideMethod (c$, "getElementCount", 
+function () {
+return this.nchildren;
+});
+Clazz_overrideMethod (c$, "getElement", 
+function (a) {
+return (a >= this.nchildren ? null : this.children[a]);
+}, "~N");
+Clazz_overrideMethod (c$, "isLeaf", 
+function () {
+return (this.parent != null);
+});
+c$ = Clazz_p0p ();
+};
+Clazz_defineStatics (c$,
+"ParagraphElementName", "paragraph",
+"ContentElementName", "content");
+});
+Clazz_declarePackage ("swingjs");
+Clazz_load (["javax.swing.event.DocumentEvent"], "swingjs.JSDocumentEvent", ["swingjs.JSToolkit"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.off = 0;
+this.len = 0;
+this.type = null;
+this.doc = null;
+Clazz_instantialize (this, arguments);
+}, swingjs, "JSDocumentEvent", null, javax.swing.event.DocumentEvent);
+Clazz_makeConstructor (c$, 
+function (doc, offs, len, eventType) {
+this.off = offs;
+this.len = len;
+this.type = eventType;
+this.doc = doc;
+}, "swingjs.JSAbstractDocument,~N,~N,javax.swing.event.DocumentEvent.EventType");
+Clazz_overrideMethod (c$, "getOffset", 
+function () {
+return this.off;
+});
+Clazz_overrideMethod (c$, "getLength", 
+function () {
+return this.len;
+});
+Clazz_overrideMethod (c$, "getDocument", 
+function () {
+return this.doc;
+});
+Clazz_overrideMethod (c$, "getType", 
+function () {
+return this.type;
+});
+Clazz_overrideMethod (c$, "getChange", 
+function (elem) {
+swingjs.JSToolkit.notImplemented ("");
+return null;
+}, "javax.swing.text.Element");
+});
+Clazz_declarePackage ("swingjs");
+Clazz_load (["javax.swing.text.Position"], "swingjs.JSPosition", null, function () {
+c$ = Clazz_decorateAsClass (function () {
+this.pos = 0;
+Clazz_instantialize (this, arguments);
+}, swingjs, "JSPosition", null, javax.swing.text.Position);
+Clazz_makeConstructor (c$, 
+function (offset) {
+this.pos = offset;
+}, "~N");
+Clazz_overrideMethod (c$, "getOffset", 
+function () {
+return this.pos;
+});
+});
+Clazz_declarePackage ("swingjs.api");
+c$ = Clazz_declareType (swingjs.api, "HTML5CanvasContext2D");
+c$.stretchImage = Clazz_defineMethod (c$, "stretchImage", 
+function (ctx, img, sx, sy, swidth, sheight, dx, dy, dwidth, dheight) {
+{
+ctx.drawImage(img, sx, sy, swidth, sheight, dx, dy, dwidth, dheight);
+}}, "swingjs.api.HTML5CanvasContext2D,swingjs.api.DOMNode,~N,~N,~N,~N,~N,~N,~N,~N");
+Clazz_declarePackage ("javax.swing");
+Clazz_load (["javax.swing.JLabel", "$.ListCellRenderer", "javax.swing.plaf.UIResource", "javax.swing.border.EmptyBorder"], "javax.swing.DefaultListCellRenderer", ["javax.swing.Icon", "jssun.swing.DefaultLookup"], function () {
+c$ = Clazz_declareType (javax.swing, "DefaultListCellRenderer", javax.swing.JLabel, javax.swing.ListCellRenderer);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, javax.swing.DefaultListCellRenderer);
+this.setOpaque (true);
+this.setBorder (this.getNoFocusBorder ());
+this.setName ("List.cellRenderer");
+});
+Clazz_defineMethod (c$, "getNoFocusBorder", 
+ function () {
+var border = jssun.swing.DefaultLookup.getBorder (this, this.ui, "List.cellNoFocusBorder");
+if (System.getSecurityManager () != null) {
+if (border != null) return border;
+return javax.swing.DefaultListCellRenderer.SAFE_NO_FOCUS_BORDER;
+} else {
+if (border != null && (javax.swing.DefaultListCellRenderer.noFocusBorder == null || javax.swing.DefaultListCellRenderer.noFocusBorder === javax.swing.DefaultListCellRenderer.DEFAULT_NO_FOCUS_BORDER)) {
+return border;
+}return javax.swing.DefaultListCellRenderer.noFocusBorder;
+}});
+Clazz_overrideMethod (c$, "getListCellRendererComponent", 
+function (list, value, index, isSelected, cellHasFocus) {
+this.setComponentOrientation (list.getComponentOrientation ());
+var bg = null;
+var fg = null;
+if (isSelected) {
+this.setBackground (bg == null ? list.getSelectionBackground () : bg);
+this.setForeground (fg == null ? list.getSelectionForeground () : fg);
+} else {
+this.setBackground (list.getBackground ());
+this.setForeground (list.getForeground ());
+}if (Clazz_instanceOf (value, javax.swing.Icon)) {
+this.setIcon (value);
+this.setText ("");
+} else {
+this.setIcon (null);
+this.setText ((value == null) ? "" : value.toString ());
+}this.setEnabled (list.isEnabled ());
+this.setFont (list.getFont ());
+var border = null;
+if (cellHasFocus) {
+if (isSelected) {
+border = jssun.swing.DefaultLookup.getBorder (this, this.ui, "List.focusSelectedCellHighlightBorder");
+}if (border == null) {
+border = jssun.swing.DefaultLookup.getBorder (this, this.ui, "List.focusCellHighlightBorder");
+}} else {
+border = this.getNoFocusBorder ();
+}this.setBorder (border);
+return this;
+}, "javax.swing.JList,~O,~N,~B,~B");
+Clazz_defineMethod (c$, "isOpaque", 
+function () {
+var back = this.getBackground ();
+var p = this.getParent ();
+if (p != null) {
+p = p.getParent ();
+}var colorMatch = (back != null) && (p != null) && back.equals (p.getBackground ()) && p.isOpaque ();
+return !colorMatch && Clazz_superCall (this, javax.swing.DefaultListCellRenderer, "isOpaque", []);
+});
+Clazz_overrideMethod (c$, "validate", 
+function () {
+});
+Clazz_overrideMethod (c$, "invalidate", 
+function () {
+});
+Clazz_defineMethod (c$, "repaint", 
+function () {
+});
+Clazz_overrideMethod (c$, "revalidate", 
+function () {
+});
+Clazz_defineMethod (c$, "repaint", 
+function (tm, x, y, width, height) {
+}, "~N,~N,~N,~N,~N");
+Clazz_defineMethod (c$, "repaint", 
+function (r) {
+}, "java.awt.Rectangle");
+Clazz_overrideMethod (c$, "firePropertyChangeObject", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~O,~O");
+Clazz_overrideMethod (c$, "firePropertyChangeByte", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~N,~N");
+Clazz_overrideMethod (c$, "firePropertyChangeChar", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~S,~S");
+Clazz_overrideMethod (c$, "firePropertyChangeShort", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~N,~N");
+Clazz_overrideMethod (c$, "firePropertyChangeInt", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~N,~N");
+Clazz_overrideMethod (c$, "firePropertyChangeLong", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~N,~N");
+Clazz_overrideMethod (c$, "firePropertyChangeFloat", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~N,~N");
+Clazz_overrideMethod (c$, "firePropertyChangeDouble", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~N,~N");
+Clazz_overrideMethod (c$, "firePropertyChangeBool", 
+function (propertyName, oldValue, newValue) {
+}, "~S,~B,~B");
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareType (javax.swing.DefaultListCellRenderer, "UIResource", javax.swing.DefaultListCellRenderer, javax.swing.plaf.UIResource);
+c$ = Clazz_p0p ();
+c$.SAFE_NO_FOCUS_BORDER = c$.prototype.SAFE_NO_FOCUS_BORDER =  new javax.swing.border.EmptyBorder (1, 1, 1, 1);
+c$.DEFAULT_NO_FOCUS_BORDER = c$.prototype.DEFAULT_NO_FOCUS_BORDER =  new javax.swing.border.EmptyBorder (1, 1, 1, 1);
+c$.noFocusBorder = c$.prototype.noFocusBorder = javax.swing.DefaultListCellRenderer.DEFAULT_NO_FOCUS_BORDER;
+});
+Clazz_declarePackage ("javax.swing");
+Clazz_declareInterface (javax.swing, "ListCellRenderer");
+Clazz_declarePackage ("javax.swing.border");
+Clazz_load (["javax.swing.border.AbstractBorder"], "javax.swing.border.EmptyBorder", ["java.awt.Insets"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.left = 0;
+this.right = 0;
+this.top = 0;
+this.bottom = 0;
+Clazz_instantialize (this, arguments);
+}, javax.swing.border, "EmptyBorder", javax.swing.border.AbstractBorder);
+Clazz_makeConstructor (c$, 
+function (top, left, bottom, right) {
+Clazz_superConstructor (this, javax.swing.border.EmptyBorder, []);
+this.top = top;
+this.right = right;
+this.bottom = bottom;
+this.left = left;
+}, "~N,~N,~N,~N");
+Clazz_makeConstructor (c$, 
+function (borderInsets) {
+Clazz_superConstructor (this, javax.swing.border.EmptyBorder, []);
+this.top = borderInsets.top;
+this.right = borderInsets.right;
+this.bottom = borderInsets.bottom;
+this.left = borderInsets.left;
+}, "java.awt.Insets");
+Clazz_overrideMethod (c$, "paintBorder", 
+function (c, g, x, y, width, height) {
+}, "java.awt.Component,java.awt.Graphics,~N,~N,~N,~N");
+Clazz_defineMethod (c$, "getBorderInsets", 
+function (c) {
+return this.getBorderInsets ();
+}, "java.awt.Component");
+Clazz_defineMethod (c$, "getBorderInsets", 
+function (c, insets) {
+insets.left = this.left;
+insets.top = this.top;
+insets.right = this.right;
+insets.bottom = this.bottom;
+return insets;
+}, "java.awt.Component,java.awt.Insets");
+Clazz_defineMethod (c$, "getBorderInsets", 
+function () {
+return  new java.awt.Insets (this.top, this.left, this.bottom, this.right);
+});
+Clazz_overrideMethod (c$, "isBorderOpaque", 
+function () {
+return false;
+});
+});
+Clazz_declarePackage ("jssun.swing");
+Clazz_load (null, "jssun.swing.DefaultLookup", ["java.lang.Boolean", "$.Number", "$.Thread", "java.awt.Color", "$.Insets", "javax.swing.Icon", "$.UIManager", "javax.swing.border.Border", "jssun.awt.AppContext"], function () {
+c$ = Clazz_declareType (jssun.swing, "DefaultLookup");
+c$.setDefaultLookup = Clazz_defineMethod (c$, "setDefaultLookup", 
+function (lookup) {
+{
+if (!jssun.swing.DefaultLookup.isLookupSet && lookup == null) {
+return;
+} else if (lookup == null) {
+lookup =  new jssun.swing.DefaultLookup ();
+}jssun.swing.DefaultLookup.isLookupSet = true;
+jssun.awt.AppContext.getAppContext ().put (jssun.swing.DefaultLookup.DEFAULT_LOOKUP_KEY, lookup);
+jssun.swing.DefaultLookup.currentDefaultThread = Thread.currentThread ();
+jssun.swing.DefaultLookup.currentDefaultLookup = lookup;
+}}, "jssun.swing.DefaultLookup");
+c$.get = Clazz_defineMethod (c$, "get", 
+function (c, ui, key) {
+var lookupSet;
+{
+lookupSet = jssun.swing.DefaultLookup.isLookupSet;
+}if (!lookupSet) {
+return javax.swing.UIManager.get (key, c.getLocale ());
+}var thisThread = Thread.currentThread ();
+var lookup;
+{
+if (thisThread === jssun.swing.DefaultLookup.currentDefaultThread) {
+lookup = jssun.swing.DefaultLookup.currentDefaultLookup;
+} else {
+lookup = jssun.awt.AppContext.getAppContext ().get (jssun.swing.DefaultLookup.DEFAULT_LOOKUP_KEY);
+if (lookup == null) {
+lookup =  new jssun.swing.DefaultLookup ();
+jssun.awt.AppContext.getAppContext ().put (jssun.swing.DefaultLookup.DEFAULT_LOOKUP_KEY, lookup);
+}jssun.swing.DefaultLookup.currentDefaultThread = thisThread;
+jssun.swing.DefaultLookup.currentDefaultLookup = lookup;
+}}return lookup.getDefault (c, ui, key);
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+c$.getInt = Clazz_defineMethod (c$, "getInt", 
+function (c, ui, key, defaultValue) {
+var iValue = jssun.swing.DefaultLookup.get (c, ui, key);
+if (iValue == null || !(Clazz_instanceOf (iValue, Number))) {
+return defaultValue;
+}return (iValue).intValue ();
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S,~N");
+c$.getInt = Clazz_defineMethod (c$, "getInt", 
+function (c, ui, key) {
+return jssun.swing.DefaultLookup.getInt (c, ui, key, -1);
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+c$.getInsets = Clazz_defineMethod (c$, "getInsets", 
+function (c, ui, key, defaultValue) {
+var iValue = jssun.swing.DefaultLookup.get (c, ui, key);
+if (iValue == null || !(Clazz_instanceOf (iValue, java.awt.Insets))) {
+return defaultValue;
+}return iValue;
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S,java.awt.Insets");
+c$.getInsets = Clazz_defineMethod (c$, "getInsets", 
+function (c, ui, key) {
+return jssun.swing.DefaultLookup.getInsets (c, ui, key, null);
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+c$.getBoolean = Clazz_defineMethod (c$, "getBoolean", 
+function (c, ui, key, defaultValue) {
+var iValue = jssun.swing.DefaultLookup.get (c, ui, key);
+if (iValue == null || !(Clazz_instanceOf (iValue, Boolean))) {
+return defaultValue;
+}return (iValue).booleanValue ();
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S,~B");
+c$.getBoolean = Clazz_defineMethod (c$, "getBoolean", 
+function (c, ui, key) {
+return jssun.swing.DefaultLookup.getBoolean (c, ui, key, false);
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+c$.getColor = Clazz_defineMethod (c$, "getColor", 
+function (c, ui, key, defaultValue) {
+var iValue = jssun.swing.DefaultLookup.get (c, ui, key);
+if (iValue == null || !(Clazz_instanceOf (iValue, java.awt.Color))) {
+return defaultValue;
+}return iValue;
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S,java.awt.Color");
+c$.getColor = Clazz_defineMethod (c$, "getColor", 
+function (c, ui, key) {
+return jssun.swing.DefaultLookup.getColor (c, ui, key, null);
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+c$.getIcon = Clazz_defineMethod (c$, "getIcon", 
+function (c, ui, key, defaultValue) {
+var iValue = jssun.swing.DefaultLookup.get (c, ui, key);
+if (iValue == null || !(Clazz_instanceOf (iValue, javax.swing.Icon))) {
+return defaultValue;
+}return iValue;
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S,javax.swing.Icon");
+c$.getIcon = Clazz_defineMethod (c$, "getIcon", 
+function (c, ui, key) {
+return jssun.swing.DefaultLookup.getIcon (c, ui, key, null);
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+c$.getBorder = Clazz_defineMethod (c$, "getBorder", 
+function (c, ui, key, defaultValue) {
+var iValue = jssun.swing.DefaultLookup.get (c, ui, key);
+if (iValue == null || !(Clazz_instanceOf (iValue, javax.swing.border.Border))) {
+return defaultValue;
+}return iValue;
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S,javax.swing.border.Border");
+c$.getBorder = Clazz_defineMethod (c$, "getBorder", 
+function (c, ui, key) {
+return jssun.swing.DefaultLookup.getBorder (c, ui, key, null);
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+Clazz_defineMethod (c$, "getDefault", 
+function (c, ui, key) {
+return javax.swing.UIManager.get (key, c.getLocale ());
+}, "javax.swing.JComponent,javax.swing.plaf.ComponentUI,~S");
+c$.DEFAULT_LOOKUP_KEY = c$.prototype.DEFAULT_LOOKUP_KEY =  new Clazz._O ();
+Clazz_defineStatics (c$,
+"currentDefaultThread", null,
+"currentDefaultLookup", null,
+"isLookupSet", false);
+});
+Clazz_declarePackage ("javax.swing.plaf");
+Clazz_load (["java.awt.Dimension", "javax.swing.plaf.UIResource"], "javax.swing.plaf.DimensionUIResource", null, function () {
+c$ = Clazz_declareType (javax.swing.plaf, "DimensionUIResource", java.awt.Dimension, javax.swing.plaf.UIResource);
+});
+Clazz_declarePackage ("javax.swing.plaf");
+Clazz_load (["java.awt.Insets", "javax.swing.plaf.UIResource"], "javax.swing.plaf.InsetsUIResource", null, function () {
+c$ = Clazz_declareType (javax.swing.plaf, "InsetsUIResource", java.awt.Insets, javax.swing.plaf.UIResource);
+});
+Clazz_declarePackage ("swingjs.plaf");
+Clazz_declareInterface (swingjs.plaf, "JSEventHandler");
+Clazz_declarePackage ("JU");
+Clazz_load (["java.net.URLStreamHandlerFactory", "java.util.Hashtable"], "JU.AjaxURLStreamHandlerFactory", ["JU.AjaxURLStreamHandler"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.htFactories = null;
+Clazz_instantialize (this, arguments);
+}, JU, "AjaxURLStreamHandlerFactory", null, java.net.URLStreamHandlerFactory);
+Clazz_prepareFields (c$, function () {
+this.htFactories =  new java.util.Hashtable ();
+});
+Clazz_overrideMethod (c$, "createURLStreamHandler", 
+function (protocol) {
+var fac = this.htFactories.get (protocol);
+if (fac == null) this.htFactories.put (protocol, fac =  new JU.AjaxURLStreamHandler (protocol));
+return (fac.protocol == null ? null : fac);
+}, "~S");
+});
+Clazz_declarePackage ("java.net");
+Clazz_declareInterface (java.net, "URLStreamHandlerFactory");
+Clazz_declarePackage ("JU");
+Clazz_load (["java.net.URLStreamHandler"], "JU.AjaxURLStreamHandler", ["JU.AjaxURLConnection", "$.SB"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.protocol = null;
+Clazz_instantialize (this, arguments);
+}, JU, "AjaxURLStreamHandler", java.net.URLStreamHandler);
+Clazz_makeConstructor (c$, 
+function (protocol) {
+Clazz_superConstructor (this, JU.AjaxURLStreamHandler, []);
+this.protocol = protocol;
+}, "~S");
+Clazz_overrideMethod (c$, "openConnection", 
+function (url) {
+return  new JU.AjaxURLConnection (url);
+}, "java.net.URL");
+Clazz_overrideMethod (c$, "toExternalForm", 
+function (u) {
+var result =  new JU.SB ();
+result.append (u.getProtocol ());
+result.append (":");
+if (u.getAuthority () != null && u.getAuthority ().length > 0) {
+result.append ("//");
+result.append (u.getAuthority ());
+}if (u.getPath () != null) {
+result.append (u.getPath ());
+}if (u.getQuery () != null) {
+result.append ("?");
+result.append (u.getQuery ());
+}if (u.getRef () != null) {
+result.append ("#");
+result.append (u.getRef ());
+}return result.toString ();
+}, "java.net.URL");
+});
+Clazz_declarePackage ("java.net");
+Clazz_load (null, "java.net.URLStreamHandler", ["java.lang.IllegalArgumentException", "$.SecurityException", "$.UnsupportedOperationException"], function () {
+c$ = Clazz_declareType (java.net, "URLStreamHandler");
+Clazz_defineMethod (c$, "openConnectionProxy", 
+function (u, p) {
+throw  new UnsupportedOperationException ("Method not implemented.");
+}, "java.net.URL,java.net.Proxy");
+Clazz_defineMethod (c$, "parseURL", 
+function (u, spec, start, limit) {
+var protocol = u.getProtocol ();
+var authority = u.getAuthority ();
+var userInfo = u.getUserInfo ();
+var host = u.getHost ();
+var port = u.getPort ();
+var path = u.getPath ();
+var query = u.getQuery ();
+var ref = u.getRef ();
+var isRelPath = false;
+var queryOnly = false;
+if (start < limit) {
+var queryStart = spec.indexOf ('?');
+queryOnly = queryStart == start;
+if ((queryStart != -1) && (queryStart < limit)) {
+query = spec.substring (queryStart + 1, limit);
+if (limit > queryStart) limit = queryStart;
+spec = spec.substring (0, queryStart);
+}}var i = 0;
+var isUNCName = (start <= limit - 4) && (spec.charAt (start) == '/') && (spec.charAt (start + 1) == '/') && (spec.charAt (start + 2) == '/') && (spec.charAt (start + 3) == '/');
+if (!isUNCName && (start <= limit - 2) && (spec.charAt (start) == '/') && (spec.charAt (start + 1) == '/')) {
+start += 2;
+i = spec.indexOf ('/', start);
+if (i < 0) {
+i = spec.indexOf ('?', start);
+if (i < 0) i = limit;
+}host = authority = spec.substring (start, i);
+var ind = authority.indexOf ('@');
+if (ind != -1) {
+userInfo = authority.substring (0, ind);
+host = authority.substring (ind + 1);
+} else {
+userInfo = null;
+}if (host != null) {
+if (host.length > 0 && (host.charAt (0) == '[')) {
+throw  new IllegalArgumentException ("Invalid host: " + host);
+}ind = host.indexOf (':');
+port = -1;
+if (ind >= 0) {
+if (host.length > (ind + 1)) {
+port = Integer.parseInt (host.substring (ind + 1));
+}host = host.substring (0, ind);
+}} else {
+host = "";
+}if (port < -1) throw  new IllegalArgumentException ("Invalid port number :" + port);
+start = i;
+if (authority.length > 0) path = "";
+}if (host == null) {
+host = "";
+}if (start < limit) {
+if (spec.charAt (start) == '/') {
+path = spec.substring (start, limit);
+} else if (path != null && path.length > 0) {
+isRelPath = true;
+var ind = path.lastIndexOf ('/');
+var seperator = "";
+if (ind == -1 && authority != null) seperator = "/";
+path = path.substring (0, ind + 1) + seperator + spec.substring (start, limit);
+} else {
+var seperator = (authority != null) ? "/" : "";
+path = seperator + spec.substring (start, limit);
+}} else if (queryOnly && path != null) {
+var ind = path.lastIndexOf ('/');
+if (ind < 0) ind = 0;
+path = path.substring (0, ind) + "/";
+}if (path == null) path = "";
+if (isRelPath) {
+while ((i = path.indexOf ("/./")) >= 0) {
+path = path.substring (0, i) + path.substring (i + 2);
+}
+i = 0;
+while ((i = path.indexOf ("/../", i)) >= 0) {
+if (i > 0 && (limit = path.lastIndexOf ('/', i - 1)) >= 0 && (path.indexOf ("/../", limit) != 0)) {
+path = path.substring (0, limit) + path.substring (i + 3);
+i = 0;
+} else {
+i = i + 3;
+}}
+while (path.endsWith ("/..")) {
+i = path.indexOf ("/..");
+if ((limit = path.lastIndexOf ('/', i - 1)) >= 0) {
+path = path.substring (0, limit + 1);
+} else {
+break;
+}}
+if (path.startsWith ("./") && path.length > 2) path = path.substring (2);
+if (path.endsWith ("/.")) path = path.substring (0, path.length - 1);
+}this.setURL (u, protocol, host, port, authority, userInfo, path, query, ref);
+}, "java.net.URL,~S,~N,~N");
+Clazz_defineMethod (c$, "getDefaultPort", 
+function () {
+return -1;
+});
+Clazz_defineMethod (c$, "equals2", 
+function (u1, u2) {
+var ref1 = u1.getRef ();
+var ref2 = u2.getRef ();
+return (ref1 === ref2 || (ref1 != null && ref1.equals (ref2))) && this.sameFile (u1, u2);
+}, "java.net.URL,java.net.URL");
+Clazz_defineMethod (c$, "hashCode", 
+function (u) {
+var h = 0;
+var protocol = u.getProtocol ();
+if (protocol != null) h += protocol.hashCode ();
+h += u.toString ().hashCode ();
+var file = u.getFile ();
+if (file != null) h += file.hashCode ();
+if (u.getPort () == -1) h += this.getDefaultPort ();
+ else h += u.getPort ();
+var ref = u.getRef ();
+if (ref != null) h += ref.hashCode ();
+return h;
+}, "java.net.URL");
+Clazz_defineMethod (c$, "sameFile", 
+function (u1, u2) {
+if (!((u1.getProtocol () === u2.getProtocol ()) || (u1.getProtocol () != null && u1.getProtocol ().equalsIgnoreCase (u2.getProtocol ())))) return false;
+if (!(u1.getFile () === u2.getFile () || (u1.getFile () != null && u1.getFile ().equals (u2.getFile ())))) return false;
+var port1;
+var port2;
+port1 = (u1.getPort () != -1) ? u1.getPort () : u1.handler.getDefaultPort ();
+port2 = (u2.getPort () != -1) ? u2.getPort () : u2.handler.getDefaultPort ();
+if (port1 != port2) return false;
+if (!this.hostsEqual (u1, u2)) return false;
+return true;
+}, "java.net.URL,java.net.URL");
+Clazz_defineMethod (c$, "hostsEqual", 
+function (u1, u2) {
+if (u1.getHost () != null && u2.getHost () != null) return u1.getHost ().equalsIgnoreCase (u2.getHost ());
+return u1.getHost () == null && u2.getHost () == null;
+}, "java.net.URL,java.net.URL");
+Clazz_defineMethod (c$, "toExternalForm", 
+function (u) {
+return "";
+}, "java.net.URL");
+Clazz_defineMethod (c$, "setURL", 
+function (u, protocol, host, port, authority, userInfo, path, query, ref) {
+if (this !== u.handler) {
+throw  new SecurityException ("handler for url different from this handler");
+}u.set (u.getProtocol (), host, port, authority, userInfo, path, query, ref);
+}, "java.net.URL,~S,~S,~N,~S,~S,~S,~S,~S");
+Clazz_defineMethod (c$, "setURLDeprecated", 
+function (u, protocol, host, port, file, ref) {
+var authority = null;
+var userInfo = null;
+if (host != null && host.length != 0) {
+authority = (port == -1) ? host : host + ":" + port;
+var at = host.lastIndexOf ('@');
+if (at != -1) {
+userInfo = host.substring (0, at);
+host = host.substring (at + 1);
+}}var path = null;
+var query = null;
+if (file != null) {
+var q = file.lastIndexOf ('?');
+if (q != -1) {
+query = file.substring (q + 1);
+path = file.substring (0, q);
+} else path = file;
+}this.setURL (u, protocol, host, port, authority, userInfo, path, query, ref);
+}, "java.net.URL,~S,~S,~N,~S,~S");
+});
+Clazz_declarePackage ("JU");
+Clazz_load (["java.net.URLConnection"], "JU.AjaxURLConnection", ["JU.AU", "$.Rdr", "$.SB"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.bytesOut = null;
+this.postOut = "";
+Clazz_instantialize (this, arguments);
+}, JU, "AjaxURLConnection", java.net.URLConnection);
+Clazz_defineMethod (c$, "doAjax", 
+ function () {
+{
+return Jmol._doAjax(this.url, this.postOut, this.bytesOut);
+}});
+Clazz_overrideMethod (c$, "connect", 
+function () {
+});
+Clazz_defineMethod (c$, "outputBytes", 
+function (bytes) {
+this.bytesOut = bytes;
+}, "~A");
+Clazz_defineMethod (c$, "outputString", 
+function (post) {
+this.postOut = post;
+}, "~S");
+Clazz_overrideMethod (c$, "getInputStream", 
+function () {
+var is = null;
+var o = this.doAjax ();
+if (JU.AU.isAB (o)) is = JU.Rdr.getBIS (o);
+ else if (Clazz_instanceOf (o, JU.SB)) is = JU.Rdr.getBIS (JU.Rdr.getBytesFromSB (o));
+ else if (Clazz_instanceOf (o, String)) is = JU.Rdr.getBIS ((o).getBytes ());
+return is;
+});
+Clazz_defineMethod (c$, "getContents", 
+function () {
+return this.doAjax ();
+});
+});
+Clazz_declarePackage ("java.net");
+Clazz_load (null, "java.net.URLConnection", ["java.lang.IllegalStateException", "$.NullPointerException", "java.net.UnknownServiceException", "JU.Lst"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.url = null;
+this.doInput = true;
+this.doOutput = false;
+this.connected = false;
+this.requests = null;
+Clazz_instantialize (this, arguments);
+}, java.net, "URLConnection");
+Clazz_defineMethod (c$, "setDoInput", 
+function (doinput) {
+if (this.connected) throw  new IllegalStateException ("Already connected");
+this.doInput = doinput;
+}, "~B");
+Clazz_defineMethod (c$, "getDoInput", 
+function () {
+return this.doInput;
+});
+Clazz_defineMethod (c$, "setDoOutput", 
+function (dooutput) {
+if (this.connected) throw  new IllegalStateException ("Already connected");
+this.doOutput = dooutput;
+}, "~B");
+Clazz_defineMethod (c$, "getDoOutput", 
+function () {
+return this.doOutput;
+});
+Clazz_makeConstructor (c$, 
+function (url) {
+this.url = url;
+}, "java.net.URL");
+Clazz_defineMethod (c$, "getURL", 
+function () {
+return this.url;
+});
+Clazz_defineMethod (c$, "getInputStream", 
+function () {
+throw  new java.net.UnknownServiceException ("protocol doesn't support input");
+});
+Clazz_defineMethod (c$, "getOutputStream", 
+function () {
+throw  new java.net.UnknownServiceException ("protocol doesn't support output");
+});
+Clazz_defineMethod (c$, "setRequestProperty", 
+function (key, value) {
+if (this.connected) throw  new IllegalStateException ("Already connected");
+if (key == null) throw  new NullPointerException ("key is null");
+if (this.requests == null) this.requests =  new JU.Lst ();
+for (var i = this.requests.size (); --i >= 0; ) if (this.requests.get (i)[0].equals (key)) {
+this.requests.get (i)[1] = value;
+return;
+}
+this.requests.addLast ( Clazz_newArray (-1, [key, value]));
+}, "~S,~S");
+});
+Clazz_declarePackage ("java.net");
+Clazz_load (["java.io.IOException"], "java.net.UnknownServiceException", null, function () {
+c$ = Clazz_declareType (java.net, "UnknownServiceException", java.io.IOException);
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, java.net.UnknownServiceException, []);
+});
+});
+Clazz_declarePackage ("jalview.bin");
+Clazz_load (["jalview.api.StructureSelectionManagerProvider", "jalview.javascript.JalviewLiteJsApi", "java.lang.Thread", "javax.swing.JApplet", "jalview.util.MessageManager", "java.util.Hashtable", "$.Vector", "javax.swing.JButton"], "jalview.bin.JalviewLite", ["awt2swing.Util", "jalview.analysis.SequenceIdMatcher", "jalview.appletgui.AlignFrame", "$.EmbmenuFrame", "$.FeatureSettings", "$.SplitFrame", "jalview.datamodel.Alignment", "$.AlignmentOrder", "$.ColumnSelection", "$.PDBEntry", "$.SequenceGroup", "jalview.io.AnnotationFile", "$.AppletFormatAdapter", "$.FileParse", "$.IdentifyFile", "$.JnetAnnotationMaker", "$.NewickFile", "jalview.javascript.JSFunctionExec", "$.JsSelectionSender", "$.MouseOverListener", "$.MouseOverStructureListener", "jalview.jsdev.GenericFileAdapter", "jalview.schemes.ColourSchemeProperty", "$.UserColourScheme", "jalview.structure.SelectionListener", "$.StructureSelectionManager", "java.awt.Color", "$.EventQueue", "$.Font", "java.awt.event.ActionListener", "$.WindowAdapter", "java.io.BufferedReader", "$.InputStreamReader", "java.lang.Error", "$.StringBuffer", "java.net.URL", "java.util.StringTokenizer", "netscape.javascript.JSObject"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.embedded = false;
+this.enableSplitFrame = false;
+this.showButton = true;
+this.checkForJmol = true;
+this.jalviewServletURL = null;
+this.startupFile = "No file";
+this.helpUrl = null;
+this.externalstructureviewer = null;
+this.sep = null;
+this.rgb = null;
+this.labelColour = null;
+this.initjscallback = null;
+this.pdbFile = null;
+this.sequence = null;
+this.jnetFile = null;
+this.annotations = null;
+this.hideFeatureGroups = null;
+this.showFeatureGroups = null;
+this.features = null;
+this.showFeatureSettings = null;
+this.scoreFile = null;
+this.treeFile = null;
+this.windowWidth = null;
+this.windowHeight = null;
+this.defaultColour = null;
+this.sortBy = null;
+this.wrap = null;
+this.centrecolumnlabels = null;
+this.userDefinedColour = null;
+this.widthScale = null;
+this.heightScale = null;
+this.upperCase = null;
+this.file2 = null;
+this.javascriptListeners = null;
+this.jsFunctionExec = null;
+this.fileFound = true;
+this.launcher = null;
+this.currentAlignFrame = null;
+this.initialAlignFrame = null;
+this.checkedForJmol = false;
+this.jmolAvailable = false;
+this.alignPdbStructures = false;
+this.useXtrnalSviewer = false;
+this.haveShownLoadMessage = false;
+if (!Clazz_isClassDefined ("jalview.bin.JalviewLite.LoadJmolThread")) {
+jalview.bin.JalviewLite.$JalviewLite$LoadJmolThread$ ();
+}
+if (!Clazz_isClassDefined ("jalview.bin.JalviewLite.LoadingThread")) {
+jalview.bin.JalviewLite.$JalviewLite$LoadingThread$ ();
+}
+this.separator = "\u00ac";
+this.jsfallbackEnabled = false;
+this.jshashes = null;
+this.jsmessages = null;
+this.jsExecQueue = null;
+Clazz_instantialize (this, arguments);
+}, jalview.bin, "JalviewLite", javax.swing.JApplet, [jalview.api.StructureSelectionManagerProvider, jalview.javascript.JalviewLiteJsApi]);
+Clazz_prepareFields (c$, function () {
+this.javascriptListeners =  new java.util.Vector ();
+this.launcher =  new javax.swing.JButton (jalview.util.MessageManager.getString ("label.start_jalview"));
+this.jshashes =  new java.util.Hashtable ();
+this.jsmessages =  new java.util.Hashtable ();
+this.jsExecQueue =  new java.util.Vector ();
+});
+Clazz_defineMethod (c$, "setParams", 
+ function () {
+jalview.bin.JalviewLite.debug = "true".equalsIgnoreCase (this.getParameter ("debug"));
+this.enableSplitFrame = "true".equalsIgnoreCase (this.getParameter ("enableSplitFrame"));
+this.embedded = "true".equalsIgnoreCase (this.getParameter ("embedded"));
+this.showButton = !"false".equalsIgnoreCase (this.getParameter ("showbutton"));
+this.jalviewServletURL = this.getParameter ("APPLICATION_URL");
+this.startupFile = this.getParameter ("file");
+this.helpUrl = this.getParameter ("jalviewhelpurl");
+this.externalstructureviewer = this.getParameter ("externalstructureviewer");
+this.checkForJmol = !"true".equals (this.getParameter ("nojmol"));
+this.sep = this.getParameter ("separator");
+this.rgb = this.getParameter ("RGB");
+this.labelColour = this.getParameter ("label");
+this.initjscallback = this.getParameter ("oninit");
+this.pdbFile = this.getParameter ("PDBFILE");
+this.sequence = this.getParameter ("PDBSEQ");
+this.jnetFile = this.getParameter ("jnetfile");
+this.annotations = this.getParameter ("annotations");
+this.hideFeatureGroups = this.getParameter ("hidefeaturegroups");
+this.showFeatureGroups = this.getParameter ("showfeaturegroups");
+this.features = this.getParameter ("features");
+this.showFeatureSettings = this.getParameter ("showFeatureSettings");
+this.scoreFile = this.getParameter ("scoreFile");
+this.treeFile = this.getParameter ("tree");
+if (this.treeFile == null) this.treeFile = this.getParameter ("treeFile");
+this.windowWidth = this.getParameter ("windowWidth");
+this.windowHeight = this.getParameter ("windowHeight");
+this.defaultColour = this.getParameter ("defaultColour");
+this.sortBy = this.getParameter ("sortBy");
+this.wrap = this.getParameter ("wrap");
+this.centrecolumnlabels = this.getParameter ("centrecolumnlabels");
+this.userDefinedColour = this.getParameter ("userDefinedColour");
+this.widthScale = this.getParameter ("widthScale");
+this.heightScale = this.getParameter ("heightScale");
+this.upperCase = this.getParameter ("upperCase");
+this.file2 = this.getParameter ("file2");
+});
+Clazz_defineMethod (c$, "getDefaultParameter", 
+function (name, def) {
+var stn;
+if ((stn = this.getParameter (name)) == null) {
+return def;
+}if (stn.toLowerCase ().equals ("true")) {
+return true;
+}return false;
+}, "~S,~B");
+Clazz_defineMethod (c$, "getLinkParams", 
+function (links) {
+var label;
+var url;
+for (var i = 1; i < 10; i++) {
+label = this.getParameter ("linkLabel_" + i);
+url = this.getParameter ("linkURL_" + i);
+if (label != null && url != null) {
+links.addElement (label + "|" + url);
+}}
+}, "java.util.Vector");
+Clazz_defineMethod (c$, "getStructureSelectionManager", 
+function () {
+return jalview.structure.StructureSelectionManager.getStructureSelectionManager (this);
+});
+Clazz_defineMethod (c$, "getSelectedSequences", 
+function () {
+return this.getSelectedSequencesFrom (this.getDefaultTargetFrame ());
+});
+Clazz_defineMethod (c$, "getSelectedSequences", 
+function (sep) {
+return this.getSelectedSequencesFrom (this.getDefaultTargetFrame (), sep);
+}, "~S");
+Clazz_defineMethod (c$, "getSelectedSequencesFrom", 
+function (alf) {
+return this.getSelectedSequencesFrom (alf, this.separator);
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "getSelectedSequencesFrom", 
+function (alf, sep) {
+var result =  new StringBuffer ("");
+if (sep == null || sep.length == 0) {
+sep = this.separator;
+}if (alf.viewport.getSelectionGroup () != null) {
+var seqs = alf.viewport.getSelectionGroup ().getSequencesInOrder (alf.viewport.getAlignment ());
+for (var i = 0; i < seqs.length; i++) {
+result.append (seqs[i].getName ());
+result.append (sep);
+}
+}return result.toString ();
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz_overrideMethod (c$, "highlight", 
+function (sequenceId, position, alignedPosition) {
+this.highlightIn (this.getDefaultTargetFrame (), sequenceId, position, alignedPosition);
+}, "~S,~S,~S");
+Clazz_overrideMethod (c$, "highlightIn", 
+function (alf, sequenceId, position, alignedPosition) {
+var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());
+var sq = matcher.findIdMatch (sequenceId);
+if (sq != null) {
+var apos = -1;
+try {
+apos =  new Integer (position).intValue ();
+apos--;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, NumberFormatException)) {
+return;
+} else {
+throw ex;
+}
+}
+var me = this;
+var pos = apos;
+if (alignedPosition != null && (alignedPosition.trim ().length == 0 || alignedPosition.toLowerCase ().indexOf ("false") > -1)) {
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$1") ? 0 : jalview.bin.JalviewLite.$JalviewLite$1$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$1, this, Clazz_cloneFinals ("me", me, "sq", sq, "pos", pos))));
+} else {
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$2") ? 0 : jalview.bin.JalviewLite.$JalviewLite$2$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$2, this, Clazz_cloneFinals ("me", me, "sq", sq, "pos", pos))));
+}}}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz_defineMethod (c$, "select", 
+function (sequenceIds, columns) {
+this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, this.separator);
+}, "~S,~S");
+Clazz_defineMethod (c$, "select", 
+function (sequenceIds, columns, sep) {
+this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, sep);
+}, "~S,~S,~S");
+Clazz_defineMethod (c$, "selectIn", 
+function (alf, sequenceIds, columns) {
+this.selectIn (alf, sequenceIds, columns, this.separator);
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz_defineMethod (c$, "selectIn", 
+function (alf, sequenceIds, columns, sep) {
+if (sep == null || sep.length == 0) {
+sep = this.separator;
+} else {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Selecting region using separator string '" + this.separator + "'");
+}}var ids = this.separatorListToArray (sequenceIds, sep);
+var cols = this.separatorListToArray (columns, sep);
+var sel =  new jalview.datamodel.SequenceGroup ();
+var csel =  new jalview.datamodel.ColumnSelection ();
+var al = alf.viewport.getAlignment ();
+var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());
+var start = 0;
+var end = al.getWidth ();
+var alw = al.getWidth ();
+var seqsfound = true;
+if (ids != null && ids.length > 0) {
+seqsfound = false;
+for (var i = 0; i < ids.length; i++) {
+if (ids[i].trim ().length == 0) {
+continue;
+}var sq = matcher.findIdMatch (ids[i]);
+if (sq != null) {
+seqsfound = true;
+sel.addSequence (sq, false);
+}}
+}var inseqpos = false;
+if (cols != null && cols.length > 0) {
+var seset = false;
+for (var i = 0; i < cols.length; i++) {
+var cl = cols[i].trim ();
+if (cl.length == 0) {
+continue;
+}var p;
+if ((p = cl.indexOf ("-")) > -1) {
+var from = -1;
+var to = -1;
+try {
+from =  new Integer (cl.substring (0, p)).intValue ();
+from--;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, NumberFormatException)) {
+System.err.println ("ERROR: Couldn't parse first integer in range element column selection string '" + cl + "' - format is 'from-to'");
+return;
+} else {
+throw ex;
+}
+}
+try {
+to =  new Integer (cl.substring (p + 1)).intValue ();
+to--;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, NumberFormatException)) {
+System.err.println ("ERROR: Couldn't parse second integer in range element column selection string '" + cl + "' - format is 'from-to'");
+return;
+} else {
+throw ex;
+}
+}
+if (from >= 0 && to >= 0) {
+if (from < to) {
+var t = to;
+to = from;
+to = t;
+}if (!seset) {
+start = from;
+end = to;
+seset = true;
+} else {
+if (start > from) {
+start = from;
+}if (end < to) {
+end = to;
+}}for (var r = from; r <= to; r++) {
+if (r >= 0 && r < alw) {
+csel.addElement (r);
+}}
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Range '" + cl + "' deparsed as [" + from + "," + to + "]");
+}} else {
+System.err.println ("ERROR: Invalid Range '" + cl + "' deparsed as [" + from + "," + to + "]");
+}} else {
+var r = -1;
+try {
+r =  new Integer (cl).intValue ();
+r--;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, NumberFormatException)) {
+if (cl.toLowerCase ().equals ("sequence")) {
+inseqpos = true;
+} else {
+System.err.println ("ERROR: Couldn't parse integer from point selection element of column selection string '" + cl + "'");
+return;
+}} else {
+throw ex;
+}
+}
+if (r >= 0 && r <= alw) {
+if (!seset) {
+start = r;
+end = r;
+seset = true;
+} else {
+if (start > r) {
+start = r;
+}if (end < r) {
+end = r;
+}}csel.addElement (r);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Point selection '" + cl + "' deparsed as [" + r + "]");
+}} else {
+System.err.println ("ERROR: Invalid Point selection '" + cl + "' deparsed as [" + r + "]");
+}}}
+}if (seqsfound) {
+if (inseqpos && sel.getSize () > 0) {
+var rs = sel.getSequenceAt (0);
+start = rs.findIndex (start);
+end = rs.findIndex (end);
+if (csel != null) {
+var cs = csel.getSelected ();
+csel.clear ();
+for (var selectedCol, $selectedCol = cs.iterator (); $selectedCol.hasNext () && ((selectedCol = $selectedCol.next ()) || true);) {
+csel.addElement (rs.findIndex ((selectedCol).intValue ()));
+}
+}}sel.setStartRes (start);
+sel.setEndRes (end);
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$3") ? 0 : jalview.bin.JalviewLite.$JalviewLite$3$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$3, this, Clazz_cloneFinals ("alf", alf, "sel", sel, "csel", csel))));
+}}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz_overrideMethod (c$, "getSelectedSequencesAsAlignment", 
+function (format, suffix) {
+return this.getSelectedSequencesAsAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);
+}, "~S,~S");
+Clazz_overrideMethod (c$, "getSelectedSequencesAsAlignmentFrom", 
+function (alf, format, suffix) {
+try {
+var seqlimits = suffix.equalsIgnoreCase ("true");
+if (alf.viewport.getSelectionGroup () != null) {
+var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format,  new jalview.datamodel.Alignment (alf.viewport.getSelectionAsNewSequence ()), seqlimits);
+return reply;
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+return "Error retrieving alignment in " + format + " format. ";
+} else {
+throw ex;
+}
+}
+return "";
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz_overrideMethod (c$, "getAlignmentOrder", 
+function () {
+return this.getAlignmentOrderFrom (this.getDefaultTargetFrame ());
+});
+Clazz_defineMethod (c$, "getAlignmentOrderFrom", 
+function (alf) {
+return this.getAlignmentOrderFrom (alf, this.separator);
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "getAlignmentOrderFrom", 
+function (alf, sep) {
+var alorder = alf.getAlignViewport ().getAlignment ();
+var order =  new Array (alorder.getHeight ());
+for (var i = 0; i < order.length; i++) {
+order[i] = alorder.getSequenceAt (i).getName ();
+}
+return this.arrayToSeparatorList (order);
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz_defineMethod (c$, "orderBy", 
+function (order, undoName) {
+return this.orderBy (order, undoName, this.separator);
+}, "~S,~S");
+Clazz_defineMethod (c$, "orderBy", 
+function (order, undoName, sep) {
+return this.orderAlignmentBy (this.getDefaultTargetFrame (), order, undoName, sep);
+}, "~S,~S,~S");
+Clazz_overrideMethod (c$, "orderAlignmentBy", 
+function (alf, order, undoName, sep) {
+var ids = this.separatorListToArray (order, sep);
+var sqs = null;
+if (ids != null && ids.length > 0) {
+var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());
+var s = 0;
+sqs =  new Array (ids.length);
+for (var i = 0; i < ids.length; i++) {
+if (ids[i].trim ().length == 0) {
+continue;
+}var sq = matcher.findIdMatch (ids[i]);
+if (sq != null) {
+sqs[s++] = sq;
+}}
+if (s > 0) {
+var sqq =  new Array (s);
+System.arraycopy (sqs, 0, sqq, 0, s);
+sqs = sqq;
+} else {
+sqs = null;
+}}if (sqs == null) {
+return "";
+};var aorder =  new jalview.datamodel.AlignmentOrder (sqs);
+if (undoName != null && undoName.trim ().length == 0) {
+undoName = null;
+}var _undoName = undoName;
+return alf.sortBy (aorder, _undoName) ? "true" : "";
+}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz_defineMethod (c$, "getAlignment", 
+function (format) {
+return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, "true");
+}, "~S");
+Clazz_defineMethod (c$, "getAlignmentFrom", 
+function (alf, format) {
+return this.getAlignmentFrom (alf, format, "true");
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz_defineMethod (c$, "getAlignment", 
+function (format, suffix) {
+return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);
+}, "~S,~S");
+Clazz_defineMethod (c$, "getAlignmentFrom", 
+function (alf, format, suffix) {
+try {
+var seqlimits = suffix.equalsIgnoreCase ("true");
+var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format, alf.viewport.getAlignment (), seqlimits);
+return reply;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+return "Error retrieving alignment in " + format + " format. ";
+} else {
+throw ex;
+}
+}
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz_overrideMethod (c$, "loadAnnotation", 
+function (annotation) {
+this.loadAnnotationFrom (this.getDefaultTargetFrame (), annotation);
+}, "~S");
+Clazz_overrideMethod (c$, "loadAnnotationFrom", 
+function (alf, annotation) {
+if ( new jalview.io.AnnotationFile ().annotateAlignmentView (alf.getAlignViewport (), annotation, jalview.io.AppletFormatAdapter.PASTE)) {
+alf.alignPanel.fontChanged ();
+alf.alignPanel.setScrollValues (0, 0);
+} else {
+alf.parseFeaturesFile (annotation, jalview.io.AppletFormatAdapter.PASTE);
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz_overrideMethod (c$, "loadFeatures", 
+function (features, autoenabledisplay) {
+this.loadFeaturesFrom (this.getDefaultTargetFrame (), features, autoenabledisplay);
+}, "~S,~B");
+Clazz_overrideMethod (c$, "loadFeaturesFrom", 
+function (alf, features, autoenabledisplay) {
+return alf.parseFeaturesFile (features, jalview.io.AppletFormatAdapter.PASTE, autoenabledisplay);
+}, "jalview.appletgui.AlignFrame,~S,~B");
+Clazz_overrideMethod (c$, "getFeatures", 
+function (format) {
+return this.getFeaturesFrom (this.getDefaultTargetFrame (), format);
+}, "~S");
+Clazz_overrideMethod (c$, "getFeaturesFrom", 
+function (alf, format) {
+return alf.outputFeatures (false, format);
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz_overrideMethod (c$, "getAnnotation", 
+function () {
+return this.getAnnotationFrom (this.getDefaultTargetFrame ());
+});
+Clazz_overrideMethod (c$, "getAnnotationFrom", 
+function (alf) {
+return alf.outputAnnotations (false);
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "newView", 
+function () {
+return this.newViewFrom (this.getDefaultTargetFrame ());
+});
+Clazz_defineMethod (c$, "newView", 
+function (name) {
+return this.newViewFrom (this.getDefaultTargetFrame (), name);
+}, "~S");
+Clazz_defineMethod (c$, "newViewFrom", 
+function (alf) {
+return alf.newView (null);
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "newViewFrom", 
+function (alf, name) {
+return alf.newView (name);
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz_overrideMethod (c$, "loadAlignment", 
+function (text, title) {
+var al = null;
+var format =  new jalview.io.IdentifyFile ().Identify (text, jalview.io.AppletFormatAdapter.PASTE);
+try {
+al =  new jalview.io.AppletFormatAdapter ().readFile (text, jalview.io.AppletFormatAdapter.PASTE, format);
+if (al.getHeight () > 0) {
+return  new jalview.appletgui.AlignFrame (al, this, title, false);
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, java.io.IOException)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+return null;
+}, "~S,~S");
+Clazz_defineMethod (c$, "setMouseoverListener", 
+function (listener) {
+this.setMouseoverListener (this.currentAlignFrame, listener);
+}, "~S");
+Clazz_defineMethod (c$, "setMouseoverListener", 
+function (af, listener) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+System.err.println ("jalview Javascript error: Ignoring empty function for mouseover listener.");
+return;
+}}var mol =  new jalview.javascript.MouseOverListener (this, af, listener);
+this.javascriptListeners.addElement (mol);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Added a mouseover listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz_defineMethod (c$, "setSelectionListener", 
+function (listener) {
+this.setSelectionListener (null, listener);
+}, "~S");
+Clazz_defineMethod (c$, "setSelectionListener", 
+function (af, listener) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");
+return;
+}}var mol =  new jalview.javascript.JsSelectionSender (this, af, listener);
+this.javascriptListeners.addElement (mol);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addSelectionListener (mol);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Added a selection listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz_overrideMethod (c$, "setStructureListener", 
+function (listener, modelSet) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");
+return;
+}}var mol =  new jalview.javascript.MouseOverStructureListener (this, listener, this.separatorListToArray (modelSet));
+this.javascriptListeners.addElement (mol);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Added a javascript structure viewer listener '" + listener + "'");
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "~S,~S");
+Clazz_overrideMethod (c$, "removeJavascriptListener", 
+function (af, listener) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+listener = null;
+}}var rprt = false;
+for (var ms = 0, msSize = this.javascriptListeners.size (); ms < msSize; ) {
+var lstn = this.javascriptListeners.elementAt (ms);
+var lstner = lstn;
+if ((af == null || lstner.getAlignFrame () === af) && (listener == null || lstner.getListenerFunction ().equals (listener))) {
+this.javascriptListeners.removeElement (lstner);
+msSize--;
+if (Clazz_instanceOf (lstner, jalview.structure.SelectionListener)) {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (lstner);
+} else {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (lstner, null);
+}rprt = jalview.bin.JalviewLite.debug;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Removed listener '" + listener + "'");
+}} else {
+ms++;
+}}
+if (rprt) {
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz_overrideMethod (c$, "stop", 
+function () {
+System.err.println ("Applet " + this.getName () + " stop().");
+this.tidyUp ();
+});
+Clazz_overrideMethod (c$, "destroy", 
+function () {
+System.err.println ("Applet " + this.getName () + " destroy().");
+this.tidyUp ();
+});
+Clazz_defineMethod (c$, "tidyUp", 
+ function () {
+this.removeAll ();
+if (this.currentAlignFrame != null && this.currentAlignFrame.viewport != null && this.currentAlignFrame.viewport.applet != null) {
+var av = this.currentAlignFrame.viewport;
+this.currentAlignFrame.closeMenuItem_actionPerformed ();
+av.applet = null;
+this.currentAlignFrame = null;
+}if (this.javascriptListeners != null) {
+while (this.javascriptListeners.size () > 0) {
+var mol = this.javascriptListeners.elementAt (0);
+this.javascriptListeners.removeElement (mol);
+if (Clazz_instanceOf (mol, jalview.structure.SelectionListener)) {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (mol);
+} else {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (mol, null);
+}mol.jvlite = null;
+}
+}if (this.jsFunctionExec != null) {
+this.jsFunctionExec.stopQueue ();
+this.jsFunctionExec.jvlite = null;
+}this.initialAlignFrame = null;
+this.jsFunctionExec = null;
+this.javascriptListeners = null;
+jalview.structure.StructureSelectionManager.release (this);
+});
+Clazz_overrideMethod (c$, "mouseOverStructure", 
+function (pdbResNum, chain, pdbfile) {
+var me = this;
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$4") ? 0 : jalview.bin.JalviewLite.$JalviewLite$4$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$4, this, Clazz_cloneFinals ("me", me, "pdbResNum", pdbResNum, "chain", chain, "pdbfile", pdbfile))));
+}, "~S,~S,~S");
+Clazz_overrideMethod (c$, "scrollViewToIn", 
+function (alf, topRow, leftHandColumn) {
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$5") ? 0 : jalview.bin.JalviewLite.$JalviewLite$5$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$5, this, Clazz_cloneFinals ("alf", alf, "topRow", topRow, "leftHandColumn", leftHandColumn))));
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz_overrideMethod (c$, "scrollViewToRowIn", 
+function (alf, topRow) {
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$6") ? 0 : jalview.bin.JalviewLite.$JalviewLite$6$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$6, this, Clazz_cloneFinals ("alf", alf, "topRow", topRow))));
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz_overrideMethod (c$, "scrollViewToColumnIn", 
+function (alf, leftHandColumn) {
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$7") ? 0 : jalview.bin.JalviewLite.$JalviewLite$7$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$7, this, Clazz_cloneFinals ("alf", alf, "leftHandColumn", leftHandColumn))));
+}, "jalview.appletgui.AlignFrame,~S");
+c$.initBuildDetails = Clazz_defineMethod (c$, "initBuildDetails", 
+ function () {
+if (jalview.bin.JalviewLite.builddate == null) {
+jalview.bin.JalviewLite.builddate = "unknown";
+jalview.bin.JalviewLite.version = "test";
+jalview.bin.JalviewLite.installation = "Webstart";
+var url = jalview.bin.JalviewLite.getResource ("/.build_properties");
+if (url != null) {
+try {
+var reader =  new java.io.BufferedReader ( new java.io.InputStreamReader (url.openStream ()));
+var line;
+while ((line = reader.readLine ()) != null) {
+if (line.indexOf ("VERSION") > -1) {
+jalview.bin.JalviewLite.version = line.substring (line.indexOf ("=") + 1);
+}if (line.indexOf ("BUILD_DATE") > -1) {
+jalview.bin.JalviewLite.builddate = line.substring (line.indexOf ("=") + 1);
+}if (line.indexOf ("INSTALLATION") > -1) {
+jalview.bin.JalviewLite.installation = line.substring (line.indexOf ("=") + 1);
+}}
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}}});
+c$.getBuildDate = Clazz_defineMethod (c$, "getBuildDate", 
+function () {
+jalview.bin.JalviewLite.initBuildDetails ();
+return jalview.bin.JalviewLite.builddate;
+});
+c$.getInstallation = Clazz_defineMethod (c$, "getInstallation", 
+function () {
+jalview.bin.JalviewLite.initBuildDetails ();
+return jalview.bin.JalviewLite.installation;
+});
+c$.getVersion = Clazz_defineMethod (c$, "getVersion", 
+function () {
+jalview.bin.JalviewLite.initBuildDetails ();
+return jalview.bin.JalviewLite.version;
+});
+Clazz_overrideMethod (c$, "init", 
+function () {
+this.setParams ();
+try {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Applet context is '" + this.getAppletContext ().getClass ().toString () + "'");
+}var scriptObject = netscape.javascript.JSObject.getWindow (this);
+if (jalview.bin.JalviewLite.debug && scriptObject != null) {
+System.err.println ("Applet has Javascript callback support.");
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+System.err.println ("Warning: No JalviewLite javascript callbacks available.");
+if (jalview.bin.JalviewLite.debug) {
+ex.printStackTrace ();
+}} else {
+throw ex;
+}
+}
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("JalviewLite Version " + jalview.bin.JalviewLite.getVersion ());
+System.err.println ("Build Date : " + jalview.bin.JalviewLite.getBuildDate ());
+System.err.println ("Installation : " + jalview.bin.JalviewLite.getInstallation ());
+}if (this.externalstructureviewer != null) {
+this.useXtrnalSviewer = this.externalstructureviewer.trim ().toLowerCase ().equals ("true");
+}if (this.sep != null) {
+if (this.sep.length > 0) {
+this.separator = this.sep;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Separator set to '" + this.separator + "'");
+}} else {
+throw  new Error (jalview.util.MessageManager.getString ("error.invalid_separator_parameter"));
+}}var r = 255;
+var g = 255;
+var b = 255;
+if (this.rgb != null) {
+try {
+r = Integer.parseInt (this.rgb.substring (0, 2), 16);
+g = Integer.parseInt (this.rgb.substring (2, 4), 16);
+b = Integer.parseInt (this.rgb.substring (4, 6), 16);
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+r = 255;
+g = 255;
+b = 255;
+} else {
+throw ex;
+}
+}
+}this.rgb = this.labelColour;
+if (this.rgb != null) {
+this.launcher.setLabel (this.rgb);
+}this.setBackground ( new java.awt.Color (r, g, b));
+if (this.startupFile == null) {
+var data =  new StringBuffer ("PASTE");
+var i = 1;
+while ((this.startupFile = this.getParameter ("sequence" + i)) != null) {
+data.append (this.startupFile.toString () + "\n");
+i++;
+}
+if (data.length () > 5) {
+this.startupFile = data.toString ();
+}}if (!this.enableSplitFrame) {
+this.file2 = null;
+}if (this.embedded) {
+var loader = Clazz_innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);
+{
+loader.run();
+}} else if (this.startupFile != null) {
+if (!this.showButton) {
+var loader = Clazz_innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);
+loader.start ();
+} else {
+this.add (this.launcher);
+this.launcher.addActionListener (((Clazz_isClassDefined ("jalview.bin.JalviewLite$8") ? 0 : jalview.bin.JalviewLite.$JalviewLite$8$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$8, this, null)));
+}} else {
+this.startupFile = "NO FILE";
+this.fileFound = false;
+this.callInitCallback ();
+}});
+Clazz_defineMethod (c$, "initLiveConnect", 
+ function () {
+var notFailed = false;
+var tries = 0;
+while (!notFailed && tries < 10) {
+if (tries > 0) {
+System.err.println ("LiveConnect request thread going to sleep.");
+}try {
+Thread.sleep (700 * (1 + tries));
+} catch (q) {
+if (Clazz_exceptionOf (q, InterruptedException)) {
+} else {
+throw q;
+}
+}
+;if (tries++ > 0) {
+System.err.println ("LiveConnect request thread woken up.");
+}try {
+var scriptObject = netscape.javascript.JSObject.getWindow (this);
+if (scriptObject.eval ("navigator") != null) {
+notFailed = true;
+}} catch (jsex) {
+if (Clazz_exceptionOf (jsex, Exception)) {
+System.err.println ("Attempt " + tries + " to access LiveConnect javascript failed.");
+} else {
+throw jsex;
+}
+}
+}
+});
+Clazz_defineMethod (c$, "callInitCallback", 
+ function () {
+if (this.initjscallback == null) {
+return;
+}this.initjscallback = this.initjscallback.trim ();
+if (this.initjscallback.length > 0) {
+var scriptObject = null;
+try {
+scriptObject = netscape.javascript.JSObject.getWindow (this);
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+} else {
+throw ex;
+}
+}
+;this.initLiveConnect ();
+if (scriptObject != null) {
+try {
+ new jalview.javascript.JSFunctionExec (this).executeJavascriptFunction (true, this.initjscallback, null, "Calling oninit callback '" + this.initjscallback + "'.");
+} catch (e) {
+if (Clazz_exceptionOf (e, Exception)) {
+System.err.println ("Exception when executing _oninit callback '" + this.initjscallback + "'.");
+e.printStackTrace ();
+} else {
+throw e;
+}
+}
+} else {
+System.err.println ("Not executing _oninit callback '" + this.initjscallback + "' - no scripting allowed.");
+}}});
+c$.addFrame = Clazz_defineMethod (c$, "addFrame", 
+function (frame, title, width, height) {
+frame.setLocation (jalview.bin.JalviewLite.lastFrameX, jalview.bin.JalviewLite.lastFrameY);
+jalview.bin.JalviewLite.lastFrameX += 40;
+jalview.bin.JalviewLite.lastFrameY += 40;
+frame.setSize (width, height);
+frame.setTitle (title);
+frame.addWindowListener (((Clazz_isClassDefined ("jalview.bin.JalviewLite$9") ? 0 : jalview.bin.JalviewLite.$JalviewLite$9$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$9, this, Clazz_cloneFinals ("frame", frame))));
+frame.setVisible (true);
+}, "javax.swing.JFrame,~S,~N,~N");
+Clazz_defineMethod (c$, "paintComponent", 
+function (g) {
+if (!this.fileFound) {
+g.setColor ( new java.awt.Color (200, 200, 200));
+g.setColor (java.awt.Color.cyan);
+g.fillRect (0, 0, this.getSize ().width, this.getSize ().height);
+g.setColor (java.awt.Color.red);
+awt2swing.Util.drawString (g, jalview.util.MessageManager.getString ("label.jalview_cannot_open_file"), 5, 15);
+awt2swing.Util.drawString (g, "\"" + this.startupFile + "\"", 5, 30);
+} else if (this.embedded && !this.haveShownLoadMessage) {
+g.setColor (java.awt.Color.black);
+g.setFont ( new java.awt.Font ("Arial", 1, 24));
+awt2swing.Util.drawString (g, jalview.util.MessageManager.getString ("label.jalview_applet"), 50, Clazz_doubleToInt (this.getSize ().height / 2) - 30);
+awt2swing.Util.drawString (g, jalview.util.MessageManager.getString ("label.loading_data") + "...", 50, Clazz_doubleToInt (this.getSize ().height / 2));
+this.haveShownLoadMessage = true;
+}}, "java.awt.Graphics");
+Clazz_defineMethod (c$, "getAppletWindow", 
+function (class1) {
+var wnds =  new java.util.Vector ();
+var cmp = this.getComponents ();
+if (cmp != null) {
+for (var i = 0; i < cmp.length; i++) {
+if (class1.isAssignableFrom (cmp[i].getClass ())) {
+wnds.addElement (cmp);
+}}
+}return wnds;
+}, "Class");
+Clazz_defineMethod (c$, "getDefaultTargetFrame", 
+function () {
+if (this.currentAlignFrame != null) {
+return this.currentAlignFrame;
+}if (this.initialAlignFrame != null) {
+return this.initialAlignFrame;
+}System.err.println ("Implementation error: Jalview Applet API cannot work out which AlignFrame to use.");
+return null;
+});
+Clazz_defineMethod (c$, "separatorListToArray", 
+function (list) {
+return this.separatorListToArray (list, this.separator);
+}, "~S");
+Clazz_defineMethod (c$, "separatorListToArray", 
+function (list, separator) {
+var seplen = separator.length;
+if (list == null || list.equals ("") || list.equals (separator)) {
+return null;
+}var jv =  new java.util.Vector ();
+var cp = 0;
+var pos;
+while ((pos = list.indexOf (separator, cp)) > cp) {
+jv.addElement (list.substring (cp, pos));
+cp = pos + seplen;
+}
+if (cp < list.length) {
+var c = list.substring (cp);
+if (!c.equals (separator)) {
+jv.addElement (c);
+}}if (jv.size () > 0) {
+var v =  new Array (jv.size ());
+for (var i = 0; i < v.length; i++) {
+v[i] = jv.elementAt (i);
+}
+jv.removeAllElements ();
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Array from '" + separator + "' separated List:\n" + v.length);
+for (var i = 0; i < v.length; i++) {
+System.err.println ("item " + i + " '" + v[i] + "'");
+}
+}return v;
+}if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Empty Array from '" + separator + "' separated List");
+}return null;
+}, "~S,~S");
+Clazz_defineMethod (c$, "arrayToSeparatorList", 
+function (list) {
+return this.arrayToSeparatorList (list, this.separator);
+}, "~A");
+Clazz_defineMethod (c$, "arrayToSeparatorList", 
+function (list, separator) {
+var v =  new StringBuffer ();
+if (list != null && list.length > 0) {
+for (var i = 0, iSize = list.length; i < iSize; i++) {
+if (list[i] != null) {
+if (i > 0) {
+v.append (separator);
+}v.append (list[i]);
+}}
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Returning '" + separator + "' separated List:\n");
+System.err.println (v);
+}return v.toString ();
+}if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Returning empty '" + separator + "' separated List\n");
+}return "" + separator;
+}, "~A,~S");
+Clazz_overrideMethod (c$, "getFeatureGroups", 
+function () {
+var lst = this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroups ());
+return lst;
+});
+Clazz_overrideMethod (c$, "getFeatureGroupsOn", 
+function (alf) {
+var lst = this.arrayToSeparatorList (alf.getFeatureGroups ());
+return lst;
+}, "jalview.appletgui.AlignFrame");
+Clazz_overrideMethod (c$, "getFeatureGroupsOfState", 
+function (visible) {
+return this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroupsOfState (visible));
+}, "~B");
+Clazz_overrideMethod (c$, "getFeatureGroupsOfStateOn", 
+function (alf, visible) {
+return this.arrayToSeparatorList (alf.getFeatureGroupsOfState (visible));
+}, "jalview.appletgui.AlignFrame,~B");
+Clazz_overrideMethod (c$, "setFeatureGroupStateOn", 
+function (alf, groups, state) {
+var st = state;
+java.awt.EventQueue.invokeLater (((Clazz_isClassDefined ("jalview.bin.JalviewLite$10") ? 0 : jalview.bin.JalviewLite.$JalviewLite$10$ ()), Clazz_innerTypeInstance (jalview.bin.JalviewLite$10, this, Clazz_cloneFinals ("alf", alf, "groups", groups, "st", st))));
+}, "jalview.appletgui.AlignFrame,~S,~B");
+Clazz_overrideMethod (c$, "setFeatureGroupState", 
+function (groups, state) {
+this.setFeatureGroupStateOn (this.getDefaultTargetFrame (), groups, state);
+}, "~S,~B");
+Clazz_overrideMethod (c$, "getSeparator", 
+function () {
+return this.separator;
+});
+Clazz_overrideMethod (c$, "setSeparator", 
+function (separator) {
+if (separator == null || separator.length < 1) {
+separator = "\u00ac";
+}this.separator = separator;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Default Separator now: '" + separator + "'");
+}}, "~S");
+Clazz_overrideMethod (c$, "addPdbFile", 
+function (alFrame, sequenceId, pdbEntryString, pdbFile) {
+return alFrame.addPdbFile (sequenceId, pdbEntryString, pdbFile);
+}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz_defineMethod (c$, "setAlignPdbStructures", 
+function (alignPdbStructures) {
+this.alignPdbStructures = alignPdbStructures;
+}, "~B");
+Clazz_defineMethod (c$, "isAlignPdbStructures", 
+function () {
+return this.alignPdbStructures;
+});
+Clazz_overrideMethod (c$, "start", 
+function () {
+});
+Clazz_defineMethod (c$, "setJsMessageSet", 
+function (messageclass, viewId, colcommands) {
+var msgset = this.jsmessages.get (messageclass);
+if (msgset == null) {
+msgset =  new java.util.Hashtable ();
+this.jsmessages.put (messageclass, msgset);
+}msgset.put (viewId, colcommands);
+var l =  Clazz_newLongArray (colcommands.length, 0);
+for (var i = 0; i < colcommands.length; i++) {
+l[i] = colcommands[i].hashCode ();
+}
+this.jshashes.put (messageclass + "|" + viewId, l);
+}, "~S,~S,~A");
+Clazz_overrideMethod (c$, "getJsMessage", 
+function (messageclass, viewId) {
+var msgset = this.jsmessages.get (messageclass);
+if (msgset != null) {
+var msgs = msgset.get (viewId);
+if (msgs != null) {
+for (var i = 0; i < msgs.length; i++) {
+if (msgs[i] != null) {
+var m = msgs[i];
+msgs[i] = null;
+return m;
+}}
+}}return "";
+}, "~S,~S");
+Clazz_defineMethod (c$, "isJsMessageSetChanged", 
+function (string, string2, colcommands) {
+var l = this.jshashes.get (string + "|" + string2);
+if (l == null && colcommands != null) {
+return true;
+}for (var i = 0; i < colcommands.length; i++) {
+if (l[i] != colcommands[i].hashCode ()) {
+return true;
+}}
+return false;
+}, "~S,~S,~A");
+Clazz_defineMethod (c$, "getJsExecQueue", 
+function () {
+return this.jsExecQueue;
+});
+Clazz_defineMethod (c$, "setExecutor", 
+function (jsFunctionExec2) {
+this.jsFunctionExec = jsFunctionExec2;
+}, "jalview.javascript.JSFunctionExec");
+Clazz_defineMethod (c$, "getDefaultColourParameter", 
+function (colparam, defcolour) {
+var colprop = this.getParameter (colparam);
+if (colprop == null || colprop.trim ().length == 0) {
+return defcolour;
+}var col = jalview.schemes.ColourSchemeProperty.getAWTColorFromName (colprop);
+if (col == null) {
+try {
+col =  new jalview.schemes.UserColourScheme (colprop).findColour ('A');
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse '" + colprop + "' as a colour for " + colparam);
+col = null;
+} else {
+throw ex;
+}
+}
+}return (col == null) ? defcolour : col;
+}, "~S,java.awt.Color");
+Clazz_defineMethod (c$, "openJalviewHelpUrl", 
+function () {
+if (this.helpUrl == null || this.helpUrl.trim ().length < 5) {
+this.helpUrl = "http://www.jalview.org/help.html";
+}this.showURL (this.helpUrl, "HELP");
+});
+Clazz_defineMethod (c$, "resolveUrlForLocalOrAbsolute", 
+ function (url, localref) {
+var codebase = localref.toString ();
+var pt = codebase.indexOf ("?");
+if (pt < 0) pt = codebase.length;
+codebase = codebase.substring (0, pt);
+codebase = codebase.substring (0, codebase.lastIndexOf ("/") + 1);
+if (url.indexOf ("/") == 0 && !localref.getProtocol ().equals ("file")) {
+pt = codebase.indexOf ("/", 8);
+return codebase.substring (0, pt) + url;
+}return codebase + url;
+}, "~S,java.net.URL");
+Clazz_defineMethod (c$, "showURL", 
+function (url, target) {
+try {
+if (url.indexOf (":") == -1) {
+var prepend;
+url = this.resolveUrlForLocalOrAbsolute (url, prepend = this.getDefaultParameter ("resolvetocodebase", false) ? this.getDocumentBase () : this.getCodeBase ());
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Show url (prepended " + prepend + " - toggle resolvetocodebase if code/docbase resolution is wrong): " + url);
+}} else {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Show url: " + url);
+}}if (url.indexOf ("javascript:") == 0) {
+this.getAppletContext ().showDocument ( new java.net.URL (url));
+} else {
+this.getAppletContext ().showDocument ( new java.net.URL (url), target);
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}, "~S,~S");
+c$.$JalviewLite$LoadJmolThread$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.running = false;
+Clazz_instantialize (this, arguments);
+}, jalview.bin.JalviewLite, "LoadJmolThread", Thread);
+Clazz_overrideMethod (c$, "run", 
+function () {
+if (this.running || this.b$["jalview.bin.JalviewLite"].checkedForJmol) {
+return;
+}this.running = true;
+if (this.b$["jalview.bin.JalviewLite"].checkForJmol) {
+try {
+if (!System.getProperty ("java.version").startsWith ("1.1")) {
+Clazz._4Name ("org.jmol.adapter.smarter.SmarterJmolAdapter");
+this.b$["jalview.bin.JalviewLite"].jmolAvailable = true;
+}if (!this.b$["jalview.bin.JalviewLite"].jmolAvailable) {
+System.out.println ("Jmol not available - Using MCview for structures");
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, ClassNotFoundException)) {
+} else {
+throw ex;
+}
+}
+} else {
+this.b$["jalview.bin.JalviewLite"].jmolAvailable = false;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Skipping Jmol check. Will use MCView (probably)");
+}}this.b$["jalview.bin.JalviewLite"].checkedForJmol = true;
+this.running = false;
+});
+Clazz_defineMethod (c$, "notFinished", 
+function () {
+return this.running || !this.b$["jalview.bin.JalviewLite"].checkedForJmol;
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$LoadingThread$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.protocol = null;
+this._file = null;
+this._file2 = null;
+this.applet = null;
+Clazz_instantialize (this, arguments);
+}, jalview.bin.JalviewLite, "LoadingThread", Thread);
+Clazz_defineMethod (c$, "dbgMsg", 
+ function (a) {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println (a);
+}}, "~S");
+Clazz_defineMethod (c$, "setProtocolState", 
+function (a) {
+if (a.startsWith ("PASTE")) {
+a = a.substring (5);
+this.protocol = jalview.io.AppletFormatAdapter.PASTE;
+} else if (this.inArchive (a)) {
+this.protocol = jalview.io.AppletFormatAdapter.CLASSLOADER;
+} else {
+a = this.addProtocol (a);
+this.protocol = jalview.io.AppletFormatAdapter.URL;
+}this.dbgMsg ("Protocol identified as '" + this.protocol + "'");
+return a;
+}, "~S");
+Clazz_makeConstructor (c$, 
+function (a, b, c) {
+Clazz_superConstructor (this, jalview.bin.JalviewLite.LoadingThread, []);
+this._file = a;
+this._file2 = b;
+this.applet = c;
+}, "~S,~S,jalview.bin.JalviewLite");
+Clazz_overrideMethod (c$, "run", 
+function () {
+{
+System.out.println("BYPASSING JMOL LOADING FOR NOW. THIS WILL BE DONE ANOTHER WAY")
+}this.startLoading ();
+});
+Clazz_defineMethod (c$, "startLoading", 
+ function () {
+this.dbgMsg ("Loading thread started with:\n>>file\n" + this._file + ">>endfile");
+this.dbgMsg ("Loading started.");
+var a = this.readAlignment (this._file);
+var b = this.readAlignment (this._file2);
+if (a != null) {
+this.addToDisplay (a, b);
+this.loadTree (a);
+this.loadScoreFile (a);
+this.loadFeatures (a);
+this.loadAnnotations (a);
+this.loadJnetFile (a);
+this.loadPdbFiles (a);
+} else {
+this.b$["jalview.bin.JalviewLite"].fileFound = false;
+this.applet.remove (this.b$["jalview.bin.JalviewLite"].launcher);
+this.applet.repaint ();
+}this.b$["jalview.bin.JalviewLite"].callInitCallback ();
+});
+Clazz_defineMethod (c$, "addToDisplay", 
+function (a, b) {
+if (b == null) {
+a.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded);
+} else {
+var c =  new jalview.appletgui.SplitFrame (a, b);
+c.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded, this.b$["jalview.bin.JalviewLite"]);
+}}, "jalview.appletgui.AlignFrame,jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "readAlignment", 
+function (a) {
+if (a == null) {
+return null;
+}var b = this.setProtocolState (a);
+var c =  new jalview.io.IdentifyFile ().Identify (b, this.protocol);
+this.dbgMsg ("File identified as '" + c + "'");
+var d = null;
+try {
+d =  new jalview.io.AppletFormatAdapter ().readFile (b, this.protocol, c);
+if ((d != null) && (d.getHeight () > 0)) {
+this.dbgMsg ("Successfully loaded file.");
+d.setDataset (null);
+var e =  new jalview.appletgui.AlignFrame (d, this.applet, b, this.b$["jalview.bin.JalviewLite"].embedded, false);
+e.setTitle (b);
+if (this.b$["jalview.bin.JalviewLite"].initialAlignFrame == null) {
+this.b$["jalview.bin.JalviewLite"].initialAlignFrame = e;
+}this.b$["jalview.bin.JalviewLite"].currentAlignFrame = e;
+if (this.protocol === jalview.io.AppletFormatAdapter.PASTE) {
+e.setTitle (jalview.util.MessageManager.formatMessage ("label.sequences_from",  Clazz_newArray (-1, [this.applet.getDocumentBase ().toString ()])));
+}e.setStatus (jalview.util.MessageManager.formatMessage ("label.successfully_loaded_file",  Clazz_newArray (-1, [b])));
+return e;
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, java.io.IOException)) {
+this.dbgMsg ("File load exception.");
+ex.printStackTrace ();
+if (jalview.bin.JalviewLite.debug) {
+try {
+var e =  new jalview.io.FileParse (b, this.protocol);
+var f = null;
+this.dbgMsg (">>>Dumping contents of '" + b + "' " + "(" + this.protocol + ")");
+while ((f = e.nextLine ()) != null) {
+this.dbgMsg (f);
+}
+this.dbgMsg (">>>Dump finished.");
+} catch (e) {
+if (Clazz_exceptionOf (e, Exception)) {
+System.err.println ("Exception when trying to dump the content of the file parameter.");
+e.printStackTrace ();
+} else {
+throw e;
+}
+}
+}} else {
+throw ex;
+}
+}
+return null;
+}, "~S");
+Clazz_defineMethod (c$, "loadPdbFiles", 
+function (a) {
+var b = false;
+this.applet.setAlignPdbStructures (this.b$["jalview.bin.JalviewLite"].getDefaultParameter ("alignpdbfiles", false));
+var c = 0;
+var d =  new java.util.Vector ();
+var e = (this.applet.getDefaultParameter ("relaxedidmatch", false)) ?  new jalview.analysis.SequenceIdMatcher (a.getAlignViewport ().getAlignment ().getSequencesArray ()) : null;
+var f;
+do {
+if (c > 0) {
+f = this.applet.getParameter ("PDBFILE" + c);
+} else {
+f = this.b$["jalview.bin.JalviewLite"].pdbFile;
+}if (f != null) {
+var g =  new jalview.datamodel.PDBEntry ();
+var h;
+var i = null;
+var j = null;
+var k =  new java.util.StringTokenizer (f, " ");
+if (k.countTokens () < 2) {
+if (this.b$["jalview.bin.JalviewLite"].sequence != null) {
+i =  Clazz_newArray (-1, [e == null ? a.getAlignViewport ().getAlignment ().findName (this.b$["jalview.bin.JalviewLite"].sequence) : e.findIdMatch (this.b$["jalview.bin.JalviewLite"].sequence)]);
+}} else {
+f = k.nextToken ();
+var l =  new java.util.Vector ();
+var m =  new java.util.Vector ();
+while (k.hasMoreTokens ()) {
+h = k.nextToken ();
+var n =  new java.util.StringTokenizer (h, "=");
+if (n.countTokens () > 1) {
+m.addElement (n.nextToken ());
+h = n.nextToken ();
+}l.addElement (e == null ? a.getAlignViewport ().getAlignment ().findName (h) : e.findIdMatch (h));
+}
+i =  new Array (l.size ());
+l.copyInto (i);
+if (m.size () == l.size ()) {
+j =  new Array (m.size ());
+m.copyInto (j);
+}}f = this.setProtocolState (f);
+if (this.protocol === jalview.io.AppletFormatAdapter.CLASSLOADER && !this.b$["jalview.bin.JalviewLite"].useXtrnalSviewer) {
+this.protocol = jalview.io.AppletFormatAdapter.URL;
+f = this.addProtocol (f);
+}g.setFile (f);
+if (i != null) {
+for (var l = 0; l < i.length; l++) {
+if (i[l] != null) {
+(i[l]).addPDBId (g);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.applet).registerPDBEntry (g);
+} else {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Warning: Possible input parsing error: Null sequence for attachment of PDB (sequence " + l + ")");
+}}}
+if (!this.b$["jalview.bin.JalviewLite"].alignPdbStructures) {
+a.newStructureView (this.applet, g, i, j, this.protocol);
+} else {
+d.addElement ( Clazz_newArray (-1, [g, i, j,  String.instantialize (this.protocol)]));
+}}}c++;
+} while (f != null || c < 10);
+if (d.size () > 0) {
+var g =  new Array (d.size ());
+var h =  new Array (d.size ());
+var i =  new Array (d.size ());
+var j =  new Array (d.size ());
+for (var k = 0, l = d.size (); k < l; k++) {
+var m = d.elementAt (k);
+h[k] = m[0];
+g[k] = m[1];
+i[k] = m[2];
+j[k] = m[3];
+}
+a.alignedStructureView (this.applet, h, g, i, j);
+b = true;
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "loadJnetFile", 
+function (a) {
+var b = false;
+var c = this.b$["jalview.bin.JalviewLite"].jnetFile;
+if (c != null) {
+try {
+c = this.setProtocolState (c);
+var d = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [c, this.protocol]);
+jalview.io.JnetAnnotationMaker.add_annotation (d, a.viewport.getAlignment (), 0, false);
+var e = a.viewport.getAlignment ().getSequenceAt (0);
+a.viewport.getAlignment ().setSeqrep (e);
+var f =  new jalview.datamodel.ColumnSelection ();
+f.hideInsertionsFor (e);
+a.viewport.setColumnSelection (f);
+a.alignPanel.fontChanged ();
+a.alignPanel.setScrollValues (0, 0);
+b = true;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "loadAnnotations", 
+function (a) {
+var b = false;
+var c = this.b$["jalview.bin.JalviewLite"].annotations;
+if (c != null) {
+c = this.setProtocolState (c);
+if ( new jalview.io.AnnotationFile ().annotateAlignmentView (a.viewport, c, this.protocol)) {
+a.alignPanel.fontChanged ();
+a.alignPanel.setScrollValues (0, 0);
+b = true;
+} else {
+System.err.println ("Annotations were not added from annotation file '" + c + "'");
+}}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "loadFeatures", 
+function (a) {
+var b = false;
+var c = this.b$["jalview.bin.JalviewLite"].hideFeatureGroups;
+if (c != null) {
+a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), false);
+}c = this.b$["jalview.bin.JalviewLite"].showFeatureGroups;
+if (c != null) {
+a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), true);
+}c = this.b$["jalview.bin.JalviewLite"].features;
+if (c != null) {
+c = this.setProtocolState (c);
+b = a.parseFeaturesFile (c, this.protocol);
+}c = this.b$["jalview.bin.JalviewLite"].showFeatureSettings;
+if (c != null && c.equalsIgnoreCase ("true")) {
+a.viewport.setShowSequenceFeatures (true);
+ new jalview.appletgui.FeatureSettings (a.alignPanel);
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "loadScoreFile", 
+function (a) {
+var b = false;
+if (this.b$["jalview.bin.JalviewLite"].scoreFile != null && !"".equals (this.b$["jalview.bin.JalviewLite"].scoreFile)) {
+try {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Attempting to load T-COFFEE score file from the scoreFile parameter");
+}b = a.loadScoreFile (this.b$["jalview.bin.JalviewLite"].scoreFile);
+if (!b) {
+System.err.println ("Failed to parse T-COFFEE parameter as a valid score file ('" + this.b$["jalview.bin.JalviewLite"].scoreFile + "')");
+}} catch (e) {
+if (Clazz_exceptionOf (e, Exception)) {
+System.err.printf ("Cannot read score file: '%s'. Cause: %s \n", [this.b$["jalview.bin.JalviewLite"].scoreFile, e.getMessage ()]);
+} else {
+throw e;
+}
+}
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "loadTree", 
+function (a) {
+var b = false;
+if (this.b$["jalview.bin.JalviewLite"].treeFile == null) {
+this.b$["jalview.bin.JalviewLite"].treeFile = this.applet.getParameter ("treeFile");
+}if (this.b$["jalview.bin.JalviewLite"].treeFile != null) {
+try {
+this.b$["jalview.bin.JalviewLite"].treeFile = this.setProtocolState (this.b$["jalview.bin.JalviewLite"].treeFile);
+var c =  new jalview.io.NewickFile (this.b$["jalview.bin.JalviewLite"].treeFile, this.protocol);
+c.parse ();
+if (c.getTree () != null) {
+a.loadTree (c, this.b$["jalview.bin.JalviewLite"].treeFile);
+b = true;
+this.dbgMsg ("Successfully imported tree.");
+} else {
+this.dbgMsg ("Tree parameter did not resolve to a valid tree.");
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz_defineMethod (c$, "inArchive", 
+function (a) {
+try {
+var b = (this.getClass ().getResourceAsStream ("/" + a) != null);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Resource '" + a + "' was " + (b ? "" : "not") + " located by classloader.");
+}return b;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+System.out.println ("Exception checking resources: " + a + " " + ex);
+return false;
+} else {
+throw ex;
+}
+}
+}, "~S");
+Clazz_defineMethod (c$, "addProtocol", 
+function (a) {
+if (a.indexOf ("://") == -1) {
+var b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getDocumentBase ());
+if (this.urlExists (b)) {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Prepended document base for resource: '" + a + "'");
+}return b;
+}b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getCodeBase ());
+if (this.urlExists (b)) {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Prepended codebase for resource: '" + a + "'");
+}return b;
+}}return a;
+}, "~S");
+Clazz_defineMethod (c$, "urlExists", 
+ function (a) {
+var b = null;
+try {
+b =  new java.net.URL (a).openStream ();
+if (b != null) {
+return true;
+}} catch (x) {
+if (Clazz_exceptionOf (x, Exception)) {
+} else {
+throw x;
+}
+} finally {
+if (b != null) {
+try {
+b.close ();
+} catch (e) {
+if (Clazz_exceptionOf (e, java.io.IOException)) {
+} else {
+throw e;
+}
+}
+}}
+return false;
+}, "~S");
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$1$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$1", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.sq.findIndex (this.f$.pos), null);
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$2$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$2", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.pos, null);
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$3$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$3", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+this.f$.alf.select (this.f$.sel, this.f$.csel);
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$4$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$4", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+try {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverStructure ( new Integer (this.f$.pdbResNum).intValue (), this.f$.chain, this.f$.pdbfile);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("mouseOver for '" + this.f$.pdbResNum + "' in chain '" + this.f$.chain + "' in structure '" + this.f$.pdbfile + "'");
+}} catch (e) {
+if (Clazz_exceptionOf (e, NumberFormatException)) {
+System.err.println ("Ignoring invalid residue number string '" + this.f$.pdbResNum + "'");
+} else {
+throw e;
+}
+}
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$5$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$5", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+try {
+this.f$.alf.scrollTo ( new Integer (this.f$.topRow).intValue (),  new Integer (this.f$.leftHandColumn).intValue ());
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "' and leftHandColumn='" + this.f$.leftHandColumn + "')");
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$6$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$6", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+try {
+this.f$.alf.scrollToRow ( new Integer (this.f$.topRow).intValue ());
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "')");
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$7$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$7", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+try {
+this.f$.alf.scrollToColumn ( new Integer (this.f$.leftHandColumn).intValue ());
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse integer arguments (leftHandColumn='" + this.f$.leftHandColumn + "')");
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+});
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$8$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$8", null, java.awt.event.ActionListener);
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (e) {
+var loader = Clazz_innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.b$["jalview.bin.JalviewLite"].startupFile, this.b$["jalview.bin.JalviewLite"].file2, this.b$["jalview.bin.JalviewLite"]);
+loader.start ();
+}, "java.awt.event.ActionEvent");
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$9$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$9", java.awt.event.WindowAdapter);
+Clazz_overrideMethod (c$, "windowClosing", 
+function (e) {
+if (Clazz_instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {
+var vp = (this.f$.frame).viewport;
+(this.f$.frame).closeMenuItem_actionPerformed ();
+if (vp.applet.currentAlignFrame === this.f$.frame) {
+vp.applet.currentAlignFrame = null;
+}vp.applet = null;
+vp = null;
+}jalview.bin.JalviewLite.lastFrameX -= 40;
+jalview.bin.JalviewLite.lastFrameY -= 40;
+if (Clazz_instanceOf (this.f$.frame, jalview.appletgui.EmbmenuFrame)) {
+(this.f$.frame).destroyMenus ();
+}this.f$.frame.setMenuBar (null);
+this.f$.frame.dispose ();
+}, "java.awt.event.WindowEvent");
+Clazz_defineMethod (c$, "windowActivated", 
+function (e) {
+if (Clazz_instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {
+(this.f$.frame).viewport.applet.currentAlignFrame = this.f$.frame;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Activated window " + this.f$.frame);
+}}Clazz_superCall (this, jalview.bin.JalviewLite$9, "windowActivated", [e]);
+}, "java.awt.event.WindowEvent");
+c$ = Clazz_p0p ();
+};
+c$.$JalviewLite$10$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_declareAnonymous (jalview.bin, "JalviewLite$10", null, Runnable);
+Clazz_overrideMethod (c$, "run", 
+function () {
+this.f$.alf.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (this.f$.groups), this.f$.st);
+});
+c$ = Clazz_p0p ();
+};
+Clazz_defineStatics (c$,
+"TRUE", "true",
+"FALSE", "false",
+"debug", false,
+"lastFrameX", 200,
+"lastFrameY", 200,
+"builddate", null,
+"version", null,
+"installation", null);
+});
+Clazz_declarePackage ("javax.swing");
+Clazz_load (["javax.swing.AbstractButton"], "javax.swing.JButton", ["javax.swing.DefaultButtonModel", "$.SwingUtilities", "$.UIManager"], function () {
+c$ = Clazz_declareType (javax.swing, "JButton", javax.swing.AbstractButton);
+Clazz_makeConstructor (c$, 
+function () {
+this.construct (null, null);
+});
+Clazz_makeConstructor (c$, 
+function (icon) {
+this.construct (null, icon);
+}, "javax.swing.Icon");
+Clazz_makeConstructor (c$, 
+function (text) {
+this.construct (text, null);
+}, "~S");
+Clazz_makeConstructor (c$, 
+function (a) {
+this.construct ();
+this.setAction (a);
+}, "javax.swing.Action");
+Clazz_makeConstructor (c$, 
+function (text, icon) {
+Clazz_superConstructor (this, javax.swing.JButton, []);
+this.setModel ( new javax.swing.DefaultButtonModel ());
+this.init (text, icon);
+}, "~S,javax.swing.Icon");
+Clazz_overrideMethod (c$, "updateUI", 
+function () {
+this.setUI (javax.swing.UIManager.getUI (this));
+});
+Clazz_overrideMethod (c$, "getUIClassID", 
+function () {
+return "ButtonUI";
+});
+Clazz_defineMethod (c$, "isDefaultButton", 
+function () {
+var root = javax.swing.SwingUtilities.getRootPane (this);
+if (root != null) {
+return root.getDefaultButton () === this;
+}return false;
+});
+Clazz_defineMethod (c$, "isDefaultCapable", 
+function () {
+return this.defaultCapable;
+});
+Clazz_defineMethod (c$, "setDefaultCapable", 
+function (defaultCapable) {
+var oldDefaultCapable = this.defaultCapable;
+this.defaultCapable = defaultCapable;
+this.firePropertyChangeBool ("defaultCapable", oldDefaultCapable, defaultCapable);
+}, "~B");
+Clazz_defineMethod (c$, "removeNotify", 
+function () {
+var root = javax.swing.SwingUtilities.getRootPane (this);
+if (root != null && root.getDefaultButton () === this) {
+root.setDefaultButton (null);
+}Clazz_superCall (this, javax.swing.JButton, "removeNotify", []);
+});
+Clazz_defineMethod (c$, "paramString", 
+function () {
+var defaultCapableString = (this.defaultCapable ? "true" : "false");
+return Clazz_superCall (this, javax.swing.JButton, "paramString", []) + ",defaultCapable=" + defaultCapableString;
+});
+Clazz_defineStatics (c$,
+"$uiClassID", "ButtonUI");
+});
+Clazz_declarePackage ("jalview.util");
+Clazz_load (["java.text.MessageFormat", "java.util.logging.Logger"], "jalview.util.MessageManager", ["java.util.Locale", "$.ResourceBundle", "java.util.logging.Level"], function () {
+c$ = Clazz_declareType (jalview.util, "MessageManager");
+c$.getString = Clazz_defineMethod (c$, "getString", 
+function (key) {
+var value = "[missing key] " + key;
+try {
+value = jalview.util.MessageManager.rb.getString (key);
+} catch (e) {
+if (Clazz_exceptionOf (e, Exception)) {
+jalview.util.MessageManager.log.warning ("I18N missing: " + jalview.util.MessageManager.loc + "\t" + key);
+} else {
+throw e;
+}
+}
+return value;
+}, "~S");
+c$.getLocale = Clazz_defineMethod (c$, "getLocale", 
+function () {
+return jalview.util.MessageManager.loc;
+});
+c$.formatMessage = Clazz_defineMethod (c$, "formatMessage", 
+function (key, params) {
+return java.text.MessageFormat.format (jalview.util.MessageManager.getString (key), params);
+}, "~S,~A");
+c$.formatMessage = Clazz_defineMethod (c$, "formatMessage", 
+function (key, params) {
+return java.text.MessageFormat.format (jalview.util.MessageManager.getString (key), params);
+}, "~S,~A");
+c$.getStringOrReturn = Clazz_defineMethod (c$, "getStringOrReturn", 
+function (keyroot, name) {
+var smkey = keyroot + name.toLowerCase ().replaceAll (" ", "");
+try {
+name = jalview.util.MessageManager.rb.getString (smkey);
+} catch (x) {
+if (Clazz_exceptionOf (x, Exception)) {
+jalview.util.MessageManager.log.finest ("I18N missing key with root " + keyroot + ": " + jalview.util.MessageManager.loc + "\t" + smkey);
+} else {
+throw x;
+}
+}
+return name;
+}, "~S,~S");
+Clazz_defineStatics (c$,
+"rb", null);
+c$.log = c$.prototype.log = java.util.logging.Logger.getLogger (jalview.util.MessageManager.getCanonicalName ());
+Clazz_defineStatics (c$,
+"loc", null);
+{
+try {
+jalview.util.MessageManager.loc = java.util.Locale.getDefault ();
+jalview.util.MessageManager.log.info ("Getting messages for lang: " + jalview.util.MessageManager.loc);
+jalview.util.MessageManager.rb = java.util.ResourceBundle.getBundle ("lang.Messages", jalview.util.MessageManager.loc);
+if (jalview.util.MessageManager.rb == null || jalview.util.MessageManager.log.isLoggable (java.util.logging.Level.FINEST)) {
+jalview.util.MessageManager.log.finest ("Language keys: " + jalview.util.MessageManager.rb.keySet ());
+}} catch (e$$) {
+if (Clazz_exceptionOf (e$$, Exception)) {
+var q = e$$;
+{
+jalview.util.MessageManager.log.warning ("Exception when initting Locale for i18n messages\n" + q.getMessage ());
+q.printStackTrace ();
+}
+} else if (Clazz_exceptionOf (e$$, Error)) {
+var v = e$$;
+{
+jalview.util.MessageManager.log.warning ("Error when initting Locale for i18n messages\n" + v.getMessage ());
+v.printStackTrace ();
+}
+} else {
+throw e$$;
+}
+}
+}});
+Clazz_declarePackage ("java.util.logging");
+Clazz_load (["java.util.Hashtable", "java.util.logging.Level", "$.LogRecord"], "java.util.logging.Logger", null, function () {
+c$ = Clazz_decorateAsClass (function () {
+this.name = null;
+this.levelObject = null;
+this.levelValue = 0;
+Clazz_instantialize (this, arguments);
+}, java.util.logging, "Logger");
+Clazz_makeConstructor (c$, 
+function (name, resourceBundleName) {
+this.construct (name, resourceBundleName, null, false);
+}, "~S,~S");
+Clazz_makeConstructor (c$, 
+function (name, resourceBundleName, caller, isSystemLogger) {
+this.name = name;
+this.levelValue = java.util.logging.Level.INFO.intValue ();
+}, "~S,~S,Class,~B");
+Clazz_makeConstructor (c$, 
+ function (name) {
+this.name = name;
+this.levelValue = java.util.logging.Level.INFO.intValue ();
+}, "~S");
+c$.getLogger = Clazz_defineMethod (c$, "getLogger", 
+function (name) {
+var log = java.util.logging.Logger.loggers.get (name);
+if (log == null) java.util.logging.Logger.loggers.put (name, log =  new java.util.logging.Logger (name));
+return log;
+}, "~S");
+c$.getLogger = Clazz_defineMethod (c$, "getLogger", 
+function (name, resourceBundleName) {
+return java.util.logging.Logger.getLogger (name);
+}, "~S,~S");
+c$.getAnonymousLogger = Clazz_defineMethod (c$, "getAnonymousLogger", 
+function () {
+return java.util.logging.Logger.getAnonymousLogger (null);
+});
+c$.getAnonymousLogger = Clazz_defineMethod (c$, "getAnonymousLogger", 
+function (resourceBundleName) {
+return java.util.logging.Logger.global;
+}, "~S");
+Clazz_defineMethod (c$, "log", 
+function (record) {
+if (record.getLevel ().intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}System.out.println (record.getLoggerName () + ": " + record.getMessage ());
+}, "java.util.logging.LogRecord");
+Clazz_defineMethod (c$, "doLog", 
+ function (lr) {
+lr.setLoggerName (this.name);
+this.log (lr);
+}, "java.util.logging.LogRecord");
+Clazz_defineMethod (c$, "log", 
+function (level, msg) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+this.doLog (lr);
+}, "java.util.logging.Level,~S");
+Clazz_defineMethod (c$, "log", 
+function (level, msg, param1) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+var params =  Clazz_newArray (-1, [param1]);
+lr.setParameters (params);
+this.doLog (lr);
+}, "java.util.logging.Level,~S,~O");
+Clazz_defineMethod (c$, "log", 
+function (level, msg, params) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+lr.setParameters (params);
+this.doLog (lr);
+}, "java.util.logging.Level,~S,~A");
+Clazz_defineMethod (c$, "log", 
+function (level, msg, thrown) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+lr.setThrown (thrown);
+this.doLog (lr);
+}, "java.util.logging.Level,~S,Throwable");
+Clazz_defineMethod (c$, "logp", 
+function (level, sourceClass, sourceMethod, msg) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+lr.setSourceClassName (sourceClass);
+lr.setSourceMethodName (sourceMethod);
+this.doLog (lr);
+}, "java.util.logging.Level,~S,~S,~S");
+Clazz_defineMethod (c$, "logp", 
+function (level, sourceClass, sourceMethod, msg, param1) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+lr.setSourceClassName (sourceClass);
+lr.setSourceMethodName (sourceMethod);
+var params =  Clazz_newArray (-1, [param1]);
+lr.setParameters (params);
+this.doLog (lr);
+}, "java.util.logging.Level,~S,~S,~S,~O");
+Clazz_defineMethod (c$, "logp", 
+function (level, sourceClass, sourceMethod, msg, params) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+lr.setSourceClassName (sourceClass);
+lr.setSourceMethodName (sourceMethod);
+lr.setParameters (params);
+this.doLog (lr);
+}, "java.util.logging.Level,~S,~S,~S,~A");
+Clazz_defineMethod (c$, "logp", 
+function (level, sourceClass, sourceMethod, msg, thrown) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (level, msg);
+lr.setSourceClassName (sourceClass);
+lr.setSourceMethodName (sourceMethod);
+lr.setThrown (thrown);
+this.doLog (lr);
+}, "java.util.logging.Level,~S,~S,~S,Throwable");
+Clazz_defineMethod (c$, "entering", 
+function (sourceClass, sourceMethod) {
+if (java.util.logging.Level.FINER.intValue () < this.levelValue) {
+return;
+}this.logp (java.util.logging.Level.FINER, sourceClass, sourceMethod, "ENTRY");
+}, "~S,~S");
+Clazz_defineMethod (c$, "entering", 
+function (sourceClass, sourceMethod, param1) {
+if (java.util.logging.Level.FINER.intValue () < this.levelValue) {
+return;
+}var params =  Clazz_newArray (-1, [param1]);
+this.logp (java.util.logging.Level.FINER, sourceClass, sourceMethod, "ENTRY {0}", params);
+}, "~S,~S,~O");
+Clazz_defineMethod (c$, "entering", 
+function (sourceClass, sourceMethod, params) {
+if (java.util.logging.Level.FINER.intValue () < this.levelValue) {
+return;
+}var msg = "ENTRY";
+if (params == null) {
+this.logp (java.util.logging.Level.FINER, sourceClass, sourceMethod, msg);
+return;
+}for (var i = 0; i < params.length; i++) {
+msg = msg + " {" + i + "}";
+}
+this.logp (java.util.logging.Level.FINER, sourceClass, sourceMethod, msg, params);
+}, "~S,~S,~A");
+Clazz_defineMethod (c$, "exiting", 
+function (sourceClass, sourceMethod) {
+if (java.util.logging.Level.FINER.intValue () < this.levelValue) {
+return;
+}this.logp (java.util.logging.Level.FINER, sourceClass, sourceMethod, "RETURN");
+}, "~S,~S");
+Clazz_defineMethod (c$, "exiting", 
+function (sourceClass, sourceMethod, result) {
+if (java.util.logging.Level.FINER.intValue () < this.levelValue) {
+return;
+}this.logp (java.util.logging.Level.FINER, sourceClass, sourceMethod, "RETURN {0}", result);
+}, "~S,~S,~O");
+Clazz_defineMethod (c$, "throwing", 
+function (sourceClass, sourceMethod, thrown) {
+if (java.util.logging.Level.FINER.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return;
+}var lr =  new java.util.logging.LogRecord (java.util.logging.Level.FINER, "THROW");
+lr.setSourceClassName (sourceClass);
+lr.setSourceMethodName (sourceMethod);
+lr.setThrown (thrown);
+this.doLog (lr);
+}, "~S,~S,Throwable");
+Clazz_defineMethod (c$, "severe", 
+function (msg) {
+if (java.util.logging.Level.SEVERE.intValue () < this.levelValue) {
+return;
+}this.log (java.util.logging.Level.SEVERE, msg);
+}, "~S");
+Clazz_defineMethod (c$, "warning", 
+function (msg) {
+if (java.util.logging.Level.WARNING.intValue () < this.levelValue) {
+return;
+}this.log (java.util.logging.Level.WARNING, msg);
+}, "~S");
+Clazz_defineMethod (c$, "info", 
+function (msg) {
+if (java.util.logging.Level.INFO.intValue () < this.levelValue) {
+return;
+}this.log (java.util.logging.Level.INFO, msg);
+}, "~S");
+Clazz_defineMethod (c$, "config", 
+function (msg) {
+if (java.util.logging.Level.CONFIG.intValue () < this.levelValue) {
+return;
+}this.log (java.util.logging.Level.CONFIG, msg);
+}, "~S");
+Clazz_defineMethod (c$, "fine", 
+function (msg) {
+if (java.util.logging.Level.FINE.intValue () < this.levelValue) {
+return;
+}this.log (java.util.logging.Level.FINE, msg);
+}, "~S");
+Clazz_defineMethod (c$, "finer", 
+function (msg) {
+if (java.util.logging.Level.FINER.intValue () < this.levelValue) {
+return;
+}this.log (java.util.logging.Level.FINER, msg);
+}, "~S");
+Clazz_defineMethod (c$, "finest", 
+function (msg) {
+if (java.util.logging.Level.FINEST.intValue () < this.levelValue) {
+return;
+}this.log (java.util.logging.Level.FINEST, msg);
+}, "~S");
+Clazz_defineMethod (c$, "setLevel", 
+function (newLevel) {
+this.levelObject = newLevel;
+this.updateEffectiveLevel ();
+}, "java.util.logging.Level");
+Clazz_defineMethod (c$, "getLevel", 
+function () {
+return this.levelObject;
+});
+Clazz_defineMethod (c$, "isLoggable", 
+function (level) {
+if (level.intValue () < this.levelValue || this.levelValue == java.util.logging.Logger.offValue) {
+return false;
+}return true;
+}, "java.util.logging.Level");
+Clazz_defineMethod (c$, "getName", 
+function () {
+return this.name;
+});
+Clazz_defineMethod (c$, "updateEffectiveLevel", 
+ function () {
+var newLevelValue;
+if (this.levelObject != null) {
+newLevelValue = this.levelObject.intValue ();
+} else {
+newLevelValue = java.util.logging.Level.INFO.intValue ();
+}if (this.levelValue == newLevelValue) {
+return;
+}this.levelValue = newLevelValue;
+});
+c$.offValue = c$.prototype.offValue = java.util.logging.Level.OFF.intValue ();
+Clazz_defineStatics (c$,
+"GLOBAL_LOGGER_NAME", "global");
+c$.global = c$.prototype.global =  new java.util.logging.Logger ("global");
+c$.loggers = c$.prototype.loggers =  new java.util.Hashtable ();
+{
+java.util.logging.Logger.loggers.put ("global", java.util.logging.Logger.global);
+}});
+Clazz_declarePackage ("java.util.logging");
+Clazz_load (null, "java.util.logging.LogRecord", ["java.lang.NullPointerException", "$.Throwable"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.level = null;
+this.sequenceNumber = 0;
+this.sourceClassName = null;
+this.sourceMethodName = null;
+this.message = null;
+this.threadID = 0;
+this.millis = 0;
+this.thrown = null;
+this.loggerName = null;
+this.resourceBundleName = null;
+this.needToInferCaller = false;
+this.parameters = null;
+this.resourceBundle = null;
+Clazz_instantialize (this, arguments);
+}, java.util.logging, "LogRecord", null, java.io.Serializable);
+Clazz_makeConstructor (c$, 
+function (level, msg) {
+level.getClass ();
+this.level = level;
+this.message = msg;
+this.millis = System.currentTimeMillis ();
+this.needToInferCaller = true;
+}, "java.util.logging.Level,~S");
+Clazz_defineMethod (c$, "getLoggerName", 
+function () {
+return this.loggerName;
+});
+Clazz_defineMethod (c$, "setLoggerName", 
+function (name) {
+this.loggerName = name;
+}, "~S");
+Clazz_defineMethod (c$, "getResourceBundle", 
+function () {
+return this.resourceBundle;
+});
+Clazz_defineMethod (c$, "setResourceBundle", 
+function (bundle) {
+this.resourceBundle = bundle;
+}, "java.util.ResourceBundle");
+Clazz_defineMethod (c$, "getResourceBundleName", 
+function () {
+return this.resourceBundleName;
+});
+Clazz_defineMethod (c$, "setResourceBundleName", 
+function (name) {
+this.resourceBundleName = name;
+}, "~S");
+Clazz_defineMethod (c$, "getLevel", 
+function () {
+return this.level;
+});
+Clazz_defineMethod (c$, "setLevel", 
+function (level) {
+if (level == null) {
+throw  new NullPointerException ();
+}this.level = level;
+}, "java.util.logging.Level");
+Clazz_defineMethod (c$, "getSequenceNumber", 
+function () {
+return this.sequenceNumber;
+});
+Clazz_defineMethod (c$, "setSequenceNumber", 
+function (seq) {
+this.sequenceNumber = seq;
+}, "~N");
+Clazz_defineMethod (c$, "getSourceClassName", 
+function () {
+if (this.needToInferCaller) {
+this.inferCaller ();
+}return this.sourceClassName;
+});
+Clazz_defineMethod (c$, "setSourceClassName", 
+function (sourceClassName) {
+this.sourceClassName = sourceClassName;
+this.needToInferCaller = false;
+}, "~S");
+Clazz_defineMethod (c$, "getSourceMethodName", 
+function () {
+if (this.needToInferCaller) {
+this.inferCaller ();
+}return this.sourceMethodName;
+});
+Clazz_defineMethod (c$, "setSourceMethodName", 
+function (sourceMethodName) {
+this.sourceMethodName = sourceMethodName;
+this.needToInferCaller = false;
+}, "~S");
+Clazz_defineMethod (c$, "getMessage", 
+function () {
+return this.message;
+});
+Clazz_defineMethod (c$, "setMessage", 
+function (message) {
+this.message = message;
+}, "~S");
+Clazz_defineMethod (c$, "getParameters", 
+function () {
+return this.parameters;
+});
+Clazz_defineMethod (c$, "setParameters", 
+function (parameters) {
+this.parameters = parameters;
+}, "~A");
+Clazz_defineMethod (c$, "getThreadID", 
+function () {
+return this.threadID;
+});
+Clazz_defineMethod (c$, "setThreadID", 
+function (threadID) {
+this.threadID = threadID;
+}, "~N");
+Clazz_defineMethod (c$, "getMillis", 
+function () {
+return this.millis;
+});
+Clazz_defineMethod (c$, "setMillis", 
+function (millis) {
+this.millis = millis;
+}, "~N");
+Clazz_defineMethod (c$, "getThrown", 
+function () {
+return this.thrown;
+});
+Clazz_defineMethod (c$, "setThrown", 
+function (thrown) {
+this.thrown = thrown;
+}, "Throwable");
+Clazz_defineMethod (c$, "inferCaller", 
+ function () {
+this.needToInferCaller = false;
+var stack = ( new Throwable ()).getStackTrace ();
+var ix = 0;
+while (ix < stack.length) {
+var frame = stack[ix];
+var cname = frame.getClassName ();
+if (cname.equals ("java.util.logging.Logger")) {
+break;
+}ix++;
+}
+while (ix < stack.length) {
+var frame = stack[ix];
+var cname = frame.getClassName ();
+if (!cname.equals ("java.util.logging.Logger")) {
+this.setSourceClassName (cname);
+this.setSourceMethodName (frame.getMethodName ());
+return;
+}ix++;
+}
+});
+Clazz_defineStatics (c$,
+"globalSequenceNumber", 0);
+});
+Clazz_declarePackage ("java.util.logging");
+Clazz_load (["java.util.HashMap"], "java.util.logging.Level", ["java.lang.IllegalArgumentException", "$.NullPointerException", "java.util.ArrayList", "$.ResourceBundle"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.name = null;
+this.value = 0;
+this.resourceBundleName = null;
+this.localizedLevelName = null;
+Clazz_instantialize (this, arguments);
+}, java.util.logging, "Level", null, java.io.Serializable);
+Clazz_makeConstructor (c$, 
+function (name, value) {
+this.construct (name, value, null);
+}, "~S,~N");
+Clazz_makeConstructor (c$, 
+function (name, value, resourceBundleName) {
+if (name == null) {
+throw  new NullPointerException ();
+}this.name = name;
+this.value = value;
+this.resourceBundleName = resourceBundleName;
+this.localizedLevelName = resourceBundleName == null ? name : null;
+java.util.logging.Level.KnownLevel.add (this);
+}, "~S,~N,~S");
+Clazz_defineMethod (c$, "getResourceBundleName", 
+function () {
+return this.resourceBundleName;
+});
+Clazz_defineMethod (c$, "getName", 
+function () {
+return this.name;
+});
+Clazz_defineMethod (c$, "getLocalizedName", 
+function () {
+return this.getLocalizedLevelName ();
+});
+Clazz_defineMethod (c$, "getLevelName", 
+function () {
+return this.name;
+});
+Clazz_defineMethod (c$, "getLocalizedLevelName", 
+function () {
+if (this.localizedLevelName != null) {
+return this.localizedLevelName;
+}try {
+var rb = java.util.ResourceBundle.getBundle (this.resourceBundleName);
+this.localizedLevelName = rb.getString (this.name);
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+this.localizedLevelName = this.name;
+} else {
+throw ex;
+}
+}
+return this.localizedLevelName;
+});
+c$.findLevel = Clazz_defineMethod (c$, "findLevel", 
+function (name) {
+if (name == null) {
+throw  new NullPointerException ();
+}var level;
+level = java.util.logging.Level.KnownLevel.findByName (name);
+if (level != null) {
+return level.mirroredLevel;
+}try {
+var x = Integer.parseInt (name);
+level = java.util.logging.Level.KnownLevel.findByValue (x);
+if (level == null) {
+var levelObject =  new java.util.logging.Level (name, x);
+level = java.util.logging.Level.KnownLevel.findByValue (x);
+}return level.mirroredLevel;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, NumberFormatException)) {
+} else {
+throw ex;
+}
+}
+level = java.util.logging.Level.KnownLevel.findByLocalizedLevelName (name);
+if (level != null) {
+return level.mirroredLevel;
+}return null;
+}, "~S");
+Clazz_overrideMethod (c$, "toString", 
+function () {
+return this.name;
+});
+Clazz_defineMethod (c$, "intValue", 
+function () {
+return this.value;
+});
+c$.parse = Clazz_defineMethod (c$, "parse", 
+function (name) {
+name.length;
+var level;
+level = java.util.logging.Level.KnownLevel.findByName (name);
+if (level != null) {
+return level.levelObject;
+}try {
+var x = Integer.parseInt (name);
+level = java.util.logging.Level.KnownLevel.findByValue (x);
+if (level == null) {
+var levelObject =  new java.util.logging.Level (name, x);
+level = java.util.logging.Level.KnownLevel.findByValue (x);
+}return level.levelObject;
+} catch (ex) {
+if (Clazz_exceptionOf (ex, NumberFormatException)) {
+} else {
+throw ex;
+}
+}
+level = java.util.logging.Level.KnownLevel.findByLocalizedName (name);
+if (level != null) {
+return level.levelObject;
+}throw  new IllegalArgumentException ("Bad level \"" + name + "\"");
+}, "~S");
+Clazz_overrideMethod (c$, "equals", 
+function (ox) {
+try {
+var lx = ox;
+return (lx.value == this.value);
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+return false;
+} else {
+throw ex;
+}
+}
+}, "~O");
+Clazz_overrideMethod (c$, "hashCode", 
+function () {
+return this.value;
+});
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+this.levelObject = null;
+this.mirroredLevel = null;
+Clazz_instantialize (this, arguments);
+}, java.util.logging.Level, "KnownLevel");
+Clazz_makeConstructor (c$, 
+function (a) {
+this.levelObject = a;
+if (a.getClass () === java.util.logging.Level) {
+this.mirroredLevel = a;
+} else {
+this.mirroredLevel =  new java.util.logging.Level (a.name, a.value, a.resourceBundleName);
+}}, "java.util.logging.Level");
+c$.add = Clazz_defineMethod (c$, "add", 
+function (a) {
+var b =  new java.util.logging.Level.KnownLevel (a);
+var c = java.util.logging.Level.KnownLevel.nameToLevels.get (a.name);
+if (c == null) {
+c =  new java.util.ArrayList ();
+java.util.logging.Level.KnownLevel.nameToLevels.put (a.name, c);
+}c.add (b);
+c = java.util.logging.Level.KnownLevel.intToLevels.get (new Integer (a.value));
+if (c == null) {
+c =  new java.util.ArrayList ();
+java.util.logging.Level.KnownLevel.intToLevels.put (new Integer (a.value), c);
+}c.add (b);
+}, "java.util.logging.Level");
+c$.findByName = Clazz_defineMethod (c$, "findByName", 
+function (a) {
+var b = java.util.logging.Level.KnownLevel.nameToLevels.get (a);
+if (b != null) {
+return b.get (0);
+}return null;
+}, "~S");
+c$.findByValue = Clazz_defineMethod (c$, "findByValue", 
+function (a) {
+var b = java.util.logging.Level.KnownLevel.intToLevels.get (new Integer (a));
+if (b != null) {
+return b.get (0);
+}return null;
+}, "~N");
+c$.findByLocalizedLevelName = Clazz_defineMethod (c$, "findByLocalizedLevelName", 
+function (a) {
+for (var levels, $levels = java.util.logging.Level.KnownLevel.nameToLevels.values ().iterator (); $levels.hasNext () && ((levels = $levels.next ()) || true);) {
+for (var l, $l = levels.iterator (); $l.hasNext () && ((l = $l.next ()) || true);) {
+var b = l.levelObject.getLocalizedLevelName ();
+if (a.equals (b)) {
+return l;
+}}
+}
+return null;
+}, "~S");
+c$.findByLocalizedName = Clazz_defineMethod (c$, "findByLocalizedName", 
+function (a) {
+for (var levels, $levels = java.util.logging.Level.KnownLevel.nameToLevels.values ().iterator (); $levels.hasNext () && ((levels = $levels.next ()) || true);) {
+for (var l, $l = levels.iterator (); $l.hasNext () && ((l = $l.next ()) || true);) {
+var b = l.levelObject.getLocalizedName ();
+if (a.equals (b)) {
+return l;
+}}
+}
+return null;
+}, "~S");
+c$.matches = Clazz_defineMethod (c$, "matches", 
+function (a) {
+var b = java.util.logging.Level.KnownLevel.nameToLevels.get (a.name);
+if (b != null) {
+for (var level, $level = b.iterator (); $level.hasNext () && ((level = $level.next ()) || true);) {
+var c = level.mirroredLevel;
+if (a.value == c.value && (a.resourceBundleName === c.resourceBundleName || (a.resourceBundleName != null && a.resourceBundleName.equals (c.resourceBundleName)))) {
+return level;
+}}
+}return null;
+}, "java.util.logging.Level");
+c$.nameToLevels = c$.prototype.nameToLevels =  new java.util.HashMap ();
+c$.intToLevels = c$.prototype.intToLevels =  new java.util.HashMap ();
+c$ = Clazz_p0p ();
+Clazz_defineStatics (c$,
+"defaultBundle", "sun.util.logging.resources.logging");
+c$.OFF = c$.prototype.OFF =  new java.util.logging.Level ("OFF", 2147483647, java.util.logging.Level.defaultBundle);
+c$.SEVERE = c$.prototype.SEVERE =  new java.util.logging.Level ("SEVERE", 1000, java.util.logging.Level.defaultBundle);
+c$.WARNING = c$.prototype.WARNING =  new java.util.logging.Level ("WARNING", 900, java.util.logging.Level.defaultBundle);
+c$.INFO = c$.prototype.INFO =  new java.util.logging.Level ("INFO", 800, java.util.logging.Level.defaultBundle);
+c$.CONFIG = c$.prototype.CONFIG =  new java.util.logging.Level ("CONFIG", 700, java.util.logging.Level.defaultBundle);
+c$.FINE = c$.prototype.FINE =  new java.util.logging.Level ("FINE", 500, java.util.logging.Level.defaultBundle);
+c$.FINER = c$.prototype.FINER =  new java.util.logging.Level ("FINER", 400, java.util.logging.Level.defaultBundle);
+c$.FINEST = c$.prototype.FINEST =  new java.util.logging.Level ("FINEST", 300, java.util.logging.Level.defaultBundle);
+c$.ALL = c$.prototype.ALL =  new java.util.logging.Level ("ALL", -2147483648, java.util.logging.Level.defaultBundle);
+});
+Clazz_declarePackage("java.text");
+c$=Clazz_decorateAsClass(function(){
+this.pattern=null;
+Clazz_instantialize(this,arguments);
+},java.text,"MessageFormat");
+Clazz_makeConstructor(c$,
+function(pattern){
+this.pattern=pattern;
+},"~S");
+Clazz_makeConstructor(c$,
+function(pattern,locale){
+this.pattern=pattern;
+},"~S,java.util.Locale");
+c$.format=Clazz_defineMethod(c$,"format",
+function(pattern,args){
+return pattern.replace(/\{(\d+)\}/g,function($0,$1){
+var i=parseInt($1);
+if(args==null)return null;
+return args[i];
+});
+},"~S,~A");
+Clazz_defineMethod(c$,"format",
+function(obj){
+return java.text.MessageFormat.format(this.pattern,[obj]);
+},"~O");
+Clazz_declarePackage ("java.util");
+Clazz_load (["java.util.ResourceBundle"], "java.util.PropertyResourceBundle", ["java.lang.NullPointerException", "java.util.HashMap", "java.util.Properties", "jssun.util.ResourceBundleEnumeration"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.lookup = null;
+Clazz_instantialize (this, arguments);
+}, java.util, "PropertyResourceBundle", java.util.ResourceBundle);
+Clazz_makeConstructor (c$, 
+function (stream) {
+Clazz_superConstructor (this, java.util.PropertyResourceBundle, []);
+this.setStream (stream);
+}, "java.io.InputStream");
+Clazz_defineMethod (c$, "setStream", 
+function (stream) {
+var properties =  new java.util.Properties ();
+properties.load (stream);
+this.lookup =  new java.util.HashMap (properties);
+return this;
+}, "java.io.InputStream");
+Clazz_makeConstructor (c$, 
+function (reader) {
+Clazz_superConstructor (this, java.util.PropertyResourceBundle, []);
+var properties =  new java.util.Properties ();
+properties.load (reader);
+this.lookup =  new java.util.HashMap (properties);
+}, "java.io.Reader");
+Clazz_makeConstructor (c$, 
+function () {
+Clazz_superConstructor (this, java.util.PropertyResourceBundle, []);
+});
+Clazz_overrideMethod (c$, "handleGetObject", 
+function (key) {
+if (key == null) {
+throw  new NullPointerException ();
+}return this.lookup.get (key);
+}, "~S");
+Clazz_defineMethod (c$, "getKeys", 
+function () {
+var parent = this.parent;
+return  new jssun.util.ResourceBundleEnumeration (this.lookup.keySet (), (parent != null) ? parent.getKeys () : null);
+});
+Clazz_overrideMethod (c$, "handleKeySet", 
+function () {
+return this.lookup.keySet ();
+});
+});
+Clazz_declarePackage ("jalview.javascript");
+Clazz_declareInterface (jalview.javascript, "JalviewLiteJsApi");
+Clazz_declarePackage ("jalview.api");
+Clazz_declareInterface (jalview.api, "StructureSelectionManagerProvider");
+Clazz_declarePackage ("awt2swing");
+c$ = Clazz_declareType (awt2swing, "Util");
+c$.drawString = Clazz_defineMethod (c$, "drawString", 
+function (g, text, x, y) {
+{
+g.drawStringUnique(text, x, y);
+}}, "java.awt.Graphics,~S,~N,~N");
+Clazz_declarePackage ("jalview.analysis");
+Clazz_load (null, "jalview.analysis.SequenceIdMatcher", ["java.util.ArrayList", "$.Arrays", "$.HashMap", "$.Vector"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.names = null;
+if (!Clazz_isClassDefined ("jalview.analysis.SequenceIdMatcher.SeqIdName")) {
+jalview.analysis.SequenceIdMatcher.$SequenceIdMatcher$SeqIdName$ ();
+}
+Clazz_instantialize (this, arguments);
+}, jalview.analysis, "SequenceIdMatcher");
+Clazz_makeConstructor (c$, 
+function (seqs) {
+this.names =  new java.util.HashMap ();
+this.addAll (seqs);
+}, "java.util.List");
+Clazz_defineMethod (c$, "addAll", 
+function (seqs) {
+for (var seq, $seq = seqs.iterator (); $seq.hasNext () && ((seq = $seq.next ()) || true);) {
+this.names.put (Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, seq.getDisplayId (true)), seq);
+var dbseq = seq;
+while (dbseq.getDatasetSequence () != null) {
+dbseq = dbseq.getDatasetSequence ();
+}
+if (dbseq.getDBRef () != null) {
+var dbr = dbseq.getDBRef ();
+var sid = null;
+for (var r = 0; r < dbr.length; r++) {
+sid = Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, dbr[r].getAccessionId ());
+if (!this.names.containsKey (sid)) {
+this.names.put (sid, seq);
+}}
+}}
+}, "java.util.List");
+Clazz_makeConstructor (c$, 
+function (sequences) {
+this.construct (java.util.Arrays.asList (sequences));
+}, "~A");
+Clazz_defineMethod (c$, "pickbestMatch", 
+ function (candName, matches) {
+var st = this.pickbestMatches (candName, matches);
+return st == null || st.size () == 0 ? null : st.get (0);
+}, "jalview.analysis.SequenceIdMatcher.SeqIdName,java.util.List");
+Clazz_defineMethod (c$, "pickbestMatches", 
+ function (candName, matches) {
+var best =  new java.util.ArrayList ();
+if (candName == null || matches == null || matches.size () == 0) {
+return null;
+}var match = matches.remove (0);
+best.add (match);
+this.names.put (Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, match.getName ()), match);
+var matchlen = match.getName ().length;
+var namlen = candName.id.length;
+while (matches.size () > 0) {
+var cand = matches.remove (0);
+this.names.put (Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, cand.getName ()), cand);
+var q;
+var w;
+var candlen = cand.getName ().length;
+if ((q = Math.abs (matchlen - namlen)) > (w = Math.abs (candlen - namlen)) && candlen > matchlen) {
+best.clear ();
+match = cand;
+matchlen = candlen;
+best.add (match);
+}if (q == w && candlen == matchlen) {
+best.add (cand);
+}}
+if (best.size () == 0) {
+return null;
+};return best;
+}, "jalview.analysis.SequenceIdMatcher.SeqIdName,java.util.List");
+Clazz_defineMethod (c$, "findIdMatch", 
+function (seq) {
+var nam = Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, seq.getName ());
+return this.findIdMatch (nam);
+}, "jalview.datamodel.SequenceI");
+Clazz_defineMethod (c$, "findIdMatch", 
+function (seqnam) {
+var nam = Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, seqnam);
+return this.findIdMatch (nam);
+}, "~S");
+Clazz_defineMethod (c$, "findAllIdMatches", 
+function (seqnam) {
+var nam = Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, seqnam);
+var m = this.findAllIdMatches (nam);
+if (m != null) {
+return m.toArray ( new Array (m.size ()));
+}return null;
+}, "~S");
+Clazz_defineMethod (c$, "findIdMatch", 
+function (seqs) {
+var namedseqs = null;
+var i = 0;
+var nam;
+if (seqs.length > 0) {
+namedseqs =  new Array (seqs.length);
+do {
+nam = Clazz_innerTypeInstance (jalview.analysis.SequenceIdMatcher.SeqIdName, this, null, seqs[i].getName ());
+if (this.names.containsKey (nam)) {
+namedseqs[i] = this.findIdMatch (nam);
+} else {
+namedseqs[i] = null;
+}} while (++i < seqs.length);
+}return namedseqs;
+}, "~A");
+Clazz_defineMethod (c$, "findIdMatch", 
+ function (nam) {
+var matches =  new java.util.Vector ();
+while (this.names.containsKey (nam)) {
+matches.addElement (this.names.remove (nam));
+}
+return this.pickbestMatch (nam, matches);
+}, "jalview.analysis.SequenceIdMatcher.SeqIdName");
+Clazz_defineMethod (c$, "findAllIdMatches", 
+ function (nam) {
+var matches =  new java.util.ArrayList ();
+while (this.names.containsKey (nam)) {
+matches.add (this.names.remove (nam));
+}
+var r = this.pickbestMatches (nam, matches);
+return r;
+}, "jalview.analysis.SequenceIdMatcher.SeqIdName");
+c$.$SequenceIdMatcher$SeqIdName$ = function () {
+Clazz_pu$h(self.c$);
+c$ = Clazz_decorateAsClass (function () {
+Clazz_prepareCallback (this, arguments);
+this.id = null;
+this.WORD_SEP = "~. |#\\/<>!\"\u00a4$%^*)}[@\',?_";
+Clazz_instantialize (this, arguments);
+}, jalview.analysis.SequenceIdMatcher, "SeqIdName");
+Clazz_makeConstructor (c$, 
+function (a) {
+if (a != null) {
+this.id =  String.instantialize (a);
+} else {
+this.id = "";
+}}, "~S");
+Clazz_overrideMethod (c$, "hashCode", 
+function () {
+return ((this.id.length >= 4) ? this.id.substring (0, 4).hashCode () : this.id.hashCode ());
+});
+Clazz_defineMethod (c$, "equals", 
+function (a) {
+if (a == null) {
+return false;
+}if (Clazz_instanceOf (a, jalview.analysis.SequenceIdMatcher.SeqIdName)) {
+return this.equals (a);
+} else {
+if (Clazz_instanceOf (a, String)) {
+return this.equals (a);
+}}return false;
+}, "~O");
+Clazz_defineMethod (c$, "equals", 
+function (a) {
+if (this.id.length > a.id.length) {
+return this.id.startsWith (a.id) ? (this.WORD_SEP.indexOf (this.id.charAt (a.id.length)) > -1) : false;
+} else {
+return a.id.startsWith (this.id) ? (a.id.equals (this.id) ? true : (this.WORD_SEP.indexOf (a.id.charAt (this.id.length)) > -1)) : false;
+}}, "jalview.analysis.SequenceIdMatcher.SeqIdName");
+Clazz_defineMethod (c$, "equals", 
+function (a) {
+if (this.id.length > a.length) {
+return this.id.startsWith (a) ? (this.WORD_SEP.indexOf (this.id.charAt (a.length)) > -1) : false;
+} else {
+return a.startsWith (this.id) ? (a.equals (this.id) ? true : (this.WORD_SEP.indexOf (a.charAt (this.id.length)) > -1)) : false;
+}}, "~S");
+c$ = Clazz_p0p ();
+};
+});
+Clazz_declarePackage ("jalview.appletgui");
+Clazz_load (["awt2swing.Canvas", "jalview.api.AlignViewControllerGuiI", "jalview.appletgui.EmbmenuFrame", "java.awt.event.ActionListener", "$.ItemListener", "$.KeyListener", "awt2swing.CheckboxMenuItem", "$.Label", "$.Menu", "$.MenuBar", "$.MenuItem", "jalview.util.MessageManager", "java.awt.BorderLayout"], "jalview.appletgui.AlignFrame", ["awt2swing.Frame", "$.Util", "jalview.analysis.AlignmentSorter", "$.AnnotationSorter", "jalview.appletgui.AlignViewport", "$.AlignmentPanel", "$.AnnotationColourChooser", "$.AnnotationColumnChooser", "$.AppletJmol", "$.CutAndPasteTransfer", "$.FeatureSettings", "$.Finder", "$.FontChooser", "$.OverviewPanel", "$.PCAPanel", "$.PaintRefresher", "$.PairwiseAlignPanel", "$.RedundancyPanel", "$.SliderPanel", "$.TreePanel", "$.UserDefinedColours", "jalview.bin.JalviewLite", "jalview.commands.EditCommand", "$.OrderCommand", "$.RemoveGapColCommand", "$.RemoveGapsCommand", "$.SlideSequencesCommand", "$.TrimRegionCommand", "jalview.controller.AlignViewController", "jalview.datamodel.Alignment", "$.PDBEntry", "$.Sequence", "$.SequenceGroup", "jalview.io.AlignmentProperties", "$.AnnotationFile", "$.AppletFormatAdapter", "$.FeaturesFile", "jalview.jsdev.GenericFileAdapter", "jalview.schemes.Blosum62ColourScheme", "$.BuriedColourScheme", "$.ClustalxColourScheme", "$.HelixColourScheme", "$.HydrophobicColourScheme", "$.NucleotideColourScheme", "$.PIDColourScheme", "$.PurinePyrimidineColourScheme", "$.RNAHelicesColourChooser", "$.RNAInteractionColourScheme", "$.StrandColourScheme", "$.TCoffeeColourScheme", "$.TaylorColourScheme", "$.TurnColourScheme", "$.ZappoColourScheme", "jalview.structure.StructureSelectionManager", "jalview.util.Comparison", "$.MappingUtils", "java.awt.Color", "$.Font", "java.awt.event.FocusListener", "$.WindowAdapter", "java.lang.Character", "$.StringBuffer", "java.net.URL", "$.URLEncoder", "java.util.Arrays", "$.HashMap", "$.Hashtable", "$.StringTokenizer", "$.Vector"], function () {
+c$ = Clazz_decorateAsClass (function () {
+this.avc = null;
+this.alignPanel = null;
+this.viewport = null;
+this.frameWidth = 700;
+this.frameHeight = 500;
+this.jalviewServletURL = null;
+this.showAutoCalculatedAbove = false;
+this.annotationSortOrder = null;
+this.alignFrameMenuBar = null;
+this.fileMenu = null;
+this.loadApplication = null;
+this.$loadTree = null;
+this.$loadAnnotations = null;
+this.$outputFeatures = null;
+this.$outputAnnotations = null;
+this.closeMenuItem = null;
+this.selectAllSequenceMenuItem = null;
+this.deselectAllSequenceMenuItem = null;
+this.invertSequenceMenuItem = null;
+this.remove2LeftMenuItem = null;
+this.remove2RightMenuItem = null;
+this.removeGappedColumnMenuItem = null;
+this.removeAllGapsMenuItem = null;
+this.viewBoxesMenuItem = null;
+this.viewTextMenuItem = null;
+this.sortPairwiseMenuItem = null;
+this.sortIDMenuItem = null;
+this.sortLengthMenuItem = null;
+this.sortGroupMenuItem = null;
+this.removeRedundancyMenuItem = null;
+this.pairwiseAlignmentMenuItem = null;
+this.PCAMenuItem = null;
+this.averageDistanceTreeMenuItem = null;
+this.neighbourTreeMenuItem = null;
+this.borderLayout1 = null;
+this.statusBar = null;
+this.clustalColour = null;
+this.zappoColour = null;
+this.taylorColour = null;
+this.hydrophobicityColour = null;
+this.helixColour = null;
+this.strandColour = null;
+this.turnColour = null;
+this.buriedColour = null;
+this.purinePyrimidineColour = null;
+this.RNAInteractionColour = null;
+this.RNAHelixColour = null;
+this.userDefinedColour = null;
+this.PIDColour = null;
+this.BLOSUM62Colour = null;
+this.tcoffeeColour = null;
+this.njTreeBlosumMenuItem = null;
+this.avDistanceTreeBlosumMenuItem = null;
+this.annotationPanelMenuItem = null;
+this.colourTextMenuItem = null;
+this.displayNonconservedMenuItem = null;
+this.alProperties = null;
+this.overviewMenuItem = null;
+this.undoMenuItem = null;
+this.redoMenuItem = null;
+this.conservationMenuItem = null;
+this.noColourmenuItem = null;
+this.wrapMenuItem = null;
+this.renderGapsMenuItem = null;
+this.findMenuItem = null;
+this.abovePIDThreshold = null;
+this.nucleotideColour = null;
+this.deleteGroups = null;
+this.grpsFromSelection = null;
+this.createGroup = null;
+this.unGroup = null;
+this.$delete = null;
+this.copy = null;
+this.cut = null;
+this.pasteMenu = null;
+this.pasteNew = null;
+this.pasteThis = null;
+this.applyToAllGroups = null;
+this.$font = null;
+this.scaleAbove = null;
+this.scaleLeft = null;
+this.scaleRight = null;
+this.modifyPID = null;
+this.modifyConservation = null;
+this.autoCalculate = null;
+this.$sortByTree = null;
+this.sortByTreeMenu = null;
+this.inputText = null;
+this.documentation = null;
+this.about = null;
+this.seqLimits = null;
+this.centreColumnLabelFlag = null;
+this.followMouseOverFlag = null;
+this.showSequenceLogo = null;
+this.applyAutoAnnotationSettings = null;
+this.showConsensusHistogram = null;
+this.showGroupConsensus = null;
+this.showGroupConservation = null;
+this.normSequenceLogo = null;
+this.featureSettings = null;
+this.sequenceFeatures = null;
+this.annotationColour = null;
+this.annotationColumnSelection = null;
+this.invertColSel = null;
+this.showColumns = null;
+this.showSeqs = null;
+this.hideColumns = null;
+this.hideSequences = null;
+this.hideAllButSelection = null;
+this.hideAllSelection = null;
+this.showAllHidden = null;
+this.$newView = null;
+this.showAlignmentAnnotations = null;
+this.showSequenceAnnotations = null;
+this.sortAnnBySequence = null;
+this.sortAnnByLabel = null;
+this.showAutoFirst = null;
+this.showAutoLast = null;
+this.splitFrame = null;
+Clazz_instantialize (this, arguments);
+}, jalview.appletgui, "AlignFrame", jalview.appletgui.EmbmenuFrame, [java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.KeyListener, jalview.api.AlignViewControllerGuiI]);
+Clazz_prepareFields (c$, function () {
+this.alignFrameMenuBar =  new awt2swing.MenuBar ();
+this.fileMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.file"));
+this.loadApplication =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.view_full_application"));
+this.$loadTree =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.load_associated_tree"));
+this.$loadAnnotations =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.load_features_annotations"));
+this.$outputFeatures =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.export_features").concat ("..."));
+this.$outputAnnotations =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.export_annotations").concat ("..."));
+this.closeMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.close"));
+this.selectAllSequenceMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.select_all"));
+this.deselectAllSequenceMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.deselect_all"));
+this.invertSequenceMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.invert_selection"));
+this.remove2LeftMenuItem =  new awt2swing.MenuItem ();
+this.remove2RightMenuItem =  new awt2swing.MenuItem ();
+this.removeGappedColumnMenuItem =  new awt2swing.MenuItem ();
+this.removeAllGapsMenuItem =  new awt2swing.MenuItem ();
+this.viewBoxesMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.viewTextMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.sortPairwiseMenuItem =  new awt2swing.MenuItem ();
+this.sortIDMenuItem =  new awt2swing.MenuItem ();
+this.sortLengthMenuItem =  new awt2swing.MenuItem ();
+this.sortGroupMenuItem =  new awt2swing.MenuItem ();
+this.removeRedundancyMenuItem =  new awt2swing.MenuItem ();
+this.pairwiseAlignmentMenuItem =  new awt2swing.MenuItem ();
+this.PCAMenuItem =  new awt2swing.MenuItem ();
+this.averageDistanceTreeMenuItem =  new awt2swing.MenuItem ();
+this.neighbourTreeMenuItem =  new awt2swing.MenuItem ();
+this.borderLayout1 =  new java.awt.BorderLayout ();
+this.statusBar =  new awt2swing.Label ();
+this.clustalColour =  new awt2swing.MenuItem ();
+this.zappoColour =  new awt2swing.MenuItem ();
+this.taylorColour =  new awt2swing.MenuItem ();
+this.hydrophobicityColour =  new awt2swing.MenuItem ();
+this.helixColour =  new awt2swing.MenuItem ();
+this.strandColour =  new awt2swing.MenuItem ();
+this.turnColour =  new awt2swing.MenuItem ();
+this.buriedColour =  new awt2swing.MenuItem ();
+this.purinePyrimidineColour =  new awt2swing.MenuItem ();
+this.RNAInteractionColour =  new awt2swing.MenuItem ();
+this.RNAHelixColour =  new awt2swing.MenuItem ();
+this.userDefinedColour =  new awt2swing.MenuItem ();
+this.PIDColour =  new awt2swing.MenuItem ();
+this.BLOSUM62Colour =  new awt2swing.MenuItem ();
+this.tcoffeeColour =  new awt2swing.MenuItem ();
+this.njTreeBlosumMenuItem =  new awt2swing.MenuItem ();
+this.avDistanceTreeBlosumMenuItem =  new awt2swing.MenuItem ();
+this.annotationPanelMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.colourTextMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.displayNonconservedMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.alProperties =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.alignment_props"));
+this.overviewMenuItem =  new awt2swing.MenuItem ();
+this.undoMenuItem =  new awt2swing.MenuItem ();
+this.redoMenuItem =  new awt2swing.MenuItem ();
+this.conservationMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.noColourmenuItem =  new awt2swing.MenuItem ();
+this.wrapMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.renderGapsMenuItem =  new awt2swing.CheckboxMenuItem ();
+this.findMenuItem =  new awt2swing.MenuItem ();
+this.abovePIDThreshold =  new awt2swing.CheckboxMenuItem ();
+this.nucleotideColour =  new awt2swing.MenuItem ();
+this.deleteGroups =  new awt2swing.MenuItem ();
+this.grpsFromSelection =  new awt2swing.MenuItem ();
+this.createGroup =  new awt2swing.MenuItem ();
+this.unGroup =  new awt2swing.MenuItem ();
+this.$delete =  new awt2swing.MenuItem ();
+this.copy =  new awt2swing.MenuItem ();
+this.cut =  new awt2swing.MenuItem ();
+this.pasteMenu =  new awt2swing.Menu ();
+this.pasteNew =  new awt2swing.MenuItem ();
+this.pasteThis =  new awt2swing.MenuItem ();
+this.applyToAllGroups =  new awt2swing.CheckboxMenuItem ();
+this.$font =  new awt2swing.MenuItem ();
+this.scaleAbove =  new awt2swing.CheckboxMenuItem ();
+this.scaleLeft =  new awt2swing.CheckboxMenuItem ();
+this.scaleRight =  new awt2swing.CheckboxMenuItem ();
+this.modifyPID =  new awt2swing.MenuItem ();
+this.modifyConservation =  new awt2swing.MenuItem ();
+this.$sortByTree =  new awt2swing.CheckboxMenuItem ("Sort Alignment With New Tree", true);
+this.sortByTreeMenu =  new awt2swing.Menu ();
+this.inputText =  new awt2swing.MenuItem ();
+this.documentation =  new awt2swing.MenuItem ();
+this.about =  new awt2swing.MenuItem ();
+this.seqLimits =  new awt2swing.CheckboxMenuItem ();
+this.centreColumnLabelFlag =  new awt2swing.CheckboxMenuItem ();
+this.followMouseOverFlag =  new awt2swing.CheckboxMenuItem ();
+this.showSequenceLogo =  new awt2swing.CheckboxMenuItem ();
+this.applyAutoAnnotationSettings =  new awt2swing.CheckboxMenuItem ();
+this.showConsensusHistogram =  new awt2swing.CheckboxMenuItem ();
+this.showGroupConsensus =  new awt2swing.CheckboxMenuItem ();
+this.showGroupConservation =  new awt2swing.CheckboxMenuItem ();
+this.normSequenceLogo =  new awt2swing.CheckboxMenuItem ();
+this.featureSettings =  new awt2swing.MenuItem ();
+this.sequenceFeatures =  new awt2swing.CheckboxMenuItem ();
+this.annotationColour =  new awt2swing.MenuItem ();
+this.annotationColumnSelection =  new awt2swing.MenuItem ();
+this.invertColSel =  new awt2swing.MenuItem ();
+this.showColumns =  new awt2swing.MenuItem ();
+this.showSeqs =  new awt2swing.MenuItem ();
+this.hideColumns =  new awt2swing.MenuItem ();
+this.hideSequences =  new awt2swing.MenuItem ();
+this.hideAllButSelection =  new awt2swing.MenuItem ();
+this.hideAllSelection =  new awt2swing.MenuItem ();
+this.showAllHidden =  new awt2swing.MenuItem ();
+this.$newView =  new awt2swing.MenuItem ();
+});
+Clazz_makeConstructor (c$, 
+function (al, applet, title, embedded) {
+this.construct (al, applet, title, embedded, true);
+}, "jalview.datamodel.AlignmentI,jalview.bin.JalviewLite,~S,~B");
+Clazz_makeConstructor (c$, 
+function (al, applet, title, embedded, addToDisplay) {
+this.construct (al, null, null, applet, title, embedded, addToDisplay);
+}, "jalview.datamodel.AlignmentI,jalview.bin.JalviewLite,~S,~B,~B");
+Clazz_makeConstructor (c$, 
+function (al, hiddenSeqs, columnSelection, applet, title, embedded) {
+this.construct (al, hiddenSeqs, columnSelection, applet, title, embedded, true);
+}, "jalview.datamodel.AlignmentI,~A,jalview.datamodel.ColumnSelection,jalview.bin.JalviewLite,~S,~B");
+Clazz_makeConstructor (c$, 
+function (al, hiddenSeqs, columnSelection, applet, title, embedded, addToDisplay) {
+Clazz_superConstructor (this, jalview.appletgui.AlignFrame, []);
+if (applet != null) {
+this.jalviewServletURL = applet.jalviewServletURL;
+}try {
+this.jbInit ();
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+if (applet != null) {
+var param;
+try {
+param = applet.windowWidth;
+if (param != null) {
+var width = Integer.parseInt (param);
+this.frameWidth = width;
+}param = applet.windowHeight;
+if (param != null) {
+var height = Integer.parseInt (param);
+this.frameHeight = height;
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+} else {
+throw ex;
+}
+}
+}this.viewport =  new jalview.appletgui.AlignViewport (al, applet);
+if (hiddenSeqs != null && hiddenSeqs.length > 0) {
+this.viewport.hideSequence (hiddenSeqs);
+}if (columnSelection != null) {
+this.viewport.setColumnSelection (columnSelection);
+}this.alignPanel =  new jalview.appletgui.AlignmentPanel (this, this.viewport);
+this.avc =  new jalview.controller.AlignViewController (this, this.viewport, this.alignPanel);
+this.viewport.updateConservation (this.alignPanel);
+this.viewport.updateConsensus (this.alignPanel);
+this.displayNonconservedMenuItem.setState (this.viewport.getShowUnconserved ());
+this.followMouseOverFlag.setState (this.viewport.isFollowHighlight ());
+this.showGroupConsensus.setState (this.viewport.isShowGroupConsensus ());
+this.showGroupConservation.setState (this.viewport.isShowGroupConservation ());
+this.showConsensusHistogram.setState (this.viewport.isShowConsensusHistogram ());
+this.showSequenceLogo.setState (this.viewport.isShowSequenceLogo ());
+this.normSequenceLogo.setState (this.viewport.isNormaliseSequenceLogo ());
+this.applyToAllGroups.setState (this.viewport.getColourAppliesToAllGroups ());
+this.annotationPanelMenuItem.setState (this.viewport.isShowAnnotation ());
+this.showAlignmentAnnotations.setState (this.viewport.isShowAnnotation ());
+this.showSequenceAnnotations.setState (this.viewport.isShowAnnotation ());
+this.seqLimits.setState (this.viewport.getShowJVSuffix ());
+if (applet != null) {
+var param = applet.sortBy;
+if (param != null) {
+if (param.equalsIgnoreCase ("Id")) {
+this.sortIDMenuItem_actionPerformed ();
+} else if (param.equalsIgnoreCase ("Pairwise Identity")) {
+this.sortPairwiseMenuItem_actionPerformed ();
+} else if (param.equalsIgnoreCase ("Length")) {
+this.sortLengthMenuItem_actionPerformed ();
+}}param = applet.wrap;
+if (param != null) {
+if (param.equalsIgnoreCase ("true")) {
+this.wrapMenuItem.setState (true);
+this.wrapMenuItem_actionPerformed ();
+}}param = applet.centrecolumnlabels;
+if (param != null) {
+this.centreColumnLabelFlag.setState (true);
+this.centreColumnLabelFlag_stateChanged ();
+}}if (this.viewport.getAlignment ().isNucleotide ()) {
+this.viewport.updateStrucConsensus (this.alignPanel);
+if (this.viewport.getAlignment ().hasRNAStructure ()) {
+this.RNAHelixColour.setEnabled (true);
+} else {
+this.RNAHelixColour.setEnabled (false);
+}} else {
+this.RNAHelixColour.setEnabled (false);
+this.purinePyrimidineColour.setEnabled (false);
+}this.addKeyListener (this);
+this.alignPanel.seqPanel.seqCanvas.addKeyListener (this);
+this.alignPanel.idPanel.idCanvas.addKeyListener (this);
+this.alignPanel.scalePanel.addKeyListener (this);
+this.alignPanel.annotationPanel.addKeyListener (this);
+this.alignPanel.annotationPanelHolder.addKeyListener (this);
+this.alignPanel.annotationSpaceFillerHolder.addKeyListener (this);
+this.alignPanel.alabels.addKeyListener (this);
+if (addToDisplay) {
+this.addToDisplay (embedded);
+}}, "jalview.datamodel.AlignmentI,~A,jalview.datamodel.ColumnSelection,jalview.bin.JalviewLite,~S,~B,~B");
+Clazz_defineMethod (c$, "addToDisplay", 
+function (embedded) {
+this.createAlignFrameWindow (embedded);
+this.validate ();
+this.alignPanel.adjustAnnotationHeight ();
+this.alignPanel.paintAlignment (true);
+}, "~B");
+Clazz_defineMethod (c$, "getAlignViewport", 
+function () {
+return this.viewport;
+});
+Clazz_defineMethod (c$, "getSeqcanvas", 
+function () {
+return this.alignPanel.seqPanel.seqCanvas;
+});
+Clazz_defineMethod (c$, "parseFeaturesFile", 
+function (file, type) {
+return this.parseFeaturesFile (file, type, true);
+}, "~S,~S");
+Clazz_defineMethod (c$, "parseFeaturesFile", 
+function (file, type, autoenabledisplay) {
+var featureLinks =  new java.util.Hashtable ();
+var featuresFile = false;
+try {
+featuresFile =  new jalview.io.FeaturesFile (file, type).parse (this.viewport.getAlignment (), this.alignPanel.seqPanel.seqCanvas.getFeatureRenderer ().getFeatureColours (), featureLinks, true, this.viewport.applet.getDefaultParameter ("relaxedidmatch", false));
+} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+if (featuresFile) {
+if (featureLinks.size () > 0) {
+this.alignPanel.seqPanel.seqCanvas.getFeatureRenderer ().featureLinks = featureLinks;
+}if (autoenabledisplay) {
+this.viewport.setShowSequenceFeatures (true);
+this.sequenceFeatures.setState (true);
+}if (this.alignPanel.seqPanel.seqCanvas.fr != null) {
+this.alignPanel.seqPanel.seqCanvas.fr.findAllFeatures (true);
+}if (this.viewport.featureSettings != null) {
+this.viewport.featureSettings.refreshTable ();
+}this.alignPanel.paintAlignment (true);
+this.setStatus (jalview.util.MessageManager.getString ("label.successfully_added_features_alignment"));
+}return featuresFile;
+}, "~S,~S,~B");
+Clazz_overrideMethod (c$, "keyPressed", 
+function (evt) {
+if (this.viewport.cursorMode && ((evt.getKeyCode () >= 48 && evt.getKeyCode () <= 57) || (evt.getKeyCode () >= 96 && evt.getKeyCode () <= 105)) && Character.isDigit (evt.getKeyChar ())) {
+this.alignPanel.seqPanel.numberPressed (evt.getKeyChar ());
+}switch (evt.getKeyCode ()) {
+case 27:
+this.deselectAllSequenceMenuItem_actionPerformed ();
+this.alignPanel.alabels.cancelDrag ();
+break;
+case 88:
+if (evt.isControlDown () || evt.isMetaDown ()) {
+this.cut_actionPerformed ();
+}break;
+case 67:
+if (this.viewport.cursorMode && !evt.isControlDown ()) {
+this.alignPanel.seqPanel.setCursorColumn ();
+}if (evt.isControlDown () || evt.isMetaDown ()) {
+this.copy_actionPerformed ();
+}break;
+case 86:
+if (evt.isControlDown ()) {
+this.paste (evt.isShiftDown ());
+}break;
+case 65:
+if (evt.isControlDown () || evt.isMetaDown ()) {
+this.selectAllSequenceMenuItem_actionPerformed ();
+}break;
+case 40:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.moveCursor (0, 1);
+} else {
+this.moveSelectedSequences (false);
+}break;
+case 38:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.moveCursor (0, -1);
+} else {
+this.moveSelectedSequences (true);
+}break;
+case 37:
+if (evt.isAltDown () || !this.viewport.cursorMode) {
+this.slideSequences (false, this.alignPanel.seqPanel.getKeyboardNo1 ());
+} else {
+this.alignPanel.seqPanel.moveCursor (-1, 0);
+}break;
+case 39:
+if (evt.isAltDown () || !this.viewport.cursorMode) {
+this.slideSequences (true, this.alignPanel.seqPanel.getKeyboardNo1 ());
+} else {
+this.alignPanel.seqPanel.moveCursor (1, 0);
+}break;
+case 32:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.insertGapAtCursor (evt.isControlDown () || evt.isShiftDown () || evt.isAltDown ());
+}break;
+case 127:
+case 8:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.deleteGapAtCursor (evt.isControlDown () || evt.isShiftDown () || evt.isAltDown ());
+} else {
+this.cut_actionPerformed ();
+this.alignPanel.seqPanel.seqCanvas.repaint ();
+}break;
+case 83:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.setCursorRow ();
+}break;
+case 80:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.setCursorPosition ();
+}break;
+case 10:
+case 44:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.setCursorRowAndColumn ();
+}break;
+case 81:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.setSelectionAreaAtCursor (true);
+}break;
+case 77:
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.setSelectionAreaAtCursor (false);
+}break;
+case 113:
+this.viewport.cursorMode = !this.viewport.cursorMode;
+this.setStatus (jalview.util.MessageManager.formatMessage ("label.keyboard_editing_mode",  Clazz_newArray (-1, [(this.viewport.cursorMode ? "on" : "off")])));
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.seqCanvas.cursorX = this.viewport.startRes;
+this.alignPanel.seqPanel.seqCanvas.cursorY = this.viewport.startSeq;
+}break;
+case 70:
+if (evt.isControlDown ()) {
+this.findMenuItem_actionPerformed ();
+}break;
+case 72:
+{
+var toggleSeqs = !evt.isControlDown ();
+var toggleCols = !evt.isShiftDown ();
+this.toggleHiddenRegions (toggleSeqs, toggleCols);
+break;
+}case 33:
+if (this.viewport.getWrapAlignment ()) {
+this.alignPanel.scrollUp (true);
+} else {
+this.alignPanel.setScrollValues (this.viewport.startRes, this.viewport.startSeq - this.viewport.endSeq + this.viewport.startSeq);
+}break;
+case 34:
+if (this.viewport.getWrapAlignment ()) {
+this.alignPanel.scrollUp (false);
+} else {
+this.alignPanel.setScrollValues (this.viewport.startRes, this.viewport.startSeq + this.viewport.endSeq - this.viewport.startSeq);
+}break;
+case 90:
+if (evt.isControlDown ()) {
+this.undoMenuItem_actionPerformed ();
+}break;
+case 89:
+if (evt.isControlDown ()) {
+this.redoMenuItem_actionPerformed ();
+}break;
+case 76:
+if (evt.isControlDown ()) {
+this.trimAlignment (true);
+}break;
+case 82:
+if (evt.isControlDown ()) {
+this.trimAlignment (false);
+}break;
+case 69:
+if (evt.isControlDown ()) {
+if (evt.isShiftDown ()) {
+this.removeAllGapsMenuItem_actionPerformed ();
+} else {
+this.removeGappedColumnMenuItem_actionPerformed ();
+}}break;
+case 73:
+if (evt.isControlDown ()) {
+if (evt.isAltDown ()) {
+this.invertColSel_actionPerformed ();
+} else {
+this.invertSequenceMenuItem_actionPerformed ();
+}}break;
+case 71:
+if (evt.isControlDown ()) {
+if (evt.isShiftDown ()) {
+this.unGroup_actionPerformed ();
+} else {
+this.createGroup_actionPerformed ();
+}}break;
+case 85:
+if (evt.isControlDown ()) {
+this.deleteGroups_actionPerformed ();
+}break;
+case 84:
+if (evt.isControlDown ()) {
+this.newView (null);
+}break;
+}
+this.alignPanel.paintAlignment (true);
+}, "java.awt.event.KeyEvent");
+Clazz_defineMethod (c$, "toggleHiddenRegions", 
+ function (toggleSeqs, toggleCols) {
+var hide = false;
+var sg = this.viewport.getSelectionGroup ();
+if (!toggleSeqs && !toggleCols) {
+if ((this.viewport.getColumnSelection () != null && this.viewport.getColumnSelection ().getSelected () != null && this.viewport.getColumnSelection ().getSelected ().size () > 0) || (sg != null && sg.getSize () > 0 && sg.getStartRes () <= sg.getEndRes ())) {
+if (sg != null) {
+this.invertSequenceMenuItem_actionPerformed ();
+sg = this.viewport.getSelectionGroup ();
+toggleSeqs = true;
+}this.viewport.expandColSelection (sg, true);
+this.invertColSel_actionPerformed ();
+toggleCols = true;
+}}if (toggleSeqs) {
+if (sg != null && sg.getSize () != this.viewport.getAlignment ().getHeight ()) {
+hide = true;
+this.viewport.hideAllSelectedSeqs ();
+} else if (!(toggleCols && this.viewport.getColumnSelection ().getSelected ().size () > 0)) {
+this.viewport.showAllHiddenSeqs ();
+}}if (toggleCols) {
+if (this.viewport.getColumnSelection ().getSelected ().size () > 0) {
+this.viewport.hideSelectedColumns ();
+if (!toggleSeqs) {
+this.viewport.setSelectionGroup (sg);
+}} else if (!hide) {
+this.viewport.showAllHiddenColumns ();
+}}}, "~B,~B");
+Clazz_overrideMethod (c$, "keyReleased", 
+function (evt) {
+}, "java.awt.event.KeyEvent");
+Clazz_overrideMethod (c$, "keyTyped", 
+function (evt) {
+}, "java.awt.event.KeyEvent");
+Clazz_overrideMethod (c$, "itemStateChanged", 
+function (evt) {
+var source = evt.getSource ();
+if (source === this.displayNonconservedMenuItem) {
+this.displayNonconservedMenuItem_actionPerformed ();
+} else if (source === this.colourTextMenuItem) {
+this.colourTextMenuItem_actionPerformed ();
+} else if (source === this.wrapMenuItem) {
+this.wrapMenuItem_actionPerformed ();
+} else if (source === this.scaleAbove) {
+this.viewport.setScaleAboveWrapped (this.scaleAbove.getState ());
+} else if (source === this.scaleLeft) {
+this.viewport.setScaleLeftWrapped (this.scaleLeft.getState ());
+} else if (source === this.scaleRight) {
+this.viewport.setScaleRightWrapped (this.scaleRight.getState ());
+} else if (source === this.seqLimits) {
+this.seqLimits_itemStateChanged ();
+} else if (source === this.viewBoxesMenuItem) {
+this.viewport.setShowBoxes (this.viewBoxesMenuItem.getState ());
+} else if (source === this.viewTextMenuItem) {
+this.viewport.setShowText (this.viewTextMenuItem.getState ());
+} else if (source === this.renderGapsMenuItem) {
+this.viewport.setRenderGaps (this.renderGapsMenuItem.getState ());
+} else if (source === this.annotationPanelMenuItem) {
+this.viewport.setShowAnnotation (this.annotationPanelMenuItem.getState ());
+this.alignPanel.setAnnotationVisible (this.annotationPanelMenuItem.getState ());
+} else if (source === this.sequenceFeatures) {
+this.viewport.setShowSequenceFeatures (this.sequenceFeatures.getState ());
+this.alignPanel.seqPanel.seqCanvas.repaint ();
+} else if (source === this.showAlignmentAnnotations) {
+this.setAnnotationsVisibility ();
+} else if (source === this.showSequenceAnnotations) {
+this.setAnnotationsVisibility ();
+} else if (source === this.sortAnnBySequence) {
+var newState = this.sortAnnBySequence.getState ();
+this.sortAnnByLabel.setState (false);
+this.setAnnotationSortOrder (newState ? jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.SEQUENCE_AND_LABEL : jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.NONE);
+this.setViewportAnnotationOrder ();
+} else if (source === this.sortAnnByLabel) {
+var newState = this.sortAnnByLabel.getState ();
+this.sortAnnBySequence.setState (false);
+this.setAnnotationSortOrder (newState ? jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.LABEL_AND_SEQUENCE : jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.NONE);
+this.setViewportAnnotationOrder ();
+} else if (source === this.showAutoFirst) {
+this.showAutoLast.setState (!this.showAutoFirst.getState ());
+this.setShowAutoCalculatedAbove (this.showAutoFirst.getState ());
+this.setViewportAnnotationOrder ();
+} else if (source === this.showAutoLast) {
+this.showAutoFirst.setState (!this.showAutoLast.getState ());
+this.setShowAutoCalculatedAbove (this.showAutoFirst.getState ());
+this.setViewportAnnotationOrder ();
+} else if (source === this.conservationMenuItem) {
+this.conservationMenuItem_actionPerformed ();
+} else if (source === this.abovePIDThreshold) {
+this.abovePIDThreshold_actionPerformed ();
+} else if (source === this.applyToAllGroups) {
+this.viewport.setColourAppliesToAllGroups (this.applyToAllGroups.getState ());
+} else if (source === this.autoCalculate) {
+this.viewport.autoCalculateConsensus = this.autoCalculate.getState ();
+} else if (source === this.$sortByTree) {
+this.viewport.sortByTree = this.$sortByTree.getState ();
+} else if (source === this.centreColumnLabelFlag) {
+this.centreColumnLabelFlag_stateChanged ();
+} else if (source === this.followMouseOverFlag) {
+this.mouseOverFlag_stateChanged ();
+} else if (source === this.showGroupConsensus) {
+this.showGroupConsensus_actionPerformed ();
+} else if (source === this.showGroupConservation) {
+this.showGroupConservation_actionPerformed ();
+} else if (source === this.showSequenceLogo) {
+this.showSequenceLogo_actionPerformed ();
+} else if (source === this.normSequenceLogo) {
+this.normSequenceLogo_actionPerformed ();
+} else if (source === this.showConsensusHistogram) {
+this.showConsensusHistogram_actionPerformed ();
+} else if (source === this.applyAutoAnnotationSettings) {
+this.applyAutoAnnotationSettings_actionPerformed ();
+}this.alignPanel.paintAlignment (true);
+}, "java.awt.event.ItemEvent");
+Clazz_defineMethod (c$, "setAnnotationsVisibility", 
+ function () {
+var showForAlignment = this.showAlignmentAnnotations.getState ();
+var showForSequences = this.showSequenceAnnotations.getState ();
+for (var aa, $aa = 0, $$aa = this.alignPanel.getAlignment ().getAlignmentAnnotation (); $aa < $$aa.length && ((aa = $$aa[$aa]) || true); $aa++) {
+var visible = (aa.sequenceRef == null ? showForAlignment : showForSequences);
+aa.visible = visible;
+}
+this.alignPanel.validateAnnotationDimensions (true);
+this.validate ();
+this.repaint ();
+});
+Clazz_defineMethod (c$, "setAnnotationSortOrder", 
+ function (order) {
+this.annotationSortOrder = order;
+}, "jalview.analysis.AnnotationSorter.SequenceAnnotationOrder");
+Clazz_defineMethod (c$, "setViewportAnnotationOrder", 
+ function () {
+this.alignPanel.av.setSortAnnotationsBy (this.annotationSortOrder);
+this.alignPanel.av.setShowAutocalculatedAbove (this.showAutoCalculatedAbove);
+});
+Clazz_defineMethod (c$, "setShowAutoCalculatedAbove", 
+ function (showAbove) {
+this.showAutoCalculatedAbove = showAbove;
+}, "~B");
+Clazz_defineMethod (c$, "mouseOverFlag_stateChanged", 
+ function () {
+this.viewport.setFollowHighlight (this.followMouseOverFlag.getState ());
+});
+Clazz_defineMethod (c$, "centreColumnLabelFlag_stateChanged", 
+ function () {
+this.viewport.centreColumnLabels = this.centreColumnLabelFlag.getState ();
+this.alignPanel.annotationPanel.repaint ();
+});
+Clazz_overrideMethod (c$, "actionPerformed", 
+function (evt) {
+var source = evt.getSource ();
+if (source === this.inputText) {
+this.inputText_actionPerformed ();
+} else if (source === this.$loadTree) {
+this.loadTree_actionPerformed ();
+} else if (source === this.loadApplication) {
+this.launchFullApplication ();
+} else if (source === this.$loadAnnotations) {
+this.loadAnnotations ();
+} else if (source === this.$outputAnnotations) {
+this.outputAnnotations (true);
+} else if (source === this.$outputFeatures) {
+this.outputFeatures (true, "Jalview");
+} else if (source === this.closeMenuItem) {
+this.closeMenuItem_actionPerformed ();
+} else if (source === this.copy) {
+this.copy_actionPerformed ();
+} else if (source === this.undoMenuItem) {
+this.undoMenuItem_actionPerformed ();
+} else if (source === this.redoMenuItem) {
+this.redoMenuItem_actionPerformed ();
+} else if (source === this.inputText) {
+this.inputText_actionPerformed ();
+} else if (source === this.closeMenuItem) {
+this.closeMenuItem_actionPerformed ();
+} else if (source === this.undoMenuItem) {
+this.undoMenuItem_actionPerformed ();
+} else if (source === this.redoMenuItem) {
+this.redoMenuItem_actionPerformed ();
+} else if (source === this.copy) {
+this.copy_actionPerformed ();
+} else if (source === this.pasteNew) {
+this.pasteNew_actionPerformed ();
+} else if (source === this.pasteThis) {
+this.pasteThis_actionPerformed ();
+} else if (source === this.cut) {
+this.cut_actionPerformed ();
+} else if (source === this.$delete) {
+this.delete_actionPerformed ();
+} else if (source === this.grpsFromSelection) {
+this.makeGrpsFromSelection_actionPerformed ();
+} else if (source === this.deleteGroups) {
+this.deleteGroups_actionPerformed ();
+} else if (source === this.selectAllSequenceMenuItem) {
+this.selectAllSequenceMenuItem_actionPerformed ();
+} else if (source === this.deselectAllSequenceMenuItem) {
+this.deselectAllSequenceMenuItem_actionPerformed ();
+} else if (source === this.invertSequenceMenuItem) {
+this.invertSequenceMenuItem_actionPerformed ();
+} else if (source === this.invertColSel) {
+this.viewport.invertColumnSelection ();
+this.alignPanel.paintAlignment (true);
+} else if (source === this.remove2LeftMenuItem) {
+this.trimAlignment (true);
+} else if (source === this.remove2RightMenuItem) {
+this.trimAlignment (false);
+} else if (source === this.removeGappedColumnMenuItem) {
+this.removeGappedColumnMenuItem_actionPerformed ();
+} else if (source === this.removeAllGapsMenuItem) {
+this.removeAllGapsMenuItem_actionPerformed ();
+} else if (source === this.findMenuItem) {
+this.findMenuItem_actionPerformed ();
+} else if (source === this.$font) {
+ new jalview.appletgui.FontChooser (this.alignPanel);
+} else if (source === this.$newView) {
+this.newView (null);
+} else if (source === this.showColumns) {
+this.viewport.showAllHiddenColumns ();
+this.alignPanel.paintAlignment (true);
+} else if (source === this.showSeqs) {
+this.viewport.showAllHiddenSeqs ();
+this.alignPanel.paintAlignment (true);
+} else if (source === this.hideColumns) {
+this.viewport.hideSelectedColumns ();
+this.alignPanel.paintAlignment (true);
+} else if (source === this.hideSequences && this.viewport.getSelectionGroup () != null) {
+this.viewport.hideAllSelectedSeqs ();
+this.alignPanel.paintAlignment (true);
+} else if (source === this.hideAllButSelection) {
+this.toggleHiddenRegions (false, false);
+this.alignPanel.paintAlignment (true);
+} else if (source === this.hideAllSelection) {
+var sg = this.viewport.getSelectionGroup ();
+this.viewport.expandColSelection (sg, false);
+this.viewport.hideAllSelectedSeqs ();
+this.viewport.hideSelectedColumns ();
+this.alignPanel.paintAlignment (true);
+} else if (source === this.showAllHidden) {
+this.viewport.showAllHiddenColumns ();
+this.viewport.showAllHiddenSeqs ();
+this.alignPanel.paintAlignment (true);
+} else if (source === this.showGroupConsensus) {
+this.showGroupConsensus_actionPerformed ();
+} else if (source === this.showGroupConservation) {
+this.showGroupConservation_actionPerformed ();
+} else if (source === this.showSequenceLogo) {
+this.showSequenceLogo_actionPerformed ();
+} else if (source === this.normSequenceLogo) {
+this.normSequenceLogo_actionPerformed ();
+} else if (source === this.showConsensusHistogram) {
+this.showConsensusHistogram_actionPerformed ();
+} else if (source === this.applyAutoAnnotationSettings) {
+this.applyAutoAnnotationSettings_actionPerformed ();
+} else if (source === this.featureSettings) {
+ new jalview.appletgui.FeatureSettings (this.alignPanel);
+} else if (source === this.alProperties) {
+var contents =  new jalview.io.AlignmentProperties (this.viewport.getAlignment ()).formatAsString ();
+var cap =  new jalview.appletgui.CutAndPasteTransfer (false, this);
+cap.setText (contents.toString ());
+var frame =  new awt2swing.Frame ();
+frame.add (cap);
+jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.formatMessage ("label.alignment_properties",  Clazz_newArray (-1, [this.getTitle ()])), 400, 250);
+} else if (source === this.overviewMenuItem) {
+this.overviewMenuItem_actionPerformed ();
+} else if (source === this.noColourmenuItem) {
+this.changeColour (null);
+} else if (source === this.clustalColour) {
+this.abovePIDThreshold.setState (false);
+this.changeColour ( new jalview.schemes.ClustalxColourScheme (this.viewport.getAlignment (), null));
+} else if (source === this.zappoColour) {
+this.changeColour ( new jalview.schemes.ZappoColourScheme ());
+} else if (source === this.taylorColour) {
+this.changeColour ( new jalview.schemes.TaylorColourScheme ());
+} else if (source === this.hydrophobicityColour) {
+this.changeColour ( new jalview.schemes.HydrophobicColourScheme ());
+} else if (source === this.helixColour) {
+this.changeColour ( new jalview.schemes.HelixColourScheme ());
+} else if (source === this.strandColour) {
+this.changeColour ( new jalview.schemes.StrandColourScheme ());
+} else if (source === this.turnColour) {
+this.changeColour ( new jalview.schemes.TurnColourScheme ());
+} else if (source === this.buriedColour) {
+this.changeColour ( new jalview.schemes.BuriedColourScheme ());
+} else if (source === this.nucleotideColour) {
+this.changeColour ( new jalview.schemes.NucleotideColourScheme ());
+} else if (source === this.purinePyrimidineColour) {
+this.changeColour ( new jalview.schemes.PurinePyrimidineColourScheme ());
+} else if (source === this.RNAInteractionColour) {
+this.changeColour ( new jalview.schemes.RNAInteractionColourScheme ());
+} else if (source === this.RNAHelixColour) {
+ new jalview.schemes.RNAHelicesColourChooser (this.viewport, this.alignPanel);
+} else if (source === this.modifyPID) {
+this.modifyPID_actionPerformed ();
+} else if (source === this.modifyConservation) {
+this.modifyConservation_actionPerformed ();
+} else if (source === this.userDefinedColour) {
+ new jalview.appletgui.UserDefinedColours (this.alignPanel, null);
+} else if (source === this.PIDColour) {
+this.changeColour ( new jalview.schemes.PIDColourScheme ());
+} else if (source === this.BLOSUM62Colour) {
+this.changeColour ( new jalview.schemes.Blosum62ColourScheme ());
+} else if (source === this.tcoffeeColour) {
+this.changeColour ( new jalview.schemes.TCoffeeColourScheme (this.alignPanel.getAlignment ()));
+} else if (source === this.annotationColour) {
+ new jalview.appletgui.AnnotationColourChooser (this.viewport, this.alignPanel);
+} else if (source === this.annotationColumnSelection) {
+ new jalview.appletgui.AnnotationColumnChooser (this.viewport, this.alignPanel);
+} else if (source === this.sortPairwiseMenuItem) {
+this.sortPairwiseMenuItem_actionPerformed ();
+} else if (source === this.sortIDMenuItem) {
+this.sortIDMenuItem_actionPerformed ();
+} else if (source === this.sortLengthMenuItem) {
+this.sortLengthMenuItem_actionPerformed ();
+} else if (source === this.sortGroupMenuItem) {
+this.sortGroupMenuItem_actionPerformed ();
+} else if (source === this.removeRedundancyMenuItem) {
+this.removeRedundancyMenuItem_actionPerformed ();
+} else if (source === this.pairwiseAlignmentMenuItem) {
+this.pairwiseAlignmentMenuItem_actionPerformed ();
+} else if (source === this.PCAMenuItem) {
+this.PCAMenuItem_actionPerformed ();
+} else if (source === this.averageDistanceTreeMenuItem) {
+this.averageDistanceTreeMenuItem_actionPerformed ();
+} else if (source === this.neighbourTreeMenuItem) {
+this.neighbourTreeMenuItem_actionPerformed ();
+} else if (source === this.njTreeBlosumMenuItem) {
+this.njTreeBlosumMenuItem_actionPerformed ();
+} else if (source === this.avDistanceTreeBlosumMenuItem) {
+this.avTreeBlosumMenuItem_actionPerformed ();
+} else if (source === this.documentation) {
+this.documentation_actionPerformed ();
+} else if (source === this.about) {
+this.about_actionPerformed ();
+}}, "java.awt.event.ActionEvent");
+Clazz_defineMethod (c$, "inputText_actionPerformed", 
+function () {
+var cap =  new jalview.appletgui.CutAndPasteTransfer (true, this);
+var frame =  new awt2swing.Frame ();
+frame.add (cap);
+jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.input_cut_paste"), 500, 500);
+});
+Clazz_defineMethod (c$, "outputText_actionPerformed", 
+function (e) {
+var cap =  new jalview.appletgui.CutAndPasteTransfer (true, this);
+var frame =  new awt2swing.Frame ();
+frame.add (cap);
+jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.formatMessage ("label.alignment_output_command",  Clazz_newArray (-1, [e.getActionCommand ()])), 600, 500);
+var fr = this.alignPanel.cloneFeatureRenderer ();
+cap.setText ( new jalview.io.AppletFormatAdapter (this.alignPanel).formatSequences (e.getActionCommand (), this.viewport.getAlignment (), this.viewport.getShowJVSuffix ()));
+}, "java.awt.event.ActionEvent");
+Clazz_defineMethod (c$, "loadAnnotations", 
+function () {
+var cap =  new jalview.appletgui.CutAndPasteTransfer (true, this);
+cap.setText (jalview.util.MessageManager.getString ("label.paste_features_annotations_Tcoffee_here"));
+cap.setAnnotationImport ();
+var frame =  new awt2swing.Frame ();
+frame.add (cap);
+jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("action.paste_annotations"), 400, 300);
+});
+Clazz_defineMethod (c$, "outputAnnotations", 
+function (displayTextbox) {
+var annotation =  new jalview.io.AnnotationFile ().printAnnotationsForView (this.viewport);
+if (displayTextbox) {
+var cap =  new jalview.appletgui.CutAndPasteTransfer (false, this);
+var frame =  new awt2swing.Frame ();
+frame.add (cap);
+jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.annotations"), 600, 500);
+cap.setText (annotation);
+}return annotation;
+}, "~B");
+Clazz_defineMethod (c$, "getDisplayedFeatureCols", 
+ function () {
+if (this.alignPanel.getFeatureRenderer () != null && this.viewport.getFeaturesDisplayed () != null) {
+return this.alignPanel.getFeatureRenderer ().getDisplayedFeatureCols ();
+}return null;
+});
+Clazz_defineMethod (c$, "outputFeatures", 
+function (displayTextbox, format) {
+var features;
+if (format.equalsIgnoreCase ("Jalview")) {
+features =  new jalview.io.FeaturesFile ().printJalviewFormat (this.viewport.getAlignment ().getSequencesArray (), this.getDisplayedFeatureCols ());
+} else {
+features =  new jalview.io.FeaturesFile ().printGFFFormat (this.viewport.getAlignment ().getSequencesArray (), this.getDisplayedFeatureCols ());
+}if (displayTextbox) {
+var frimport = false;
+if (features == null || features.equals ("No Features Visible")) {
+features = "# No features visible - paste some and import them here.";
+frimport = true;
+}var cap =  new jalview.appletgui.CutAndPasteTransfer (frimport, this);
+if (frimport) {
+cap.setAnnotationImport ();
+}var frame =  new awt2swing.Frame ();
+frame.add (cap);
+jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.features"), 600, 500);
+cap.setText (features);
+} else {
+if (features == null) {
+features = "";
+}}return features;
+}, "~B,~S");
+Clazz_defineMethod (c$, "launchFullApplication", 
+function () {
+var url =  new StringBuffer (this.jalviewServletURL);
+var firstSep = url.lastIndexOf ("?") > url.lastIndexOf ("/") ? "&" : "?";
+url.append (firstSep);
+var applet = this.viewport.applet;
+var s = applet.startupFile;
+url.append ("open=" + this.appendProtocol (s));
+if (this.viewport.applet.features != null) {
+url.append ("&features=");
+url.append (this.appendProtocol (applet.features));
+}if (applet.annotations != null) {
+url.append ("&annotations=");
+url.append (this.appendProtocol (applet.annotations));
+}if (applet.jnetFile != null) {
+url.append ("&annotations=");
+url.append (this.appendProtocol (applet.jnetFile));
+}if (applet.defaultColour != null) {
+url.append ("&colour=" + this.removeWhiteSpace (applet.defaultColour));
+}if (applet.userDefinedColour != null) {
+url.append ("&colour=" + this.removeWhiteSpace (applet.userDefinedColour));
+}if (applet.treeFile != null) {
+url.append ("&tree=" + this.appendProtocol (applet.treeFile));
+}this.showURL (url.toString (), "FULL_APP");
+});
+Clazz_defineMethod (c$, "removeWhiteSpace", 
+function (colour) {
+var sb =  new StringBuffer ();
+for (var i = 0; i < colour.length; i++) {
+if (Character.isWhitespace (colour.charAt (i))) {
+sb.append ("%20");
+} else {
+sb.append (colour.charAt (i));
+}}
+return sb.toString ();
+}, "~S");
+Clazz_defineMethod (c$, "appendProtocol", 
+function (url) {
+try {
+ new java.net.URL (url);
+url = java.net.URLEncoder.encode (url);
+} catch (ex) {
+if (Clazz_exceptionOf (ex, java.net.MalformedURLException)) {
+url = this.viewport.applet.getCodeBase () + url;
+} else {
+throw ex;
+}
+}
+return url;
+}, "~S");
+Clazz_defineMethod (c$, "closeMenuItem_actionPerformed", 
+function () {
+jalview.appletgui.PaintRefresher.RemoveComponent (this.alignPanel);
+if (this.alignPanel.seqPanel != null && this.alignPanel.seqPanel.seqCanvas != null) {
+jalview.appletgui.PaintRefresher.RemoveComponent (this.alignPanel.seqPanel.seqCanvas);
+}if (this.alignPanel.idPanel != null && this.alignPanel.idPanel.idCanvas != null) {
+jalview.appletgui.PaintRefresher.RemoveComponent (this.alignPanel.idPanel.idCanvas);
+}if (jalview.appletgui.PaintRefresher.components.size () == 0 && this.viewport.applet == null) {
+System.exit (0);
+} else {
+}this.viewport = null;
+this.alignPanel = null;
+this.dispose ();
+});
+Clazz_defineMethod (c$, "updateEditMenuBar", 
+function () {
+if (this.viewport.getHistoryList ().size () > 0) {
+this.undoMenuItem.setEnabled (true);
+var command = this.viewport.getHistoryList ().peek ();
+this.undoMenuItem.setLabel (jalview.util.MessageManager.formatMessage ("label.undo_command",  Clazz_newArray (-1, [command.getDescription ()])));
+} else {
+this.undoMenuItem.setEnabled (false);
+this.undoMenuItem.setLabel (jalview.util.MessageManager.getString ("action.undo"));
+}if (this.viewport.getRedoList ().size () > 0) {
+this.redoMenuItem.setEnabled (true);
+var command = this.viewport.getRedoList ().peek ();
+this.redoMenuItem.setLabel (jalview.util.MessageManager.formatMessage ("label.redo_command",  Clazz_newArray (-1, [command.getDescription ()])));
+} else {
+this.redoMenuItem.setEnabled (false);
+this.redoMenuItem.setLabel (jalview.util.MessageManager.getString ("action.redo"));
+}});
+Clazz_overrideMethod (c$, "addHistoryItem", 
+function (command) {
+if (command.getSize () > 0) {
+this.viewport.addToHistoryList (command);
+this.viewport.clearRedoList ();
+this.updateEditMenuBar ();
+this.viewport.updateHiddenColumns ();
+}}, "jalview.commands.CommandI");
+Clazz_defineMethod (c$, "undoMenuItem_actionPerformed", 
+function () {
+if (this.viewport.getHistoryList ().isEmpty ()) {
+return;
+}var command = this.viewport.getHistoryList ().pop ();
+this.viewport.addToRedoList (command);
+command.undoCommand (null);
+var originalSource = this.getOriginatingSource (command);
+if (originalSource !== this.viewport) {
+System.err.println ("Warning: Viewport object mismatch whilst undoing");
+}originalSource.updateHiddenColumns ();
+this.updateEditMenuBar ();
+originalSource.firePropertyChange ("alignment", null, originalSource.getAlignment ().getSequences ());
+});
+Clazz_defineMethod (c$, "redoMenuItem_actionPerformed", 
+function () {
+if (this.viewport.getRedoList ().isEmpty ()) {
+return;
+}var command = this.viewport.getRedoList ().pop ();
+this.viewport.addToHistoryList (command);
+command.doCommand (null);
+var originalSource = this.getOriginatingSource (command);
+if (originalSource !== this.viewport) {
+System.err.println ("Warning: Viewport object mismatch whilst re-doing");
+}originalSource.updateHiddenColumns ();
+this.updateEditMenuBar ();
+originalSource.firePropertyChange ("alignment", null, originalSource.getAlignment ().getSequences ());
+});
+Clazz_defineMethod (c$, "getOriginatingSource", 
+function (command) {
+var originalSource = null;
+var al = null;
+if (Clazz_instanceOf (command, jalview.commands.EditCommand)) {
+var editCommand = command;
+al = editCommand.getAlignment ();
+var comps = jalview.appletgui.PaintRefresher.components.get (this.viewport.getSequenceSetId ());
+for (var i = 0; i < comps.size (); i++) {
+if (Clazz_instanceOf (comps.elementAt (i), jalview.appletgui.AlignmentPanel)) {
+if (al === (comps.elementAt (i)).av.getAlignment ()) {
+originalSource = (comps.elementAt (i)).av;
+break;
+}}}
+}if (originalSource == null) {
+if (al != null) {
+jalview.appletgui.PaintRefresher.validateSequences (al, this.viewport.getAlignment ());
+}originalSource = this.viewport;
+}return originalSource;
+}, "jalview.commands.CommandI");
+Clazz_defineMethod (c$, "moveSelectedSequences", 
+function (up) {
+var sg = this.viewport.getSelectionGroup ();
+if (sg == null) {
+return;
+}this.viewport.getAlignment ().moveSelectedSequencesByOne (sg, up ? null : this.viewport.getHiddenRepSequences (), up);
+this.alignPanel.paintAlignment (true);
+var complement = this.viewport.getCodingComplement ();
+if (complement != null) {
+var mappedSelection = jalview.util.MappingUtils.mapSequenceGroup (sg, this.viewport, complement);
+complement.getAlignment ().moveSelectedSequencesByOne (mappedSelection, up ? null : complement.getHiddenRepSequences (), up);
+}}, "~B");
+Clazz_defineMethod (c$, "slideSequences", 
+function (right, size) {
+var sg =  new java.util.Vector ();
+if (this.viewport.cursorMode) {
+sg.add (this.viewport.getAlignment ().getSequenceAt (this.alignPanel.seqPanel.seqCanvas.cursorY));
+} else if (this.viewport.getSelectionGroup () != null && this.viewport.getSelectionGroup ().getSize () != this.viewport.getAlignment ().getHeight ()) {
+sg = this.viewport.getSelectionGroup ().getSequences (this.viewport.getHiddenRepSequences ());
+}if (sg.size () < 1) {
+return;
+}var invertGroup =  new java.util.Vector ();
+for (var i = 0; i < this.viewport.getAlignment ().getHeight (); i++) {
+if (!sg.contains (this.viewport.getAlignment ().getSequenceAt (i))) {
+invertGroup.addElement (this.viewport.getAlignment ().getSequenceAt (i));
+}}
+var seqs1 = sg.toArray ( new Array (sg.size ()));
+var seqs2 = invertGroup.toArray ( new Array (invertGroup.size ()));
+for (var i = 0; i < invertGroup.size (); i++) {
+seqs2[i] = invertGroup.elementAt (i);
+}
+var ssc;
+if (right) {
+ssc =  new jalview.commands.SlideSequencesCommand ("Slide Sequences", seqs2, seqs1, size, this.viewport.getGapCharacter ());
+} else {
+ssc =  new jalview.commands.SlideSequencesCommand ("Slide Sequences", seqs1, seqs2, size, this.viewport.getGapCharacter ());
+}var groupAdjustment = 0;
+if (ssc.getGapsInsertedBegin () && right) {
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.moveCursor (size, 0);
+} else {
+groupAdjustment = size;
+}} else if (!ssc.getGapsInsertedBegin () && !right) {
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.moveCursor (-size, 0);
+} else {
+groupAdjustment = -size;
+}}if (groupAdjustment != 0) {
+this.viewport.getSelectionGroup ().setStartRes (this.viewport.getSelectionGroup ().getStartRes () + groupAdjustment);
+this.viewport.getSelectionGroup ().setEndRes (this.viewport.getSelectionGroup ().getEndRes () + groupAdjustment);
+}var appendHistoryItem = false;
+var historyList = this.viewport.getHistoryList ();
+if (historyList != null && historyList.size () > 0 && Clazz_instanceOf (historyList.peek (), jalview.commands.SlideSequencesCommand)) {
+appendHistoryItem = ssc.appendSlideCommand (historyList.peek ());
+}if (!appendHistoryItem) {
+this.addHistoryItem (ssc);
+}this.repaint ();
+}, "~B,~N");
+Clazz_defineMethod (c$, "copy_actionPerformed", 
+function () {
+if (this.viewport.getSelectionGroup () == null) {
+return;
+}var sg = this.viewport.getSelectionGroup ();
+jalview.appletgui.AlignFrame.copiedSequences =  new StringBuffer ();
+var orderedSeqs =  new java.util.HashMap ();
+for (var i = 0; i < sg.getSize (); i++) {
+var seq = sg.getSequenceAt (i);
+var index = this.viewport.getAlignment ().findIndex (seq);
+orderedSeqs.put (new Integer (index), seq);
+}
+var index = 0;
+var startRes;
+var endRes;
+var ch;
+if (this.viewport.hasHiddenColumns () && this.viewport.getSelectionGroup () != null) {
+jalview.appletgui.AlignFrame.copiedHiddenColumns =  new java.util.Vector ();
+var hiddenOffset = this.viewport.getSelectionGroup ().getStartRes ();
+for (var region, $region = this.viewport.getColumnSelection ().getHiddenColumns ().iterator (); $region.hasNext () && ((region = $region.next ()) || true);) {
+jalview.appletgui.AlignFrame.copiedHiddenColumns.addElement ( Clazz_newIntArray (-1, [region[0] - hiddenOffset, region[1] - hiddenOffset]));
+}
+} else {
+jalview.appletgui.AlignFrame.copiedHiddenColumns = null;
+}for (var i = 0; i < sg.getSize (); i++) {
+var seq = null;
+while (seq == null) {
+if (orderedSeqs.containsKey (new Integer (index))) {
+seq = orderedSeqs.get (new Integer (index));
+index++;
+break;
+} else {
+index++;
+}}
+startRes = seq.findPosition (sg.getStartRes ());
+endRes = 0;
+for (var j = 0; j < sg.getEndRes () + 1 && j < seq.getLength (); j++) {
+ch = seq.getCharAt (j);
+if (!jalview.util.Comparison.isGap ((ch))) {
+endRes++;
+}}
+if (endRes > 0) {
+endRes += seq.getStart () - 1;
+}jalview.appletgui.AlignFrame.copiedSequences.append (seq.getName () + "\t" + startRes + "\t" + endRes + "\t" + seq.getSequenceAsString (sg.getStartRes (), sg.getEndRes () + 1) + "\n");
+}
+});
+Clazz_defineMethod (c$, "pasteNew_actionPerformed", 
+function () {
+this.paste (true);
+});
+Clazz_defineMethod (c$, "pasteThis_actionPerformed", 
+function () {
+this.paste (false);
+});
+Clazz_defineMethod (c$, "paste", 
+function (newAlignment) {
+try {
+if (jalview.appletgui.AlignFrame.copiedSequences == null) {
+return;
+}var st =  new java.util.StringTokenizer (jalview.appletgui.AlignFrame.copiedSequences.toString ());
+var seqs =  new java.util.Vector ();
+while (st.hasMoreElements ()) {
+var name = st.nextToken ();
+var start = Integer.parseInt (st.nextToken ());
+var end = Integer.parseInt (st.nextToken ());
+seqs.addElement ( new jalview.datamodel.Sequence (name, st.nextToken (), start, end));
+}
+var newSeqs =  new Array (seqs.size ());
+for (var i = 0; i < seqs.size (); i++) {
+newSeqs[i] = seqs.elementAt (i);
+}
+if (newAlignment) {
+var newtitle = jalview.util.MessageManager.getString ("label.copied_sequences");
+if (this.getTitle ().startsWith (jalview.util.MessageManager.getString ("label.copied_sequences"))) {
+newtitle = this.getTitle ();
+} else {
+newtitle = newtitle.concat (jalview.util.MessageManager.formatMessage ("label.from_msname",  Clazz_newArray (-1, [this.getTitle ()])));
+}var af =  new jalview.appletgui.AlignFrame ( new jalview.datamodel.Alignment (newSeqs), this.viewport.applet, newtitle, false);
+if (jalview.appletgui.AlignFrame.copiedHiddenColumns != null) {
+for (var i = 0; i < jalview.appletgui.AlignFrame.copiedHiddenColumns.size (); i++) {
+var region = jalview.appletgui.AlignFrame.copiedHiddenColumns.elementAt (i);
+af.viewport.hideColumns (region[0], region[1]);
+}
+}jalview.bin.JalviewLite.addFrame (af, newtitle, this.frameWidth, this.frameHeight);
+} else {
+this.addSequences (newSeqs);
+}} catch (ex) {
+if (Clazz_exceptionOf (ex, Exception)) {
+} else {
+throw ex;
+}
+}
+}, "~B");
+Clazz_defineMethod (c$, "addSequences", 
+function (seqs) {
+for (var i = 0; i < seqs.length; i++) {
+this.viewport.getAlignment ().addSequence (seqs[i]);
+}
+this.addHistoryItem ( new jalview.commands.EditCommand (jalview.util.MessageManager.getString ("label.add_sequences"), jalview.commands.EditCommand.Action.PASTE, seqs, 0, this.viewport.getAlignment ().getWidth (), this.viewport.getAlignment ()));
+this.viewport.setEndSeq (this.viewport.getAlignment ().getHeight ());
+this.viewport.getAlignment ().getWidth ();
+this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
+}, "~A");
+Clazz_defineMethod (c$, "cut_actionPerformed", 
+function () {
+this.copy_actionPerformed ();
+this.delete_actionPerformed ();
+});
+Clazz_defineMethod (c$, "delete_actionPerformed", 
+function () {
+var sg = this.viewport.getSelectionGroup ();
+if (sg == null) {
+return;
+}var seqs =  new java.util.Vector ();
+var seq;
+for (var i = 0; i < sg.getSize (); i++) {
+seq = sg.getSequenceAt (i);
+seqs.addElement (seq);
+}
+if (sg.getSize () == this.viewport.getAlignment ().getHeight ()) {
+this.viewport.getColumnSelection ().removeElements (sg.getStartRes (), sg.getEndRes () + 1);
+}var cut =  new Array (seqs.size ());
+for (var i = 0; i < seqs.size (); i++) {
+cut[i] = seqs.elementAt (i);
+}
+this.addHistoryItem ( new jalview.commands.EditCommand (jalview.util.MessageManager.getString ("label.cut_sequences"), jalview.commands.EditCommand.Action.CUT, cut, sg.getStartRes (), sg.getEndRes () - sg.getStartRes () + 1, this.viewport.getAlignment ()));
+this.viewport.setSelectionGroup (null);
+this.viewport.getAlignment ().deleteGroup (sg);
+this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
+if (this.viewport.getAlignment ().getHeight () < 1) {
+this.setVisible (false);
+}this.viewport.sendSelection ();
+});
+Clazz_defineMethod (c$, "showGroupConsensus_actionPerformed", 
+function () {
+this.viewport.setShowGroupConsensus (this.showGroupConsensus.getState ());
+this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
+});
+Clazz_defineMethod (c$, "showGroupConservation_actionPerformed", 
+function () {
+this.viewport.setShowGroupConservation (this.showGroupConservation.getState ());
+this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
+});
+Clazz_defineMethod (c$, "showConsensusHistogram_actionPerformed", 
+function () {
+this.viewport.setShowConsensusHistogram (this.showConsensusHistogram.getState ());
+this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
+});
+Clazz_defineMethod (c$, "showSequenceLogo_actionPerformed", 
+function () {
+this.viewport.setShowSequenceLogo (this.showSequenceLogo.getState ());
+this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
+});
+Clazz_defineMethod (c$, "normSequenceLogo_actionPerformed", 
+function () {
+this.showSequenceLogo.setState (true);
+this.viewport.setShowSequenceLogo (true);
+this.viewport.setNormaliseSequenceLogo (this.normSequenceLogo.getState ());
+this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
+});
+Clazz_defineMethod (c$, "applyAutoAnnotationSettings_actionPerformed", 
+function () {
+this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
+});
+Clazz_defineMethod (c$, "makeGrpsFromSelection_actionPerformed", 
+function () {
+if (this.avc.makeGroupsFromSelection ()) {
+jalview.appletgui.PaintRefresher.Refresh (this, this.viewport.getSequenceSetId ());
+this.alignPanel.updateAnnotation ();
+this.alignPanel.paintAlignment (true);
+}});
+Clazz_defineMethod (c$, "createGroup_actionPerformed", 
+function () {
+this.avc.createGroup ();
+});
+Clazz_defineMethod (c$, "unGroup_actionPerformed", 
+function () {
+if (this.avc.unGroup ()) {
+this.alignPanel.alignmentChanged ();
+}});
+Clazz_defineMethod (c$, "deleteGroups_actionPerformed", 
+function () {
+if (this.avc.deleteGroups ()) {
+this.alignPanel.alignmentChanged ();
+}});
+Clazz_defineMethod (c$, "selectAllSequenceMenuItem_actionPerformed", 
+function () {
+var sg =  new jalview.datamodel.SequenceGroup ();
+for (var i = 0; i < this.viewport.getAlignment ().getSequences ().size (); i++) {
+sg.addSequence (this.viewport.getAlignment ().getSequenceAt (i), false);
+}
+sg.setEndRes (this.viewport.getAlignment ().getWidth () - 1);
+this.viewport.setSelectionGroup (sg);
+this.alignPanel.paintAlignment (true);
+jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
+this.viewport.sendSelection ();
+});
+Clazz_defineMethod (c$, "deselectAllSequenceMenuItem_actionPerformed", 
+function () {
+if (this.viewport.cursorMode) {
+this.alignPanel.seqPanel.keyboardNo1 = null;
+this.alignPanel.seqPanel.keyboardNo2 = null;
+}this.viewport.setSelectionGroup (null);
+this.viewport.getColumnSelection ().clear ();
+this.viewport.setSelectionGroup (null);
+this.alignPanel.idPanel.idCanvas.searchResults = null;
+this.alignPanel.seqPanel.seqCanvas.highlightSearchResults (null);
+this.alignPanel.paintAlignment (true);
+jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
+this.viewport.sendSelection ();
+});
+Clazz_defineMethod (c$, "invertSequenceMenuItem_actionPerformed", 
+function () {
+var sg = this.viewport.getSelectionGroup ();
+for (var i = 0; i < this.viewport.getAlignment ().getSequences ().size (); i++) {
+sg.addOrRemove (this.viewport.getAlignment ().getSequenceAt (i), false);
+}
+jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
+this.viewport.sendSelection ();
+});
+Clazz_defineMethod (c$, "invertColSel_actionPerformed", 
+function () {
+this.viewport.invertColumnSelection ();
+this.alignPanel.paintAlignment (true);
+jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
+this.viewport.sendSelection ();
+});
+Clazz_defineMethod (c$, "trimAlignment", 
+function (trimLeft) {
+var colSel = this.viewport.getColumnSelection ();
+var column;
+if (colSel.size () > 0) {
+if (trimLeft) {
+column = colSel.getMin ();
+} else {
+column = colSel.getMax ();
+}var seqs;
+if (this.viewport.getSelectionGroup () != null) {
+seqs = this.viewport.getSelectionGroup ().getSequencesAsArray (this.viewport.getHiddenRepSequences ());
+} else {
+seqs = this.viewport.getAlignment ().getSequencesArray ();
+}var trimRegion;
+if (trimLeft) {
+trimRegion =  new jalview.commands.TrimRegionCommand ("Remove Left", jalview.commands.TrimRegionCommand.TRIM_LEFT, seqs, column, this.viewport.getAlignment (), this.viewport.getColumnSelection (), this.viewport.getSelectionGroup ());
+this.viewport.setStartRes (0);
+} else {
+trimRegion =  new jalview.commands.TrimRegionCommand ("Remove Right", jalview.commands.TrimRegionCommand.TRIM_RIGHT, seqs, column, this.viewport.getAlignment (), this.viewport.getColumnSelection (), this.viewport.getSelectionGroup ());
+}this.setStatus (jalview.util.MessageManager.formatMessage ("label.removed_columns",  Clazz_newArray (-1, [Integer.$valueOf (trimRegion.getSize ()).toString ()])));
+this.addHistoryItem (trimRegion);
+for (var sg, $sg = this.viewport.getAlignment ().getGroups ().iterator (); $sg.hasNext () && ((sg = $sg.next ()) || true);) {
+if ((trimLeft && !sg.adjustForRemoveLeft (column)) || (!trimLeft && !sg.adjustForRemoveRight (column))) {
+this.viewport.getAlignment ().deleteGroup (sg);
+}}
+this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
+}}, "~B");
+Clazz_defineMethod (c$, "removeGappedColumnMenuItem_actionPerformed", 
+function () {
+var start = 0;
+var end = this.viewport.getAlignment ().getWidth () - 1;
+var seqs;
+if (this.viewport.getSelectionGroup () != null) {
+seqs = this.viewport.getSelectionGroup ().getSequencesAsArray (this.viewport.getHiddenRepSequences ());
+start = this.viewport.getSelectionGroup ().getStartRes ();
+end = this.viewport.getSelectionGroup ().getEndRes ();
+} else {
+seqs = this.viewport.getAlignment ().getSequencesArray ();
+}var removeGapCols =  new jalview.commands.RemoveGapColCommand ("Remove Gapped Columns", seqs, start, end, this.viewport.getAlignment ());
+this.addHistoryItem (removeGapCols);
+this.setStatus (jalview.util.MessageManager.formatMessage ("label.removed_empty_columns",  Clazz_newArray (-1, [Integer.$valueOf (removeGapCols.getSize ()).toString ()])));
+var seq = this.viewport.getAlignment ().getSequenceAt (0);
+var startRes = seq.findPosition (this.viewport.startRes);
+this.viewport.setStartRes (seq.findIndex (startRes) - 1);
+this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
+});
+Clazz_defineMethod (c$, "removeAllGapsMenuItem_actionPerformed", 
+function () {
+var start = 0;
+var end = this.viewport.getAlignment ().getWidth () - 1;
+var seqs;
+if (this.viewport.getSelectionGroup () != null) {
+seqs = this.viewport.getSelectionGroup ().getSequencesAsArray (this.viewport.getHiddenRepSequences ());
+start = this.viewport.getSelectionGroup ().getStartRes ();
+end = this.viewport.getSelectionGroup ().getEndRes ();
+} else {
+seqs = this.viewport.getAlignment ().getSequencesArray ();
+}var seq = this.viewport.getAlignment ().getSequenceAt (0);
+var startRes = seq.findPosition (this.viewport.startRes);
+this.addHistoryItem ( new jalview.commands.RemoveGapsCommand ("Remove Gaps", seqs, start, end, this.viewport.getAlignment ()));
+this.viewport.setStartRes (seq.findIndex (startRes) - 1);
+this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
+});
+Clazz_defineMethod (c$, "findMenuItem_actionPerformed", 
+function () {
+ new jalview.appletgui.Finder (this.alignPanel);
+});
+Clazz_defineMethod (c$, "newView", 
+function (viewtitle) {
+var newal;
+if (this.viewport.hasHiddenRows ()) {
+newal =  new jalview.datamodel.Alignment (this.viewport.getAlignment ().getHiddenSequences ().getFullAlignment ().getSequencesArray ());
+} else {
+newal =  new jalview.datamodel.Alignment (this.viewport.getAlignment ().getSequencesArray ());
+}if (this.viewport.getAlignment ().getAlignmentAnnotation () != null) {
+for (var i = 0; i < this.viewport.getAlignment ().getAlignmentAnnotation ().length; i++) {
+if (!this.viewport.getAlignment ().getAlignmentAnnotation ()[i].autoCalculated) {
+newal.addAnnotation (this.viewport.getAlignment ().getAlignmentAnnotation ()[i]);
+}}
+}var newaf =  new jalview.appletgui.AlignFrame (newal, this.viewport.applet, "", false);
+newaf.viewport.setSequenceSetId (this.alignPanel.av.getSequenceSetId ());
+jalview.appletgui.PaintRefresher.Register (this.alignPanel, this.alignPanel.av.getSequenceSetId ());
+jalview.appletgui.PaintRefresher.Register (newaf.alignPanel, newaf.alignPanel.av.getSequenceSetId ());
+jalview.appletgui.PaintRefresher.Register (newaf.alignPanel.idPanel.idCanvas, newaf.alignPanel.av.getSequenceSetId ());
+jalview.appletgui.PaintRefresher.Register (newaf.alignPanel.seqPanel.seqCanvas, newaf.alignPanel.av.getSequenceSetId ());
+var comps = jalview.appletgui.PaintRefresher.components.get (this.viewport.getSequenceSetId ());
+var viewSize = -1;
+for (var i = 0; i < comps.size (); i++) {
+if (Clazz_instanceOf (comps.elementAt (i), jalview.appletgui.AlignmentPanel)) {
+viewSize++;
+}}
+var title =  String.instantialize (this.getTitle ());
+if (viewtitle != null) {
+title = viewtitle + " ( " + title + ")";
+} else {
+if (title.indexOf ("(View") > -1) {
+title = title.substring (0, title.indexOf ("(View"));
+}title += "(View " + viewSize + ")";
+}newaf.setTitle (title.toString ());
+newaf.viewport.setHistoryList (this.viewport.getHistoryList ());
+newaf.viewport.setRedoList (this.viewport.getRedoList ());
+return newaf;
+}, "~S");
+Clazz_defineMethod (c$, "getFeatureGroups", 
+function () {
+var fr = null;
+if (this.alignPanel != null && (fr = this.alignPanel.getFeatureRenderer ()) != null) {
+var gps = fr.getFeatureGroups ();
+var _gps = gps.toArray ( new Array (gps.size ()));
+return _gps;
+}return null;
+});
+Clazz_defineMethod (c$, "getFeatureGroupsOfState", 
+function (visible) {
+var fr = null;
+if (this.alignPanel != null && (fr = this.alignPanel.getFeatureRenderer ()) != null) {
+var gps = fr.getGroups (visible);
+var _gps = gps.toArray ( new Array (gps.size ()));
+return _gps;
+}return null;
+}, "~B");
+Clazz_defineMethod (c$, "setFeatureGroupState", 
+function (groups, state) {
+var fr = null;
+this.sequenceFeatures.setState (true);
+this.viewport.setShowSequenceFeatures (true);
+if (this.alignPanel != null && (fr = this.alignPanel.getFeatureRenderer ()) != null) {
+fr.setGroupVisibility (java.util.Arrays.asList (groups), state);
+this.alignPanel.seqPanel.seqCanvas.repaint ();
+if (this.alignPanel.overviewPanel != null) {
+this.alignPanel.overviewPanel.updateOverviewImage ();
+}}}, "~A,~B");
+Clazz_defineMethod (c$, "seqLimits_itemStateChanged", 
+function () {
+this.viewport.setShowJVSuffix (this.seqLimits.getState ());
+this.alignPanel.fontChanged ();
+this.alignPanel.paintAlignment (true);
+});
+Clazz_defineMethod (c$, "colourTextMenuItem_actionPerformed", 
+function () {
+this.viewport.setColourText (this.colourTextMenuItem.getState ());
+this.alignPanel.paintAlignment (true);
+});
+Clazz_defineMethod (c$, "displayNonconservedMenuItem_actionPerformed", 
+function () {
+this.viewport.setShowUnconserved (this.displayNonconservedMenuItem.getState ());
+this.alignPanel.paintAlignment (true);
+});
+Clazz_defineMethod (c$, "wrapMenuItem_actionPerformed", 
+function () {
+this.viewport.setWrapAlignment (this.wrapMenuItem.getState ());
+this.alignPanel.setWrapAlignment (this.wrapMenuItem.getState ());
+this.scaleAbove.setEnabled (this.wrapMenuItem.getState ());
+this.scaleLeft.setEnabled (this.wrapMenuItem.getState ());
+this.scaleRight.setEnabled (this.wrapMenuItem.getState ());
+this.alignPanel.paintAlignment (true);
+});
+Clazz_defineMethod (c$, "overviewMenuItem_actionPerformed", 
+function () {
+if (this.alignPanel.overviewPanel != null) {
+return;
+}var frame =  new awt2swing.Frame ();
+var overview =  new jalview.appletgui.OverviewPanel (this.alignPanel);
+frame.add (overview);
+jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.formatMessage ("label.overview_params",  Clazz_newArray (-1, [this.getTitle ()])), overview.getPreferredSize ().width, overview.getPreferredSize ().height + 50);
+frame.pack ();
+var ap = this.alignPanel;
+frame.addWindowListener (((Clazz_isClassDefined ("jalview.appletgui.AlignFrame$1") ? 0 : jalview.appletgui.AlignFrame.$AlignFrame$1$ ()), Clazz_innerTypeInstance (jalview.appletgui.AlignFrame$1, this, Clazz_cloneFinals ("ap", ap))));
+this.alignPanel.setOverviewPanel (overview);
+});
+Clazz_overrideMethod (c$, "changeColour", 
+function (cs) {
+var threshold = 0;
+if (cs != null) {
+if (this.viewport.getAbovePIDThreshold ()) {
+this.viewport.setThreshold (jalview.appletgui.SliderPanel.setPIDSliderSource (this.alignPanel, cs, "Background"));
+}if (this.viewport.getConservationSelected ()) {
+cs.setConservationApplied (true);
+this.viewport.setIncrement (jalview.appletgui.SliderPanel.setConservationSlider (this.alignPanel, cs, "Background"));
+} else {
+cs.setConservationApplied (false);
+}}this.viewport.setGlobalColourScheme (cs);
+if (this.alignPanel.getOverviewPanel () != null) {
+this.alignPanel.getOverviewPanel ().updateOverviewImage ();
+}jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.viewport.applet).sequenceColoursChanged (this.alignPanel);
+this.alignPanel.paintAlignment (true);
+}, "jalview.schemes.ColourSchemeI");
+Clazz_defineMethod (c$, "modifyPID_actionPerformed", 
+function () {
+if (this.viewport.getAbovePIDThreshold () && this.viewport.getGlobalColourScheme () != null) {
+jalview.appletgui.SliderPanel.setPIDSliderSource (this.alignPanel, this.viewport.getGlobalColourScheme (), "Background");
+jalview.appletgui.SliderPanel.showPIDSlider ();
+}});
+Clazz_defineMethod (c$, "modifyConservation_actionPerformed", 
+function () {
+if (this.viewport.getConservationSelected () && this.viewport.getGlobalColourScheme () != null) {
+jalview.appletgui.SliderPanel.setConservationSlider (this.alignPanel, this.viewport.getGlobalColourScheme (), "Background");
+jalview.appletgui.SliderPanel.showConservationSlider ();
+}});
+Clazz_defineMethod (c$, "conservationMenuItem_actionPerformed", 
+function () {
+this.viewport.setConservationSelected (this.conservationMenuItem.getState ());
+this.viewport.setAbovePIDThreshold (false);
+this.abovePIDThreshold.setState (false);
+this.changeColour (this.viewport.getGlobalColourScheme ());
+this.modifyConservation_actionPerformed ();
+});
+Clazz_defineMethod (c$, "abovePIDThreshold_actionPerformed", 
+function () {
+th