# Developers: to add a description of changes you have made,
# add it on a line starting with #	 below the "version=..." line

version=12.3.18

# bug fix: allow for alternating list/hash entry:
#   for example: print getproperty("jspecview","##TITLE")["items"][1]["spectra"][1]["id"]
#   instead of:  print ((getproperty("jspecview","##TITLE")["items"][1])["spectra"][1])["id"]
# new feature: JSpecView reads and displays 2D spectra very quickly -- all
#              tested JCamp-DX 6.0 files readable.  -- JSpecView 2.0.10176
# bug fix: GaussianReader not reading "Natural Orbitals" section from  
#          B3LYP 6-31g sp gfprint pop(full,NO)
# bug fix: Jmol support for ZIP collection of JDX files read properly
# bug fix: support for file reading with BOM UTF-8, UTF-16, or UTF-32
# bug fix: script processor not recognizing UTF-8 Binary Order Mark at start of script
# bug fix: (undocumented) POLYHEDRA {...} to {...} with COLOR or TRANSLUCENT fails
# bug fix: POLYHEDRA command or COLOR POLYHEDRA can change selection
# bug fix: PDB reader doesn't recognize 16 LINK records at start of file
# bug fix: script xxxx(xxx)xxx/xx.xxx fails at "(" due to revision 16201 2011-10-02
 

# =============================================================================

#version=12.3.17

# new feature: (JspecView 2.0.10033) new script commands (indicated with *)
#  UNKNOWN("?"),
#  APPLETID("APPLETID"),
#  APPLETREADYCALLBACKFUNCTIONNAME("APPLETREADYCALLBACKFUNCTIONNAME"),
#  AUTOINTEGRATE("AUTOINTEGRATE", "TF"),
#  BACKGROUNDCOLOR("BACKGROUNDCOLOR", "C"),
# *CLOSE("CLOSE", "spectrumId or fileName or ALL"),
#  COMPOUNDMENUON("COMPOUNDMENUON", "TF"),
#  COORDCALLBACKFUNCTIONNAME("COORDCALLBACKFUNCTIONNAME"),
#  COORDINATESCOLOR("COORDINATESCOLOR", "C"),
#  COORDINATESON("COORDINATESON", "TF"),
# *DEBUG("DEBUG", "TF"),
#  DISPLAYFONTNAME("DISPLAYFONTNAME", "fontName"),
#  ENABLEZOOM("ENABLEZOOM", "TF"),
#  ENDINDEX("ENDINDEX"),
# *EXPORT("EXPORT", "[JPG,PNG,XY,...] \"filename\""), 
#  GETSOLUTIONCOLOR("GETSOLUTIONCOLOR", ""),
#  GRIDCOLOR("GRIDCOLOR", "C"),
#  GRIDON("GRIDON", "TF"),
# *INTEGRATE("INTEGRATE", ""),
#  INTEGRALPLOTCOLOR("INTEGRALPLOTCOLOR"),
#  INTEGRATIONRATIOS("INTEGRATIONRATIOS"),
#  INTERFACE("INTERFACE"),
# *IRMODE("IRMODE", "A or T or ?"),
# *LABEL("LABEL", "x y [color and/or \"text\"]"),
# *LOAD("LOAD", "[APPEND] \"fileName\""),
#  MENUON("MENUON"),
#  OBSCURE("OBSCURE"),
# *OVERLAY("OVERLAY", "spectrumID, spectrumID, ..."),
#  PEAKCALLBACKFUNCTIONNAME("PEAKCALLBACKFUNCTIONNAME"),
#  PLOTAREACOLOR("PLOTAREACOLOR", "C"),
#  PLOTCOLOR("PLOTCOLOR", "C"),
#  PLOTCOLORS("PLOTCOLORS"),
#  REVERSEPLOT("REVERSEPLOT", "TF"),
#  SCALECOLOR("SCALECOLOR", "C"),
#  SPECTRUM("SPECTRUM", "spectrumID"),
#  SPECTRUMNUMBER("SPECTRUMNUMBER"),
#  STARTINDEX("STARTINDEX"),
#  SYNCCALLBACKFUNCTIONNAME("SYNCCALLBACKFUNCTIONNAME"),
#  SYNCID("SYNCID"),
#  TITLEBOLDON("TITLEBOLDON", "TF"),
#  TITLECOLOR("TITLECOLOR", "C"),
#  TITLEFONTNAME("TITLEFONTNAME", "fontName"),
#  UNITSCOLOR("UNITSCOLOR", "C"),
#  VERSION("VERSION"),
#  XSCALEON("XSCALEON", "TF"),
#  XUNITSON("XUNITSON", "TF"),
#  YSCALEON("YSCALEON", "TF"),
#  YUNITSON("YUNITSON", "TF"),
# *ZOOM("ZOOM", "OUT or x1,x2");

