texlive[73324] Master/texmf-dist: mcf2graph (5jan25)

commits+karl at tug.org commits+karl at tug.org
Sun Jan 5 21:57:40 CET 2025


Revision: 73324
          https://tug.org/svn/texlive?view=revision&revision=73324
Author:   karl
Date:     2025-01-05 21:57:40 +0100 (Sun, 05 Jan 2025)
Log Message:
-----------
mcf2graph (5jan25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp
    trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf
    trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,6 +1,32 @@
 *******************************************************************************
- Changelog of mcf2graph software package          by Akira Yamaji 2024-12-01
+ Changelog of mcf2graph software package          by Akira Yamaji 2025-01-05
 *******************************************************************************
+[ver. 5.16  / 2025-01-05]
+  -change syntax of methyl group
+   /_  => ?
+   */_ => ?w
+   /*_ => ?z
+   //_ => ?d
+  -change syntax of just after jump atom
+   @n,\   => @n,!
+   @n,\\  => @n,!d
+   @n,*\  => @n,!w
+   @n,\*  => @n,!z
+   @n,*\* => @n,!~wv
+  -change syntax of scaled fused ring
+   ?n[m] => #m'?n
+  -change option parameter name
+   sw_abbreviate => sw_omit
+  -change ratio parameter
+   ratio_char_bond => ratio_char_atom
+  -delete command \,\\,*\,\*,*\*,_
+  -delete option for sw_numbering
+   numbering_start,numbering_end
+  -delete Calc option for sw_output
+  -update mcf2graph.mp
+  -update main_lib.mcf
+  -update MCF manual,example,template
+
 [ver. 5.15  / 2024-12-01]
   -change syntax of separator inside @(..)
    @(a,b) => @(a'b)

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,7 +1,7 @@
 ********************************************************************************
  mcf2graph  : Convert Molecular Coding Format to graphics with MetaPost
  Author     : Akira Yamaji
- version    : 5.15 2024-12-01
+ version    : 5.16 2025-01-05
  E-mail     : mcf2graph at gmail.com
  Located at : http://www.ctan.org/pkg/mcf2graph
 ********************************************************************************
@@ -50,7 +50,7 @@
  (9) >mpost -s ahlength=7 filename.mp  => output report file
 
 5. License
- mcf2graph ver 5.15   Copyright (c) 2013-2024   Akira Yamaji
+ mcf2graph ver 5.16   Copyright (c) 2013-2025   Akira Yamaji
 
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,19 +1,19 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF metapost souce file example                 by Akira Yamaji  2024.12.01
-% Public domain.
+% MCF metapost souce file example                 by Akira Yamaji  2025.01.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.15
-message "* mcf_template 2024.12.01";
+if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.16
+message "* mcf_template 2025.01.05";
 message "";
 %------------------------------------------------------------------------------
+%%%%sw_output:=Fig+Report;
 fsize:=(30mm,20mm);
 max_blength:=4mm;
-%%%%sw_output:=Fig+Info;
-%%%%sw_output:=Fig+Calc;
+%%%%sw_numbering:=Atom+Bond;
+%%%%sw_frame:=Atom;
 %%%%ext(defaultscale:=.3; label.rt(EN,(0,0));)
 %------------------------------------------------------------------------------
-%%%%ext(defaultfont:=mpfont; defaultscale:=.3;
-%%%%label.rt(EN&" / "&mw&" / "&fdr(7)(MW_n-scantokens(MW)),(0,0));)
+ext(defaultfont:=mpfont; defaultscale:=.3;
+label.rt(EN&" / "&mw&" / "&fdr(7)(MW_n-scantokens(MW)),(0,0));)
 %------------------------------------------------------------------------------
 %%%%loadm("CAT=biological","MW<200","a:MW");
 %%%%loadm("CAT=biological","MW<50.0","a:EN");

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF   Typeset with LuaLaTeX(luamplib)   by A.Yamaji   2024.12.01
+% Example of MCF   Typeset with LuaLaTeX(luamplib)   by A.Yamaji   2025.01.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.15
+% ** mcf2graph.mf must be version 5.16
 % ** use mcf_library.mcf
 % ** typeset by LuaLaTeX(luamplib)
 %-------------------------------------------------------------------------
@@ -12,10 +12,10 @@
 \mplibnumbersystem{double}
 \mpliblegacybehavior{disabled}
 %-------------------------------------------------------------------------
-\pagestyle{empty}
-\topmargin=-24mm
+\pagestyle{headings}
+\topmargin=-22mm
 \oddsidemargin=-12mm
-\textwidth=192mm
+\textwidth=190mm
 \textheight=280mm
 \parindent=0mm
 \newcount\headeroff
@@ -29,7 +29,7 @@
  Author : Akira Yamaji \quad Date : \today \\
  Located at : http://www.ctan.org/pkg/mcf2graph
 \end{center}
-{\small *use 'mcf2grapf.mp' ver 5.14  \quad
+{\small *use 'mcf2grapf.mp' ver 5.16  \quad
         *typeset with LuaLaTeX \quad
         *use molecular library file 'main\_lib.mcf' \\
         ** FM(fm):molecular formula (calculated) \quad 
@@ -52,7 +52,6 @@
 %-------------------------------------------------------------------------
 \begin{mplibcode}
   input mcf2graph;
-  sw_output:=Fig+Calc;
   fsize:=(35mm,24mm);
   max_blength:=4mm;
   loadm("EXA=1");
@@ -61,7 +60,7 @@
 \loop%
 \advance\fig at num\@ne\relax%
 \advance\col at num\@ne\relax%
-\ifnum\fig at num=276 \CONT at false%
+\ifnum\fig at num=516 \CONT at false%
 \else%
 \sbox{\fig at box}{%
 \begin{mplibcode}
@@ -94,7 +93,7 @@
 \begin{mplibcode}
   loadm("EXA=2");
   fig_num:=0;
-  fsize:=(50mm,34mm);
+  fsize:=(50mm,33mm);
   fmargin:=(4mm,4mm);
   max_blength:=4mm;
   row_h:=3.8mm;
@@ -114,7 +113,7 @@
 \fig at num=0%
 \loop%
 \advance\fig at num\@ne\relax%
-\ifnum\fig at num=25 \CONT at false%
+\ifnum\fig at num=41 \CONT at false%
 \else%
 \begin{mplibcode}%
   beginfigm
@@ -148,7 +147,7 @@
       VerbatimTeX("\gdef\EN{"&EN&"}");
    fi
   endfigm
-\end{mplibcode}\vspace{-1.2pt}\\
+\end{mplibcode}\vspace{-1.5pt}\\
 %------------------------------------------------------------------------
 \fi%
 \message{[\the\fig at num:\EN]}%

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  Molecular Coding Format manual                by  Akira Yamaji 2024.12.01
+%  Molecular Coding Format manual                by  Akira Yamaji 2025.01.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.15
+% ** mcf2graph.mf must be version 5.16
 % ** use main_lib.mcf
 % ** typeset by LuaLaTeX(luamplib)
 %----------------------------------------------------------------------------
@@ -37,7 +37,7 @@
 \author{Akira Yamaji}
 \date{\today}
 \maketitle
-\begin{center} mcf2graph version 5.14 \end{center}
+\begin{center} mcf2graph version 5.16 \end{center}
 \begin{center} Located at http://www.ctan.org/pkg/mcf2graph \end{center}
 \begin{center} Suggestion or request mail to: mcf2graph at gmail.com \end{center}
 %-----------------------------------------------------------------------------
@@ -45,7 +45,6 @@
 \vspace{5mm}%
 \quad
 \begin{mplibcode}
-sw_output:=Fig+Calc;
 max_blength:=10mm;
 ratio_thickness_bond:=0.015;
 ratio_atom_bond:=0.36;
@@ -56,7 +55,7 @@
 % Glycine
 beginfigm \(<30,NH2,!2,COOH) endfigm
 % L-Alanine
-beginfigm \(<30,NH2,!~wb,/_,!,COOH) endfigm
+beginfigm \(<30,NH2,!~wb,?,!,COOH) endfigm
 % L-Valine
 beginfigm \(<30,NH2,!~wb,/?!,!,COOH) endfigm
 % L-Leucine
@@ -82,7 +81,7 @@
 % L-Tyrosine
 beginfigm \(<30,NH2,!~wb,/!Ph'(-3:/OH),!,COOH) endfigm
 % L-Triptophan
-beginfigm \(<30,NH2,!~wb,!,COOH, at 2,\,!,<24,|,?5,-4=Ph,2=dr,5=dl,4:NH) endfigm
+beginfigm \(<30,NH2,!~wb,!,COOH, at 2,!2,<24,|,?5,-4=Ph,2=dr,5=dl,4:NH) endfigm
 \end{mplibcode}
 \\
 \begin{mplibcode}
@@ -89,7 +88,7 @@
 % L-Prorine
 beginfigm \(<18,?5,3:NH,4:*/COOH) endfigm
 % L-Glutamine
-beginfigm \(<30,NH2,!~wb,!,COOH, at 2,\`1,!`1,!,//O,!,NH2) endfigm
+beginfigm \(<30,NH2,!~wb,!,COOH, at 2,!2,!,?O,!,NH2) endfigm
 % L-Asparagine
 beginfigm \(<30,NH2,!~wb,/!'?O'!NH2,!,COOH) endfigm
 % L-Aspartic acid
@@ -102,14 +101,14 @@
 % L-Lysine
 beginfigm \(<30,NH2,!~wb,/!4'NH2,!,COOH) endfigm
 % L-Arginine
-beginfigm \(<30,NH2,!~wb,!,COOH, at 2,\`1,!`1,!2,NH,!,//NH,!,NH2) endfigm
+beginfigm \(<30,NH2,!~wb,!,COOH, at 2,!2`1,!2,NH,!,//NH,!,NH2) endfigm
 % L-Hystidine
-beginfigm \(<30,NH2,!~wb,!,COOH, at 2,\,!,|,?5,1'3=dl,3:N,5:NH) endfigm
+beginfigm \(<30,NH2,!~wb,!,COOH, at 2,!2,|,?5,1'3=dl,3:N,5:NH) endfigm
 \end{mplibcode}
 \\
 \begin{mplibcode}
 % L-DOPA
-beginfigm \(<30,NH2,!~wb,!,COOH, at 2,\,!,Ph,-3'-4:/OH) endfigm
+beginfigm \(<30,NH2,!~wb,!,COOH, at 2,!2,Ph,-3'-4:/OH) endfigm
 % Ornithine
 beginfigm \(<30,NH2,!~wb,/!3'NH2,!,COOH) endfigm
 % Citrulline
@@ -120,7 +119,7 @@
 \\
 \begin{mplibcode}
 % amino Levulinic acid
-beginfigm \(<30,NH2,!2,//O,!3,COOH) endfigm
+beginfigm \(<30,NH2,!2,?O,!3,COOH) endfigm
 % 4-amino benzoic acid
 beginfigm \(<30,Ph,1:/NH2,4:/COOH) endfigm
 % L-Carboxyl glutamic acid
@@ -160,13 +159,12 @@
 sw_frame:=Outside;
 blength:=0;
 beginfigm
-  #(60mm,17mm);
+  #(60mm,18mm);
   sw_numbering:=Bond;
-  numbering_end:=6;
   ratio_chain_ring:=1;
 %----------------------------------------------------------------------
   \(<15,-30,45,-45,60,$300,$0,
-       {1^$15'2^$345'3^$30'4^$345}:/_~dt,5'6=vf
+       {1^$15'2^$345'3^$30'4^$345}:?~dt,5'6=vf
      )
   ++(
     defaultscale:=0.5;
@@ -183,7 +181,7 @@
 \index{"!}%
 \begin{verbatim}
 !  : take value 60 or -60 depend on
-     current angle and environment
+     current angle
 !6 : !,!,!,!,!,!
 
 <-30,!6
@@ -191,13 +189,12 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,17mm);
+  #(60mm,20mm);
   sw_numbering:=Bond;
-  numbering_end:=6;
   ratio_chain_ring:=1;
 %----------------------------------------------------------------------
   \(<-30,!6,
-       {1^-120'2^60'3^-60'4^60'5^-60'6^60}:/_~dt
+       {1^-120'2^60'3^-60'4^60'5^-60'6^60}:?~dt
      )
   ++(
     defaultscale:=0.5;
@@ -212,13 +209,11 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Jump to atom}
-\index{"@}%
 \begin{verbatim}
- at n : Jump to An
-** An: atom number(-999<=n<=4095)
+take value 0 just after jump to atom
+ at n,! : !=0
 
-<-30,!6, at 3,0,!, at 5,-30
+<-30,!5, at 3,!
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -227,74 +222,78 @@
   sw_trimming:=1;
   sw_numbering:=Atom;
   ratio_chain_ring:=1;
-  \(<-30,!6, at 3,0,!, at 5,-30)
+  \(<-30,!6, at 3,!)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Branch bond}
-\index{\textbackslash}%
+\subsubsection{Jump to atom}
+\index{"@}%
 \begin{verbatim}
-\ : 0
+ at n : Jump to An
+** An: atom number(-999<=n<=4095)
 
-<-30,!6, at 3,\,!
+<-30,!6, at 3,0, at 5,-30
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(60mm,16mm) #@(2mm,2mm)
+  sw_trimming:=1;
   sw_numbering:=Atom;
-  sw_trimming:=1;
   ratio_chain_ring:=1;
-  \(<-30,!6, at 3,\,!)
+  \(<-30,!6, at 3,0, at 5,-30)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Branch modified bond}
-\index{*\textbackslash}%
-\index{\textbackslash*}%
-\index{\textbackslash\textbackslash}%
-\index{*\textbackslash*}%
+\subsubsection{Branch bond}
+\index{\textasciicircum}% ^
+\index{\textasciitilde}% ~
+\index{`}%
+\index{"!w}%
+\index{"!z}%
+\index{"!d}%
 \begin{verbatim}
-\   : 0
-*\  : 0~wf
-\*  : 0~zf
-\\  : 0~dm
-*\* : 0~wv
+ at n,!   : @n,!
+ at n,!w  : @n,!~wf
+ at n,!z  : @n,!~zf
+ at n,!d  : @n,!~db
+ at n,!dr : @n,!~dr
 
-<30,!8,
- at 2,\,!, at 4,*\,!, at 6,\*,!, at 8,\\,!, at 10,*\*,!
+<30,!10,
+ at 2,!,!, at 4,!w,!, at 6,!z,!, at 8,!d,!, at 10,!dr,!
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,16mm) #@(2mm,2mm)
+  #(80mm,20mm) #@(2mm,2mm)
   sw_numbering:=Atom;
-  sw_trimming:=1;
-  numbering_end:=10;
   ratio_chain_ring:=1;
-  \(<30,!10, at 2,\,!, at 4,*\,!, at 6,\*,!, at 8,\\,!, at 10,*\*,!)
+  \(<30,!10, at 2,!,!, at 4,!w,!, at 6,!z,!, at 8,!d,!, at 10,!dr,!)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\index{\textasciicircum}% ^
-\index{\textasciitilde}% ~
-\index{`}%
+\subsubsection{Rotate current angle}
+\index{\textgreater}%
 \begin{verbatim}
-<30,!6,
-\~dr,!,   : 0~dr,!
-\`1.5,-90 : 0`1.5,-90
-\^15,-60  : 0^15,-60
+<angle : rotate current angle
+
+0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0 
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,20mm) #@(2mm,2mm)
+  #(62mm,22mm) #@(2mm,3mm)
   sw_trimming:=1;
-  sw_numbering:=Atom;
-  numbering_end:=7;
+  sw_numbering:=Bond;
   ratio_chain_ring:=1;
-  %-------------------------
-  \(<30,!6, at 2,\~dr,!, at 4,\`1.5,-90, at 6,15,-60)
+    defaultscale:=0.5;
+    labeloffset:=2bp;
+  \(#1,0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0,{1:7}=vf,
+      {3,4^180}:?~dt)
+  ++(
+    drawarrow B8/*.7{B8left}..{B3left}B3/*.7;   label.urt("90",B8/*.7);
+    drawarrow B9/*.7{B9right}..{B4right}B4/*.7; label.urt("-90",B9/*.7);
+  )
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -303,7 +302,7 @@
 \begin{verbatim}
 &n : Connect to An
 
-<-30,!6, at 3,\,!3,&6~bd, at 9,&4~bz
+<-30,!6, at 3,!,!3,&6~bd, at 9,&4~bz
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -313,15 +312,14 @@
   sw_numbering:=Atom;
   ratio_chain_ring:=1;
   %----------------------------------
-  \(<-30,!6, at 3,\,!3,&6~bd, at 9,&4~bz)
+  \(<-30,!6, at 3,!,!3,&6~bd, at 9,&4~bz)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsubsection{Ring}
-\index{?}%
+\index{?n}%
 \begin{verbatim}
 ?n : n membered ring(3<=n<=20)
-?6 : <-120,60,60,60,60,60,&1
 ?6
 \end{verbatim}
 %-----------------------------------------
@@ -335,29 +333,19 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Rotate current angle}
-\index{\textgreater}%
+\subsubsection{Ring length}
 \begin{verbatim}
-<angle : rotate current angle
+?n`length : change ring length
 
-0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0 
+?6, at 4,!,?6`1.2
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,20mm) #@(2mm,3mm)
+  #(60mm,20mm) #@(2mm,2mm)
   sw_trimming:=1;
   sw_numbering:=Bond;
-  ratio_chain_ring:=1;
-  numbering_end:=7;
-    defaultscale:=0.5;
-    labeloffset:=2bp;
-  \(#1,0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0,{1:7}=vf,
-      {3,4^180}:/_~dt)
-  ++(
-    drawarrow B8/*.7{B8left}..{B3left}B3/*.7;   label.urt("90",B8/*.7);
-    drawarrow B9/*.7{B9right}..{B4right}B4/*.7; label.urt("-90",B9/*.7);
-  )
+  \(?6, at 4,!,?6`1.2)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -503,7 +491,7 @@
 
 <30,!8,!,60,90`18,
 {2~si_'4~wf_'6~wb_'8~zf_'10~zb_'
-  12~bd_'14~dl_'16~dr_'18~dm_}:/_`2
+  12~bd_'14~dl_'16~dr_'18~dm_}:?`2
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -513,7 +501,7 @@
   ratio_chain_ring:=1;
   \(<30,!18,$90`1.5,90`15.5,
      {2~si_'4~wf_'6~wb_'8~zf_'10~zb_'
-      12~bd_'14~dl_'16~dr_'18~dm_}:/_`2)
+      12~bd_'14~dl_'16~dr_'18~dm_}:?`2)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -563,7 +551,7 @@
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsection{Change bond length}
-\subsubsection{Chain length}
+\subsubsection{Chanege chain length}
 \index{`}%
 \begin{verbatim}
 (!,!n)`length : change length of !,!n
@@ -579,6 +567,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
+\subsubsection{Change multiple bond length}
 \index{\#}%
 \index{\#\#}%
 \begin{verbatim}
@@ -596,22 +585,6 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Ring length}
-\begin{verbatim}
-?n`length : change ring length
-
-?6, at 4,\,?6`1.2
-\end{verbatim}
-%-----------------------------------------
-\begin{mplibcode}
-beginfigm
-  #(60mm,16mm) #@(2mm,2mm)
-  sw_trimming:=1;
-  sw_numbering:=Bond;
-  \(?6, at 4,\,?6`1.2)
-endfigm
-\end{mplibcode}
-%-----------------------------------------------------------------------------
 \subsection{Change atom}
 \subsubsection{Insert atom}
 \begin{verbatim}
@@ -628,7 +601,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Addressed atom}
+\subsubsection{Change atom}
 \index{:}%
 \begin{verbatim}
 2:O : change A2 C to O
@@ -651,16 +624,16 @@
 \begin{verbatim}
 | : divide brock
 
-?6, at 4,\,|,?6,2:O
+?6, at 4,!,|,?6,2:O
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(70mm,14mm) #@(3mm,1.5mm)
-  @(0,.5)\(?6, at 4,\,|,?6,2:O)
+  @(0,.5)\(?6, at 4,!,|,?6,2:O)
   sw_numbering:=Atom;
   ##(1,.88)
-  @(1,.5)\(?6, at 4,\,|,?6,2:O)
+  @(1,.5)\(?6, at 4,!,|,?6,2:O)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -669,16 +642,16 @@
 \begin{verbatim}
 || : reset brock adress
 
-?6, at 4,\,|,?6,||,2:N
+?6, at 4,!,|,?6,||,2:N
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(70mm,14mm) #@(3mm,1.5mm)
-  @(0,.5)\(?6, at 4,\,|,?6,||,2:N)
+  @(0,.5)\(?6, at 4,!,|,?6,||,2:N)
   sw_numbering:=Atom;
   ##(1,.88)
-  @(1,.5)\(?6, at 4,\,|,?6,||,2:N)
+  @(1,.5)\(?6, at 4,!,|,?6,||,2:N)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -685,41 +658,44 @@
 \subsubsection{Absolute address}
 \index{\$}% $
 \begin{verbatim}
-$2:N : change A$2 C to N  **1<=n<=3095
+$2:n : change A$2 C to N
+**1<=n<=3095
 
-?6, at 4,\,|,?6,$2:N
+?6, at 4,!,|,?6,$2:N
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(70mm,14mm) #@(3mm,1.5mm)
-  @(0,.5)\(?6, at 4,\,?6,$2:N)
+  @(0,.5)\(?6, at 4,!,?6,$2:N)
   sw_numbering:=Atom;
   ##(1,.88) 
-  @(1,.5)\(?6, at 4,\,?6,$2:N)
+  @(1,.5)\(?6, at 4,!,?6,$2:N)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsubsection{Relative address}
 \begin{verbatim}
--2:N : change A(-2) C to N **-999<=n<=-1
+-2:n : change A(-2) C to N
+**-999<=n<=-1
 
-?6, at 4,\,?6,-2:N
+?6, at 4,!,?6,-2:N
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(70mm,14mm) #@(3mm,1.5mm)
-  @(0,.5)\(?6, at 4,\,?6,-2:N)
+  @(0,.5)\(?6, at 4,!,?6,-2:N)
   sw_numbering:=Atom;
   ##(1,.88)
-  @(1,.5)\(?6, at 4,\,?6,-2:N)
+  @(1,.5)\(?6, at 4,!,?6,-2:N)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsubsection{Charged atom}
 \begin{verbatim}
-p_ : positive / n_ : negative
+p_ : positive
+n_ : negative
 
 <-30,!2,N,??,p_,!2,S,n_^180,
 !6,7:N,7:??,9:S,7:n_,9:n_^180
@@ -759,7 +735,7 @@
 ** fused ring size depend on 
 attached bond length
 
-?6, at 4,\,?6`1.2,5=?6,11=?6
+?6, at 4,!,?6`1.2,5=?6,11=?6
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -767,17 +743,17 @@
   #(60mm,25mm) #@(2mm,2mm)
   sw_trimming:=1;
   sw_numbering:=Bond;
-  \(?6, at 4,\,?6`1.2,5=?6,11=?6,
+  \(?6, at 4,!,?6`1.2,5=?6,11=?6,
       {14:23}=bd_r,5'11=dt)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \begin{verbatim}
-?6,3=?6[13] : fuse ?6[13] at B3
-?6[13]: 6 membered ring scaled 13/10
-** ?m[n] (5<=m<=6,11<=n<=15)
+?6,3=#1.3'?6 : fuse #1.3'?6 at B3
+#1.3'?6 : 6 membered ring scaled 1.3
+** #n'?m (5<=m<=6,1.1<=n<=1.5)
 
-?6,3=?6[13]
+?6,3=#1.3'?6
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -786,7 +762,7 @@
   margin_top_bottom:=1.5mm;
   sw_numbering:=Bond;
   sw_trimming:=1;
-  \(<30,?6,3=?6[13],3=dt,{7:11}=bd_r)
+  \(<30,?6,3=#1.3'?6,3=dt,{7:11}=bd_r)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -887,7 +863,6 @@
 beginfigm
   #(40mm,15mm);
   sw_numbering:=Atom;
-  numbering_end:=7;
   ratio_chain_ring:=1;
   \(<30,!6, at 4,?5)
 endfigm
@@ -895,12 +870,29 @@
 %-----------------------------------------------------------------------------
 \subsection{Group}
 \subsubsection{Insert group}
+\index{?}%
+\index{methyl}%
+\index{??}%
+\index{dimethyl}%
+\index{?O}%
+\index{carbonyl}%
+\index{?S}%
+\index{thioketone}%
+\index{?NH}%
+\index{imino}%
+\index{ethyl}%
+\index{propyl}%
+\index{isopropyl}%
+\index{tert-butyl}%
 \index{/}%
 \index{Ph}%
+\index{phenyl}%
 \begin{verbatim}
-/ : group start single bond
-
-/_   : methyl
+?    : methyl
+??   : dimethyl
+?O   : carbonyl
+?S   : thioketone
+?NH  : imino
 /!   : ethyl
 /!2  : propyl
 /?!  : isopropyl
@@ -907,23 +899,30 @@
 /??! : tert-butyl
 /Ph  : phenyl
 
-<30,!,/_,!2,/!,!2,/!2,!4,/?!,
- !4,/??!,!2,/Ph^-60,!
+<30,!,?,!2,??,!2,?O,!2,?S,!2,
+ ?NH,!2,/!,!2,/!2,!2`1,/?!,!2`1,
+ /??!,!2`1,/#.6'Ph,!
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(75mm,18mm);
-  \(<30,!,/_,!2,/!,!2,/!,!4,/?!,!4,/??!,!2,/#.8'Ph^-60,!)
+  #(70mm,20mm);
+  \(<30,!,?,!2,??,!2,?O,!2,?S,!2,?NH,!2,/!,!2,/!2,!2`1,
+    /?!,!2`1,/??!,!2`1,/#.6'Ph,!)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsubsection{Insert modified group}
 \index{//}%
+\index{double}%
 \index{*/}%
+\index{wedge forward}%
 \index{/*}%
+\index{hashed wedge}%
 \index{*/*}%
+\index{wave}%
 \index{**}%
+\index{direct}%
 \begin{verbatim}
 //  : double (double middle)
 */  : wedge forward
@@ -931,13 +930,13 @@
 */* : wave
 **  : direct
 
-<30,!,//O,!2,*/H,!2,/*H,!2,*/*H,!2,**?3,!
+<30,!,//!,!2,*/H,!2,/*H,!2,*/*H,!2,**?3,!
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(70mm,14mm);
-  \(<30,!`1,//O,!2`1,*/H,!2`1,/*H,!2`1,*/*H,!2`1,**?3,!`1)
+  \(<30,!`1,//!,!2`1,*/H,!2`1,/*H,!2`1,*/*H,!2`1,**?3,!`1)
   ++(defaultscale:=0.75;
       label("//",A2-(0,0.45l));
       label("*/",A4-(0,0.45l));
@@ -952,6 +951,10 @@
 \index{\textasciitilde}% ~
 \index{`}%
 \index{\textless}%
+\index{change type}%
+\index{change angle}%
+\index{change length}%
+\index{change environment}%
 \begin{verbatim}
 ~ : change type
 ^ : change angle
@@ -958,8 +961,8 @@
 ` : change length
 > : change environment
 
-<-30,``1,!,
-  /_`2^30,!2,/!2>lr,!2,/!2>rl,!)
+<-30,#1,!,
+  ?`2^30,!2,/!2>lr,!2,/!2>rl,!)
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -966,15 +969,22 @@
 beginfigm
   #(60mm,16mm);
   sw_trimming:=1;
-  \(<-30,#1,!2,/_`2^30,!2,/!2>lr,!2,/!2>rl,!)
+  \(<-30,#1,!2,?`2^30,!2,/!2>lr,!2,/!2>rl,!)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsubsection{Add group}
+\index{?w}%
+\index{?z}%
+\index{?d}%
 \begin{verbatim}
-<30,!17,2:/_,3:/!,4:/!2,7:/iPr,
- 8:/tBu,10^-15:/#.6'Ph,
-  11'12'*13:*/_,15'16'*17:/*_
+?w : ?~wf
+?z : ?~zf
+?d : ?~dm
+
+<30,!17,2:?,3:/!,4:/!2,7:/?!,
+ 8:/??!,10^-15:/#.6'Ph,
+  11'12':?w,13'14:?z,15'16:?d
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -981,9 +991,8 @@
 beginfigm
   #(75mm,25mm) #@(2mm,2mm)
   sw_numbering:=Atom;
-  numbering_end:=17;
-  \(<30,!17,2:/_,3:/!,4:/!2,7:/iPr,8:/tBu,10^-15:/#.6'Ph,
-     11'12'*13:*/_,15'16'*17:/*_)
+  \(<30,!17,2:?,3:/!,4:/!2,7:/?!,8:/??!,10^-15:/#.6'Ph,
+     11'12:?w,13'14:?z,15'16:?d)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -991,7 +1000,7 @@
 \begin{verbatim}
 ~,^,` : change type,angle,length
 
-<30,!6,{2~wf'4~zf'6^-30'8^$120}:/_
+<30,!6,{2~wf'4~zf'6^-30'8^$120}:?
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -998,8 +1007,8 @@
 beginfigm
   #(60mm,18mm) #@(2mm,2mm)
   sw_trimming:=1;
-  sw_numbering:=Atom; numbering_end:=9;
-  \(<30,!8`1,{2~wf'4~zf'6^-30'8^$120}:/_)
+  sw_numbering:=Atom;
+  \(<30,!8`1,{2~wf'4~zf'6^-30'8^$120}:?)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -1007,7 +1016,7 @@
 
 ^,`,> : change angle,length,environment
 
-<-30,!7`1,3:/_`2^30,5:/!2>lr,7:/!2>rl
+<-30,!7`1,3:?`2^30,5:/!2>lr,7:/!2>rl
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -1015,8 +1024,7 @@
   #(60mm,16mm);
   sw_trimming:=1;
   sw_numbering:=Atom;
-  numbering_end:=8;
-  \(<-30,!7`1,3:/_`2^30,5:/!2>lr,7:/!2>rl)
+  \(<-30,!7`1,3:?`2^30,5:/!2>lr,7:/!2>rl)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -1033,13 +1041,12 @@
 
 ?4,
 {3^-90'3^-30'3^90}:/!3>hz,
-
 {1^-60'1'1^60}:/!3>vt
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(50mm,25mm);
+  #(60mm,35mm);
   sw_trimming:=1;
   ratio_chain_ring:=1;
   \(?4,{3^-90'3^-30'3^90}:/!3>hz,
@@ -1070,8 +1077,8 @@
 \begin{mplibcode}
 beginfigm
 %%%%%  EN:Left-right_right-left
-  #(40mm,18mm);
-  sw_trimming:=0;
+  #(50mm,24mm);
+%  sw_trimming:=1;
   \(<-30,!6,
   {3^-30'3'3^30}:/!3>lr,
   {5^-30'5'5^30}:/!3>rl)
@@ -1099,7 +1106,7 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(40mm,20mm);
+  #(45mm,24mm);
   sw_trimming:=1;
   \(<30,!4,2:/!6>30,4:/!4>-45)
   ++(defaultscale:=0.5; labeloffset:=2bp;
@@ -1118,7 +1125,7 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,20mm);
+  #(62mm,24mm);
   \(<30,!6,6>90'-90'90'-90'90:/!5)
   ++(defaultscale:=0.5; labeloffset:=2bp;
       label.lft(">{90'-90'90'-90'90}",A13);
@@ -1141,9 +1148,9 @@
 \index{S?O}%
 \index{S?O?O}%
 \begin{verbatim}
-NH : N,/H~nl   N? : N,/_ 
-N?2 : N,/!     S?O : S,//O
-S?O?O : S,//O^35,//^-35
+NH : N,/H~nl   N? : N,? 
+N?2 : N,/!     S?O : S,?O
+S?O?O : S,?O^35,//^-35
 
 <-30,!2,NH,!2,N?,!2,N?2,S?O,!2,S?O?O,!
 \end{verbatim}
@@ -1160,8 +1167,9 @@
 \index{??}%
 \index{??"!}%
 \index{N?"!}%
+\index{dimethylamino}%
 \begin{verbatim}
-??   : /_^35,/_-35  /?!  : isopropyl
+??   : ?^35,?-35  /?!  : isopropyl
 /??! : tert-butyl   /N?! : dimethylamino
 
 <30,!11`1,2:??,4:/!,6:/?!,8:/??!,10:/N?!
@@ -1169,7 +1177,7 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-#(60mm,10mm);
+#(60mm,12mm);
 sw_trimming:=1;
 \(<30,!11`1.2,2:??,4:/!,6:/?!,8:/??!,10:/N?!)
 endfigm
@@ -1176,7 +1184,9 @@
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsubsection{Define group,parts}
-\index{'}%
+\index{define group}%
+\index{define group with atoms}%
+\index{define parts}%
 \index{`}%
 \index{``}%
 \begin{verbatim}
@@ -1193,7 +1203,7 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,10mm);
+  #(60mm,14mm);
   sw_trimming:=1;
   iBuOH:=''(!?!,OH);
   CF3:=``("{CF3}")(C,F,F,F);
@@ -1204,16 +1214,14 @@
 \subsubsection{Concatenate group,parts}
 \index{'}%
 \begin{verbatim}
-a'b : {a,b} or ''(a,b)
-/!?!'OH : /''(!?!,OH)
+a'b : ''(a,b)
 
  <30,!8,2'6:/!?!'OH
-or  <30,!8,{2'6}:/''(!?!,OH)
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,12mm) #@(2mm,1mm)
+  #(60mm,14mm) #@(2mm,1mm)
   sw_trimming:=1;
   \(<30,!8,2'6:/!?!'OH)
 endfigm
@@ -1226,14 +1234,14 @@
 @$(x'y): Move l*(x,y) from origin(@1)
           ** l=bond length of ring
 
-<30,?6, at 3,!4,//O,!,O,n_^60,@$(6'1),H,p_^15
+<30,?6, at 3,!4,?O,!,O,n_^60,@$(6'1),H,p_^15
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(70mm,13mm) #@(2mm,1mm)
+  #(70mm,15mm) #@(2mm,1mm)
   sw_trimming:=1;
-  \(<30,?6, at 3,\,!3,//O,!,O,n_^60,@$(6'1),H,p_^15)
+  \(<30,?6, at 3,!,!3,?O,!,O,n_^60,@$(6'1),H,p_^15)
   ++(drawdot A1 withpen pencircle scaled 3bp;
      drawdot A12 withpen pencircle scaled 3bp;
       pickup pencircle scaled 0.1bp;
@@ -1251,14 +1259,14 @@
 \index{\-\-}%
 \begin{verbatim}
 6:10 : 6,7,8,9,10
-<30,!14,{2,6:10,14}:/_~bd_r`0.5
+<30,!14,{2,6:10,14}:?~bd_r`0.5
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(75mm,12mm) |<(8mm)
-  sw_numbering:=Atom; numbering_end:=15;
-  \(<30,!14,{2'6:10'14}:/_~bd_r`0.5)
+  sw_numbering:=Atom;
+  \(<30,!14,{2'6:10'14}:?~bd_r`0.5)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -1286,7 +1294,7 @@
 \begin{verbatim}
 beginfigm
   %----------------
-  atomfont:="cmr8";
+  atomfont:="phvro8g";
   %----------------
   \(<30,Ph,2'5:N,3:/NH2,4:/COOH)
 endfigm
@@ -1295,7 +1303,7 @@
 \begin{mplibcode}
 beginfigm
   #(50mm,18mm) |<(8mm)
-  atomfont:="cmr8";
+  atomfont:="phvro8g";
   \(<30,Ph,2'5:N,3:/NH2,4:/COOH)
 endfigm
 \end{mplibcode}
@@ -1563,7 +1571,7 @@
 \subsubsection{Offset thickness of bond}
 \index{offset\_thickness}%
 \begin{verbatim}
-default: offset_thickness=0.2pt
+default: offset_thickness=0.25pt
 \end{verbatim}
 %---------------------------------------------
 %%offset_thickness 
@@ -1571,11 +1579,11 @@
 beginfigm
   #(60mm,12mm);
   offset_thickness:=0.0pt; @(0.1,0.5)\(<30,Ph)
-  offset_thickness:=0.2pt; @(0.55,0.5)\(<30,Ph)
+  offset_thickness:=0.25pt; @(0.55,0.5)\(<30,Ph)
   offset_thickness:=0.5pt; @(1,0.5)\(<30,Ph)
   **(defaultscale:=0.6; labeloffset:=1bp;
     label.urt("0.0pt",(0,1bp));
-    label.urt("0.2pt",(0.36w,1bp));
+    label.urt("0.25pt",(0.36w,1bp));
     label.urt("0.5pt",(0.7w,1bp));
   )
 endfigm
@@ -1624,15 +1632,15 @@
 \subsubsection{Offset of wedge width}
 \index{offset\_wedge}%
 \begin{verbatim}
-default:  offset_wedge=0.4pt
+default: offset_wedge=0.4pt
 \end{verbatim}
 %---------------------------------------------
 \begin{mplibcode}
 beginfigm
   #(60mm,12mm);
-  offset_wedge:=0.0pt; @(0.1,0.5)\(<30,?6,5:*/_)
-  offset_wedge:=0.4pt; @(0.55,0.5)\(<30,?6,5:*/_)  %<<== default
-  offset_wedge:=1.0pt; @(1, 0.5)\(<30,?6,5:*/_)
+  offset_wedge:=0.0pt; @(0.1,0.5)\(<30,?6,5:?w)
+  offset_wedge:=0.4pt; @(0.55,0.5)\(<30,?6,5:?w)  %<<== default
+  offset_wedge:=1.0pt; @(1, 0.5)\(<30,?6,5:?w)
   **(defaultscale:=0.6; labeloffset:=1bp;
     label.urt("0.0pt",(0,1bp));
     label.urt("0.4pt",(0.36w,1bp));
@@ -1646,7 +1654,7 @@
 \index{\textbar\textless()}%
 \begin{verbatim}
 |<(n): abbreviated form of max_blength:=n;
-default:  max_blength=10mm
+default: max_blength=10mm
 \end{verbatim}
 %---------------------------------------------
 \begin{mplibcode}
@@ -1669,7 +1677,7 @@
 \subsubsection{Thickness/bond length}
 \index{ratio\_thickness\_bond}%
 \begin{verbatim}
-default:  ratio_thickness_bond=0.015
+default: ratio_thickness_bond=0.012
 \end{verbatim}
 %---------------------------------------------
 \begin{mplibcode}
@@ -1676,7 +1684,7 @@
 beginfigm
   #(60mm,12mm);
   ratio_thickness_bond:=0.005;  @(0.1,0.5)\(<30,Ph)
-  ratio_thickness_bond:=0.015;  @(.55,0.5)\(<30,Ph)  %<<== default
+  ratio_thickness_bond:=0.012;  @(.55,0.5)\(<30,Ph)  %<<== default
   ratio_thickness_bond:=0.03;   @(1,  0.5)\(<30,Ph)
   **(defaultscale:=0.6; labeloffset:=1bp;
     label.urt("0.005",(0,1bp));
@@ -1686,62 +1694,62 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Char/bond thickness}
-\index{ratio\_char\_bond}%
+\subsubsection{Atom/bond length}
+\index{ratio\_atom\_bond}%
 \begin{verbatim}
-default:  ratio_char_bond=1.5
+default: ratio_atom_bond= 0.36
 \end{verbatim}
 %---------------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,12mm)
-  ratio_char_bond:=1.0;  @(0, 0.5)\(<30,?6,6:O,3:NH)
-  ratio_char_bond:=1.5;  @(.5,0.5)\(<30,?6,6:O,3:NH)   %<<== default
-  ratio_char_bond:=2.0;  @( 1,0.5)\(<30,?6,6:O,3:NH)
+  #(60mm,12mm);
+  ratio_atom_bond:=0.25;  @(0.1,0.5)\(<30,?6,3:O)
+  ratio_atom_bond:=0.33;  @(.55,0.5)\(<30,?6,3:O)   %<<== default
+  ratio_atom_bond:=0.45;  @(1,  0.5)\(<30,?6,3:O)
   **(defaultscale:=0.6; labeloffset:=1bp;
-    label.urt("1.0",(0,1bp));
-    label.urt("1.5",(0.36w,1bp));
-    label.urt("2.0",(0.7w,1bp));
+    label.urt("0.25",(0,1bp));
+    label.urt("0.33",(0.36w,1bp));
+    label.urt("0.45",(0.7w,1bp));
   )
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Bond gap/bond length}
-\index{ratio\_bondgap\_bond}%
+\subsubsection{Char thickness/Atom width}
+\index{ratio\_char\_atom}%
 \begin{verbatim}
-default:  ratio_bondgap_bond= 0.15
+default: ratio_char_atom=0.12
 \end{verbatim}
 %---------------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,12mm);
-  ratio_bondgap_bond:=0.10; @(0.1,0.5)\(<30,Ph)
-  ratio_bondgap_bond:=0.15; @(.55,0.5)\(<30,Ph)    %<<== default
-  ratio_bondgap_bond:=0.20; @(1  ,0.5)\(<30,Ph)
+  #(60mm,12mm)
+  ratio_char_atom:=0.1;  @(0, 0.5)\(<30,?6,6:O,3:NH)
+  ratio_char_atom:=0.12; @(.5,0.5)\(<30,?6,6:O,3:NH)   %<<== default
+  ratio_char_atom:=0.15; @( 1,0.5)\(<30,?6,6:O,3:NH)
   **(defaultscale:=0.6; labeloffset:=1bp;
-    label.urt("0.10",(0,1bp));
-    label.urt("0.15",(0.36w,1bp));
-    label.urt("0.20",(0.7w,1bp));
+    label.urt("0.1", (0,1bp));
+    label.urt("0.12",(0.36w,1bp));
+    label.urt("0.15",(0.7w,1bp));
   )
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Atom/bond length}
-\index{ratio\_atom\_bond}%
+\subsubsection{Bond gap/bond length}
+\index{ratio\_bondgap\_bond}%
 \begin{verbatim}
-default:  ratio_atom_bond= 0.36
+default: ratio_bondgap_bond= 0.15
 \end{verbatim}
 %---------------------------------------------
 \begin{mplibcode}
 beginfigm
   #(60mm,12mm);
-  ratio_atom_bond:=0.25;  @(0.1,0.5)\(<30,?6,3:O)
-  ratio_atom_bond:=0.33;  @(.55,0.5)\(<30,?6,3:O)   %<<== default
-  ratio_atom_bond:=0.45;  @(1,  0.5)\(<30,?6,3:O)
+  ratio_bondgap_bond:=0.10; @(0.1,0.5)\(<30,Ph)
+  ratio_bondgap_bond:=0.15; @(.55,0.5)\(<30,Ph)    %<<== default
+  ratio_bondgap_bond:=0.20; @(1  ,0.5)\(<30,Ph)
   **(defaultscale:=0.6; labeloffset:=1bp;
-    label.urt("0.25",(0,1bp));
-    label.urt("0.33",(0.36w,1bp));
-    label.urt("0.45",(0.7w,1bp));
+    label.urt("0.10",(0,1bp));
+    label.urt("0.15",(0.36w,1bp));
+    label.urt("0.20",(0.7w,1bp));
   )
 endfigm
 \end{mplibcode}
@@ -1749,15 +1757,15 @@
 \subsubsection{Wedge/bond length}
 \index{ratio\_wedge\_bond}%
 \begin{verbatim}
-default:  ratio_wedge_bond=0.12
+default: ratio_wedge_bond=0.12
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
 beginfigm
   #(70mm,12mm);
-  ratio_wedge_bond:=0.1;  @(0.05,.5)\(?6,4:*/_)
-  ratio_wedge_bond:=0.12; @(.55, .5)\(?6,4:*/_)   %<<== default
-  ratio_wedge_bond:=0.2;  @(1  , .5)\(?6,4:*/_)
+  ratio_wedge_bond:=0.1;  @(0.05,.5)\(?6,4:?w)
+  ratio_wedge_bond:=0.12; @(.55, .5)\(?6,4:?w)   %<<== default
+  ratio_wedge_bond:=0.2;  @(1  , .5)\(?6,4:?w)
   **(defaultscale:=0.6; labeloffset:=1bp;
     label.urt("0.10",(0,1bp));
     label.urt("0.12",(0.36w,1bp));
@@ -1777,14 +1785,14 @@
 beginfigm
   '`("<30,!2`0.5,2:O")
   #(70mm,12mm)
-  sw_frame:=sw_frame+Atom;
+  sw_frame:=Atom;
   ratio_atomgap_atom:=0.00;  @(0, .5)\(scantokens(mc))
   ratio_atomgap_atom:=0.050; @(.5,.5)\(scantokens(mc))  %<<== default
   ratio_atomgap_atom:=0.12;  @(1, .5)\(scantokens(mc))
-  **(defaultscale:=0.75; labeloffset:=1bp;
-    label.urt("0.00",(0.05w,1bp));
-    label.urt("0.05",(0.45w,1bp));
-    label.urt("0.12",(0.85w,1bp));
+  **(defaultscale:=0.6; labeloffset:=1bp;
+    label.urt("0.00",(0.05w,3bp));
+    label.urt("0.05",(0.45w,3bp));
+    label.urt("0.12",(0.85w,3bp));
   )
 endfigm
 \end{mplibcode}
@@ -1817,7 +1825,7 @@
 %------------------------------------------------------
 \begin{mplibcode}
 beginfigm
-  '`("<30,!2,2:/*_`1.5")
+  '`("<30,!2,2:?z`1.5")
   #(70mm,15mm)
   ratio_hashgap_bond:=0.06; @(0.08,.5)\(scantokens(mc))
   ratio_hashgap_bond:=0.12; @( .55,.5)\(scantokens(mc)) %<<== default
@@ -1834,53 +1842,46 @@
 %-----------------------------------------------------------------------------
 \subsection{Drawing mode}
 %-----------------------------------------------------------------------------
-\subsubsection{Numbering atom}
+\subsubsection{Numbering atom,bond}
 \index{sw\_numbering}%
 \index{Atom}%
-\index{numbering\_start}%
-\index{numbering\_end}%
 \begin{verbatim}
-sw_numbering=Atom
-numbering_start:=3;
-numbering_end:=8;
-default: sw_numbering=0
-
 sw_numbering:=Atom;
-\(<-30,!9)
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,10mm);
+  #(60mm,7mm);
   ratio_chain_ring:=1;
-  numbering_start:=3; numbering_end:=8;
   sw_numbering:=Atom; \(<-30,!9)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Numbering bond}
-\index{numbering\_start}%
-\index{numbering\_end}%
 \index{Bond}%
 \begin{verbatim}
-sw_numbering=Bond
-numbering_start:=3;
-numbering_end:=8;
-default: sw_numbering=0
-
 sw_numbering:=Bond;
-\(<-30,!9)
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,10mm);
+  #(60mm,7mm);
   ratio_chain_ring:=1;
-  numbering_start:=3; numbering_end:=8;
   sw_numbering:=Bond; \(<-30,!9)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
+\begin{verbatim}
+sw_numbering:=Atom+Bond;
+\end{verbatim}
+%------------------------------------------------------
+\begin{mplibcode}
+beginfigm
+  #(60mm,7mm);
+  ratio_chain_ring:=1;
+  sw_numbering:=Atom+Bond; \(<-30,!9)
+endfigm
+\end{mplibcode}
+%-----------------------------------------------------------------------------
 \subsubsection{Trimming mode}
 \index{sw\_trimming}%
 \begin{verbatim}
@@ -1891,7 +1892,7 @@
 %------------------------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,20mm) ##(1,.7)
+  #(60mm,15mm) ##(1,.7)
   sw_frame:=Bothside+Mol;
   @(.2,.3)\(Ph)
   @(.8,.7)\(Ph)
@@ -1905,7 +1906,7 @@
 %------------------------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(60mm,20mm) ##(1,.7)
+  #(60mm,15mm) ##(1,.7)
   sw_frame:=Bothside+Mol;
   sw_trimming:=1;
   @(.2,.3)\(Ph)
@@ -1931,15 +1932,15 @@
   #(60mm,15mm)
   @(0, .5)\(<30,Ph,1:/COOH,3:/NH2)
   sw_expand:=1;
-  @(1, .5)\(<30,Ph,1:/''(//O^-60,/OH^60),3:/''(N,/H^60,/H^-60))
+  @(1, .5)\(<30,Ph,1:/''(?O^-60,/OH^60),3:/''(N,/H^60,/H^-60))
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Abbreviate group}
+\subsubsection{Omit group}
 \index{Group}%
 \index{sw\_abbreviate}%
 \begin{verbatim}
-** default: sw_abbreviate=Group
+** default: sw_omit=Group
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
@@ -1947,16 +1948,16 @@
   '`("<30,Ph,4:/Cl,3:/F")
   #(60mm,12mm)
   @(.15, .5)\(scantokens(mc))
-  sw_abbreviate:=Group;
+  sw_omit:=Group;
   @(.85, .5)\(scantokens(mc))
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Abbreviate bond type}
+\subsubsection{Omit bond type}
 \index{Bond}%
 \index{sw\_abbreviate}%
 \begin{verbatim}
-** default: sw_abbreviate=Bond
+** default: sw_omit=Bond
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
@@ -1964,7 +1965,7 @@
   '`("<30,Ph,4:/Cl,3:/F")
   #(60mm,12mm)
   @(.15, .5)\(scantokens(mc))
-  sw_abbreviate:=Bond;
+  sw_omit:=Bond;
   @(.85, .5)\(scantokens(mc))
 endfigm
 \end{mplibcode}
@@ -2045,7 +2046,7 @@
 \begin{mplibcode}
 beginfigm
   #(60mm,10mm);
-  sw_frame:=sw_frame+Atom;
+  sw_frame:=Atom;
   \(<30,COOH,!,COOH)
 endfigm
 \end{mplibcode}
@@ -2064,7 +2065,7 @@
   %--------------------------
   \(Ph)
 endfigm
-beginfigm
+beginfigm 
   \(Ph)
 endfigm
 \end{verbatim}
@@ -2117,7 +2118,7 @@
 ratio_thickness_bond:=save_ratio;
 \end{mplibcode}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Command}
+\section{Command of mcf2graph}
 %-----------------------------------------------------------------------------
 \subsection{drawm [ \textbackslash{ }]}
 \index{drawm}%
@@ -2155,10 +2156,21 @@
 '`(): abbreviated form of readm()
 
 (example)
-'`("<30,Ph,1'2'6:/O!,-4'-5=?7,    ",
-   " -1'-4'-6=dl,-2://O,-3:/O!,   ",
-   " @9,\,NH,!,//O,!              ")
+'`("<30,Ph,1'2'6:/O!,-4'-5=?7,   ",
+   " -1'-4'-6=dl,-2:?O,-3:/O!,   ",
+   " @9,!,NH,!,?O,!              ")
+\\
 \end{verbatim}
+
+\begin{mplibcode}
+beginfigm
+#(40mm,20mm);
+'`("<30,Ph,1'2'6:/O!,-4'-5=?7,   ",
+   " -1'-4'-6=dl,-2:?O,-3:/O!,   ",
+   " @9,!,NH,!,?O,!              ")
+\\
+endfigm
+\end{mplibcode}
 %-----------------------------------------------------------------------------
 \subsection{checkm [ \textbackslash*{ }]}
 \index{checkm()}%
@@ -2211,10 +2223,11 @@
 
 getm("name"): "name"=string
 
-beginfigm
-  $("Adenine")   % get data EN="Adenine"
-  \\             % put figure
-endfigm
+(example)
+ beginfigm
+   $("Adenine")
+   \\
+ endfigm
 \end{verbatim}
 %-------------------------------------------------------------------------------
 \subsection{putm [ \textbackslash\textbackslash{ }]}
@@ -2226,7 +2239,8 @@
 
   if op_row>=1: scantokens(op) fi
   if mc_row>=1:
-    if checkm(mc)=0: drawm(scantokens(mc))
+    if checkm(mc)=0:
+      drawm(scantokens(mc))
     fi
   fi
   if ad_row>=1: add(scantokens(ad)) fi
@@ -2523,22 +2537,20 @@
 \subsubsection{Local ext setting}
 \index{\_}%
 \begin{verbatim}
-_s : abbreviated form of EN:=s;
-
 beginfigm
-  _"?3"@(0.5,1)\(<30,?3)
+  EN:="?3";@(0.5,1)\(<30,?3)
 endfigm
 beginfigm
-  _"?4"@(0.5,1)\(?4)
+  EN:="?4";@(0.5,1)\(?4)
   %-------------------------------
   **(label.top(EN,(0.5w,0));)
   %-------------------------------
 endfigm
 beginfigm
-  _"?5"@(0.5,1)\(?5)
+  EN:="?5";@(0.5,1)\(?5)
 endfigm
 beginfigm
-  _"?6"@(0.5,1)\(?6)
+  EN:="?6";@(0.5,1)\(?6)
 endfigm
 \end{verbatim}
 %----------------------------------------------------
@@ -2545,19 +2557,19 @@
 \quad
 \begin{mplibcode}
 beginfigm
-  _"?3"#(12mm,15mm)@(0.5,1)\(<30,?3)
+  EN:="?3";#(12mm,15mm)@(0.5,1)\(<30,?3)
 endfigm
 beginfigm
-  _"?4"#(12mm,15mm)@(0.5,1)\(?4)
+  EN:="?4";#(12mm,15mm)@(0.5,1)\(?4)
   %-------------------------------
   **(label.top(EN,(0.5w,0));)
   %-------------------------------
 endfigm
 beginfigm
-  _"?5"#(12mm,15mm)@(0.5,1)\(?5)
+  EN:="?5";#(12mm,15mm)@(0.5,1)\(?5)
 endfigm
 beginfigm
-  _"?6"#(12mm,15mm)@(0.5,1)\(?6)
+  EN:="?6";#(12mm,15mm)@(0.5,1)\(?6)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -2567,22 +2579,22 @@
 ext_clear: reset global ext()
 
 beginfigm
-  _"?3"@(0.5,1)\(<30,?3)
+  EN:="?3";@(0.5,1)\(<30,?3)
 endfigm
 %-------------------------------
 ext(label.top(EN,(0.5w,0));)
 %-------------------------------
 beginfigm
-  _"?4"@(0.5,1)\(?4)
+  EN:="?4";@(0.5,1)\(?4)
 endfigm
 beginfigm
-  _"?5"@(0.5,1)\(?5)
+  EN:="?5";@(0.5,1)\(?5)
 endfigm
 %---------
 ext_clear;
 %---------
 beginfigm
-  _"?6"@(0.5,1)\(?6)
+  EN:="?6";@(0.5,1)\(?6)
 endfigm
 \end{verbatim}
 %-------------------------------------
@@ -2589,7 +2601,7 @@
 \quad
 \begin{mplibcode}
 beginfigm
-  _"?3"#(12mm,15mm)
+  EN:="?3";#(12mm,15mm)
   @(0.5,1)\(<30,?3)
 endfigm
 %-------------------------------
@@ -2596,11 +2608,11 @@
 ext(label.top(EN,(0.5w,0));)
 %-------------------------------
 beginfigm
-  _"?4"#(12mm,15mm)
+  EN:="?4";#(12mm,15mm)
   @(0.5,1)\(?4)
 endfigm
 beginfigm
-  _"?5"#(12mm,15mm)
+  EN:="?5";#(12mm,15mm)
   @(0.5,1)\(?5)
 endfigm
 %---------
@@ -2607,7 +2619,7 @@
 ext_clear;
 %---------
 beginfigm
-  _"?6"#(12mm,15mm)
+ EN:="?6";#(12mm,15mm)
   @(0.5,1)\(?6)
 endfigm
 \end{mplibcode}
@@ -2622,7 +2634,7 @@
 \begin{verbatim}
 beginfigm
   #(50mm,15mm)
-  \(<30,Ph,3=?5, at 8,\,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH)
+  \(<30,Ph,3=?5, at 8,!,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH)
 endfigm
 \end{verbatim}
 %-------------------------------------------
@@ -2630,7 +2642,7 @@
 loadm("EN<>*");
 beginfigm
   #(50mm,15mm)
-  \(<30,Ph,3=?5, at 8,\,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH)
+  \(<30,Ph,3=?5, at 8,!,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -2641,7 +2653,7 @@
 beginfigm
   '`(
   "<30,Ph,1'2'6:/O!,-4'-5=?7,     ",
-  " -1'-4'-6=dl,-2://O,-3:/O!,    ",
+  " -1'-4'-6=dl,-2:?O,-3:/O!,    ",
   " 9:/NH!'?O!                    ")
   #(40mm,20mm) \\
 endfigm
@@ -2652,7 +2664,7 @@
 beginfigm
   '`(
   "<30,Ph,1'2'6:/O!,-4'-5=?7,    ",
-  " -1'-4'-6=dl,-2://O,-3:/O!,   ",
+  " -1'-4'-6=dl,-2:?O,-3:/O!,   ",
   " 9:/NH!'?O!                   ")
   #(40mm,20mm) \\
 endfigm
@@ -2669,13 +2681,11 @@
 beginfigm
   %"EN:Maltose","MW:342.3",
   '`(
-  %----------------------------------------------------
-  "#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,   ",
-  "#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,          ",
-  "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0,               ",
-  "|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
-  "#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH           ")
-  %----------------------------------------------------
+  %--------------------------------------------------------
+  "hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,",
+  "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0,                  ",
+  "|,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH  ")
+  %--------------------------------------------------------
   #(50mm,20mm) \\
 endfigm
 \end{verbatim}
@@ -2684,13 +2694,11 @@
 beginfigm
   %"EN:Maltose","MW:342.3",
   '`(
-  %-------------------------------------------------------
-  "#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,   ",
-  "#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,          ",
-  "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0,               ",
-  "|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
-  "#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH           ")
-  %-------------------------------------------------------
+  %--------------------------------------------------------
+  "hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,",
+  "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0,                  ",
+  "|,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH  ")
+  %--------------------------------------------------------
   #(50mm,20mm) \\
 endfigm
 \end{mplibcode}
@@ -2699,16 +2707,16 @@
 \paragraph{(Erythromycin)}
 \begin{verbatim}
 beginfigm
-  _"Erythromycin" MW:="733.93";
+  EN:=Erythromycin"; MW:="733.93";
   #(60mm,30mm) @(1,0.5)
   '`(
   %-----------------------------------------------------------------------
-    "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,        ",
-    " 14:O,13:/*!,1'9://O,                                               ",
-    " {*2'4'6^-35'8'*10'12^35}:/*_,                                       ",
-    " {6^35'11'12^-35}:*/OH,                                              ",
-    " @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##, ",
-    " @$5,\*^30`1.7,O,!~zb,|,?6`.7,6:O,#.5,5:/*_,2:*/OH,3:/*N?!           ")
+    "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,      ",
+    " 14:O,13:/*!,1'9:?O,                                               ",
+    " {*2'4'6^-35'8'*10'12^35}:?z,                                      ",
+    " {6^35'11'12^-35}:*/OH,                                            ",
+    " @$3,!z,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:?,4:/*OH,3^-35:/*O!,##,",
+    " @$5,!z^30`1.7,O,!~zb,|,?6`.7,6:O,#.5,5:?z,2:*/OH,3:/*N?!          ")
   %-----------------------------------------------------------------------
   \\
   **(defaultscale:=0.8;
@@ -2720,19 +2728,18 @@
 endfigm;
 \end{verbatim}
 %----------------------------------------------------------------------------
-%%%% EN:Erythromycin  MW:733.93
 \begin{mplibcode}
 beginfigm
-  _"Erythromycin" MW:="733.93";
+  EN:="Erythromycin"; MW:="733.93";
   #(60mm,30mm) @(1,0.5)
   '`(
   %-----------------------------------------------------------------------
-    "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,        ",
-    " 14:O,13:/*!,1'9://O,                                               ",
-    " {*2'4'6^-35'8'*10'12^35}:/*_,                                       ",
-    " {6^35'11'12^-35}:*/OH,                                              ",
-    " @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##, ",
-    " @$5,\*^30`1.7,O,!~zb,|,?6`.7,6:O,#.5,5:/*_,2:*/OH,3:/*N?!           ")
+    "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,      ",
+    " 14:O,13:/*!,1'9:?O,                                               ",
+    " {*2'4'6^-35'8'*10'12^35}:?z,                                      ",
+    " {6^35'11'12^-35}:*/OH,                                            ",
+    " @$3,!z,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:?,4:/*OH,3^-35:/*O!,##,",
+    " @$5,30~zf`1.7,O,!~zb,|,?6`.7,6:O,#.5,5:?z,2:*/OH,3:/*N?!          ")
   %-----------------------------------------------------------------------
   \\
   **(defaultscale:=0.8;
@@ -2751,16 +2758,16 @@
   '`(
   %------------------------------------------------------------------
   "?6,5=dl, at 3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O, ",
-  " 4:??,6:/_,{3^-60'15}:*/OH,8:/*H^-60,9:*/_^60,10://O,            ",
-  " @1,\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,               ",
-  " @7,\*,O,-45,//O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!               ")
+  " 4:??,6:?,{3^-60'15}:*/OH,8:/*H^-60,9:?w^60,10:?O,            ",
+  " @1,!,O,!,?O,!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,               ",
+  " @7,!z,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!               ")
   %------------------------------------------------------------------
   #(140mm,30mm)
   if \*(mc)=0:
     @(0,0.5)\(scantokens(mc))
-    sw_numbering:=Atom;
+    sw_numbering:=Atom+All;
     @(0.6,0.5)\(scantokens(mc))
-    sw_numbering:=Bond;
+    sw_numbering:=Bond+All;
     @(1,0.5)\(scantokens(mc))
   fi
 endfigm
@@ -2772,14 +2779,14 @@
   '`(
   %-------------------------------------------------------------------
   "?6,5=dl, at 3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O, ",
-  " 4:??,6:/_,{3^-60'15}:*/OH,8:/*H^-60,9:*/_^60,10://O,            ",
-  " @1,\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,               ",
-  " @7,\*,O,-45,//O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!               ")
+  " 4:??,6:?,{3^-60'15}:*/OH,8:/*H^-60,9:?w^60,10:?O,            ",
+  " @1,!,O,!,?O,!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,               ",
+  " @7,!z,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!               ")
   %-------------------------------------------------------------------
   #(160mm,40mm)
   if \*(mc)=0:      @(0,  0.5)\(scantokens(mc))
-    sw_numbering:=Atom; @(0.5,0.5)\(scantokens(mc))
-    sw_numbering:=Bond; @(1,  0.5)\(scantokens(mc))
+    sw_numbering:=Atom+All; @(0.5,0.5)\(scantokens(mc))
+    sw_numbering:=Bond+All; @(1,  0.5)\(scantokens(mc))
   fi
 endfigm
 \end{mplibcode}
@@ -2814,7 +2821,7 @@
 
 row[1][1]="CAT:biological;EN:Luteolin;MW:286.24;EXA:-"
 row[1][2]=":"
-row[1][3]="<30,Ph,3=?6,9=dl,10:O,7://O, at 9,\,Ph,2'6'14'15:/OH"
+row[1][3]="<30,Ph,3=?6,9=dl,10:O,7:?O, at 9,!,Ph,2'6'14'15:/OH"
 row[1][4]=";"
 row[2][1]="CAT:biological;EN:Lycorine;MW:287.315;EXA:1"
 row[2][2]=":"
@@ -2828,7 +2835,7 @@
 row[3][5]=";"
 row[4][1]="CAT:biological;EN:Piperine;MW:285.343;EXA:1"
 row[4][2]=":"
-row[4][3]="<30,Ph,-1=?5,-1'-3:O, at 4,\,!d,!,!d,!,//O,!,?6,-6:N"
+row[4][3]="<30,Ph,-1=?5,-1'-3:O, at 4,!,!d,!,!d,!,?O,!,?6,-6:N"
 row[4][4]=";"
 \end{verbatim}
 %------------------------------------------------------------------------------
@@ -2839,7 +2846,7 @@
 row[1][1]="%------------------------------------------------------------------"
 row[1][2]="CAT:biological;EN:Luteolin;MW:286.24;EXA:-"
 row[1][3]=":"
-row[1][4]="<30,Ph,3=?6,9=dl,10:O,7://O, at 9,\,Ph,2'6'14'15:/OH"
+row[1][4]="<30,Ph,3=?6,9=dl,10:O,7:?O, at 9,!,Ph,2'6'14'15:/OH"
 row[1][5]=";"
 
 ** default sw_comment=0
@@ -2861,7 +2868,7 @@
 \begin{verbatim}
 beginfigm
   $("Chlorophyll a")
-  sw_output:=Fig+Calc+Mcode;
+  sw_output:=Fig+Mcode;
   #(80mm,30mm)
   \(scantokens(mc))
   VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
@@ -2875,7 +2882,7 @@
 \begin{mplibcode}
 beginfigm
   $("Chlorophyll a")
-  sw_output:=Fig+Calc+Mcode;
+  sw_output:=Fig+Mcode;
   #(80mm,30mm)
   \(scantokens(mc))
   VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
@@ -2890,9 +2897,9 @@
 \begin{verbatim}
 beginfigm
   $("Okadaic acid")
-  '`(",38:*/_,65=red")                 %%%% add methyl group (color red) %%%%
-  sw_output:=Fig+Calc+Mcode;           %%%% output temp-mc.aux %%%%
-  _"Dinophysistoxin-1" #(90mm,20mm)
+  '`(",38:?w,65=red")                 %%%% add methyl group (color red) %%%%
+  sw_output:=Fig+Mcode;               %%%% output temp-mc.aux %%%%
+  EN:="Dinophysistoxin-1"; #(90mm,20mm)
   MW:="819";
   if \*(mc)=0: \(scantokens(mc))
     VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
@@ -2907,10 +2914,10 @@
 \begin{mplibcode}
 beginfigm
   $("Okadaic acid")
-  '`(",38:*/_,65=red")            %%%% add methyl group (color red) %%%%
-  sw_output:=Fig+Calc+Mcode;           %%%% output temp-mc.aux %%%%
+  '`(",38:?w,65=red")            %%%% add methyl group (color red) %%%%
+  sw_output:=Fig+Mcode;          %%%% output temp-mc.aux %%%%
    MW:="819";
-  _"Dinophysistoxin-1" #(90mm,20mm);
+  EN:="Dinophysistoxin-1"; #(90mm,20mm);
   if \*(mc)=0: \(scantokens(mc))
     VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
     VerbatimTeX("\gdef\mw{"&mw&"}\gdef\fm{"&fm&"}");
@@ -2930,7 +2937,7 @@
 \begin{mplibcode}
   beginfigm
     $("Maitotoxin") #(150mm,80mm) #@(3mm,3mm)
-    sw_output:=Fig+Calc+Mcode;         %%%% output temp-mc.aux %%%%
+    sw_output:=Fig+Mcode;         %%%% output temp-mc.aux %%%%
     sw_frame:=Outside;
     if \*(mc)=0: \(scantokens(mc))
       VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
@@ -2946,7 +2953,7 @@
 \begin{mplibcode}
   beginfigm
     $("Maitotoxin") #(150mm,80mm) #@(3mm,3mm) 
-    sw_output:=Fig+Calc+Mcode;
+    sw_output:=Fig+Mcode;
     sw_frame:=Outside; %% mc_length:=40;
     if \*(mc)=0: \(scantokens(mc))
       VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
@@ -2963,18 +2970,18 @@
 \noindent%
 \begin{mplibcode}
 beginfigm
-#(160mm,75mm) |<(5mm)
+#(160mm,75mm) |<(4mm)
 %--------------------------------------------------------------------------------
-COOH:=''(//O,!,OH);
-HOCO:=''(OH,!,//O,);
+COOH:=''(?O,!,OH);
+HOCO:=''(OH,!,?O,);
 S_CoA:=`("{S-CoA}");
-@(0.33,   1)\(<30,HOCO,!,//O,!2,COOH)                    % Oxaloacetate
-@(0.66,   1)\(<30,HOCO,!4,COOH, at -4`1,\,COOH,4:/OH^-165)  % Citrate
-@(1,      1)\(<30,HOCO,!2,!~dr,!,COOH, at -4`1,\,COOH)      % cis-Aconitate
-@(1,   0.58)\(<30,HOCO,!4,COOH, at -4,\`1,COOH,5:/OH)       % Isocitrate
-@(1,   0.05)\(<30,HOCO,!3,//O,!,COOH, at -4,\`1,COOH)       % Oxalosuccinate
-@(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH)                    % alfa-Ketoglutarate
-@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA)                   % Succinyl-CoA
+@(0.33,   1)\(<30,HOCO,!,?O,!2,COOH)                     % Oxaloacetate
+@(0.66,   1)\(<30,HOCO,!4,COOH, at -4`1,!,COOH,4:/OH^-165)  % Citrate
+@(1,      1)\(<30,HOCO,!2,!~dr,!,COOH, at -4`1,!,COOH)      % cis-Aconitate
+@(1,   0.58)\(<30,HOCO,!4,COOH, at -4,!`1,COOH,5:/OH)       % Isocitrate
+@(1,   0.05)\(<30,HOCO,!3,?O,!,COOH, at -4,!`1,COOH)        % Oxalosuccinate
+@(0.66,0.05)\(<30,HOCO,!3,?O,!,COOH)                     % alfa-Ketoglutarate
+@(0.33,0.05)\(<30,HOCO,!3,?O,!,S_CoA)                    % Succinyl-CoA
 @(0,   0.05)\(<30,HOCO,!3,COOH)                          % Succinate
 @(0,   0.55)\(<30,HOCO,!,!~dr,!,COOH)                    % Fumarate
 @(0,      1)\(<30,HOCO,!3,COOH,3:/OH)                    % L-Malate
@@ -3015,7 +3022,7 @@
 ext_setup;
 r_arrow(10mm)(  0)(p1+ ( 1.1w1, 0.3h1))("Acetyl-CoA",1.5)(" CoA-SH",1);
 r_arrow(10mm)(  0)(p2+ ( 1.1w2, 0.4h2))("",0)("H2O",1);
-r_arrow( 8mm)(270)(p3+ ( 0.5w3,-0.4h3))("H2O",1)("",0);
+r_arrow( 8mm)(270)(p3+ ( 0.5w3,-0.6h3))("H2O",1)("",0);
 r_arrow( 8mm)(270)(p4+ ( 0.5w4,-0.4h4))("NAD+",1)("NADH2+",1);
 r_arrow(10mm)(180)(p5+ (-0.1w5, 0.4h5))("",0)("CO2",1);
 r_arrow(10mm)(180)(p6+ (-0.1w6, 0.5h6))("NAD+,CoA-SH",1.7)("NADH2+,CO2",1);
@@ -3031,17 +3038,17 @@
 %------------------------------------------------------------------------
 \begin{verbatim}
 beginfigm
-#(160mm,75mm) |<(5mm)
-COOH:=''(//O,!,OH);      % define COOH
-HOCO:=''(OH,!,//O,);     % define HOCO
+#(160mm,75mm) |<(4mm)
+COOH:=''(?O,!,OH);      % define COOH
+HOCO:=''(OH,!,?O,);     % define HOCO
 S_CoA:=`("{S-CoA}");    % define S_CoA
-@(0.33,   1)\(<30,HOCO,!,//O,!2,COOH)                    % Oxaloacetate
-@(0.66,   1)\(<30,HOCO,!4,COOH, at -4`1,\,COOH,4:/OH^-165)  % Citrate
-@(1,      1)\(<30,HOCO,!2,!~dr,!,COOH, at -4`1,\,COOH)      % cis-Aconitate
-@(1,   0.58)\(<30,HOCO,!4,COOH, at -4,\`1,COOH,5:/OH)       % Isocitrate
-@(1,   0.05)\(<30,HOCO,!3,//O,!,COOH, at -4,\`1,COOH)       % Oxalosuccinate
-@(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH)                    % alfa-Ketoglutarate
-@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA)                   % Succinyl-CoA
+@(0.33,   1)\(<30,HOCO,!,?O,!2,COOH)                     % Oxaloacetate
+@(0.66,   1)\(<30,HOCO,!4,COOH, at -4`1,!,COOH,4:/OH^-165)  % Citrate
+@(1,      1)\(<30,HOCO,!2,!~dr,!,COOH, at -4`1,!,COOH)      % cis-Aconitate
+@(1,   0.58)\(<30,HOCO,!4,COOH, at -4,!`1,COOH,5:/OH)       % Isocitrate
+@(1,   0.05)\(<30,HOCO,!3,?O,!,COOH, at -4,!`1,COOH)        % Oxalosuccinate
+@(0.66,0.05)\(<30,HOCO,!3,?O,!,COOH)                     % alfa-Ketoglutarate
+@(0.33,0.05)\(<30,HOCO,!3,?O,!,S_CoA)                    % Succinyl-CoA
 @(0,   0.05)\(<30,HOCO,!3,COOH)                          % Succinate
 @(0,   0.55)\(<30,HOCO,!,!~dr,!,COOH)                    % Fumarate
 @(0,      1)\(<30,HOCO,!3,COOH,3:/OH)                    % L-Malate
@@ -3058,7 +3065,7 @@
   ext_setup;
   r_arrow(10mm)(  0)(p1+ ( 1.1w1, 0.3h1))("Acetyl-CoA",1.5)(" CoA-SH",1);
   r_arrow(10mm)(  0)(p2+ ( 1.1w2, 0.4h2))("",0)("H2O",1);
-  r_arrow( 8mm)(270)(p3+ ( 0.5w3,-0.4h3))("H2O",1)("",0);
+  r_arrow( 8mm)(270)(p3+ ( 0.5w3,-0.6h3))("H2O",1)("",0);
   r_arrow( 8mm)(270)(p4+ ( 0.5w4,-0.4h4))("NAD+",1)("NADH2+",1);
   r_arrow(10mm)(180)(p5+ (-0.1w5, 0.4h5))("",0)("CO_2_",1);
   r_arrow(10mm)(180)(p6+ (-0.1w6, 0.5h6))("NAD+,CoA-SH",1.7)("NADH2+,CO2",1);
@@ -3085,7 +3092,6 @@
 %------------------------------------------------------------------------------
 input mcf2graph;                                        > input main macro
 %------------------------------------------------------------------------------
-sw_output:=Info;   % aux(information) file output on    > global setting
 %%%% sw_output:=Report;                                 > report output
 %%%% sw_output:=MOL2000;                                > MOL file output
 #(60mm,40mm);   %  (figure width,figure height)         >
@@ -3095,8 +3101,8 @@
 beginfigm
   % EN:Ampicillin  MW:349.405
   \(<45,?4,-3=?5,2:N,7:S,                               > immediately compile
-    3^45:/*H,1://O^15,5:/*COOH^-18,6:??,                >
-    @4,*\^15,NH,!,//O,!,/*NH2,!,Ph)                     >
+    3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,                 >
+    @4,!w^15,NH,!,?O,!,/*NH2,!,Ph)                      >
 endfigm                                                 >
 %------------------------------------------------------------------------------
 beginfigm
@@ -3104,8 +3110,8 @@
   '`(                                                   > read Mcode
   "<30,?6,-4'-2=?6,-4=?5,7=dl,        ",                > mc1
   "10:/*H^180,11:/*H^-60,17:/*H^-54,  ",                > mc2
-  "4'12:*/_^60,                       ",                > mc3
-  "@-1,18,/*_,-60,!3,?!               ")                > mc4
+  "4'12:?w^60,                        ",                > mc3
+  "@-1,18,?z,-60,!3,?!                ")                > mc4
   \\                                                    > put figure
 endfigm                                                 >
 %------------------------------------------------------------------------------
@@ -3168,22 +3174,22 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Guanine;MW:151.13;EXA:1
 :
-<30,?6,3=?5,1'3'9=dl,2'9:N,6'7:NH,5://O,1:/NH2
+<30,?6,3=?5,1'3'9=dl,2'9:N,6'7:NH,5:?O,1:/NH2
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Cytosine;MW:111.10;EXA:1
 :
-<30,?6,4'6=dl,4:N,3://O,2:NH,5:/NH2
+<30,?6,4'6=dl,4:N,3:?O,2:NH,5:/NH2
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Thymine;MW:126.11;EXA:1
 :
-<30,?6,3=dl,2'6:NH,1'5://O,4:/_
+<30,?6,3=dl,2'6:NH,1'5:?O,4:?
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Uracil;MW:112.09;EXA:1
 :
-<30,?6,6=dl,3'5://O,2'4:NH
+<30,?6,6=dl,3'5:?O,2'4:NH
 ;
 %== Amino acid ================================================================
 CAT:biological;EN:Glycine;MW:75.07;EXA:-
@@ -3203,7 +3209,7 @@
 \end{verbatim}
 \paragraph{(Command line)}
 \begin{verbatim}
-  >mpost -s ahlength=3 FILENAME  (sw_output=Info+Mcode)
+  >mpost -s ahlength=3 FILENAME  (sw_output=Fig Expand mode)
 \end{verbatim}
 \paragraph{(Output mcf file)}
 \begin{verbatim}
@@ -3213,17 +3219,6 @@
 <30,?6,3=?5,1'3'5'9=dl,2'6'9:N,5:/NH2,7:NH
 
 \end{verbatim}
-\paragraph{(Output library file)}
-\begin{verbatim}
-sw_output=Info+Mcode      %% file name = 'jobname-lib.aux'
-
-(result)
-CAT:biological;EN:Adenine;MW:135.13;EXA:1
-:
-<30,?6,3=?5,1'3'5'9=dl,2'6'9:N,5:/NH2,7:NH
-;
-
-\end{verbatim}
 %------------------------------------------------------------------------
 \paragraph{(LuaLaTeX example)}
 %-----------------------------------------------------------------------
@@ -3244,10 +3239,10 @@
 (result)
 file name = 'temp-mc.aux'
 
-<30,?6, at 4,?6, at -4,\,!3,<-12,?5, at -3,<-12,?6,-3=?6, at -3,*\,!3,
- ?6, at -4,?6, at 6,\,!,/*_^-40,*/OH^20,!,//O,!1,OH,
+<30,?6, at 4,?6, at -4,!,!3,<-12,?5, at -3,<-12,?6,-3=?6, at -3,!w,!3,
+ ?6, at -4,?6, at 6,!,!,?z^-40,*/OH^20,!,?O,!1,OH,
  3=wb,11=dl,15=dr,17'19=wf,38=wb,5'7'16'24'25'33'42:O,
- 32:*/H^60,10:/_,12'31:*/_,27://_,37:/*_,28:/OH,3'29:/*OH
+ 32:*/H^60,10:?,12'31:?w,27:?d,37:?z,28:/OH,3'29:/*OH
 \end{verbatim}
 %------------------------------------------------------------------------
 \newpage
@@ -3266,49 +3261,47 @@
 \paragraph{(Output)}
 \begin{verbatim}
 ===========================================================================
- No[5],Name<Cytosine>,Category<biological>,File<main_lib.mcf>
+ No[148],Name<Phenol>,Category<synthetic>,File<main_lib.mcf>
 ---------------------------------------------------------------------------
-<30,?6,4'6=db,4:N,3://O,2:NH,5:/NH2
+ Row[1],Length[12],Block[3],BackboneA[6],BackboneB[6],Group[1]
 ---------------------------------------------------------------------------
- Row[1],Length[37],Block[7],Code pair[59],Warning[0]
+<30,Ph,3:/OH
 ---------------------------------------------------------------------------
- =[1] :[4] ?[1] <[1]
+[1  ]  <30
+[2  ]  Ph
+[3  ]  3:/OH
 ---------------------------------------------------------------------------
- Width[30.92419],Height[42.36527], Shift x[-1.77635],Shift y[-12.9921]
+---------------------------------------------------------------------------
+ Width[35.80607],Height[24.55503], Shift x[-1.77635],Shift y[-7.54719]
  Bond length[11.33855],Atom size[4.881881]
 ---------------------------------------------------------------------------
- Atom[9],Bond[9],Ring[1],Hide H[2]
+ Atom[7],Bond[7],Ring[1],Hide H[5]
 < NO. ><atom(s) >(  x axis   ,   y axis   )<bond><hideH><chg>
  A1     C        (         0 ,          0 )    3     1
- A2     N        (         1 ,         -1 )    3        
+ A2     C        (         1 ,         -1 )    3     1
  A3     C        (         2 ,          0 )    4        
- A4     N        (         2 ,          1 )    3        
- A5     C        (         1 ,          1 )    4        
+ A4     C        (         2 ,          1 )    3     1
+ A5     C        (         1 ,          1 )    3     1
  A6     C        (         0 ,          1 )    3     1
- A7     O        (         3 ,          0 )    2        
- A8     H        (         1 ,         -1 )    1        
- A9     NH2      (         1 ,          2 )    1        
+ A7     OH       (         3 ,          0 )    1        
 ---------------------------------------------------------------------------
 < NO. ><  bond   (sdt)><angle +(  +-  )><length (   pt   )>
- B1     1 ->   2 (  1)     330 (   -30)       1 (      11)
+ B1     1 ->   2 (  2)     330 (   -30)       1 (      11)
  B2     2 ->   3 (  1)      30 (    30)       1 (      11)
- B3     3 ->   4 (  1)      90 (    90)       1 (      11)
- B4     4 ->   5 (  2)     150 (   150)       1 (      11)
- B5     5 ->   6 (  1)     210 (  -150)       1 (      11)
- B6     6 ->   1 (  2)     270 (   -90)       1 (      11)
- B7     3 ->   7 (  2)     330 (   -30)0.660000 (       7)
- B8     2 ->   8 (  1)     270 (   -90)0.359999 (       4)
- B9     5 ->   9 (  1)      90 (    90)0.660000 (       7)
+ B3     3 ->   4 (  2)      90 (    90)       1 (      11)
+ B4     4 ->   5 (  1)     150 (   150)       1 (      11)
+ B5     5 ->   6 (  2)     210 (  -150)       1 (      11)
+ B6     6 ->   1 (  1)     270 (   -90)       1 (      11)
+ B7     3 ->   7 (  1)     330 (   -30)0.660000 (       7)
 ---------------------------------------------------------------------------
 <atom>( atom wt )[ mi wt   ]  < cnt > < sum wt   >[ sum mi wt  ]
- C    (  12.0107)[       12] *        4    48.0428[          48]
- H    (1.0079400)[1.0078250] *        5    5.03969[5.0391251611]
- N    (  14.0067)[14.003074] *        3    42.0200[42.009222013]
+ C    (  12.0107)[       12] *        6    72.0642[          72]
+ H    (1.0079400)[1.0078250] *        6    6.04764[6.0469501933]
  O    (  15.9994)[15.994914] *        1    15.9994[15.994914619]
- Molecular Weight [Mono Isotopic] =       111.1019[  111.043261]
+ Molecular Weight [Mono Isotopic] =       94.11123[  94.0418648]
 ---------------------------------------------------------------------------
- Weight Calc: 111.1019 - Input: 111.10 = 0.0019999
- Fomula Calc: C4H5N3O
+ Weight Calc: 94.11123 - Input: 94.11 = 0.0012399
+ Fomula Calc: C6H6O
 ===========================================================================
 \end{verbatim}
 \newpage
@@ -3398,12 +3391,12 @@
     #(50mm,50mm)
     '`(
     %---------------------------------------
-    "<30,?6,-3'-4=?6,                     ",
-    " -5=?3,-2=wf,-1=wb,6=?5,-4=?6,-5=wf, ",
-    " 13'15'17'20:O,3'12'21://O,          ",
-    " {4~wf^60'8~zf^60'18^35'18^-35}:/_,  ",
-    " {1^60'5^180'16^60}:/*H,             ",
-    " @14,\*,|,?5,1'4=dl,3:O              ")
+    "<30,?6,-3'-4=?6,                      ",
+    " -5=?3,-2=wf,-1=wb,6=?5,-4=?6,-5=wf,  ",
+    " 13'15'17'20:O,3'12'21:?O,            ",
+    " {4~wf^60'8~zf^60'18^35'18^-35}:?,    ",
+    " {1^60'5^180'16^60}:/*H,              ",
+    " @14,!z,|,?5,1'4=dl,3:O               ")
     %---------------------------------------
     \\
   endfigm
@@ -3416,10 +3409,10 @@
     #(80mm,50mm)
     '`(
     %-----------------------------------------
-    "<30,?6,3=dl,{3'5^35'5^-35}:/_,         ",
-    " @4,\,|,!18,1'3'5'7'9'11'13'15'17=dr,  ",
-    " 3'7'12'16:/_,                         ",
-    " |,?6,6=dl,{6'2^35'2^-35}:/_           ")
+    "<30,?6,3=dl,{3'5^35'5^-35}:?,          ",
+    " @4,!,|,!18,1'3'5'7'9'11'13'15'17=dr,  ",
+    " 3'7'12'16:?,                          ",
+    " |,?6,6=dl,{6'2^35'2^-35}:?            ")
     %-----------------------------------------
     \\
   endfigm
@@ -3432,4 +3425,3 @@
 \texttt{\printindex}
 %------------------------------------------------------------------------
 \end{document}
-}

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf template file    mcf_template.mcf   by Akira Yamaji   2024.12.01
+% mcf template file    mcf_template.mcf   by Akira Yamaji   2025.01.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %  must use version 5.15
 %  tag1:var1;tag2:var2;tag3:var3 .....
@@ -14,7 +14,6 @@
 Cat:biological;EN:Paclitaxel;MW:853.918;EXA:1
 %-------------------------------------------------------------------
 = %%%%%% start parameter setting %%%%%%
-  sw_output:=Fig+Calc;
   sw_frame:=Outside;
   fsize:=(50mm,30mm);
   fmargin:=(2mm,2mm);
@@ -22,9 +21,9 @@
 %-------------------------------------------------------------------
 : %%%%%%% start MCF %%%%%%
 ?6,5=dl, at 3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O,
- 4:??,6:/_,{3^-60'15}:*/OH,8:/*H^-60,9:*/_^60,10://O,
- @1,\,O!,?O!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,
- @7,\*,O,-45,//O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!
+ 4:??,6:?,{3^-60'15}:*/OH,8:/*H^-60,9:?w^60,10://O,
+ @1,!,O!,?O!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,
+ @7,!z,O,-45,//O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!
 %-------------------------------------------------------------------
 * %%%%%% start ext(...) %%%%%%
   defaultscale:=0.5;
@@ -37,7 +36,6 @@
 Cat:biological;EN:Erythromycin;MW:733.93
 %-------------------------------------------------------------------
 = %%%%%% start parameter setting %%%%%%
-  sw_output:=Fig+Calc;
   sw_frame:=Outside;
   fsize:=(50mm,30mm);
   fmargin:=(2mm,2mm);
@@ -44,12 +42,11 @@
   mposition:=(1,0);
 %-------------------------------------------------------------------
 : %%%%%%% start MCF %%%%%%
- <30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,
-  14:O,13:/*!,1'9://O,
-  {*2'4'6^-35'8'*10'12^35}:/*_,
-  {6^35'11'12^-35}:*/OH,
-  @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##,
-  @$5,\*^30`1.7,O,!~zb,|,?6`.7,6:O,#.5,5:/*_,2:*/OH,3:/*N?!
+<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,
+ 14:O,13:/*!,1'9:?O,{*2'4'6^-35'8'*10'12^35}:?z,
+ {6^35'11'12^-35}:*/OH,
+ @$3,!z,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:?,4:/*OH,3^-35:/*O!,##,
+ @$5,30~zf`1.7,O,!zb,|,?6`.7,6:O,#.5,5:?z,2:*/OH,3:/*N?!
 %-------------------------------------------------------------------
 * %%%%%% start ext(...) %%%%%%
   defaultscale:=0.5;

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,17 +1,17 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF compile template file                    by Akira Yamaji  2024.12.01
+% MCF compile template file                    by Akira Yamaji  2025.01.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.15
-message "* mcf_template 2024.12.01";
+if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.16
+message "* mcf_template 2025.01.05";
 message "";
 %------------------------------------------------------------------------------
+sw_output:=Fig;
+%%%%sw_output:=Fig+Report;
 %%%%ext(defaultscale:=.3; label.rt(EN,(0,0));)
 %------------------------------------------------------------------------------
 %%%%ext(defaultfont:=mpfont; defaultscale:=.3;
 %%%%label.rt(EN&" / "&mw&" / "&decimal(num_MW-scantokens(MW)),(0,0));)
 %------------------------------------------------------------------------------
-sw_output:=Fig+Calc;
-%------------------------------------------------------------------------------
 loadm("f:temp");
 %------------------------------------------------------------------------------
 for i=1 upto ucount:  beginfigm $(i) \\ endfigm  endfor

Modified: trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular library file    main_lib.mcf   by Akira Yamaji   2024.12.01
+% molecular library file    main_lib.mcf   by Akira Yamaji   2025.01.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  must use version 5.15
+%  must use version 5.16
 %  tag1:var1;tag2:var2;tag3:var3 .....
 %  first character of line "%" comment out
 %  first character of line ":"  start MCF
@@ -12,7 +12,7 @@
 %  CAT = CATegory,EN = Name,MW = Molecular weight
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %==============================================================================
-CAT:-;EN:-;MW:0;EXA:-;
+CAT:Example;EN:Example 0;MW:0;EXA:-;
 =
  sw_frame:=Atom;
 :
@@ -27,272 +27,267 @@
  label.top("A9",A9) withcolor red;
 ;
 %==============================================================================
-CAT:biological;EN:Adenine;MW:135.13;EXA:1
+CAT:nucleic acid;EN:Adenine;MW:135.13;EXA:1
 :
 <30,?6,3=?5,1'3'5'9=db,2'6'9:N,5:/NH2,7:NH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Guanine;MW:151.13;EXA:1
+CAT:nucleic acid;EN:Guanine;MW:151.13;EXA:1
 :
 <30,?6,3=?5,1'3'9=db,2'9:N,6'7:NH,5:?O,1:/NH2
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Cytosine;MW:111.10;EXA:1
+CAT:nucleic acid;EN:Cytosine;MW:111.10;EXA:1
 :
 <30,?6,4'6=db,4:N,3:?O,2:NH,5:/NH2
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Thymine;MW:126.11;EXA:1
+CAT:nucleic acid;EN:Thymine;MW:126.11;EXA:1
 :
-<30,?6,3=db,2'6:NH,1'5:?O,4:/_
+<30,?6,3=db,2'6:NH,1'5:?O,4:?
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Uracil;MW:112.09;EXA:1
+CAT:nucleic acid;EN:Uracil;MW:112.09;EXA:1
 :
 <30,?6,6=db,3'5:?O,2'4:NH
 ;
 %== Amino acid ================================================================
-CAT:biological;EN:Glycine;MW:75.07;EXA:-
+CAT:amino acid;EN:Glycine;MW:75.07;EXA:1
 :
 <30,NH2,!2,COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Glycine;MW:75.07;EXA:-
+CAT:amino acid;EN:L-Alanine;MW:89.10;EXA:1
 :
-<30,NH2,!2,COOH
-;
-%------------------------------------------------------------------------------
-CAT:biological;EN:L-Alanine;MW:89.10;EXA:-
-:
 <30,NH2,!wb,?!,COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Valine;MW:117.15;EXA:-
+CAT:amino acid;EN:L-Valine;MW:117.15;EXA:1
 :
 <30,NH2,!wb,/?!,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Leucine;MW:131.16;EXA:1
+CAT:amino acid;EN:L-Leucine;MW:131.16;EXA:1
 :
 <30,NH2,!wb,/!?!,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Isoleucine;MW:131.16;EXA:-
+CAT:amino acid;EN:L-Isoleucine;MW:131.16;EXA:1
 :
 <30,NH2,!wb,/?z'!2,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Serine;MW:105.09;EXA:-
+CAT:amino acid;EN:L-Serine;MW:105.09;EXA:1
 :
 <30,NH2,!wb,/!OH,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Threonine;MW:119.12;EXA:-
+CAT:amino acid;EN:L-Threonine;MW:119.12;EXA:1
 :
 <30,NH2,!wb,/?'!w'OH,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Cysteine;MW:121.16;EXA:-
+CAT:amino acid;EN:L-Cysteine;MW:121.16;EXA:1
 :
 <30,NH2,!wb,/!SH,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Methionine;MW:149.21;EXA:-
+CAT:amino acid;EN:L-Methionine;MW:149.21;EXA:1
 :
 <30,NH2,!wb,/!2'S!,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Phenylalanine;MW:165.19;EXA:-
+CAT:amino acid;EN:L-Phenylalanine;MW:165.19;EXA:1
 :
 <30,NH2,!wb,/!Ph,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Tyrosine;MW:181.19;EXA:-
+CAT:amino acid;EN:L-Tyrosine;MW:181.19;EXA:1
 :
 <30,NH2,!wb,/!Ph'(5:/OH),!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Triptophan;MW:204.21;EXA:-
+CAT:biological;EN:L-Triptophan;MW:204.21;EXA:1
 :
-<30,NH2,!wb,!COOH, at 2,\,!,<24,|,?5,2=dr,5=dl,2=Ph,4:NH
+<30,NH2,!wb,!COOH, at 2,!2,<24,|,?5,2=dr,5=dl,2=Ph,4:NH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Proline;MW:115.13;EXA:-
+CAT:amino acid;EN:L-Proline;MW:115.13;EXA:1
 :
 <18,?5,3:NH,4:*/COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Glutamine;MW:146.15;EXA:-
+CAT:amino acid;EN:L-Glutamine;MW:146.15;EXA:1
 :
-<30,NH2,!wb,!COOH, at 2,\`1,!`1,!,?O!,NH2
+<30,NH2,!wb,!COOH, at 2,!2`1,!,?O!,NH2
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Asparagine;MW:132.12;EXA:-
+CAT:amino acid;EN:L-Asparagine;MW:132.12;EXA:1
 :
 <30,NH2,!wb,/!?O!'NH2,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Aspartic acid;MW:133.10;EXA:-
+CAT:amino acid;EN:L-Aspartic acid;MW:133.10;EXA:1
 :
 <30,NH2,!wb,/!COOH,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Glutamic acid;MW:147.13;EXA:-
+CAT:amino acid;EN:L-Glutamic acid;MW:147.13;EXA:1
 :
 <30,NH2,!wb,/!2'COOH,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Lysine;MW:146.19;EXA:-
+CAT:amino acid;EN:L-Lysine;MW:146.19;EXA:1
 :
 <30,NH2,!wb,/!4'NH2,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Arginine;MW:174.21;EXA:-
+CAT:amino acid;EN:L-Arginine;MW:174.21;EXA:1
 :
-<30,NH2,!wb,!COOH, at 2,\`1,!`1,!2,NH!,?NH,!NH2
+<30,NH2,!wb,!COOH, at 2,!2`1,!2,NH!,?NH,!NH2
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Hystidine;MW:155.16;EXA:-
+CAT:amino acid;EN:L-Hystidine;MW:155.16;EXA:1
 :
-<30,NH2,!wb,!COOH, at 2,\,!,|,?5,1'3=dl,3:N,5:NH
+<30,NH2,!wb,!COOH, at 2,!2,|,?5,1'3=dl,3:N,5:NH
 ;
 %==============================================================================
-CAT:biological;EN:L-DOPA;MW:197.19;EXA:-
+CAT:amino acid;EN:L-DOPA;MW:197.19;EXA:1
 :
 <30,NH2,!wb,/!Ph'(4'5:/OH),!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Ornithine;MW:132.16;EXA:-
+CAT:amino acid;EN:Ornithine;MW:132.16;EXA:1
 :
 <30,NH2,!wb,/!3'NH2,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Citrulline;MW:175.2;EXA:-
+CAT:amino acid;EN:Citrulline;MW:175.2;EXA:1
 :
 <30,NH2,!wb,/!3'NH!'?O!'NH2,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:GABA;MW:103.12;EXA:-
+CAT:amino acid;EN:GABA;MW:103.12;EXA:1
 :
 <30,NH2,!4,COOH
 ;
 %==============================================================================
-CAT:biological;EN:Citrate;MW:192.12;EXA:-
+CAT:biological;EN:Citrate;MW:192.12;EXA:1
 :
 <30,COOH,!2,/COOH^30,/OH^-30,!2,COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:cis-Aconitate;MW:174.11;EXA:-
+CAT:biological;EN:cis-Aconitate;MW:174.11;EXA:1
 :
 <30,COOH,!2,/COOH,!d,60,COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Isocitrate;MW:192.12;EXA:-
+CAT:biological;EN:Isocitrate;MW:192.12;EXA:1
 :
 <30,COOH,!4,COOH,3:!COOH,4:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Oxalosuccinate;MW:190.11;EXA:-
+CAT:biological;EN:Oxalosuccinate;MW:190.11;EXA:1
 :
 <30,COOH,!2,/COOH,!?O!,COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:alfa-Ketoglutarate;MW:146.1;EXA:-
+CAT:biological;EN:alfa-Ketoglutarate;MW:146.1;EXA:1
 :
 <30,COOH,!3,?O!,COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Succinate;MW:118.09;EXA:-
+CAT:biological;EN:Succinate;MW:118.09;EXA:1
 :
 <30,COOH,!3,COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Fumarate;MW:116.07;EXA:-
+CAT:biological;EN:Fumarate;MW:116.07;EXA:1
 :
 <30,COOH,!,!d,!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Malate;MW:134.09;EXA:-
+CAT:biological;EN:Malate;MW:134.09;EXA:1
 :
 <30,COOH,!3,COOH,3:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Oxaloacetate;MW:132.07;EXA:-
+CAT:biological;EN:Oxaloacetate;MW:132.07;EXA:1
 :
 <30,COOH,!,?O!2,COOH
 ;
 %==============================================================================
-CAT:biological;EN:Glucose 1;MW:180.16;EXA:1
+CAT:sugar;EN:Glucose 1;MW:180.16;EXA:1
 :
 <30,?6,5:O,2:*/OH,1'3:/*OH,4:*/*OH,6:*/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Glucose 2;MW:180.16;EXA:1
+CAT:sugar;EN:Glucose 2;MW:180.16;EXA:1
 :
 <-30,OH,!2,*/OH,!,/*OH,!,/*OH,!,/*OH,!,?O!,H
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:D-Glucose;MW:180.16;EXA:1
+CAT:sugar;EN:D-Glucose;MW:180.16;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Fructose 1;MW:180.16;EXA:1
+CAT:sugar;EN:Fructose 1;MW:180.16;EXA:1
 :
 <30,OH,!2,/*OH,!,*/OH,!,*/OH,!,?O!2,OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Fructose 2;MW:180.16;EXA:1
+CAT:sugar;EN:Fructose 2;MW:180.16;EXA:1
 :
 <-18,?5,5:O,1^-48:*/*!OH,1^48:/OH,*2'3:*/OH,4:/*!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:D-Fluctose;MW:180.16;EXA:1
+CAT:sugar;EN:D-Fluctose;MW:180.16;EXA:1
 :
 Pyranose_hp,#.5,1^$270:/OH,{2^$270'3^$90}:/OH,{1^$90'4^$270}:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:D-Galactose;MW:180.16;EXA:1
+CAT:sugar;EN:D-Galactose;MW:180.16;EXA:1
 :
 hexose_hp,#.5,{1^$90'2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:D-Mannose;MW:180.16;EXA:1
+CAT:sugar;EN:D-Mannose;MW:180.16;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'3^$90'4^$270}:/OH,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:L-Fucose;MW:164.16;EXA:1
+CAT:sugar;EN:L-Fucose;MW:164.16;EXA:1
 :
-hexose_hp,#.5,{1^$270'2^$270'3^$90'4^$90}:/OH,6^$270:/_
+hexose_hp,#.5,{1^$270'2^$270'3^$90'4^$90}:/OH,6^$270:?
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:D-Ribose;MW:150.13;EXA:1
+CAT:sugar;EN:D-Ribose;MW:150.13;EXA:1
 :
 Pyranose_hp,#.5,{2^$270'3^$270'4^$90}:/OH,1^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:D-Deoxyribose;MW:134.13;EXA:1
+CAT:sugar;EN:D-Deoxyribose;MW:134.13;EXA:1
 :
 Pyranose_hp,#.5,{2^$270'4^$90}:/OH,1^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:D-Glucosamine;MW:179.17;EXA:1
+CAT:sugar;EN:D-Glucosamine;MW:179.17;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'4^$270}:/OH,3^$270:/NH2,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:N-acetyl-Glucosamine;MW:221.21;EXA:1
+CAT:sugar;EN:N-acetyl-Glucosamine;MW:221.21;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'4^$270}:/OH,3^$270>lr:/NH!'?O!,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Glucuronic acid;MW:194.14;EXA:1
+CAT:sugar;EN:Glucuronic acid;MW:194.14;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'3^$270'4^$270}:/OH,6^$90:/COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Maltose;MW:342.3;EXA:1
+CAT:sugar;EN:Maltose;MW:342.3;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
  @4,$310~arc_lb`1,O,$50~arc_br`1,<$0,
@@ -299,7 +294,7 @@
  |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Sucrose;MW:342.3;EXA:1
+CAT:sugar;EN:Sucrose;MW:342.3;EXA:2
 :
 hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
  @4,$310~arc_lb`1,O,$50~arc_br`1,<$0,
@@ -307,7 +302,7 @@
  #.5,{2^$270'3^$90}:/OH,{1^$90'4^$270}:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Lactose;MW:342.3;EXA:1
+CAT:sugar;EN:Lactose;MW:342.3;EXA:1
 :
 hexose_hp,#.5,{1^$90'2^$90'3^$270}:/OH,6^$90:/!OH,##,
  @4,$0~arc_ltr,O,$0~arc_lbr,
@@ -314,7 +309,7 @@
  |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Cellobiose;MW:342.3;EXA:1
+CAT:sugar;EN:Cellobiose;MW:342.3;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
  @4,$0~arc_lbr,O,$0~arc_ltr,
@@ -321,7 +316,7 @@
  |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Trehalose;MW:342.3;EXA:1
+CAT:sugar;EN:Trehalose;MW:342.3;EXA:1
 :
 hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
  @4,@(1'0),|,hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
@@ -330,17 +325,17 @@
 %==============================================================================
 CAT:biological;EN:Geraniol;MW:154.25;EXA:1
 :
-<30,!8,OH,2'6=dr,2'6:/_
+<30,!8,OH,2'6=dr,2'6:?
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Limonene;MW:136.24;EXA:-
+CAT:biological;EN:Limonene;MW:136.24;EXA:1
 :
-<30,?6,2=dl,2:/_,5:*/?!d
+<30,?6,2=dl,2:?,5:*/?!d
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:l-Menthol;MW:156.27;EXA:1
 :
-<30,?6,2:/*?!,5:*/_,3:*/OH
+<30,?6,2:/*?!,5:?w,3:*/OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Allicin;MW:162.28;EXA:1
@@ -348,27 +343,27 @@
 <-30,!d,!2,S?O,!,S,!2,!d
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Benzoic acid;MW:122.12;EXA:-
+CAT:biological;EN:Benzoic acid;MW:122.12;EXA:1
 :
 <30,Ph,3:/COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Gallic acid;MW:170.12;EXA:-
+CAT:biological;EN:Gallic acid;MW:170.12;EXA:1
 :
 <30,Ph,3:/COOH,1'5'6:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Salicylic acid;MW:138.12;EXA:-
+CAT:biological;EN:Salicylic acid;MW:138.12;EXA:1
 :
 <30,Ph,3:/COOH,4:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Cinnamic acid;MW:148.16;EXA:-
+CAT:biological;EN:Cinnamic acid;MW:148.16;EXA:1
 :
 <30,Ph,3:/!dr'!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Cinnamaldehyde;MW:132.16;EXA:-
+CAT:biological;EN:Cinnamaldehyde;MW:132.16;EXA:1
 :
 <30,Ph,3:/!dr'!CHO
 ;
@@ -383,47 +378,47 @@
 <30,Ph,1:/OH,6:/O!,4:/CHO
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:alfa-Terpinene;MW:136.24;EXA:-
+CAT:biological;EN:alfa-Terpinene;MW:136.24;EXA:1
 :
-<30,?6,3:/?!,6:/_,3'5=db
+<30,?6,3:/?!,6:?,3'5=db
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:beta-Terpinene;MW:136.24;EXA:-
 :
-<30,?6,3:/?!,6://_,3=db
+<30,?6,3:/?!,6:?d,3=db
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:gamma-Terpinene;MW:136.24;EXA:-
+CAT:biological;EN:gamma-Terpinene;MW:136.24;EXA:1
 :
-<30,?6,3:/?!,6:/_,3'6=db
+<30,?6,3:/?!,6:?,3'6=db
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:delta-Terpinene;MW:136.24;EXA:-
 :
-<30,?6,3://?!,6:/_,5=db
+<30,?6,3://?!,6:?,5=db
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Eugenol;MW:164.20;EXA:-
+CAT:biological;EN:Eugenol;MW:164.20;EXA:1
 :
 <30,Ph,1:/OH,6:/O!,4:/!'!d
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Thymol;MW:150.22;EXA:-
+CAT:biological;EN:Thymol;MW:150.22;EXA:1
 :
-<30,Ph,4:/OH,3:/?!,6:/_
+<30,Ph,4:/OH,3:/?!,6:?
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Anisaldehyde;MW:136.15;EXA:-
+CAT:biological;EN:Anisaldehyde;MW:136.15;EXA:1
 :
 <30,Ph,4:/CHO,1:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Benzaldehyde;MW:106.12;EXA:-
+CAT:biological;EN:Benzaldehyde;MW:106.12;EXA:1
 :
 <30,Ph,4:/CHO
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:gamma-Nonalactone;MW:156.23;EXA:-
+CAT:biological;EN:gamma-Nonalactone;MW:156.23;EXA:1
 :
 <18,?5,2:O,1:?O,3^-12:/!4
 ;
@@ -433,42 +428,42 @@
 <18,?5,2:O,1:?O,3^-12:/!6
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Muscone;MW:238.40;EXA:-
+CAT:biological;EN:Muscone;MW:238.40;EXA:1
 :
-<-72,#1,60,-48,60,60,-48,60,60,-48,60,60,-48,60,60,-48,##,&1,9:?O,7:/_
+<-72,#1,60,-48,60,60,-48,60,60,-48,60,60,-48,60,60,-48,##,&1,9:?O,7:?
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:alfa-Pinene;MW:136.24;EXA:-
+CAT:biological;EN:alfa-Pinene;MW:136.24;EXA:1
 :
-<30,?6,3:??,5:/_,5=db, at 2,180~zf`1,&4~zb
+<30,?6,3:??,5:?,5=db, at 2,180~zf`1,&4~zb
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:beta-Pinene;MW:136.24;EXA:-
 :
-<30,?6,3:??,5://_, at 2,180~zf`1,&4~zb
+<30,?6,3:??,5:?d, at 2,180~zf`1,&4~zb
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Neral;MW:152.24;EXA:-
+CAT:biological;EN:Neral;MW:152.24;EXA:1
 :
 <30,!?,!d,!3,?,!d,-60,CHO
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Geranial;MW:152.24;EXA:-
+CAT:biological;EN:Geranial;MW:152.24;EXA:1
 :
 <30,!?,!d,!3,?,!d,!,CHO
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:p-Cymene;MW:134.21;EXA:-
+CAT:biological;EN:p-Cymene;MW:134.21;EXA:1
 :
-<30,Ph,4:/?!,1:/_
+<30,Ph,4:/?!,1:?
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Benzyl-acetate;MW:150.18;EXA:-
+CAT:biological;EN:Benzyl-acetate;MW:150.18;EXA:1
 :
-<30,Ph, at 4,\,?O!,O!,!,Ph
+<30,Ph, at 4,!,?O!,O!,!,Ph
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Benzyl-benzoate;MW:212.25;EXA:-
+CAT:biological;EN:Benzyl-benzoate;MW:212.25;EXA:1
 :
 <30,Ph,4:/!O!'?O!
 ;
@@ -490,19 +485,19 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Tocopherol;MW:430.717;EXA:1
 :
-<30,Ph,3=?6,7:O,1'2'5:/_,8:/*_^60,6:/OH, at 8,\,|,!12,4'8:/*_,12:/_
+<30,Ph,3=?6,7:O,1'2'5:?,8:?z^60,6:/OH, at 8,!,|,!12,4'8:?z,12:?
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Thiamine;MW:265.35;EXA:1
 :
-<30,Ph,4:/NH2, at 3,\`1,!,<-12,?5,-1'-4=dl,1'5'8:N,11:S,6'9:/_,
+<30,Ph,4:/NH2, at 3,!`1,!,<-12,?5,-1'-4=dl,1'5'8:N,11:S,6'9:?,
  -3^-12:/!2'OH,8:p_^72
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Riboflavin;MW:376.37;EXA:2
 :
-<30,Ph,3'9=?6,8'16=dl,7'10'14:N,12:NH,11'13:?O,1'6:/_,
- @10,\`1.5,!,*/OH,!,/*OH,!,*/OH,!2,OH
+<30,Ph,3'9=?6,8'16=dl,7'10'14:N,12:NH,11'13:?O,1'6:?,
+ @10,!`1.5,!,*/OH,!,/*OH,!,*/OH,!2,OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Nicotinic acid;MW:123.11;EXA:1
@@ -522,7 +517,7 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Pyridoxine;MW:169.18;EXA:1
 :
-<30,Ph,2:N,3:/_,4:/OH,5'6:/!OH
+<30,Ph,2:N,3:?,4:/OH,5'6:/!OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Biotin;MW:244.31;EXA:1
@@ -530,21 +525,20 @@
 <18,?5,4=?5,2:S,6'8:NH,7:?O,{4^-54'5^54}:*/H,3^-12:/*!4'COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Folic acid;MW:441.3975;EXA:1
+CAT:biological;EN:Folic acid;MW:441.3975;EXA:2
 :
 <30,?6,3=Ph2,1=dl,2'7'10:N,6:NH,5:?O,1:/NH2,
- @9,\,!NH!,Ph, at -3,\,?O,!NH!,/*COOH,!3,COOH
+ @9,!,!NH!,Ph, at -3,!,?O,!NH!,/*COOH,!3,COOH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Carotene;MW:536.8726;EXA:1
 :
-<30,?6, at 4,\,!18,?6,
- 8'10'12'14'16'18'20'22'24=dr,5'9'13'18'22'-5:/_,4'-6=dl,3'-1:??
+<30,?6, at 4,!19,?6,8'10'12'14'16'18'20'22'24=dr,5'9'13'18'22'-5:?,4'-6=dl,3'-1:??
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Adrenalin;MW:183.21;EXA:1
 :
-<30,Ph,1'6:/OH, at 4,\,*/OH,!2,NH!
+<30,Ph,1'6:/OH, at 4,!,*/OH,!2,NH!
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Caffeine;MW:194.194;EXA:1
@@ -559,24 +553,24 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Capsaicin;MW:305.418;EXA:1
 :
-<30,Ph,1:/OH,6:/O!, at 4,\,!NH!,?O,!7,?!,-3=dl
+<30,Ph,1:/OH,6:/O!, at 4,!,!NH!,?O,!7,?!,-3=dl
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Gibberellin A3;MW:346.379;EXA:2
 :
-<18,?5,3=?7,5=?6[12], at 8,160`1.3,&3,13=dl,6=wf,8=wb,
- @5,40~zf`1,O,50,?O^180,&14~zb,2:/COOH,7://_,*8'13:*/OH,14:*/_,1'4:*/H^60
+<18,?5,3=?7,5=#1.2'?6, at 8,160`1.3,&3,13=dl,6=wf,8=wb,
+ @5,40~zf`1,O,50,?O^180,&14~zb,2:/COOH,7:?d,*8'13:*/OH,14:?w,1'4:*/H^60
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Cholesterol;MW:386.664;EXA:1
 :
 <30,?6,-4'-2=?6,-4=?5,7=dl,
- 1:*/OH,4'12:*/_^60,{*9^60'10^180'11^-60'-1^-60}:/*H, at -1,17,/*_,!4,?!
+ 1:*/OH,4'12:?w^60,{*9^60'10^180'11^-60'-1^-60}:/*H, at -1,17,?z,!4,?!
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Resveratrol;MW:228.24;EXA:1
 :
-<30,Ph, at 4,\,!d,!Ph,2'6'-3:/OH
+<30,Ph, at 4,!,!d,!Ph,2'6'-3:/OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Glutathione;MW:307.33;EXA:1
@@ -586,20 +580,20 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Trenbolone;MW:270.37;EXA:1
 :
-<30,?6,3'10=?6,13=?5,2'11'15=dl,1:?O,12:*/_^60,-1:/*OH,{9^60'*11^-60}:*/H
+<30,?6,3'10=?6,13=?5,2'11'15=dl,1:?O,12:?w^60,-1:/*OH,{9^60'*11^-60}:*/H
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Luciferin;MW:280.33;EXA:1
 :
-<30,Ph,3=?5, at 8,\,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH
+<30,Ph,3=?5, at 8,!,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Chlorophyll a;MW:893.509;EXA:1
+CAT:biological;EN:Chlorophyll a;MW:893.509;EXA:2
 :
-<-36,#1,?5, at 3,\,54,?5, at -2,\,54,?5, at -2,\,54,?5, at -2,\,&5, at 6,22,70,&8,##,
- 4'6'8'10'14'16'18'21'23'27=dl, at 4,\`1.48~vf,Mg,&17~vb, at 11,&27, at 27,&23,
- 4'11'17'23:N,{1~zf'9'15'21}:/_,14:/!,20:/!d,25:/*?O!'O!,26:?O,
- @2,*\^-6,!2,?O!,O!2,!d,|,!13,1'5'9'13:/_
+<-36,#1,?5, at 3,!,54,?5, at -2,!,54,?5, at -2,!,54,?5, at -2,!,&5, at 6,22,70,&8,##,
+ 4'6'8'10'14'16'18'21'23'27=dl, at 4,!`1.48~vf,Mg,&17~vb, at 11,&27, at 27,&23,
+ 4'11'17'23:N,{1~zf'9'15'21}:?,14:/!,20:/!d,25:/*?O!'O!,26:?O,
+ @2,-6~wf,!2,?O!,O!2,!d,|,!13,1'5'9'13:?
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Alizarin;MW:240.21;EXA:1
@@ -609,23 +603,23 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Indigo;MW:262.26;EXA:1
 :
-<30,Ph,3=?5, at -2,\\,?5,-3=Ph2,7'14:NH,9'11:?O
+<30,Ph,3=?5, at -2,!d,?5,-3=Ph2,7'14:NH,9'11:?O
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:6,6'-dibromoindigo;MW:420.0549;EXA:1
 :
-<30,Ph,3=?5, at -2,\\,?5,-3=Ph2,7'14:NH,9'11:?O,1'-2:/Br
+<30,Ph,3=?5, at -2,!d,?5,-3=Ph2,7'14:NH,9'11:?O,1'-2:/Br
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Carminic Acid;MW:492.39;EXA:1
+CAT:biological;EN:Carminic Acid;MW:492.39;EXA:2
 :
-<30,Ph,3=?6,-3=Ph2,7'10:?O,2'5'6'13:/OH,11:/_,12:/COOH,
- @1,\~wb`1,?6,-5:O,-1'*-2'-3:/*OH,-4:*/!OH
+<30,Ph,3=?6,-3=Ph2,7'10:?O,2'5'6'13:/OH,11:?,12:/COOH,
+ @1,!~wb`1,?6,-5:O,-1'*-2'-3:/*OH,-4:*/!OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Curcumin;MW:368.38;EXA:1
 :
-<30,Ph, at 3,\,!7,Ph,8'13=dr,9'11:?O,6'-3:/OH,5'-4:/O!
+<30,Ph, at 3,!8,Ph,8'13=dr,9'11:?O,6'-3:/OH,5'-4:/O!
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Berberine;MW:336.36;EXA:1
@@ -633,14 +627,14 @@
 <30,Ph,3=Ph,-3=?6,-2=Ph2,-3=?5,8:N,8:p_^60,-1'-3:O,{1>vt'2}:/!OH
 ;
 %==============================================================================
-CAT:biological;EN:Apigenin;MW:270.24;EXA:-
+CAT:biological;EN:Apigenin;MW:270.24;EXA:1
 :
-<30,Ph,2'6:/OH,3=?6,9=dl,10:O,7:?O,9:/Ph'(-3:/OH)
+<30,Ph,2'6:/OH,3=?6,9=dl,10:O,7:?O, at 9,!,Ph,-3:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Luteolin;MW:286.24;EXA:-
+CAT:biological;EN:Luteolin;MW:286.24;EXA:1
 :
-<30,Ph,2'6:/OH,3=?6,9=dl,10:O,7:?O,9:/Ph'(-2'-3:/OH)
+<30,Ph,2'6:/OH,3=?6,9=dl,10:O,7:?O, at 9,!,Ph,-2'-3:/OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Flavone;MW:222.24;EXA:1
@@ -648,12 +642,12 @@
 <30,Ph,3=?6,9=dl,10:O,7:?O,9:/Ph,
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Isoflavone;MW:222.24;EXA:-
+CAT:biological;EN:Isoflavone;MW:222.24;EXA:1
 :
 <30,Ph,3=?6,9=dl,10:O,7:?O,8:/Ph,
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Flavanone;MW:224.25;EXA:-
+CAT:biological;EN:Flavanone;MW:224.25;EXA:1
 :
 <30,Ph,3=?6,10:O,7:?O,9:/Ph,
 ;
@@ -665,31 +659,31 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Cianidanol;MW:290.27;EXA:1
 :
-<30,Ph,3=?6, at 8,*\,Ph,7:O,{1'5'9~zf'13'14}:/OH
+<30,Ph,3=?6, at 8,!w,Ph,7:O,{1'5'9~zf'13'14}:/OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Quercetin;MW:302.24;EXA:1
 :
-<30,Ph,3=?6, at 9,\,Ph,9=dl,10:O,7:?O,2'6'8'13'14:/OH
+<30,Ph,3=?6, at 9,!,Ph,9=dl,10:O,7:?O,2'6'8'13'14:/OH
 ;
 %==============================================================================
-CAT:biological;EN:Limonin;MW:470.518;EXA:1
+CAT:biological;EN:Limonin;MW:470.518;EXA:2
 :
 <30,?6,-3'-4=?6,-5=?3,-2=wf,-1=wb,6=?5,-4=?6,-5=wf,13'15'17'20:O,
- 3'12'21:?O,{4^60'*8^60}:*/_,18:??,{1^60'5^180'16^60}:/*H,
- @14,\*,|,?5,1'4=dl,3:O
+ 3'12'21:?O,{4^60'*8^60}:?w,18:??,{1^60'5^180'16^60}:/*H,
+ @14,!z,|,?5,1'4=dl,3:O
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Cromolyn;MW:468.37;EXA:1
 :
 <30,Ph,|,-1=?6,3=dl,1:O,4:?O,2:/COOH,
- @$2,\,O!2,/OH,!2,O,60,Ph,|,-5=?6,3=dl,4:O,1:?O,3:/COOH
+ @$2,!,O!2,/OH,!2,O,60,Ph,|,-5=?6,3=dl,4:O,1:?O,3:/COOH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Emetine;MW:480.649;EXA:1
 :
 <30,Ph,-4'-4=?6,8:N,1'6:/O!,-2:/*!,{7^-60'12^-60}:/*H,
- @-3,\,!zb,<-60,|,?6,5=dl,2:NH,-6^-60:*/H,|,-2=?6,2'4=dl,-2'-3:/O!
+ @-3,!,!zb,<-60,|,?6,5=dl,2:NH,-6^-60:*/H,|,-2=?6,2'4=dl,-2'-3:/O!
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Acronycine;MW:321.376;EXA:1
@@ -699,23 +693,23 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Piperine;MW:285.343;EXA:1
 :
-<30,Ph,-1=?5,-1'-3:O, at 4,\,!d,!,!d,!,?O!,?6,-6:N
+<30,Ph,-1=?5,-1'-3:O, at 4,!,!d,!,!d,!,?O!,?6,-6:N
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Febrifugine;MW:301.34;EXA:1
 :
-<30,Ph,3=?6, at 9,8=dl,\,!2,!zb,?6,7'9:N,-5:NH,10'12:?O,-1:*/OH
+<30,Ph,3=?6,8=dl, at 9,!3,!zb,?6,7'9:N,-5:NH,10'12:?O,-1:*/OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Hypericin;MW:504.44;EXA:2
 :
 <30,Ph,-4'-3'(11--4)'(16---17)'19'(23---24)'(22--29)=?6,
- 12'14'16'17'*22'24'26'28'33'35=dl,7'25:?O,13'26:/_,2'6'11'21'23'28:/OH
+ 12'14'16'17'*22'24'26'28'33'35=dl,7'25:?O,13'26:?,2'6'11'21'23'28:/OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Camphor;MW:152.23;EXA:1
 :
-#1,15,-30,90,90,30,##,&1, at 2,0~si_`1.6,&5,{-1^45'-1^-65'5^-45}:/_,4:?O
+#1,15,-30,90,90,30,##,&1, at 2,0~si_`1.6,&5,{-1^45'-1^-65'5^-45}:?,4:?O
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Sparteine;MW:234.3803;EXA:1
@@ -725,19 +719,19 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Mitomycine C;MW:334.332;EXA:1
 :
-<30,?6,3'6=dl,2'5:?O,1:/_,-4=?5,-3:N,
- 6:/NH2,,-3=?5,-2=?3,-1=wb,-2=wf,-1:NH,8:/*O!^35,@$9,\,!,O,60,?O!,NH2
+<30,?6,3'6=dl,2'5:?O,1:?,-4=?5,-3:N,
+ 6:/NH2,,-3=?5,-2=?3,-1=wb,-2=wf,-1:NH,8:/*O!^35,@$9,!2,O,60,?O!,NH2
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Podophyllotoxin;MW:414.41;EXA:1
+CAT:biological;EN:Podophyllotoxin;MW:414.41;EXA:2
 :
 <0,?5,2'5:O,-3=Ph2,-3=?6,-3=?5,-2:O,-1=wb,-3:?O,
- @10,\*,Ph,-2'-3'-4:/O!,13:/*OH,{11^-60'*12^60}:*/H
+ @10,!z,Ph,-2'-3'-4:/O!,13:/*OH,{11^-60'*12^60}:*/H
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Warfarin;MW:308.333;EXA:1
 :
-<30,Ph,3=?6,8=dl,10:O,7:/OH,9:?O, at 8,\,/Ph`1,60,!,?O!
+<30,Ph,3=?6,8=dl,10:O,7:/OH,9:?O, at 8,!,/Ph`1,60,!,?O!
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Genistein;MW:270.24;EXA:1
@@ -750,10 +744,10 @@
 <30,Ph,3=?6,9=dl,10:O,1'2'6:/OH,7:?O,8:/Ph
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Reserpine;MW:608.688;EXA:1
+CAT:biological;EN:Reserpine;MW:608.688;EXA:2
 :
 <54,Ph,3=?5,-2'-4'-3=?6,9=dl,11:N,7:NH,{*10^-60'15^-60'16^60}:/*H,
- @20,*\,O!,?O,!Ph,{-2'-3'-4'1'19~zf>rl}:/O!,18:*/?O!'O!>lr
+ @20,!w,O!,?O,!Ph,{-2'-3'-4'1'19~zf>rl}:/O!,18:*/?O!'O!>lr
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Rotenone;MW:394.423;EXA:1
@@ -764,27 +758,27 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Pyrethrin I;MW:328.452;EXA:1
 :
-<30,?3,{3^35'*3^-35}:*/_, at 1,*\,!d,?!,
- @2,\*,?O!,O,-36~zb,|,?5,-2=dl,-1:/_,-3:?O, at -2,\,!4,-1'-3=dl
+<30,?3,{3^35'*3^-35}:?w, at 1,!w,!d,?!,
+ @2,!z,?O!,O,-36~zb,|,?5,-2=dl,-1:?,-3:?O, at -2,!5,-1'-3=dl
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Oseltamivir;MW:312.40;EXA:1
 :
-<30,?6,3=dl,6:*/NH2, at 1,\*,NH!,?O!, at 2,*\,O!,/!,!2,4:/?O!'O!2
+<30,?6,3=dl,6:*/NH2, at 1,!z,NH!,?O!, at 2,!w,O!,/!,!2,4:/?O!'O!2
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Paclitaxel;MW:853.918;EXA:1
+CAT:biological;EN:Paclitaxel;MW:853.918;EXA:2
 :
 ?6,5=dl, at 3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O,
- 4:??,6:/_,{3^-60'15}:*/OH,8^-60:/*H,9^60:*/_,10:?O,
- @1,\,O!,?O!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,
- @7,\*,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!
+ 4:??,6:?,{3^-60'15}:*/OH,8^-60:/*H,9^60:?w,10:?O,
+ @1,!,O!,?O!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,
+ @7,!z,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Mevastatin;MW:390.52;EXA:1
 :
-<30,?6,2=dl,4^60:*/H,-4=?6,-4=dl,9:*/_,
- @10,*\,!,60~wb,?6,6:O,-2:?O,-4:/*OH, at 5,\*,O,60,?O!,*/_,!2 
+<30,?6,2=dl,4^60:*/H,-4=?6,-4=dl,9:?w,
+ @10,!w,!,60~wb,?6,6:O,-2:?O,-4:/*OH, at 5,!z,O,60,?O!,?w,!2 
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Sesamine;MW:354.35;EXA:1
@@ -799,23 +793,23 @@
  @7,60~wf`0.75,70~si_`1.3,45,N?,&9~wb,15=dl,6:/OH,8^180:*/H,12:/*OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Quinine;MW:324.424;EXA:1
+CAT:biological;EN:Quinine;MW:324.424;EXA:2
 :
 <30,Ph,3=Ph,7:N,6:/O!,
- @10,\,*/OH,/*H^-60,!,|,?6,2:N,1^60:*/H, at 4,*\,!d, at 2,165~zf,60,&5~zb
+ @10,!,*/OH,/*H^-60,!,|,?6,2:N,1^60:*/H,4:*/!d, at 2,165~zf,60,&5~zb
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Atoropin;MW:289.375;EXA:1
 :
-<30,O!,?O!2,Ph,@$1,\~zb^-60,|,?7`1.1, at 6,*\^190`1.25,N?,&3~wb,$3:/!OH~wv 
+<30,O!,?O!2,Ph, at 1,-60~zb,?7`1.1, at -2,190~wf`1.25,N?,&-5~wb,$3:/!OH~wv 
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Colchicine;MW:399.443;EXA:1
+CAT:biological;EN:Colchicine;MW:399.443;EXA:2
 :
 <30,Ph,1'2'6:/O!,-4'-5=?7,-1'-4'-6=dl,-2:?O,-3:/O!,9:/NH!'?O!
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Lycorine;MW:287.315;EXA:1
+CAT:biological;EN:Lycorine;MW:287.315;EXA:2
 :
 <30,Ph,-4'-2=?6,6'(9--12)=?5,13=dl,8:N,15'17:O,{*9^180'10^60}:*/H,13'*14:*/OH
 ;
@@ -825,127 +819,131 @@
 <18,?5,4=dl,3:O,2:NH,1:?O,4^-24:/?NH2'!COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Illudin S;MW:264.3;EXA:1
+CAT:biological;EN:Illudin S;MW:264.3;EXA:2
 :
-<30,?6,3=?5,6:**?3,4'7=dl,2:?O,5:/_,{1^35'8^35}:*/_,{*1^-35'9}:*/OH,8^-35:/*!OH
+<30,?6,3=?5,6:**?3,4'7=dl,2:?O,5:?,{1^35'8^35}:?w,{*1^-35'9}:*/OH,8^-35:/*!OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Muscarine;MW:174.26;EXA:1
 :
-<18,?5,2:O,1:*/_,5:/*OH, at 3,*\,48,N,??,p_^180,!
+<18,?5,2:O,1:?w,5:/*OH, at 3,!w,48,N,??,p_^180,!
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Psilocybin;MW:284.248;EXA:1
 :
-<30,Ph,3=?5,8=dl,9:NH, at 2,\,O,-60,P,?O^-45,/OH^45,90,OH,7:/!2'N?!>lr
+<30,Ph,3=?5,8=dl,9:NH, at 2,!,O,-60,P,?O^-45,/OH^45,90,OH,7:/!2'N?!>lr
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:2
+CAT:marine toxine;EN:Tetrodotoxine;MW:319.27;EXA:2
 :
 #1,<60,-90,60,-30`1.15,150,60,&1, at 3,-135,60,-30`1.15,150,&4,
- @10,\,O,60`1.33,60,&$3~si_, at 8,-15~si_,O,&12,##,
- @9,45,-60,OH,1^120://NH,{5~zf^-15'7'9^-75'12'13~zf}:/OH,2:NH,6^180:NH
+ @10,!,O,60`1.33,60,&$3~si_, at 8,-15~si_,O,&12,##,
+ @9,45,-60,OH,1^120:?NH,{5~zf^-15'7'9^-75'12'13~zf}:/OH,2:NH,6^180:NH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Aflatoxin B1;MW:312.27;EXA:1
+CAT:mycotoxin;EN:Aflatoxin B1;MW:312.27;EXA:1
 :
 <30,Ph,6=?6,-2'4'-2=?5,-2'10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Aflatoxin B2;MW:314.3;EXA:-
+CAT:mycotoxin;EN:Aflatoxin B2;MW:314.3;EXA:-
 :
 <30,Ph,6=?6,-2'4'-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Aflatoxin G1;MW:328.27;EXA:2
+CAT:mycotoxin;EN:Aflatoxin G1;MW:328.27;EXA:2
 :
 <30,Ph,6'-2=?6,4'-2=?5,-2'10=dl,7'12'15'18:O,2:/O!,8'11:?O,{16^-54'17^54}:*/H
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Aflatoxin G2;MW:330.29;EXA:-
+CAT:mycotoxin;EN:Aflatoxin G2;MW:330.29;EXA:-
 :
 <30,Ph,6'-2=?6,4'-2=?5,10=dl,7'12'15'18:O,2:/O!,8'11:?O,{16^-54'17^54}:*/H
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Aflatoxin M1;MW:328.3;EXA:-
+CAT:mycotoxin;EN:Aflatoxin M1;MW:328.3;EXA:-
 :
 <30,Ph,6=?6,-2'4'-2=?5,-2'10=dl,7'14'17:O,2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Aflatoxin M2;MW:330.29;EXA:-
+CAT:mycotoxin;EN:Aflatoxin M2;MW:330.29;EXA:-
 :
 <30,Ph,6=?6,-2'4'-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Ochratoxin A;MW:403.813;EXA:1
+CAT:mycotoxin;EN:Ochratoxin A;MW:403.813;EXA:1
 :
-<30,Ph, at 4,\,!,/*COOH,!`1.2,NH,!`1.2,?O!,
- Ph,-2:/Cl,-5:/OH,-4=?6,-3:O,-2:*/_,-4:?O
+<30,Ph, at 4,!2,/*COOH,!`1.2,NH,!`1.2,?O!,Ph,-2:/Cl,-5:/OH,-4=?6,-3:O,-2:?w,-4:?O
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Deoxynivalenol;MW:296.32;EXA:1
+CAT:mycotoxin;EN:Deoxynivalenol;MW:296.32;EXA:1
 :
-<30,?6,3=?6,5=dl,1:?O,6:/_,-1:O,{*4^60'-2}:*/H,7^30:*/_, at 7,72`.9,80`1.3,&9,
+<30,?6,3=?6,5=dl,1:?O,6:?,-1:O,{*4^60'-2}:*/H,7^30:?w, at 7,72`.9,80`1.3,&9,
  @8,?3,-3=wf_,-1=si_,-1:O,{2'12^18}:/*OH,3^-60`1:/*!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Patulin;MW:154.12;EXA:1
+CAT:mycotoxin;EN:Patulin;MW:154.12;EXA:1
 :
 <30,?6,3=?5,2'10=dl,6'7:O,5:/OH,8:?O
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Citrinin;MW:250.247;EXA:1
+CAT:mycotoxin;EN:Citrinin;MW:250.247;EXA:1
 :
-<30,?6,3=?6,2'5'11=dl,9:O,1:?O,2:/_,7'*8:*/_,5:/OH,6:/COOH
+<30,?6,3=?6,2'5'11=dl,9:O,1:?O,2:?,7'*8:?w,5:/OH,6:/COOH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Zearalenone;MW:318.364;EXA:1
+CAT:mycotoxin;EN:Zearalenone;MW:318.364;EXA:1
 :
-<30,Ph, at 3,#1,\,!5,60,60,!4,&4,##,1'5'8=dl,17:O,16:*/_,1'5:/OH,12'18:?O
+<30,Ph, at 3,#1,!6,60,60,!4,&4,##,1'5'8=dl,17:O,16:?w,1'5:/OH,12'18:?O
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Fumonisin B1;MW:721.83;EXA:1
+CAT:mycotoxin;EN:Fumonisin B1;MW:721.83;EXA:1
 :
-<30,!19, at 6,*\,O!,?O!2,/COOH,!2,COOH, at 7,\*`1.2,O!,?O!2,/COOH,!2,COOH,
- 5'9:/*_,11'16'*18:*/OH,19:/*NH2
+<30,!19, at 6,!w,O!,?O!2,/COOH,!2,COOH, at 7,!z`1.2,O!,?O!2,/COOH,!2,COOH,
+ 5'9:?z,11'16'*18:*/OH,19:/*NH2
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Dicumarol;MW:336.295;EXA:-
+CAT:mycotoxin;EN:Puberulic acid;MW:198.13;EXA:1
 :
-<30,Ph,3=?6, at 8,\`1.5,!`1.5,?6,-4=Ph2,8'14=db,10'16:O,9'17:?O,7'13:/OH
+<38.5,?7,2'4'7=db,3:/COOH,1'5'7:/OH,6:?O
 ;
 %------------------------------------------------------------------------------
+CAT:biological;EN:Dicumarol;MW:336.295;EXA:1
+:
+<30,Ph,3=?6, at 8,!`1.5,!`1.5,?6,-4=Ph2,8'14=db,10'16:O,9'17:?O,7'13:/OH
+;
+%------------------------------------------------------------------------------
 CAT:biological;EN:Dihydroxybergamotin;MW:338.40;EXA:-
 :
-<30,Ph,3=?6,6=?5,10'13=db,7'13:O,8:?O, at 5,\,O,!2,!d,/_,!3,/OH,!,??,!OH
+<30,Ph,3=?6,6=?5,10'13=db,7'13:O,8:?O, at 5,!,O,!2,!d,?,!3,/OH,!,??,!OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Bergamotin;MW:338.40;EXA:-
+CAT:biological;EN:Bergamotin;MW:338.40;EXA:1
 :
-<30,Ph,3=?6,6=?5,10'13=db,7'13:O,8:?O, at 5,\,O,!2,!d,/_,!3,!d,?!
+<30,Ph,3=?6,6=?5,10'13=db,7'13:O,8:?O, at 5,!,O,!2,!d,?,!3,!d,?!
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Alkannin;MW:288.29;EXA:-
+CAT:biological;EN:Alkannin;MW:288.29;EXA:1
 :
-<30,Ph,3=?6,9=db,2'5:/OH,7'10:?O, at 8,\,/*OH,!2,!d,?!
+<30,Ph,3=?6,9=db,2'5:/OH,7'10:?O, at 8,!,/*OH,!2,!d,?!
 ;
 %==============================================================================
-CAT:synthetic;EN:Benzene;MW:78.11;EXA:-
+CAT:synthetic;EN:Benzene;MW:78.11;EXA:1
 :
 <30,Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Phenol;MW:94.11;EXA:-
+CAT:synthetic;EN:Phenol;MW:94.11;EXA:1
 :
 <30,Ph,3:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Aniline;MW:93.13;EXA:-
+CAT:synthetic;EN:Aniline;MW:93.13;EXA:1
 :
 <30,Ph,3:/NH2
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Picric acid;MW:229.10;EXA:-
+CAT:synthetic;EN:Picric acid;MW:229.10;EXA:1
 :
 <30,Ph,1'3'5:/NO2,2:/OH
 ;
@@ -955,53 +953,53 @@
 <30,Ph,1'2'3'4'5'6:/Ph
 ;
 %==============================================================================
-CAT:synthetic;EN:Naphthalene;MW:128.17;EXA:1
+CAT:aromatic;EN:Naphthalene;MW:128.17;EXA:1
 :
 <30,Ph,3=Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Anthracene;MW:178.23;EXA:1
+CAT:aromatic;EN:Anthracene;MW:178.23;EXA:1
 :
 <30,Ph,3'6=Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Phenanthrene;MW:178.23;EXA:1
+CAT:aromatic;EN:Phenanthrene;MW:178.23;EXA:1
 :
 <30,Ph,4'6=Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Naphthacene;MW:228.3;EXA:1
+CAT:aromatic;EN:Naphthacene;MW:228.3;EXA:1
 :
 <30,Ph,6'3'-3=Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Chrysene;MW:228.3;EXA:1
+CAT:aromatic;EN:Chrysene;MW:228.3;EXA:1
 :
 <30,Ph2,6'4'-4=Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Pyrene;MW:202.25;EXA:1
+CAT:aromatic;EN:Pyrene;MW:202.25;EXA:1
 :
 <30,Ph2,6'4=Ph,16---7=?6,-2=dl
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Coronene;MW:300.35;EXA:1
+CAT:aromatic;EN:Coronene;MW:300.35;EXA:1
 :
 <30,Ph,{1'11--2'15--3'19--4'23--5'27---7}=?6,9'12'14'17'20'22'25'28'30=dl
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Kekulene;MW:600.7;EXA:2
+CAT:aromatic;EN:Kekulene;MW:600.7;EXA:2
 :
 <30,?6,3'-3'-2'-3'-2'-3'-2'-3'-2'-3'(-2----5)'(5---- -4)=?6,
  1'*5'7'9'11'13'17'19'21'23'27'29'31'33'37'39'41'43'47'49'51'53'57'60=dl
 ;
 %==============================================================================
-CAT:synthetic;EN:12-Crown-4;MW:176.21;EXA:-
+CAT:synthetic;EN:12-Crown-4;MW:176.21;EXA:1
 :
 <-180,O,30,60,60,O,-30,60,60,O,-30,60,60,O,-30,60,&1
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:15-Crown-5;MW:220.26;EXA:-
+CAT:synthetic;EN:15-Crown-5;MW:220.26;EXA:1
 :
 <-180,O,48,60,60,O,-48,60,60,O,-48,60,60,O,-48,60,60,O,-48,60,&1
 ;
@@ -1011,9 +1009,9 @@
 <-180,O,60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,&1
 ;
 %==============================================================================
-CAT:synthetic;EN:Porphyrin;MW:310.4;EXA:2
+CAT:synthetic;EN:Porphyrin;MW:310.4;EXA:1
 :
-<9,#1,?5, at 3,\,54,?5, at -2,\,54,?5, at -2,\,54,?5, at -2,\,&5,##,
+<9,#1,?5, at 3,!,54,?5, at -2,!,54,?5, at -2,!,54,?5, at -2,!,&5,##,
  1'4'6'8'10'14'16'18'21'23'27=dl,4'17:N,11'23:NH
 ;
 %------------------------------------------------------------------------------
@@ -1034,175 +1032,227 @@
 <30,Ph,2'4'6:N,1'3'5:/NH2
 ;
 %==============================================================================
-CAT:synthetic;EN:Tartrazine;MW:534.3;EXA:1
+CAT:pigment;EN:Tartrazine;MW:534.3;EXA:1
 :
-<30,Ph,1:/SO3Na, at 4,\,N,!d,N,!,<-12,?5,-2'-5=dl,-2'-3:N,-1:/COONa,-4:/OH,
+<30,Ph,1:/SO3Na, at 4,!,N,!d,N,!,<-12,?5,-2'-5=dl,-2'-3:N,-1:/COONa,-4:/OH,
  -3:/Ph'(4:/SO3Na)
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Disperse yellow 3;MW:269.30;EXA:1
+CAT:pigment;EN:Disperse yellow 3;MW:269.30;EXA:1
 :
-<30,Ph,2:/_,5:/OH, at 4,\,N,!d,N,!Ph,-3:/NH!'?O!
+<30,Ph,2:?,5:/OH, at 4,!,N,!d,N,!Ph,-3:/NH!'?O!
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Disperse orenge 30;MW:450.27;EXA:1
+CAT:pigment;EN:Disperse orenge 30;MW:450.27;EXA:1
 :
-<30,Ph,1:/NO2,3'5:/Cl, at 4,\,N,!d,N,!Ph, at -3,\,N,/!2'CN,!3,?O,!O!
+<30,Ph,1:/NO2,3'5:/Cl, at 4,!,N,!d,N,!Ph, at -3,!,N,/!2'CN,!3,?O,!O!
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Disperse red 65;MW:371.82;EXA:1
+CAT:pigment;EN:Disperse red 65;MW:371.82;EXA:1
 :
-<30,Ph,1:/NO2,3:/Cl, at 4,\,N,!d,N,!Ph,-1:/_, at -3,\,N,/!2'CN,!2
+<30,Ph,1:/NO2,3:/Cl, at 4,!,N,!d,N,!Ph,-1:?, at -3,!,N,/!2'CN,!2
 ;
 %------------------------------------------------------------------------------
 CAT:synthetic;EN:Erythrosine;MW:835.9;EXA:1
 :
-<30,Ph,3'9=?6,8'13'16=dl,10:O,-2:?O,1'5'12'14:/I, at 7,\,Ph,-1:/COOH,6:/OH
+<30,Ph,3'9=?6,8'13'16=dl,10:O,-2:?O,1'5'12'14:/I, at 7,!,Ph,-1:/COOH,6:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Sudan red 1;MW:248.28;EXA:1
+CAT:pigment;EN:Sudan red 1;MW:248.28;EXA:1
 :
-<30,Ph,1=Ph,4:/OH, at 3,\,N,!d,N,!Ph
+<30,Ph,1=Ph,4:/OH, at 3,!,N,!d,N,!Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Basic blue 1;MW:319.86;EXA:1
+CAT:pigment;EN:Basic blue 1;MW:319.86;EXA:1
 :
 <30,Ph,3=Ph,6=Ph,2:S,5:N,8'13:/N?!,2:p_, at 2,@(3.5'1.5),Cl,n_^15
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Disperse red 11;MW:268.274;EXA:1
+CAT:pigment;EN:Disperse red 11;MW:268.274;EXA:1
 :
 <30,Ph,3=?6,-3=dr,9=Ph,7'10:?O,-1'-4:/NH2,-2:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Disperse red 60;MW:331.326;EXA:1
+CAT:pigment;EN:Disperse red 60;MW:331.326;EXA:1
 :
 <30,Ph,3=?6,-3=dr,9=Ph,7'10:?O,-1'-4:/NH2,-2:/O!'Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Disperse violet 26;MW:422.438;EXA:1
+CAT:pigment;EN:Disperse violet 26;MW:422.438;EXA:1
 :
 <30,Ph,3=?6,-3=dr,9=Ph,7'10:?O,-1'-4:/NH2,{-2>-30'-3>30}:/O!'Ph
 ;
 %------------------------------------------------------------------------------
-CAT:synthetic;EN:Vat blue 1;MW:262.27;EXA:1
+CAT:pigment;EN:Vat blue 1;MW:262.27;EXA:1
 :
-<30,Ph,3=?5, at 8,\\,?5,-3=dr,-3=Ph,7'14:NH,9'11:?O
+<30,Ph,3=?5, at 8,!d,?5,-3=dr,-3=Ph,7'14:NH,9'11:?O
 ;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:PFOA;MW:414.07;EXA:1
+:
+0,0,0,0,0,0,0,?O,-60,OH,{1^-90'1:7}:/F,{1:7}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:PFOS;MW:500.13;EXA:1
+:
+0,0,0,0,0,0,0,0,S,?O,?O^-180,-.1,OH,{1^-90,1:8}:/F,{1:8}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:PFHxS;MW:400.12;EXA:1
+:
+0,0,0,0,0,0,S,?O,?O^-180,-.1,OH,{1^-90'1:6}:/F,{1:6}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:GenX;MW:330.05;EXA:1
+:
+0,0,0,O,0,0`1,?O,-60,OH,{1^-90,1:3}:/F,{1:3'5}:/F^180,5:/?F?F!F
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:FOSA;MW:499.15;EXA:1
+:
+0,0,0,0,0,0,0,0,S,?O,?O^-180,-.1,NH2,{1^-90'1:8}:/F,{1:8}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:8,2-FTOH;MW:464.12;EXA:1
+:
+0,0,0,0,0,0,0,0,-60,60,OH,{1^-90'1:8}:/F,{1:8}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:6,2-FTS;MW:428.16;EXA:1
+:
+0,0,0,0,0,0,-60,60,S,?O,?O^-180,-.1,OH,{1^-90'1:6}:/F,{1:6}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:PFOPA;MW:500.13;EXA:1
+:
+0,0,0,0,0,0,0,0,P,?O,/OH^-179.8,-.1,OH,{1^-90'1:8}:/F,{1:8}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:6,6-FPi;MW:702.06;EXA:1
+:
+0,0,0,0,0,0,P,0,0,0,0,0,0,7^180:?O,7`1.5:/OH,
+ {1^-90,1:6'8:13,13^90,13^-90}:/F,{1:6'8:12}:/F^180
+;
+%------------------------------------------------------------------------------
+CAT:pfas;EN:9Cl-PF3ONS;MW:532.58;EXA:1
+:
+0,0,0,0,0,0,O,0,0,0,S,?O,?O^-180,-.1,OH,
+ {1:6'8'9}:/F,{1:6'8'9}:/F^180,1^-90:/Cl
+;
 %==============================================================================
 CAT:antibiotics;EN:Amoxicillin;MW:365.4042;EXA:1
 :
 <45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O!,*/NH2,!Ph,-3:/OH
+ @4,15~wf,NH!,?O!,*/NH2,!Ph,-3:/OH
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Ampicillin;MW:349.405;EXA:1
 :
 <45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O!,/*NH2,!Ph       
+ @4,15~wf,NH!,?O!,/*NH2,!Ph       
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Penicillin G;MW:334.4;EXA:2
 :
-<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, at 4,*\^15,NH!,?O!2,Ph
+<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, at 4,15~wf,NH!,?O!2,Ph
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Penicillin V;MW:350.3895;EXA:1
 :
-<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, at 4,*\^15,NH!,?O!2,O,!Ph
+<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, at 4,15~wf,NH!,?O!2,O,!Ph
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Mecillinam;MW:325.4264;EXA:1
 :
 <45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,N,!d,!,?7,-7:N
+ @4,15~wf,N,!d,!,?7,-7:N
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Nafcillin;MW:414.4748;EXA:1
 :
 <45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O,!Ph,-2=Ph,-9:/O!2  
+ @4,15~wf,NH!,?O,!Ph,-2=Ph,-9:/O!2  
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Oxacillin;MW:401.4363;EXA:1
 :
 <45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O!,<-24,?5,-2'-5=dl,-2:N,-3:O,-4:/_, at -1,-24,Ph
+ @4,15~wf,NH!,?O!,<-24,?5,-2'-5=dl,-2:N,-3:O,-4:?, at -1,-24,Ph
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Cloxacillin;MW:435.8813;EXA:1
 :
 <45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O!,<-24,?5,-2'-5=dl,-2:N,-3:O,-4:/_, at -1,-24,Ph,-5:/Cl
+ @4,15~wf,NH!,?O!,<-24,?5,-2'-5=dl,-2:N,-3:O,-4:?, at -1,-24,Ph,-5:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Dicloxacillin;MW:470.3264;EXA:1
 :
 <45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O!,<-24,?5,-2'-5=dl,-2:N,-3:O,-4:/_,-1^-24:/Ph'(2'6:/Cl)
+ @4,15~wf,NH!,?O!,<-24,?5,-2'-5=dl,-2:N,-3:O,-4:?,-1^-24:/Ph'(2'6:/Cl)
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Cefalexin;MW:347.3889;EXA:1
 :
-<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,5:/*COOH,6:/_,
- @4,*\^15,NH!,?O!,*/NH2,!Ph
+<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,5:/*COOH,6:?,
+ @4,15~wf,NH!,?O!,*/NH2,!Ph
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Cefalonium;MW:458.5107;EXA:1
 :
-<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15, at 5,\*,?O!,O,n_^40,
- @4,*\^15,NH!,?O!2,?5,-1'-3=dl,-4:S, at 6,\,!,|,Ph,1:N,1:p_^180,4:/?O!'NH2
+<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15, at 5,!z,?O!,O,n_^40,
+ @4,15~wf,NH!,?O!2,?5,-1'-3=dl,-4:S, at 6,!2,|,Ph,1:N,1:p_^180,4:/?O!'NH2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Cefazorin;MW:454.51;EXA:2
 :
 <45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1^15:?O,5:/*COOH,
- @4,*\^15,NH!,?O!2,?5,-2'-4=dl,-1'-2'-3'-5:N,
- @6,\,!,S,!,?5,-3'-5=dl,-1:S,-2:/_,-3'-4:N
+ @4,15~wf,NH!,?O!2,?5,-2'-4=dl,-1'-2'-3'-5:N,
+ @6,!2,S,!,?5,-3'-5=dl,-1:S,-2:?,-3'-4:N
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Cefoperazone;MW:645.67;EXA:1
 :
 <45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,5:/*COOH,
- @4,*\^15,NH!,?O!,/*Ph'(4:/OH),!NH!,?O!,?6,-3'-6:N,-4'-5:?O,-3:/!,
- @6,\,!,S,!,?5,-3'-5=dl,-1:/_,-1'-2'-3'-4:N,
+ @4,15~wf,NH!,?O!,/*Ph'(4:/OH),!NH!,?O!,?6,-3'-6:N,-4'-5:?O,-3:/!,
+ @6,!2,S,!,?5,-3'-5=dl,-1:?,-1'-2'-3'-4:N,
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Cefquinome;MW:528.6;EXA:1
 :
-<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15, at 5,\*,?O!,O,n_^40,
- @4,*\^15,NH!,?O!,//N!'O!,!,?5,-2'-5=dl,-3:S,-1:N,-2:/NH2,
- @6,\,!Ph,-2=?6,-10:N,-10:p_^180
+<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15, at 5,!z,?O!,O,n_^40,
+ @4,15~wf,NH!,?O!,//N!'O!,!,?5,-2'-5=dl,-3:S,-1:N,-2:/NH2,
+ @6,!2,Ph,-2=?6,-10:N,-10:p_^180
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Ceftiofur;MW:523.5626;EXA:1
 :
 <45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,5:/*COOH,
- @4,*\^15,NH!,?O!,//N!'O!,!,?5,-2'-5=dl,-3:S,-1:N,-2:/NH2,
- @6,\,!,S,!,?O!,?5,-1'-3=dl,-4:O
+ @4,15~wf,NH!,?O!,//N!'O!,!,?5,-2'-5=dl,-3:S,-1:N,-2:/NH2,
+ @6,!2,S,!,?O!,?5,-1'-3=dl,-4:O
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Cefuroxime;MW:424.3852;EXA:1
 :
 <45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,5:/*COOH,
- @4,*\^15,NH!,?O!,//N!'O!,!,?5,-1'-3=dl,-4:O, at 6,\,!O!,?O!,NH2
+ @4,15~wf,NH!,?O!,//N!'O!,!,?5,-1'-3=dl,-4:O, at 6,!2,O!,?O!,NH2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Apramycin;MW:539.58;EXA:1
 :
-<30,?6,3=?6,2'10:O, at 1,\*,O,60~zb,?6, at 9,\*,O,-60~zb,?6,-5:O,
+<30,?6,3=?6,2'10:O, at 1,!z,O,60~zb,?6, at 9,!z,O,-60~zb,?6,-5:O,
  7'13'*14'*-1'-2:*/OH,*6'15'17'*-3:*/NH2,8:*/NH!^-20,-4:*/!OH,{*3^-60,4^60}:*/H
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Gentamycin;MW:477.596;EXA:1
 :
-<-30,?6, at 1,\*,O,0~zb,?6,-5:O, at 5,\*,O,0~zb,?6,-5:O,2'4'*20:*/NH2,6:*/OH,
- 11:*/OH^-35,11:/*_^35,12:*/NH!,13:/*OH,17:*/?!'NH!
+<-30,?6, at 1,!z,O,0~zb,?6,-5:O, at 5,!z,O,0~zb,?6,-5:O,2'4'*20:*/NH2,6:*/OH,
+ 11:*/OH^-35,11:?z^35,12:*/NH!,13:/*OH,17:*/?!'NH!
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Kanamycin;MW:484.499;EXA:1
 :
-<-30,?6, at 1,\*,O,0~zb,?6,-5:O, at 5,\,O,0,?6,-5:O,
+<-30,?6, at 1,!z,O,0~zb,?6,-5:O, at 5,!,O,0,?6,-5:O,
  2'4'12:*/NH2,*6'11'13'18'*19'20:/*OH,10:*/!OH,17:*/!NH2
 ;
 %------------------------------------------------------------------------------
@@ -1209,20 +1259,20 @@
 CAT:antibiotics;EN:Neomycin;MW:614.644;EXA:1
 :
 <30,?6,3:O,2:/*!NH2,1'*6:*/OH,5:*/NH2,
- @4,*\,O,!wb,?6,{-3,-5^15}:/*NH2,-2:*/OH^-15,
- @-1,\*,O,-72~wb,?5,-4:O,-1:/*OH>vt,-3:*/!OH>vt,
- @-2,\*^-24,O,-60~zb,?6,-5:O,-1:/*NH2,-2'*-3:*/OH,-4:/*!NH2>60
+ @4,!w,O,!wb,?6,{-3,-5^15}:/*NH2,-2:*/OH^-15,
+ @-1,!z,O,-72~wb,?5,-4:O,-1:/*OH>vt,-3:*/!OH>vt,
+ @-2,!z^-24,O,-60~zb,?6,-5:O,-1:/*NH2,-2'*-3:*/OH,-4:/*!NH2>60
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Streptmycin;MW:581.574;EXA:2
 :
-<54,?5,3:O,4:/*_,5:/OH^45, at 1,\*,O,-24~wb,?6,-5:O, at 2,*\,O,24~zb,?6,
+<54,?5,3:O,4:?z,5:/OH^45, at 1,!z,O,-24~wb,?6,-5:O, at 2,!w,O,24~zb,?6,
   5:/!dO^-48,10'*11'15'*16'*18:*/OH,9:/*!OH,12:*/NH!,{17^-18'19}:*/NH!'?NH'!NH2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Streptmycin-H2O;MW:599.574;EXA:-
 :
-<54,?5,3:O,4:/*_,5:/OH^60, at 1,\*,O,-24~wb,?6,-5:O, at 2,*\,O,24~zb,?6,
+<54,?5,3:O,4:?z,5:/OH^60, at 1,!z,O,-24~wb,?6,-5:O, at 2,!w,O,24~zb,?6,
   @5,-18,/OH^15,45,OH,10'*11'15'*16'*18:*/OH,9:/*!OH,12:*/NH!,
   {17^-18'19}:*/NH!'?NH'!NH2
 ;
@@ -1229,7 +1279,7 @@
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:dihydro-Streptmycin;MW:583.574;EXA:1
 :
-<54,?5,3:O,4:/*_,5:/!OH^-48,5:/*OH^35, at 1,\*,O,-24~wb,?6,-5:O, at 2,*\,O,24~zb,?6,
+<54,?5,3:O,4:?z,5:/!OH^-48,5:/*OH^35, at 1,!z,O,-24~wb,?6,-5:O, at 2,!w,O,24~zb,?6,
  10'*11'15'*16'*18:*/OH,9:/*!OH,12:*/NH!,{17^-18'19}:*/NH!'?NH'!NH2
 ;
 %------------------------------------------------------------------------------
@@ -1236,12 +1286,12 @@
 CAT:antibiotics;EN:Spectinomycin;MW:332.35;EXA:1
 :
 <30,?6,3'9=?6,7=zf,11=wb,7'10'14:O,9^60:*/H,11:?O,{1'*5'8^-60}:*/OH,
- 13:/*_,2'6:*/NH!
+ 13:?z,2'6:*/NH!
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Tobramycin;MW:467.51;EXA:1
 :
-<-30,?6, at 1,\*,O,0~zb,?6,-5:O, at 5,\,O,0,?6,-5:O,
+<-30,?6, at 1,!z,O,0~zb,?6,-5:O, at 5,!,O,0,?6,-5:O,
  2'4'12'*20:*/NH2,*6'11'13'18:/*OH,10:*/!OH,17:*/!NH2
 ;
 %------------------------------------------------------------------------------
@@ -1248,55 +1298,55 @@
 CAT:antibiotics;EN:Spiramycin;MW:843.1;EXA:1
 :
 <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- 12'14=dl,2:O,{1'10^-30}:/*_,5:/*OH,3:?O,6:/*O!>vt,8:/*!'!dO,
- @-6,\*^-30,O,!wb,?6`.7,-5:O,#.5,-3:/*N?!,-4:*/_,##,
- @7,\*,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:*/_,##,
-   @-3,\*`1,O,60~wb,?6`.7,-5:O,#.5,{-2^35'-3}:*/OH,{-2^-35'-4}:/*_,##,
+ 12'14=dl,2:O,{1'10^-30}:?z,5:/*OH,3:?O,6:/*O!>vt,8:/*!'!dO,
+ @-6,!z^-30,O,!wb,?6`.7,-5:O,#.5,-3:/*N?!,-4:?w,##,
+ @7,!z,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:?w,##,
+   @-3,!z`1,O,60~wb,?6`.7,-5:O,#.5,{-2^35'-3}:*/OH,{-2^-35'-4}:?z,##,
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Neospiramycin;MW:698.9;EXA:1
 :
 <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- 12'14=dl,2:O,{1'10^-30}:/*_,5:/*OH,3:?O,6:/*O!>vt,8:/*!'!dO,
- @-6,\*^-30,O,!wb,?6`.7,-5:O,#.5,-3:/*N?!,-4:*/_,##,
- @7,\*,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-4:*/_,-1'-3:/*OH,##,
+ 12'14=dl,2:O,{1'10^-30}:?z,5:/*OH,3:?O,6:/*O!>vt,8:/*!'!dO,
+ @-6,!z^-30,O,!wb,?6`.7,-5:O,#.5,-3:/*N?!,-4:?w,##,
+ @7,!z,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-4:?w,-1'-3:/*OH,##,
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Josamycin;MW:827.995;EXA:1
 :
 <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- 12'14=dl,2:O,1:/*_,3:?O,10:/*_,6:/*O!>vt,-6:/*OH,5:/*O!'?O!^-25,8:/*!'!dO,
- @7,\*,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:*/_,##,
-   @-3,\*`1,O,60~wb,?6`.7,-5:O,#.5,-2^35:*/OH,{-2^-35'-4}:/*_,##,
-   @-3,*\,O,60,?O,60,-60,/_,!,
+ 12'14=dl,2:O,1:?z,3:?O,10:?z,6:/*O!>vt,-6:/*OH,5:/*O!'?O!^-25,8:/*!'!dO,
+ @7,!z,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:?w,##,
+   @-3,!z`1,O,60~wb,?6`.7,-5:O,#.5,-2^35:*/OH,{-2^-35'-4}:?z,##,
+   @-3,!w,O,60,?O,60,-60,?,!,
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Leucomycin A5;MW:771.942;EXA:1
 :
 <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- 12'14=dl,2:O,1:/*_,3:?O,10:/*_,6:/*O!>vt,-6:/*OH,5:/*OH,8:/*!'!dO,
- @7,\*,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:*/_,##,
-   @-3,\*`1,O,60~wb,?6`.7,-5:O,#.5,-2^35:*/OH,{-2^-35'-4}:/*_,##,
-   @-3,*\,O,60,?O,60,-60,60,
+ 12'14=dl,2:O,1:?z,3:?O,10:?z,6:/*O!>vt,-6:/*OH,5:/*OH,8:/*!'!dO,
+ @7,!z,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:?w,##,
+   @-3,!z`1,O,60~wb,?6`.7,-5:O,#.5,-2^35:*/OH,{-2^-35'-4}:?z,##,
+   @-3,!w,O,60,?O,60,-60,60,
 ;
 %------------------------------------------------------------------------------
-CAT:antibiotics;EN:Erythromycin;MW:733.93;EXA:1
+CAT:antibiotics;EN:Erythromycin;MW:733.93;EXA:2
 :
 <30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,
- 14:O,13:/*!,1'9:?O,{*2'4'6^-35'8'*10'12^35}:/*_,
+ 14:O,13:/*!,1'9:?O,{*2'4'6^-35'8'*10'12^35}:?z,
  {6^35'11'12^-35}:*/OH,
- @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##,
- @$5,\*^30`1.7,O,!zb,|,?6`.7,6:O,#.5,5:/*_,2:*/OH,3:/*N?!
+ @$3,!z,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:?,4:/*OH,3^-35:/*O!,##,
+ @$5,30~zf`1.7,O,!zb,|,?6`.7,6:O,#.5,5:?z,2:*/OH,3:/*N?!
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Emamectine;MW:886.133;EXA:1
 :
-<24,?6,6=?5,3=dl,9:O,2:*/OH,3:/_,6:/*OH^-60,
+<24,?6,6=?5,3=dl,9:O,2:*/OH,3:?,6:/*OH^-60,
  @5,#1.04,6,?O,-60,O,60~wb,60,-60,60~wf,60,-60,60,60,60,-60,60,##,&7,
  -1'-3'-7=dl,-11--(-10)=?6, at -2,?6,-6=wf,-1=zb,-5=dl,
- -1'-6:O,-3:*/_, at -2,\,*/_,!2,
- 17:/_,19:/*_, at 18,\,O!,?6`.7,-1:O,#.5,-2:*/_,-4:*/O!,##,
- @-3,\,O,60,?6`.7,-5:O,#.5,-4:*/_,-3:/*NH!,-2:*/O!
+ -1'-6:O,-3:?w, at -2,!,?w,!2,
+ 17:?,19:?z, at 18,!,O!,?6`.7,-1:O,#.5,-2:?w,-4:*/O!,##,
+ @-3,!,O,60,?6`.7,-5:O,#.5,-4:?w,-3:/*NH!,-2:*/O!
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Spinosad;MW:731.968;EXA:2
@@ -1304,83 +1354,83 @@
 <30,#1,<-120,60,60,-60,60,60,60,-60,60,60,60,-60,&1,##,
  5=?5,-1=dl,{-2^60'-3^-35}:/*H,-3=?6,-4=dl,
  {-1^35'*-2^-60}:*/H,-2=?5,2:O,{3^25,7^-25}:?O,1:*/!,
- @-2,\*,O,66~zb,?6`.7,-1:O,#.5,-2:*/_,{*-3'-4'-5}:*/O!,8:*/_,5^-65:*/H,##,
- @9,\*,O,!zb,|,?6`.7,6:O,#.5,5:/*_,4:*/N?!
+ @-2,!z,O,66~zb,?6`.7,-1:O,#.5,-2:?w,{*-3'-4'-5}:*/O!,8:?w,5^-65:*/H,##,
+ @9,!z,O,!zb,|,?6`.7,6:O,#.5,5:?z,4:*/N?!
 ;
 %------------------------------------------------------------------------------
-CAT:antibiotics;EN:Natamycin;MW:665.733;EXA:1
+CAT:antibiotics;EN:Natamycin;MW:665.733;EXA:2
 :
 <-90,#1,60,60,-60,60,-60,60,-60,60,-60,60,60,60,O,-60,
  60,60,-60,60,-60,60,-60,60,60,-60,&1,##,12--13=?6,
  2'4'6'8'20=dl,11=zb,23:O,-2:/*OH,-3:*/COOH,
- 18=?3,-1=wb,-2=wf,-1:O,22:?O,24:*/_,{14^60'16}:*/OH,
- @10,*\^15,O,90,?6`.7,-1:O,#.5,-3'*-5:*/OH,-4:/*NH2,-2:/*_
+ 18=?3,-1=wb,-2=wf,-1:O,22:?O,24:?w,{14^60'16}:*/OH,
+ @10,15~wf,O,90,?6`.7,-1:O,#.5,-3'*-5:*/OH,-4:/*NH2,-2:?z
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Tylocin;MW:916.10;EXA:1
 :
 <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- 12'14=dl,2:O,1:/*!,5:/*OH,3:?O,10:/*_,6:/*_,-6:?O,-3:/_,8:/*!'!dO,
- @-1,*\,-60,O,0~wb,?6`.7,-5:O,#.5,-3:/*OH,-4:*/_,-1'-2:/*O!,##,
- @7,\*,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:*/_,##,
-   @-3,\*`1,O,60~wb,?6`.7,-5:O,#.5,{-2^35'-3}:*/OH,{-2^-35'-4}:/*_,##,
+ 12'14=dl,2:O,1:/*!,5:/*OH,3:?O,10:?z,6:?z,-6:?O,-3:?,8:/*!'!dO,
+ @-1,!w,-60,O,0~wb,?6`.7,-5:O,#.5,-3:/*OH,-4:?w,-1'-2:/*O!,##,
+ @7,!z,O,0~wb,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:?w,##,
+   @-3,!z`1,O,60~wb,?6`.7,-5:O,#.5,{-2^35'-3}:*/OH,{-2^-35'-4}:?z,##,
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Tilmicosin;MW:869.133;EXA:2
 :
 <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- 12'14=dl,2:O,1:/*!,5:/*OH,3'11:?O,6'10:/*_,14:/_,
- @-1,*\,-60,O,0~zb,?6`.7,-5:O,#.5,-1'-2:*/O!,-3:*/OH,-4:/*_,##,
- @7,\*,O,0,?6`.7,-5:O,#.5,-2:*/N?!,-1'-3:/*OH,-4:*/_,##,
- @8,\*,!2,?6`.7,-6:N,#.5,-2'-4:*/_
+ 12'14=dl,2:O,1:/*!,5:/*OH,3'11:?O,6'10:?z,14:?,
+ @-1,!w,-60,O,0~zb,?6`.7,-5:O,#.5,-1'-2:*/O!,-3:*/OH,-4:?z,##,
+ @7,!z,O,0,?6`.7,-5:O,#.5,-2:*/N?!,-1'-3:/*OH,-4:?w,##,
+ @8,!z,!2,?6`.7,-6:N,#.5,-2'-4:?w
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Mirosamicin;MW:727.8791;EXA:1
 :
 <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- @8,\*,O,0,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:*/_,##,
- 5'13=dl,15=?3,-2=wf,-1=wb,-1:O,3:O,2:/*!,4'12:?O,7'9'*11:*/_,1:/*OH^-80,
- @1,*\,!,O,!wb,?6`.7,-5:O,#.5,-3:/*OH,-4:*/_,-1'-2:/O!
+ @8,!z,O,0,?6`.7,-5:O,#.5,-2:*/N?!,-1:/*OH,-4:?w,##,
+ 5'13=dl,15=?3,-2=wf,-1=wb,-1:O,3:O,2:/*!,4'12:?O,7'9'*11:?w,1:/*OH^-80,
+ @1,!w,!,O,!wb,?6`.7,-5:O,#.5,-3:/*OH,-4:?w,-1'-2:/O!
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Chlortetracyclin;MW:478.88;EXA:1
 :
-<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:*/_^-35,2:/Cl,
+<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:?w^-35,2:/Cl,
  {5'7~zf^35'13~wf^60'14'16}:/OH,15:*/N?!,17:/?O!'NH2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Oxytetracyclin;MW:460.434;EXA:2
 :
-<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:*/_^-35,11:*/OH,
+<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:?w^-35,11:*/OH,
  {5'7~zf^35'13~wf^60'14'16}:/OH,15:*/N?!,17:/?O!'NH2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Tetracyclin;MW:444.435;EXA:1
 :
-<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:*/_^-35,
+<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:?w^-35,
  {5'7~zf^35'13~wf^60'14'16}:/OH,15:*/N?!,17:/?O!'NH2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Doxycyclin;MW:444.43;EXA:1
 :
-<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:*/_,
+<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:?w,
  {5'13~wf^60'11~wf'14'16}:/OH,15:*/N?!,17:/?O!'NH2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Tiamulin;MW:493.74;EXA:1
 :
-<-45.5,?8,-3=?5, at 8,#.8,-210~zf,/_^60,45,56,##,&6~zb,
- {3^-45'5'8}:*/_, at 3,\*^30,!d,4:/*OH,11:?O,7:*/H^60,
+<-45.5,?8,-3=?5, at 8,#.8,-210~zf,?^60,45,56,##,&6~zb,
+ {3^-45'5'8}:?w, at 3,30~zf,!d,4:/*OH,11:?O,7:*/H^60,
  @1,15,O!,?O!2,S,60,60,-60,N?2,!2
 ;
 %------------------------------------------------------------------------------
 CAT:antibiotics;EN:Rifampicin;MW:822.94;EXA:2
 :
-<30,Ph,6:/_^30,5:/OH,-6=?5,-3:O,-8=?6,-2'-4=dl,-1'-4:/OH,
- #1, at -2,\,NH,60,-60,60~dl,60,60~dl,-60,
+<30,Ph,6:?^30,5:/OH,-6=?5,-3:O,-8=?6,-2'-4=dl,-1'-4:/OH,
+ #1, at -2,!,NH,60,-60,60~dl,60,60~dl,-60,
  60,-60,60,60,-60,60,-53,66,-53~dl,66`1.2,O,##,&$8,
- ||,9'15:?O,16:/_,{20'24^30}:*/_,21'23:/*OH,{8^60'22'26^30}:/*_,
- -4:/*O!, at -6,-30,O!,?O!,@$11,\,!d,N,!,|,?6,1:N,4:N?
+ ||,9'15:?O,16:?,{20'24^30}:?w,21'23:/*OH,{8^60'22'26^30}:?z,
+ -4:/*O!, at -6,-30,O!,?O!,@$11,!,!d,N,!,|,?6,1:N,4:N?
 ;
 %==============================================================================
 CAT:pesticide;EN:BHC;MW:290.83;EXA:1
@@ -1390,43 +1440,43 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:pp-DDT;MW:354.49;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,/?Cl?Cl!Cl,!Ph,-3:/Cl
+<30,Ph,6:/Cl, at 3,!,/?Cl?Cl!Cl,!Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:op-DDT;MW:354.49;EXA:-
 :
-<30,Ph,4:/Cl, at 3,\,/?Cl?Cl!Cl,!Ph,-3:/Cl
+<30,Ph,4:/Cl, at 3,!,/?Cl?Cl!Cl,!Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:pp-DDD;MW:320;EXA:-
+CAT:pesticide;EN:pp-DDD;MW:320;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,/?Cl!Cl,!Ph,-3:/Cl
+<30,Ph,6:/Cl, at 3,!,/?Cl!Cl,!Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:pp-DDE;MW:318;EXA:-
+CAT:pesticide;EN:pp-DDE;MW:318;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,//?Cl!Cl,!Ph,-3:/Cl
+<30,Ph,6:/Cl, at 3,!,//?Cl!Cl,!Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:XMC;MW:179.2;EXA:-
+CAT:pesticide;EN:XMC;MW:179.2;EXA:1
 :
-<30,Ph,1'5:/_, at 3,\,O!,?O!,NH!
+<30,Ph,1'5:?, at 3,!,O!,?O!,NH!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Acrinathrin;MW:541.45;EXA:1
 :
-<-30,?3,{2^-35,*2^35}:*/_,
- @1,\,!d,!,?O,!O!,/?F?F!F,!,?F?F!F, at 3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
+<-30,?3,{2^-35,*2^35}:?w,
+ @1,!,!d,!,?O,!O!,/?F?F!F,!,?F?F!F, at 3,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Azaconazole;MW:300.139;EXA:1
 :
-<30,Ph,4'6:/Cl, at 3,\,!2,?5,-2'-4=dl,-2'-4'-5:N, at 7,?5,-1'-4:O
+<30,Ph,4'6:/Cl, at 3,!3,?5,-2'-4=dl,-2'-4'-5:N, at 7,?5,-1'-4:O
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Acetochlor;MW:269.769;EXA:1
 :
-<30,Ph,2:/_,4:/!, at 3,\,N,/?O!2'Cl,!2,O!2
+<30,Ph,2:?,4:/!, at 3,!,N,/?O!2'Cl,!2,O!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Atrazine;MW:215.7;EXA:1
@@ -1456,22 +1506,22 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Uninnazole-P;MW:291.779;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,!d,!,/OH,!,??!, at 8,\,|,?5,2'4=dl,1'2'4:N
+<30,Ph,6:/Cl, at 3,!,!d,!,/OH,!,??!, at 8,!,|,?5,2'4=dl,1'2'4:N
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Esprocarb;MW:265.4;EXA:1
 :
-<30,Ph, at 3,\,!S!,?O!,N?2!,?!,?!
+<30,Ph, at 3,!2,S!,?O!,N?2,!,?!,?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Ethalfluralin;MW:333.3;EXA:1
 :
-<30,Ph,1'3:/NO2,5:/?F?F!F, at 2,\`1.1,/!,N,!2,/_,!d
+<30,Ph,1'3:/NO2,5:/?F?F!F, at 2,!`1.1,/!,N,!2,?,!d
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Ethofenprox;MW:376.5;EXA:1
 :
-<30,Ph, at 5,\,O,!Ph, at 10,\,O!3,??,!Ph,-3:/O!2
+<30,Ph, at 5,!,O,!Ph, at 10,!,O!3,??,!Ph,-3:/O!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Endrin;MW:380.91;EXA:1
@@ -1482,38 +1532,38 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Oxadiazon;MW:345.2;EXA:1
 :
-<30,Ph,4'6:/Cl,1:/O'!?!, at 3,\,|,?5,2=dl,1'2:N,4:O,5:?O,3:/??!
+<30,Ph,4'6:/Cl,1:/O'!?!, at 3,!,|,?5,2=dl,1'2:N,4:O,5:?O,3:/??!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Oxadixyl;MW:278.3;EXA:1
 :
-<30,Ph,2'4:/_, at 3,\,N,!1,?O!2,O!, at 7,\,|,?5,1:N,2:O,5:?O
+<30,Ph,2'4:?, at 3,!,N,!1,?O!2,O!, at 7,!,|,?5,1:N,2:O,5:?O
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Oxyfluorfen;MW:361.701;EXA:1
 :
-<30,Ph,6:/?F?F!F,4:/Cl, at 3,\,O,!Ph,-3:/NO2,-4:/O!2
+<30,Ph,6:/?F?F!F,4:/Cl, at 3,!,O,!Ph,-3:/NO2,-4:/O!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cafenstrole;MW:350.4;EXA:1
 :
-<30,Ph,2'4'6:/_, at 3,\,S?O?O,!,|,?5,2'5=dl,2'4'5:N,-2:/?O!'N?'!2
+<30,Ph,2'4'6:?, at 3,!,S?O?O,!,|,?5,2'5=dl,2'4'5:N,-2:/?O!'N?'!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Carfentrazone-ethyl;MW:412.19;EXA:1
 :
-<30,Ph,4:/F,6:/Cl, at 1,\,!,/Cl,!,?O!,O!2,
- @3,\,|,?5,4=dl,1'3'5:N,-4:?O,-3:/?F!F,-2:/_
+<30,Ph,4:/F,6:/Cl, at 1,!2,/Cl,!,?O!,O!2,
+ @3,!,|,?5,4=dl,1'3'5:N,-4:?O,-3:/?F!F,-2:?
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Carboxin;MW:235.301;EXA:1
 :
-<30,?6,3=dl,2:S,5:O,4:/_, at 3,\,?O,!NH!,Ph
+<30,?6,3=dl,2:S,5:O,4:?, at 3,!,?O,!NH!,Ph
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Quinoxyfen;MW:308.13;EXA:1
 :
-<30,Ph,4=Ph,10:N,2'6:/Cl, at 7,\,O,!Ph,-3:/F
+<30,Ph,4=Ph,10:N,2'6:/Cl, at 7,!,O,!Ph,-3:/F
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Quitozene;MW:295.3;EXA:1
@@ -1523,53 +1573,73 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Kresoxim-Methyl;MW:313.348;EXA:1
 :
-<30,Ph, at 3,\,/?O!'O!,!d,N,!O!, at 4,\,!,O,!Ph,-1:/_
+<30,Ph, at 3,!,/?O!'O!,!d,N,!O!, at 4,!2,O,!Ph,-1:?
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Clomazone;MW:239.7;EXA:1
 :
-<30,Ph,2:/Cl, at 3,\,!,|,?5,1:N,2:O,-2:??,-1:?O
+<30,Ph,2:/Cl, at 3,!2,|,?5,1:N,2:O,-2:??,-1:?O
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chlorfenapyr;MW:407.62;EXA:1
 :
-<18,?5,3=dl,5=dl,2:N,4:/CN,5:/Br,1:/?F?F!F,2:/!O!2,3:/Ph'(-3:/Cl)
+<18,?5,3=dl,5=dl,2:N,4:/CN,5:/Br,1:/?F?F!F,2:/!O'!2,3:/Ph'(-3:/Cl)
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chlorfenson;MW:303.153;EXA:1
 :
-<30,Ph, at 3,\,O!,S?O?O,!Ph,6'12:/Cl
+<30,Ph, at 3,!,O!,S?O?O,!Ph,6'12:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chlorpropham;MW:213.7;EXA:1
 :
-<30,Ph,6:/Cl, at 4,\,NH!,?O!,O,!?!
+<30,Ph,6:/Cl, at 4,!,NH!,?O!,O,!?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chlorbenside;MW:269.183;EXA:1
 :
-<30,Ph, at 3,\,S,!2,Ph,6'12:/Cl
+<30,Ph, at 3,!,S,!2,Ph,6'12:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chlorobenzilate;MW:325.2;EXA:1
 :
-<30,Ph, at 3,\,/OH^-35,/?O!'O!2^30>lr,!Ph,6'11:/Cl
+<30,Ph, at 3,!,/OH^-35,/?O!'O!2^30>lr,!Ph,6'11:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chlorantraniliprole;MW:483.15;EXA:1
 :
-<30,Ph,1:/Cl,3:/_, at 5,\,?O,60,NH!, at 4,\,NH!,?O!,<24,?5,-1'-3=db,-3'-4:N,-2:/Br,
+<30,Ph,1:/Cl,3:?, at 5,!,?O,60,NH!, at 4,!,NH!,?O!,<24,?5,-1'-3=db,-3'-4:N,-2:/Br,
  @-4,24,Ph,-5:N,-1:/Cl
 ;
 %------------------------------------------------------------------------------
+CAT:pesticide;EN:Chlorothalonil;MW:265.9;EXA:1
+:
+<30,Ph,4'6:/CN,1'2'3'5:/Cl
+;
+%------------------------------------------------------------------------------
+CAT:pesticide;EN:Chlorothalonil-4-Hydroxy;MW:247.5;EXA:-
+:
+<30,Ph,4'6:/CN,1'2'5:/Cl,3:/OH
+;
+%------------------------------------------------------------------------------
+CAT:pesticide;EN:Chlornitrofen;MW:318.5;EXA:1
+:
+<30,Ph,6:/NO2, at 3,!,O,!,Ph,-1'-3'-5:/Cl
+;
+%------------------------------------------------------------------------------
+CAT:pesticide;EN:Fthalide;MW:271.9;EXA:1
+:
+<30,Ph,3=?5,8:O,9:?O,1'2'5'6:/Cl
+;
+%------------------------------------------------------------------------------
 CAT:pesticide;EN:Azoxystrobin;MW:403.4;EXA:1
 :
-<30,Ph,2:/CN, at 3,\,O,!Ph,-1'-3:N, at -4,\,O,!Ph, at -5,\,/?O!'O!,!d,!O!
+<30,Ph,2:/CN, at 3,!,O,!Ph,-1'-3:N, at -4,!,O,!Ph, at -5,!,/?O!'O!,!d,!O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Thiuram;MW:240.43;EXA:1
 :
-<30,!,N?!,//S,!,S,!,S,!,//S,!,N?!
+<30,!,N?!,?S,!,S,!,S,!,?S,!,N?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Probenazole;MW:223.25;EXA:1
@@ -1579,28 +1649,28 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Penflufen;MW:317.41;EXA:1
 :
-<30,Ph, at 3,\,NH!,?O!,?5,-1'-4=db,-2'-3:N,-2'-4:/_,-1:/F, at 4,\,/_,60,!?!
+<30,Ph, at 3,!,NH!,?O!,?5,-1'-4=db,-2'-3:N,-2'-4:?,-1:/F, at 4,!,?,60,!?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:MCPA;MW:200.62;EXA:1
 :
-<30,Ph,1:/Cl,5:/_,4:/O!2'COOH
+<30,Ph,1:/Cl,5:?,4:/O!2'COOH
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Asulam;MW:230.2;EXA:1
 :
-<30,Ph,1:/NH2, at 3,\,S?O?O,!NH!,?O!,O!
+<30,Ph,1:/NH2, at 3,!,S?O?O,!NH!,?O!,O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Imazosulfuron;MW:412.81;EXA:1
 :
 <-11.8,?6,3=?5,1'5'7'9=db,4'7:N,8:/Cl,
- @-1,\,S?O?O,!NH!,?O,!NH!,Ph,-1'-5:N,-2'-4:/O!
+ @-1,!,S?O?O,!NH!,?O,!NH!,Ph,-1'-5:N,-2'-4:/O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Triaziflam;MW:333.4;EXA:1
 :,
-<30,Ph,2'6:/_, at 4,\,O!2,?!,NH!,Ph,-1'-3'-5:N,-2:/NH2,-4:/??'!F
+<30,Ph,2'6:?, at 4,!,O!2,?!,NH!,Ph,-1'-3'-5:N,-2:/NH2,-4:/??'!F
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Trichlopyr;MW:256.47;EXA:1
@@ -1610,13 +1680,13 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Halosulfuron-methyl;MW:434.82;EXA:1
 :,
-<6,?5,3'5=db,1'2:N,2:/_,5:/Cl, at 3,\,S?O?O,!NH!,?O,!NH!,Ph,-2'-4:/O!,4:/?O!'O!
+<6,?5,3'5=db,1'2:N,2:?,5:/Cl, at 3,!,S?O?O,!NH!,?O,!NH!,Ph,-2'-4:/O!,4:/?O!'O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Flupoxam;MW:460.8;EXA:1
 :
-<30,Ph,4:/Cl, at 1,\,?5,-2'-4=db,-2'-4'-5:N,-1:/Ph,-3:/?O!'NH2,
- @3,\,!,O!2,/F^35,/F^-35,!,?F?F!F
+<30,Ph,4:/Cl, at 1,!,?5,-2'-4=db,-2'-4'-5:N,-1:/Ph,-3:/?O!'NH2,
+ @3,!2,O!2,/F^35,/F^-35,!,?F?F!F
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cyanazine;MW:240.7;EXA:1
@@ -1626,48 +1696,48 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Diethofencarb;MW:267.3;EXA:1
 :
-<30,Ph, at 4,\,NH!,?O!,O,!?!,1'6:/O!2
+<30,Ph, at 4,!,NH!,?O!,O,!?!,1'6:/O!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Diclofop-methyl;MW:341.2;EXA:1
 :
-<30,Ph,4'6:/Cl, at 3,\,O,!Ph, at -4,\,O,!?!,?O,!O!
+<30,Ph,4'6:/Cl, at 3,!,O,!Ph, at -4,!,O,!?!,?O,!O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cyhalothrin;MW:449.86;EXA:1
 :
-<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/?F?F!F,!Cl, at 3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
+<-30,?3,{2^-35'*2^35}:?w, at 1,!,!d,/?F?F!F,!Cl, at 3,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cyhalofop-Buthyl;MW:357.381;EXA:1
 :
-<30,Ph,1:/CN,4:/F, at 3,\,O,!Ph, at -3,\,O,!?!,?O!,O,!4
+<30,Ph,1:/CN,4:/F, at 3,!,O,!Ph, at -3,!,O,!?!,?O!,O,!4
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Diphenamid;MW:239.3;EXA:1
 :
-<30,Ph, at 3,\,!Ph,-5:/?O!'N?!
+<30,Ph, at 3,!2,Ph,-5:/?O!'N?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cyfluthrin;MW:434.3;EXA:1
 :
-<-30,?3,{2^-35'*2^35}:*/_,
- @1,\,!d,/Cl,!Cl, at 3,\,?O,!O!,/CN,!Ph,-3:/F,-4:/O!'Ph>rl
+<-30,?3,{2^-35'*2^35}:?w,
+ @1,!,!d,/Cl,!Cl, at 3,!,?O,!O!,/CN,!Ph,-3:/F,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Diflufenican;MW:394.29;EXA:1
 :
-<30,Ph,1'5:/F, at 4,\,NH!,?O,!Ph,6:N,-5:/O!'Ph'(-3:/?F?F!F)
+<30,Ph,1'5:/F, at 4,!,NH!,?O,!Ph,6:N,-5:/O!'Ph'(-3:/?F?F!F)
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cyproconazole;MW:291.8;EXA:1
 :
-<30,?3, at 2,\,?!,/OH^30,-90,!,|,<-18,?5,2'4=dl,1'3'5:N,@$5,-30,Ph,-3:/Cl
+<30,?3, at 2,!,?!,/OH^30,-90,!,|,<-18,?5,2'4=dl,1'3'5:N,@$5,-30,Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cypermethrin;MW:416.3;EXA:1
 :
-<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/Cl,!Cl, at 3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
+<-30,?3,{2^-35'*2^35}:?w, at 1,!,!d,/Cl,!Cl, at 3,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Simazine;MW:201.7;EXA:1
@@ -1682,7 +1752,7 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Dimethenamid;MW:275.8;EXA:1
 :
-<-6,?5,3'5=dl,2:S,3'5:/_, at 4,\,N,!,?O!2,Cl,6:/?!2'O!
+<-6,?5,3'5=dl,2:S,3'5:?, at 4,!,N,!,?O!2,Cl,6:/?!2'O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Simetryn;MW:213.3;EXA:1
@@ -1692,34 +1762,34 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Dimepiperate;MW:263.4;EXA:1
 :
-<30,Ph, at 3,\,??,!S!,?O!,?6,-6:N
+<30,Ph, at 3,!,??,!S!,?O!,?6,-6:N
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Diazinon;MW:304.35;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!O!,|,Ph,4'6:N,5:/_,3:/?!
+<30,!2,O!,P,?S,/O!2^160>rl,!O!,|,Ph,4'6:N,5:?,3:/?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Thiobencarb;MW:257.776;EXA:1
 :
-<30,Ph,1:/Cl, at 4,\,!S!,?O!,N?2,!2
+<30,Ph,1:/Cl, at 4,!2,S!,?O!,N?2,!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Thiometon;MW:246.34;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,S!3,S!2
+<-30,!O!,P,?S,/O!^160,!,S!3,S!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Thifluzamide;MW:528.08;EXA:1
 :
-<-12,?5,3'5=dl,2:S,5:N,3:/?F?F!F,1:/_,
- @4,\,?O,!NH!,<6,Ph,-5'-1:/Br,-3:/O!'?F?F!F
+<-12,?5,3'5=dl,2:S,5:N,3:/?F?F!F,1:?,
+ @4,!,?O,!NH!,<6,Ph,-5'-1:/Br,-3:/O!'?F?F!F
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Dieldrin;MW:380.895;EXA:1
 :
 <30,?6`1.2,3=?6,6=dl,9=?3,-1:O, at 2,148~wf`1.4,&5~wb,
- @7,*\^145`1.3,&10~zb,{1'2'5'6'12^-210'12^-150}:/Cl
+ @7,145~wf`1.3,&10~zb,{1'2'5'6'12^-210'12^-150}:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Aldrin;MW:364.908;EXA:1
@@ -1740,17 +1810,17 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Tetraconazole;MW:372.14;EXA:1
 :
-<-6,?5,2'5=dl,1'2'4:N, at 4,\,!3,O!,/F^35,/F^-35,!,?F!F,7:/Ph'(4'6:/Cl)
+<-6,?5,2'5=dl,1'2'4:N, at 4,!4,O!,/F^35,/F^-35,!,?F!F,7:/Ph'(4'6:/Cl)
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Tetradifon;MW:356.038;EXA:1
 :
-<30,Ph, at 3,\,S?O?O,!Ph,6'10'11'13:/Cl
+<30,Ph, at 3,!,S?O?O,!Ph,6'10'11'13:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Thenylchlor;MW:323.835;EXA:1
 :
-<6,?5,2'5=dl,4:S,2:/O!, at 3,\,!,N,7^-15:/Ph'(6'2:/_),!,?O!2,Cl,
+<6,?5,2'5=dl,4:S,2:/O!, at 3,!2,N,7^-15:/Ph'(6'2:?),!,?O!2,Cl,
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Tebuconazole;MW:307.8;EXA:1
@@ -1760,12 +1830,12 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Tebufenpyrad;MW:333.86;EXA:1
 :
-<6,?5,3'5=dl,1'2:N,4:/Cl,5:/!,2:/_, at 3,\,?O!,NH,!2,Ph,-3:/??!
+<6,?5,3'5=dl,1'2:N,4:/Cl,5:/!,2:?, at 3,!,?O!,NH,!2,Ph,-3:/??!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Tefluthrin;MW:418.736;EXA:1
 :
-<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/?F?F!F,!Cl, at 3,\,?O!,O!2,|,Ph,2'3'5'6:/F,4:/_
+<-30,?3,{2^-35'*2^35}:?w, at 1,!,!d,/?F?F!F,!Cl, at 3,!,?O!,O!2,|,Ph,2'3'5'6:/F,4:?
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Terbutryn;MW:241.4;EXA:1
@@ -1775,17 +1845,17 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Terbufos;MW:288.42;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!,S!2,S!,??!
+<30,!2,O!,P,?S,/O!2^160>rl,!,S!2,S!,??!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Triadimefon;MW:293.8;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,O!2,?O!,??!, at 8,\,|,?5,2'4=dl,1'2'4:N
+<30,Ph,6:/Cl, at 3,!,O!2,?O!,??!, at 8,!,|,?5,2'4=dl,1'2'4:N
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Triazophos;MW:313.31;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!O!,<-12,|,?5,2'5=dl,2'4'5:N,4:/Ph
+<30,!2,O!,P,?S,/O!2^160>rl,!O!,<-12,|,?5,2'5=dl,2'4'5:N,4:/Ph
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Triallate;MW:304.7;EXA:1
@@ -1800,83 +1870,83 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Trifluralin;MW:335.3;EXA:1
 :
-<30,Ph,1'3:/NO2,5:/?F?F!F, at 2,\,N,/!2,!3
+<30,Ph,1'3:/NO2,5:/?F?F!F, at 2,!,N,/!2,!3
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Napropamide;MW:271.4;EXA:1
 :
-<-30,Ph,4=Ph, at 10,\,O!,?!,?O!,N?2,!2
+<-30,Ph,4=Ph, at 10,!,O!,?!,?O!,N?2,!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Nitrothal-isopropyl;MW:295.3;EXA:-
+CAT:pesticide;EN:Nitrothal-isopropyl;MW:295.3;EXA:1
 :
 <30,Ph,5:/NO2,1'3:/?O!'O!'?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Norflurazon;MW:303.7;EXA:-
+CAT:pesticide;EN:Norflurazon;MW:303.7;EXA:1
 :
 <30,?6,1'5=dl,4'5:N,1:/NH!,3:?O,2:/Cl,4:/Ph'(3:/?F?F!F)
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Paclobutrazole;MW:293.795;EXA:-
+CAT:pesticide;EN:Paclobutrazole;MW:293.795;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,!2,/OH,!,??!, at 8,\,|,?5,2'4=dl,1'2'4:N
+<30,Ph,6:/Cl, at 3,!3,/OH,!,??!, at 8,!,|,?5,2'4=dl,1'2'4:N
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Picolinafen;MW:376.331;EXA:-
+CAT:pesticide;EN:Picolinafen;MW:376.331;EXA:1
 :
-<30,Ph,5:/?F?F!F, at 3,\,O,!Ph,-5:N, at -4,\,?O,!NH!,Ph,-3:/F
+<30,Ph,5:/?F?F!F, at 3,!,O,!Ph,-5:N, at -4,!,?O,!NH!,Ph,-3:/F
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Bitertanol;MW:337.4;EXA:-
+CAT:pesticide;EN:Bitertanol;MW:337.4;EXA:1
 :
-<30,Ph, at 3,\,Ph, at -3,\,O!2,/OH,!,??!, at 14,\,|,?5,2'4=dl,1'2'4:N
+<30,Ph, at 3,!,Ph, at -3,!,O!2,/OH,!,??!, at 14,!,|,?5,2'4=dl,1'2'4:N
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Bifenox;MW:342.14;EXA:-
+CAT:pesticide;EN:Bifenox;MW:342.14;EXA:1
 :
-<30,Ph,4'6:/Cl, at 3,\,O,!Ph,-4:/?O!'O!,-3:/NO2
+<30,Ph,4'6:/Cl, at 3,!,O,!Ph,-4:/?O!'O!,-3:/NO2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Bifenthrin;MW:422.88;EXA:2
 :
-<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/Cl,!,?F?F!F, at 3,\,?O,!O!,-60,Ph,-1:/_,-2:/Ph
+<-30,?3,{2^-35'*2^35}:?w, at 1,!,!d,/Cl,!,?F?F!F, at 3,!,?O,!O!,-60,Ph,-1:?,-2:/Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pyraflufen-ethyl;MW:413.174;EXA:-
+CAT:pesticide;EN:Pyraflufen-ethyl;MW:413.174;EXA:1
 :
-<30,Ph,6:/Cl,4:/F, at 3,\,|,?5,1'4=dl,2'3:N,-3:/_,5:/Cl,
-  @-2,\,O!,/F,!F,@$1,\,O!2,?O!,O!2
+<30,Ph,6:/Cl,4:/F, at 3,!,|,?5,1'4=dl,2'3:N,-3:?,5:/Cl,
+  @-2,!,O!,/F,!F,@$1,!,O!2,?O!,O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pyridaben;MW:364.9;EXA:-
+CAT:pesticide;EN:Pyridaben;MW:364.9;EXA:1
 :
-<30,?6,2'4=dl,5'6:N,6:/??!,1:?O,2:/Cl, at -4,\,S,!2,Ph,-3:/??!
+<30,?6,2'4=dl,5'6:N,6:/??!,1:?O,2:/Cl, at -4,!,S,!2,Ph,-3:/??!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Pyridaphenthion;MW:340.34;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!O!,|,?6,1'5=dl,2'3:N,4:?O,3:/Ph
+<30,!2,O!,P,?S,/O!2^160>rl,!O!,|,?6,1'5=dl,2'3:N,4:?O,3:/Ph
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Pyributicarb;MW:330.4;EXA:1
 :
-<30,Ph,5:/??!, at 3,\,?O!,S!,N?!,Ph,-5:N,-4:/O!
+<30,Ph,5:/??!, at 3,!,?O!,S!,N?!,Ph,-5:N,-4:/O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Pyriproxyfen;MW:321.5;EXA:1
 :
-<30,Ph, at 5,\,O,!Ph, at -3,\,O!2,?!,O,-60,Ph,-5:N
+<30,Ph, at 5,!,O,!Ph, at -3,!,O!2,?!,O,-60,Ph,-5:N
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pyriminobac-Methyl;MW:361.354;EXA:-
+CAT:pesticide;EN:Pyriminobac-Methyl;MW:361.354;EXA:1
 :
-<30,Ph,2:/O!'?O!, at 5,\,/_,!d,N,!O!, at 3,\,O!,|,Ph,2'6:N,3'5:/O!
+<30,Ph,2:/O!'?O!, at 5,!,?,!d,N,!O!, at 3,!,O!,|,Ph,2'6:N,3'5:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pyrimethanil;MW:199.257;EXA:-
+CAT:pesticide;EN:Pyrimethanil;MW:199.257;EXA:1
 :
-<30,Ph, at 3,\,NH!,|,Ph,2'6:N,3'5:/_
+<30,Ph, at 3,!,NH!,|,Ph,2'6:N,3'5:?
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Pyroquilon;MW:173.2;EXA:1
@@ -1886,110 +1956,110 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Vinclozolin;MW:286.108;EXA:1
 :
-<36,?5,3:N,5:O,2'4:?O,1:/_^54,1:/!d^-30,3:/Ph'(3'5:/Cl)
+<36,?5,3:N,5:O,2'4:?O,1:?^54,1:/!d^-30,3:/Ph'(3'5:/Cl)
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fipronil;MW:437.2;EXA:1
+CAT:pesticide;EN:Fipronil;MW:437.2;EXA:2
 :
-<30,Ph,2'4:/Cl,6:/?F?F!F, at 3,\,|,?5,2'4=dl,1'2:N,3:/CN,5:/NH2,-2:/S?O'!?F?F!F
+<30,Ph,2'4:/Cl,6:/?F?F!F, at 3,!,|,?5,2'4=dl,1'2:N,3:/CN,5:/NH2,-2:/S?O'!'?F?F!F
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenomiphos;MW:303.36;EXA:-
+CAT:pesticide;EN:Fenomiphos;MW:303.36;EXA:1
 :
-<30,!2,O!,P,?O,/NH'!?!^160,!,O,!Ph,-4:/_,-3:/S!
+<30,!2,O!,P,?O,/NH'!?!^160,!,O,!Ph,-4:?,-3:/S!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenarimol;MW:331.2;EXA:-
+CAT:pesticide;EN:Fenarimol;MW:331.2;EXA:1
 :
-<30,Ph, at 3,\,!Ph,4'11:/Cl,7:/OH^30,7^-30:/Ph'(3'5:N)
+<30,Ph, at 3,!2,Ph,4'11:/Cl,7:/OH^30,7^-30:/Ph'(3'5:N)
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenothiocarb;MW:253.4;EXA:-
+CAT:pesticide;EN:Fenothiocarb;MW:253.4;EXA:1
 :
-<30,Ph, at 3,\,O,!5,S,!,?O!,N?!
+<30,Ph, at 3,!,O,!5,S,!,?O!,N?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fensulfothion;MW:308.35;EXA:-
+CAT:pesticide;EN:Fensulfothion;MW:308.35;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!,O,!Ph,-3:/S'?O!
+<30,!2,O!,P,?S,/O!2^160>rl,!,O,!Ph,-3:/S'?O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenitrothion;MW:277.23;EXA:-
+CAT:pesticide;EN:Fenitrothion;MW:277.23;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,O,!Ph,-4:/_,-3:/NO2
+<-30,!O!,P,?S,/O!^160,!,O,!Ph,-4:?,-3:/NO2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Parathion-methyl;MW:263.2;EXA:-
+CAT:pesticide;EN:Parathion-methyl;MW:263.2;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,O,!Ph,-3:/NO2
+<-30,!O!,P,?S,/O!^160,!,O,!Ph,-3:/NO2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Parathion;MW:291.3;EXA:-
+CAT:pesticide;EN:Parathion;MW:291.3;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!O,!Ph,-3:/NO2
+<30,!2,O!,P,?S,/O!2^160>rl,!O,!Ph,-3:/NO2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenthion;MW:278.33;EXA:-
+CAT:pesticide;EN:Fenthion;MW:278.33;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!O!,|,Ph,3:/_,4:/S!
+<-30,!O!,P,?S,/O!^160,!O!,|,Ph,3:?,4:/S!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Butamifos;MW:332.36;EXA:-
+CAT:pesticide;EN:Butamifos;MW:332.36;EXA:1
 :
-<-30,!2,?!,NH!,P,//S,/O!2^170>rl,!O!,|,Ph,2:/NO2,5:/_
+<-30,!2,?!,NH!,P,?S,/O!2^170>rl,!O!,|,Ph,2:/NO2,5:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Phenthoate;MW:320.358;EXA:-
+CAT:pesticide;EN:Phenthoate;MW:320.358;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,S,!,/Ph,!,?O!,O!2
+<-30,!O!,P,?S,/O!^160,!,S,!,/Ph,!,?O!,O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Prothyophos;MW:329.18;EXA:-
+CAT:pesticide;EN:Prothyophos;MW:329.18;EXA:1
 :
-<-30,!3,O!,P,//S,/O!2^160>rl,!O!,Ph,-5'-3:/Cl
+<-30,!3,O!,P,?S,/O!2^160>rl,!O!,Ph,-5'-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Propaphos;MW:304.343;EXA:-
+CAT:pesticide;EN:Propaphos;MW:304.343;EXA:1
 :
 <-30,!3,O!,P,?O,/O!3^160>rl,!O!,Ph,-3:/S!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Profenofos;MW:373.6;EXA:-
+CAT:pesticide;EN:Profenofos;MW:373.6;EXA:1
 :
-<30,!2,O!,P,//S,/O!3^160>rl,!O,!Ph,-5:/Cl,-3:/Br
+<30,!2,O!,P,?S,/O!3^160>rl,!O,!Ph,-5:/Cl,-3:/Br
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Bromophos;MW:365.99;EXA:-
+CAT:pesticide;EN:Bromophos;MW:365.99;EXA:1
 :
-<-30,!O!, P,//S,/O!^160,!O!,|,Ph,3'6:/Cl,4:/Br
+<-30,!O!, P,?S,/O!^160,!O!,|,Ph,3'6:/Cl,4:/Br
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Phosalone;MW:367.80;EXA:-
+CAT:pesticide;EN:Phosalone;MW:367.80;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!,S!2,|,?5,4=Ph,4=dr,1:N,2:?O,3:O,8:/Cl
+<30,!2,O!,P,?S,/O!2^160>rl,!,S!2,|,?5,4=Ph,4=dr,1:N,2:?O,3:O,8:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Phosmet;MW:317.32;EXA:-
+CAT:pesticide;EN:Phosmet;MW:317.32;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,S,!2,|,?5,3=Ph2,1:N,2'5:?O
+<-30,!O!,P,?S,/O!^160,!,S,!2,|,?5,3=Ph2,1:N,2'5:?O
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Phorate;MW:260.4;EXA:-
+CAT:pesticide;EN:Phorate;MW:260.4;EXA:1
 :
-<30,!2,O!,P,//S,!,S!2,S!2,4:/O!2^160>rl
+<30,!2,O!,P,?S,!,S!2,S!2,4:/O!2^160>rl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Malathion;MW:330.35;EXA:-
+CAT:pesticide;EN:Malathion;MW:330.35;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!S!,/!?O!'O!2`1,!,?O!,O!2
+<-30,!O!,P,?S,/O!^160,!S!,/!?O!'O!2`1,!,?O!,O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Methidathion;MW:302.32;EXA:-
+CAT:pesticide;EN:Methidathion;MW:302.32;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,S!2,|,?5,4=dl,1'5:N,3:S,2:?O,4:/O!
+<-30,!O!,P,?S,/O!^160,!,S!2,|,?5,4=dl,1'5:N,3:S,2:?O,4:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Mevinphos;MW:224.15;EXA:-
+CAT:pesticide;EN:Mevinphos;MW:224.15;EXA:1
 :
 <-30,!O!,P,?O,/O!^160,!O,!?,!d,!,?O!,O!
 ;
@@ -1996,137 +2066,132 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chlorpyrifos;MW:350.59;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!O!,|,Ph,6:N,2'4'5:/Cl
+<30,!2,O!,P,?S,/O!2^160>rl,!O!,|,Ph,6:N,2'4'5:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Chlorpyrifos-methyl;MW:322.53;EXA:-
+CAT:pesticide;EN:Chlorpyrifos-methyl;MW:322.53;EXA:1
 :
-<-30,!O!,P,//S,/O!^160>rl,!O!,|,Ph,6:N,2'4'5:/Cl
+<-30,!O!,P,?S,/O!^160>rl,!O!,|,Ph,6:N,2'4'5:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Cadusafos;MW:270.386;EXA:-
+CAT:pesticide;EN:Cadusafos;MW:270.386;EXA:1
 :
 <-30,!2,?!,S!,P,?O,/O!2^160>rl,!,S,!?,!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Dimethoate;MW:229.25;EXA:-
+CAT:pesticide;EN:Dimethoate;MW:229.25;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,S!2,?O,!NH!
+<-30,!O!,P,?S,/O!^160,!,S!2,?O,!NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Tribufos;MW:314.50;EXA:-
+CAT:pesticide;EN:Tribufos;MW:314.50;EXA:1
 :
 <30,!4,S,!,P,?O,/S'!4^160>rl,!,S,!4
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Tolclofos-methyl;MW:301.13;EXA:-
+CAT:pesticide;EN:Tolclofos-methyl;MW:301.13;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!O!,|,Ph,2'6:/Cl,4:/_
+<-30,!O!,P,?S,/O!^160,!O!,|,Ph,2'6:/Cl,4:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Piperophos;MW:353.48;EXA:-
+CAT:pesticide;EN:Piperophos;MW:353.48;EXA:1
 :
-<-30,!3,O!,P,//S,/O'!?!^160>rl,!,S!2,?O!,|,?6,1:N,6:/_
+<-30,!3,O!,P,?S,/O'!?!^160>rl,!,S!2,?O!,|,?6,1:N,6:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pyraclofos;MW:360.80;EXA:-
+CAT:pesticide;EN:Pyraclofos;MW:360.80;EXA:1
 :
 <30,!2,O!,P,?O,/S!3^160>rl,!O!,<-12,|,?5,1'4=dl,3'4:N, at -3,-12,Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pyrazophos;MW:373.37;EXA:-
+CAT:pesticide;EN:Pyrazophos;MW:373.37;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!O!,|,?5,3=?6,2'5'7'9=dl,4'5'6:N,7:/_,-2:/?O!'O!2
+<30,!2,O!,P,?S,/O!2^160>rl,!O!,|,?5,3=?6,2'5'7'9=dl,4'5'6:N,7:?,-2:/?O!'O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:EPN;MW:323.303;EXA:-
+CAT:pesticide;EN:EPN;MW:323.303;EXA:1
 :
-<30,!2,O!,P,//S,/Ph^170,!,O,!Ph,-3:/NO2
+<30,!2,O!,P,?S,/Ph^170,!,O,!Ph,-3:/NO2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Anilofos;MW:367.9;EXA:-
+CAT:pesticide;EN:Anilofos;MW:367.9;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,S,!2,?O!,N,/?!,!Ph,-3:/Cl
+<-30,!O!,P,?S,/O!^160,!,S,!2,?O!,N,/?!,!Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Isazofos;MW:313.74;EXA:-
+CAT:pesticide;EN:Isazofos;MW:313.74;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!O!,|,?5,2'5=dl,2'4'5:N,4:/Cl,3:/?!
+<30,!2,O!,P,?S,/O!2^160>rl,!O!,|,?5,2'5=dl,2'4'5:N,4:/Cl,3:/?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Ethion;MW:384.46;EXA:-
+CAT:pesticide;EN:Ethion;MW:384.46;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!,S,!2,S,!,P,//S,/O!2^200>lr,!,O!2
+<30,!2,O!,P,?S,/O!2^160>rl,!,S,!2,S,!,P,?S,/O!2^200>lr,!,O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Edifenphos;MW:310.37;EXA:-
+CAT:pesticide;EN:Edifenphos;MW:310.37;EXA:1
 :
-<30,Ph, at 3,\,O!,P,//S,/O!2>rl^160,!,S,!Ph
+<30,Ph, at 3,!,O!,P,?S,/O!2>rl^160,!,S,!Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Ethoprophos;MW:242.33;EXA:-
+CAT:pesticide;EN:Ethoprophos;MW:242.33;EXA:1
 :
 <-30,!3,S,!,P,?O,/S!3^160>rl,!,O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Ethrimfos;MW:292.29;EXA:-
+CAT:pesticide;EN:Ethrimfos;MW:292.29;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!O!,|,Ph,2'4:N,5:/!,3:/O!2
+<-30,!O!,P,?S,/O!^160,!O!,|,Ph,2'4:N,5:/!,3:/O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Quinalphos;MW:298.30;EXA:-
+CAT:pesticide;EN:Quinalphos;MW:298.30;EXA:1
 :
-<30,!,O!2,P,//S,/O!2^160>rl,!O!,|,Ph,3=Ph,2'5:N
+<30,!,O!2,P,?S,/O!2^160>rl,!O!,|,Ph,3=Ph,2'5:N
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Chlorfenvinphos;MW:359.58;EXA:-
+CAT:pesticide;EN:Chlorfenvinphos;MW:359.58;EXA:1
 :
 <30,!2,O!,P,?O,/O!2^160>rl,!O!,/Ph'(2'4:/Cl)`1,!d,!Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pirimiphos-methyl;MW:305.333;EXA:-
+CAT:pesticide;EN:Pirimiphos-methyl;MW:305.333;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!O,!Ph,-5'-3:N,-2:/_,-4:/N?2'!2
+<-30,!O!,P,?S,/O!^160,!O,!Ph,-5'-3:N,-2:?,-4:/N?2'!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Cyanophos;MW:243.22;EXA:-
+CAT:pesticide;EN:Cyanophos;MW:243.22;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,O,!Ph,-3:/CN
+<-30,!O!,P,?S,/O!^160,!,O,!Ph,-3:/CN
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Dichlofenthion;MW:315.2;EXA:-
+CAT:pesticide;EN:Dichlofenthion;MW:315.2;EXA:1
 :
-<30,!2,O!,P,//S,/O!2^160>rl,!,O,!Ph,-5'-3:/Cl
+<30,!2,O!,P,?S,/O!2^160>rl,!,O,!Ph,-5'-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenvalerate;MW:419.91;EXA:-
+CAT:pesticide;EN:Fenvalerate;MW:419.91;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,/?!,!,?O,!O!,/CN,!Ph,-4:/O'!Ph>rl
+<30,Ph,6:/Cl, at 3,!,/?!,!,?O,!O!,/CN,!Ph,-4:/O'!Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Fenpropathrin;MW:349.4;EXA:1
 :
-<-30,?3,{1^35'2^-35}:*/_,{1^-35'2^35}:/*_, at 3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
+<-30,?3,{1^35'2^-35}:?w,{1^-35'2^35}:?z, at 3,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Fenpropimorph;MW:303.49;EXA:1
 :
-<30,?6,3:N,6:O,1'5:*/_, at 3,\,!?,!2,Ph,-3:/??!
+<30,?6,3:N,6:O,1'5:?w, at 3,!,!?,!2,Ph,-3:/??!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Phthalide;MW:271.9;EXA:1
+CAT:pesticide;EN:Butachlor;MW:311.85;EXA:1
 :
-<30,Ph,3=?5,8:O,9:?O,1'2'5'6:/Cl
-;
-%------------------------------------------------------------------------------
-CAT:pesticide;EN:Butachlor;MW:311.85;EXA:-
-:
 <30,!4,O!2,N,/Ph'(-1'-5:/!)`1,!,?O!2,Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Bupirimate;MW:316.42;EXA:1
 :
-<30,Ph,4'6:N,1:/_, at 3,\,O!,S?O?O,!,N?!,2:/!3,5:/NH!2
+<30,Ph,4'6:N,1:?, at 3,!,O!,S?O?O,!,N?!,2:/!3,5:/NH!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Buprofezin;MW:305.4;EXA:1
@@ -2134,59 +2199,59 @@
 <-30,?6,1'5:N,1:/Ph,3:S,6:?O,5:/?!,4://N'!??!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Flamprop-methyl;MW:335.8;EXA:-
+CAT:pesticide;EN:Flamprop-methyl;MW:335.8;EXA:1
 :
-<30,Ph,1:/Cl,6:/F, at 3,\,N,/?O!'Ph>rl,!?!,?O,!O!
+<30,Ph,1:/Cl,6:/F, at 3,!,N,/?O!'Ph>rl,!?!,?O,!O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Fluacrypyrim;MW:426.392;EXA:1
 :
-<30,Ph,4'6:N,1:/?F?F!F,5:/O'!?!, at 3,\,O!2,Ph, at -1,\,|,!d,!O!,1:/?O!'O!
+<30,Ph,4'6:N,1:/?F?F!F,5:/O'!?!, at 3,!,O!2,Ph, at -1,!,|,!d,!O!,1:/?O!'O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Fluquinconazole;MW:376.2;EXA:1
 :
-<30,Ph,3=?6,8=dl,7'9:N,6:/F,10:?O, at 8,\,|,?5,2'4=dl,1'3'5:N,$9:/Ph'(4'6:/Cl)
+<30,Ph,3=?6,8=dl,7'9:N,6:/F,10:?O, at 8,!,|,?5,2'4=dl,1'3'5:N,$9:/Ph'(4'6:/Cl)
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Fludioxonil;MW:248.2;EXA:1
 :
-<30,Ph,5=?5,7'9:O,{8^-40'8^40}:/F, at 4,\,|,?5,2'5=dl,-2:NH,-4:/CN
+<30,Ph,5=?5,7'9:O,{8^-40'8^40}:/F, at 4,!,|,?5,2'5=dl,-2:NH,-4:/CN
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Flucythrinate;MW:451.5;EXA:1
 :
-<30,Ph, at 6,\,O!,/F,!,F, at 3,\,/?!,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
+<30,Ph, at 6,!,O!,/F,!,F, at 3,!,/?!,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Flutolanil;MW:323.3;EXA:1
 :
-<30,Ph,2:/?F?F!F, at 3,\,?O,!NH!,Ph,-1:/O'!?!
+<30,Ph,2:/?F?F!F, at 3,!,?O,!NH!,Ph,-1:/O'!?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Fluvalinate;MW:502.92;EXA:1
 :
-<30,Ph,5:/Cl,1:/?F?F!F, at 4,\,NH!,/?!,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
+<30,Ph,5:/Cl,1:/?F?F!F, at 4,!,NH!,/?!,!,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Flumioxazin;MW:354.337;EXA:1
 :
-<30,Ph,6:/F,3=?6,-1:O,-4:N,-3:?O, at -4,\,!,!t, at 1,\,|,?5,3=?6,3=dr,1:N,2'5:?O
+<30,Ph,6:/F,3=?6,-1:O,-4:N,-3:?O, at -4,!2,!t, at 1,!,|,?5,3=?6,3=dr,1:N,2'5:?O
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pretilachlor;MW:311.85;EXA:-
+CAT:pesticide;EN:Pretilachlor;MW:311.85;EXA:1
 :
-<30,Ph,2'4:/!, at 3,\,N,/?O!2'Cl`1,!3,O!3
+<30,Ph,2'4:/!, at 3,!,N,/?O!2'Cl`1,!3,O!3
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Procymidone;MW:284.136;EXA:-
+CAT:pesticide;EN:Procymidone;MW:284.136;EXA:1
 :
-?6,1:N, at 3,&5,2'6:?O,3'5:/_,1:/Ph'(3'5:/Cl)
+?6,1:N, at 3,&5,2'6:?O,3'5:?,1:/Ph'(3'5:/Cl)
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Propachlor;MW:211.689;EXA:-
+CAT:pesticide;EN:Propachlor;MW:211.689;EXA:1
 :
-<30,Ph, at 3,\,N,/?!,!,?O!2,Cl
+<30,Ph, at 3,!,N,/?!,!,?O!2,Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Propazine;MW:229.7;EXA:1
@@ -2194,7 +2259,7 @@
 <30,Ph,2'4'6:N,5:/Cl,1'3:/NH'!?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Propanil;MW:218.077;EXA:-
+CAT:pesticide;EN:Propanil;MW:218.077;EXA:1
 :
 <30,Ph,1'6:/Cl,3:/NH!'?O!2
 ;
@@ -2201,15 +2266,15 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Propyzamide;MW:256.1;EXA:1
 :
-<30,Ph,1'5:/Cl, at 3,\,?O,!NH,!??!,!t
+<30,Ph,1'5:/Cl, at 3,!,?O,!NH,!??!,!t
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Propiconazole;MW:342.22;EXA:1
 :
-<30,Ph,4'6:/Cl, at 3,\,!2,|,?5,2'4=dl,1'2'4:N,@$7,?5,-1'-4:O,-3:/!2^-15
+<30,Ph,4'6:/Cl, at 3,!3,|,?5,2'4=dl,1'2'4:N,@$7,?5,-1'-4:O,-3:/!2^-15
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Prohydrojasmon;MW:254.37;EXA:-
+CAT:pesticide;EN:Prohydrojasmon;MW:254.37;EXA:1
 :
 <18,?5,2:?O,3:*/!4^-12,4:/*!?O!'O!3
 ;
@@ -2216,42 +2281,42 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Bromacil;MW:261.119;EXA:1
 :
-<30,?6,6=dl,3:N,1:/Br,2'4:?O,5:NH,6:/_,3:/?!2
+<30,?6,6=dl,3:N,1:/Br,2'4:?O,5:NH,6:?,3:/?!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Prometryn;MW:241.4;EXA:-
+CAT:pesticide;EN:Prometryn;MW:241.4;EXA:1
 :
 <30,Ph,2'4'6:N,5:/S!,1'3:/NH'!?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Bromobutide;MW:312.2;EXA:-
+CAT:pesticide;EN:Bromobutide;MW:312.2;EXA:1
 :
-<30,Ph, at 3,\,??,!NH!,?O!,/Br,!??!
+<30,Ph, at 3,!,??,!NH!,?O!,/Br,!??!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Bromopropylate;MW:428.12;EXA:-
+CAT:pesticide;EN:Bromopropylate;MW:428.12;EXA:1
 :
-<30,Ph, at 3,\,!Ph,6'11:/Br,7:/OH^-45, at 7,30,?O!,O,-60,?!
+<30,Ph, at 3,!2,Ph,6'11:/Br,7:/OH^-45, at 7,30,?O!,O,-60,?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Hexaconazole;MW:314.2;EXA:-
+CAT:pesticide;EN:Hexaconazole;MW:314.2;EXA:1
 :
 <36,?5,1'4=dl,1'3'5:N, at 3,30,!5,-4^30:/OH, at -5,-30,Ph,-3'-1:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Hexazinone;MW:252.31;EXA:-
+CAT:pesticide;EN:Hexazinone;MW:252.31;EXA:1
 :
-<30,?6,3=dl,2'4'6:N,2:/_,1'5:?O,6:/?6,3:/N?!
+<30,?6,3=dl,2'4'6:N,2:?,1'5:?O,6:/?6,3:/N?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Benalaxyl;MW:325.4;EXA:-
+CAT:pesticide;EN:Benalaxyl;MW:325.4;EXA:1
 :
-<30,Ph, at 3,\,!,?O!,N,/Ph'(-5'-1:/_),!?!,?O,!O!
+<30,Ph, at 3,!2,?O!,N,/Ph'(-5'-1:?),!?!,?O,!O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Benoxacor;MW:260.1;EXA:-
+CAT:pesticide;EN:Benoxacor;MW:260.1;EXA:1
 :
-<90,Ph,3=?6,7:N,10:O,8:/_, at 7,\,?O!,/Cl,!Cl
+<90,Ph,3=?6,7:N,10:O,8:?, at 7,!,?O!,/Cl,!Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:2
@@ -2259,19 +2324,19 @@
 <30,?6`1.3,3=?5,6'8=dl, at 2,210~wf`1.5,&5~wb,{1'2'5'6'9'10^-210'10^-150}:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Permethrin;MW:391.30;EXA:-
+CAT:pesticide;EN:Permethrin;MW:391.30;EXA:1
 :
-<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/Cl,!Cl, at 3,\,?O!,O!2,Ph,-4:/O!'Ph>rl
+<-30,?3,{2^-35'*2^35}:?w, at 1,!,!d,/Cl,!Cl, at 3,!,?O!,O!2,Ph,-4:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Penconazole;MW:284.184;EXA:-
+CAT:pesticide;EN:Penconazole;MW:284.184;EXA:1
 :
-<30,Ph,4'6:/Cl, at 3,\,/!2,!2,|,<30,?5,2'4=dl,1'2'4:N
+<30,Ph,4'6:/Cl, at 3,!,/!2,!2,|,<30,?5,2'4=dl,1'2'4:N
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pendimethalin;MW:281.3;EXA:-
+CAT:pesticide;EN:Pendimethalin;MW:281.3;EXA:1
 :
-<30,Ph,3'5:/NO2,1'2:/_, at 4,\,NH,!?,!2
+<30,Ph,3'5:/NO2,1'2:?, at 4,!,NH,!?,!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Benfluralin;MW:335.3;EXA:1
@@ -2281,55 +2346,55 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Benfuresate;MW:256.3;EXA:1
 :
-<30,Ph,3=?5,7:O,9:??, at 6,\,O!,S?O?O,!2
+<30,Ph,3=?5,7:O,9:??, at 6,!,O!,S?O?O,!2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Bensulide;MW:397.5;EXA:1
 :
-<30,!?!,O!,P,//S,/O'!?!^160>rl,!,S!3,NH!,S?O?O,!Ph
+<30,!?!,O!,P,?S,/O'!?!^160>rl,!,S!3,NH!,S?O?O,!Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Myclobutanil;MW:288.8;EXA:-
+CAT:pesticide;EN:Myclobutanil;MW:288.8;EXA:1
 :
 <36,?5,1'4=dl,1'3'5:N, at 3,30,!,/CN^30,/Ph'(4:/Cl)^-30,!4
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Methoxychlor;MW:345.644;EXA:-
+CAT:pesticide;EN:Methoxychlor;MW:345.644;EXA:1
 :
-<30,Ph, at 3,\,!Ph,6'11:/O!,7:/?Cl?Cl!Cl
+<30,Ph, at 3,!2,Ph,6'11:/O!,7:/?Cl?Cl!Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Metolachlor;MW:283.8;EXA:-
+CAT:pesticide;EN:Metolachlor;MW:283.8;EXA:1
 :
-<30,Ph,5:/!,3:/_, at 4,\,N,/?!2'O!,!,?O!2,Cl
+<30,Ph,5:/!,3:?, at 4,!,N,/?!2'O!,!,?O!2,Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Mefenacet;MW:298.4;EXA:-
+CAT:pesticide;EN:Mefenacet;MW:298.4;EXA:1
 :
-<12,Ph,3=?5,9=dl,9:N,7:S, at 8,\,O!2,?O!,N?!,Ph
+<12,Ph,3=?5,9=dl,9:N,7:S, at 8,!,O!2,?O!,N?!,Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Mefenpyr-diethyl;MW:373.23;EXA:-
+CAT:pesticide;EN:Mefenpyr-diethyl;MW:373.23;EXA:1
 :
-<18,?5,5=dl,4'5:N,3^65:/_,{1^12'3^-12}:/?O!'O!2, at 4,-24,Ph,-3'-1:/Cl
+<18,?5,5=dl,4'5:N,3^65:?,{1^12'3^-12}:/?O!'O!2, at 4,-24,Ph,-3'-1:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Mepronil;MW:269.3;EXA:-
+CAT:pesticide;EN:Mepronil;MW:269.3;EXA:1
 :
-<30,Ph,2:/_, at 3,\,?O,!NH!,Ph,-2:/O'!?!
+<30,Ph,2:?, at 3,!,?O,!NH!,Ph,-2:/O'!?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Molinate;MW:187.3;EXA:1
 :
-<47,?7,3:N, at 3,\,?O!,S!2
+<47,?7,3:N, at 3,!,?O!,S!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Resmethrin;MW:338.4;EXA:2
+CAT:pesticide;EN:Resmethrin;MW:338.4;EXA:1
 :
-<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,?!,3:/?O!'O!2,|,?5,3'5=dl,2:O,3:/!Ph
+<-30,?3,{2^-35'*2^35}:?w, at 1,!,!d,?!,3:/?O!'O!2,|,?5,3'5=dl,2:O,3:/!Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Lenacil;MW:234.3;EXA:-
+CAT:pesticide;EN:Lenacil;MW:234.3;EXA:1
 :
 <30,?6,3=?5,3=dl,6:N,2:NH,1'5:?O,6:/?6
 ;
@@ -2336,51 +2401,51 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Halfenprox;MW:477.4;EXA:1
 :
-<30,Ph, at 6,\,O!,/F^35,/F^-35,!,Br, at 3,\,!??!,O!2,Ph,-2:/O!'Ph>rl
+<30,Ph, at 6,!,O!,/F^35,/F^-35,!,Br, at 3,!,!??!,O!2,Ph,-2:/O!'Ph>rl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Paraquat;MW:257.16;EXA:1
 :
-Ph, at 4,\,Ph,1'10:N?,1:p_^-90,10:p_^90, at 1,@(0'1.2),Cl,n_^15, at 10,@(0'1.2),Cl,n_^15
+Ph, at 4,!,Ph,1'10:N?,1:p_^-90,10:p_^90, at 1,@(0'1.2),Cl,n_^15, at 10,@(0'1.2),Cl,n_^15
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Oxine-Copper;MW:351.852;EXA:1
 :
-Ph,4:N,5=Ph, at -4,\,O,-60,<90,Cu,-90,O,60,Ph,-2=Ph,10:N, at 4,&12~vf, at 23,&12~vf
+Ph,4:N,5=Ph, at -4,!,O,-60,<90,Cu,-90,O,60,Ph,-2=Ph,10:N, at 4,&12~vf, at 23,&12~vf
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Endosulfan;MW:406.904;EXA:2
 :
-<26,?7,7=?6[13], at 11,208~wf`1.45,&8~wb,10=dl,3'5:O,4:S,4:?O,
+<26,?7,7=#1.3'?6, at 11,208~wf`1.45,&8~wb,10=dl,3'5:O,4:S,4:?O,
  {8'9'10'11'12^-210'12^-150}:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Uniconazole-P;MW:291.779;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,!d,!,/OH,!??!, at 8,\,|,?5,2'4=dl,1'2'4:N
+<30,Ph,6:/Cl, at 3,!,!d,!,/OH,!??!, at 8,!,|,?5,2'4=dl,1'2'4:N
 ;
 %******************************************************************************
-CAT:pesticide;EN:Azinphos-methyl;MW:317.318;EXA:-
+CAT:pesticide;EN:Azinphos-methyl;MW:317.318;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,S!2,|,?6,-3=?6,2'4'8'10=dl,1'3:N,6:?O
+<-30,!O!,P,?S,/O!^160,!,S!2,|,?6,-3=?6,2'4'8'10=dl,1'3:N,6:?O
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Azoxystorbin;MW:403.394;EXA:2
+CAT:pesticide;EN:Azoxystorbin;MW:403.394;EXA:1
 :
-<30,Ph,2:/CN, at 3,\,O,!Ph,-1'-3:N, at -4,\,O,!Ph, at -5,\,//!O!,!,?O!,O!
+<30,Ph,2:/CN, at 3,!,O,!Ph,-1'-3:N, at -4,!,O,!Ph, at -5,!,//!O!,!,?O!,O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Aramite;MW:334.859;EXA:-
+CAT:pesticide;EN:Aramite;MW:334.859;EXA:1
 :
-<30,Ph,6:/??!, at 3,\,O!2,?!,O!,S,?O,!,O!3,Cl
+<30,Ph,6:/??!, at 3,!,O!2,?!,O!,S,?O,!,O!3,Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Aldicarb;MW:190.3;EXA:-
+CAT:pesticide;EN:Aldicarb;MW:190.3;EXA:1
 :
 <-30,!,S,!,??,!,!d,N,!O!,?O,!NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Aldoxycarb;MW:222.3;EXA:-
+CAT:pesticide;EN:Aldoxycarb;MW:222.3;EXA:1
 :
 <30,!,?O,!NH!,O!,N,!d,!,??,!,S?O?O,!
 ;
@@ -2387,12 +2452,12 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Isoxaflutole;MW:359.319;EXA:1
 :
-<30,Ph,6:/?F?F!F, at 4,\,S?O?O,!, at 3,\`1,?O,!`1,<-12,|,?5,1'4=dl,3:O,4:N,2:/?3
+<30,Ph,6:/?F?F!F, at 4,!,S?O?O,!, at 3,!`1,?O,!`1,<-12,|,?5,1'4=dl,3:O,4:N,2:/?3
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Iprovalicarb;MW:320.4;EXA:-
+CAT:pesticide;EN:Iprovalicarb;MW:320.4;EXA:1
 :
-<30,Ph,6:/_, at 3,\,!?!,NH!,?O!,??,!NH!,?O!,O,!?!
+<30,Ph,6:?, at 3,!,!?!,NH!,?O!,??,!NH!,?O!,O,!?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Imazalil;MW:297.2;EXA:1
@@ -2402,10 +2467,10 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Imidacloprid;MW:255.662;EXA:1
 :
-<30,Ph,1:N,6:/Cl, at 3,\,!,|,?5,1:N,3:NH,2://N'!NO2
+<30,Ph,1:N,6:/Cl, at 3,!2,|,?5,1:N,3:NH,2://N'!NO2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Indanofan;MW:340.80;EXA:-
+CAT:pesticide;EN:Indanofan;MW:340.80;EXA:1
 :
 <30,Ph,3=?5,7'9:?O,8^55>lr:/!, at 8,-30,!2,Ph,-2:/Cl, at 11,?3,-2:O
 ;
@@ -2413,87 +2478,87 @@
 CAT:pesticide;EN:Indoxacarb;MW:527.837;EXA:2
 :
 <-6,Ph,3=?5,9=?6,15=dl,10:O,12'13:N,1:/Cl,8`1^-54:/?O!'O!,
- @12,\,?O!,N,/?O!'O!,!Ph,-3:/O!'?F?F!F
+ @12,!,?O!,N,/?O!'O!,!Ph,-3:/O!'?F?F!F
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Oxamyl;MW:219.3;EXA:-
+CAT:pesticide;EN:Oxamyl;MW:219.3;EXA:1
 :
 <-30,!,N?!,?O!,/S!,!d,N,!O!,?O!,NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Oryzalin;MW:346.4;EXA:-
+CAT:pesticide;EN:Oryzalin;MW:346.4;EXA:1
 :
 <30,Ph,1'3:/NO2,5:/S?O?O'!NH2,2:/N?2'!3
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Carbaryl;MW:201.22;EXA:-
+CAT:pesticide;EN:Carbaryl;MW:201.22;EXA:1
 :
-<30,Ph,5=Ph, at 4,\,?O,!O!,NH!
+<30,Ph,5=Ph, at 4,!,?O,!O!,NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Carpropamid;MW:334.665;EXA:-
+CAT:pesticide;EN:Carpropamid;MW:334.665;EXA:1
 :
-<-30,?3,1:/_,{2^-35'*2^35}:*/Cl,3^70:/!, at 3,\,?O!,NH,!?!,Ph,-3:/Cl
+<-30,?3,1:?,{2^-35'*2^35}:*/Cl,3^70:/!, at 3,!,?O!,NH,!?!,Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Cumyluron;MW:302.802;EXA:-
+CAT:pesticide;EN:Cumyluron;MW:302.802;EXA:1
 :
-<30,Ph, at 4,\,??,!NH!,?O!,NH,!2,Ph,-1:/Cl
+<30,Ph, at 4,!,??,!NH!,?O!,NH,!2,Ph,-1:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Cloquintocet-methyl;MW:335.83;EXA:-
+CAT:pesticide;EN:Cloquintocet-methyl;MW:335.83;EXA:1
 :
-<90,Ph,4=Ph,2:N,10:/Cl, at 7,\,O!2,?O!,O,!?,!5
+<90,Ph,4=Ph,2:N,10:/Cl, at 7,!,O!2,?O!,O,!?,!5
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Clotianidin;MW:249.673;EXA:1
 :
-<6,?5,3'5=dl,2:S,5:N,1:/Cl, at 3,\,!NH!,/NH!,!d,N,!NO2
+<6,?5,3'5=dl,2:S,5:N,1:/Cl, at 3,!2,NH!,/NH!,!d,N,!NO2
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Chromafenozide;MW:394.515;EXA:1
 :
-<30,?6,3=?6,5:O,7'9'11=dl,7:/_, at 8,\,?O,!NH!,N,/??!,!,?O,!Ph,-4'-3:/_
+<30,?6,3=?6,5:O,7'9'11=dl,7:?, at 8,!,?O,!NH!,N,/??!,!,?O,!Ph,-4'-3:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Clomeprop;MW:324.2;EXA:-
+CAT:pesticide;EN:Clomeprop;MW:324.2;EXA:1
 :
-<30,Ph,4'6:/Cl,5:/_, at 3,\,O,!?!,?O,!NH!,Ph
+<30,Ph,4'6:/Cl,5:?, at 3,!,O,!?!,?O,!NH!,Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Chloridazon;MW:221.6;EXA:-
+CAT:pesticide;EN:Chloridazon;MW:221.6;EXA:1
 :
 <30,?6,3'4:N,2'6=dl,5:?O,1:/NH2,6:/Cl,4:/Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Chloroxuron;MW:290.745;EXA:-
+CAT:pesticide;EN:Chloroxuron;MW:290.745;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,O,!Ph, at -3,\,NH!,?O!,N?!
+<30,Ph,6:/Cl, at 3,!,O,!Ph, at -3,!,NH!,?O!,N?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cyazofamid;MW:324.783;EXA:1
 :
-<18,?5,2'5=dl,2'4:N,1:/Cl,3:/CN, at 4,\,S?O?O,!,N?!,5:/Ph'(4:/_)
+<18,?5,2'5=dl,2'4:N,1:/Cl,3:/CN, at 4,!,S?O?O,!,N?!, at 5,!,Ph,-3:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Diuron;MW:233.1;EXA:-
+CAT:pesticide;EN:Diuron;MW:233.1;EXA:1
 :
-<30,Ph,1'6:/Cl, at 3,\,NH!,?O!,N?!
+<30,Ph,1'6:/Cl, at 3,!,NH!,?O!,N?!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Cyflufenamid;MW:412.36;EXA:2
 :
-<30,Ph,4^20:/?F?F!F,1'2:/F, at 3,\,!NH!,?O!2,Ph, at -10,\\,N,!,<-12,O!2,?3
+<30,Ph,4^20:/?F?F!F,1'2:/F, at 3,!2,NH!,?O!2,Ph, at -10,!d,N,!,<-12,O!2,?3
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Diflubenzuron;MW:310.7;EXA:-
+CAT:pesticide;EN:Diflubenzuron;MW:310.7;EXA:1
 :
-<30,Ph,2'4:/F, at 3,\,?O,!NH!,?O,!NH!,Ph,-3:/Cl
+<30,Ph,2'4:/F, at 3,!,?O,!NH!,?O,!NH!,Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Cyprodinil;MW:225.295;EXA:-
+CAT:pesticide;EN:Cyprodinil;MW:225.295;EXA:1
 :
-<30,Ph,2'4:N,5:/_,1:/?3,3:/NH!'Ph
+<30,Ph,2'4:N,5:?,1:/?3,3:/NH!'Ph
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Simeconazole;MW:293.417;EXA:1
@@ -2501,229 +2566,230 @@
 <36,?5,1'3'5:N,1'4=dl, at 3,30,!,/OH^30,!2,Si,??!,7^-30:/Ph'(4:/F),
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Dimethirimol;MW:209.29;EXA:-
+CAT:pesticide;EN:Dimethirimol;MW:209.29;EXA:1
 :
-<30,?6,3'5=dl,1:?O,2:NH,3:/N?!,4:N,5:/_,6:/??!
+<30,?6,3'5=dl,1:?O,2:NH,3:/N?!,4:N,5:?,6:/??!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Dimethomorph;MW:387.86;EXA:-
+CAT:pesticide;EN:Dimethomorph;MW:387.86;EXA:1
 :
-<30,?6,1:O,4:N, at 4,\,?O!,!d`1,/Ph'(4:/Cl),!,|,Ph,4'5:/O!
+<30,?6,1:O,4:N, at 4,!,?O!,!d`1,/Ph'(4:/Cl),!,|,Ph,4'5:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Silafluofen;MW:408.588;EXA:-
+CAT:pesticide;EN:Silafluofen;MW:408.588;EXA:1
 :
-<30,Ph, at 5,\,O,!Ph,-1:/F, at 10,\,!3,Si,??,!Ph,-3:/O!2
+<30,Ph, at 5,!,O,!Ph,-1:/F, at 10,!4,Si,??,!Ph,-3:/O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Di-allate;MW:270.212;EXA:-
+CAT:pesticide;EN:Di-allate;MW:270.212;EXA:1
 :
 <-30,!?!,N,!,?O!,S,!2,!d,!Cl,3:/?!,7:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Daimuron;MW:268.4;EXA:-
+CAT:pesticide;EN:Daimuron;MW:268.4;EXA:1
 :
-<30,Ph, at 4,\,??,!NH!,?O,!NH!,Ph,-3:/_
+<30,Ph, at 4,!,??,!NH!,?O,!NH!,Ph,-3:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Thiacloprid;MW:252.72;EXA:-
+CAT:pesticide;EN:Thiacloprid;MW:252.72;EXA:1
 :
-<30,Ph,1:N,6:/Cl, at 3,\,!,<-12,|,?5,1:N,3:S,-4://N'!CN
+<30,Ph,1:N,6:/Cl, at 3,!2,<-12,|,?5,1:N,3:S,-4://N'!CN
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Thiabendazole;MW:201.247;EXA:1
 :
-<30,Ph,3=?5,8=dl,9:NH,7:N, at 8,\,|,?5,1'4=dl,3:S,5:N
+<30,Ph,3=?5,8=dl,9:NH,7:N, at 8,!,|,?5,1'4=dl,3:S,5:N
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Thiamethoxam;MW:291.71;EXA:2
 :
-<30,?6,2:O,4'6:N,6:/_, at 5,\\,N,!NO2, at 4,\,!,|,?5,1'3=dl,3:N,5:S,4:/Cl
+<30,?6,2:O,4'6:N,6:?, at 5,!d,N,!NO2, at 4,!2,|,?5,1'3=dl,3:N,5:S,4:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Tebuthiuron;MW:228.3;EXA:-
+CAT:pesticide;EN:Tebuthiuron;MW:228.3;EXA:1
 :
-<18,?5,3'5=dl,4'5:N,2:S,1:/??!, at 3,\,N?!,?O,!NH!
+<18,?5,3'5=dl,4'5:N,2:S,1:/??!, at 3,!,N?!,?O,!NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Tebufenozide;MW:352.5;EXA:-
+CAT:pesticide;EN:Tebufenozide;MW:352.5;EXA:1
 :
-<30,Ph,6:/!, at 3,\,?O,!NH!,N,/??!,!,?O,!Ph,-4'-2:/_
+<30,Ph,6:/!, at 3,!,?O,!NH!,N,/??!,!,?O,!Ph,-4'-2:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Teflubenzuron;MW:381.1;EXA:-
+CAT:pesticide;EN:Teflubenzuron;MW:381.1;EXA:1
 :
-<30,Ph,2'4:/F, at 3,\,?O,!NH!,?O,!NH!,|,Ph,3'5:/Cl,4'6:/F
+<30,Ph,2'4:/F, at 3,!,?O,!NH!,?O,!NH!,|,Ph,3'5:/Cl,4'6:/F
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Tridemorph;MW:297.5;EXA:-
+CAT:pesticide;EN:Tridemorph;MW:297.5;EXA:1
 :
-<30,?6,3:N,6:O,1'5:/_,3:/!12
+<30,?6,3:N,6:O,1'5:?,3:/!12
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Triflumuron;MW:358.701;EXA:-
+CAT:pesticide;EN:Triflumuron;MW:358.701;EXA:1
 :
-<30,Ph,4:/Cl, at 3,\,?O,!NH!,?O,!NH!,Ph,-2:/O!'?F?F!F
+<30,Ph,4:/Cl, at 3,!,?O,!NH!,?O,!NH!,Ph,-2:/O!'?F?F!F
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Naproanilide;MW:291.35;EXA:-
+CAT:pesticide;EN:Naproanilide;MW:291.35;EXA:1
 :
-<30,Ph,4=Ph, at 8,\,O,!?!,?O,!NH!,Ph
+<30,Ph,4=Ph, at 8,!,O,!?!,?O,!NH!,Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Novaluron;MW:492.706;EXA:-
+CAT:pesticide;EN:Novaluron;MW:492.706;EXA:1
 :
-<30,Ph,2'4:/F, at 3,\,?O,!NH!,?O,!NH!,
- Ph,-4:/Cl, at -3,\,O!,/F^-35,/F^35,!,/F,!O!,?F?F!F
+<30,Ph,2'4:/F, at 3,!,?O,!NH!,?O,!NH!,
+ Ph,-4:/Cl, at -3,!,O!,/F^-35,/F^35,!,/F,!O!,?F?F!F
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pyraclostrobin;MW:387.817;EXA:-
+CAT:pesticide;EN:Pyraclostrobin;MW:387.817;EXA:1
 :
-<30,Ph, at 3,\,!O!,<12,|,?5,2'5=dl,4'5:N, at 4,12,Ph,-3:/Cl,||, at 2,\,N,/O!,!?O,!O!
+<30,Ph, at 3,!2,O!,<12,|,?5,2'5=dl,4'5:N, at 4,12,Ph,-3:/Cl,||, at 2,!,N,/O!,!?O,!O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pirimicarb;MW:238.291;EXA:-
+CAT:pesticide;EN:Pirimicarb;MW:238.291;EXA:1
 :
-<30,Ph,1'5:N,2'3:/_,6:/N?!, at 4,\,O!,?O!,N?!
+<30,Ph,1'5:N,2'3:?,6:/N?!, at 4,!,O!,?O!,N?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenoxycarb;MW:301.35;EXA:-
+CAT:pesticide;EN:Fenoxycarb;MW:301.35;EXA:1
 :
-<30,Ph, at 5,\,O,!Ph, at -3,\,O!3,NH!,?O!,O!2
+<30,Ph, at 5,!,O,!Ph, at -3,!,O!3,NH!,?O!,O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenobucarb;MW:207.3;EXA:-
+CAT:pesticide;EN:Fenobucarb;MW:207.3;EXA:1
 :
-<30,Ph,5:/?!2, at 4,\,O!,?O,!NH!
+<30,Ph,5:/?!2, at 4,!,O!,?O,!NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Ferimzone;MW:254.337;EXA:-
+CAT:pesticide;EN:Ferimzone;MW:254.337;EXA:1
 :
-<30,Ph,4:/_, at 3,\,/_,!d,N,!NH!,|,Ph,2'6:N,3'5:/_
+<30,Ph,4:?, at 3,!,?,!d,N,!NH!,|,Ph,2'6:N,3'5:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenamidone;MW:311.403;EXA:-
+CAT:pesticide;EN:Fenamidone;MW:311.403;EXA:1
 :
-<18,?5,4=dl,3'5:N,2:?O, at 3,\,NH!,Ph,4:/S!,1^52:*/_,1^-48:/*Ph
+<18,?5,4=dl,3'5:N,2:?O, at 3,!,NH!,Ph,4:/S!,1^52:?w,1^-48:/*Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenpyroximate;MW:421.49;EXA:-
+CAT:pesticide;EN:Fenpyroximate;MW:421.49;EXA:2
 :
-<-6,?5,3'5=db,1'2:N,2'5:/_, at 3,-15,O,!Ph, at 4,\,!d,N!,O!2,Ph, at -3,\,?O,-60,O,!4
+<-6,?5,3'5=db,1'2:N,2'5:?, at 3,-15,O,!Ph, at 4,!,!d,N!,O!2,Ph, at -3,!,?O,-60,O,!4
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Phenmedipham;MW:300.32;EXA:-
+CAT:pesticide;EN:Phenmedipham;MW:300.32;EXA:1
 :
-<30,Ph,5:/_, at 3,\,NH!,?O!,O,!Ph,-4:/NH!'?O!'O!
+<30,Ph,5:?, at 3,!,NH!,?O!,O,!Ph,-4:/NH!'?O!'O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Butafenacil;MW:474.817;EXA:-
+CAT:pesticide;EN:Butafenacil;MW:474.817;EXA:1
 :
-<30,?6,6=dl,3'5:N,2'4:?O,6:/?F?F!F,3:/Ph'(4:/Cl), at -2,\,?O,!O!,??,!,?O!,O!2,!d
+<30,?6,5=dl,1'3:N,1:?,2'4:?O,6:/?F?F!F, at 3,!,Ph,-3:/Cl,
+ @-2,!,?O,!O!,??,!,?O!,O!2,!d
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Flufenacet;MW:363.331;EXA:-
+CAT:pesticide;EN:Flufenacet;MW:363.331;EXA:1
 :
-<6,?5,2'5=dl,1'2:N,4:S,5:/?F?F!F, at 3,\,O!,-60,?O!,N,/?!,!Ph,-3:/F
+<6,?5,2'5=dl,1'2:N,4:S,5:/?F?F!F, at 3,!,O!,-60,?O!,N,/?!,!Ph,-3:/F
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Flufenoxuron;MW:488.77;EXA:1
 :
-<30,Ph,2'4:/F, at 3,\,?O,!NH!,?O,!NH!,Ph,-1:/F, at -3,\,O,!Ph,-3:/?F?F!F,-1:/Cl
+<30,Ph,2'4:/F, at 3,!,?O,!NH!,?O,!NH!,Ph,-1:/F, at -3,!,O,!Ph,-3:/?F?F!F,-1:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Fluridone;MW:329.3;EXA:-
+CAT:pesticide;EN:Fluridone;MW:329.3;EXA:1
 :
-<30,?6,3'6=dl,2:N,2:/_,5:?O, at 4,\,Ph,-4:/?F?F!F,6:/Ph
+<30,?6,3'6=dl,2:N,2:?,5:?O, at 4,!,Ph,-4:/?F?F!F,6:/Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Propaquizafop;MW:443.884;EXA:-
+CAT:pesticide;EN:Propaquizafop;MW:443.884;EXA:1
 :
-<90,Ph,3=?6,8'10=dl,7'10:N,1:/Cl, at 8,\,O,!Ph, at -3,\,O,!?!,?O,!O,!3,O!,N,!dr,?!
+<90,Ph,3=?6,8'10=dl,7'10:N,1:/Cl, at 8,!,O,!Ph, at -3,!,O,!?!,?O,!O,!3,O!,N,!dr,?!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Hexaflumuron;MW:461.14;EXA:-
+CAT:pesticide;EN:Hexaflumuron;MW:461.14;EXA:1
 :
-<30,Ph,2'4:/F, at 3,\,?O,!NH!,?O,!NH!,|,Ph,3'5:/Cl, at 4,\,O!,/F^-35,/F^35,!,/F,!F
+<30,Ph,2'4:/F, at 3,!,?O,!NH!,?O,!NH!,|,Ph,3'5:/Cl, at 4,!,O!,/F^-35,/F^35,!,/F,!F
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Hexathiazox;MW:352.877;EXA:-
+CAT:pesticide;EN:Hexathiazox;MW:352.877;EXA:1
 :
-<30,?6, at 3,\,NH!,?O!,<-24,|,?5,1:N,3:S,2:?O,5:/_,4:/Ph'(4:/Cl)
+<30,?6, at 3,!,NH!,?O!,<-24,|,?5,1:N,3:S,2:?O,5:?, at 4,!,Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pencycuron;MW:328.84;EXA:-
+CAT:pesticide;EN:Pencycuron;MW:328.84;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,!N,/?5,!,?O,!NH!,Ph
+<30,Ph,6:/Cl, at 3,!2,N,/?5,!,?O,!NH!,Ph
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Bendiocarb;MW:223.228;EXA:-
+CAT:pesticide;EN:Bendiocarb;MW:223.228;EXA:1
 :
-<30,Ph,5=?5,7'9:O,8:??, at 4,\,O!,?O,!NH!
+<30,Ph,5=?5,7'9:O,8:??, at 4,!,O!,?O,!NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Pentoxazone;MW:353.774;EXA:-
+CAT:pesticide;EN:Pentoxazone;MW:353.774;EXA:1
 :
-<66,?5,5://?!,1:O,3:N,2'4:?O, at 3,\,|,Ph,4:/Cl,6:/F,3:/O!'?5
+<66,?5,5://?!,1:O,3:N,2'4:?O, at 3,!,|,Ph,4:/Cl,6:/F,3:/O!'?5
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Boscalid;MW:343.21;EXA:-
+CAT:pesticide;EN:Boscalid;MW:343.21;EXA:1
 :
-<30,Ph,5:N,4:/Cl, at 3,\,?O,!NH!,Ph,-1:/Ph'(4:/Cl)
+<30,Ph,5:N,4:/Cl, at 3,!,?O,!NH!,Ph, at -1,!,Ph,-3:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Methabenzthiazuron;MW:221.3;EXA:-
+CAT:pesticide;EN:Methabenzthiazuron;MW:221.3;EXA:1
 :
-Ph,3=?5,9=dl,7:S,9:N, at 8,\,N?!,?O,!NH!
+Ph,3=?5,9=dl,7:S,9:N, at 8,!,N?!,?O,!NH!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Methoxyfenozide;MW:368.48;EXA:-
+CAT:pesticide;EN:Methoxyfenozide;MW:368.48;EXA:1
 :
-<30,Ph,2:/_,1:/O!, at 3,\,?O,!NH!,N,/??!,!,?O,!Ph,-4'-2:/_
+<30,Ph,2:?,1:/O!, at 3,!,?O,!NH!,N,/??!,!,?O,!Ph,-4'-2:?
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Monolinuron;MW:214.6;EXA:-
+CAT:pesticide;EN:Monolinuron;MW:214.6;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,NH!,?O!,N?!,O!
+<30,Ph,6:/Cl, at 3,!,NH!,?O!,N?!,O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Lactofen;MW:461.78;EXA:-
+CAT:pesticide;EN:Lactofen;MW:461.78;EXA:1
 :
-<30,Ph,4:/Cl,6:/?F?F!F, at 3,\,O,!Ph,-3:/NO2, at -4,\,?O!,O,!?!,?O!,O!2
+<30,Ph,4:/Cl,6:/?F?F!F, at 3,!,O,!Ph,-3:/NO2, at -4,!,?O!,O,!?!,?O!,O!2
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Linuron;MW:249.1;EXA:-
+CAT:pesticide;EN:Linuron;MW:249.1;EXA:1
 :
-<30,Ph,1'6:/Cl, at 3,\,NH!,?O!,N?!,O!
+<30,Ph,1'6:/Cl, at 3,!,NH!,?O!,N?!,O!
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Lufenuron;MW:511.15;EXA:-
+CAT:pesticide;EN:Lufenuron;MW:511.15;EXA:1
 :
 <30,Ph,2'4:/F,
- @3,\,?O,!NH!,?O,!NH!,Ph,-1'-4:/Cl, at -3,\,O!,/F^35,/F^-35,!,/F,!,?F?F!F
+ @3,!,?O,!NH!,?O,!NH!,Ph,-1'-4:/Cl, at -3,!,O!,/F^35,/F^-35,!,/F,!,?F?F!F
 ;
 %******************************************************************************
-CAT:antibacterial;EN:Sulfacetamide;MW:214.239;EXA:-
+CAT:antibacterial;EN:Sulfacetamide;MW:214.239;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,?O!
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,?O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfatiazole;MW:255.31;EXA:-
+CAT:antibacterial;EN:Sulfatiazole;MW:255.31;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,?5,1'3=dl,2:N,5:S
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,?5,1'3=dl,2:N,5:S
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Chlopidol;MW:192.039;EXA:-
+CAT:antibacterial;EN:Chlopidol;MW:192.039;EXA:1
 :
-<30,Ph,1'3:/_,2:N,4'6:/Cl,5:/OH
+<30,Ph,1'3:?,2:N,4'6:/Cl,5:/OH
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfadiadine;MW:250.276;EXA:-
+CAT:antibacterial;EN:Sulfadiadine;MW:250.276;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,Ph,-5'-1:N
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,Ph,-5'-1:N
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Levamisole;MW:204.29;EXA:-
+CAT:antibacterial;EN:Levamisole;MW:204.29;EXA:1
 :
 ?5,3=?5,6=dl,2:S,4'6:N,7:/Ph
 ;
@@ -2733,166 +2799,166 @@
 <30,Ph,3=?6,8=dl,7:N,9:NH,6:/S!3,8:/NH2
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfapyrizine;MW:249.288;EXA:-
+CAT:antibacterial;EN:Sulfapyrizine;MW:249.288;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,Ph,-1:N
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,Ph,-1:N
 ;
 %------------------------------------------------------------------------------
 CAT:antibacterial;EN:Marbofloxacin;MW:362.361;EXA:1
 :
-<30,Ph,3'(2--7)=?6,9=dl,6:/F,7'13:N,11:O,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?)
+<30,Ph,3'(2--7)=?6,9=dl,6:/F,7'13:N,11:O,9:/COOH,10:?O,13:?, at 1,!,?6,-6:N,-3:N?
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfamerazine;MW:264.303;EXA:-
+CAT:antibacterial;EN:Sulfamerazine;MW:264.303;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,Ph,-5'-1:N,-4:/_
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,Ph,-5'-1:N,-4:?
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Trimethoprim;MW:290.323;EXA:-
+CAT:antibacterial;EN:Trimethoprim;MW:290.323;EXA:1
 :
 <30,Ph,1'5:N,2'6:/NH2,3:/!Ph'(4'5'6:/O!)
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Ofloxacin;MW:361.373;EXA:-
+CAT:antibacterial;EN:Ofloxacin;MW:361.373;EXA:1
 :
-<30,Ph,3'(2--7)=?6,9=dl,7:N,11:O,6:/F,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?)
+<30,Ph,3'(2--7)=?6,9=dl,7:N,11:O,6:/F,9:/COOH,10:?O,13:?,1:/?6'(1:N)'(4:N?)
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Ciprofloxacin;MW:331.347;EXA:-
+CAT:antibacterial;EN:Ciprofloxacin;MW:331.347;EXA:1
 :
 <30,Ph,3=?6,9=dl,7:N,6:/F,7:/?3,9:/COOH,10:?O,1:/?6'(1:N)'(4:NH)
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Enrofloxacin;MW:359.401;EXA:-
+CAT:antibacterial;EN:Enrofloxacin;MW:359.401;EXA:2
 :
-<30,Ph,3=?6,9=dl,7:N,6:/F,7:/?3,9:/COOH,10:?O,1:/?6'(1:N)'(4:N?2)
+<30,Ph,3=?6,9=dl,7:N,6:/F,7:/?3,9:/COOH,10:?O, at 1,!,?6,-6:N,-3:N?2
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Danofloxacin;MW:357.385;EXA:-
+CAT:antibacterial;EN:Danofloxacin;MW:357.385;EXA:1
 :
 <30,Ph,3=?6,9=dl,7:N,6:/F,7:/?3,9:/COOH,10:?O,
- @1,\,|,?6, at 2,-200`1.1,&5,1'4:N,4:*/_
+ @1,!,|,?6, at 2,-200`1.1,&5,1'4:N,4:?w
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Ormetoprim;MW:274.324;EXA:-
+CAT:antibacterial;EN:Ormetoprim;MW:274.324;EXA:1
 :
-<30,Ph,1'5:N,2'6:/NH2, at 3,\,!,|,Ph,2:/_,4'5:/O!
+<30,Ph,1'5:N,2'6:/NH2, at 3,!2,|,Ph,2:?,4'5:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfadimidine;MW:278.33;EXA:-
+CAT:antibacterial;EN:Sulfadimidine;MW:278.33;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,Ph,2'4:N,3'5:/_
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,Ph,2'4:N,3'5:?
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Orbifloxacin;MW:395.382;EXA:-
+CAT:antibacterial;EN:Orbifloxacin;MW:395.382;EXA:1
 :
-<30,Ph,3=?6,9=dl,7:N,2'5'6:/F,7:/?3,9:/COOH,10:?O, at 1,\,|,?6,1:N,3'5:*/_,4:NH
+<30,Ph,3=?6,9=dl,7:N,2'5'6:/F,7:/?3,9:/COOH,10:?O, at 1,!,|,?6,1:N,3'5:?w,4:NH
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfamethoxypyridazine;MW:280.302;EXA:-
+CAT:antibacterial;EN:Sulfamethoxypyridazine;MW:280.302;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,Ph,5'6:N,4:/O!
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,Ph,5'6:N,4:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sarafloxacin;MW:385.371;EXA:-
+CAT:antibacterial;EN:Sarafloxacin;MW:385.371;EXA:1
 :
-<30,Ph,3=?6,9=dl,7:N,6:/F,9:/COOH,10:?O, at 1,\,?6,-6:N,-3:NH,7:/Ph'(4:/F)
+<30,Ph,3=?6,9=dl,7:N,6:/F,9:/COOH,10:?O, at 1,!,?6,-6:N,-3:NH,7:/Ph'(4:/F)
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Difloxacin;MW:399.398;EXA:-
+CAT:antibacterial;EN:Difloxacin;MW:399.398;EXA:1
 :
 <30,Ph,3=?6,9=dl,7:N,6:/F,9:/COOH,10:?O,7:/Ph'(4:/F),1:/?6'(1:N)'(4:N?)
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfamonomethoxine;MW:280.302;EXA:-
+CAT:antibacterial;EN:Sulfamonomethoxine;MW:280.302;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,Ph,2'4:N,3:/O!
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,Ph,2'4:N,3:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfachlorpyridazine;MW:284.723;EXA:-
+CAT:antibacterial;EN:Sulfachlorpyridazine;MW:284.723;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,Ph,5'6:N,4:/Cl
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,Ph,5'6:N,4:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfadoxine;MW:310.328;EXA:-
+CAT:antibacterial;EN:Sulfadoxine;MW:310.328;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,Ph,4'6:N,2'3:/O!
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,Ph,4'6:N,2'3:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfamethoxazole;MW:253.276;EXA:-
+CAT:antibacterial;EN:Sulfamethoxazole;MW:253.276;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,?5,2'5=dl,4:O,5:N,3:/_
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,?5,2'5=dl,4:O,5:N,3:?
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Pirimethamin;MW:248.714;EXA:-
+CAT:antibacterial;EN:Pirimethamin;MW:248.714;EXA:1
 :
-<30,Ph,6:/Cl, at 3,\,Ph,-2'-4:N,-1:/!,-3'-5:/NH2
+<30,Ph,6:/Cl, at 3,!,Ph,-2'-4:N,-1:/!,-3'-5:/NH2
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Oxibendazole;MW:249.27;EXA:-
+CAT:antibacterial;EN:Oxibendazole;MW:249.27;EXA:1
 :
 <30,Ph,3=?5,9=dl,7:NH,9:N,1:/O!3,8:/NH!'COOH
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Oxolinic acid;MW:261.233;EXA:-
+CAT:antibacterial;EN:Oxolinic acid;MW:261.233;EXA:1
 :
 <30,Ph,3=?6,6=?5,9=dl,7:N,11'13:O,10:?O,7:/!,9:/COOH
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfabenzamide;MW:276.31;EXA:-
+CAT:antibacterial;EN:Sulfabenzamide;MW:276.31;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,?O,!Ph
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,?O,!Ph
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Ethopabate;MW:237.255;EXA:-
+CAT:antibacterial;EN:Ethopabate;MW:237.255;EXA:1
 :
 <30,Ph,1:/NH!'?O!,3:/O!2,4:/?O!'O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfadimethoxine;MW:310.33;EXA:-
+CAT:antibacterial;EN:Sulfadimethoxine;MW:310.33;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,|,Ph,2'4:N,3'5:/O!
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,|,Ph,2'4:N,3'5:/O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Sulfaquinoxaline;MW:300.337;EXA:-
+CAT:antibacterial;EN:Sulfaquinoxaline;MW:300.337;EXA:1
 :
-<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,Ph,-4=Ph,-5'-2:N
+<30,Ph,1:/NH2, at 4,!,S?O?O,!NH!,Ph,-4=Ph,-5'-2:N
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Nalidixic acid;MW:232.239;EXA:-
+CAT:antibacterial;EN:Nalidixic acid;MW:232.239;EXA:1
 :
-<30,Ph,3=?6,9=dl,5'10:N,6:/_,7:?O,8:/COOH,10:/!
+<30,Ph,3=?6,9=dl,5'10:N,6:?,7:?O,8:/COOH,10:/!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Flubendazole;MW:313.288;EXA:-
+CAT:antibacterial;EN:Flubendazole;MW:313.288;EXA:1
 :
-<30,Ph,3=?5,9=dl,7:NH,9:N, at 1,\,O,!Ph,8:/NH!'?O!'O!
+<30,Ph,3=?5,9=dl,7:NH,9:N, at 1,!,?O,!Ph,-2:/F,8:/NH!'?O!'O!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Flumequine;MW:261.225;EXA:-
+CAT:antibacterial;EN:Flumequine;MW:261.225;EXA:1
 :
-<30,Ph,3'(2--7)=?6,9=dl,7:N,6:/F,9:/COOH,10:?O,13:/_
+<30,Ph,3'(2--7)=?6,9=dl,7:N,6:/F,9:/COOH,10:?O,13:?
 ;
 %------------------------------------------------------------------------------
-34;CAT:antibacterial;EN:Sulfanitran;MW:335.334;EXA:-
+CAT:antibacterial;EN:Sulfanitran;MW:335.334;EXA:1
 :
-<30,Ph, at 1,\,NH!,?O!, at 4,\,S?O?O,!NH!,Ph,-3:/NO2
+<30,Ph, at 1,!,NH!,?O!, at 4,!,S?O?O,!NH!,Ph,-3:/NO2
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Xylazine;MW:220.334;EXA:-
+CAT:antibacterial;EN:Xylazine;MW:220.334;EXA:1
 :
-<30,?6,3=dl,2:S,4:N, at 3,\,NH!,Ph,-5'-1:/_
+<30,?6,3=dl,2:S,4:N, at 3,!,NH!,Ph,-5'-1:?
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Famphur;MW:325.3;EXA:-
+CAT:antibacterial;EN:Famphur;MW:325.3;EXA:1
 :
-<-30,!O!,P,//S,/O!^160,!,O,!Ph,-3:/S?O?O!'N?!
+<-30,!O!,P,?S,/O!^160,!,O,!Ph,-3:/S?O?O!'N?!
 ;
 %------------------------------------------------------------------------------
 CAT:antibacterial;EN:Lincomycin;MW:406.54;EXA:1
 :
-<6,?5,5:N,5:*/_,2:*/!2,
- @3,\*,?O,!NH!,!wb,?6,-1:O,*-3'-4'-5:*/OH,-2:/*S!,8:/?!'OH^-30>lr
+<6,?5,5:N,5:?w,2:*/!2,
+ @3,!z,?O,!NH!,!wb,?6,-1:O,*-3'-4'-5:*/OH,-2:/*S!,8:/?!'OH^-30>lr
 ;
 %------------------------------------------------------------------------------
 CAT:antibacterial;EN:2-acethylamino-5-nitrothiazole;MW:187.178;EXA:-
@@ -2900,60 +2966,79 @@
 <18,?5,2'5=dl,2:N,4:S,3:/NH!'?O!,5:/NO2
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Chlorsulon;MW:380.66;EXA:-
+CAT:antibacterial;EN:Chlorsulon;MW:380.66;EXA:1
 :
-<30,Ph,6:/NH2,1'3:/S?O?O'!NH2, at 4,\,/Cl,60~dl,/Cl,!Cl
+<30,Ph,6:/NH2,1'3:/S?O?O'!NH2, at 4,!,/Cl,60~dl,/Cl,!Cl
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Florfenicol;MW:358.21;EXA:-
+CAT:antibacterial;EN:Florfenicol;MW:358.21;EXA:1
 :
-<30,Ph,1:/S?O?O!, at 4,\,/OH,!,/!F,!NH!,?O!,/Cl,!Cl
+<30,Ph,1:/S?O?O!, at 4,!,/OH,!,/!F,!NH!,?O!,/Cl,!Cl
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Thiamphenicol;MW:356.22;EXA:-
+CAT:antibacterial;EN:Thiamphenicol;MW:356.22;EXA:1
 :
-<30,Ph,1:/S?O?O!, at 4,\,/OH,!,/!OH,!`1.1,NH,!`1.1,?O!,/Cl,!Cl
+<30,Ph,1:/S?O?O!, at 4,!,/OH,!,/!OH,!`1.1,NH,!`1.1,?O!,/Cl,!Cl
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Oxadiargyl;MW:341.19;EXA:-
+CAT:antibacterial;EN:Oxadiargyl;MW:341.19;EXA:1
 :
-<30,Ph,1'3:/Cl,6:/O!2'!t, at 4,\,|,?5,2=dl,1'2:N,4:O,5:?O,3:/??!
+<30,Ph,1'3:/Cl,6:/O!2'!t, at 4,!,|,?5,2=dl,1'2:N,4:O,5:?O,3:/??!
 ;
 %------------------------------------------------------------------------------
-CAT:antibacterial;EN:Oxaziclomefone;MW:376.277;EXA:-
+CAT:antibacterial;EN:Oxaziclomefone;MW:376.277;EXA:1
 :
-<30,?6,6=dl,4:N,2:O,1:/_,5:?O,6:/Ph, at 4,\,??,!Ph,-4'-2:/Cl
+<30,?6,6=dl,4:N,2:O,1:?,5:?O,6:/Ph, at 4,!,??,!Ph,-4'-2:/Cl
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Pyrrolnitrin;MW:111;EXA:-
+CAT:biological;EN:Pyrrolnitrin;MW:257.07;EXA:1
 :
-<30,Ph, at 3,\,?5,8'11=db,1'11:/Cl,9:NH,2:/NO2,
+<30,Ph, at 3,!,?5,8'11=db,1'11:/Cl,9:NH,2:/NO2
 ;
 %******************************************************************************
-CAT:biological;EN:Okadaic acid;MW:805.00;EXA:2
+CAT:antibiotics;EN:Vancomycin;MW:1449.25;EXA:2
 :
-<30,?6, at 4,?6, at -4,\,!3,<-12,?5, at -3,<-12,?6,-3=?6, at -3,*\,!3,
- ?6, at -4,?6, at 6,\,!,/*_^-40,*/OH^20,!,?O!,OH,
+<-30,#1,!12,1'3'12=zf,7=wf,60,60,Ph, at -3,!,O,!Ph, at -4,!,O,!Ph, at -3,!,&1,
+ @7,&26,@$1,60,60,NH,60,-60,Ph, at -1,!,Ph, at -2,&4,##,
+ {36'3^40'6'9'12}:?O,2'5'8'11:NH,{1'4^180'*7^-60'*10^60'*14^60'35^-60}:*/H,
+ 41'43'46:/OH,14'*35:*/OH,{17'34^15}:/Cl,38^180:*/COOH,
+ @10,-60~wf,60,?O!,NH2, at 13,!w,NH!,?O!,/??!,*/H^60,!z,NH!,
+ @23,!,O,!z,|,?6`.7,2:O,3^10:*/!OH,*4'5:*/OH,
+ @-1,!z,O,!wb,|,?6`.7,6:O,{*3^35'5}:?w,3^-35:/NH2,4:/*OH
+;
+%------------------------------------------------------------------------------
+CAT:marine toxine;EN:Okadaic acid;MW:805.00;EXA:2
+:
+<30,?6, at 4,?6, at -4,!4,<-12,?5, at -3,<-12,?6,-3=?6, at -3,!w,!3,
+ ?6, at -4,?6, at 6,!2,?z^-40,*/OH^20,!,?O!,OH,
  3'38=wb,11=dl,15=dr,17'19=wf,5'7'16'24'25'33'42:O,
- 32:*/H^60,10:/_,12'31'*37:*/_,27://_,28:/OH,3'29:/*OH
+ 32:*/H^60,10:?,12'31'*37:?w,27:?d,28:/OH,3'29:/*OH
 ;
 %------------------------------------------------------------------------------
-CAT:antibiotics;EN:Vancomycin;MW:1449.25;EXA:2
+CAT:marine toxine;EN:Ciguatoxine-1B;MW:1111.31;EXA:2
 :
-<-30,#1,!12,1'3'12=zf,7=wf,60,60,Ph, at -3,\,O,!Ph, at -4,\,O,!Ph, at -3,\,&1,
- @7,&26,@$1,60,60,NH,60,-60,Ph, at -1,\,Ph, at -2,&4,##,
- {36'3^40'6'9'12}:?O,2'5'8'11:NH,{1'4^180'*7^-60'*10^60'*14^60'35^-60}:*/H,
- 41'43'46:/OH,14'*35:*/OH,{17'34^15}:/Cl,38^180:*/COOH,
- @10,*\^-60,60,?O!,NH2, at 13,*\,NH!,?O!,/??!,*/H^60,!z,NH!,
- @23,\,O,!z,|,?6`.7,2:O,3^10:*/!OH,*4'5:*/OH,
- @-1,\*,O,!wb,|,?6`.7,6:O,{*3^35'5}:*/_,3^-35:/NH2,4:/*OH,
+<30,?7,-5'-3=?6,-3'-3=?7,-4=?9,-3=?7,-4=?6,-3=?8,-5=?6,-3=?7,-4=?6, at -2,?5,
+ -5=zf,-1=wb,6'19'28'32=db,2'11'12'20'21'32'33'41'42'51'52'60'64:O,
+ 1:/*H^60,3'9'13'18'22'30'34'39'43'49'53:/*H^-60,
+ {4'10'14'19'23^75'31^55'40'44'50'54}:*/H^60,
+ {35^60'*46'56'*57'58}:?w`.8,*8'36'*55'62:*/OH,
+ @1,!,!dl,!,/*OH,!2,OH
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Maitotoxin;MW:3425.86;EXA:-
+CAT:marine toxine;EN:Ciguatoxine-3C;MW:1023.25;EXA:1
 :
-<55.8,?6,-4=?7,-4'-3'-3'-3=?6, at -3,\,!3,?6,-4'-3'-3'-3=?6, at -3,\,?6,-3=?6,
- @-3,\,!3,60,<-30,?6,-3=?6, at -3,30,<30,?6,-3'-3=?6,-3=?7,-4'-3'-3=?6,
- @-2,\,?6,-3=?6,-3=?7,-3'-3=?6,-3=?8,-3=dl,-5'-3'-3'-3=?6,
+<30,?7,-5'-3=?6,-3=?7,-3=?8,-5=?9,-3=?7,-4=?6,-3=?8,-5=?6,-3=?7,-4=?6, at -2,?5,
+ -5=zf,-1=wb,6'19'28'33=db,2'11'12'20'21'33'34'42'43'52'53'61'65:O,
+ {3'9'13'18^-65'22'31^-70'35^-55'40^-65'44'50'54}:/*H^-60,
+ {4'10'14'19'23^75'32^65'41'45'51'55}:*/H^60,
+ {36^60'*47'57'*58'59}:?w`.8,*8'37'*56:*/OH
+;
+%------------------------------------------------------------------------------
+CAT:marine toxine;EN:Maitotoxin;MW:3425.86;EXA:2
+:
+<55.8,?6,-4=?7,-4'-3'-3'-3=?6, at -3,!4,?6,-4'-3'-3'-3=?6, at -3,!,?6,-3=?6,
+ @-3,!4,60,<-30,?6,-3=?6, at -3,30,<30,?6,-3'-3=?6,-3=?7,-4'-3'-3=?6,
+ @-2,!,?6,-3=?6,-3=?7,-3'-3=?6,-3=?8,-3=dl,-5'-3'-3'-3=?6,
  5'7'15'16'23'24'32'40'41'48'49'58'59'72'73'82'83'90'91'99'
    100'107'113'114'122'123'130'131'140'141'148'149:O,
  {1^60'2'26'28'29'51'54'61'63'68'75^60'78'109}:*/OH,
@@ -2961,10 +3046,9 @@
  3'8'13'17'21'33'38'42'56'70'84'92'101'106'111'128'138'142'146'150:/*H^-60,
  4'14'22'34'39'43'*47'*57'*71'81'89'98'102'116'121'125'129'133:*/H^60,
  6'46'50'53'60'67'74:*/H^-60,
- 9'18'85'93'112'139'143'147:*/_^60`1,80'88'97'*108'115'120'124:/*_^-60`1,
- @$6,\,|,!11,60~dr,-60,60,OH,*2'7'10:*/OH,1'3'*8:*/_,11://_,12:/_,
-   @6,\,O,30,SO3Na,
+ 9'18'85'93'112'139'143'147:?w^60`1,80'88'97'*108'115'120'124:?z^-60`1,
+ @$6,!,|,!11,60~dr,-60,60,OH,*2'7'10:*/OH,1'3'*8:?w,11:?d,12:?, at 6,!,O,30,SO3Na,
  @$36,-45~zf,O,30,SO3Na,
- @$150,\,|,!7,1'2:/*OH,4:*/_,5:/*_,7=dl
+ @$150,!,|,!7,1'2:/*OH,4:?w,5:?z,7=dl
 ;
 %------------------------------------------------------------------------------

Modified: trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp	2025-01-05 20:57:31 UTC (rev 73323)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp	2025-01-05 20:57:40 UTC (rev 73324)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 5.15    Copyright (c) 2013-2024   Akira Yamaji
+% mcf2graph ver 5.16    Copyright (c) 2013-2025   Akira Yamaji
 %
 % Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 % and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -22,85 +22,54 @@
 % This package is located at : http://www.ctan.org/pkg/mcf2graph
 % Suggestion or request mail to : mcf2graph at gmail.com 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-message "* This is mcf2graph ver 5.15  2024.12.01";
-tracingstats:=1; prologues:=3; warningcheck:=0;
+message "* This is mcf2graph ver 5.16  2025.01.05";
+tracingstats:=1; prologues:=3;
 %-------------------------------------------------------------------------------------------------
-newinternal string EN_;
+newinternal string EN_,tempc,temps,blanks,line_s,atom_s,forbiddens,firstc,file_output;
+newinternal numeric nA,nB,nC,nD,nE,nL,nN,nP,nR,nS,nU,nX,nY,pX,pY,pcode_int;
 numeric save_num[],pcode_x[][],pcode_y[][],param_e[][],pcode_cnt[],tbl_atom[],tbl_group[][],
         tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],at_char[],mc_indent[],op_indent[],
         ex_indent[],ad_indent[],unit_lines[],info[],tbl_asc[],lenw[];
 string  row[][],save_str[],tbl_atom_str[],str_tbl[],arg_s[],mc[],ex[],ad[],op[],tag[],rw[],
-        lib_tag[][],lib_val[][],mc,ex,ad,op,aux_delimiter,default_library,EN,FM,MW,MI,CAT,JN,CAS,
-        USE,EXA,EXB,file_input,file_output,default_temp_file,mpfont,atomfont,tempc,temps,blanks,
-        sC,sI,sS,sT,sV,forbiddens;
+        lib_tag[][],lib_val[][],block_s[],mc,ex,ad,op,aux_delimiter,default_library,EN,FM,MW,MI,
+        CAT,JN,CAS,USE,EXA,EXB,file_input,default_temp_file,mpfont,atomfont,numberfont;
 pair    save_pair[],msize,mposition,fsize,fmargin,save_mposition;
 %-------------------------------------------------------------------------------------------------
-fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_frame:=sw_trimming:=sw_ext_all:=sw_abbreviate:=sw_expand:=0;
-sw_comment:=sw_output:=sw_numbering:=tag_cnt:=rw_cnt:=pcode_all:=0; 
-numbering_start:=1; numbering_end:=4095;
+fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_frame:=sw_trimming:=sw_ext_all:=sw_omit:=sw_expand:=0;
+sw_comment:=sw_output:=sw_numbering:=tag_cnt:=rw_cnt:=pcode_all:=MW_n:=0;
 %-------------------------------------------------------------------------------------------------
-aux_delimiter:=";"; blanks:= "            ";  forbiddens:=" &()[]{}^=;!'+,`~";
 for s="No","EN","JN","MW","MI","FM","CAT","CAS","USE","EXA","EXB": tag[incr tag_cnt]:=s; endfor
-MW_n:=0; Fig:=1; Mcode:=2; Calc:=4; Info:=8; Table:=16; Report:=32; MOL2k:=64; MOL3k:=128;
-Atom:=8; Bond:=16; Group:=32; Mol:=64; Outside:=1; Inside:=2; Bothside:=Outside+Inside;
-%-------------------------------------------------------------------------------------------------
-PRS:=ASCII("(");PRE:=ASCII(")");BRS:=ASCII("{");BRE:=ASCII("}");BKS:=ASCII("[");BKE:=ASCII("]");
-CMA:=ASCII(",");EQU:=ASCII("=");AST:=ASCII("*");SLS:=ASCII("/");GTN:=ASCII("<");LTN:=ASCII(">");
-AMP:=ASCII("&");HSH:=ASCII("#");HAT:=ASCII("^");TLD:=ASCII("~");BQT:=ASCII("`");CLN:=ASCII(":");
-AMK:=ASCII("@");QUT:=ASCII("'");BAR:=ASCII("|");PLS:=ASCII("+");MIS:=ASCII("-");BLK:=ASCII(" ");
-BSL:=ASCII("\");QES:=ASCII("?");
-%-------------------------------------------------------------------------------------------------
-for s="??!","!?!","!!!","!?","?!","??","*/*","/*","*/","//","**","##","||","\\":
-  rw[incr rw_cnt]:=s; lenw[rw_cnt]:=length(s); endfor
-%-------------------------------------------------------------------------------------------------
-let DIV= /; let MUL= *; let LT= <; let GT= >; let AND= &; let :: = : ; let == = =; let ef=elseif;
-let ISP=intersectionpoint; def ]]]=] ] ] enddef; let +++ = ++;
-%-------------------------------------------------------------------------------------------------
-def ext(text t)= sw_ext_all:=1; def EXT_ALL = t enddef; enddef;
-def ext_clear= sw_ext_all:=0; def EXT_ALL = enddef; enddef;
-def wpcs expr n= withpen pencircle scaled n enddef;
-def ppcs expr n= pickup pencircle scaled n enddef;
-def sbp(expr m,n)expr p=subpath(m*length(p),n*length(p)) of p enddef;
-def printf expr s= write s to file_output enddef;
-def warning(expr s)= message "% "&decimal(fig_num)&fdr(3)(incr warning_cnt)&")"&s; enddef;
-%-------------------------------------------------------------------------------------------------
-vardef frac primary n= n-floor n enddef;
-vardef iif(expr a,b,c)=if a: b else: c fi enddef;
-vardef subc(expr i,s)= substring(i-1,i) of s enddef;
-vardef sfrt(expr a,b,c)= a shifted ((b,0) rotated c) enddef;
-vardef fsr(expr n)(expr s)= (substring(0,n-length(s)) of blanks)&s enddef;
-vardef fsl(expr n)(expr s)= s&(substring(0,n-length(s)) of blanks) enddef;
-vardef fdr(expr n)(expr s)=
-  if length(decimal(s))>n: substring (0,n) of decimal(s) else: fsr(n)(decimal(s)) fi enddef;
-vardef fdl(expr n)(expr s)= fsl(n)(decimal(s)) enddef;
-vardef Incr suffix $ == $:=$+1; $ enddef;
+Fig:=1; Mcode:=2; Info:=4; Report:=8; MOL2k:=16; MOL3k:=32; Atom:=2; Bond:=4; All:=8;
+Group:=8; Mol:=16; Outside:=1; Inside:=2; Bothside:=Outside+Inside;
 %=================================================================================================
 default_library:="main_lib.mcf"; default_temp_file:="temp.mcf";
-mpfont:="uhvr8r"; atomfont:="draw"; defaultfont:=mpfont;
+mpfont:="uhvr8r"; atomfont:=numberfont:="draw"; defaultfont:=mpfont; let ef=elseif;
 %--default ahangle=45---------------------------------------------------------------------
-if ahangle=1:  outputformat:="png"; hppp:=vppp:=0.12;   % png format(600dpi)
-ef ahangle=11: outputformat:="png"; hppp:=vppp:=0.06;   % png format(1200dpi)
-ef ahangle=2:  outputformat:="eps";                     % eps format(.eps)
-ef ahangle=3:  outputformat:="eps";                     % eps format(.mps)
-ef ahangle=45: outputformat:="svg";                     % svg format  *default
+if ahangle=1:  outputformat:="png"; hppp:=vppp:=0.12; % png format(600dpi)
+ef ahangle=11: outputformat:="png"; hppp:=vppp:=0.06; % png format(1200dpi)
+ef ahangle=2:  outputformat:="eps";                   % eps format(.eps)
+ef ahangle=3:  outputformat:="eps";                   % eps format(.mps)
+ef ahangle=45: outputformat:="svg";                   % svg format  *default
 fi
 %--default ahlength=4---------------------------------------------------------------------
-if ahlength=3:  sw_output:=Fig; sw_expand:=1;           % output figure(expanded)
-ef ahlength=4:  sw_output:=Fig;                         % output figure *default
-ef ahlength=5:  sw_output:=MOL2k; sw_expand:=1;         % output MOL(V2000)
-ef ahlength=6:  sw_output:=MOL3k; sw_expand:=1;         % output MOL(V3000)
-ef ahlength=7:  sw_output:=Report;                      % output report
+if ahlength=3:  sw_output:=Fig; sw_expand:=1;         % output figure(expanded)
+ef ahlength=4:  sw_output:=Fig;                       % output figure *default
+ef ahlength=5:  sw_output:=MOL2k; sw_expand:=1;       % output MOL(V2000) ** max 500files
+ef ahlength=6:  sw_output:=MOL3k; sw_expand:=1;       % output MOL(V3000) ** max 500files
+ef ahlength=7:  sw_output:=Report;                    % output report
 fi
 %-- default bboxmargin=2------------------------------------------------------------------
 if bboxmargin=3: ext(defaultfont:=mpfont; defaultscale:=.3; label.rt(EN,(0,0));)
-ef bboxmargin=4: sw_output:=Fig+Calc;
+ef bboxmargin=4: sw_output:=Fig+Report;
   ext(defaultfont:=mpfont; defaultscale:=.3;
-  label.rt(EN&" / "&MW&" / "&decimal(MW_n-scantokens(MW)),(0,0));) fi
+  label.rt(EN&" / "&MW&" / "&decimal(MW_n-scantokens(MW)),(0,0));)
+fi
 %--default outputtemplate:="%j-%3c."&"svg"------------------------------------------------
 if outputformat="svg":                 outputtemplate:="s%3c-%{EN_}.svg";
 ef outputformat="png":                 outputtemplate:="p%3c-%{EN_}.png";
 ef (outputformat="eps")and(ahangle=3): outputtemplate:="%j-%3c.mps";
-else:                                  outputtemplate:="%j-%3c."&outputformat; fi
+else:                                  outputtemplate:="%j-%3c."&outputformat;
+fi
 %-----------------------------------------------------------------------------------------
 message "* jobname="&jobname;
 message "* numbersystem="&numbersystem;
@@ -108,19 +77,45 @@
 message "* outputtemplate="&outputtemplate;
 if ahlength=5: message "* output MOL file(V2000)"; message "* "&jobname&"-nnn-"&"EN"&".mol";
 ef ahlength=6: message "* output MOL file(V3000)"; message "* "&jobname&"-nnn-"&"EN"&".mol";
-ef ahlength=7: message "* output report file"; message "* file name="&jobname&"-report.txt"; fi
+ef ahlength=7: message "* output report file"; message "* file name="&jobname&"-report.txt";
+fi
 clearit;
 %-------------------------------------------------------------------------------------------------
-ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.015;
-ratio_thickness_char:=0.1; ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15;
-ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.04;
-offset_thickness:=0.2; offset_bond_gap:=0.3; offset_hash_gap:=0.1; offset_atom:=0.8;
-offset_wedge:=0.4; thickness_frame:=0.2;
+ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.012; ratio_char_atom:=0.12;
+ratio_bondgap_bond:=0.15; ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4;
+ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.05; offset_thickness:=0.25; offset_bond_gap:=0.3;
+offset_hash_gap:=0.1; offset_atom:=0.8; offset_wedge:=0.4; thickness_frame:=0.2;
 max_blength:=10mm; blength:=mangle:=0; max_labelsize:=20mm; dottedline_gap:=1.5;
 fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5);
 ahangle:=45; ahlength:=4; defaultsize:=8; defaultscale:=1; labeloffset:=3; ext_defaultline:=0.5;
 lonepairdiam:=lonepairspace:=circlediam:=circlepen:=bboxmargin:=0; mc_length:=100;
 outputformatoptions:="";
+%-------------------------------------------------------------------------------------------------
+let DIV= /; let MUL= *; let LT= <; let GT= >; let AND= &; let :: = : ; let == = =;  let +++ = ++;
+let ISP=intersectionpoint; def ]]]=] ] ] enddef; vardef Incr suffix $ == $:=$+1; $ enddef;
+%-------------------------------------------------------------------------------------------------
+def ext(text t)= sw_ext_all:=1; def EXT_ALL = t enddef; enddef;
+def ext_clear= sw_ext_all:=0; def EXT_ALL = enddef; enddef;
+def wpcs expr n= withpen pencircle scaled n enddef;
+def ppcs expr n= pickup pencircle scaled n enddef;
+def sbp(expr m,n)expr p=subpath(m*length(p),n*length(p)) of p enddef;
+def puts expr s= write s to file_output enddef;
+%-------------------------------------------------------------------------------------------------
+vardef frac primary n= n-floor n enddef;
+vardef iif(expr a,b,c)=if a: b else: c fi enddef;
+vardef sfrt(expr a,b,c)= a shifted ((b,0) rotated c) enddef;
+vardef fsr(expr n)(expr s)= (substring(0,n-length(s)) of blanks)&s enddef;
+vardef fsl(expr n)(expr s)= s&(substring(0,n-length(s)) of blanks) enddef;
+vardef fdr(expr n)(expr s)=
+  if length(decimal(s))>n: substring (0,n) of decimal(s) else: fsr(n)(decimal(s)) fi enddef;
+vardef fdl(expr n)(expr s)= fsl(n)(decimal(s)) enddef;
+%-------------------------------------------------------------------------------------------------
+aux_delimiter:=";"; blanks:= "            ";  forbiddens:=" &()[]{}^=;!'+,`~";
+for s="*/*","/*","*/","//","**","##","||":rw[incr rw_cnt]:=s; lenw[rw_cnt]:=length(s); endfor
+PRS:=ASCII("(");PRE:=ASCII(")");BRS:=ASCII("{");BRE:=ASCII("}");QES:=ASCII("?");DOL:=ASCII("$");
+CMA:=ASCII(",");EQU:=ASCII("=");AST:=ASCII("*");SLS:=ASCII("/");GTN:=ASCII("<");LTN:=ASCII(">");
+AMP:=ASCII("&");HSH:=ASCII("#");HAT:=ASCII("^");TLD:=ASCII("~");BQT:=ASCII("`");CLN:=ASCII(":");
+AMK:=ASCII("@");QUT:=ASCII("'");BAR:=ASCII("|");PLS:=ASCII("+");MIS:=ASCII("-");BLK:=ASCII(" ");
 %=================================================================================================
 pcode_emb_start:=1001;     % 1001 => 1900   for embedded pcode (max 900)
 pcode_emi_start:=1901;     % 1901 => 2000   for embedded internal pcode (max 100)
@@ -128,25 +123,24 @@
 pcode_int_start:=3000;     % 3001 => 4000   for internal pcode (max 1000)
 %-------------------------------------------------------------------------------------------------
 def def_com(expr n)(text tx)= nA:=n; forsuffixes list=tx:: list:=nA; nA:=nA+1; endfor enddef;
-def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,
-  _set_line,_tmp_line,_chg_len,_chg_slen,_get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,
-  _chg_env,_tmp_env,_set_colorA,_set_colorB,
-  _group_si,_group_dm,_group_wf,_group_zf,_set_adr,_mk_bond,_set_atom,_arrange_ang,_chg_atom,
-  _tmp_rot,_fuse,_fuse_ext,_size_atom,_numeric,_numeric_inv,_jump_at,_set_add,_chg_add,_nop,
+def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_tmp_line,_tmp_rot,
+  _tmp_env,_tmp_len,_chg_len,_set_len,_get_len,_ring_len,_rot_ang,_adj_ang,_chg_env,_set_colorA,
+  _set_colorB,_group_si,_group_dm,_group_wf,_group_zf,_set_adr,_mk_bond,_set_atom,_arrange_ang,
+  _chg_atom,_fuse,_fuse_ext,_size_atom,_numeric,_numeric_inv,_jump_at,_set_add,_chg_add,_nop,
   _mark,_moff,_term,_len_s,_len_e,_len_ss,_len_ee,_group_s,_group_e,_rest,_charge,_from,_until,
   si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,wf_r,wb_r,bd_r,arc_lb,arc_br,
   arc_lbr,arc_ltr,si_,wf_,wb_,zf_,zb_,wv_,bd_);
 %-------------------------------------------------------------------------------------------------
 def parameter_list=
-  sw_numbering,sw_expand,sw_output,sw_ext_all,sw_frame,sw_trimming,sw_abbreviate,ratio_atom_bond,
-  ratio_thickness_bond,ratio_char_bond,ratio_chain_ring,ratio_bondgap_bond,ratio_hash_black,
-  ratio_hashgap_bond,ratio_thickness_char,ratio_wedge_bond,ratio_atomgap_atom,lonepairdiam,
-  lonepairspace,offset_atom,offset_wedge,max_blength,offset_hash_gap,offset_bond_gap,
-  thickness_frame,offset_thickness,numbering_start,numbering_end,defaultsize,defaultscale,
+  sw_numbering,sw_output,sw_ext_all,sw_frame,sw_trimming,sw_omit,ratio_atom_bond,
+  ratio_thickness_bond,ratio_chain_ring,ratio_bondgap_bond,ratio_hash_black,ratio_hashgap_bond,
+  ratio_wedge_bond,ratio_atomgap_atom,ratio_char_atom,offset_atom,offset_wedge,max_blength,
+  offset_hash_gap,offset_bond_gap,thickness_frame,offset_thickness,defaultsize,defaultscale,
   labeloffset,mangle,blength,fsize,fmargin,msize,mposition,defaultfont,atomfont,dottedline_gap
 enddef;
 %-------------------------------------------------------------------------------------------------
-def init_par(text t)= nA:=nB:=nC:=0;
+def init_par(text t)=
+  nA:=nB:=nC:=0;
   for list=t: if numeric list: save_num[incr nA]:=list;
               ef pair list:    save_pair[incr nB]:=list;
               ef string list:  save_str[incr nC]:=list;
@@ -154,7 +148,8 @@
   endfor
 enddef;
 %-------------------------------------------------------------------------------------------------
-def store_par(text t)= nA:=nB:=nC:=0;
+def store_par(text t)=
+  nA:=nB:=nC:=0;
   for list=t: if numeric list: if save_num[incr nA]<>list:  save_num[nA]:=list; fi
               ef pair list:    if save_pair[incr nB]<>list: save_pair[nB]:=list; fi
               ef string list:  if save_str[incr nC]<>list:  save_str[nC]:=list; fi
@@ -162,7 +157,8 @@
   endfor
 enddef;
 %-------------------------------------------------------------------------------------------------
-def restore_par(text t)= nA:=nB:=nC:=0;
+def restore_par(text t)=
+  nA:=nB:=nC:=0;
   forsuffixes list=t: if numeric list: if list<>save_num[incr nA]:  list:=save_num[nA]; fi
                       ef pair    list: if list<>save_pair[incr nB]: list:=save_pair[nB]; fi
                       ef string  list: if list<>save_str[incr nC]:  list:=save_str[nC]; fi
@@ -172,96 +168,88 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def beginfigm=
   begingroup
-  save ','',`,``,//,@,#,#@,##,\,\\,\*,|=,|<,**,++,_,f_ext,blen,ext,add,ang_br,fw_n,bw_n,
-       info_cnt,bond_cntA,firstc,warning_cnt,hideH,hideH_cnt,cntM,cntA,cntB,
-       minX,minY,maxX,maxY,posA,posM,lineB,sB,eB,angB,angA,lenB,angX,numS,sumA,bond_num,wdM,htM,
-       chargeA,addA,add_rot,mol_pic,color_list,filter_s,no,mw,mi,fm;
+  save ','',`,``,//,@,#,#@,##,\,\\,\*,|=,|<,**,++,f_ext,blen,ext,add,ang_br,fw_n,bw_n,adr_n,
+    bond_cntA,unknown_cnt,unknown_s,warning_cnt,warning_s,hideH,hideH_cnt,cntM,cntA,cntB,
+    minX,minY,maxX,maxY,posA,posM,lineB,sB,eB,angB,angA,lenB,angX,numS,sumA,bond_num,wdM,htM,
+    chargeA,addA,add_rot,mol_pic,color_list,no,mw,mi,fm,group_num,f_line,f_type,ay,bx,by,pcnt;
   numeric hideH[],lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],strA[],sumA[],bond_num[],
-          wdM[],htM[],chargeA[],addA[],add_rot[];
+    wdM[],htM[],chargeA[],addA[],add_rot[];
   pair posA[],posM[][];
-  string mi,no,fm,mw,firstc,filter_s;
+  string unknown_s[],warning_s[],mi,no,fm,mw;
   picture mol_pic[];
   color color_list[];
   %-----------------------------------------------------------------------------------------------
   store_par(parameter_list);
-  no:=mc:=ex:=ad:=op:=temps:=mw:=mi:=fm:=filter_s:="";
+  no:=mc:=ex:=ad:=op:=mw:=mi:=fm:="";
   EN:=JN:=MW:=FM:=MI:=CAS:=CAT:=EXA:=EXB:=USE:="-";
-  f_ext:=cntM:=mc_row:=ex_row:=ad_row:=op_row:=info_cnt:=err_cnt:=param_int:=0;
+  f_ext:=cntM:=mc_row:=ex_row:=ad_row:=op_row:=err_cnt:=param_int:=unknown_cnt:=warning_cnt:=0;
   let ext=ext_to_fig; let add=add_to_molecule; let ++=add_to_molecule; let **=ext_to_fig;
-  def '' = define_parts enddef; def '` = readm enddef; def \ = drawm enddef; def \\ = putm enddef;   def \* = checkm enddef; def $ = getm enddef; def @ expr p = mposition:=p; enddef;
+  def '' = define_parts enddef; def '` = readm enddef; def \ = drawm enddef; def \\ = putm enddef;
+  def \* = checkm enddef; def $ = getm enddef; def @ expr p = mposition:=p; enddef;
   def # expr p = fsize:=p; enddef; def #@ expr p = fmargin:=p; enddef; 
   def `(expr s) = define_group_string(s)() enddef; def `` = define_group_string enddef;
   def ## expr p = msize:=p; enddef; def |=(expr n) = blength:=n; enddef;
-  def |<(expr n) = max_blength:=n; enddef; def _ expr s = EN:=s; enddef;
+  def |<(expr n) = max_blength:=n; enddef;
   pcode_num:=pcode_usr_start; pcode_int:=pcode_int_start; fig_num:=fig_num+1;
   mol_pic[0]:=nullpicture;
 enddef;
 %-------------------------------------------------------------------------------------------------
 def endfigm=
-  %--------------------------------------------------------------------------------------------
   if cntM>=1:
-  %--------------------------------------------------------------------------------------------
-  if scan_bit(sw_output,Fig):
-    if EN<>"-": EN_:=forbidden_to_underbar(EN); fi
-    beginfig(fig_num)
-    %------------------------------------------------------------------------------------------
-      if sw_ext_all=1: ext_to_fig(EXT_ALL); fi
-      if sw_trimming>=1:
-        nA:=nC:=4095; nB:=nD:=-4095;
+    if scan_bit(sw_output,Fig)::
+    if EN<>"-": EN_:=forbidden_to_underbar(EN); else: EN_:="no_name"; fi
+      beginfig(fig_num)
+        if sw_ext_all=1: ext_to_fig(EXT_ALL); fi
+        if sw_trimming>=1:
+          nA:=nC:=4095; nB:=nD:=-4095;
+          for i=1 upto cntM:
+            if xpart(posM[1][i])<nA: nA:=xpart(posM[1][i]); fi
+            if xpart(posM[2][i])>nB: nB:=xpart(posM[2][i]); fi
+            if ypart(posM[1][i])<nC: nC:=ypart(posM[1][i]); fi
+            if ypart(posM[2][i])>nD: nD:=ypart(posM[2][i]); fi
+          endfor
+          fig_wd:=nB-nA+2xpart(fmargin); fig_ht:=nD-nC+2ypart(fmargin); fsize:=(fig_wd,fig_ht);
+          for i=1 upto cntM:
+            posM[0][i]:=posM[0][i]+fmargin-(nA,nC); posM[1][i]:=posM[1][i]+fmargin-(nA,nC);
+          endfor
+        fi
+        if scan_bit(sw_frame,Outside): draw_frame((0,0),fsize,thickness_frame);
+        else:                          draw_corner(fsize,0.004);
+        fi
+        if scan_bit(sw_frame,Inside): draw_frame(fmargin,fsize-2fmargin,thickness_frame); fi
         for i=1 upto cntM:
-          if xpart(posM[1][i])<nA: nA:=xpart(posM[1][i]); fi
-          if xpart(posM[2][i])>nB: nB:=xpart(posM[2][i]); fi
-          if ypart(posM[1][i])<nC: nC:=ypart(posM[1][i]); fi
-          if ypart(posM[2][i])>nD: nD:=ypart(posM[2][i]); fi
+          addto currentpicture also mol_pic[i] shifted posM[0][i]; mol_pic[i]:=nullpicture;
+          if scan_bit(sw_frame,Mol): ext(draw_frame(p[i],(w[i],h[i]),thickness_frame)) fi
         endfor
-        fig_wd:=nB-nA+2xpart(fmargin); fig_ht:=nD-nC+2ypart(fmargin); fsize:=(fig_wd,fig_ht);
-        for i=1 upto cntM:
-          posM[0][i]:=posM[0][i]+fmargin-(nA,nC); posM[1][i]:=posM[1][i]+fmargin-(nA,nC);
-        endfor
-      fi
-      %----------------------------------------------------------------------------------------
-      if scan_bit(sw_frame,Outside): draw_frame((0,0),fsize,thickness_frame);
-      else:                          draw_corner(fsize,0.004); fi
-      if scan_bit(sw_frame,Inside): draw_frame(fmargin,fsize-2fmargin,thickness_frame); fi
-      for i=1 upto cntM:
-        addto currentpicture also mol_pic[i] shifted posM[0][i]; mol_pic[i]:=nullpicture;
-        if scan_bit(sw_frame,Mol): ext(draw_frame(p[i],(w[i],h[i]),thickness_frame)) fi
-      endfor
-      if f_ext=1: addto currentpicture also mol_pic[0]; mol_pic[0]:=nullpicture; fi
-    %-----------------------------------------------------------------------------------------
-    endfig;
-    clearit;
-  fi
-  %---------------------------------------------------------------------------------------------
-  if scan_bit(sw_output,Report): proc_report_out; fi
-  if scan_bit(sw_output,MOL2k):  proc_mol_out(2000); fi
-  if scan_bit(sw_output,MOL3k):  proc_mol_out(3000); fi
-  %---------------------------------------------------------------------------------------------
+        if f_ext=1: addto currentpicture also mol_pic[0]; mol_pic[0]:=nullpicture; fi
+      endfig;
+      clearit;
+    fi
   ef scan_bit(sw_output,Fig):
-    EN_:="no_figure";
+    if EN<>"-": EN_:=forbidden_to_underbar(EN); else: EN_:="no_name"; fi
     beginfig(fig_num)
-    defaultscale:=.6; draw_frame((0,0),fsize,thickness_frame) label("no figure",0.5fsize);
+      defaultscale:=.6; draw_frame((0,0),fsize,thickness_frame) label("no figure",0.5fsize);
     endfig;
     clearit;
   fi
-  %---------------------------------------------------------------------------------------------
   if err_cnt=0:
-    if scan_bit(sw_output,Mcode):  proc_mc_out;         message "["&decimal(fig_num)&"]:"&EN; fi
-    if scan_bit(sw_output,Report): proc_report_out;     message "["&decimal(fig_num)&"]:"&EN; fi
-    if scan_bit(sw_output,MOL2k):  proc_mol_out(2000);  message "["&decimal(fig_num)&"]:"&EN; fi
-    if scan_bit(sw_output,MOL3k):  proc_mol_out(3000);  message "["&decimal(fig_num)&"]:"&EN; fi
+    if scan_bit(sw_output,Mcode):  proc_mc_out; fi
+    if scan_bit(sw_output,Report): proc_report_out; fi
+    if scan_bit(sw_output,MOL2k):  proc_mol_out(2000); fi
+    if scan_bit(sw_output,MOL3k):  proc_mol_out(3000); fi
   fi
-  %---------------------------------------------------------------------------------------------
   restore_par(parameter_list);
   endgroup;
-  message EN;
+  message "["&decimal(fig_num)&"]EN:"&EN; message "";
 enddef;
 %=================================================================================================
 def readm(text s)=
-  save fw_n,bw_n;
   for list=s:
-    fw_n:=scan_char(" ",list,1,1)-1; bw_n:=scan_char(" ",list,-1,1);
-    mc_indent[incr mc_row]:=fw_n; mc[mc_row]:=substring(fw_n,bw_n) of list; mc:=mc&mc[mc_row];
+    fw_n:=scan_char(" ",list,1,1)-1;
+    bw_n:=scan_char(" ",list,-1,1);
+    mc_indent[incr mc_row]:=fw_n;
+    mc[mc_row]:=substring(fw_n,bw_n) of list;
+    mc:=mc&mc[mc_row];
   endfor
 enddef;
 %=================================================================================================
@@ -268,21 +256,23 @@
 def getm(expr a)=if string a: read_unit(get_adr("EN",a)) ef numeric a: read_unit(a) fi enddef;
 %-------------------------------------------------------------------------------------------------
 def read_unit(expr n)=
-  save nF; nF:=0;
+  f_line:=0;
   if (n>=1)and(n<=ucount):
     for i=1 upto info[n]:
       for j=1 upto tag_cnt: if lib_tag[n][i]=tag[j]: scantokens(tag[j]):=lib_val[n][i]; fi endfor
     endfor
     for i=1 upto unit_lines[n]:
-      temps:=row[n][i]; firstc:=subc(1,temps); exitif firstc=";";
-      if firstc=":": nF:=1; ef firstc="=": nF:=2; ef firstc="*": nF:=3; ef firstc="+": nF:=4;
+      line_s:=row[n][i]; firstc:=substring(0,1) of line_s; exitif firstc=";";
+      if firstc=":": f_line:=1; ef firstc="=": f_line:=2;
+      ef firstc="*": f_line:=3; ef firstc="+": f_line:=4;
       ef firstc="%":
       else:
-        fw_n:=scan_char(" ",temps,1,1)-1; temps:=substring(fw_n,length(temps)) of temps;
-        if nF=1: mc_indent[incr mc_row]:=fw_n; mc[mc_row]:=temps; mc:=mc&temps;
-        ef nF=2: op_indent[incr op_row]:=fw_n; op[op_row]:=temps; op:=op&temps;
-        ef nF=3: ex_indent[incr ex_row]:=fw_n; ex[ex_row]:=temps; ex:=ex&temps;
-        ef nF=4: ad_indent[incr ad_row]:=fw_n; ad[ad_row]:=temps; ad:=ad&temps;
+        fw_n:=scan_char(" ",line_s,1,1)-1;
+        line_s:=substring(fw_n,length(line_s)) of line_s;
+        if f_line=1: mc_indent[incr mc_row]:=fw_n; mc[mc_row]:=line_s; mc:=mc&line_s;
+        ef f_line=2: op_indent[incr op_row]:=fw_n; op[op_row]:=line_s; op:=op&line_s;
+        ef f_line=3: ex_indent[incr ex_row]:=fw_n; ex[ex_row]:=line_s; ex:=ex&line_s;
+        ef f_line=4: ad_indent[incr ad_row]:=fw_n; ad[ad_row]:=line_s; ad:=ad&line_s;
         fi
       fi
     endfor
@@ -290,7 +280,7 @@
 enddef;
 %=================================================================================================
 vardef get_adr(expr t,v)=
-  save adr_n; adr_n:=0;
+  adr_n:=0;
   for n=1 upto ucount:
     for i=1 upto info[n]:
       for j=1 upto tag_cnt: if (lib_tag[n][i]=t)and(lib_val[n][i]=v): adr_n:=n; fi endfor
@@ -315,42 +305,47 @@
 enddef;
 def move_pos(expr n) =
   <$0,angle(pcode_y[n][1],pcode_y[n][2])~0`length(pcode_y[n][1],pcode_y[n][2]),<$0 enddef;
+def message_unknown(expr n) =
+  unknown_s[incr unknown_cnt]:="*Unknown found in block("AND decimal(n)AND")";
+  message "["AND decimal(fig_num)AND"]"AND unknown_s[unknown_cnt];
+  message "";
+enddef;
 %-------------------------------------------------------------------------------------------------
-vardef abs_adress primary n = if (n>=si)and(n<=bd_):: (_tmp_line,n) else:: n-4095 fi enddef;
+vardef abs_adress primary n =
+ if numeric n:: if (n>=si)and(n<=bd_):: (_tmp_line,n) else:: n-4095 fi else:: _nop fi enddef;
 primarydef a from_until b = (_from,a),(_until,b) enddef;
-primarydef a op_quot b = if (known a)and(known b):: add_parts(a,b) else:: _nop fi enddef;
+primarydef a bop_qut b = if (known a)and(known b):: add_parts(a,b) else:: _nop fi enddef;
 primarydef a fuse__   b = pcode_extend(_fuse_ext,a,b,2,0) enddef;
 primarydef a fuse___  b = pcode_extend(_fuse_ext,a,b,3,0) enddef;
 primarydef a fuse____ b = pcode_extend(_fuse_ext,a,b,4,0) enddef;
-tertiarydef a op_equ b = if (known a)and(known b):: change_bond(a,b) else:: _nop fi enddef; 
-tertiarydef a op_col b = if (known a)and(known b):: change_atom(a,b) else:: _nop fi enddef;
-tertiarydef a op_hat b = if (known a)and(known b):: (_tmp_rot,b),a   else:: _nop fi enddef;
-tertiarydef a op_til b = if (known a)and(known b):: (_tmp_line,b),a  else:: _nop fi enddef;
-tertiarydef a op_lth b = if (known a)and(known b):: (_tmp_env,b),a   else:: _nop fi enddef;
-tertiarydef a op_bqu b = if (known a)and(known b):: (_tmp_len,b),a   else:: _nop fi enddef;
-def chg_length primary n = (_chg_slen,n) enddef;
-def rot_angle  primary n = if known n:: (_rot_ang,n) else:: _nop fi enddef;
-def cyc_atom   primary n = if known n:: (_cyc,n)     else:: _nop fi enddef;
+tertiarydef a bop_equ b = if (known a)and(known b):: set_bond(a,b) else:: _nop fi enddef; 
+tertiarydef a bop_col b = if (known a)and(known b):: set_atom(a,b) else:: _nop fi enddef;
+tertiarydef a bop_hat b = if (known a)and(numeric b):: (_tmp_rot,b),a   else:: _nop fi enddef;
+tertiarydef a bop_til b = if (known a)and(numeric b):: (_tmp_line,b),a  else:: _nop fi enddef;
+tertiarydef a bop_lth b = if (known a)and(numeric b):: (_tmp_env,b),a   else:: _nop fi enddef;
+tertiarydef a bop_bqu b = if (known a)and(numeric b):: (_tmp_len,b),a   else:: _nop fi enddef;
+def chg_length primary n = if numeric n:: (_set_len,n) else:: _nop fi enddef;
+def rot_angle  primary n = if numeric n:: (_rot_ang,n) else:: _nop fi enddef;
+def cyc_atom   primary n = if numeric n:: (_cyc,n)     else:: _nop fi enddef;
 def jump_atom secondary n = if n>=pcode_int_start:: move_pos(n) else::(_jp_atom,n) fi enddef;
-def jump_atom_abs secondary n = if n>=pcode_int_start::(_jp_atom,$1),move_pos(n)
-                                else::(_jp_atom,$n) fi enddef;
-def group_si secondary n = if known n:: (_group_si,n) else:: _nop fi enddef;
-def group_dm secondary n = if known n:: (_group_dm,n) else:: _nop fi enddef;
-def group_wf secondary n = if known n:: (_group_wf,n) else:: _nop fi enddef;
-def group_zf secondary n = if known n:: (_group_zf,n) else:: _nop fi enddef;
-def group_wv secondary n = if known n:: /n~wv         else:: _nop fi enddef;
-def group_nb secondary n = if known n:: /n~nb         else:: _nop fi enddef;
+def jump_atom_abs secondary n = if numeric n::
+  if n>=pcode_int_start::(_jp_atom,$1),move_pos(n) else::(_jp_atom,$n) fi else:: _nop fi enddef;
+def group_si secondary n = if numeric n:: (_group_si,n) else:: _nop fi enddef;
+def group_dm secondary n = if numeric n:: (_group_dm,n) else:: _nop fi enddef;
+def group_wf secondary n = if numeric n:: (_group_wf,n) else:: _nop fi enddef;
+def group_zf secondary n = if numeric n:: (_group_zf,n) else:: _nop fi enddef;
+def group_wv secondary n = if numeric n:: /n~wv         else:: _nop fi enddef;
+def group_nb secondary n = if numeric n:: /n~nb         else:: _nop fi enddef;
 %=================================================================================================
 def read_mcf(expr n)(text t)=
   begingroup
   if unknown inside_mc::
-    save /,//,*,/*,*/,**,*/*,~,^,`,',<,>,:,=,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_,
-         --,---,----,CP,CA,CC,DL,FR,inside_mc;
-    inside_mc:=1; | :=mark_adress; || :=reset_adress; ##:=reset_length; _:=NO_ATOM;
-    \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv; let ' == op_quot; let = ==op_equ;
-    let : ==op_col; let ^ ==op_hat; let ~ ==op_til; let > ==op_lth; let ` ==op_bqu;
-    let -- == fuse__; let --- == fuse___; let ---- == fuse____; let } == );
-    let @$ ==jump_atom_abs; let < ==rot_angle; let @ ==jump_atom; let & ==cyc_atom;
+    save /,//,*,/*,*/,**,*/*,~,^,`,',<,>,:,=,@,@$,$,&,&$,#,##,{,},|,||,--,---,----,
+         CP,CA,CC,DL,FR,inside_mc;
+    inside_mc:=1; | :=mark_adress; || :=reset_adress; ##:=reset_length;
+    let ' == bop_qut; let = ==bop_equ; let : ==bop_col; let ^ ==bop_hat; let ~ ==bop_til;
+    let > ==bop_lth; let ` ==bop_bqu; let -- == fuse__; let --- == fuse___; let ---- == fuse____;
+    let } == ); let @$ ==jump_atom_abs; let < ==rot_angle; let @ ==jump_atom; let & ==cyc_atom;
     let # ==chg_length; let / ==group_si; let // ==group_dm; let */ ==group_wf; let /* ==group_zf;
     let */* ==group_wv; let ** ==group_nb; let CP == pcode_add; let CA == pcode_add_adr;
     let FR == fuse_ring_bonds; def DL(expr p)==CA(_set_line,dl,p) enddef;
@@ -359,18 +354,19 @@
     def * primary p == (_numeric_inv,p) enddef;
   fi
   %----------------------------------------------------------------------------------------------
-  pcode_cnt[n]:=0;
+  pcode_cnt[n]:=block_cnt:=0;
   for list==t::
+    block_cnt:=block_cnt+1;
     if known list::
       if pair list::
         pcode_x[n][Incr pcode_cnt[n]]:=xpart(list); pcode_y[n][pcode_cnt[n]]:=ypart(list);
       ef numeric list::
-        if list==_nop:: message "unknown command in "AND decimal(n);
+        if list==_nop:: message_unknown(block_cnt);
         ef list>=pcode_emb_start:: expand_pcode(n,list);
         else:: pcode_x[n][Incr pcode_cnt[n]]:=_mk_bond; pcode_y[n][pcode_cnt[n]]:=list;
         fi
       fi
-    else:: message "unknown command in "AND decimal(n);
+    else:: message_unknown(block_cnt);
     fi
   endfor
   endgroup
@@ -389,13 +385,13 @@
 enddef;
 %-------------------------------------------------------------------------------------------------
 vardef read_adress(text t)=
-  save :,',pcnt,start_num;
+  save :,',start_num;
   let ' == , ; let : == from_until;
   pcode_int:=pcode_int+1; pcnt:=0;
   for list==t::
     if known list::
       if numeric list::
-        if list==_nop:: message "unknown command in "AND decimal(pcode_int);
+        if list==_nop:: message_unknown(block_cnt);
         else:: pcode_x[pcode_int][Incr pcnt]:=_numeric; pcode_y[pcode_int][pcnt]:=list;
         fi
       ef pair list::
@@ -407,7 +403,7 @@
         else:: pcode_x[pcode_int][Incr pcnt]:=xpart(list); pcode_y[pcode_int][pcnt]:=ypart(list);
         fi
       fi
-    else:: message "unknown command in "AND decimal(pcode_int);
+    else:: message_unknown(block_cnt);
     fi
   endfor
   pcode_cnt[pcode_int]:=pcnt; pcode_int
@@ -417,13 +413,13 @@
   if (pair a)and(pair b)::
     pcode_x[Incr pcode_int][1]:=xpart a; pcode_y[pcode_int][1]:=ypart a;
     pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2;
-  elseif pair a::
+  ef (pair a)and(numeric b)::
     pcode_x[Incr pcode_int][1]:=xpart a; pcode_y[pcode_int][1]:=ypart a;
     if b>=pcode_emb_start:: pcode_x[pcode_int][2]:=b;
     else:: pcode_x[pcode_int][2]:=_numeric; pcode_y[pcode_int][2]:=b;
     fi
     pcode_cnt[pcode_int]:=2;
-  elseif pair b::
+  ef (numeric a)and(pair b)::
     if a>=pcode_int_start::
       pcode_x[a][Incr pcode_cnt[a]]:=xpart b; pcode_y[a][pcode_cnt[a]]:=ypart b;
     elseif a>=pcode_emb_start::
@@ -433,10 +429,10 @@
       pcode_x[Incr pcode_int][1]:=_numeric; pcode_y[pcode_int][1]:=a;
       pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2;
     fi
-  elseif (a LT pcode_emb_start)and(b LT pcode_emb_start)::
+  ef (a LT pcode_emb_start)and(b LT pcode_emb_start)::
     pcode_x[Incr pcode_int][1]:=_numeric; pcode_y[pcode_int][1]:=a;
     pcode_x[pcode_int][2]:=_numeric; pcode_y[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2;
-  elseif (a>=pcode_int_start)and(b LT pcode_int_start)::
+  ef (a>=pcode_int_start)and(b LT pcode_int_start)::
     if b>=pcode_emb_start:: pcode_x[a][Incr pcode_cnt[a]]:=b;
     else:: pcode_x[a][Incr pcode_cnt[a]]:=_numeric; pcode_y[a][pcode_cnt[a]]:=b;
     fi
@@ -446,124 +442,126 @@
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def fuse_ring(expr a,b) =
-  CP(_jp_bond,a) CP(_rot_ang,180) CP(_get_len,a) CC(_len_s) CP(_chg_len,_ring_len)
+  CP(_jp_bond,a) CP(_rot_ang,180) CP(_get_len,a) CP(_set_len,_ring_len)
   for i==1 upto b-2:: CB(360 DIV b) endfor
   CC(_len_e) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi
 enddef;
 %-------------------------------------------------------------------------------------------------
 def fuse_ring_bonds(expr s,e,b,c) =
-  CP(_jp_bond,s) CP(_rot_ang,180) CC(_len_s)
-  if b==6:: CP(_chg_len,1) for i==1 upto c-1:: CB(60) endfor
-  ef b==5:: if c==2:: CP(_chg_len,1.25) CB(80) ef c==3:: CP(_chg_len,1.1) CB(78) CB(72) fi
-  ef b==4:: CP(_chg_len,1.225) CB(105)
-  fi
+  CP(_jp_bond,s) CP(_rot_ang,180)
+  if b==6:: CP(_set_len,1) for i==1 upto c-1:: CB(60) endfor
+  ef b==5:: if c==2:: CP(_set_len,1.25) CB(80) ef c==3:: CP(_set_len,1.1) CB(78) CB(72) fi
+  ef b==4:: CP(_set_len,1.225) CB(105) fi
   CC(_len_e) if e<=0:: CP(_cyc_eB,e-c+1) else:: CP(_cyc_eB,e) fi
 enddef;
 %-------------------------------------------------------------------------------------------------
 def fuse_ring_size(expr a,b,c) =
-  CP(_jp_bond,a) CP(_rot_ang,180) CC(_len_s) CP(_chg_len,c DIV 10)
-  if b==5:: CB(72-((c-9) MUL 1.5)) CB(72+(c-9)) CB(72+(c-9))
-  ef b==6:: CB(60-(c-8)) for i==1 upto 3:: CB(60+((c-8) DIV 2)) endfor
-  fi
+  CP(_jp_bond,a) CP(_rot_ang,180) CP(_set_len,c)
+  if b==5:: CB(72-((10c-9) MUL 1.5)) CB(63+10c) CB(63+10c)
+  ef b==6:: CB(68-10c) for i==1 upto 3:: CB(60+(5c-4)) endfor fi
   CC(_len_e) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi
 enddef;
 %=================================================================================================
-vardef change_bond(expr a,b) =
-  save pY;
-  if known b:: pcode_cnt[Incr pcode_int]:=0;
-    if numeric b::
-      if (b>=si)and(b<=bd_)::
+vardef set_bond(expr a,b) =
+  pcode_cnt[Incr pcode_int]:=0;
+  if numeric b::
+    if (b>=si)and(b<=bd_)::
+      if a>=pcode_int_start::
+        for i==1 upto pcode_cnt[a]::
+          if pcode_x[a][i]==_numeric:: CA(_set_line,b,pcode_y[a][i])
+          elseif pcode_x[a][i]==_numeric_inv::
+            if b==dl:: CA(_set_line,dr,pcode_y[a][i])
+            ef b==dr:: CA(_set_line,dl,pcode_y[a][i]) fi
+          fi
+        endfor
+      else:: CP(_set_adr,a) CP(_set_line,b)
+      fi
+    ef (b>=?3)and(b<=Ph2)or(b>=pcode_int_start)::
+      if numeric a::
         if a>=pcode_int_start::
           for i==1 upto pcode_cnt[a]::
-            if pcode_x[a][i]==_numeric:: CA(_set_line,b,pcode_y[a][i])
-            elseif pcode_x[a][i]==_numeric_inv::
-              if b==dl:: CA(_set_line,dr,pcode_y[a][i])
-              ef b==dr:: CA(_set_line,dl,pcode_y[a][i]) fi
+            ay:=pcode_y[a][i];
+            if pcode_x[a][i]==_numeric::
+              if b==Ph1:: fuse_ring(ay,6) DL(-2) DL(-4)
+              ef b==Ph2:: fuse_ring(ay,6) DL(-1) DL(-3) DL(-5)
+              else:: fuse_ring(ay,b-?3+3)  fi
+            ef pcode_x[a][i]==_fuse_ext::
+              if b==?6:: FR(param_e[ay][1],param_e[ay][2],6,6-param_e[ay][3])
+              ef b==?5:: FR(param_e[ay][1],param_e[ay][2],5,5-param_e[ay][3])
+              ef b==?4:: FR(param_e[ay][1],param_e[ay][2],4,2)  fi
             fi
           endfor
-        else:: CP(_set_adr,a) CP(_set_line,b)
-        fi
-      elseif (b>=?3)and(b<=?6[15])::
-        if numeric a::
-          if a>=pcode_int_start::
-            for i==1 upto pcode_cnt[a]::
-              pY:=pcode_y[a][i];
-              if pcode_x[a][i]==_numeric::
-                if b==Ph1:: fuse_ring(pY,6) DL(-2) DL(-4)
-                ef b==Ph2:: fuse_ring(pY,6) DL(-1) DL(-3) DL(-5)
-                ef (b>=?5[11])and(b<=?6[15]):: fuse_ring_size(a,pcode_x[b][1],pcode_y[b][1])
-                else:: fuse_ring(pY,b-?3+3)
-                fi
-              ef pcode_x[a][i]==_fuse_ext::
-                if b==?6:: FR(param_e[pY][1],param_e[pY][2],6,6-param_e[pY][3])
-                ef b==?5:: FR(param_e[pY][1],param_e[pY][2],5,5-param_e[pY][3])
-                ef b==?4:: FR(param_e[pY][1],param_e[pY][2],4,2)
-                fi
-              fi
-            endfor
-          else::
-            if b==Ph1:: fuse_ring(a,6) DL(-2) DL(-4)
-            ef b==Ph2:: fuse_ring(a,6) DL(-1) DL(-3) DL(-5)
-            ef (b>=?5[11])and(b<=?6[15]):: fuse_ring_size(a,pcode_x[b][1],pcode_y[b][1])
-            else:: fuse_ring(a,b-?3+3) fi
+        else::
+          if b==Ph1:: fuse_ring(a,6) DL(-2) DL(-4)
+          ef b==Ph2:: fuse_ring(a,6) DL(-1) DL(-3) DL(-5)
+          ef b>=pcode_int_start::
+            if (pcode_x[b][1]==_set_len)and(pcode_x[b][2]>=?5)and(pcode_x[b][2]<=?6)::
+              fuse_ring_size(a,pcode_x[b][2]-?3+3,pcode_y[b][1])  fi
+          else:: fuse_ring(a,b-?3+3)
           fi
-        ef pair a::
-          if b==?6:: FR(param_e[ypart a][1],param_e[ypart a][2],6,6-param_e[ypart a][3])
-          ef b==?5:: FR(param_e[ypart a][1],param_e[ypart a][2],5,5-param_e[ypart a][3])
-          ef b==?4:: FR(xpart a,ypart a,4,2)
-          fi
         fi
+      ef pair a::
+        if b==?6:: FR(param_e[ypart a][1],param_e[ypart a][2],6,6-param_e[ypart a][3])
+        ef b==?5:: FR(param_e[ypart a][1],param_e[ypart a][2],5,5-param_e[ypart a][3])
+        ef b==?4:: FR(xpart a,ypart a,4,2)  fi
       fi
-    elseif color b:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorB,cntC,a) fi
-    pcode_int
-  fi
+      else:: message_unknown(block_cnt);
+    fi
+  elseif color b:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorB,cntC,a) fi
+  pcode_int
 enddef;
 %-------------------------------------------------------------------------------------------------
-vardef change_atom(expr a,b)=
-  if known b:: pcode_cnt[Incr pcode_int]:=pcnt:=0;
-    if numeric b::
-      if (b GT pcode_emb_start)and(b<=pcode_atm_end):: CA(_chg_atom,b,a)
-      ef b==NH::  CA(_chg_atom,N,a) if sw_expand==0:: CP(_tmp_line,nl) fi
-                  CC(_group_s) CA(_group_si,H,a) CC(_group_e)
-      ef b==N?::  CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,_,a) CC(_group_e)
-      ef b==N?2:: CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,!,a) CC(_group_e)
-      ef b==?O::  CC(_group_s) CA(_group_dm,O,a) CC(_group_e)
-      ef b==?NH:: CC(_group_s) CA(_group_dm,NH,a) CC(_group_e)
-      ef b==??::  CP(_tmp_rot, 35) CC(_group_s) CA(_group_si,_,a) CC(_group_e)
-                  CP(_tmp_rot,-35) CC(_group_s) CA(_group_si,_,a) CC(_group_e)
-      ef b==n_::  CC(_group_s) CP(_set_add,MIS) CP(_chg_add,a) CC(_group_e)
-      ef b==p_::  CC(_group_s) CP(_set_add,PLS) CP(_chg_add,a) CC(_group_e)
-      fi
-    ef pair b::
-      CC(_group_s)
-      if a>=pcode_emb_start::
-        for i==1 upto pcode_cnt[a]::
-          if pcode_x[a][i]==_numeric:: CA(xpart(b),ypart(b),pcode_y[a][i])
-          ef pcode_x[a][i]==_numeric_inv::
-            if xpart(b)==_group_wf:: CA(_group_zf,ypart(b),pcode_y[a][i])
-            ef xpart(b)==_group_zf:: CA(_group_wf,ypart(b),pcode_y[a][i])  fi
-          else:: CP(pcode_x[a][i],pcode_y[a][i])
+vardef set_atom(expr a,b)=
+  pcode_cnt[Incr pcode_int]:=pcnt:=f_type:=0;
+  if numeric b:: if (b>=?)and(b<=?dm):: bx:=pcode_x[b][1]; by:=pcode_y[b][1]; f_type:=1; fi
+  ef pair b:: bx:=xpart(b); by:=ypart(b); f_type:=1;
+  ef color b:: f_type:=2;
+  fi
+  if f_type==0::
+    if (b GT pcode_emb_start)and(b<=pcode_atm_end):: CA(_chg_atom,b,a)
+    ef b==NH::  CA(_chg_atom,N,a) if sw_expand==0:: CP(_tmp_line,nl) fi
+                CC(_group_s) CA(_group_si,H,a) CC(_group_e)
+    ef b==N?::  CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,NO_ATOM,a) CC(_group_e)
+    ef b==N?2:: CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,!,a) CC(_group_e)
+    ef b==?O::  CC(_group_s) CA(_group_dm,O,a) CC(_group_e)
+    ef b==?NH:: CC(_group_s) CA(_group_dm,NH,a) CC(_group_e)
+    ef b==??::  CP(_tmp_rot, 35) CC(_group_s) CA(_group_si,NO_ATOM,a) CC(_group_e)
+                CP(_tmp_rot,-35) CC(_group_s) CA(_group_si,NO_ATOM,a) CC(_group_e)
+    ef b==n_::  CC(_group_s) CP(_set_add,MIS) CP(_chg_add,a) CC(_group_e)
+    ef b==p_::  CC(_group_s) CP(_set_add,PLS) CP(_chg_add,a) CC(_group_e)
+    ef b==_nop:: message_unknown(block_cnt);
+    fi
+  ef f_type==1::
+    CC(_group_s)
+    if a>=pcode_emb_start::
+      for i==1 upto pcode_cnt[a]::
+        if pcode_x[a][i]==_numeric:: CA(bx,by,pcode_y[a][i])
+        ef pcode_x[a][i]==_numeric_inv::
+          if bx==_group_wf:: CA(_group_zf,by,pcode_y[a][i])
+          ef bx==_group_zf:: CA(_group_wf,by,pcode_y[a][i])
           fi
-        endfor
-      else:: CA(xpart(b),ypart(b),a) fi
-      CC(_group_e)
-    ef color b:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorA,cntC,a)
-    fi
-    pcode_cnt[pcode_int]:=pcode_cnt[pcode_int]; pcode_int
+        else:: CP(pcode_x[a][i],pcode_y[a][i])
+        fi
+      endfor
+    else:: CA(bx,by,a) fi
+    CC(_group_e)
+  ef f_type==2:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorA,cntC,a)
   fi
+  pcode_cnt[pcode_int]:=pcode_cnt[pcode_int]; pcode_int
 enddef;
 %-------------------------------------------------------------------------------------------------
-def pcode_add(expr c,p)= pcode_x[pcode_int][Incr pcode_cnt[pcode_int]]:=c;
-                         pcode_y[pcode_int][pcode_cnt[pcode_int]]:=p;
+def pcode_add(expr x,y)= pcode_x[pcode_int][Incr pcode_cnt[pcode_int]]:=x;
+                         pcode_y[pcode_int][pcode_cnt[pcode_int]]:=y;
 enddef;
-def pcode_add_adr(expr c,p,a)=
+%-------------------------------------------------------------------------------------------------
+def pcode_add_adr(expr x,y,a)=
   if a>=pcode_emb_start::
     for i==1 upto pcode_cnt[a]::
-      if pcode_x[a][i]==_numeric:: pcode_add(_set_adr,pcode_y[a][i]) pcode_add(c,p) 
+      if pcode_x[a][i]==_numeric:: pcode_add(_set_adr,pcode_y[a][i]) pcode_add(x,y) 
       else:: pcode_add(pcode_x[a][i],pcode_y[a][i])
       fi
     endfor
-  else:: pcode_add(_set_adr,a) pcode_add(c,p)
+  else:: pcode_add(_set_adr,a) pcode_add(x,y)
   fi
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -625,9 +623,9 @@
 %=================================================================================================
 def drawm(text t)=
   begingroup
-  save f_bra,temp_strA,temp_lenE,temp_lenF,temp_cntB,f_term,f_at,f_lineT,f_rotT,angL,lenL,cpos,
-       tpos,f_lenT,f_envT,factor,m_wd,m_ht,raise_pos,slen,sdir,char_wd,char_ht,tcol,f_col,knownA,
-       group_num,markA,markB,saveA,saveB,bondL,lenT,lineT,angT,rotT,envT,envB,rate_cr,posBs,posBe,
+  save f_bra,temp_strA,len_e_T,len_ee_T,temp_cntB,f_term,f_at,f_lineT,f_rotT,angL,lenL,cpos,tpos,
+       f_lenT,f_envT,factor,m_wd,m_ht,raise_pos,slen,sdir,char_wd,char_ht,tcol,f_col,
+       knownA,markA,markB,saveA,saveB,bondL,lenT,lineT,angT,rotT,envT,envB,rate_cr,posBs,posBe,
        group_par,group_cnt,group_com,colorA,colorB,aW,aH,fW,fH,hW,hW,hH,qH,fP,hP,ww,aw,ap,am,
        Ls,Le,pA,zA,zL;
   numeric group_com[][],group_par[][],group_cnt[],colorA[],colorB[];
@@ -641,7 +639,8 @@
   %===============================================================================================
   read_mcf(0)(t,(_com,_term));
   proc_bond_atom(0)(1);
-  if (group_num>0)and(not scan_bit(sw_abbreviate,Group)): expand_group(1); fi
+  backboneA:=cntA; backboneB:=cntB;
+  if (group_num>0)and(not scan_bit(sw_omit,Group)): expand_group(1); fi
   %-scaling---------------------------------------------------------------------------------------
   if     blength>1: blen:=blength;        proc_size_setup; proc_skeleton(0); proc_scaling;
   elseif blength>0: blen:=fig_wd*blength; proc_size_setup; proc_skeleton(0); proc_scaling;
@@ -654,10 +653,13 @@
       proc_skeleton(0); proc_scaling;
       if (mol_ht/mol_wd)>(m_ht/m_wd):
         if ypart(msize)>1: factor:=ypart(msize)/mol_ht;
-        else: factor:=((fig_ht-2ypart(fmargin))*ypart(msize))/mol_ht; fi
+        else: factor:=((fig_ht-2ypart(fmargin))*ypart(msize))/mol_ht;
+        fi
       else:
         if xpart(msize)>1: factor:=xpart(msize)/mol_wd;
-        else: factor:=((fig_wd-2xpart(fmargin))*xpart(msize))/mol_wd; fi fi
+        else: factor:=((fig_wd-2xpart(fmargin))*xpart(msize))/mol_wd;
+        fi
+      fi
       exitif (factor>=1-eps)and(factor<=1+eps); blen:=blen*factor; proc_size_setup;
     endfor
     if blen>max_blength: blen:=max_blength; proc_size_setup; proc_skeleton(0); proc_scaling; fi
@@ -685,27 +687,25 @@
     for i=1 upto cntB: if lineB[i]>=si_: draw_bond(i); fi endfor
     %-atom numbering------------------------------------------------------------------------------
     if scan_bit(sw_numbering,Atom):
-      for i=1 upto cntA:
-        if (i>=numbering_start)and(i<=numbering_end):
-          defaultscale:=.18blen/defaultsize; nH:=1.2defaultsize*defaultscale;
-          if i<=9: nW:=nH; ef i<=99: nW:=1.3nH; else: nW:=1.9nH; fi
-          erase fill unitsquare xscaled nW yscaled nH shifted (posA[i]-(nW/2,nH/2));
-          draw unitsquare xscaled nW yscaled nH shifted (posA[i]-(nW/2,nH/2)) wpcs 0.1;
-          label(decimal(i),posA[i]);
-        fi
+      if scan_bit(sw_numbering,All): numbering_end:=cntA; else: numbering_end:=backboneA; fi
+      for i=1 upto numbering_end:
+        defaultscale:=.2blen/defaultsize; nH:=1.2defaultsize*defaultscale;
+        if i<=9: nW:=nH; ef i<=99: nW:=1.3nH; else: nW:=1.9nH; fi
+        erase fill fullcircle xscaled 1.1nW yscaled 1.1nH shifted posA[i] wpcs 0.1;
+        draw fullcircle xscaled 1.1nW yscaled 1.1nH shifted posA[i] wpcs 0.1;
+        if numberfont="draw": draw_number(i,posA[i]); else: label(decimal(i),posA[i]); fi
       endfor
     fi
     %-bond numbering------------------------------------------------------------------------------
     if scan_bit(sw_numbering,Bond):
-      for i=1 upto cntB:
-        if (i>=numbering_start)and(i<=numbering_end):
-          defaultscale:=.18blen/defaultsize; nH:=1.2defaultsize*defaultscale;
-          if i<=9: nW:=nH; ef i<=99: nW:=1.3nH; else: nW:=1.9nH; fi
-          nH:=defaultsize*defaultscale; tpos:=.5[posA[sB[i]],posA[eB[i]]];
-          erase fill unitsquare xscaled nW yscaled nH shifted (tpos-(nW/2,nH/2));
-          draw unitsquare xscaled nW yscaled nH shifted (tpos-(nW/2,nH/2)) wpcs 0.1;
-          label(decimal(i),tpos);
-       fi
+      if scan_bit(sw_numbering,All): numbering_end:=cntB; else: numbering_end:=backboneB; fi
+      for i=1 upto numbering_end:
+        defaultscale:=.18blen/defaultsize; nH:=1.2defaultsize*defaultscale;
+        if i<=9: nW:=nH; ef i<=99: nW:=1.3nH; else: nW:=1.9nH; fi
+        nH:=defaultsize*defaultscale; tpos:=.5[posA[sB[i]],posA[eB[i]]];
+        erase fill unitsquare xscaled nW yscaled 1.05nH shifted (tpos-(nW/2,1.05nH/2));
+        draw unitsquare xscaled nW yscaled 1.05nH shifted (tpos-(nW/2,1.05nH/2)) wpcs 0.1;
+        if numberfont="draw": draw_number(i,tpos); else: label(decimal(i),tpos); fi
       endfor
     fi
     %---------------------------------------------------------------------------------------------
@@ -718,7 +718,7 @@
     mol_pic[cntM]:=currentpicture;
     clearit;
   fi
-  if sw_output>=Calc: proc_calc(0); fi
+  proc_calc(0);
   endgroup;
 enddef;
 %-------------------------------------------------------------------------------------------------
@@ -757,7 +757,7 @@
     if strA[i]<>0:
       nU:=nD:=nP:=nL:=nR:=0;
       for j=1 upto length(str_tbl[strA[i]]):
-        tempc:=subc(j,str_tbl[strA[i]]);
+        tempc:=substring(j-1,j) of str_tbl[strA[i]];
         if tempc="^": nU:=.5atom_wd; ef tempc="_": nD:=.5atom_wd;
         ef (tempc<>"{")and(tempc<>"}"): nP:=nP+atom_wd*tbl_char_wd[ASCII(tempc)];
         fi
@@ -776,8 +776,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def proc_bond_atom(expr a)(expr n)=
   f_bra:=f_term:=rotT:=f_lineT:=f_rotT:=f_lenT:=f_envT:=envT:=envB:=temp_strA:=f_at:=0;
-  bondL:=rate_cr; lenT:=rate_cr; sB[0]:=0; eB[0]:=1; lineT:=si;
-  addAT:=markA:=markB:=saveA:=saveB:=0;
+  addAT:=markA:=markB:=saveA:=saveB:=sB[0]:=0; bondL:=rate_cr; lenT:=rate_cr; eB[0]:=1; lineT:=si;
   %-----------------------------------------------------------------------------------------------
   for i=n upto pcode_cnt[a]: pX:=pcode_x[a][i]; pY:=pcode_y[a][i];
     if pX=_mk_bond: if (pY=0)and(rotT<>0): rotT:=0; fi add_atom(0);
@@ -786,12 +785,13 @@
                 ef pY=_rest: markA:=saveA; markB:=saveB;
                 ef pY=_moff: markA:=markB:=0;
                 ef pY=_term: termA;
-                ef pY=_len_s:  temp_lenE:=bondL; ef pY=_len_e:  bondL:=temp_lenE;
-                ef pY=_len_ss: temp_lenF:=bondL; ef pY=_len_ee: bondL:=temp_lenF;
+                ef pY=_len_s:  len_e_T:=bondL;  ef pY=_len_e:  bondL:=len_e_T;
+                ef pY=_len_ss: len_ee_T:=bondL; ef pY=_len_ee: bondL:=len_ee_T;
                 ef pY=_group_s: f_at:=1; if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi
                                 if lenT<>rate_cr: f_lenT:=1;  fi if envT<>hz: f_envT:=1; fi
-                ef pY=_group_e: f_at:=0; f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0;
-                                lineT:=si; lenT:=rate_cr; fi
+                ef pY=_group_e: f_at:=f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0;
+                                lineT:=si; lenT:=rate_cr;
+                fi
     ef pX=_set_atom: temp_strA:=pY;
     ef pX=_group_si: add_group(pY);
     ef pX=_group_dm: lineT:=dm; add_group(pY);
@@ -802,11 +802,13 @@
     ef pX=_jp_absA:  sB[cntB+1]:=pY; f_bra:=1; temp_cntB:=cntB;
     ef pX=_chg_atom: strA[getA(adrT)]:=pcode_y[pY][1];
     ef pX=_chg_len:  if pY=_ring_len: bondL:=ringL; else: bondL:=pY; fi
-    ef pX=_chg_slen: temp_lenE:=bondL; if pY=_ring_len: bondL:=ringL; else: bondL:=pY; fi
+    ef pX=_set_len:  len_e_T:=bondL; if pY=_ring_len: bondL:=ringL; else: bondL:=pY; fi
     ef pX=_get_len:  if pY=_tmp_len: if bondL=rate_cr: bondL:=lenT; fi
                      ef pY=_ring_len:
-                       if lenT<>rate_cr: bondL:=lenT; else: if bondL<0: bondL:=1; fi fi
-                     else: ringL:=lenB[getB(pY)]; fi
+                       if lenT<>rate_cr: bondL:=lenT; else: if bondL<0: bondL:=1; fi
+                     fi
+                     else: ringL:=lenB[getB(pY)];
+                     fi
     ef pX=_tmp_len:  lenT:=pY;
     ef pX=_set_line: lineB[getB(adrT)]:=pY;
     ef pX=_tmp_line: lineT:=pY;
@@ -826,8 +828,8 @@
 enddef;
 %-------------------------------------------------------------------------------------------------
 def add_group(expr n)=
-  if f_at=1: nE:=getA(adrT); check_adrA(nE); else: nE:=cntA+1; fi
-  group_cnt[incr group_num]:=0; store_group(_jp_absA,nE)
+  if f_at=1: nA:=getA(adrT); check_adrA(nA); else: nA:=cntA+1; fi
+  group_cnt[incr group_num]:=0; store_group(_jp_absA,nA)
   store_group(_com,_mark)
   store_group(_com,_len_s)
   if lineT<>nb: store_group(_tmp_line,lineT) fi
@@ -858,7 +860,8 @@
   if f_bra=0: strA[incr cntA]:=temp_strA; sB[cntB]:=cntA;
               addA[cntA]:=addAT; addAT:=temp_strA:=add_rot[cntA]:=0;
               if rotT<>0: add_rot[cntA]:=rotT; rotT:=0; fi
-  else: f_bra:=0; fi
+  else: f_bra:=0;
+  fi
   if n=0: eB[cntB]:=cntA+1; f_term:=0; else: eB[cntB]:=n; f_term:=1; fi
 enddef;
 %-------------------------------------------------------------------------------------------------
@@ -867,9 +870,8 @@
 def check_adrB(expr n)= if (n>cntB)or(n<=0): errmessage("cntB=[ "&decimal(n)&" ]"); fi enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def proc_skeleton(expr n)=
-  markA:=markB:=cntA:=cntB:=f_bra:=rotT:=f_term:=0;
-  envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0; lineT:=si; angT:=mangle;
-  angA[0]:=angB[0]:=angX[0]:=0; posA[0]:=posBs:=posBe:=(0,0);
+  markA:=markB:=cntA:=cntB:=f_bra:=rotT:=f_term:=envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0;
+  angA[0]:=angB[0]:=angX[0]:=0; lineT:=si; angT:=mangle; posA[0]:=posBs:=posBe:=(0,0);
   %-----------------------------------------------------------------------------------------------
   for i=1 upto pcode_cnt[n]: pX:=pcode_x[n][i]; pY:=pcode_y[n][i];
     if pX=_mk_bond: if (pY=0)and(rotT<>0):pY:=rotT; rotT:=0; fi add_bond(pY,1);
@@ -903,23 +905,27 @@
   cntB:=cntB+1;
   if nA>-3700: angB[cntB]:=angT:=(angT+nA) mod 360; else: angB[cntB]:=angT:=nA+4095; fi
   if f=1:
-    if lenB[cntB]=_size_atom: posBe:=sfrt(posBs,atom_wd,angT);
+    if lenB[cntB]=_size_atom: posBe:=sfrt(posBs,1.12atom_wd,angT);
     else:
       nA:=lenB[cntB]; if nA<0: nB:=glu_atom(adrT)+glu_atom(cntA+1); nA:=abs(nA); else: nB:=0; fi
       posBe:=sfrt(posBs,nA*blen+nB,angT); fi
     posA[cntA+1]:=posBe; f_term:=0;
-  else: f_term:=1; fi
+  else: f_term:=1;
+  fi
   posBs:=posBe;
 enddef;
 %-------------------------------------------------------------------------------------------------
 vardef arrange_ang(expr n)=
-  if cntB=0: angT:=(angT-180) mod 360; 180
-  else: if envB>=pcode_emb_start: pcode_y[envB][cntB-temp_cntB]
-        else: if envB=hz: if n=0:  60 ef n<=90: -60 ef n<=180:  60 ef n<270: -60 else:  60 fi
-              ef envB=vt: if n=0: -60 ef n<90:   60 ef n<=180: -60 ef n<=270: 60 else: -60 fi
-              ef abs(envB)<=180: envB
-              fi
-        fi
+  if f_bra=1: 0
+  else:
+    if cntB=0: angT:=(angT-180) mod 360; 180
+    else: if envB>=pcode_emb_start: pcode_y[envB][cntB-temp_cntB]
+          else: if envB=hz: if n=0:  60 ef n<=90: -60 ef n<=180:  60 ef n<270: -60 else:  60 fi
+                ef envB=vt: if n=0: -60 ef n<90:   60 ef n<=180: -60 ef n<=270: 60 else: -60 fi
+                ef abs(envB)<=180: envB
+                fi
+          fi
+    fi
   fi
 enddef;
 %-------------------------------------------------------------------------------------------------
@@ -941,19 +947,25 @@
 def termB= if f_term=0: if f_bra=0: angX[incr cntA]:=angT; else:f_bra:=0; fi f_term:=1; fi enddef;
 %-------------------------------------------------------------------------------------------------
 vardef glu_atom(expr n)=
- if strA[n]<>0: nE:=angT mod 90; nF:=0.5atom_wd; (iif(nE<45,sind nE,cosd nE)*nF)+++nF else: 0 fi
+  save squ_a,hwd,glu_n;
+  if strA[n]<>0:
+    squ_a:=angT mod 90; hwd:=0.5atom_wd; glu_n:=(iif(squ_a<45,sind squ_a,cosd squ_a)*hwd)+++hwd;
+    glu_n
+  else: 0
+  fi
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def draw_atom(expr n)=
   if atomfont<>"draw": defaultfont:=atomfont; defaultsize:=atom_wd; fi
-  temps:=str_tbl[strA[n]]; slen:=length(temps); nC:=nS:=0; raise_pos:=(0,0); tpos:=posA[n];
+  atom_s:=str_tbl[strA[n]]; slen:=length(atom_s); nC:=nS:=0; raise_pos:=(0,0); tpos:=posA[n];
   if (angX[n]<=90)or(angX[n]>=270): sdir:=1; else: sdir:=-1; fi
   for i=1 upto slen:
-    if nC=0: tempc:=subc(i,temps);
+    if nC=0: tempc:=substring(i-1,i) of atom_s;
       if (sdir=-1)and(tempc="{"):
-        nD:=i; nC:=0; for j=nD upto slen: nC:=nC+1; exitif subc(j+1,temps)="}"; endfor
+        nD:=i; nC:=0; for j=nD upto slen: nC:=nC+1; exitif substring(j,j+1) of atom_s="}"; endfor
       fi
-      else: nC:=nC-1; tempc:=subc(nD+nC,temps); fi
+    else: nC:=nC-1; tempc:=substring(nD+nC-1,nD+nC) of atom_s;
+    fi
     if tempc="_": raise_pos:=iif(raise_pos=(0,0),(0,-.5atom_wd),(0,0));
     ef tempc="^": raise_pos:=iif(raise_pos=(0,0),(0, .5atom_wd),(0,0));
     ef (tempc<>"{")and(tempc<>"}"):
@@ -973,6 +985,18 @@
   fi
   if scan_bit(sw_frame,Atom): draw frameA[n] wpcs thickness_frame; fi
 enddef;
+%-------------------------------------------------------------------------------------------------
+def draw_number(expr n,p)=
+  begingroup
+  save atom_wd,bond_pen_wd,slen,spos;
+  pair spos;
+  atom_wd:=.18blen; bond_pen_wd:=.012blen; temps:=decimal(n); slen:=length(temps); spos:=p;
+  for i=1 upto slen:
+    if i=1: spos:=spos-(slen*.35atom_wd-.35atom_wd,0); else: spos:=spos+(0.73atom_wd,0); fi 
+    draw_char(substring(i-1,i) of temps,spos);
+  endfor
+  endgroup
+enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def draw_bond(expr n)=
   nL:=lineB[n]; angL:=angB[n]; nS:=sB[n]; nE:=eB[n]; f_col:=0;
@@ -982,12 +1006,13 @@
                  Ls:=posA[nS];          Le:=posA[nE];          pA:=(.1,.9);
   ef strA[nS]=0: Ls:=posA[nS];          Le:=zL ISP frameA[nE]; pA:=(.15,1);
   ef strA[nE]=0: Ls:=zL ISP frameA[nS]; Le:=posA[nE];          pA:=(0,.85);
-  else:          Ls:=zL ISP frameA[nS]; Le:=zL ISP frameA[nE]; pA:=(0,1); fi
+  else:          Ls:=zL ISP frameA[nS]; Le:=zL ISP frameA[nE]; pA:=(0,1);
+  fi
   zA:=Ls--Le; lenL:=length(Le-Ls);
   %-----------------------------------------------------------------------------------------------
   if known tcol: if tcol<>0: drawoptions(withcolor color_list[tcol]); f_col:=1;fi fi
   pickup pencircle scaled bond_pen_wd;
-  if (nL=si)or(scan_bit(sw_abbreviate,Bond)): draw zA;
+  if (nL=si)or(scan_bit(sw_omit,Bond)): draw zA;
   ef nL=dl: draw zA; draw sfrt(subpath pA of zA,bondgap,ap);
   ef nL=dr: draw zA; draw sfrt(subpath pA of zA,bondgap,am);
   ef nL=dm: draw sfrt(zA,bondgap/1.75,ap); draw sfrt(zA,bondgap/1.75,am);
@@ -1042,25 +1067,30 @@
   ef nL=arc_ltr: draw posA[nS]+(0,iif(strA[nS]=0,0,0.6aw))--posA[nS]+(0,.8aw)
                       ..0.5[posA[nS],posA[nE]]+(0,1.7aw)..posA[nE]+(0,.8aw)
                       --posA[nE]+(0,iif(strA[nE]=0,0,.6aw));
-  %----------------------------------------------------------------------------------------------
   fi
   if f_col=1: drawoptions(); fi
 enddef;
 %------------------------------------------------------------------------------------------------
-def wz_put(expr a,b,c)=  nB:=round(lenL/hash_gap);
-  for i=1 upto nB: nA:=i/nB; if i=1: nD:=0; else: nD:=(i-ratio_hash_black)/nB; fi
+def wz_put(expr a,b,c)=
+  nB:=round(lenL/hash_gap);
+  for i=1 upto nB:
+    nA:=i/nB; if i=1: nD:=0; else: nD:=(i-ratio_hash_black)/nB; fi
     fill nD[a,b]--nD[a,c]--nA[a,c]--nA[a,b]--cycle;
   endfor
 enddef;
 %------------------------------------------------------------------------------------------------
-def bz_put(expr a,b,c,d)=  nB:=round(lenL/hash_gap);
-  for i=0 upto nB-1: nA:=i/nB; nD:=nA+ratio_hash_black/nB;
+def bz_put(expr a,b,c,d)=
+  nB:=round(lenL/hash_gap);
+  for i=0 upto nB-1:
+    nA:=i/nB; nD:=nA+ratio_hash_black/nB;
     fill nA[b,a]--nA[d,c]--nD[d,c]--nD[b,a]--cycle;
   endfor
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def char_size_set(expr w,h)(expr s)=
-  for j=1 upto length(s): nN:=ASCII(subc(j,s)); tbl_char_wd[nN]:=w; tbl_char_ht[nN]:=h; endfor
+  for j=1 upto length(s):
+    nA:=ASCII(substring(j-1,j) of s); tbl_char_wd[nA]:=w; tbl_char_ht[nA]:=h;
+  endfor
 enddef;
 %-------------------------------------------------------------------------------------------------
 char_size_set(   1,   1)("CGHMNOQW");
@@ -1099,7 +1129,7 @@
   aW:=atom_wd*tbl_char_wd[ASCII(s)]*(1-2ratio_atomgap_atom);
   aH:=atom_wd*tbl_char_ht[ASCII(s)]*(1-2ratio_atomgap_atom);
   cpos:=p-(aW/2,atom_wd/2*(1-2ratio_atomgap_atom));
-  fP:=bond_pen_wd*ratio_char_bond;
+  fP:=atom_wd*ratio_char_atom;
   hP:=fP/2; qP:=fP/4; fW:=aW-hP; hW:=aW/2; fH:=aH-hP; hH:=aH/2; qH:=aH/4;
   %-----------------------------------------------------------------------------------------------
   pickup pencircle scaled fP;
@@ -1108,12 +1138,13 @@
   ef s="O":  dw circ_O;
   ef s="N":  dwv Z_b--Z_w; dwv Z_e--Z_t; dwvs(1.4)(1.4hP,aH)--(aW-1.4hP,0);
   ef s="S":  cdw sbp(.05,.45)circ_O; cdw sbp(.55,.95)circ_O; dw (fW,.3aH){up}..{up}(hP,.7aH);
-  ef s="F":  dwh Z_q--Z_u; dwh (0,.45aH)--(fW,.45aH); dw Z_b--Z_r;
+  ef s="F":  dwh Z_q--Z_u; dwh (.1hP,.48aH)--(fW-hP,.48aH); dwv Z_b--Z_r;
   ef s="P":  dwv Z_b--Z_w; dw Z_r--(.65aW,fH){right}..(fW,.7aH)..{left}(.65aW,.44aH)..(hP,.44aH);
   ef s="I": dwv Z_x--Z_s; dwh (hW-fP,hP)--(hW+fP,hP); dwh (hW-fP,fH)--(hW+fP,fH);
   ef s="l": dwv Z_g--Z_f; dwh Z_s--Z_r; dwh Z_x--Z_z;
   ef s="2": cdw (hP,1.3hP)..(.4fW,.35fH)..(fW,.65aH)..Z_s..(hP,.65aH); dwh Z_d--Z_a;
-  ef s="3": cdw sbp(0,.75)circ_Oh; cdw sbp(.25,.98)circ_Oh shifted (0,hH-hP); dwh (.3aW,hH)--Z_y;
+  ef s="3": cdw sbp(0,.75)circ_Oh; cdw sbp(.25,.95)circ_Oh shifted (0,hH-hP);
+            dwh (.3aW,hH)--(.7aW,hH);
   ef s="4": dwh Z_j--Z_k; dwv Z_l--(0.75aW,aH)--(1.2hP,qH+hP); dwv (.75aW+qP,aH)--(1.7hP,qH+hP);
   ef s="-": dwh Z_m--Z_o;
   ef s="+": dwv Z_x--Z_s; dwh Z_m--Z_o;
@@ -1165,8 +1196,8 @@
   ef s="z": dwh Z_q--Z_u; dwvs(1.4)(1.4hP,fP)--(aW-1.4hP,aH-fP); dwh Z_a--Z_d;
   ef s="0": dw Z_m...Z_s...Z_o...Z_x...cycle;
   ef s="1": dwv Z_g--(hW,aH-.3hP)--(hW-fP,aH-fP)--(hW-fP,aH-1.5fP);
-  ef s="5": dwh Z_q--Z_u; dwv Z_r--(hP,.55fH);
-            cdw (qP,.18aH)..(.65aW,1.3hP)..(fW,.4aH)..(hW,.63aH)..(.7hP,.56aH);
+  ef s="5": dwh Z_q--Z_u-(hP,0); dwv Z_r--(hP,.55fH);
+            cdw (qP,.25aH)..(.65aW,1.3hP)..(fW,.4aH)..(hW,.63aH)..(.7hP,.56aH);
   ef s="6": dw Z_x..(fW,.5fW)..Z_i..(hP,.5fW)..cycle; cdw (.8fP,hH)--Z_f;
   ef s="7": dwh (0,.fH)--Z_u; dwvs(1.2)(aW-1.2hP,aH-fP)--(.4aW,0);
   ef s="8": dw circ_Oh; dw (hP,.75aH)...Z_s...(fW,.75aH)...Z_y...cycle;
@@ -1175,29 +1206,37 @@
   fi
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-def warning_bond(expr a)=
+def warn_valence(expr a)=
   if addA[a]=0:
-    warning("A"&decimal(a)&" ( "&fsl(8)(str_tbl[strA[a]])&") has"&fdr(2)(bond_cntA)&" bonds");
+    warning_s[incr warning_cnt]:="!Strange valence "&str_tbl[strA[a]]&"(A"&decimal(a)&") has"&
+                                 fdr(2)(bond_cntA)&" bonds";
+    message "["&decimal(fig_num)&"]"&warning_s[warning_cnt]; message "";
   fi
 enddef;
 %-------------------------------------------------------------------------------------------------
 vardef erase_char(expr s)=
-  sS:="";
-  if (length(s)>=4)and(s<>"COOH"):
-    for i=1 upto length(s): sC:=subc(i,s); if scan_c(sC,"{}_^+")=0: sS:=sS&sC; fi endfor sS
+  temps:=""; nA:=length(s);
+  if (nA>=4)and(s<>"COOH"):
+    for i=1 upto nA:
+      tempc:=substring(i-1,i) of s;
+      if scan_c(tempc,"{}_^+")=0: temps:=temps&tempc; fi
+    endfor
+    temps
   else: s
   fi
 enddef;
 %-------------------------------------------------------------------------------------------------
-vardef forbidden_to_underbar(expr t)=  sS:="";
-  for i=1 upto length(t):
-    sC:=subc(i,t); if scan_c(sC,forbiddens)>0: sS:=sS&"_"; else: sS:=sS&sC; fi
+vardef forbidden_to_underbar(expr s)=
+  temps:=""; nA:=length(s);
+  for i=1 upto nA:
+    tempc:=substring(i-1,i) of s;
+    if scan_c(tempc,forbiddens)>0: temps:=temps&"_"; else: temps:=temps&tempc; fi
   endfor
-  sS
+  temps
 enddef;
 %=================================================================================================
 def proc_calc(expr n)=
-  MW_n:=MI_n:=tbl_atom_max:=warning_cnt:=hideH_cnt:=0; nE:=pcode_emb_start;
+  MW_n:=MI_n:=tbl_atom_max:=warning_cnt:=hideH_cnt:=0; nA:=pcode_emb_start;
   for i=1 upto tbl_atom_end: sumA[i]:=0; endfor
   for i=1 upto cntA:
     knownA:=bond_cntA:=0; nS:=strA[i];
@@ -1206,23 +1245,23 @@
       if (sB[j]=i)or(eB[j]=i): bond_cntA:=bond_cntA+bond_num[j]; fi
     endfor
     Bcnt[i]:=bond_cntA;
-    if ((nS=0)or(nS=(C-nE)))and(bond_cntA<4):
+    if ((nS=0)or(nS=(C-nA)))and(bond_cntA<4):
       hideH[i]:=4-bond_cntA; hideH_cnt:=hideH_cnt+hideH[i]; else: hideH[i]:=0;
     fi
-    if nS=0:         if bond_cntA>4:  warning_bond(i) fi
-    ef nS=(O-nE):    if bond_cntA<>2: warning_bond(i) fi
-    ef nS=(N-nE):    if (bond_cntA<>3)and(bond_cntA<>5): warning_bond(i) fi
-    ef nS=(S-nE):    if (bond_cntA<>2)and(bond_cntA<>4)and(bond_cntA<>6): warning_bond(i) fi
-    ef nS=(H-nE):    if bond_cntA<>1: warning_bond(i) fi
-    ef nS=(OH-nE):   if bond_cntA<>1: warning_bond(i) fi
-    ef nS=(COOH-nE): if bond_cntA<>1: warning_bond(i) fi
-    ef nS=(NH2-nE):  if bond_cntA<>1: warning_bond(i) fi
-    ef nS=(CN-nE):   if bond_cntA<>1: warning_bond(i) fi
-    ef nS=(P-nE):    if bond_cntA<>5: warning_bond(i) fi
-    ef nS=(C-nE):    if bond_cntA>4:  warning_bond(i) fi
-    ef nS=(F-nE):    if bond_cntA<>1: warning_bond(i) fi
-    ef nS=(Cl-nE):   if bond_cntA<>1: warning_bond(i) fi
-    ef nS=(Br-nE):   if bond_cntA<>1: warning_bond(i) fi
+    if nS=0:         if bond_cntA>4:  warn_valence(i) fi
+    ef nS=(O-nA):    if bond_cntA<>2: warn_valence(i) fi
+    ef nS=(N-nA):    if (bond_cntA<>3)and(bond_cntA<>5): warn_valence(i) fi
+    ef nS=(S-nA):    if (bond_cntA<>2)and(bond_cntA<>4)and(bond_cntA<>6): warn_valence(i) fi
+    ef nS=(H-nA):    if bond_cntA<>1: warn_valence(i) fi
+    ef nS=(OH-nA):   if bond_cntA<>1: warn_valence(i) fi
+    ef nS=(COOH-nA): if bond_cntA<>1: warn_valence(i) fi
+    ef nS=(NH2-nA):  if bond_cntA<>1: warn_valence(i) fi
+    ef nS=(CN-nA):   if bond_cntA<>1: warn_valence(i) fi
+    ef nS=(P-nA):    if bond_cntA<>5: warn_valence(i) fi
+    ef nS=(C-nA):    if bond_cntA>4:  warn_valence(i) fi
+    ef nS=(F-nA):    if bond_cntA<>1: warn_valence(i) fi
+    ef nS=(Cl-nA):   if bond_cntA<>1: warn_valence(i) fi
+    ef nS=(Br-nA):   if bond_cntA<>1: warn_valence(i) fi
     fi
     for j=1 upto tbl_group_end:
       if str_tbl[nS]=tbl_atom_str[j]:
@@ -1237,7 +1276,7 @@
       fi
       exitif knownA=1;
     endfor
-    if knownA=0: warning(" Unknown Str("&str_tbl[strA[i]]&") is used "&decimal(i)); fi
+    if knownA=0: message " Unknown Str("&str_tbl[strA[i]]&") is used "&decimal(i); fi
   endfor
   %-------------------------------------------------------------------------------------
   sumA[2]:=sumA[2]+hideH_cnt; if (tbl_atom_max=1)and(sumA[2]>0): tbl_atom_max:=2; fi
@@ -1251,56 +1290,58 @@
 enddef;
 %=================================================================================================
 def proc_report_out=
+  block_cnt_s:=split_str(mc,",")(block_s);
   file_output:=jobname&"-report.txt";
-  printf "===========================================================================";
-  printf " No["&decimal(fig_num)&"],Name<"& EN&">,Category<"&CAT&">,File<"&file_input&">";
-  printf "---------------------------------------------------------------------------";
-  for i=1 upto mc_row: printf (substring(0,mc_indent[i]) of blanks)&mc[i]; endfor
-  printf "---------------------------------------------------------------------------";
-  printf " Row["&decimal(mc_row)&"],Length["&decimal(length(mc))&"],Block"&
-         "["&decimal(block_cnt+1)&"]"&",Code pair["&decimal(pcode_cnt[0])&
-         "],Warning["&decimal(warning_cnt)&"]";
-  printf "---------------------------------------------------------------------------";
-  printf "" for i=EQU,CLN,QES,AMK,AMP,HSH,GTN,BAR,QUT,TLD,HAT,BQT,LTN:
-              if tbl_asc[i]>=1: &" "&char(i)&"["&decimal(tbl_asc[i])&"]" fi
-            endfor ;
-  printf "---------------------------------------------------------------------------";
-  printf " Width["&fdr(8)(mol_wd)&"],Height["&fdr(8)(mol_ht)&"],"&
+  puts "===========================================================================";
+  puts " No["&decimal(fig_num)&"],Name<"& EN&">,Category<"&CAT&">,File<"&file_input&">";
+  puts "---------------------------------------------------------------------------";
+  puts " Row["&decimal(mc_row)&"],Length["&decimal(length(mc))&"],Block"&
+         "["&decimal(block_cnt_s)&"]"&",BackboneA["&decimal(backboneA)&"]"&
+         ",BackboneB["&decimal(backboneB)&"]"&",Group["&decimal(group_num)&"]";
+  puts "---------------------------------------------------------------------------";
+  for i=1 upto mc_row: puts (substring(0,mc_indent[i]) of blanks)&mc[i]; endfor
+  puts "---------------------------------------------------------------------------";
+  for i=1 upto block_cnt_s: puts "["&fdl(3)(i)&"]  "&block_s[i]; endfor
+  puts "- unknown and warning -----------------------------------------------------";
+  for i=1 upto unknown_cnt: puts unknown_s[i]; endfor
+  for i=1 upto warning_cnt: puts warning_s[i]; endfor
+  puts "---------------------------------------------------------------------------";
+  puts " Width["&fdr(8)(mol_wd)&"],Height["&fdr(8)(mol_ht)&"],"&
          " Shift x["& fdr(8)(minX)&"],Shift y["&fdr(8)(minY)&"]";
-  printf " Bond length["&fdr(8)(blen)&"],Atom size["&fdr(8)(atom_wd)&"]";
-  printf "---------------------------------------------------------------------------";
-  printf " Atom["&decimal(cntA)&"],Bond["&decimal(cntB)&
+  puts " Bond length["&fdr(8)(blen)&"],Atom size["&fdr(8)(atom_wd)&"]";
+  puts "---------------------------------------------------------------------------";
+  puts " Atom["&decimal(cntA)&"],Bond["&decimal(cntB)&
          "],Ring["&decimal(cntB-cntA+1)&"],Hide H["&decimal(hideH_cnt)&"]";
-  printf "< NO. ><atom(s) >(  x axis   ,   y axis   )<bond><hideH><chg>";
+  puts "< NO. ><atom(s) >(  x axis   ,   y axis   )<bond><hideH><chg>";
   for i=1 upto cntA:
-    printf " A"&fdl(6)(i)&fsl(8)(erase_char(str_tbl[strA[i]]))&
+    puts " A"&fdl(6)(i)&fsl(8)(erase_char(str_tbl[strA[i]]))&
            " ("&fdr(10)(round(xpart(posA[i])/blen))&" , "&
             fdr(10)(round(ypart(posA[i])/blen))&" ) "&fdr(4)(Bcnt[i])&
             iif(hideH[i]>0,fdr(6)(hideH[i]),"        ") if chargeA[i]<>0: &fdr(4)(chargeA[i]) fi;
   endfor
-  printf "---------------------------------------------------------------------------";
-  printf "< NO. ><  bond   (sdt)><angle +(  +-  )><length (   pt   )>";
+  puts "---------------------------------------------------------------------------";
+  puts "< NO. ><  bond   (sdt)><angle +(  +-  )><length (   pt   )>";
   for i=1 upto cntB:
     nC:=lenB[i]; if nC=_size_atom: nC:=ratio_atom_bond; elseif nC<0: nC:=-nC; fi
     nB:=angB[i]; if nB>180: nB:=nB-360; fi
-    printf " B"&fdl(4)(i)&fdr(3)(sB[i])&" -> "&fdr(3)(eB[i])&
+    puts " B"&fdl(4)(i)&fdr(3)(sB[i])&" -> "&fdr(3)(eB[i])&
            " ("&fdr(3)(bond_num[i])&")"&fdr(8)(round(angB[i]))&
            " ("&fdr(6)(round(nB))&")"&fdr(8)(nC)&" ("&fdr(8)(round(nC*blen))&")";
   endfor
-  printf "---------------------------------------------------------------------------";
-  printf "<atom>( atom wt )[ mi wt   ]  < cnt > < sum wt   >[ sum mi wt  ]";
+  puts "---------------------------------------------------------------------------";
+  puts "<atom>( atom wt )[ mi wt   ]  < cnt > < sum wt   >[ sum mi wt  ]";
   for i=1 upto tbl_atom_max:
     if sumA[i]>=1:
-      printf " "&fsl(5)(erase_char(tbl_atom_str[i]))&
+      puts " "&fsl(5)(erase_char(tbl_atom_str[i]))&
         "("&fdr(9)(tbl_atom_wt[i])&")"&"["&fdr(9)(tbl_atom_mi[i])&"]"&" * "&fdr(8)(sumA[i])
         &"    "&fdr(7)(tbl_atom_wt[i]*sumA[i])&"["&fdr(12)(tbl_atom_mi[i]*sumA[i])&"]";
     fi
   endfor
-  printf " Molecular Weight [Mono Isotopic] =   "&fsr(12)(mw)&"["&fsr(12)(MI)&"]";
-  printf "---------------------------------------------------------------------------";
-  printf " Weight Calc: "&mw if MW<>"-": &" - Input: "&MW&" = "&fdr(9)(MW_n-scantokens(MW)) fi;
-  printf " Fomula Calc: "&fm if FM<>"-": &" "&iif(fm=FM,"=","<>")&" Input: "&FM fi;
-  printf "===========================================================================";
+  puts " Molecular Weight [Mono Isotopic] =   "&fsr(12)(mw)&"["&fsr(12)(MI)&"]";
+  puts "---------------------------------------------------------------------------";
+  puts " Weight Calc: "&mw if MW<>"-": &" - Input: "&MW&" = "&fdr(9)(MW_n-scantokens(MW)) fi;
+  puts " Fomula Calc: "&fm if FM<>"-": &" "&iif(fm=FM,"=","<>")&" Data: "&FM fi;
+  puts "===========================================================================";
 enddef;
 %=================================================================================================
 def proc_mol_out(expr n)=
@@ -1308,54 +1349,54 @@
   file_output:="m"&fit_zero(fig_num)&"-"&EN_&".mol";
   %-V2000---------------------------------------------------------------------------------------
   if n=2000:
-    printf ""; printf "  -MCFtoMOL- "&fsl(20)(EN); printf "";
-    printf fdr(3)(cntA)&fdr(3)(cntB)&"  0  0  0  0  0  0  0  0999 V2000";
+    puts ""; puts "  -MCFtoMOL- "&fsl(20)(EN); puts "";
+    puts fdr(3)(cntA)&fdr(3)(cntB)&"  0  0  0  0  0  0  0  0999 V2000";
     for i=1 upto cntA:
-      printf fdr(10)(xpart(posA[i])/blen)& fdr(10)(ypart(posA[i])/blen)&fdr(10)(0)&" "&
+      puts fdr(10)(xpart(posA[i])/blen)& fdr(10)(ypart(posA[i])/blen)&fdr(10)(0)&" "&
              fsl(2)(erase_char(str_tbl[strA[i]]))&"  0"&fdr(3)(bond_charge(chargeA[i]))&"  0  0";
     endfor
     for i=1 upto cntB:
-      if lineB[i]<>0: printf fdr(3)(sB[i])&fdr(3)(eB[i])&fdr(3)(bond_type(lineB[i]))&
+      if lineB[i]<>0: puts fdr(3)(sB[i])&fdr(3)(eB[i])&fdr(3)(bond_type(lineB[i]))&
                       fdr(3)(bond_stereo(lineB[i]))&"     0  0";
       fi
     endfor
-    printf "M  END";
+    puts "M  END";
   %-V3000---------------------------------------------------------------------------------------
   elseif n=3000:
-    printf ""; printf "  -MCFtoMOL- "&fsl(20)(EN); printf "";
-    printf "  0  0  0  0  0  0  0  0  0  0  0 V3000"; 
-    printf "M  V30 BEGIN CTAB";
-    printf "M  V30 COUNTS "&decimal(cntA)&" "&decimal(cntB)&" 0 0 0";
-    printf "M  V30 BEGIN ATOM";
+    puts ""; puts "  -MCFtoMOL- "&fsl(20)(EN); puts "";
+    puts "  0  0  0  0  0  0  0  0  0  0  0 V3000"; 
+    puts "M  V30 BEGIN CTAB";
+    puts "M  V30 COUNTS "&decimal(cntA)&" "&decimal(cntB)&" 0 0 0";
+    puts "M  V30 BEGIN ATOM";
     for i=1 upto cntA:
-      printf "M  V30 "&decimal(i)&" "&erase_char(str_tbl[strA[i]])&" "&
+      puts "M  V30 "&decimal(i)&" "&erase_char(str_tbl[strA[i]])&" "&
              decimal(xpart(posA[i])/blen)&" "&decimal(ypart(posA[i])/blen)&" 0 0"
              if chargeA[i]<>0: &" CHG="&decimal(chargeA[i]) fi;
     endfor
-    printf "M  V30 END ATOM"; printf "M  V30 BEGIN BOND";
+    puts "M  V30 END ATOM"; puts "M  V30 BEGIN BOND";
     for i=1 upto cntB:
       if lineB[i]<>0:
-        printf "M  V30 "&decimal(i)&" "&decimal(bond_type(lineB[i]))&
+        puts "M  V30 "&decimal(i)&" "&decimal(bond_type(lineB[i]))&
                " "&decimal(sB[i])&" "&decimal(eB[i])
                if bond_stereo(lineB[i])<>0: &" CFG="&decimal(bond_config(lineB[i])) fi;
       fi
     endfor
-    printf "M  V30 END BOND"; printf "M  V30 END CTAB"; printf "M  END"; fi
+    puts "M  V30 END BOND"; puts "M  V30 END CTAB"; puts "M  END"; fi
 enddef;
 %=================================================================================================
 def proc_mc_out=
   file_output:="temp-mc.aux";
   if mc_length<100:
-    nN:=split_str(mc,",")(arg_s); nA:=0; temps:="";
-    for i=1 upto nN:
-      if i=nN: temps:=temps&arg_s[i]; printf temps;
-      ef at_char[i+1]-nA>mc_length: nA:=at_char[i]; printf temps&arg_s[i]&","; temps:="";
+    nB:=split_str(mc,",")(arg_s); nA:=0; temps:="";
+    for i=1 upto nB:
+      if i=nB: temps:=temps&arg_s[i]; puts temps;
+      ef at_char[i+1]-nA>mc_length: nA:=at_char[i]; puts temps&arg_s[i]&","; temps:="";
       else: temps:=temps&arg_s[i]&",";
       fi
     endfor
-  else: for i=1 upto mc_row: printf (substring(0,mc_indent[i]) of blanks)&mc[i]; endfor
+  else: for i=1 upto mc_row: puts (substring(0,mc_indent[i]) of blanks)&mc[i]; endfor
   fi
-  printf EOF;
+  puts EOF;
 enddef;
 %=================================================================================================
 vardef fit_zero(expr n)= if n<=9: "00" ef n<=99: "0" else: "" fi &decimal(n) enddef;
@@ -1416,7 +1457,13 @@
   NO_ATOM:=`("",0,0);
   tbl_atom_end:=tbl_cnt;
   %-----------------------------------------------------------------------------------------------
-  if sw_expand=0:
+  !:=!1:='((_mk_bond,_arrange_ang)); 
+  if sw_expand=1:
+    CH3:='(/H,/H^60,/H^-60); NH:='(N,/H); NH2:='(N,/H^60,/H^-60); NO2:='(N,//O^60,//O^-60);
+    OH:='(O,!,H); NO:='(N,//O); CONH2:='(//O,!,NH2); SH:='(S,!,H); SO2H:='(S,//O^60,/OH^-60);
+    SO3H:='(S,/OH,//O^60,//O^-60); CHO:='(//O^-60,/H^60); COOH:='(//O^-60,/OH^60); CN:='(!~tm,N);
+    ONa:='(O,!,Na); SO3Na:='(S,/ONa,//O^60,//O^-60);
+  else:
     CH3:=``("C{H_3_}")(C,H,H,H); CH2:=``("C{H_3_}")(C,H,H); CN:=``("CN")(C,N); OH:=``("OH")(O,H);
     COOH:=``("COOH")(C,O,O,H); COONa:=``("COO{Na}")(C,O,O,Na); CHO:=``("CHO")(C,H,O);
     NO:=``("NO")(N,O); NO2:=``("N{O_2_}")(N,O,O); NH2:=``("N{H_2_}")(N,H,H);
@@ -1426,7 +1473,8 @@
   %-----------------------------------------------------------------------------------------------
   tbl_group_end:=tbl_cnt; pcode_atm_end:=pcode_num;
   ?:='((_group_si,NO_ATOM)); ?wf:=?w:='((_group_wf,NO_ATOM)); ?zf:=?z:='((_group_zf,NO_ATOM));
-  ?O:='((_group_dm,O)); NH:='(N,/H~nl); ?NH:='((_group_dm,NH));
+  ?dm:=?d:='((_group_dm,NO_ATOM)); ?O:='((_group_dm,O)); ?S:='((_group_dm,S)); NH:='(N,/H~nl);
+  ?NH:='((_group_dm,NH));
   %-----------------------------------------------------------------------------------------------
   ?H:='(/H); ?F:='(/F); ?Cl:='(/Cl); ?OH:='(/OH); ?OH:='(/COOH); ?NH2:='(/NH2);
   for i=3 upto 20: ?[i]:='((_com,_len_ss),(_get_len,_ring_len),<((-180 DIV i)-90)
@@ -1433,31 +1481,21 @@
     for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),(_com,_len_ee));
   endfor
   Ph:=Ph1:='(?6,-2=dl,-4=dl,-6=dl); Ph2:='(?6,-1=dl,-3=dl,-5=dl);
-  for i=5,6: for j=11 upto 15:  ?[i][j]:='((i,j)); endfor endfor
   %-----------------------------------------------------------------------------------------------
-  !:=!1:='((_mk_bond,_arrange_ang)); !db:=!d:='(!~db); !tm:=!t:='(!~tm); !wf:=!w:='(!~wf);
-  !zf:=!z:='(!~zf); !wb:='(!~wb); !zb:='(!~zb); !dl:='(!~dl); !dr:='(!~dr); !dm:='(!~dm);
+  !db:=!d:='(!~db); !tm:=!t:='(!~tm); !wf:=!w:='(!~wf); !zf:=!z:='(!~zf); !wb:='(!~wb);
+  !zb:='(!~zb); !dl:='(!~dl); !dr:='(!~dr); !dm:='(!~dm);
   for i==2  upto 20:
     ![i]:='((_com,_len_ss),(_get_len,_tmp_len),! for j==2 upto i::,! endfor ,(_com,_len_ee));
   endfor
-  ?!:='(/_,!); ?!d:='(/_,!d); ?!2:='(/_,!2); ??!:='(/_,/_^60,60); ??:='(/_^35,/_^-35);
-  !?:='(!,/_); !?!:='(!?,!); !??!:='(!,??,!); ?2:='(/!); !?2:='(!,?2); ?2!:='(?2,!);
+  ?!:='(?,!); ?!d:='(?,!d); ?!2:='(?,!2); ??!:='(?,?^60,60); ??:='(?^35,?^-35);
+  !?:='(!,?); !?!:='(!?,!); !??!:='(!,??,!); ?2:='(/!); !?2:='(!,?2); ?2!:='(?2,!);
   n_:='((_set_add,MIS)); p_:='((_set_add,PLS));
-  zero_wf:='(0~wf); zero_zf:='(0~zf); zero_dm:='(0~dm); zero_wv:='(0~wv);
   mark_adress:='((_com,_mark)); reset_adress:='((_com,_moff)); reset_length:='((_com,_len_e));
   %-----------------------------------------------------------------------------------------------
-  if sw_expand=1:
-    CH3:='(/H,/H^60,/H^-60); NH:='(N,/H); NH2:='(N,/H^60,/H^-60); NO2:='(N,//O^60,//O^-60);
-    OH:='(O,!,H); NO:='(N,//O); CONH2:='(//O,!,NH2); SH:='(S,!,H); SO2H:='(S,//O^60,/OH^-60);
-    SO3H:='(S,/OH,//O^60,//O^-60); CHO:='(//O^-60,/H^60); COOH:='(//O^-60,/OH^60); CN:='(!~tm,N);
-    ONa:='(O,!,Na); SO3Na:='(S,/ONa,//O^60,//O^-60);
-  fi
-  %-----------------------------------------------------------------------------------------------
-  ?F!F:='(/F,60,F); ?Cl!Cl:='(/Cl,60,Cl); ?Br!Br:='(/Br,60,Br); ?F?F!F:='(/F,/F^60,60,F);
+  ?F!F:='(/F,60,F); ?F?F!F:='(/F,/F^60,60,F); ?Br!Br:='(/Br,60,Br); ?Cl!Cl:='(/Cl,60,Cl);
   ?Cl?Cl!Cl:='(/Cl,/Cl^60,60,Cl);
   %-----------------------------------------------------------------------------------------------
-  N!:='(N,!); N?:='(N,/_); N!2:='(N,!3); N!2:='(N,!3); !N:='(!,N);
-  N?!:='(N,?!); N?2:='(N,?2); N?2!:='(N?2,!); N?!2:='(N,?!2);
+  N!:='(N,!); N?:='(N,?); N!2:='(N,!3); N!2:='(N,!3); !N:='(!,N); N?!:='(N,?!); N?2:='(N,?2);
   S?O:='(S,?O); S?O!:='(S?O,!); ?O?O:='(?O^-35,?O^35); S?O?O:='(S,?O?O); S?O?O!:='(S?O?O,!);
   O!:='(O,!); O!2:='(O,!2); O!3:='(O,!3); S!:='(S,!); S!2:='(S,!2); S!3:='(S,!3);
   %-----------------------------------------------------------------------------------------------
@@ -1465,10 +1503,8 @@
   NH!:='(NH,!); NH!2:='(NH,!2); !NH:='(!,NH); !NH!:='(!,NH!);
   %-----------------------------------------------------------------------------------------------
   !OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); !S?O:='(!,S?O); !O:='(!,O); !dO:='(!d,O);
-  !O!:='(!,O!); !O!2:='(!,O!2); !O!3:='(!,O!3); !S!:='(!,S!); !S!2:='(!,S!2); !S!3:='(!,S!3);
+  !Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F); !O!:='(!,O!); !S!:='(!,S!);
   !COOH:='(!,COOH); ?COOH:='(/COOH); !CH3:='(!,CH3); !CN:='(!,CN); !CHO:='(!,CHO); !NO2:='(!,NO2);
-  !Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F); !?F!F:='(!,?F!F); !?Cl!Cl:='(!,?Cl!Cl);
-  !?F?F!F:='(!,?F?F!F); !?Cl?Cl!Cl:='(!,?Cl?Cl!Cl);
   !?3:='(!,?3); !?4:='(!,?4); !?5:='(!,?5); !?6:='(!,?6); !?7:='(!,?7); !?8:='(!,?8);
   !Ph:='(!,Ph); !?OH:='(!,?OH); ?OH!:='(?OH,!);
   %-----------------------------------------------------------------------------------------------
@@ -1488,25 +1524,27 @@
 message "pcode_emi  =" & decimal(pcode_emi_start) &" => " & decimal(pcode_int);
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 vardef checkm(expr s)=
-  save mc_char,mc_adr,mc_asc,char_cnt,lens,f_depth;
-  string err_type[];
+  save mc_char,mc_adr,mc_asc,err_type,char_cnt,lens,f_exit;
   numeric mc_char[],mc_asc[],mc_adr[];
-  err_cnt:=char_cnt:=block_cnt:=f_depth:=0; nA:=1; lens:=length(s);
-  err_type[0]:="no mc-row    "; err_type[1]:="mismatch ()  "; err_type[2]:="mismatch {}  ";
-  err_type[3]:="mismatch []  "; err_type[4]:="missing arg  "; err_type[5]:="extra arg    ";
  %---------------------------------------------------------------------------------------------
+  string err_type[];
+  err_cnt:=char_cnt:=0; nA:=1; lens:=length(s);
+  err_type[0]:="Error no mc-row  "; err_type[1]:="Error mismatch ()"; 
+  err_type[2]:="Error mismatch {}"; err_type[4]:="Error missing arg";
+  err_type[5]:="Error extra arg  ";
+ %---------------------------------------------------------------------------------------------
   if mc_row>=1:
     for i=1 upto 128: tbl_asc[i]:=0; endfor
-    for i=1 upto lens: mc_char[i]:=ASCII(subc(i,s)); endfor
+    for i=1 upto lens: mc_char[i]:=ASCII(substring(i-1,i) of s); endfor
     forever:
-      temps:=substring (nA-1,nA) of s;
-      if (temps<>",")and(temps<>" "): nF:=0;
-        for j=1 upto rw_cnt: nC:=lenw[j]-1;
+      tempc:=substring (nA-1,nA) of s;
+      if (tempc<>",")and(tempc<>" "): f_exit:=0;
+        for j=1 upto rw_cnt:
+          nC:=lenw[j]-1;
           if substring (nA-1,nA+nC) of s=rw[j]:
-            for k=1 upto nC: mc_char[nA]:=j; mc_char[nA+k]:=BLK; endfor
-            nF:=1; nA:=nA+nC;
+            for k=1 upto nC: mc_char[nA]:=j; mc_char[nA+k]:=BLK; endfor nA:=nA+nC; f_exit:=1;
           fi
-          exitif nF=1;
+          exitif f_exit=1;
         endfor
       fi
       nA:=nA+1; exitif nA>=lens;
@@ -1518,21 +1556,19 @@
     %-- argument check -------------------------------------------------------------------------
     for i=1 upto char_cnt:
       nA:=mc_asc[i-1]; nB:=mc_asc[i]; nC:=mc_asc[i+1]; tbl_asc[nB]:=tbl_asc[nB]+1;
-      if nB=CMA: if f_depth=0: block_cnt:=block_cnt+1; fi
-      ef (nB=EQU)or(nB=CLN)or(nB=HAT)or(nB=BQT)or(nB=TLD)or(nB=LTN):      % =,:,^,`,~,>
-        if (nA=CMA)or(nC=CMA): proc_err(4,i) fi
-      ef (nB=AMK)or(nB=AMP)or(nB=GTN)or(nB=HSH):                          % @,&,<,#
-        if nA<>CMA: proc_err(5,nB) fi if nC=CMA: proc_err(4,i) fi
-      ef (nB=SLS)or((nB>=7)and(nB<=11)):                                  % /,*/*,//,/*,*/,**
-        if (nA<>CMA)and(nA<>CLN)and(nA<>PRS): proc_err(5,i) fi
-        if (nC=CMA): proc_err(4,i) fi
+      if (nB=EQU)or(nB=CLN)or(nB=HAT)or(nB=BQT)or(nB=TLD)or(nB=LTN)or(nB=QUT):   % =,:,^,`,~,>,'
+        if (nA=CMA)or(nC=CMA)or(nA=QUT)or(nC=QUT): proc_err(4,i) fi
+      ef (nB=AMK)or(nB=AMP)or(nB=GTN):                                           % @,&,<,$
+        if nA<>CMA: proc_err(5,nB) fi if (nC=CMA)or(nC=QUT): proc_err(4,i) fi
+      ef (nB=SLS)or((nB>=1)and(nB<=5)):
+        if (nA<>CMA)and(nA<>CLN)and(nA<>PRS): proc_err(5,i) fi                % /,*/*,//,/*,*/,**
+        if (nC=CMA)or(nC=QUT): proc_err(4,i) fi
+      ef nB=DOL: if (nC=QUT)or(nC=CMA): proc_err(4,i) fi
       fi
-      if (nB=PRS)or(nB=BRS): f_depth:=f_depth+1; ef (nB=PRE)or(nB=BRE): f_depth:=f_depth-1; fi
     endfor
     %-- brackets balance check -----------------------------------------------------------------
     if tbl_asc[PRS]<>tbl_asc[PRE]: proc_err(1,0) fi           %  mismatch ()
     if tbl_asc[BRS]<>tbl_asc[BRE]: proc_err(2,0) fi           %  mismatch {}
-    if tbl_asc[BKS]<>tbl_asc[BKE]: proc_err(3,0) fi           %  mismatch []
   else: proc_err(0,0) fi
   %---------------------------------------------------------------------------------------------
 %%%%%%%  err_cnt>0: readstring;
@@ -1541,26 +1577,25 @@
 %-------------------------------------------------------------------------------------------------
 def proc_err(expr e,n)= 
   err_cnt:=err_cnt+1;
-  message "["&decimal(fig_num)&"]:"&err_type[e]
+  message "["&decimal(fig_num)&"]#"&err_type[e]
     if n>=1: &"("&fdr(3)(n)&") "&substring(mc_adr[n]-2,mc_adr[n]+3) of mc fi ;
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def savem(expr s)=
   file_output:=s;
-  for i=1 upto ucount: for j=1 upto unit_lines[i]: printf row[i][j]; endfor endfor
+  for i=1 upto ucount: for j=1 upto unit_lines[i]: puts row[i][j]; endfor endfor
   closefrom file_output;
 enddef;
 %-------------------------------------------------------------------------------------------------
 def loadm(text s)=
   begingroup
-  save f_mcf,f_line,lines,unit_cnt,row_s,row_cnt,semic_cnt,info_cnt,order,min_n,max_n,firstc,
-       sign_at,sign_n,filter_n,filter_tag,filter_var,filter_sign,filter_cnt,filter_p,lib_unit_cnt,
-       at_colon,at_equal,at_less,at_greater,at_n,sort_tbl,key_s,sort_s,sign_s,sV,sS,sT,sort_oder,
-       tag_s,val_s;
-  string row_s[][],sort_s,sort_tbl[],key_s,filter_tag[],filter_var[],sign_s[],sV,sS,sT,firstc,
-         tag_s[][],val_s[][];
+  save f_mcf,lines,unit_cnt,row_s,row_cnt,info_cnt,order,min_n,max_n,sign_at,sign_n,tag_s,
+       val_s,filter_n,filter_tag,filter_val,filter_sign,filter_cnt,filter_p,lib_unit_cnt,at_colon,
+       at_equal,at_less,at_greater,at_n,sort_tbl,key_s,sort_s,sign_s,sV,sT,sort_oder;
+  string row_s[][],sort_s,sort_tbl[],key_s,filter_tag[],filter_val[],sign_s[],tag_s[][],val_s[][],
+         sV,sT;
   numeric row_cnt[],order[],order_tbl[],filter_sign[],filter_p[];
-  lines:=f_mcf:=mc_row:=info_cnt:=filter_cnt:=lib_unit_cnt:=0; unit_cnt:=1;
+  lines:=f_mcf:=mc_row:=info_cnt:=filter_cnt:=lib_unit_cnt:=0; unit_cnt:=1; 
   file_input:=default_library;
   sign_s1:="="; sign_s2:="<>"; sign_s3:="<"; sign_s4:=">"; sign_s5:="<="; sign_s6:=">=";
   %-----------------------------------------------------------------------------------------------
@@ -1571,27 +1606,36 @@
     if at_colon>=2:                               sign_at:=at_colon;   sign_n:=0; at_n:=1;
     ef at_equal>=2:   if (at_equal-1)=at_less:    sign_at:=at_equal;   sign_n:=5; at_n:=2;
                       ef (at_equal-1)=at_greater: sign_at:=at_equal;   sign_n:=6; at_n:=2;
-                      else:                       sign_at:=at_equal;   sign_n:=1; at_n:=1; fi
+                      else:                       sign_at:=at_equal;   sign_n:=1; at_n:=1;
+                      fi
     ef at_greater>=2: if (at_greater-1)=at_less:  sign_at:=at_greater; sign_n:=2; at_n:=2;
-                      else:                       sign_at:=at_greater; sign_n:=4; at_n:=1; fi
-    ef at_less>=2:                                sign_at:=at_less;    sign_n:=3; at_n:=1; fi
-    sT:=substring(0,sign_at-at_n) of list; sV:=substring(sign_at,length(list)) of list;
+                      else:                       sign_at:=at_greater; sign_n:=4; at_n:=1;
+                      fi
+    ef at_less>=2:                                sign_at:=at_less;    sign_n:=3; at_n:=1;
+    fi
+    sT:=substring(0,sign_at-at_n) of list;
+    sV:=substring(sign_at,length(list)) of list;
     %---------------------------------------------------------------------------------------------
     if sign_n=0:
       if sT="f": if scan_c(".",sV)=0: file_input:=sV&".mcf";  else: file_input:=sV; fi
       ef sT="a": key_s:=sV; sort_oder:=0;
-      ef sT="d": key_s:=sV; sort_oder:=1; fi
+      ef sT="d": key_s:=sV; sort_oder:=1;
+      fi
     else:
-      filter_tag[incr filter_cnt]:=sT; filter_sign[filter_cnt]:=sign_n;
-      if (sign_n>=3)and(is_num(sV)=1): filter_var[filter_cnt]:=fix_num(sV);
-      else: filter_var[filter_cnt]:=sV; fi
+      filter_tag[incr filter_cnt]:=sT;
+      filter_sign[filter_cnt]:=sign_n;
+      if (sign_n>=3)and(is_num(sV)=1): filter_val[filter_cnt]:=fix_num(sV);
+      else: filter_val[filter_cnt]:=sV;
+      fi
     fi
   endfor
   %-----------------------------------------------------------------------------------------------
   forever:
-    temps:=readfrom file_input; exitif temps=EOF; firstc:=subc(1,temps);
+    line_s:=readfrom file_input;
+    exitif line_s=EOF;
+    firstc:=substring(0,1) of line_s;
     if (firstc<>"%")or(sw_comment=1):
-      row_s[unit_cnt][incr lines]:=temps;
+      row_s[unit_cnt][incr lines]:=line_s;
       if firstc=";":
         row_cnt[unit_cnt]:=lines; f_mcf:=lines:=0; filter_n:=1;
         for i=1 upto filter_cnt: filter_p[i]:=0; endfor
@@ -1603,13 +1647,13 @@
           for j=1 upto filter_cnt:
             if filter_tag[j]=sT:
               filter_p[j]:=1;
-              if (filter_sign[j]>=3)and(is_num(sV)=1): temps:=fix_num(sV); else: temps:=sV; fi
-              if filter_sign[j]=1: if not(temps= filter_var[j]): filter_n:=0; fi
-              ef filter_sign[j]=2: if not(temps<>filter_var[j]): filter_n:=0; fi
-              ef filter_sign[j]=3: if not(temps< filter_var[j]): filter_n:=0; fi
-              ef filter_sign[j]=4: if not(temps> filter_var[j]): filter_n:=0; fi
-              ef filter_sign[j]=5: if not(temps<=filter_var[j]): filter_n:=0; fi
-              ef filter_sign[j]=6: if not(temps>=filter_var[j]): filter_n:=0; fi
+              if (filter_sign[j]>=3)and(is_num(sV)=1): line_s:=fix_num(sV); else: line_s:=sV; fi
+              if filter_sign[j]=1: if not(line_s= filter_val[j]): filter_n:=0; fi
+              ef filter_sign[j]=2: if not(line_s<>filter_val[j]): filter_n:=0; fi
+              ef filter_sign[j]=3: if not(line_s< filter_val[j]): filter_n:=0; fi
+              ef filter_sign[j]=4: if not(line_s> filter_val[j]): filter_n:=0; fi
+              ef filter_sign[j]=5: if not(line_s<=filter_val[j]): filter_n:=0; fi
+              ef filter_sign[j]=6: if not(line_s>=filter_val[j]): filter_n:=0; fi
               fi
             fi
           endfor
@@ -1619,7 +1663,8 @@
         if filter_n=1: if key_s<>"": sort_tbl[unit_cnt]:=sort_s; fi unit_cnt:=unit_cnt+1; fi
       ef (firstc=":")or(firstc="="): f_mcf:=1; mc_row:=1;
       ef (firstc<>"%")or(sw_comment=1):
-        if f_mcf=1: mc_row:=mc_row+1; else: info[unit_cnt]:=info_cnt:=split_str(temps,";")(arg_s);
+        if f_mcf=1: mc_row:=mc_row+1;
+        else:       info[unit_cnt]:=info_cnt:=split_str(line_s,";")(arg_s);
         fi
       fi
     fi
@@ -1627,10 +1672,10 @@
   ucount:=unit_cnt:=unit_cnt-1;
   %=============================================================================================
   message "* Input  : "&file_input&" ["&decimal(lib_unit_cnt)&"]";
-  message "* Output : ucount ["&decimal(ucount)&"]";
+  message "* Output : ucount ["&decimal(ucount)&"]"; message "";
   if filter_cnt>=1:
     for i=1 upto filter_cnt:
-      message "* Filter("&decimal(i)&"): "&filter_tag[i]&" "&sign_s[filter_sign[i]]&filter_var[i];
+      message "* Filter("&decimal(i)&"): "&filter_tag[i]&" "&sign_s[filter_sign[i]]&filter_val[i];
     endfor
     if key_s<>"": message "* Sort key : "&key_s&iif(sort_oder=0," (ascending)"," (descending)");
     fi
@@ -1639,14 +1684,14 @@
   if key_s<>"":
     for i=1 upto unit_cnt: order[i]:=0; endfor
     for i=1 upto unit_cnt:
-      if sort_oder=0: temps:="~";
+      if sort_oder=0: line_s:="~";
         for j=1 upto unit_cnt:
-          if order[j]=0: if sort_tbl[j]<temps: temps:=sort_tbl[j]; min_n:=j; fi fi
+          if order[j]=0: if sort_tbl[j]<line_s: line_s:=sort_tbl[j]; min_n:=j; fi fi
         endfor
         order[min_n]:=i; order_tbl[i]:=min_n;
-      ef sort_oder=1: temps:=" ";
+      ef sort_oder=1: line_s:=" ";
         for j=1 upto unit_cnt:
-          if order[j]=0: if sort_tbl[j]>temps: temps:=sort_tbl[j]; max_n:=j; fi fi
+          if order[j]=0: if sort_tbl[j]>line_s: line_s:=sort_tbl[j]; max_n:=j; fi fi
         endfor
         order[max_n]:=i; order_tbl[i]:=max_n;
       fi
@@ -1672,16 +1717,17 @@
 enddef;
 %=============================================================================================
 vardef fix_num(expr s)=
-  sS:=s; nN:=scan_c(".",sS);
-  if nN=0: sS:=fsr(4)(sS); ef nN=1: sS:="   0"&sS;
-  ef nN=2: sS:="   "&sS; ef nN=3: sS:="  "&sS; ef nN=4: sS:=" "&sS;
+  temps:=s; nN:=scan_c(".",temps);
+  if nN=0: temps:=fsr(4)(temps); ef nN=1: temps:="   0"&temps;
+  ef nN=2: temps:="   "&temps;   ef nN=3: temps:="  "&temps; ef nN=4: temps:=" "&temps;
   fi
-  sS
+  temps
 enddef;
 %-------------------------------------------------------------------------------------------------
 vardef is_num(expr s)=
   for i=1 upto length(s):
-    if ((subc(i,s)>="0")and(subc(i,s)<="9"))or(subc(i,s)="."): nN:=1; else: nN:=0; fi
+    tempc:=substring(i-1,i) of s;
+    if ((tempc>="0")and(tempc<="9"))or(tempc="."): nN:=1; else: nN:=0; fi
   endfor
   nN
 enddef;
@@ -1689,19 +1735,24 @@
 vardef scan_bit(expr n,b)= if b>=1: odd(floor(n/b)) else: odd(floor((frac n)/b)) fi enddef;
 %-------------------------------------------------------------------------------------------------
 vardef scan_char(expr c,s,d,n)=
-  nN:=0;
-  if d=0:  for i=n upto length(s):   if subc(i,s)=c:  nN:=i; fi exitif nN>0; endfor
-  ef d=1:  for i=n upto length(s):   if subc(i,s)<>c: nN:=i; fi exitif nN>0; endfor
-  ef d=-1: for i=length(s) downto n: if subc(i,s)<>c: nN:=i; fi exitif nN>0; endfor
+  nN:=0; nA:=length(s);
+  if d=0:  for i=n upto nA:   if substring(i-1,i) of s=c:  nN:=i; fi exitif nN>0; endfor
+  ef d=1:  for i=n upto nA:   if substring(i-1,i) of s<>c: nN:=i; fi exitif nN>0; endfor
+  ef d=-1: for i=nA downto n: if substring(i-1,i) of s<>c: nN:=i; fi exitif nN>0; endfor
   fi
   nN
 enddef;
 %-------------------------------------------------------------------------------------------------
-def scan_c(expr c,s)= scan_char(c,s,0,1) enddef;
+vardef scan_c(expr c,s)=
+  nN:=0; nA:=length(s);
+  for i=1 upto nA: if substring(i-1,i) of s=c: nN:=i; fi exitif nN>0; endfor
+  nN
+enddef;
 %-------------------------------------------------------------------------------------------------
 vardef split_str(expr s,c)(suffix v)=
-  at_char[0]:=nN:=0; for i=1 upto length(s): if subc(i,s)=c: at_char[incr nN]:=i; fi endfor
-  nN:=nN+1; at_char[nN]:=length(s)+1;
+  at_char[0]:=nN:=0; nA:=length(s);
+  for i=1 upto nA: if substring(i-1,i) of s=c: at_char[incr nN]:=i; fi endfor
+  at_char[incr nN]:=nA+1;
   for i=1 upto nN: v[i]:=substring (at_char[i-1],at_char[i]-1) of s; endfor
   nN
 enddef;



More information about the tex-live-commits mailing list.