Blob Blame History Raw
--- src/org/jmol/adapter/readers/cif/CifReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/cif/CifReader.java	2021-11-29 14:03:35.562101209 -0700
@@ -762,7 +762,7 @@ public class CifReader extends AtomSetCo
 
   /**
    * 
-   * the PDB transformation matrix cartesian --> fractional
+   * the PDB transformation matrix cartesian → fractional
    * 
    * @throws Exception
    */
@@ -1991,7 +1991,7 @@ public class CifReader extends AtomSetCo
    * uncertainty (dx) in the record. Note that this also "connects" the atoms
    * that might have been moved in a previous iteration.
    * 
-   * Also connect H atoms based on a distance <= 1.1 Angstrom from a nearby
+   * Also connect H atoms based on a distance &le; 1.1 Angstrom from a nearby
    * atom.
    * 
    * Then create molecules.
--- src/org/jmol/adapter/readers/cif/MMCifReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/cif/MMCifReader.java	2021-11-29 14:03:35.562101209 -0700
@@ -463,7 +463,7 @@ public class MMCifReader extends CifRead
   };
 
   /**
-   * get canonical 1-letter DNA/RNA sequence code from 3-letter code. For example, "2MG" --> "G" 
+   * get canonical 1-letter DNA/RNA sequence code from 3-letter code. For example, "2MG" &rarr; "G"
    * @return true
    * @throws Exception
    */
--- src/org/jmol/adapter/readers/cif/MSRdr.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/cif/MSRdr.java	2021-11-29 14:03:35.562101209 -0700
@@ -340,7 +340,7 @@ public class MSRdr implements MSInterfac
 
   /**
    * Create a script that will run to turn modulation on and to display only
-   * atoms with modulated occupancy >= 0.5.
+   * atoms with modulated occupancy &ge; 0.5.
    * 
    */
   @Override
--- src/org/jmol/adapter/readers/molxyz/MolReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/molxyz/MolReader.java	2021-11-29 14:03:35.563101209 -0700
@@ -49,7 +49,7 @@ import org.jmol.util.Logger;
  * 
  * setAtomCoord(atom, x, y, z) applySymmetryAndSetTrajectory()
  * 
- * simple 2D-->3D conversion using
+ * simple 2D&rarr;3D conversion using
  * 
  * load "xxx.mol" FILTER "2D"
  * 
--- src/org/jmol/adapter/readers/molxyz/V3000Rdr.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/molxyz/V3000Rdr.java	2021-11-29 14:03:35.563101209 -0700
@@ -37,7 +37,7 @@ import org.jmol.adapter.smarter.AtomSetC
  * <p>
  * <a href='http://www.mdli.com/downloads/public/ctfile/ctfile.jsp'>
  * http://www.mdli.com/downloads/public/ctfile/ctfile.jsp </a>