# new feature: allows simpler color scheme definition
#    color property occupancy "myscheme=red green blue"
#    Var x = ["red","green","blue"]; color property occupancy @{"myscheme=" + x}

# bug fix: JCampDX reader resolving should allow spaces before "##TITLE" 
# bug fix: jvxl issue when color PHASE and translucent
#   -- upon reading JVXL doesn't handle translucency right
#   -- upon writing SPT doesn't preserve colors
# bug fix: user variable lower case "x" not cleared by "X = none"
# bug fix: draw HELIX fails for residue numbers < 0
# code: better Enum structure using name()

# =============================================================================

#version=12.3.16

# new feature: (application) SYNC ON; sync * "JSpecView:..." sends commands to JSpecView
# new feature: (JSpecView) accepts commands using public syncScript(script)
 
# bug fix: GAMESS-US reader error reading NBOs
# bug fix: print [2, 3, 4].mul([3,4,5]) fails
# bug fix: missing ANISOU records cause file-read error in PDB files
# bug fix: JCAMP-DX reading by JSpecView for tiered BLOCK files 

# =============================================================================

#version=12.3.15

# new feature: JCAMP-DX file reading
#  -- reading of ##$MODELS and ##$PEAKS (see http://chemapps.stolaf.edu/jmol/docs/examples-12/jspecview)
# new feature: context menu Spectra submenu
# new feature: JSpecView integration into Jmol application 
#  -- if model/peak-enhanced JDX file is read, clicking on an atom or switching
#     to an IR vibration or MS fragment displays the appropriately highlighted spectrum/fragment
# bug fix: SLAB unit cell not showing all lines
# bug fix: CRYSTAL reader needs to change to MOLECULAR when X(ANGSTROMS) found (fullerene slab)
# new feature: model ID "..."
#  -- can be file-specific using "filename#..."
#  -- used for correlating non-Jmol synced applets
# new feature: sync ~ 'Select: xxx'
#  -- xxx can include file="xxx" model="xxx" atoms="xxx" select="xxx" script="xxx"
#  -- file and model combined as model ID "file#model"
#  -- will automatically load the file if the given file#model ID is not found
#  -- atoms = list of atom numbers separated by commas: 1,2,3 --> @1 or @2 or @3
#  -- select is any valid selection such as THR or 1-30 
#  -- automatically adds "visible &" to atoms or select 
#  -- requires sync ON
# new feature: NFF neutral file format reader (http://paulbourke.net/dataformats/nff/nff1.html)
#              for electron microscopy data exported from IMOD
# new feature: preliminary JCAMP-DX file reader, where <models></models> is present
# new feature: when picking struts or delete bond or measure, distance shows as per usual measurement
# bug fix: Popup Menu item hbond calculate should not require PDB

# =============================================================================

#version=12.3.14

# bug fix: state after frame RANGE or frame 0 not saved properly (state saves "frame all" instead of "frame 0")
# bug fix: frame n  does not work properly after load APPEND
# bug fix: measurement units may appear as full word "nanometers" instead of "nm"
# bug fix: user bindings do not access _atomPicked
#  -- solution is to add _ATOM _BOND _POINT _OBJECT to user binding actions

# =============================================================================

#version=12.3.13

# bug fix: getProperty("bondinfo",[{13}]) gets info for atom 13 instead of bond 13 
# bug fix: isosurface offset does not change boundbox or zoom/center points
# new feature: isosurface SCALE extends to volume file readers
# new feature: zoom $isosurface1 0  -- scales to match isosurface boundbox
# note to Bob: jpe needs update of img/blank.js  js/top_buttons.js htm1/quickvs.js,qv_msgs.js molview/JmolAppletSigned.jar

# =============================================================================

#version=12.3.12

# bug fix: symmetry popup submenu not enabled
# bug fix: show spacegroup not working
# bug fix: lcaocartoon for allene central carbon py incorrect
# bug fix: antialiasdisplay (and image writing) not compatible with scaleAngstromsPerInch
# bug fix: last group of protein cartoon will not display if it is not helix and not sheet
# bug fix: getproperty MENU does not work
# bug fix: PDB reader of multiple-bond files with duplicated bonds does not ignore duplicate

# =============================================================================

#version=12.3.11

# new feature: plot ramachandran -- now those points .phi and psi return values
# -- load 1crn.pdb;plot ramachandran;print {2.1}.psi
# new feature: LOAD .... filter "reverseModels"
#  -- does just that
#  -- for IRC calculation transition state -> minimum reversal
# new feature: measures "2:%VALUE %UNITS//xx" 
#  -- where xx is a specified unit such as nm or Angstroms
#  -- overrides set measurementUnits
#  -- fixes state problem when units or labels are changed after measurements are made
#  -- operates on selected measurements only (or all, if no measurements are selected) 

# bug fix: frame 0 during animation can cause exception
# bug fix: changes in defaultDistanceLabel not always preserved in state correctly
# bug fix: parameters can be set to invalid values using xxx = ... instead of set xxx ...
# bug fix: (Application) proper Edit...Preferences dialog action

# =============================================================================

#version=12.3.10

# new feature: _animTimeSec
# new feature: Application -- press and hold animation next/prev button to continuously run animation
# new feature: write PDB adds CONECT records 
#  -- for all multiple bonding and all HETATM bonds
#  -- uses CONECT i j j  to indicate multiple bonding
# new feature: compare {from} {to} FRAME
#  -- aligns frames automatically
#  -- particularly nice for IRC calculation animations
#  -- for example: compare {file=2} {1.1} FRAME
#  -- can be followed by quaternion, atom, or SMILES options
#  -- for example: compare {file=2} {1.1} FRAME ATOMS @1 @5  @2 @8  @3 @9
#     (all of file 2 atoms moved) file 2 atoms 1,2,3 aligned 
#      with file 1.1 atoms 5,8,9)
#  -- if {to} is a subset of {from}, then FRAME is unnecessary,
#     and if ATOMS is included, then just the list of alignment
#     atoms is necessary. For example:
#        compare {*} {1.1}
#        compare {*} {1.1} atoms @1 @2 @3
#  -- see http://chemapps.stolaf.edu/jmol/docs/examples-12/mp for more examples

# bug fix: script @{x} fails
# bug fix: Molecular Playground should allow for set allowGestures OFF to disallow swipe
# bug fix: lcaoCartoon dual color p orbitals giving white for one lobe
# new feature: set echo myecho SCALE 0.3 -- for image scaling
# bug fix: after "ZAP; LOAD append"  show orientation will have incorrect zyz script  
# bug fix: function call with @x or @1 in parameters fails
# bug fix: PNGJ reading remote fails
# bug fix: H5T should not be used as a lead atom ever, because of set showHydrogens FALSE
# bug fix: adding H atoms to mol2 file faulty
# bug fix: load xxx.png;write PNGJ xxx.png (to same file as loaded) fails 

# =============================================================================

#version=12.3.9