- * <p>
+ * </p>
  */
 public class V3000Rdr {
   private MolReader mr;
--- src/org/jmol/adapter/readers/more/AFLOWReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/more/AFLOWReader.java	2021-11-29 14:03:35.563101209 -0700
@@ -22,7 +22,7 @@ import org.jmol.util.Logger;
  * 
  * or, in Jmol, from:
  * 
- *  print load("http://aflowlib.mems.duke.edu/php/apool.php?POST?job=awrapper_apool&lattice=all&alloy=AgAu")
+ *  print load("http://aflowlib.mems.duke.edu/php/apool.php?POST?job=awrapper_apool&amp;lattice=all&amp;alloy=AgAu")
  * 
  * Unit cells are centered.
  * 
--- src/org/jmol/adapter/readers/more/JcampdxReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/more/JcampdxReader.java	2021-11-29 14:03:35.563101209 -0700
@@ -49,34 +49,33 @@ import org.jmol.viewer.JC;
  * 
  * specifications (by example here):
  * 
- * ##$MODELS= <Models> <ModelData id="acetophenone" type="MOL"> acetophenone
+ * ##$MODELS= &lt;Models&gt; &lt;ModelData id="acetophenone" type="MOL"&gt; acetophenone
  * DSViewer 3D 0
  * 
- * 17 17 0 0 0 0 0 0 0 0999 V2000 ... 17 14 1 0 0 0 M END </ModelData>
- * <ModelData id="irvibs" type="XYZVIB" baseModel="acetophenone"
- * vibrationScale="0.1"> 17 1 Energy: -1454.38826 Freq: 3199.35852 C -1.693100
- * 0.007800 0.000000 -0.000980 0.000120 0.000000 ... </ModelData> </Models>
+ * 17 17 0 0 0 0 0 0 0 0999 V2000 ... 17 14 1 0 0 0 M END &lt;/ModelData&gt;
+ * &lt;ModelData id="irvibs" type="XYZVIB" baseModel="acetophenone"
+ * vibrationScale="0.1"&gt; 17 1 Energy: -1454.38826 Freq: 3199.35852 C -1.693100
+ * 0.007800 0.000000 -0.000980 0.000120 0.000000 ... &lt;/ModelData&gt; &lt;/Models&gt;
  * 
  * -- All XML data should be line-oriented in the above fashion. Leading spaces
- * will be ignored. -- Any number of <ModelData> segments can be present -- The
+ * will be ignored. -- Any number of &lt;ModelData&gt; segments can be present -- The
  * first model is referred to as the "base" model -- The base model: -- will
  * generally be of type MOL, but any known type is acceptable -- will be used to
  * generate bonding for later models that have no bonding information -- will be
  * the only model for NMR -- Additional models can represent vibrations (XYZ
  * format) or MS fragmentation (MOL format, probably)
  * 
- * ##$PEAKS= <Peaks type="IR" xUnits="1/cm" yUnits="TRANSMITTANCE" > <PeakData
+ * ##$PEAKS= &lt;Peaks type="IR" xUnits="1/cm" yUnits="TRANSMITTANCE" &gt; &lt;PeakData
  * id="1" title="asymm stretch of aromatic CH group (~3100 cm-1)"
  * peakShape="broad" model="irvibs.1" xMax="3121" xMin="3081" yMax="1" yMin="0"
- * /> <PeakData id="2" title="symm stretch of aromatic CH group (~3085 cm-1)"
+ * /&gt; &lt;PeakData id="2" title="symm stretch of aromatic CH group (~3085 cm-1)"
  * peakShape="broad" model="irvibs.2" xMax="3101" xMin="3071" yMax="1" yMin="0"
- * /> ... </Peaks>
+ * /&gt; ... &lt;/Peaks&gt;
  * 
  * -- peak record must be a single line of information because Jmol will use
  * line.trim() as a key to pass information to JSpecView.
  * 
  * 
- * <p>
  */
 
 public class JcampdxReader extends MolReader implements JmolJDXMOLReader {
@@ -309,7 +308,7 @@ public class JcampdxReader extends MolRe
   }
 
   /**
-   * integrate the <PeakAssignment> records into the associated models, and
+   * integrate the &lt;PeakAssignment&gt; records into the associated models, and
    * delete unreferenced n.m models
    */
   private void processPeakData() {
--- src/org/jmol/adapter/readers/more/MdTopReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/more/MdTopReader.java	2021-11-29 14:03:35.563101209 -0700
@@ -34,10 +34,6 @@ import org.jmol.util.Logger;
  * requires subsequent COORD "xxxx.mdcrd" file 
  * 
  *<p>
- * <a href=''>
- *  
- * </a>
- * 
  * PDB note:
  * 
  * Note that topology format does not include chain designations,
@@ -49,7 +45,7 @@ import org.jmol.util.Logger;
  * In principal we could use average atomic mass.
  * 
  * 
- *<p>
+ *</p>
  */
 
 public class MdTopReader extends ForceFieldReader {
--- src/org/jmol/adapter/readers/more/Mol2Reader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/more/Mol2Reader.java	2021-11-29 14:03:35.564101209 -0700
@@ -34,7 +34,7 @@ import org.jmol.api.JmolAdapter;
 /**
  * A minimal multi-file reader for TRIPOS SYBYL mol2 files.
  *<p>
- * <a href='http://www.tripos.com/data/support/mol2.pdf '>
+ * <a href='http://www.tripos.com/data/support/mol2.pdf'>
  * http://www.tripos.com/data/support/mol2.pdf 
  * </a>
  * 
@@ -48,7 +48,7 @@ import org.jmol.api.JmolAdapter;
  * 
  * Chains based on numbering reset just labeled A B C D .... Z a b c d .... z
  * 
- *<p>
+ *</p>
  */
 
 public class Mol2Reader extends ForceFieldReader {
--- src/org/jmol/adapter/readers/pdb/PdbReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/pdb/PdbReader.java	2021-11-29 14:03:35.564101209 -0700
@@ -63,7 +63,7 @@ import java.util.Map;
  * 
  * TLS Motion Determination:
  *  
- *    J Painter & E A Merritt (2006) Acta Cryst. D62, 439-450 
+ *    J Painter &amp; E A Merritt (2006) Acta Cryst. D62, 439-450 
  *    http://skuld.bmsc.washington.edu/~tlsmd
  *    
  * symmetry added by Bob Hanson:
--- src/org/jmol/adapter/readers/pymol/PickleReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/pymol/PickleReader.java	2021-11-29 14:03:35.564101209 -0700
@@ -21,7 +21,7 @@ import javajs.util.Lst;
  * 2013.04.06 -- added memo functions. PyMOL pickling is using LONG_BINPUT way too often. 
  * This results in a huge unnecessary memory overhead. My only solution is to only
  * cache Strings in memo, and then only selectively -- not parts of movie; not when 
- * markCount > 5 (residues). This seems to work, but it is still way overkill, since each 
+ * markCount &gt; 5 (residues). This seems to work, but it is still way overkill, since each 
  * atom generates several items.  
  * 
  * see http://www.picklingtools.com/
--- src/org/jmol/adapter/readers/pymol/PyMOL.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/pymol/PyMOL.java	2021-11-29 14:03:35.565101209 -0700
@@ -22,7 +22,7 @@ import org.jmol.util.Logger;
  *  with note therein:
  *  
  *     for i in cmd.get_color_indices(1):
- *      print>>fp, (
+ *      print&gt;&gt;fp, (
  *       ( i[1], i[0], ( int( cmd.get_color_tuple(i[0])[0]*255 ), 
  *                       int( cmd.get_color_tuple(i[0])[1]*255 ), 
  *                       int(cmd.get_color_tuple(i[0])[2]*255 ) 
--- src/org/jmol/adapter/readers/pymol/PyMOLReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/pymol/PyMOLReader.java	2021-11-29 14:03:35.565101209 -0700
@@ -55,12 +55,12 @@ import javajs.util.V3;
  * development started Feb 2013 Jmol 13.1.13
  * reasonably full implementation May 2013 Jmol 13.1.16
  * 
- * PyMOL state --> Jmol model 
- * PyMOL object --> Jmol named atom set, isosurface, CGO, or measurement 
- * PyMOL group --> Jmol named atom set (TODO: add isosurfaces and measures to these?) 
+ * PyMOL state &rarr; Jmol model 
+ * PyMOL object &rarr; Jmol named atom set, isosurface, CGO, or measurement 
+ * PyMOL group &rarr; Jmol named atom set (TODO: add isosurfaces and measures to these?) 
  * PyMOL movie: an initial view and a set of N "frames" 
  * PyMOL frame: references (a) a state, (b) a script, and (c) a view
- * PyMOL scene --> Jmol scene, including view, frame, visibilities, colors
+ * PyMOL scene &rarr; Jmol scene, including view, frame, visibilities, colors
  *
  * using set LOGFILE, we can dump this to a readable form.
  * 
--- src/org/jmol/adapter/readers/pymol/PyMOLScene.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/pymol/PyMOLScene.java	2021-11-29 14:03:35.566101209 -0700
@@ -846,7 +846,7 @@ class PyMOLScene implements JmolSceneGen
    * create all objects for a given molecule or scene
    * @param reps
    * @param allowSurface
-   * @param ac0     > 0 for a molecule; -1 for a scene
+   * @param ac0     &gt; 0 for a molecule; -1 for a scene
    * @param ac
    */
   void createShapeObjects(BS[] reps, boolean allowSurface, int ac0,
--- src/org/jmol/adapter/readers/quantum/AdfReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/AdfReader.java	2021-11-29 14:03:35.566101209 -0700
@@ -42,24 +42,24 @@ import java.util.Map;
  * 
  * A reader for ADF output.
  * Amsterdam Density Functional (ADF) is a quantum chemistry program
- * by Scientific Computing & Modelling NV (SCM)
+ * by Scientific Computing &amp; Modelling NV (SCM)
  * (http://www.scm.com/).
  *
  * <p> Molecular coordinates, energies, and normal coordinates of
  * vibrations are read. Each set of coordinates is added to the
  * ChemFile in the order they are found. Energies and vibrations
- * are associated with the previously read set of coordinates.
+ * are associated with the previously read set of coordinates.</p>
  *
  * <p> This reader was developed from a small set of
  * example output files, and therefore, is not guaranteed to
  * properly read all ADF output. If you have problems,
  * please contact the author of this code, not the developers
- * of ADF.
+ * of ADF.</p>
  *
  *<p> Added note (Bob Hanson) -- 1/1/2010 -- 
  *    Trying to implement reading of orbitals; ran into the problem
  *    that the atomic Slater description uses Cartesian orbitals,
- *    but the MO refers to spherical orbitals. 
+ *    but the MO refers to spherical orbitals.</p>
  *
  *
  * @author Bradley A. Smith (yeldar@home.com)
--- src/org/jmol/adapter/readers/quantum/BasisFunctionReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/BasisFunctionReader.java	2021-11-29 14:03:35.566101209 -0700
@@ -40,7 +40,7 @@ import java.util.Map;
 
 /**
  * 
- * @author hansonr <hansonr@stolaf.edu>
+ * @author hansonr &lt;hansonr@stolaf.edu&gt;
  */
 public abstract class BasisFunctionReader extends AtomSetCollectionReader {
 
--- src/org/jmol/adapter/readers/quantum/CsfReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/CsfReader.java	2021-11-29 14:03:35.566101209 -0700
@@ -47,7 +47,7 @@ import org.jmol.util.Logger;
  * streamlined CSF dataset reading capabilities 2007/04/09
  * 
  * 
- * @author hansonr <hansonr@stolaf.edu>
+ * @author hansonr &lt;hansonr@stolaf.edu&gt;
  */
 public class CsfReader extends MopacSlaterReader {
 
--- src/org/jmol/adapter/readers/quantum/MoldenReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/MoldenReader.java	2021-11-29 14:03:35.567101209 -0700
@@ -20,7 +20,7 @@ import org.jmol.util.Logger;
  * A molecular structure and orbital reader for MolDen files.
  * See http://www.cmbi.ru.nl/molden/molden_format.html
  * 
- * updated by Bob Hanson <hansonr@stolaf.edu> for Jmol 12.0/12.1
+ * updated by Bob Hanson &lt;hansonr@stolaf.edu&gt; for Jmol 12.0/12.1
  * 
  * adding [spacegroup] [operators] [cell] [cellaxes] for Jmol 14.3.7 
  * 
@@ -28,7 +28,7 @@ import org.jmol.util.Logger;
  *  -- optional zeta in ANGS
  *  -- optional mopac scaling
  * 
- * @author Matthew Zwier <mczwier@gmail.com>
+ * @author Matthew Zwier &lt;mczwier@gmail.com&gt;
  */
 
 public class MoldenReader extends MopacSlaterReader {
--- src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java	2021-11-29 14:03:35.567101209 -0700
@@ -34,7 +34,7 @@ import org.jmol.adapter.smarter.Atom;
 /**
  * Reads Mopac 2007 GRAPHF output files
  *
- * @author Bob Hanson <hansonr@stolaf.edu>
+ * @author Bob Hanson &lt;hansonr@stolaf.edu&gt;
  * 
  */
 public class MopacGraphfReader extends MopacSlaterReader {
--- src/org/jmol/adapter/readers/quantum/MopacSlaterReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/MopacSlaterReader.java	2021-11-29 14:03:35.567101209 -0700
@@ -30,7 +30,7 @@ import org.jmol.adapter.smarter.Atom;
 
 /**
  * 
- * @author hansonr <hansonr@stolaf.edu>
+ * @author hansonr &lt;hansonr@stolaf.edu&gt;
  */
 abstract class MopacSlaterReader extends SlaterReader {
 
--- src/org/jmol/adapter/readers/quantum/QCJSONReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/QCJSONReader.java	2021-11-29 14:03:35.567101209 -0700
@@ -18,11 +18,11 @@ import org.qcschema.QCSchemaUnits;
  * A molecular structure and orbital reader for MolDen files.
  * See http://www.cmbi.ru.nl/molden/molden_format.html
  * 
- * updated by Bob Hanson <hansonr@stolaf.edu> for Jmol 12.0/12.1
+ * updated by Bob Hanson &lt;hansonr@stolaf.edu&gt; for Jmol 12.0/12.1
  * 
  * adding [spacegroup] [operators] [cell] [cellaxes] for Jmol 14.3.7 
  * 
- * @author Matthew Zwier <mczwier@gmail.com>
+ * @author Matthew Zwier &lt;mczwier@gmail.com&gt;
  */
 
 public class QCJSONReader extends MoldenReader {
--- src/org/jmol/adapter/readers/quantum/SlaterReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/SlaterReader.java	2021-11-29 14:03:35.568101209 -0700
@@ -35,7 +35,7 @@ import java.util.Map;
 
 /**
  * 
- * @author hansonr <hansonr@stolaf.edu>
+ * @author hansonr &lt;hansonr@stolaf.edu&gt;
  */
 abstract class SlaterReader extends MOReader {
 
@@ -59,8 +59,8 @@ abstract class SlaterReader extends MORe
    * 
    *  psi = (coef)(x^a)(y^b)(z^c)(r^d)exp(-zeta*r)
    * 
-   *  Mopac: a == -2 ==> z^2 ==> (coef)(2z^2-x^2-y^2)(r^d)exp(-zeta*r)
-   *    and: b == -2 ==> (coef)(x^2-y^2)(r^d)exp(-zeta*r)
+   *  Mopac: a == -2 &rarr; z^2 &rarr; (coef)(2z^2-x^2-y^2)(r^d)exp(-zeta*r)
+   *    and: b == -2 &rarr; (coef)(x^2-y^2)(r^d)exp(-zeta*r)
    *    
    * @param iAtom now 1-based
    * @param a
--- src/org/jmol/adapter/readers/quantum/WebMOReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/quantum/WebMOReader.java	2021-11-29 14:03:35.568101209 -0700
@@ -46,7 +46,7 @@ import org.jmol.util.Logger;
  * </a>
  * 
  * right now WebMO files don't allow for multiple MOS, but we will assume here that that may change.
- *<p>
+ *</p>
  */
 public class WebMOReader extends MopacSlaterReader {
 
--- src/org/jmol/adapter/readers/simple/GhemicalMMReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/simple/GhemicalMMReader.java	2021-11-29 14:03:35.568101209 -0700
@@ -67,7 +67,7 @@ import org.jmol.api.JmolAdapter;
  * !End
  * </code>
  *
- * @author Egon Willighagen <egonw@sci.kun.nl>
+ * @author Egon Willighagen &lt;egonw@sci.kun.nl&gt;
  */
 public class GhemicalMMReader extends AtomSetCollectionReader {
     
--- src/org/jmol/adapter/readers/simple/HyperChemReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/simple/HyperChemReader.java	2021-11-29 14:03:35.568101209 -0700
@@ -32,7 +32,7 @@ import org.jmol.api.JmolAdapter;
 /**
  * Support for .hin, HyperChem's native file format.
  * http://www.hyper.com
- * <p />
+ * <p>
  * Record format is:
  * <code>
  * atom 1 - C ** - -0.06040 0.00000 0.00000 0.00000 3 2 a 6 a 38 s
@@ -40,8 +40,8 @@ import org.jmol.api.JmolAdapter;
  * atom 67 - H ** - 0.17710 -7.10260 -3.74840 2.24660 1 34 s
  * endmol 1
  * </code>
- * interesting fields are partialCharge, x, y, z, bondCount<br />
- * bonds are atom number and s/d/t/a for single/double/triple/aromatic
+ * interesting fields are partialCharge, x, y, z, bondCount<br>
+ * bonds are atom number and s/d/t/a for single/double/triple/aromatic</p>
  */
 public class HyperChemReader extends AtomSetCollectionReader {
   
--- src/org/jmol/adapter/readers/simple/MopacReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/simple/MopacReader.java	2021-11-29 14:03:35.568101209 -0700
@@ -34,7 +34,7 @@ import org.jmol.util.Logger;
 /**
  * Reads Mopac 93, 6, 7, 2002, or 2009 output files
  *
- * @author Egon Willighagen <egonw@jmol.org>
+ * @author Egon Willighagen &lt;egonw@jmol.org&gt;
  */
 public class MopacReader extends AtomSetCollectionReader {
     
--- src/org/jmol/adapter/readers/xtal/CrystalReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/adapter/readers/xtal/CrystalReader.java	2021-11-29 14:03:35.569101209 -0700
@@ -73,7 +73,7 @@ import org.jmol.util.Tensor;
  *          mat4CrystalToPrimitive M4 convenience inverse of
  *          mat4PrimitiveToCrystal
  * 
- *          fileSymmetryOperations List<String> symmetry operators (primitive)
+ *          fileSymmetryOperations List&lt;String&gt; symmetry operators (primitive)
  * 
  *          Drawing primitive unitcell operations:
  * 
@@ -95,7 +95,7 @@ import org.jmol.util.Tensor;
  * 
  *          load "xxx.out" n
  * 
- *          as for all readers, where n is an integer > 0
+ *          as for all readers, where n is an integer &gt; 0
  * 
  *          for final optimized geometry use
  * 
@@ -1047,7 +1047,7 @@ public class CrystalReader extends AtomS
   /**
    * Read the lattice parameters.
    * 
-   * @param isNewSet
+   * @param isPrimitive
    * @throws Exception
    */
   private void readLatticeParams(boolean isPrimitive) throws Exception {
--- src/org/jmol/api/JmolViewer.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/api/JmolViewer.java	2021-11-29 14:03:35.569101209 -0700
@@ -414,7 +414,7 @@ abstract public class JmolViewer {
    * NOTE: THIS METHOD DOES NOT PRESERVE THE STATE
    * 
    * @param arrayData a Vector of models, where each model is either a String
-   *                  or a String[] or a Vector<String>
+   *                  or a String[] or a Vector&lt;String&gt;
    * @param isAppend TRUE to append models (no ZAP)
    * @return null or error message
    */
--- src/org/jmol/awt/FileDropper.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/awt/FileDropper.java	2021-11-29 14:03:35.569101209 -0700
@@ -55,7 +55,7 @@ import javajs.util.SB;
  * <p>
  * Note that multiple drops ARE thread safe.
  * 
- * @author Billy <simon.tyrrell@virgin.net>
+ * @author Billy &lt;simon.tyrrell@virgin.net&gt;
  */
 public class FileDropper implements DropTargetListener {
   private String fd_oldFileName;
--- src/org/jmol/awtjs2d/Platform.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/awtjs2d/Platform.java	2021-11-29 14:03:35.569101209 -0700
@@ -28,11 +28,11 @@ import javajs.util.SB;
 /**
  * JavaScript 2D canvas version requires Ajax-based URL stream processing.
  * 
- * Jmol "display" --> HTML5 "canvas"
- * Jmol "image" --> HTML5 "canvas" (because we need width and height)
- * Jmol "graphics" --> HTML5 "context(2d)" (one for display, one off-screen for fonts)
- * Jmol "font" --> JmolFont
- * Jmol "fontMetrics" --> HTML5 "context(2d)"
+ * Jmol "display" &rarr; HTML5 "canvas"
+ * Jmol "image" &rarr; HTML5 "canvas" (because we need width and height)
+ * Jmol "graphics" &rarr; HTML5 "context(2d)" (one for display, one off-screen for fonts)
+ * Jmol "font" &rarr; JmolFont
+ * Jmol "fontMetrics" &rarr; HTML5 "context(2d)"
  * (Not fully implemented) 
  * 
  * @author Bob Hanson
--- src/org/jmol/awtjs/swing/SwingController.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/awtjs/swing/SwingController.java	2021-11-29 14:03:35.570101209 -0700
@@ -26,7 +26,7 @@ public interface SwingController {
    *   var component = Jmol.Swing.htDialogs[element.id];
    *   var info = component.toString();
    *   
-   * if (info.indexOf("JCheck") >= 0)
+   * if (info.indexOf("JCheck") &ge; 0)
    *     component.selected = element.checked;
    * var id = $("div.JDialog:has(#" + element.id + ")")[0].id
    * var dialog = Jmol.Swing.htDialogs[id];
--- src/org/jmol/bspt/Bspt.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/bspt/Bspt.java	2021-11-29 14:03:35.570101209 -0700
@@ -46,13 +46,15 @@ import javajs.util.T3;
  * We are working with three dimensions. For the purposes of the Bspt code these
  * dimensions are stored as 0, 1, or 2. Each node of the tree splits along the
  * next dimension, wrapping around to 0.
+ * </p>
  * 
  * <pre>
  * mySplitDimension = (parentSplitDimension + 1) % 3;
  * </pre>
  * 
- * A split value is stored in the node. Values which are <= splitValue are
- * stored down the left branch. Values which are >= splitValue are stored down
+ * <p>
+ * A split value is stored in the node. Values which are &le; splitValue are
+ * stored down the left branch. Values which are &ge; splitValue are stored down
  * the right branch. If searchValue == splitValue then the search must proceed
  * down both branches.
  *</p>
--- src/org/jmol/bspt/PointIterator.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/bspt/PointIterator.java	2021-11-29 14:03:35.570101209 -0700
@@ -39,7 +39,7 @@ public class PointIterator {
    * @param pt  if not null and pt.x == Float.NaN, this is an internal comparison, to return a "cleaned" list of points
    * @param ap3 the list of points, required
    * @param ap31 a second list of points, optional
-   * @param ret null, "", int[], Lst<T3>, or P3 
+   * @param ret null, "", int[], Lst&lt;T3&gt;, or P3 
    * @return T.nada, T.string, T.array, T.list, T.point 
    */
   public static int withinDistPoints(float distance, P3 pt, P3[] ap3, P3[] ap31, Object[] ret) {
--- src/org/jmol/dssx/AnnotationParser.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/dssx/AnnotationParser.java	2021-11-29 14:03:35.570101209 -0700
@@ -309,7 +309,7 @@ public class AnnotationParser implements
   }
 
   /**
-   * Returns a Lst<Object> of property data in the form name(String),
+   * Returns a Lst&lt;Object&gt; of property data in the form name(String),
    * data(float[]), modelIndex (Integer), isGroup (Boolean);
    * 
    */
--- src/org/jmol/dssx/DSSP.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/dssx/DSSP.java	2021-11-29 14:03:35.570101209 -0700
@@ -363,9 +363,9 @@ public class DSSP {
    * the interatomic distance from A to B. In chemical units, r is in angstroms,
    * the dimensional factor f = 332, and E is in kcal/mol. We ... assign an H
    * bond between C=O of residue i and N-H of residue j if E is less than the
-   * cutoff, i.e., "Hbond(i,j) =: [E < -0.5 kcal/mol]."
+   * cutoff, i.e., "Hbond(i,j) =: [E &lt; -0.5 kcal/mol]."
    * 
-   * @return array of dual-minmum NH-->O=C H bonds
+   * @return array of dual-minmum NH&rarr;O=C H bonds
    * 
    */
   private int[][][][] getDualHydrogenBondArray() {
@@ -704,9 +704,9 @@ public class DSSP {
    * 
    * A basic turn pattern (Fig. 2) is a single H bond of type (i,i+n). We
    * assign an n-turn at residue i if there is an H bond from CO(i) to NH(i+n)....
-   *   When the pattern is found, the ends of the H bond are indicated using ">" at i
-   * and "<" at i+n...; the residues bracketed by the H bond are noted "3," "4," or "5"
-   * unless they are also end points of other H bonds. Coincidence of ">" and "<" at
+   *   When the pattern is found, the ends of the H bond are indicated using "&gt;" at i
+   * and "&lt;" at i+n...; the residues bracketed by the H bond are noted "3," "4," or "5"
+   * unless they are also end points of other H bonds. Coincidence of "&gt;" and "&lt;" at
    * one residue is indicated by "X." ... Residues bracketed by the hydrogen bond
    * are marked "T," unless they are part of an n-helix (defined below). 
    * 
--- src/org/jmol/i18n/Language.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/i18n/Language.java	2021-11-29 14:03:35.571101209 -0700
@@ -135,7 +135,7 @@ public class Language {
    * @param nativeLanguage Language name in its own language (see ISO 639-1 for the values)
    * @param display True if this language has a good percentage of translations done
    * 
-   * {@link "http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes"}
+   * See <a href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">the list of ISO-639-1 codes</a>.
    */
   private Language(String code, String language, String nativeLanguage, boolean display) {
     this.code = code;
--- src/org/jmol/jvxl/api/VertexDataServer.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/jvxl/api/VertexDataServer.java	2021-11-29 14:03:35.571101209 -0700
@@ -42,7 +42,7 @@ public interface VertexDataServer {
    * where fraction is generally calculated as:
    * 
    *  fraction = (cutoff - valueA) / (valueB - valueA);
-   *  if (isCutoffAbsolute && (fraction < 0 || fraction > 1))
+   *  if (isCutoffAbsolute &amp;&amp; (fraction &lt; 0 || fraction &gt; 1))
    *  fraction = (-cutoff - valueA) / (valueB - valueA);
    *  
    *  This method is also used by MarchingCubes to deliver the appropriate
--- src/org/jmol/jvxl/data/JvxlCoder.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/jvxl/data/JvxlCoder.java	2021-11-29 14:03:35.571101209 -0700
@@ -447,12 +447,14 @@ public class JvxlCoder {
 
   /**
    * contour data are appended to a string buffer in the form of a 
-   * <jmolContourData count="[nContours]">
-   *   <jmolContour index="0" value="-0.033" color="[xff0000]" encoding="base90iff1" data="fractional data">triangle bitset data</jmolContour>
-   *   <jmolContour index="1" value=" 0.000" color="[xffff00]" encoding="base90iff1" data="fractional data">triangle bitset data</jmolContour>
-   *   <jmolContour index="2" value=" 0.033" color="[x00ffff]" encoding="base90iff1" data="fractional data">triangle bitset data</jmolContour>
+   * <pre>
+   * &lt;jmolContourData count="[nContours]"&gt;
+   *   &lt;jmolContour index="0" value="-0.033" color="[xff0000]" encoding="base90iff1" data="fractional data"&gt;triangle bitset data&lt;/jmolContour&gt;
+   *   &lt;jmolContour index="1" value=" 0.000" color="[xffff00]" encoding="base90iff1" data="fractional data"&gt;triangle bitset data&lt;/jmolContour&gt;
+   *   &lt;jmolContour index="2" value=" 0.033" color="[x00ffff]" encoding="base90iff1" data="fractional data"&gt;triangle bitset data&lt;/jmolContour&gt;
    *   ...
-   * </jmolContourData>
+   * &lt;/jmolContourData&gt;
+   * </pre>
    * 
    * One presumes an ordered set of triangles.
    * The contour intersects these triangles along two edges or at two vertices. 
@@ -688,7 +690,7 @@ public class JvxlCoder {
    *    
    *    ASCII:
    *    -30       -20       -10         0       +10       +20       +30      
-   *    <=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|
+   *    &lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|
    *    
    *    So the above sequence would simply be:
    *    
@@ -796,8 +798,8 @@ public class JvxlCoder {
    * 
    * The tag will indicate the minimum and maximum values:
    * 
-   * <jvxlVertexData count="150" min="(15.218472, -28.304049, 34.71112)"
-   * max="(97.8228, 54.011948, 109.95208)" data="...."> </jvxlVertexData>
+   * &lt;jvxlVertexData count="150" min="(15.218472, -28.304049, 34.71112)"
+   * max="(97.8228, 54.011948, 109.95208)" data="...."&gt; &lt;/jvxlVertexData&gt;
    * 
    * The resultant string is really two strings of length nData where the first
    * string lists the "high" part of the positions, and the second string lists
--- src/org/jmol/jvxl/data/VolumeData.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/jvxl/data/VolumeData.java	2021-11-29 14:03:35.571101209 -0700
@@ -428,7 +428,7 @@ public class VolumeData {
    * periodic grids should have val[0] == val[xMax]
    * 
    * voxelCount: 1....2....3....4....5 xMax/index: 0....1....2....3....4....
-   * nonper. ^ ---> [0,0] ^ --> [4, 4] periodic ^ ---> [3,4] ^ --> [0, 1]
+   * nonper. ^ &rarr; [0,0] ^ &rarr; [4, 4] periodic ^ &rarr; [3,4] ^ &rarr; [0, 1]
    * 
    * @param x
    * @param xMax
--- src/org/jmol/jvxl/readers/BCifDensityReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/jvxl/readers/BCifDensityReader.java	2021-11-29 14:03:35.571101209 -0700
@@ -43,7 +43,7 @@ import org.jmol.util.Logger;
  * Binary CIF density reader. See https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box, 
  * for example:
  * 
- *  https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/-0.4130001,59.607,68.124?space=cartesian&encoding=bcif
+ *  https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/-0.4130001,59.607,68.124?space=cartesian&amp;encoding=bcif
  *  
  * Reads a MessagePack file and extracts either 2Fo-Fc or Fo-Fc.
  *
--- src/org/jmol/jvxl/readers/CifDensityReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/jvxl/readers/CifDensityReader.java	2021-11-29 14:03:35.571101209 -0700
@@ -36,7 +36,7 @@ import javajs.util.PT;
  * CIF density reader. See https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box, 
  * for example:
  * 
- *  https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/-0.4130001,59.607,68.124?space=cartesian&encoding=cif
+ *  https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/-0.4130001,59.607,68.124?space=cartesian&amp;encoding=cif
  *  
  * Extends BCifDensityReader just enough to handle nonbinary CIF data.
  *
--- src/org/jmol/jvxl/readers/JvxlXmlReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/jvxl/readers/JvxlXmlReader.java	2021-11-29 14:03:35.572101209 -0700
@@ -748,7 +748,7 @@ public class JvxlXmlReader extends Volum
 
   /**
    * retrieve Jvxl 2.0 format vertex/triangle/edge/color data found
-   * within <jvxlSurfaceData> element 
+   * within &lt;jvxlSurfaceData&gt; element 
    * 
    * @throws Exception
    */
@@ -790,7 +790,7 @@ public class JvxlXmlReader extends Volum
   }
 
   /**
-   * decode vertex data found within <jvxlVertexData> element as created by
+   * decode vertex data found within &lt;jvxlVertexData&gt; element as created by
    * jvxlEncodeVertexData (see above)
    * 
    * @param data
@@ -855,7 +855,7 @@ public class JvxlXmlReader extends Volum
   }
 
   /**
-   * decode triangle data found within <jvxlTriangleData> element as created
+   * decode triangle data found within &lt;jvxlTriangleData&gt; element as created
    * with jvxlEncodeTriangleData (see above)
    * 
    * @param tdata
--- src/org/jmol/jvxl/readers/KinemageReader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/jvxl/readers/KinemageReader.java	2021-11-29 14:03:35.572101209 -0700
@@ -219,7 +219,7 @@ class KinemageReader extends PmeshReader
      */
 
     /**
-     * C++ code gives these as " value > x.x ? "xxxxx", etc. 
+     * C++ code gives these as " value &gt; x.x ? "xxxxx", etc.,
      * so technically we are off by a smidgeon. But they are the
      * reference numbers, so we will use them inclusively instead.
      * 
--- src/org/jmol/minimize/forcefield/ForceFieldMMFF.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/minimize/forcefield/ForceFieldMMFF.java	2021-11-29 14:03:35.572101209 -0700
@@ -64,7 +64,7 @@ import javajs.util.PT;
  *   
  *    T. A. Halgren; "Merck Molecular Force Field. V. Extension of MMFF94 
  *      Using Experimental Data, Additional Computational Data, 
- *      and Empirical Rules", J. Comp. Chem. 5 & 6 616-641 (1996).
+ *      and Empirical Rules", J. Comp. Chem. 5 &amp; 6 616-641 (1996).
  *
  * Parameter files are clipped from the original Wiley FTP site supplemental material:
  * 
@@ -73,17 +73,17 @@ import javajs.util.PT;
  * Original work, as listed at http://towhee.sourceforge.net/forcefields/mmff94.html:
  * 
  *    T. A. Halgren; "Merck Molecular Force Field. I. Basis, Form, Scope, 
- *      Parameterization, and Performance of MMFF94", J. Comp. Chem. 5 & 6 490-519 (1996).
+ *      Parameterization, and Performance of MMFF94", J. Comp. Chem. 5 &amp; 6 490-519 (1996).
  *    T. A. Halgren; "Merck Molecular Force Field. II. MMFF94 van der Waals 
  *      and Electrostatic Parameters for Intermolecular Interactions", 
- *      J. Comp. Chem. 5 & 6 520-552 (1996).
+ *      J. Comp. Chem. 5 &amp; 6 520-552 (1996).
  *    T. A. Halgren; "Merck Molecular Force Field. III. Molecular Geometries and 
- *      Vibrational Frequencies for MMFF94", J. Comp. Chem. 5 & 6 553-586 (1996).
+ *      Vibrational Frequencies for MMFF94", J. Comp. Chem. 5 &amp; 6 553-586 (1996).
  *    T. A. Halgren; R. B. Nachbar; "Merck Molecular Force Field. IV. 
- *      Conformational Energies and Geometries for MMFF94", J. Comp. Chem. 5 & 6 587-615 (1996).
+ *      Conformational Energies and Geometries for MMFF94", J. Comp. Chem. 5 &amp; 6 587-615 (1996).
  *    T. A. Halgren; "Merck Molecular Force Field. V. Extension of MMFF94 
  *      Using Experimental Data, Additional Computational Data, 
- *      and Empirical Rules", J. Comp. Chem. 5 & 6 616-641 (1996).
+ *      and Empirical Rules", J. Comp. Chem. 5 &amp; 6 616-641 (1996).
  *    T. A. Halgren; "MMFF VII. Characterization of MMFF94, MMFF94s, 
  *      and Other Widely Available Force Fields for Conformational Energies 
  *      and for Intermolecular-Interaction Energies and Geometries", 
--- src/org/jmol/minimize/Util.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/minimize/Util.java	2021-11-29 14:03:35.572101209 -0700
@@ -119,7 +119,7 @@ public class Util {
 
   /**
    * 
-   * calculates angle of a to plane bcd, returning a value > pi/2 in 
+   * calculates angle of a to plane bcd, returning a value &gt; pi/2 in 
    * highly distorted trigonal pyramidal situations 
    * 
    * @param a
--- src/org/jmol/modelsetbio/AlphaPolymer.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/modelsetbio/AlphaPolymer.java	2021-11-29 14:03:35.572101209 -0700
@@ -143,12 +143,13 @@ public class AlphaPolymer extends BioPol
   /////////////////////////////////////////////////////////////
   
   /**
-   * Uses Levitt & Greer algorithm to calculate protein secondary
+   * Uses Levitt &amp; Greer algorithm to calculate protein secondary
    * structures using only alpha-carbon atoms.
    *<p>
-   * Levitt and Greer <br />
-   * Automatic Identification of Secondary Structure in Globular Proteins <br />
-   * J.Mol.Biol.(1977) 114, 181-293 <br />
+   * Levitt and Greer <br>
+   * Automatic Identification of Secondary Structure in Globular Proteins <br>
+   * J.Mol.Biol.(1977) 114, 181-293
+   *</p>
    *<p>
    * <a
    * href='http://csb.stanford.edu/levitt/Levitt_JMB77_Secondary_structure.pdf'>
--- src/org/jmol/modelsetbio/AminoPolymer.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/modelsetbio/AminoPolymer.java	2021-11-29 14:03:35.573101209 -0700
@@ -279,7 +279,7 @@ public class AminoPolymer extends AlphaP
    * checkDistances: 
    * 
    * When we are seriously looking for H bonds, we want to 
-   * also check that distCN > distCH and that the OH distance
+   * also check that distCN &gt; distCH and that the OH distance
    * is less than 3 Angstroms. Otherwise that's just too strange 
    * a hydrogen bond. (We get hydrogen bonds from i to i+2, for example)
    * 
--- src/org/jmol/modelsetbio/BioResolver.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/modelsetbio/BioResolver.java	2021-11-29 14:03:35.573101209 -0700
@@ -1538,7 +1538,7 @@ public final class BioResolver implement
    * FF8060 - light tomato
    * 00FF7F - springgreen
    * 
-cpk on; select atomno>100; label %i; color chain; select selected & hetero; cpk off
+cpk on; select atomno&gt;100; label %i; color chain; select selected &amp; hetero; cpk off
    ****************************************************************/
 
   private final static int[] argbsChainAtom = {
--- src/org/jmol/modelsetbio/Monomer.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/modelsetbio/Monomer.java	2021-11-29 14:03:35.573101209 -0700
@@ -55,7 +55,7 @@ import java.util.Map;
 public abstract class Monomer extends Group {
 
   /**
-   * @j2sIngore
+   * @j2sIgnore
    */
 
   public Monomer() {  
--- src/org/jmol/modelset/Group.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/modelset/Group.java	2021-11-29 14:03:35.573101209 -0700
@@ -92,7 +92,7 @@ public class Group implements Structure
 
 
   /**
-   * @j2sIngore
+   * @j2sIgnore
    */
   public Group() {}
   
--- src/org/jmol/modelset/ModelLoader.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/modelset/ModelLoader.java	2021-11-29 14:03:35.574101209 -0700
@@ -675,7 +675,7 @@ public final class ModelLoader {
    * file * 1000000 + modelInFile (1-based)
    * 
    * Used all over the place. Note that if there is only one file, then
-   * modelFileNumber < 1000000.
+   * modelFileNumber &lt; 1000000.
    * 
    * String modelNumberDotted
    * 
--- src/org/jmol/modelset/ModelSet.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/modelset/ModelSet.java	2021-11-29 14:03:35.574101209 -0700
@@ -3800,7 +3800,7 @@ public class ModelSet extends BondCollec
    * 
    * @param pt point to invert around if not null
    * @param plane plane to invert across if not null
-   * @param iAtom atom to switch two groups on if >= 0
+   * @param iAtom atom to switch two groups on if &ge; 0
    * @param bsAtoms atoms to switch for the atom option
    */
   public void invertSelected(P3 pt, P4 plane, int iAtom, BS bsAtoms) {
--- src/org/jmol/multitouch/sparshui/TwoPointGesture.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/multitouch/sparshui/TwoPointGesture.java	2021-11-29 14:03:35.574101209 -0700
@@ -29,8 +29,8 @@ import com.sparshui.server.TouchPoint;
  * 
  * v00 from pt(1,0) to pt(2,0)
  * 
- * ZOOM IN:    <---- x ----->  (at any angle)
- * ZOOM OUT:   ----> x <-----  (at any angle)  
+ * ZOOM IN:    &lt;---- x -----&gt;  (at any angle)
+ * ZOOM OUT:   ----&gt; x &lt;-----  (at any angle)  
  * 
  * ROTATE CW:    ^        |
  *               |   x    |    (at any angle, not implemented)
@@ -42,9 +42,9 @@ import com.sparshui.server.TouchPoint;
  *    
  * 2-point drag:
  * 
- *      --------->  
+ *      ---------&gt;
  *     x             (any direction)
- *      --------->    
+ *      ---------&gt;
  *    
  * Bob Hanson 12/13/2009
  * 
--- src/org/jmol/popup/JmolPopup.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/popup/JmolPopup.java	2021-11-29 14:03:35.575101209 -0700
@@ -268,7 +268,7 @@ abstract public class JmolPopup extends
   }
 
   /**
-   * (1) setOption --> set setOption true or set setOption false
+   * (1) setOption &rarr; set setOption true or set setOption false
    * 
    * @param item
    * 
--- src/org/jmol/quantum/NciCalculation.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/quantum/NciCalculation.java	2021-11-29 14:03:35.575101209 -0700
@@ -361,7 +361,7 @@ public class NciCalculation extends Quan
    *  that are too far away to make a difference before we waste 
    *  time doing exponentiation.
    *  
-   *  If index >= 0, then this is just a check for intra- vs. inter-
+   *  If index &ge; 0, then this is just a check for intra- vs. inter-
    *  molecularity based on promolecular density. This is needed for 
    *  applying intra- and inter-molecular filters to SCF CUBE data.
    * 
--- src/org/jmol/quantum/NMRCalculation.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/quantum/NMRCalculation.java	2021-11-29 14:03:35.575101209 -0700
@@ -314,7 +314,7 @@ public class NMRCalculation implements J
   /**
    * Creates the data set necessary for doing NMR calculations. Values are
    * retrievable using getProperty "nmrInfo" "Xx"; each entry is
-   * float[+/-isotopeNumber, g, Q], where [0] < 0 for the default value.
+   * float[+/-isotopeNumber, g, Q], where [0] &lt; 0 for the default value.
    * 
    */
   @SuppressWarnings("resource")
--- src/org/jmol/quantum/NMRNoeMatrix.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/quantum/NMRNoeMatrix.java	2021-11-29 14:03:35.575101209 -0700
@@ -83,7 +83,7 @@ import org.jmol.viewer.Viewer;
  * if the atoms have not been set up properly.
  * 
  * @author YE91009
- * @created 28 February 2007
+ * @since 28 February 2007
  */
 public class NMRNoeMatrix {
   
--- src/org/jmol/scriptext/MathExt.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/scriptext/MathExt.java	2021-11-29 14:03:35.576101209 -0700
@@ -1912,7 +1912,7 @@ public class MathExt {
    * _(key) prepends "auxiliaryInfo.models", delivering a modelCount-length
    * array of information
    * 
-   * $ print _("aflowInfo[SELECT auid WHERE H__eV___VASP_ < 0]")
+   * $ print _("aflowInfo[SELECT auid WHERE H__eV___VASP_ &lt; 0]")
    * 
    * 
    * {atomset}._(key) selects for model Auxiliary info related to models of the
@@ -1923,9 +1923,9 @@ public class MathExt {
    * 
    * Examples:
    * 
-   * print _("aflowInfo[select sg where volume_cell > 70]")
+   * print _("aflowInfo[select sg where volume_cell &gt; 70]")
    * 
-   * print {model>10}._("aflowInfo[select sg where volume_cell > 70]")
+   * print {model&gt;10}._("aflowInfo[select sg where volume_cell &gt; 70]")
    * 
    * @param mp
    * @param args
@@ -2146,7 +2146,7 @@ public class MathExt {
   }
 
   /**
-   * [ {...},{...}... ] ==> [[...],[...]]
+   * [ {...},{...}... ] &rarr; [[...],[...]]
    * 
    * @param listIn
    * @param formatList
--- src/org/jmol/script/ScriptCompiler.java.orig	2021-11-29 14:03:35.576101209 -0700
+++ src/org/jmol/script/ScriptCompiler.java	2021-11-29 14:05:28.032096723 -0700
@@ -1081,7 +1081,7 @@ public class ScriptCompiler extends Scri
    * 
    * Check for special parameters, including:
    * 
-   * +, -, \, *, /, &, |, =, period, or [, single or double quote,
+   * +, -, \, *, /, &amp;, |, =, period, or [, single or double quote,
    * command-specific parameters, $.... identifiers, exponential notation,
    * decimal numbers, sequence codes, integers, bitsets ({....}) or [{....}], or
    * matrices
@@ -2514,7 +2514,7 @@ public class ScriptCompiler extends Scri
   /**
    * 
    * look for end-of-line character \r, \n, or ; that is not within a command
-   * such as for (var i=0;i < 10; i++)
+   * such as for (var i=0;i &lt; 10; i++)
    * 
    * @param ch
    * @return true if end of line
@@ -2689,7 +2689,7 @@ public class ScriptCompiler extends Scri
    * An "implied string" is a parameter that is not quoted but because of its
    * position in a command is implied to be a string. First we must exclude the
    * 
-   * @xxxx. Then we consume the entire math syntax @{......} or any set of
+   * {@literal @}xxxx. Then we consume the entire math syntax {@literal @}{......} or any set of
    *        characters not involving white space. echo, hover, message, and
    *        pause are odd-valued; no initial parsing of variables for them.
    * 
--- src/org/jmol/script/ScriptParam.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/script/ScriptParam.java	2021-11-29 14:03:35.577101209 -0700
@@ -1078,7 +1078,7 @@ abstract public class ScriptParam extend
   }
 
   /**
-   * reads standard n.m float-as-integer n*1000000 + m and returns (n % 7) << 5
+   * reads standard n.m float-as-integer n*1000000 + m and returns (n % 7) &lt;&lt; 5
    * + (m % 0x1F)
    * 
    * @param bondOrderInteger
--- src/org/jmol/shapebio/BioShape.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/shapebio/BioShape.java	2021-11-29 14:03:35.577101209 -0700
@@ -120,32 +120,32 @@ public class BioShape extends AtomShape
    * <a href='http://www.rcsb.org/pdb/lists/pdb-l/200303/000609.html'>
    * http://www.rcsb.org/pdb/lists/pdb-l/200303/000609.html
    * </a>
-   * <code>
-   * > -----Original Message-----
-   * > From: pdb-l-admin@sdsc.edu [mailto:pdb-l-admin@sdsc.edu] On 
-   * > Behalf Of Philipp Heuser
-   * > Sent: Thursday, March 27, 2003 6:05 AM
-   * > To: pdb-l@sdsc.edu
-   * > Subject: pdb-l: temperature factor; occupancy
-   * > 
-   * > 
-   * > Hi all!
-   * > 
-   * > Does anyone know where to find proper definitions for the 
-   * > temperature factors 
-   * > and the values for occupancy?
-   * > 
-   * > Alright I do know, that the atoms with high temperature 
-   * > factors are more 
-   * > disordered than others, but what does a temperature factor of 
-   * > a specific 
-   * > value mean exactly.
-   * > 
-   * > 
-   * > Thanks in advance!
-   * > 
-   * > Philipp
-   * > 
+   * <pre><code>
+   * &gt; -----Original Message-----
+   * &gt; From: pdb-l-admin@sdsc.edu [mailto:pdb-l-admin@sdsc.edu] On 
+   * &gt; Behalf Of Philipp Heuser
+   * &gt; Sent: Thursday, March 27, 2003 6:05 AM
+   * &gt; To: pdb-l@sdsc.edu
+   * &gt; Subject: pdb-l: temperature factor; occupancy
+   * &gt; 
+   * &gt; 
+   * &gt; Hi all!
+   * &gt; 
+   * &gt; Does anyone know where to find proper definitions for the 
+   * &gt; temperature factors 
+   * &gt; and the values for occupancy?
+   * &gt; 
+   * &gt; Alright I do know, that the atoms with high temperature 
+   * &gt; factors are more 
+   * &gt; disordered than others, but what does a temperature factor of 
+   * &gt; a specific 
+   * &gt; value mean exactly.
+   * &gt; 
+   * &gt; 
+   * &gt; Thanks in advance!
+   * &gt; 
+   * &gt; Philipp
+   * &gt; 
    * pdb-l: temperature factor; occupancy
    * Bernhard Rupp br@llnl.gov
    * Thu, 27 Mar 2003 08:01:29 -0800
@@ -154,7 +154,7 @@ public class BioShape extends AtomShape
    * * Next message: pdb-l: Structural alignment?
    * * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
    * 
-   * Isotropic B is defined as 8*pi**2<u**2>.
+   * Isotropic B is defined as 8*pi**2&lt;u**2&gt;.
    * 
    * Meaning: eight pi squared =79
    * 
@@ -174,7 +174,7 @@ public class BioShape extends AtomShape
    * for more examples.
    * 
    * BR
-   *</code>
+   *</code></pre>
    *
    * @param bFactor100
    * @return ?
--- src/org/jmol/shapespecial/Polyhedra.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/shapespecial/Polyhedra.java	2021-11-29 14:03:35.577101209 -0700
@@ -654,7 +654,7 @@ public class Polyhedra extends AtomShape
   /**
    * 
    * @param id  may be null
-   * @param iatom  may be < 0 to (along with id==null) to get matching polyhedron 
+   * @param iatom  may be &lt; 0 to (along with id==null) to get matching polyhedron 
    * @param allowCollapsed
    * @return Polyhedron or null
    */
@@ -1393,7 +1393,7 @@ public class Polyhedra extends AtomShape
    * Objective is to find all triangles with *essentially* the same normal and to 
    * then group them into a face. But we have to be careful here; not everything is 
    * perfect. We can have be so slightly off in a 4- or 6-face, and we still want it
-   * to be called a face. We allow a normal dot product (i.e. cos(theta)) to be < 0.05.
+   * to be called a face. We allow a normal dot product (i.e. cos(theta)) to be &lt; 0.05.
    * This empirically seems to work.  
    *  
    * @param triangles
--- src/org/jmol/shapesurface/IsosurfaceMesh.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/shapesurface/IsosurfaceMesh.java	2021-11-29 14:03:35.577101209 -0700
@@ -77,7 +77,6 @@ public class IsosurfaceMesh extends Mesh
 
   /**
    * @param vwr 
-   * @XXXXj2sIgnoreSuperConstructor
    * 
    * @param thisID
    * @param colix
@@ -376,9 +375,9 @@ public class IsosurfaceMesh extends Mesh
   }
 
   /**
-   * two values -- v1, and v2, which need not be ordered v1 < v2. v == v1 --> 0
-   * v == v2 --> 1 v1 < v < v2 --> f in (0,1) v2 < v < v1 --> f in (0,1) i.e.
-   * (v1 < v) == (v < v2)
+   * two values -- v1, and v2, which need not be ordered v1 &lt; v2. v == v1 &rarr; 0
+   * v == v2 &rarr; 1 v1 &lt; v &lt; v2 &rarr; f in (0,1) v2 &lt; v &lt; v1 &rarr; f in (0,1) i.e.
+   * (v1 &lt; v) == (v &lt; v2)
    * 
    * We check AB, then (usually) BC, then (sometimes) CA.
    * 
@@ -388,14 +387,14 @@ public class IsosurfaceMesh extends Mesh
    * A 1.0 0.5 1.0 1.0 / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ C-----B 1.0--0.5
    * 1.0--1.0 0.5--1.0 1.0---1.0 case I case II case III case IV
    * 
-   * case I: AB[0] and BC[1], type == 3 --> CA not tested. case II: AB[1] and
-   * CA[0]; f1 == 1.0 --> BC not tested. case III: AB[0] and BC[0], type == 3
-   * --> CA not tested. case IV: AB[0] and BC[0], type == 3 --> CA not tested.
+   * case I: AB[0] and BC[1], type == 3 &rarr; CA not tested. case II: AB[1] and
+   * CA[0]; f1 == 1.0 &rarr; BC not tested. case III: AB[0] and BC[0], type == 3
+   * &rarr; CA not tested. case IV: AB[0] and BC[0], type == 3 &rarr; CA not tested.
    * 
    * what if v = 0.5?
    * 
-   * case I: AB[1]; BC not tested --> type == 1, invalid. case II: AB[0]; type
-   * == 1, f1 == 0.0 --> CA not tested. case III: BC[1]; f2 == 1.0 --> CA not
+   * case I: AB[1]; BC not tested &rarr; type == 1, invalid. case II: AB[0]; type
+   * == 1, f1 == 0.0 &rarr; CA not tested. case III: BC[1]; f2 == 1.0 &rarr; CA not
    * tested.
    * 
    * @param vertexValues
--- src/org/jmol/smiles/package.html.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/smiles/package.html	2021-11-29 14:03:35.578101209 -0700
@@ -63,7 +63,7 @@ the term <a href="#aromaticity">aromatic
 
 
 <br><br>     
- <h3>Comparision to <a target="_blank" href="http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html">Daylight SMILES</a></h3>
+ <h2>Comparison to <a target="_blank" href="http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html">Daylight SMILES</a></h2>
  All single-component aspects of Daylight SMILES are implemented, including
     aromaticity and atom- and bond-based stereochemistry ("chirality").
 <br><br>     
@@ -83,7 +83,8 @@ and may dramatically increase processing
 Jmol SMILES adds the following two aspects to Daylight SMILES:
 <br>
 <br>
-<table border="1" cellpadding="5" width="500">
+<table border="1">
+<caption>Daylight SMILES aspects</caption>
 <tr><td valign="top"><b>%(n)</b></td><td>Jmol SMILES adds unlimited branching. Daylight SMILES 
 allows indication of "rings" using the digits 1-9, for example, <b>C1CCCC1</b>. Actually, these numbers
 do not necessarily indicate rings. Rather, in association with "." component notation, 
@@ -136,7 +137,8 @@ the Jmol version used for its creation a
 Jmol bioSMILES adds the following to Jmol SMILES:
 <br>
 <br>
-<table border="1" cellpadding="5" width="500">
+<table border="1">
+<caption>bioSMILES additions</caption>
 <tr><td valign=top>~X~</td><td>
 Jmol bioSMILES separates all protein, nucleic, and carbohydrate polymers into separate SMILES components,
 separated by ".". 
@@ -196,7 +198,7 @@ indicating a branched manose hexamer. No
 <br>
 
 
- <h3>Comparision to <a target="_blank" href="http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html">Daylight SMARTS</a></h3>
+ <h2>Comparison to <a target="_blank" href="http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html">Daylight SMARTS</a></h2>
 <ul>
 <li>[H1] interpreted as [*H1] -- "an atom with one connected H atom".
 
@@ -227,7 +229,6 @@ Note that these variables are any string
 </pre>
     Note that $(...) need not be within [...], and 
     wherever it is, it always means "just the first atom".
-</li>
 
 </li><li>All primitives that are not element names, <b>*</b>, <b>A</b>, or <b>a</b> must be 
     enclosed in brackets. In addition, the following elements must be enclosed in brackets
@@ -236,10 +237,10 @@ Note that these variables are any string
     
 </li><li>Allows any order of bracketed primitives: [H2C13] same as [13CH2].
  
-</li><li>All atom and bond logic implemented: [X,!X,X&X,X&X&X;X&X]-,=X
+</li><li>All atom and bond logic implemented: [X,!X,X&amp;X,X&amp;X&amp;X;X&amp;X]-,=X
  
-</li><li>"&" is optional: [13CH2] same as [13&C&H2]
-    except in cases of ambiguity with element symbols: [Rh] is rhodium, not [R&h].
+</li><li>"&amp;" is optional: [13CH2] same as [13&amp;C&amp;H2]
+    except in cases of ambiguity with element symbols: [Rh] is rhodium, not [R&amp;h].
  
 </li><li>Jmol SMARTS does NOT implement:
 <ul><li> "zero-level parentheses", since the match is 
@@ -259,7 +260,8 @@ Note that these variables are any string
 <br><br>
 All Daylight SMARTS primitives are implemented. These include:
 <br>
-<table border="1" cellpadding="5" width="500">
+<table border="1">
+<caption>Daylight SMARTS primitives</caption>
 <tr><td>[Element]</td><td>capitalized - standard notation Na, Si, etc. -- specific non-aromatic atom</td></tr>
 <tr><td>[element]</td><td>uncapitalized - specific aromatic atom (as for standard notation, no limitations)</td></tr>
 <tr><td>*</td><td>any atom</td></tr>
@@ -282,20 +284,21 @@ All Daylight SMARTS primitives are imple
 Jmol SMARTS adds the following primitives:
 <br>
 <br>
-<table border="1" cellpadding="5" width="800">
+<table border="1">
+<caption>SMARTS primitives</caption>
 <tr><td>d</td><td>non-hydrogen degree -- number of non-hydrogen connections</td></tr>
 <tr><td>=</td><td>Jmol atom index, for example: [=23]</td></tr>
 <tr><td>"xxx"</td><td>atom type, in double quotes, for example: ["39"r5] (After <b>calculate partialcharge</b> this will be the MMFF94 atom type. [Jmol 12.3.24]</td></tr>
-<tr><td>$(select xxx)"</td><td>external selection method. For Jmol, this is an atom expression. For example: [c$(select temperature>10)] [Jmol 12.3.26]</td></tr>
+<tr><td>$(select xxx)"</td><td>external selection method. For Jmol, this is an atom expression. For example: [c$(select temperature&gt;10)] [Jmol 12.3.26]</td></tr>
 <tr><td>r500</td><td>a specifically aromatic 5-membered ring [Jmol 12.3.24]</td></tr>
 <tr><td>r600</td><td>a specifically aromatic 6-membered ring [Jmol 12.3.24]</td></tr>
 <tr><td>number?</td><td>mass number or undefined (so, for example, [C12?] means any carbon that isn't explicitly C13 or C14</td></tr>
 <tr><td>$n(pattern)</td><td>A specific number of occurances of <b>pattern</b>. For example, <b>C[$3(C=C)]C</b> is synonymous with <b>CC=CC=CC=CC</b>.</td></tr>
 <tr><td>$min-max(pattern)</td><td>A variable number of occurances of <b>pattern</b>. 
 For example: <b>A[$0-2(C:G)]A</b> is synonymous with <b>AA</b> or <b>AC(:G)A</b> or <b>AC(:G)C(:G)A</b>.</td></tr>
-<tr><td>residueName#resno^insCode.atomName#atomicNumber</b> </td><td>
+<tr><td><b>residueName#resno^insCode.atomName#atomicNumber</b> </td><td>
 All five fields are optional; only the period itself is required.
-This primitive may appear with other primitives provided (a) it is first, and (b) it is followed by an operator ("," ,"&", or ";").
+This primitive may appear with other primitives provided (a) it is first, and (b) it is followed by an operator ("," ,"&amp;", or ";").
 This allows searching a bioSMILES string using SMARTS patterns that only involve standard atom types. In the above example, 
 notice that the connecting atoms to protein chains within the non-bioSEQUENCE component indicates the
 connections to the protein using this extended notation. Thus, both the actual 3D model and the bioSMARTS string for 1d66
@@ -312,7 +315,8 @@ the phosphorus atom in nucleic acids, or
 Jmol SMARTS adds the following in-line options:
 <br>
 <br>
-<table border="1" cellpadding="5" width="500">
+<table border="1">
+<caption>SMARTS in-line options</caption>
 <tr><td valign=top>
 /..../</td><td>
 <b>processing directives</b> Jmol recognizes <b>/..../</b> at the beginning of a pattern as processing directives.
@@ -322,7 +326,7 @@ These directives can be introduced indiv
 <b>invertStereo</b> reverses the sense of chirality (R-, S- stereochemistry). Double-bond stereochemistry is not reverse.  
 <b>noStereo</b> turns off all stereochemical checking.  
 </li><li><b>aromaticDouble</b> allows for using "=" between two aromatic atoms to indicate an explicitly double aromatic bond.
-To specify an explicitly single aromatic bond, use <b>@&!=</b>. 
+	To specify an explicitly single aromatic bond, use <b>{@literal @}&amp;!=</b>. 
 <b>aromaticStrict</b> uses a 6-electron Hueckel model for specifying aromaticity.
 </li><li><b>noAromatic</b> turns off all aromaticity checks.It may be desirable when no distinction between
 aromatic and nonaromatic atoms is desired. For large biomolecules /noAromatic/ can 
@@ -419,7 +423,8 @@ in this case being equivalent to (and sl
 Jmol bioSMARTS adds the following pattern options to Jmol SMARTS:
 <br>
 <br>
-<table border="1" cellpadding="5" width="500">
+<table border="1">
+<caption>bioSMARTS pattern options</caption>
 <tr><td>
 <b>"~"</b> 
 </td><td>Any biopolymer.
@@ -497,7 +502,7 @@ includes:
   
 
 <br><br>     
-<a name="smilesspecs"><h3>Detailed Jmol SMILES/bioSMILES Specification</h3></a>
+<h2><a id="smilesspecs">Detailed Jmol SMILES/bioSMILES Specification</a></h2>
 <br><br>
 <pre> 
       # note: prior to parsing, all white space is removed
@@ -521,7 +526,7 @@ includes:
                              | "[" [bracketedExpression] "]" }
    
    [unbracketedAtomType] == [atomType] 
-                                 & ! { "Ac" | "Ba" | "Ca" | "Na" | "Pa" | "Sc"
+                                 &amp; ! { "Ac" | "Ba" | "Ca" | "Na" | "Pa" | "Sc"
                                      | "ac" | "ba" | "ca" | "na" | "pa" | "sc" }
       # note: Brackets are required for these elements: [Na], [Ca], etc.
       #       These elements Xy are instead interpreted as "X" "y", a single-letter
@@ -558,7 +563,7 @@ includes:
       #       and must be preceded by an atomExpression for the 
       #       first occurance and either an atomExpression or a bond
       #       for the second occurance
-      # note: Jmol bioSMARTS extends the possible number of rings to > 100 by 
+      # note: Jmol bioSMARTS extends the possible number of rings to &gt; 100 by 
       #       allowing %(n)
 
    [connections] == [connection] | NULL }
@@ -590,7 +595,7 @@ includes:
 </pre>
 <br><br>
 
-<a name="specs"><h3>Detailed Jmol SMARTS/Jmol bioSMARTS Specification</h3></a>
+<h2><a id="specs">Detailed Jmol SMARTS/Jmol bioSMARTS Specification</a></h2>
 <br><br>
 <pre> 
 
@@ -638,7 +643,7 @@ includes:
    
    
    [unbracketedAtomType] == [atomType] 
-                                 & ! { "Ac" | "Ba" | "Ca" | "Na" | "Pa" | "Sc"
+                                 &amp; ! { "Ac" | "Ba" | "Ca" | "Na" | "Pa" | "Sc"
                                      | "ac" | "ba" | "ca" | "na" | "pa" | "sc" }
       # note: Brackets are required for these elements: [Na], [Ca], etc.
       #       These elements Xy are instead interpreted as "X" "y", a single-letter
@@ -653,21 +658,21 @@ includes:
    [bracketedExpression] == "[" { [atomOrSet] | [atomOrSet] ";" [atomAndSet] } "]" 
    
    [atomOrSet] == { [atomAndSet] | [atomAndSet] "," [atomAndSet] }
-   [atomAndSet] == { [atomPrimitives] | [atomPrimitives] "&" [atomAndSet]
+   [atomAndSet] == { [atomPrimitives] | [atomPrimitives] "&amp;" [atomAndSet]
                               | "!" [atomPrimitive] 
-                              | "!" [atomPrimitive] "&" [atomAndSet] }
+                              | "!" [atomPrimitive] "&amp;" [atomAndSet] }
                               
  ######## ATOM PRIMITIVES ########
 
    [atomPrimitives] == { [atomPrimitive] | [atomPrimitive] [atomPrimitives] }
-       # note -- if & is not used, certain combinations of primitiveDescritors
+       # note -- if &amp; is not used, certain combinations of primitiveDescriptors
        #         are not allowed. Specifically, combinations that together
        #         form the symbol for an element will be read as the element (Ar, Rh, etc.)
        #         when NOT followed by a digit and no element has already been defined 
-       #         So, for example, [Ar] is argon, [Ar3] is [A&r3], [ORh] is [O&R&h],  
-       #         but [Ard2] is [Ar&d2] -- "argon with two non-hydrogen connections"
-       #         Also, "!" may not be use with implied "&". 
-       #         Thus, [!a], [!a&!h2], and [h2&!a] are all valid, but [!ah2] is invalid.             
+       #         So, for example, [Ar] is argon, [Ar3] is [A&amp;r3], [ORh] is [O&amp;R&amp;h],  
+       #         but [Ard2] is [Ar&amp;d2] -- "argon with two non-hydrogen connections"
+       #         Also, "!" may not be use with implied "&amp;". 
+       #         Thus, [!a], [!a&amp;!h2], and [h2&amp;!a] are all valid, but [!ah2] is invalid.             
    [atomPrimitive] == { [isotope] | [atomType] | [charge] | [stereochemistry]
                               | [a_Prop] | [A_Prop] | [D_Prop] | [H_Prop] | [h_Prop] 
                               | [R_Prop] | [r_Prop] | [v_Prop] | [X_Prop]
@@ -786,9 +791,9 @@ includes:
    [bondExpression] == { [bondOrSet] | [bondOrSet] ";" [bondAndSet] } 
    
    [bondOrSet] == { [bondAndSet] | [bondAndSet] "," [bondAndSet] }
-   [bondAndSet] == { [bondPrimitives] | [bondPrimitives] "&" [bondAndSet]
+   [bondAndSet] == { [bondPrimitives] | [bondPrimitives] "&amp;" [bondAndSet]
                               | "!" [bondPrimitive] 
-                              | "!" [bondPrimitive] "&" [bondAndSet] }
+                              | "!" [bondPrimitive] "&amp;" [bondAndSet] }
                                               
  ######## BOND PRIMITIVES ########
                               
@@ -797,9 +802,9 @@ includes:
       # note: All bondExpressions are not valid. Stereochemistry should not 
       #       be mixed with the others, as it represents a single bond always.
       #       In addition, "." ("no bond") cannot be mixed with any bond type.
-      #       Nothing would be retrieved by "-&=", as a bond cannot be both single
+      #       Nothing would be retrieved by "-&amp;=", as a bond cannot be both single
       #       and double. However, "-@" is potentially very useful -- "ring single-bonds"
-      #       or "=&!@" -- "doubly-bonded atoms where the double bond is not in a ring"
+      #       or "=&amp;!@" -- "doubly-bonded atoms where the double bond is not in a ring"
       # note: Jmol will not match two totally independent molecular pieces. For example,
       #       Jmol will not math [Na+].[Cl-]
       # note: "+" indicates "adjacent biomolecular groups in a chain"
@@ -822,7 +827,7 @@ includes:
 </pre>
 <br><br>
 
-<a name="aromaticity"><h3>Jmol SMILES and Jmol SMARTS Definition of "aromatic"</h3></a>
+<h2><a id="aromaticity">Jmol SMILES and Jmol SMARTS Definition of "aromatic"</a></h2>
 
 <br><br>
 
@@ -878,7 +883,7 @@ assume a bonding scheme (PDB, GAUSSIAN,
  <br>updated 8/26/2015: switch to HTML5; added measure option for multiple ranges 
  <br>updated 5/21/2012: added $(select...)
  <br>updated 5/13/2012: added /aromaticStrict/ and /aromaticDouble/ 
- <br>updated 5/13/2012: added [&lt;atomType>] 
+ <br>updated 5/13/2012: added [&lt;atomType&gt;] 
  <br>updated 4/10/2012: fix for [$(...)n] and [$(...)min-max]
  <br>original5/19/2010
  <br><br>
--- src/org/jmol/smiles/SmilesAromatic.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/smiles/SmilesAromatic.java	2021-11-29 14:03:35.578101209 -0700
@@ -336,7 +336,7 @@ public class SmilesAromatic {
    * @param vMean
    * @param n
    * @param cutoff
-   * @return true if stddev < cutoff
+   * @return true if stddev &lt; cutoff
    */
   private final static boolean checkStandardDeviation(V3[] vNorms, V3 vMean,
                                                       int n, float cutoff) {
--- src/org/jmol/smiles/SmilesMatcher.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/smiles/SmilesMatcher.java	2021-11-29 14:03:35.578101209 -0700
@@ -57,13 +57,13 @@ import javajs.util.PT;
  * 
  * Specification for this implementation can be found in package.html.
  * 
- * <p>
+ * </p>
  * 
  * <pre>
  * <code>
  * public methods:
  * 
- * int areEqual  -- checks a SMILES string against a reference (-1 for error; 0 for no finds; >0 for number of finds)
+ * int areEqual  -- checks a SMILES string against a reference (-1 for error; 0 for no finds; &gt;0 for number of finds)
  * 
  * BitSet[] find  -- finds one or more occurances of a SMILES or SMARTS string within a SMILES string
  * 
--- src/org/jmol/smiles/SmilesParser.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/smiles/SmilesParser.java	2021-11-29 14:03:35.579101209 -0700
@@ -119,7 +119,7 @@ public class SmilesParser {
    * 
    * @param pattern
    *        SMILES String
-   * @return Molecule corresponding <ctode>pattern</code>
+   * @return Molecule corresponding <code>pattern</code>
    * @throws InvalidSmilesException
    */
   SmilesSearch parse(String pattern) throws InvalidSmilesException {
@@ -863,7 +863,7 @@ public class SmilesParser {
    * @param isBracketed
    *        true if a bracketed definition [...]
    * @param isAND
-   *        being called from checkLogic for & or ;
+   *        being called from checkLogic for &amp; or ;
    * @param isBranchAtom
    * @return New atom
    * @throws InvalidSmilesException
--- src/org/jmol/symmetry/CIPChirality.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/symmetry/CIPChirality.java	2021-11-29 14:03:35.579101209 -0700
@@ -67,7 +67,7 @@ import org.jmol.viewer.JC;
  * 
  * - implemented in Java (Jmol) and JavaScript (JSmol)
  * 
- * - only a few Java classes; < 1000 lines
+ * - only a few Java classes; &lt; 1000 lines
  * 
  * - efficient, one-pass process for each center using a single finite digraph
  * for all auxiliary descriptors
@@ -264,10 +264,10 @@ import org.jmol.viewer.JC;
  * isotopic mass and, in all other cases, as their element's atomic weight.
  * 
  * Rationale: BB is not self-consistent, including both "mass number" (in the
- * rule) and "atomic mass" in the description, where "79Br < Br < 81Br". And
+ * rule) and "atomic mass" in the description, where "79Br &lt; Br &lt; 81Br". And
  * again we have the same Kekule-ambiguous issue as in Rule 1b. The added
  * clarification fixes the Kekule issue (not using isotope mass number for
- * duplicate atoms), solves the problem that F < 19F (though 100% nat.
+ * duplicate atoms), solves the problem that F &lt; 19F (though 100% nat.
  * abundance), and is easily programmable.
  * 
  * In Jmol the logic is very simple, actually using the isotope mass number, but
@@ -808,7 +808,7 @@ public class CIPChirality {
    * Check if an atom is 1st row.
    * 
    * @param a
-   * @return elemno > 2 && elemno <= 10
+   * @return elemno &gt; 2 &amp;&amp; elemno &le; 10
    */
   static boolean isFirstRow(SimpleNode a) {
     int n = a.getElementNumber();
@@ -1333,7 +1333,7 @@ public class CIPChirality {
     /**
      * Rule 2 isotope mass number if identified or average atomic mass if not
      * 
-     * C (12.011) > 12C, O (15.999) < 16O, and F (18.998) < 19F
+     * C (12.011) &gt; 12C, O (15.999) &lt; 16O, and F (18.998) &lt; 19F
      * 
      * Source:
      * 
@@ -1490,7 +1490,7 @@ public class CIPChirality {
     /**
      * auxiliary chirality as determined in createAuxiliaryRule4Data;
      * possibilities include R/S, r/s, M/P, m/p, C/T (but not c/t), or ~ (ASCII
-     * 126, no stereochemistry); for sorting purposes C=M=R < p=r=s < ~
+     * 126, no stereochemistry); for sorting purposes C=M=R &lt; p=r=s &lt; ~
      */
     private char auxChirality = '~';
 
--- src/org/jmol/symmetry/SpaceGroup.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/symmetry/SpaceGroup.java	2021-11-29 14:03:35.579101209 -0700
@@ -162,7 +162,7 @@ class SpaceGroup {
   /**
    * 
    * @param name
-   * @param data Lst<SymmetryOperation> or Lst<M4>
+   * @param data Lst&lt;SymmetryOperation&gt; or Lst&lt;M4&gt;
    * @return a new SpaceGroup if successful or null
    */
   private static SpaceGroup createSGFromList(String name, Lst<?> data) {
--- src/org/jmol/symmetry/Symmetry.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/symmetry/Symmetry.java	2021-11-29 14:03:35.580101209 -0700
@@ -164,7 +164,7 @@ public class Symmetry implements Symmetr
    * 
    * @param desiredSpaceGroupIndex
    * @param name
-   * @param data a Lst<SymmetryOperation> or Lst<M4> 
+   * @param data a Lst&lt;SymmetryOperation&gt; or Lst&lt;M4&gt;
    * @param modDim in [3+d] modulation dimension
    * @return true if a known space group
    */
--- src/org/jmol/symmetry/UnitCellIterator.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/symmetry/UnitCellIterator.java	2021-11-29 14:03:35.580101209 -0700
@@ -44,7 +44,7 @@ public class UnitCellIterator implements
    * @param atoms
    * @param bsAtoms
    * @param distance
-   *        <= 0 indicates that distance will be set later, probably from a
+   *        &le; 0 indicates that distance will be set later, probably from a
    *        point
    * @return this
    */
--- src/org/jmol/thread/SpinThread.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/thread/SpinThread.java	2021-11-29 14:03:35.580101209 -0700
@@ -101,8 +101,8 @@ public class SpinThread extends JmolThre
    * 
    * JavaScript:
    * 
-   * run1(INIT) run1(MAIN) --> setTimeout to run1(CHECK) or run1(FINISH) and
-   * return run1(CHECK) --> setTimeout to run1(CHECK) or run1(MAIN) or
+   * run1(INIT) run1(MAIN) &rarr; setTimeout to run1(CHECK) or run1(FINISH) and
+   * return run1(CHECK) &rarr; setTimeout to run1(CHECK) or run1(MAIN) or
    * run1(FINISH) and return
    * 
    */
--- src/org/jmol/util/BSUtil.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/BSUtil.java	2021-11-29 14:03:35.580101209 -0700
@@ -110,8 +110,8 @@ final public class BSUtil {
    * For each set bit in b: a) if a is also set, then clear a's bit UNLESS b) if
    * a is not set, then add to a all set bits of b
    * 
-   * Thus, if a equals b --> clear all if a is a subset of b, then --> b if b is
-   * a subset of a, then --> a not b if a only intersects with b, then --> a or
+   * Thus, if a equals b &rarr; clear all if a is a subset of b, then &rarr; b if b is
+   * a subset of a, then &rarr; a not b if a only intersects with b, then &rarr; a or
    * b if a does not intersect with b, then a or b
    * 
    * In "toggle" mode, when you click on any atom of the molecule, you want
@@ -145,7 +145,7 @@ final public class BSUtil {
   /**
    * this one slides deleted bits out of a pattern.
    * 
-   *    deleteBits 101011b, 000011b  --> 1010b
+   *    deleteBits 101011b, 000011b  &rarr; 1010b
    *    
    *    Java 1.4, not 1.3
    * 
@@ -174,7 +174,7 @@ final public class BSUtil {
   /**
    * this one slides bits to higher positions based on a pattern.
    * 
-   * shiftBits 101011b, 000011b --> 10101100b
+   * shiftBits 101011b, 000011b &rarr; 10101100b
    * 
    * @param bs
    * @param bsAdded
--- src/org/jmol/util/ColorEncoder.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/ColorEncoder.java	2021-11-29 14:03:35.581101209 -0700
@@ -172,7 +172,7 @@ import javajs.util.P3;
    * @param name
    * @param scale  if null, then this is a reset.
    * @param isOverloaded  if TRUE, 
-   * @return  >= 0 for a default color scheme
+   * @return  &ge; 0 for a default color scheme
    */
   private synchronized int makeColorScheme(String name, int[] scale,
                                                   boolean isOverloaded) {
--- src/org/jmol/util/CommandHistory.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/CommandHistory.java	2021-11-29 14:03:35.581101209 -0700
@@ -169,9 +169,9 @@ final public class CommandHistory {
   /**
    * Options include:
    *   all                             Integer.MAX_VALUE
-   *   n prev                          n >= 1
+   *   n prev                          n &ge; 1
    *   next                           -1
-   *   set max to -2 - n               n <= -3
+   *   set max to -2 - n               n &le; -3
    *   just clear                     -2
    *   clear and turn off; return ""   0
    *   clear and turn on; return ""    Integer.MIN_VALUE;  
--- src/org/jmol/util/Elements.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/Elements.java	2021-11-29 14:03:35.581101209 -0700
@@ -884,7 +884,7 @@ public class Elements {
    * that contains the atomic number, the charge, and the radius in two
    * consecutive values, encoded as follows:
    * 
-   *   (atomicNumber << 4) + (charge + 4), radiusAngstroms*1000
+   *   (atomicNumber &lt;&lt; 4) + (charge + 4), radiusAngstroms*1000
    * 
    * That is, (atomicNumber * 16 + charge + 4), milliAngstromRadius
    * 
--- src/org/jmol/util/MeshCapper.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/MeshCapper.java	2021-11-29 14:03:35.581101209 -0700
@@ -37,7 +37,7 @@ import javajs.util.V3;
  * - no push/pop stacks
  * 
  * INPUT: stream of [a b] ordered-vertex edges such that triangle a-b-c is
- * interior if (ab.cross.ac).dot.planeNormal > 0 (right-hand rule;
+ * interior if (ab.cross.ac).dot.planeNormal &gt; 0 (right-hand rule;
  * counter-clockwise edge flow)
  * 
  * Bob Hanson - Jan 11, 2015
@@ -804,7 +804,7 @@ public class MeshCapper {
    * @param v0
    * @param v1
    * @param v2
-   * @return true if properly wound -- (v1-v0).cross.(v2-v0).dot.norm > 0
+   * @return true if properly wound -- (v1-v0).cross.(v2-v0).dot.norm &gt; 0
    */
   private boolean checkWinding(CapVertex v0, CapVertex v1, CapVertex v2) {
     return (v1.x - v0.x) * (v2.y - v0.y) > (v1.y - v0.y) * (v2.x - v0.x);
--- src/org/jmol/util/Modulation.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/Modulation.java	2021-11-29 14:03:35.581101209 -0700
@@ -305,7 +305,7 @@ public class Modulation {
   }
 
   /**
-   * Check that left < x4 < right, but allow for folding
+   * Check that left &lt; x4 &lt; right, but allow for folding
    * 
    * @param x4
    * @return true only if x4 is in the (possibly folded) range of left and right
--- src/org/jmol/util/Node.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/Node.java	2021-11-29 14:03:35.582101209 -0700
@@ -73,7 +73,7 @@ public interface Node extends SimpleNode
   public int getModelIndex();
   public int getAtomNumber();
   /**
-   * can be > 0 for PDB model with no H atoms or for SMILES string CCC
+   * can be &gt; 0 for PDB model with no H atoms or for SMILES string CCC
    * 
    * @return number of missing H atoms
    */
--- src/org/jmol/util/SimpleUnitCell.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/SimpleUnitCell.java	2021-11-29 14:03:35.582101209 -0700
@@ -381,16 +381,16 @@ public class SimpleUnitCell {
   /**
    * Expanded cell notation:
    * 
-   * 111 - 1000 --> center 5,5,5; range 0 to 9 or -5 to +4
+   * 111 - 1000 &rarr; center 5,5,5; range 0 to 9 or -5 to +4
    * 
-   * 1000000 - 1999999 --> center 50,50,50; range 0 to 99 or -50 to +49
-   * 1000000000 - 1999999999 --> center 500, 500, 500; range 0 to 999 or -500 to
+   * 1000000 - 1999999 &rarr; center 50,50,50; range 0 to 99 or -50 to +49
+   * 1000000000 - 1999999999 &rarr; center 500, 500, 500; range 0 to 999 or -500 to
    * +499
    * 
    * @param nnn
    * @param cell
    * @param offset
-   *        0 or 1 typically; < 0 means "apply no offset"
+   *        0 or 1 typically; &lt; 0 means "apply no offset"
    * @param kcode
    *        Generally the multiplier is just {ijk ijk scale}, but when we have
    *        1iiijjjkkk 1iiijjjkkk scale, floats lose kkk due to Java float
--- src/org/jmol/util/Tensor.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/Tensor.java	2021-11-29 14:03:35.582101209 -0700
@@ -289,7 +289,7 @@ public class Tensor {
   /**
    * width of the signal; |e2 - e0|
    * 
-   * @return unitless; >= 0
+   * @return unitless; &ge; 0
    */
   public float span() {
     return Math.abs(eigenValues[2] - eigenValues[0]);  
@@ -654,13 +654,13 @@ public class Tensor {
   /**
    * The expression:
    * 
-   * |sigma_3 - sigma_iso| >= |sigma_1 - sigma_iso| >= |sigma_2 - sigma_iso|
+   * |sigma_3 - sigma_iso| &ge; |sigma_1 - sigma_iso| &ge; |sigma_2 - sigma_iso|
    * 
    * simply sorts the values from largest to smallest or smallest to largest,
    * depending upon the direction of the asymmetry, always setting the last
    * value to be the farthest from the mean. We use a simpler form here:
    * 
-   * |sigma_3 - sigma_1| >= |sigma_3 - sigma_2| >= |sigma_2 - sigma_1|
+   * |sigma_3 - sigma_1| &ge; |sigma_3 - sigma_2| &ge; |sigma_2 - sigma_1|
    * 
    * which amounts to the same thing and is prettier. (Think about it!)
    * 
--- src/org/jmol/util/Vibration.java.orig	2021-11-27 22:53:30.000000000 -0700
+++ src/org/jmol/util/Vibration.java	2021-11-29 14:03:35.582101209 -0700
@@ -26,7 +26,7 @@ public class Vibration extends V3 {
  // public static final int TYPE_DISPLACEMENT = -3; // not used
 
   /**
-   * modDim will be > 0 for modulation
+   * modDim will be &gt; 0 for modulation
    */
   public int modDim = TYPE_VIBRATION;
   public float modScale = Float.NaN; // modulation only
--- src/org/jmol/viewer/OutputManager.java.orig	2021-11-27 22:53:31.000000000 -0700
+++ src/org/jmol/viewer/OutputManager.java	2021-11-29 14:03:35.582101209 -0700
@@ -650,7 +650,7 @@ abstract class OutputManager {
    * jmolStatusListener interface
    * 
    * @param params
-   *        include: fileName: starts with ? --> use file dialog; type: PNG,
+   *        include: fileName: starts with ? &rarr; use file dialog; type: PNG,
    *        JPG, etc.; text: String to output; bytes: byte[] or null if an
    *        image; scripts for scenes; quality: for JPG and PNG; width: image
    *        width; height: image height; fullPath: String[] return
--- src/org/jmol/viewer/TransformManager.java.orig	2021-11-27 22:53:31.000000000 -0700
+++ src/org/jmol/viewer/TransformManager.java	2021-11-29 14:03:35.583101209 -0700
@@ -2190,8 +2190,8 @@ public class TransformManager {
   }
 
   /**
-   * sets the period of vibration -- period > 0: sets the period and turns
-   * vibration on -- period < 0: sets the period but does not turn vibration on
+   * sets the period of vibration -- period &gt; 0: sets the period and turns
+   * vibration on -- period &lt; 0: sets the period but does not turn vibration on
    * -- period = 0: sets the period to zero and turns vibration off -- period
    * Float.NaN: uses current setting (frame change)
    * 
@@ -2725,7 +2725,7 @@ public class TransformManager {
 
   /**
    * sets the position of the navigation offset relative to the model (50%
-   * center; 0% rear, 100% front; can be <0 or >100)
+   * center; 0% rear, 100% front; can be &lt;0 or &gt;100)
    * 
    * @param percent
    */
@@ -2735,7 +2735,7 @@ public class TransformManager {
   }
 
   /**
-   * seconds < 0 means "to (x,y)"; >= 0 mean "to (x%, y%)"
+   * seconds &lt; 0 means "to (x,y)"; &ge; 0 mean "to (x%, y%)"
    * 
    * @param seconds
    * @param x
--- src/org/jmol/viewer/Viewer.java.orig	2021-11-27 22:53:31.000000000 -0700
+++ src/org/jmol/viewer/Viewer.java	2021-11-29 14:03:35.583101209 -0700
@@ -1680,9 +1680,9 @@ public class Viewer extends JmolViewer
    * 
    * disables command threading
    * 
-   * disables DELAY, TIMEOUT, PAUSE, LOOP, GOTO, SPIN <rate>, ANIMATION ON
+   * disables DELAY, TIMEOUT, PAUSE, LOOP, GOTO, SPIN &lt;rate&gt;, ANIMATION ON
    * 
-   * turns SPIN <rate> <end> into just ROTATE <end>
+   * turns SPIN &lt;rate&gt; &lt;end&gt; into just ROTATE &lt;end&gt;
    */
 
   public boolean headless;
@@ -4065,7 +4065,7 @@ public class Viewer extends JmolViewer
    * 
    *        data[1] -- string or float[] or float[][] or float[][][]
    * 
-   *        data[2] -- selection bitset or int[] atomMap when field > 0
+   *        data[2] -- selection bitset or int[] atomMap when field &gt; 0
    * 
    *        data[3] -- arrayDepth
    *        0(String),1(float[]),2(float[][]),3(float[][][]) or -1 to indidate
@@ -4130,7 +4130,7 @@ public class Viewer extends JmolViewer
    * 
    *         data[1] -- string or float[] or float[][] or float[][][]
    * 
-   *         data[2] -- selection bitset or int[] atomMap when field > 0
+   *         data[2] -- selection bitset or int[] atomMap when field &gt; 0
    * 
    *         data[3] -- arrayDepth
    *         0(String),1(float[]),2(float[][]),3(float[][][]) or -1 to indicate
@@ -8161,7 +8161,7 @@ public class Viewer extends JmolViewer
   }
 
   /**
-   * fills an array with data -- if nX < 0 and this would involve JavaScript,
+   * fills an array with data -- if nX &lt; 0 and this would involve JavaScript,
    * then this reads a full set of Double[][] in one function call. Otherwise it
    * reads the values using individual function calls, which each return Double.
    * 
@@ -8379,8 +8379,8 @@ public class Viewer extends JmolViewer
   }
 
   /**
-   * Options include: ; all n == Integer.MAX_VALUE ; n prev n >= 1 ; next n ==
-   * -1 ; set max to -2 - n n <= -3 ; just clear n == -2 ; clear and turn off;
+   * Options include: ; all n == Integer.MAX_VALUE ; n prev n &ge; 1 ; next n ==
+   * -1 ; set max to -2 - n n &le; -3 ; just clear n == -2 ; clear and turn off;
    * return "" n == 0 ; clear and turn on; return "" n == Integer.MIN_VALUE;
    * 
    * @param howFarBack
@@ -8960,9 +8960,9 @@ public class Viewer extends JmolViewer
    * 
    * @param eval
    * @param steps
-   *        Integer.MAX_VALUE --> use defaults
+   *        Integer.MAX_VALUE &rarr; use defaults
    * @param crit
-   *        -1 --> use defaults
+   *        -1 &rarr; use defaults
    * @param bsSelected
    * @param bsFixed
    * @param rangeFixed
@@ -9776,10 +9776,10 @@ public class Viewer extends JmolViewer
    * 
    * 
    * @param id
-   *        < 256 is just the character of a single-character upper-case chain
+   *        &lt; 256 is just the character of a single-character upper-case chain
    *        id, upper or lower case query;
    * 
-   *        >= 256 < 300 is lower case found in structure
+   *        &ge; 256 &lt; 300 is lower case found in structure
    * 
    * @param isAssign
    *        from a file reader, not a select query
@@ -10227,7 +10227,7 @@ public class Viewer extends JmolViewer
    * @param options
    *        if nonzero, a option, currently just T.offset, indicating that pt1
    *        is an {i j k} offset from cell 555
-   * @return string, Object[], or Lst<Object[]>
+   * @return string, Object[], or Lst&lt;Object[]&gt;
    */
   public Object getSymmetryInfo(int iatom, String xyz, int iOp, P3 translation, P3 pt1,
                                 P3 pt2, int type, String desc,
--- src/org/openscience/jmol/app/jsonkiosk/JsonNioService.java.orig	2021-11-27 22:53:31.000000000 -0700
+++ src/org/openscience/jmol/app/jsonkiosk/JsonNioService.java	2021-11-29 14:03:35.584101209 -0700
@@ -173,7 +173,7 @@ import naga.packetwriter.RawPacketWriter
  *
  *   sync 30000 "backgrund blue"
  *   
- *  {"type":"reply","reply":"SCRIPT:script compiler ERROR: command expected\n----\n          >>>> backgrund blue <<<<"}
+ *  {"type":"reply","reply":"SCRIPT:script compiler ERROR: command expected\n----\n          &gt;&gt;&gt;&gt; background blue &lt;&lt;&lt;&lt;"}
  *
  *  Note that the ERROR callback does not fire for compile errors, 
  *  only for errors found while running a parsed script:
@@ -192,7 +192,7 @@ import naga.packetwriter.RawPacketWriter
  *     
  *  gives the simple reply:
  *  
- *     {"type":"reply","reply":"LOADSTRUCT:https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&get3d=true"}
+ *     {"type":"reply","reply":"LOADSTRUCT:https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&amp;get3d=true"}
  *
  *  but after
  *  
@@ -201,8 +201,8 @@ import naga.packetwriter.RawPacketWriter
  *  we get additional details, and array of data with nine elements:
  *  
  *  {"type":"reply","reply":["LOADSTRUCT",
- *                           "https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&get3d=true",
- *                           "file?format=sdf&get3d=true",
+ *                           "https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&amp;get3d=true",
+ *                           "file?format=sdf&amp;get3d=true",
  *                           "C8H10N4O2", null, 3, "1.1", "1.1", null]}
  *  
  *  Exact specifications for these callbacks are not well documented. 
@@ -243,22 +243,22 @@ import naga.packetwriter.RawPacketWriter
  *   Note that all of the move and sync commands utilize the Jmol sync functionality originally 
  *   intended for applets. So any valid sync command may be used with the "sync" style. These include 
  *   essentially all the actions that a user can make with a mouse, including the
- *   following, where the notation <....> represents a number of a given type. These
+ *   following, where the notation &lt;....&gt; represents a number of a given type. These
  *   events interrupt any currently running script, just as with typical mouse actions.
  *   
- *   "centerAt <int:x> <int:y> <float:ptx> <float:pty> <float:ptz>"
+ *   "centerAt &lt;int:x&gt; &lt;int:y&gt; &lt;float:ptx&gt; &lt;float:pty&gt; &lt;float:ptz&gt;"
  *      -- set {ptx,pty,ptz} at screen (x,y)
- *   "rotateMolecule <float:deltaX> <float:deltaY>"
- *   "rotateXYBy <float:deltaX> <float:deltaY>"
- *   "rotateZBy <int:degrees>"
- *   "rotateZBy <int:degrees> <int:x> <int:y>" (with center reset)
- *   "rotateArcBall <int:x> <int:y> <float:factor>"
- *   "spinXYBy <int:x> <int:y> <float:speed>"
+ *   "rotateMolecule &lt;float:deltaX&gt; &lt;float:deltaY&gt;"
+ *   "rotateXYBy &lt;float:deltaX&gt; &lt;float:deltaY&gt;"
+ *   "rotateZBy &lt;int:degrees&gt;"
+ *   "rotateZBy &lt;int:degrees&gt; &lt;int:x&gt; &lt;int:y&gt;" (with center reset)
+ *   "rotateArcBall &lt;int:x&gt; &lt;int:y&gt; &lt;float:factor&gt;"
+ *   "spinXYBy &lt;int:x&gt; &lt;int:y&gt; &lt;float:speed&gt;"
  *      -- a "flick" gesture
- *   "translateXYBy <float:deltaX, float:deltaY>"
- *   "zoomBy <int:pixels>"
- *   "zoomByFactor <float:factor>"
- *   "zoomByFactor <float:factor> <int:x> <int:y>" (with center reset)
+ *   "translateXYBy &lt;float:deltaX, float:deltaY&gt;"
+ *   "zoomBy &lt;int:pixels&gt;"
+ *   "zoomByFactor &lt;float:factor&gt;"
+ *   "zoomByFactor &lt;float:factor&gt; &lt;int:x&gt; &lt;int:y&gt;" (with center reset)
  * 
  * In addition, a Jmol client send "raw" JSON strings over the socket via the SYNC command:
  *