# new feature: FRAME DELAY x.y 
#  -- specific delay (in seconds) in animation at a given frame
#  -- applies to all currently in-frame models
# bug fix: set isKiosk should:
#      (a) not be reversible
#      (b) not allow file saves other than logging
#      (c) not allow prompt dialogs
#      (d) not allow console or popup menu or ScriptEditor 
# bug fix: background colors saved to state can be off very slightly
# bug fix: draw PLANE with three vertices problems after save -- four-atom planes, not three
# bug fix: x = file("?") fails on Cancel
# bug fix: delay not allowed within try{...}

# =============================================================================

#version=12.3.8

# new feature: MolecularPlayground -- remote status and remote control
#  -- see for example http://chemapps.stolaf.edu/jmol/mpstatus.php
#  -- set topic, subtopic, delay from a web page
#  -- set banner and image for website from Jmol
# new feature: load("http://.....?POST?_PNG_") or load("http://....?POST?_PNGJ_")
#  -- sends PNG or PNGJ image to server
#  -- return value is whatever server is set up to send
#  -- used by MolecularPlayground at St. Olaf to send current state to web server
# new feature: polyhedra FULLYLIT  -- useful for zeolites along with COLLAPSED
# new feature: ZMATRIX upgraded to allow all forms of Gaussian input
#  http://www.gaussian.com/g_tech/g_ur/c_zmat.htm

# bug fix: set picking DRAW does not work on polygon sets
# bug fix: set picking DRAW does not report position change
# bug fix: MPJmolApp (Molecular Playground) problems when navigation is on
# bug fix: CifReader (molecular type, with GEOM_BOND records) adds 
#          extra atoms when embedded in JMOL or PNGJ file or part load FILES command
# bug fix: PdbReader -- crystallographic non-PDB files not checking special positions

# =============================================================================

#version=12.3.7

# bug fix: show orientation shows incorrect zyz format if reset uses file-based orientation matrix (smol, Sygress)
# bug fix: isosurface plane xy map mep
# code: MPJmolApp work
# bug fix: user variables should not be rest by INITIALIZE in an spt file
# new feature: "Write PNG+JMOL" added to application and signed applet menu
# code: dispensing with InputStream in favor of BufferedInputStream
# new feature: write PNGJ
#  -- creates a PNG file with appended JMOL (zip) data containing
#     all necessary files, MANIFEST, and script file.
#  -- viewable in directories as an "icon" and readable by image readers
#  -- draggable back into Jmol and readable using LOAD 
#  -- PNG file includes:
#     -- iTXt field "Jmol Type\0PNGJxxxxxxxxx+yyyyyyyyy"
#        where xxxxxxxxx is a pointer to the ZIP data
#              yyyyyyyyy is the number of ZIP data bytes
#     -- iTXt field "Software\0Jmol 12.3.7  2011-10-11 15:30"
#     -- iTXt field "Creation Time\0Tue, 24 Nov 2011 19:56:10 -0600"
#     -- yyyyyyyyy bytes of .JMOL zip data 
#  -- show FILE "xxx.PNG" will show list of contained files.
#  -- show state FILE "xxx.PNG" will extract state
#  -- show FILE "xxx.PNG|1crn.pdb" for example will extract file
 
# bug fix: x3d/vrml outputting unnecessary spheres
#  -- bond caps within opaque atoms removed (not precisely correct to do that)
# bug fix: minimization broken
# bug fix: contact still not quite right -- setting default to +0.0 instead of +0.25

# new feature: simple Z-Matrix reader 
#  -- invoked by ZMATRIX:: or file starting with #ZMATRIX
#  -- lines starting with # are comments, which can contain jmolscript:
#  -- blank lines are ignored
#
#  #ZMATRIX -- methane
#  C
#  H   1 1.089000     
#  H   1 1.089000  2  109.4710      
#  H   1 1.089000  2  109.4710  3  120.0000   
#  H   1 1.089000  2  109.4710  3 -120.0000
#  
#  -- allows bond order specification
#  
#  #ZMATRIX -- CO2 
#  C
#  O   1 1.3000                 2     
#  O   1 1.3000    2  180       2      
#  
#  -- any position number may be replaced by a unique atom name, with number:
#  
#  #ZMATRIX -- CO2
#  C1
#  O1   C1 1.3000                2     
#  O2   C1 1.3000    O1  180     2      
#  
#  -- allows for dummy atoms Xn, allowing for positioning:
#  
#  #ZMATRIX -- CO2
#  X1
#  X2   X1 1.0
#  C1   X1 1.0       X2 90
#  O1   C1 1.3000    X2 90   X1 0  2     
#  O2   C1 1.3000    O1 180  X2 0  2      
#  
#  -- negative distance indicates that the second angle is a normal angle, not a dihedral
#  
#  #ZMATRIX -- NH3 (using simple angles only)
#  N1 
#  H1 N1 1.0
#  H2 N1 1.0 H1 107  
#  H3 N1 -1.0 H1 107 H2 107
#  
#  -- negative distance and one negative angle reverses the chirality
#  
#  #ZMATRIX -- NH3 (using simple angles only; reversed chirality)
#  N1 
#  H1 N1 1.0
#  H2 N1 1.0 H1 107  
#  H3 N1 -1.0 H1 -107 H2 107
#  
#  
#  -- symbolics may be used -- they may be listed first or last
#  
#  #ZMATRIX
#  
#  dist 1.0
#  angle 107
#  
#  N1 
#  H1 N1 dist
#  H2 N1 dist H1 angle 
#  H3 N1 -dist H1 angle H2 angle
#  
#  -- If #ZMATRIX is not the start of the file, MOPAC style is assumed.
#     The first two lines will be considered to be comments and ignored:
#  
#   AM1
#  Ethane
#   
#  C
#  C     1     r21
#  H     2     r32       1     a321
#  H     2     r32       1     a321      3  d4213
#  H     2     r32       1     a321      3 -d4213
#  H     1     r32       2     a321      3   60.
#  H     1     r32       2     a321      3  180.
#  H     1     r32       2     a321      3  d300
#  
#  r21        1.5
#  r32        1.1
#  a321     109.5
#  d4213    120.0
#  d300     300.0


# =============================================================================

#version=12.3.6

# new feature: load files "xxx.tlsout" "xxxx.pdb"
#  -- loads REFMAC-style TLS data into xxxx.pdb 

# new feature: contact SASURFACE <radius>
#  -- ignores solvent (as does CAP)

# bug fix: contact command hbond/clash cutoff not sensitive to H-O/N vs O/N-O/N
#   -- set to -1.2 for H-N/O, -1.0 for N/O-N/O
# bug fix: contact command default probe radius should be 0.0 except for VDW (0.25) 

# bug fix: minimize constraint CLEAR  broken
# bug fix: constraints not reported in show minimization
# bug fix: set measures off broken
# bug fix: contact color density broken
# bug fix: contact volume report not correct for color density
# bug fix: MO HOMO not set properly when using LUMO = "lowest E > 0" (GAMESS-US reader)
# bug fix: zSlab settings not stored properly in parameters; should have default zSlab = 50

# =============================================================================

#version=12.3.5

# new feature: color isosurface PHASE color1 color2
#  -- allows post-isosurface creation coloring by phase (atomicOrbitals)
# bug fix: isosurface scale 0.5 plane... broken if no atoms present
# bug fix: isosurface color density broken
# bug fix: set PdbAddHydrogens does not transfer C atomSymmetry to H atoms
# bug fix: contact() function not working when typed from console
# bug fix: set axesOrientationRasmol not working properly (since 11.5.51)

# code: org.jmol.modelsetbio.BioModel localizes more bio-only code into modelsetbio package
# code: removal of org.jmol.modelset.Polymer
# code: refactoring and organizing RepaintManager and ShapeManager

# =============================================================================

#version=12.3.4

# bug fix: frame x.y - y.z not working 
# bug fix: with antialiasDisplay, dragMolecule goes 1/2 speed of cursor
# bug fix: nucleic acid residues with HO5' may render last group strangely (since 12.0.RC16, 6/6/2010)
# bug fix: workaround for weird Mac Point3i(Point3i pt) class initializer bug
# bug fix: array.bin(low,high,binSize) not documented and can cause exception
# bug fix: MO readers can fail if inappropriate filter "TLS" is given
# bug fix: PDB TLS error reading TLS data missing "NUMBER OF COMPONENTS" line

# =============================================================================

#version=12.3.3

# new feature: ellipsoid SET 1; ellipsoid SET 2;
#   -- TLS ellipsoids are dual 
#   -- TLS-S is SET 1; TLS-T is SET 2
#   -- after issuing this command, further size or color commands affect only that set
#   -- needs verification by Ethan Merrit
# new feature: load xxx.pdb filter "TLS" -- loads TLS data
# new feature: atom property property_tlsGroup
# new feature: MolecularPlayground now accepts messages to the banner:
#   message banner: xxxxxxx
# new feature: MolecularPlayground fully functional. 
#              This application (MPJmolApp) is part of a three-part suite 
#              that runs on a Mac mini involving:
#                 "Hub" [name]   for overall control (Mac app; not open source yet)
#                 MPKinectDriver for obtaining motion events (Mac app; not open source yet)
#                 MPJmolApp      for displaying the results (source here)
#              The Hub and MPJmolApp communicate over local port 31416, sending 
#              JSON messages back and forth. (See note in org.jmol.app.jsonkiosk.JsonNioService.java)
#              For demonstrations of the installation at St. Olaf College,
#              see the following YouTube videos:
#                 http://www.youtube.com/watch?v=iQRkuku8ry0
#                 http://www.youtube.com/watch?v=XCRrRZe1j6g
#                 http://www.youtube.com/watch?v=FTTIVWGtFD0
#              For details relating to the original Molecular Playground
#              installation at U. Mass.-Amherst, see
#                 http://molecularPlayground.org
#              Note that all of the functionality of the original MP are
#              present in MPJmolApp 
# new feature: MolecularPLayground can now ignore all Hub requests for
#              commands and content changes, thus allowing its own configuration
#              script to drive the presentation instead of the Hub's. So the Hub
#              can be used simply as an interface to the Kinect driver. This just
#              allows a simpler development interface -- a simple three-column Excel file can
#              be used to drive a presentation. (see org.jmol.molecularplayground.biophysics.xlsx)
#   -- MPJmolApp looks for the file MpJmolAppConfig.spt
#   -- This file can override MPJmolApp's default parameters:
#          NIOContentPath 
#             -- default: System.getProperty("user.dir").replace('\\', '/') 
#                            + "/Content-Cache/%ID%/%ID%.json"
#             -- ignored if NIOcontentDisabled ends up true (see below)
#          NIOterminatorMessage
#             -- default: "MP_DONE"
#          NIObannerEnabled
#             -- default: true
#          NIOcontentScript
#             -- default: (not present, setting NIOcontentDisabled=false)
#          NIOcontentDisabled
#             -- default: true if NIOcontentScript is present; false if not
#          NIOmotionDisabled
#             -- default: false
#   -- The script in MpJmolAppConfig.spt is run, along with whatever
#      default settings are generated by the above checks.
#   -- Parameters are set by querying the Viewer for those Jmol variables. 
#   -- If NIOcontentDisabled is true, then all JSON messages from the Hub
#      of types "content", "command", and "banner" are ignored. It is still
#      important that the running script send "MP_DONE" messages periodically
#      (within every 6 minutes) so that the Hub knows that MPJmolApp is still
#      alive and does not try to restart it.
#   -- If NIOmotionDisabled is true, then all JSON messages from the Hub
#      of types "move", "sync", and "touch" are ignored. 
#   -- These are checked every time a JSON command is received, so the
#      running script can specifically turn off motion detection if that
#      or content detection if that is desired.
#   -- Note that MPJmolApp has a full console and menu that are available
#      on the operator's screen, (which is just mirrored to the projector).
#      This allows for parameter setting and adjustments on the fly.
#
# new feature: show NMR
#  -- predicted NMR spectrum
#  -- uses http://www.nmrdb.org/predictor?smiles=xxxx
#  -- requires NCI SMILES due to bug at nmrdb not allowing "." 

# bug fix: CRYSTAL reader not properly setting model properties
# bug fix: userFunction(x,@y) should operate as per all math 
#  -- parens - value of variable pointed to by y
#  -- x = myfunc(x, @y) same action as just myfunc(x, @y)
# bug fix: userFunction x @y  
#  -- no parens - should operate as value of x and value of y
#  -- @ is unnecessary but allowed
# bug fix: set echo "myecho" [10 10%] not working
# bug fix: apiPlatform not correctly accessed in JpegEncoder
# bug fix: reading of JVXL files for color density fails to color properly
# bug fix: .... vdw 100.0%  --- should be OK with float there, even if it rounds.

# code: refactored for Molecular Playground and Jmol Android 
#  -- several System.out. messages present.
# code: refactoring adapter XML readers

# =============================================================================

#version=12.3.2

# bug fix: array.bin(low,high,binSize) not documented and can cause exception
# new feature: PQR write option
# bug fix: load append twice can cause zap to be in wrong place in state file
# bug fix: for (x IN {*}) ... makes x a bitset and leads to array[1] for x.atomName
# bug fix: for (x IN {*}.bonds) does not work
# new feature: show chemical XXXXX  where XXXXX is any NCI Cactus information token:
#   stdinchikey			Standard InChIKey	
#   stdinchi				Standard InChI	
#   smiles					SMILES	
#   ficts						FICTS Identifier	
#   ficus						FICuS Identifier	
#   uuuuu						uuuuu Identifier	
#   hashisy					Cactvs HASHISY	
#   sdf							SD File	
#   names						Names	
#   iupac_name			IUPAC Name	
#   cas							CAS Registry Number(s)	
#   chemspider_id		ChemSpider ID	
#   mw							Molecular Weight	
#   formula					Chemical Formula	
#   h_bond_donor_count	      Number of Hydrogen Bond Donors	
#   h_bond_acceptor_count	    Number of Hydrogen Bond Acceptors	
#   h_bond_center_count	      Number of Hydrogen Bond Acceptors and Donors	
#   rule_of_5_violation_count	Number of Rule of 5 Violations	
#   rotor_count	              Number of Freely Rotatable Bonds	
#   effective_rotor_count	    Number of Effectively Rotatable Bonds	
#   ring_count	              Number of Rings	
#   ringsys_count	            Number of Ring Systems	

# bug fix: POV-Ray export of cartoons broken
# bug fix: script javascript:xxxx()  broken
# new feature: set vectorSymmetry -- displays vibration vectors as double-ended arrows.
# bug fix: SMILES comparison when the number of stereocenters is not the same is wrong
# new feature: compare("XXX","XXXX","ISOMER") comparison now includes "AMBIGUOUS STEREOCHEMISTRY!"
# code: popup/modelkit refactoring to isolate awt/Swing references
# bug fix: connection deletion removes all measurements -- can't imagine why...
# code: JmolModelKitInterface part of apiPlatform call
# code: JmolPromptInterface replaced with apiPlatform call

# =============================================================================

#version=12.3.1

# bug fix: H2,H3 connected to terminal N of protein not backbone
# bug fix: select PROTEIN selects non-PDB atoms
# new feature: CASTEP reader (take 2)
#  -- reads Mulliken files by default, Hirshfield with filter "CHARGE=HIRSH"
#  -- reads spins into {*}.property_spin. label is %[property_spin]
#  -- reads Born charge tensors as atom ellipsoids
# bug fix: Molden reader does not read "Sym=X" (missing space after '=')
# bug fix: Molden reader does not read angstrom units
# bug fix: color isosurface {atomset} <color>  does not work if isosurface has not already been mapped.
# bug fix: PDB reader not reading Rasmol-style files with multiple bonding
#  CONECT   1  2  2
#    or
#  CONECT   1  2      
#  CONECT   1  2 
#     means for Rasmol double bond between atoms 1 and 2

# code: experimenting with fragmentation of applet core classes into _1b, _1c, _1d, _1e, _1f

# version=12.3.0

# October 4, 2011

