| 0 | 1 <html> | 
|  | 2 <head> | 
|  | 3 <title>MayaChemTools:Code:Fingerprints::MACCSKeys.pm</title> | 
|  | 4 <meta http-equiv="content-type" content="text/html;charset=utf-8"> | 
|  | 5 <link rel="stylesheet" type="text/css" href="../../../css/MayaChemToolsCode.css"> | 
|  | 6 </head> | 
|  | 7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10"> | 
|  | 8 <br/> | 
|  | 9 <center> | 
|  | 10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a> | 
|  | 11 </center> | 
|  | 12 <br/> | 
|  | 13 <pre> | 
|  | 14 <a name="package-Fingerprints::MACCSKeys-"></a>   1 <span class="k">package </span><span class="i">Fingerprints::MACCSKeys</span><span class="sc">;</span> | 
|  | 15    2 <span class="c">#</span> | 
|  | 16    3 <span class="c"># $RCSfile: MACCSKeys.pm,v $</span> | 
|  | 17    4 <span class="c"># $Date: 2015/02/28 20:48:54 $</span> | 
|  | 18    5 <span class="c"># $Revision: 1.33 $</span> | 
|  | 19    6 <span class="c">#</span> | 
|  | 20    7 <span class="c"># Author: Manish Sud <msud@san.rr.com></span> | 
|  | 21    8 <span class="c">#</span> | 
|  | 22    9 <span class="c"># Copyright (C) 2015 Manish Sud. All rights reserved.</span> | 
|  | 23   10 <span class="c">#</span> | 
|  | 24   11 <span class="c"># This file is part of MayaChemTools.</span> | 
|  | 25   12 <span class="c">#</span> | 
|  | 26   13 <span class="c"># MayaChemTools is free software; you can redistribute it and/or modify it under</span> | 
|  | 27   14 <span class="c"># the terms of the GNU Lesser General Public License as published by the Free</span> | 
|  | 28   15 <span class="c"># Software Foundation; either version 3 of the License, or (at your option) any</span> | 
|  | 29   16 <span class="c"># later version.</span> | 
|  | 30   17 <span class="c">#</span> | 
|  | 31   18 <span class="c"># MayaChemTools is distributed in the hope that it will be useful, but without</span> | 
|  | 32   19 <span class="c"># any warranty; without even the implied warranty of merchantability of fitness</span> | 
|  | 33   20 <span class="c"># for a particular purpose.  See the GNU Lesser General Public License for more</span> | 
|  | 34   21 <span class="c"># details.</span> | 
|  | 35   22 <span class="c">#</span> | 
|  | 36   23 <span class="c"># You should have received a copy of the GNU Lesser General Public License</span> | 
|  | 37   24 <span class="c"># along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or</span> | 
|  | 38   25 <span class="c"># write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,</span> | 
|  | 39   26 <span class="c"># Boston, MA, 02111-1307, USA.</span> | 
|  | 40   27 <span class="c">#</span> | 
|  | 41   28 | 
|  | 42   29 <span class="k">use</span> <span class="w">strict</span><span class="sc">;</span> | 
|  | 43   30 <span class="k">use</span> <span class="w">Carp</span><span class="sc">;</span> | 
|  | 44   31 <span class="k">use</span> <span class="w">Exporter</span><span class="sc">;</span> | 
|  | 45   32 <span class="k">use</span> <span class="w">Fingerprints::Fingerprints</span><span class="sc">;</span> | 
|  | 46   33 <span class="k">use</span> <span class="w">TextUtil</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 47   34 <span class="k">use</span> <span class="w">Molecule</span><span class="sc">;</span> | 
|  | 48   35 <span class="k">use</span> <span class="w">PeriodicTable</span><span class="sc">;</span> | 
|  | 49   36 | 
|  | 50   37 <span class="k">use</span> <span class="w">vars</span> <span class="q">qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS)</span><span class="sc">;</span> | 
|  | 51   38 | 
|  | 52   39 <span class="i">@ISA</span> = <span class="q">qw(Fingerprints::Fingerprints Exporter)</span><span class="sc">;</span> | 
|  | 53   40 <span class="i">@EXPORT</span> = <span class="q">qw()</span><span class="sc">;</span> | 
|  | 54   41 <span class="i">@EXPORT_OK</span> = <span class="q">qw()</span><span class="sc">;</span> | 
|  | 55   42 | 
|  | 56   43 <span class="i">%EXPORT_TAGS</span> = <span class="s">(</span><span class="w">all</span>  <span class="cm">=></span> <span class="s">[</span><span class="i">@EXPORT</span><span class="cm">,</span> <span class="i">@EXPORT_OK</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 57   44 | 
|  | 58   45 <span class="c"># Setup class variables...</span> | 
|  | 59   46 <span class="k">my</span><span class="s">(</span><span class="i">$ClassName</span><span class="s">)</span><span class="sc">;</span> | 
|  | 60   47 <span class="i">_InitializeClass</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 61   48 | 
|  | 62   49 <span class="c"># Overload Perl functions...</span> | 
|  | 63   50 <span class="k">use</span> <span class="w">overload</span> <span class="q">'""'</span> <span class="cm">=></span> <span class="q">'StringifyMACCSKeys'</span><span class="sc">;</span> | 
|  | 64   51 | 
|  | 65   52 <span class="c"># Class constructor...</span> | 
|  | 66 <a name="new-"></a>  53 <span class="k">sub </span><span class="m">new</span> <span class="s">{</span> | 
|  | 67   54   <span class="k">my</span><span class="s">(</span><span class="i">$Class</span><span class="cm">,</span> <span class="i">%NamesAndValues</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 68   55 | 
|  | 69   56   <span class="c"># Initialize object...</span> | 
|  | 70   57   <span class="k">my</span> <span class="i">$This</span> = <span class="i">$Class</span><span class="i">->SUPER::new</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 71   58   <span class="k">bless</span> <span class="i">$This</span><span class="cm">,</span> <span class="k">ref</span><span class="s">(</span><span class="i">$Class</span><span class="s">)</span> || <span class="i">$Class</span><span class="sc">;</span> | 
|  | 72   59   <span class="i">$This</span><span class="i">->_InitializeMACCSKeys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 73   60 | 
|  | 74   61   <span class="i">$This</span><span class="i">->_InitializeMACCSKeysProperties</span><span class="s">(</span><span class="i">%NamesAndValues</span><span class="s">)</span><span class="sc">;</span> | 
|  | 75   62 | 
|  | 76   63   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 77   64 <span class="s">}</span> | 
|  | 78   65 | 
|  | 79   66 <span class="c"># Initialize object data...</span> | 
|  | 80   67 <span class="c">#</span> | 
|  | 81 <a name="_InitializeMACCSKeys-"></a>  68 <span class="k">sub </span><span class="m">_InitializeMACCSKeys</span> <span class="s">{</span> | 
|  | 82   69   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 83   70 | 
|  | 84   71   <span class="c"># Type of fingerprint to generate:</span> | 
|  | 85   72   <span class="c">#</span> | 
|  | 86   73   <span class="c"># MACCSKeyBits - A bit vector indicating presence/absence of keys</span> | 
|  | 87   74   <span class="c"># MACCSKeyCount - A vector containing count of keys</span> | 
|  | 88   75   <span class="c">#</span> | 
|  | 89   76   <span class="i">$This</span>->{<span class="w">Type</span>} = <span class="q">''</span><span class="sc">;</span> | 
|  | 90   77   <span class="i">$This</span>->{<span class="w">KeyBits</span>} = <span class="q">''</span><span class="sc">;</span> | 
|  | 91   78 | 
|  | 92   79   <span class="c"># Size of key set: 166 or 322...</span> | 
|  | 93   80   <span class="i">$This</span>->{<span class="w">Size</span>} = <span class="q">''</span><span class="sc">;</span> | 
|  | 94   81 <span class="s">}</span> | 
|  | 95   82 | 
|  | 96   83 <span class="c"># Initialize class ...</span> | 
|  | 97 <a name="_InitializeClass-"></a>  84 <span class="k">sub </span><span class="m">_InitializeClass</span> <span class="s">{</span> | 
|  | 98   85   <span class="c">#Class name...</span> | 
|  | 99   86   <span class="i">$ClassName</span> = <span class="w">__PACKAGE__</span><span class="sc">;</span> | 
|  | 100   87 <span class="s">}</span> | 
|  | 101   88 | 
|  | 102   89 <span class="c"># Initialize object properties....</span> | 
|  | 103 <a name="_InitializeMACCSKeysProperties-"></a>  90 <span class="k">sub </span><span class="m">_InitializeMACCSKeysProperties</span> <span class="s">{</span> | 
|  | 104   91   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">%NamesAndValues</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 105   92 | 
|  | 106   93   <span class="k">my</span><span class="s">(</span><span class="i">$Name</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="s">)</span><span class="sc">;</span> | 
|  | 107   94   <span class="k">while</span> <span class="s">(</span><span class="s">(</span><span class="i">$Name</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span> = <span class="k">each</span>  <span class="i">%NamesAndValues</span><span class="s">)</span> <span class="s">{</span> | 
|  | 108   95     <span class="i">$MethodName</span> = <span class="q">"Set${Name}"</span><span class="sc">;</span> | 
|  | 109   96     <span class="i">$This</span><span class="i">->$MethodName</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> | 
|  | 110   97   <span class="s">}</span> | 
|  | 111   98 | 
|  | 112   99   <span class="c"># Make sure molecule object was specified...</span> | 
|  | 113  100   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Molecule</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 114  101     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->New: Object can't be instantiated without specifying molecule..."</span><span class="sc">;</span> | 
|  | 115  102   <span class="s">}</span> | 
|  | 116  103 | 
|  | 117  104   <span class="c"># Make sure type and size were specified...</span> | 
|  | 118  105   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Type</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 119  106     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->New: Object can't be instantiated without specifying type..."</span><span class="sc">;</span> | 
|  | 120  107   <span class="s">}</span> | 
|  | 121  108   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Size</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 122  109     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->New: Object can't be instantiated without specifying size..."</span><span class="sc">;</span> | 
|  | 123  110   <span class="s">}</span> | 
|  | 124  111 | 
|  | 125  112   <span class="c"># Make sure approriate size is specified...</span> | 
|  | 126  113   <span class="k">if</span> <span class="s">(</span><span class="i">$NamesAndValues</span>{<span class="w">Size</span>} !~ <span class="q">/^(166|322)$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 127  114     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->New: The current release of MayaChemTools doesn't support MDL MACCS $NamesAndValues{Size} keys..."</span><span class="sc">;</span> | 
|  | 128  115   <span class="s">}</span> | 
|  | 129  116 | 
|  | 130  117   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span> | 
|  | 131  118     <span class="i">$This</span><span class="i">->_InitializeMACCSKeyBits</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 132  119   <span class="s">}</span> | 
|  | 133  120   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span> | 
|  | 134  121     <span class="i">$This</span><span class="i">->_InitializeMACCSKeyCounts</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 135  122   <span class="s">}</span> | 
|  | 136  123   <span class="k">else</span> <span class="s">{</span> | 
|  | 137  124     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->_InitializeMACCSKeysProperties: Unknown MACCS keys type: $This->{Type}; Supported type keys: MACCSKeyBits or MACCSKeyCount......"</span><span class="sc">;</span> | 
|  | 138  125   <span class="s">}</span> | 
|  | 139  126 | 
|  | 140  127   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 141  128 <span class="s">}</span> | 
|  | 142  129 | 
|  | 143  130 <span class="c"># Initialize MACCS key bits...</span> | 
|  | 144  131 <span class="c">#</span> | 
|  | 145 <a name="_InitializeMACCSKeyBits-"></a> 132 <span class="k">sub </span><span class="m">_InitializeMACCSKeyBits</span> <span class="s">{</span> | 
|  | 146  133   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 147  134 | 
|  | 148  135   <span class="i">$This</span>->{<span class="w">KeyBits</span>} = <span class="n">1</span><span class="sc">;</span> | 
|  | 149  136 | 
|  | 150  137   <span class="c"># Vector type...</span> | 
|  | 151  138   <span class="i">$This</span>->{<span class="w">VectorType</span>} = <span class="q">'FingerprintsBitVector'</span><span class="sc">;</span> | 
|  | 152  139 | 
|  | 153  140   <span class="i">$This</span><span class="i">->_InitializeFingerprintsBitVector</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 154  141 | 
|  | 155  142   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 156  143 <span class="s">}</span> | 
|  | 157  144 | 
|  | 158  145 <span class="c"># Initialize MACCS key counts...</span> | 
|  | 159  146 <span class="c">#</span> | 
|  | 160 <a name="_InitializeMACCSKeyCounts-"></a> 147 <span class="k">sub </span><span class="m">_InitializeMACCSKeyCounts</span> <span class="s">{</span> | 
|  | 161  148   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 162  149 | 
|  | 163  150   <span class="i">$This</span>->{<span class="w">KeyBits</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 164  151 | 
|  | 165  152   <span class="c"># Vector type and type of values...</span> | 
|  | 166  153   <span class="i">$This</span>->{<span class="w">VectorType</span>} = <span class="q">'FingerprintsVector'</span><span class="sc">;</span> | 
|  | 167  154   <span class="i">$This</span>->{<span class="w">FingerprintsVectorType</span>} = <span class="q">'OrderedNumericalValues'</span><span class="sc">;</span> | 
|  | 168  155 | 
|  | 169  156   <span class="i">$This</span><span class="i">->_InitializeFingerprintsVector</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 170  157 | 
|  | 171  158   <span class="c"># Initialize values to zero...</span> | 
|  | 172  159   <span class="k">my</span><span class="s">(</span><span class="i">@Values</span><span class="s">)</span><span class="sc">;</span> | 
|  | 173  160   <span class="i">@Values</span> = <span class="s">(</span><span class="n">0</span><span class="s">)</span> x <span class="i">$This</span>->{<span class="w">Size</span>}<span class="sc">;</span> | 
|  | 174  161   <span class="i">$This</span>->{<span class="w">FingerprintsVector</span>}<span class="i">->AddValues</span><span class="s">(</span>\<span class="i">@Values</span><span class="s">)</span><span class="sc">;</span> | 
|  | 175  162 | 
|  | 176  163   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 177  164 <span class="s">}</span> | 
|  | 178  165 | 
|  | 179  166 <span class="c"># Set type...</span> | 
|  | 180  167 <span class="c">#</span> | 
|  | 181 <a name="SetType-"></a> 168 <span class="k">sub </span><span class="m">SetType</span> <span class="s">{</span> | 
|  | 182  169   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Type</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 183  170 | 
|  | 184  171   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Type</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 185  172     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->SetType: Can't change type:  It's already set..."</span><span class="sc">;</span> | 
|  | 186  173   <span class="s">}</span> | 
|  | 187  174 | 
|  | 188  175   <span class="k">if</span> <span class="s">(</span><span class="i">$Type</span> =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span> | 
|  | 189  176     <span class="i">$This</span>->{<span class="w">Type</span>} = <span class="q">'MACCSKeyBits'</span><span class="sc">;</span><span class="sc">;</span> | 
|  | 190  177     <span class="i">$This</span>->{<span class="w">KeyBits</span>} = <span class="n">1</span><span class="sc">;</span> | 
|  | 191  178   <span class="s">}</span> | 
|  | 192  179   <span class="k">elsif</span> <span class="s">(</span><span class="i">$Type</span> =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span> | 
|  | 193  180     <span class="i">$This</span>->{<span class="w">Type</span>} = <span class="q">'MACCSKeyCount'</span><span class="sc">;</span><span class="sc">;</span> | 
|  | 194  181     <span class="i">$This</span>->{<span class="w">KeyBits</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 195  182   <span class="s">}</span> | 
|  | 196  183   <span class="k">else</span> <span class="s">{</span> | 
|  | 197  184     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->SetType: Unknown type MACCS keys: $Type; Supported type keys: MACCSKeyBits or MACCSKeyCount..."</span><span class="sc">;</span> | 
|  | 198  185   <span class="s">}</span> | 
|  | 199  186   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 200  187 <span class="s">}</span> | 
|  | 201  188 | 
|  | 202  189 <span class="c"># Set size...</span> | 
|  | 203  190 <span class="c">#</span> | 
|  | 204 <a name="SetSize-"></a> 191 <span class="k">sub </span><span class="m">SetSize</span> <span class="s">{</span> | 
|  | 205  192   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 206  193 | 
|  | 207  194   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Size</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 208  195     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->SetSize: Can't change size:  It's already set..."</span><span class="sc">;</span> | 
|  | 209  196   <span class="s">}</span> | 
|  | 210  197   <span class="k">if</span> <span class="s">(</span>!<span class="i">TextUtil::IsPositiveInteger</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 211  198     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->SetSize: Size value, $Value, is not valid:  It must be a positive integer..."</span><span class="sc">;</span> | 
|  | 212  199   <span class="s">}</span> | 
|  | 213  200   <span class="k">if</span> <span class="s">(</span><span class="i">$Value</span> !~ <span class="q">/^(166|322)/i</span><span class="s">)</span> <span class="s">{</span> | 
|  | 214  201     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->Size: The current release of MayaChemTools doesn't support MDL MACCS $Value keys..."</span><span class="sc">;</span> | 
|  | 215  202   <span class="s">}</span> | 
|  | 216  203   <span class="i">$This</span>->{<span class="w">Size</span>} = <span class="i">$Value</span><span class="sc">;</span> | 
|  | 217  204 | 
|  | 218  205   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 219  206 <span class="s">}</span> | 
|  | 220  207 | 
|  | 221  208 <span class="c"># Generate description...</span> | 
|  | 222  209 <span class="c">#</span> | 
|  | 223 <a name="GetDescription-"></a> 210 <span class="k">sub </span><span class="m">GetDescription</span> <span class="s">{</span> | 
|  | 224  211   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 225  212 | 
|  | 226  213   <span class="c"># Is description explicity set?</span> | 
|  | 227  214   <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$This</span>->{<span class="w">Description</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 228  215     <span class="k">return</span> <span class="i">$This</span>->{<span class="w">Description</span>}<span class="sc">;</span> | 
|  | 229  216   <span class="s">}</span> | 
|  | 230  217 | 
|  | 231  218   <span class="k">return</span> <span class="q">"$This->{Type}"</span><span class="sc">;</span> | 
|  | 232  219 <span class="s">}</span> | 
|  | 233  220 | 
|  | 234  221 <span class="c"># Generate MDL MACCS keys..</span> | 
|  | 235  222 <span class="c">#</span> | 
|  | 236 <a name="GenerateMACCSKeys-"></a> 223 <span class="k">sub </span><span class="m">GenerateMACCSKeys</span> <span class="s">{</span> | 
|  | 237  224   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 238  225 | 
|  | 239  226   <span class="c"># Cache appropriate molecule data...</span> | 
|  | 240  227   <span class="i">$This</span><span class="i">->_SetupMoleculeDataCache</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 241  228 | 
|  | 242  229   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Size</span>} == <span class="n">166</span><span class="s">)</span> <span class="s">{</span> | 
|  | 243  230     <span class="i">$This</span><span class="i">->_GenerateMACCS166Keys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 244  231   <span class="s">}</span> | 
|  | 245  232   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Size</span>} == <span class="n">322</span><span class="s">)</span> <span class="s">{</span> | 
|  | 246  233     <span class="i">$This</span><span class="i">->_GenerateMACCS322Keys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 247  234   <span class="s">}</span> | 
|  | 248  235   <span class="k">else</span> <span class="s">{</span> | 
|  | 249  236     <span class="w">croak</span> <span class="q">"Error: ${ClassName}->GenerateMACCSKeys: The current release of MayaChemTools doesn't support MDL MACCS  $This->{Size} keys..."</span><span class="sc">;</span> | 
|  | 250  237   <span class="s">}</span> | 
|  | 251  238 | 
|  | 252  239   <span class="i">$This</span>->{<span class="w">FingerprintsGenerated</span>} = <span class="n">1</span><span class="sc">;</span> | 
|  | 253  240 | 
|  | 254  241   <span class="c"># Clear cached molecule data...</span> | 
|  | 255  242   <span class="i">$This</span><span class="i">->_ClearMoleculeDataCache</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 256  243 | 
|  | 257  244   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 258  245 <span class="s">}</span> | 
|  | 259  246 | 
|  | 260  247 <span class="c"># Setup GenerateFingerprints method in order to be consistent with all other</span> | 
|  | 261  248 <span class="c"># fingerprints classes implemented in the current release of MayaChemTools...</span> | 
|  | 262  249 <span class="c">#</span> | 
|  | 263 <a name="GenerateFingerprints-"></a> 250 <span class="k">sub </span><span class="m">GenerateFingerprints</span> <span class="s">{</span> | 
|  | 264  251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 265  252 | 
|  | 266  253   <span class="k">return</span> <span class="i">$This</span><span class="i">->GenerateMACCSKeys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 267  254 <span class="s">}</span> | 
|  | 268  255 | 
|  | 269  256 <span class="c"># Generate MDL MACCS 166 keys...</span> | 
|  | 270  257 <span class="c">#</span> | 
|  | 271  258 <span class="c"># Information on the 166 keys [ Ref. 45-47 ]:</span> | 
|  | 272  259 <span class="c">#</span> | 
|  | 273  260 <span class="c"># Atom symbols:</span> | 
|  | 274  261 <span class="c">#</span> | 
|  | 275  262 <span class="c"># A : Any valid perodic table element symbol</span> | 
|  | 276  263 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span> | 
|  | 277  264 <span class="c"># X  : Halogens; F, Cl, Br, I</span> | 
|  | 278  265 <span class="c"># Z  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span> | 
|  | 279  266 <span class="c">#</span> | 
|  | 280  267 <span class="c"># Bond types:</span> | 
|  | 281  268 <span class="c">#</span> | 
|  | 282  269 <span class="c"># -  : Single</span> | 
|  | 283  270 <span class="c"># =  : Double</span> | 
|  | 284  271 <span class="c"># T  : Triple</span> | 
|  | 285  272 <span class="c"># #  : Triple</span> | 
|  | 286  273 <span class="c"># ~  : Single or double query bond</span> | 
|  | 287  274 <span class="c"># %  : An aromatic query bond</span> | 
|  | 288  275 <span class="c">#</span> | 
|  | 289  276 <span class="c"># None : Any bond type; no explict bond specified</span> | 
|  | 290  277 <span class="c">#</span> | 
|  | 291  278 <span class="c"># $  : Ring bond; $ before a bond type specifies ring bond</span> | 
|  | 292  279 <span class="c"># !  : Chain or non-ring bond; ! before a bond type specifies chain bond</span> | 
|  | 293  280 <span class="c">#</span> | 
|  | 294  281 <span class="c"># @  : A ring linkage and the number following it specifies the</span> | 
|  | 295  282 <span class="c">#      atoms position in the line, thus @1 means linked back to the first atom in</span> | 
|  | 296  283 <span class="c">#      the list.</span> | 
|  | 297  284 <span class="c">#</span> | 
|  | 298  285 <span class="c"># Aromatic: Kekule or Arom5</span> | 
|  | 299  286 <span class="c">#</span> | 
|  | 300  287 <span class="c"># Kekule: Bonds in 6-membered rings with alternalte single/double bonds or perimeter</span> | 
|  | 301  288 <span class="c">#         bonds</span> | 
|  | 302  289 <span class="c">#</span> | 
|  | 303  290 <span class="c"># Arom5: Bonds in 5-membered rings with two double bonds and a hetro atom at</span> | 
|  | 304  291 <span class="c">#        the apex of the ring.</span> | 
|  | 305  292 <span class="c">#</span> | 
|  | 306  293 <span class="c"># Index Key Description</span> | 
|  | 307  294 <span class="c"># 1        ISOTOPE</span> | 
|  | 308  295 <span class="c"># 2        103 < ATOMIC NO. < 256</span> | 
|  | 309  296 <span class="c"># 3        GROUP IVA,VA,VIA PERIODS 4-6 (Ge...)</span> | 
|  | 310  297 <span class="c"># 4        ACTINIDE</span> | 
|  | 311  298 <span class="c"># 5        GROUP IIIB,IVB (Sc...)</span> | 
|  | 312  299 <span class="c"># 6        LANTHANIDE</span> | 
|  | 313  300 <span class="c"># 7        GROUP VB,VIB,VIIB (V...)</span> | 
|  | 314  301 <span class="c"># 8        QAAA@1</span> | 
|  | 315  302 <span class="c"># 9        GROUP VIII (Fe...)</span> | 
|  | 316  303 <span class="c"># 10        GROUP IIA (ALKALINE EARTH)</span> | 
|  | 317  304 <span class="c"># 11        4M RING</span> | 
|  | 318  305 <span class="c"># 12        GROUP IB,IIB (Cu...)</span> | 
|  | 319  306 <span class="c"># 13        ON(C)C</span> | 
|  | 320  307 <span class="c"># 14        S-S</span> | 
|  | 321  308 <span class="c"># 15        OC(O)O</span> | 
|  | 322  309 <span class="c"># 16        QAA@1</span> | 
|  | 323  310 <span class="c"># 17        CTC</span> | 
|  | 324  311 <span class="c"># 18        GROUP IIIA (B...)</span> | 
|  | 325  312 <span class="c"># 19        7M RING</span> | 
|  | 326  313 <span class="c"># 20        SI</span> | 
|  | 327  314 <span class="c"># 21        C=C(Q)Q</span> | 
|  | 328  315 <span class="c"># 22        3M RING</span> | 
|  | 329  316 <span class="c"># 23        NC(O)O</span> | 
|  | 330  317 <span class="c"># 24        N-O</span> | 
|  | 331  318 <span class="c"># 25        NC(N)N</span> | 
|  | 332  319 <span class="c"># 26        C$=C($A)$A</span> | 
|  | 333  320 <span class="c"># 27        I</span> | 
|  | 334  321 <span class="c"># 28        QCH2Q</span> | 
|  | 335  322 <span class="c"># 29        P</span> | 
|  | 336  323 <span class="c"># 30        CQ(C)(C)A</span> | 
|  | 337  324 <span class="c"># 31        QX</span> | 
|  | 338  325 <span class="c"># 32        CSN</span> | 
|  | 339  326 <span class="c"># 33        NS</span> | 
|  | 340  327 <span class="c"># 34        CH2=A</span> | 
|  | 341  328 <span class="c"># 35        GROUP IA (ALKALI METAL)</span> | 
|  | 342  329 <span class="c"># 36        S HETEROCYCLE</span> | 
|  | 343  330 <span class="c"># 37        NC(O)N</span> | 
|  | 344  331 <span class="c"># 38        NC(C)N</span> | 
|  | 345  332 <span class="c"># 39        OS(O)O</span> | 
|  | 346  333 <span class="c"># 40        S-O</span> | 
|  | 347  334 <span class="c"># 41        CTN</span> | 
|  | 348  335 <span class="c"># 42        F</span> | 
|  | 349  336 <span class="c"># 43        QHAQH</span> | 
|  | 350  337 <span class="c"># 44        OTHER</span> | 
|  | 351  338 <span class="c"># 45        C=CN</span> | 
|  | 352  339 <span class="c"># 46        BR</span> | 
|  | 353  340 <span class="c"># 47        SAN</span> | 
|  | 354  341 <span class="c"># 48        OQ(O)O</span> | 
|  | 355  342 <span class="c"># 49        CHARGE</span> | 
|  | 356  343 <span class="c"># 50        C=C(C)C</span> | 
|  | 357  344 <span class="c"># 51        CSO</span> | 
|  | 358  345 <span class="c"># 52        NN</span> | 
|  | 359  346 <span class="c"># 53        QHAAAQH</span> | 
|  | 360  347 <span class="c"># 54        QHAAQH</span> | 
|  | 361  348 <span class="c"># 55        OSO</span> | 
|  | 362  349 <span class="c"># 56        ON(O)C</span> | 
|  | 363  350 <span class="c"># 57        O HETEROCYCLE</span> | 
|  | 364  351 <span class="c"># 58        QSQ</span> | 
|  | 365  352 <span class="c"># 59        Snot%A%A</span> | 
|  | 366  353 <span class="c"># 60        S=O</span> | 
|  | 367  354 <span class="c"># 61        AS(A)A</span> | 
|  | 368  355 <span class="c"># 62        A$A!A$A</span> | 
|  | 369  356 <span class="c"># 63        N=O</span> | 
|  | 370  357 <span class="c"># 64        A$A!S</span> | 
|  | 371  358 <span class="c"># 65        C%N</span> | 
|  | 372  359 <span class="c"># 66        CC(C)(C)A</span> | 
|  | 373  360 <span class="c"># 67        QS</span> | 
|  | 374  361 <span class="c"># 68        QHQH (&...)</span> | 
|  | 375  362 <span class="c"># 69        QQH</span> | 
|  | 376  363 <span class="c"># 70        QNQ</span> | 
|  | 377  364 <span class="c"># 71        NO</span> | 
|  | 378  365 <span class="c"># 72        OAAO</span> | 
|  | 379  366 <span class="c"># 73        S=A</span> | 
|  | 380  367 <span class="c"># 74        CH3ACH3</span> | 
|  | 381  368 <span class="c"># 75        A!N$A</span> | 
|  | 382  369 <span class="c"># 76        C=C(A)A</span> | 
|  | 383  370 <span class="c"># 77        NAN</span> | 
|  | 384  371 <span class="c"># 78        C=N</span> | 
|  | 385  372 <span class="c"># 79        NAAN</span> | 
|  | 386  373 <span class="c"># 80        NAAAN</span> | 
|  | 387  374 <span class="c"># 81        SA(A)A</span> | 
|  | 388  375 <span class="c"># 82        ACH2QH</span> | 
|  | 389  376 <span class="c"># 83         QAAAA@1</span> | 
|  | 390  377 <span class="c"># 84        NH2</span> | 
|  | 391  378 <span class="c"># 85        CN(C)C</span> | 
|  | 392  379 <span class="c"># 86        CH2QCH2</span> | 
|  | 393  380 <span class="c"># 87        X!A$A</span> | 
|  | 394  381 <span class="c"># 88        S</span> | 
|  | 395  382 <span class="c"># 89        OAAAO</span> | 
|  | 396  383 <span class="c"># 90        QHAACH2A</span> | 
|  | 397  384 <span class="c"># 91        QHAAACH2A</span> | 
|  | 398  385 <span class="c"># 92        OC(N)C</span> | 
|  | 399  386 <span class="c"># 93        QCH3</span> | 
|  | 400  387 <span class="c"># 94        QN</span> | 
|  | 401  388 <span class="c"># 95        NAAO</span> | 
|  | 402  389 <span class="c"># 96        5M RING</span> | 
|  | 403  390 <span class="c"># 97        NAAAO</span> | 
|  | 404  391 <span class="c"># 98        QAAAAA@1</span> | 
|  | 405  392 <span class="c"># 99        C=C</span> | 
|  | 406  393 <span class="c"># 100        ACH2N</span> | 
|  | 407  394 <span class="c"># 101        8M RING</span> | 
|  | 408  395 <span class="c"># 102        QO</span> | 
|  | 409  396 <span class="c"># 103        CL</span> | 
|  | 410  397 <span class="c"># 104        QHACH2A</span> | 
|  | 411  398 <span class="c"># 105        A$A($A)$A</span> | 
|  | 412  399 <span class="c"># 106        QA(Q)Q</span> | 
|  | 413  400 <span class="c"># 107        XA(A)A</span> | 
|  | 414  401 <span class="c"># 108        CH3AAACH2A</span> | 
|  | 415  402 <span class="c"># 109        ACH2O</span> | 
|  | 416  403 <span class="c"># 110        NCO</span> | 
|  | 417  404 <span class="c"># 111        NACH2A</span> | 
|  | 418  405 <span class="c"># 112        AA(A)(A)A</span> | 
|  | 419  406 <span class="c"># 113        Onot%A%A</span> | 
|  | 420  407 <span class="c"># 114        CH3CH2A</span> | 
|  | 421  408 <span class="c"># 115        CH3ACH2A</span> | 
|  | 422  409 <span class="c"># 116        CH3AACH2A</span> | 
|  | 423  410 <span class="c"># 117        NAO</span> | 
|  | 424  411 <span class="c"># 118        ACH2CH2A > 1</span> | 
|  | 425  412 <span class="c"># 119        N=A</span> | 
|  | 426  413 <span class="c"># 120        HETEROCYCLIC ATOM > 1 (&...)</span> | 
|  | 427  414 <span class="c"># 121        N HETEROCYCLE</span> | 
|  | 428  415 <span class="c"># 122        AN(A)A</span> | 
|  | 429  416 <span class="c"># 123        OCO</span> | 
|  | 430  417 <span class="c"># 124        QQ</span> | 
|  | 431  418 <span class="c"># 125        AROMATIC RING > 1</span> | 
|  | 432  419 <span class="c"># 126        A!O!A</span> | 
|  | 433  420 <span class="c"># 127        A$A!O > 1 (&...)</span> | 
|  | 434  421 <span class="c"># 128        ACH2AAACH2A</span> | 
|  | 435  422 <span class="c"># 129        ACH2AACH2A</span> | 
|  | 436  423 <span class="c"># 130        QQ > 1 (&...)</span> | 
|  | 437  424 <span class="c"># 131        QH > 1</span> | 
|  | 438  425 <span class="c"># 132        OACH2A</span> | 
|  | 439  426 <span class="c"># 133        A$A!N</span> | 
|  | 440  427 <span class="c"># 134        X (HALOGEN)</span> | 
|  | 441  428 <span class="c"># 135        Nnot%A%A</span> | 
|  | 442  429 <span class="c"># 136        O=A > 1</span> | 
|  | 443  430 <span class="c"># 137        HETEROCYCLE</span> | 
|  | 444  431 <span class="c"># 138        QCH2A > 1 (&...)</span> | 
|  | 445  432 <span class="c"># 139        OH</span> | 
|  | 446  433 <span class="c"># 140        O > 3 (&...)</span> | 
|  | 447  434 <span class="c"># 141        CH3 > 2 (&...)</span> | 
|  | 448  435 <span class="c"># 142        N > 1</span> | 
|  | 449  436 <span class="c"># 143        A$A!O</span> | 
|  | 450  437 <span class="c"># 144        Anot%A%Anot%A</span> | 
|  | 451  438 <span class="c"># 145        6M RING > 1</span> | 
|  | 452  439 <span class="c"># 146        O > 2</span> | 
|  | 453  440 <span class="c"># 147        ACH2CH2A</span> | 
|  | 454  441 <span class="c"># 148        AQ(A)A</span> | 
|  | 455  442 <span class="c"># 149        CH3 > 1</span> | 
|  | 456  443 <span class="c"># 150        A!A$A!A</span> | 
|  | 457  444 <span class="c"># 151        NH</span> | 
|  | 458  445 <span class="c"># 152        OC(C)C</span> | 
|  | 459  446 <span class="c"># 153        QCH2A</span> | 
|  | 460  447 <span class="c"># 154        C=O</span> | 
|  | 461  448 <span class="c"># 155        A!CH2!A</span> | 
|  | 462  449 <span class="c"># 156        NA(A)A</span> | 
|  | 463  450 <span class="c"># 157        C-O</span> | 
|  | 464  451 <span class="c"># 158        C-N</span> | 
|  | 465  452 <span class="c"># 159        O > 1</span> | 
|  | 466  453 <span class="c"># 160        CH3</span> | 
|  | 467  454 <span class="c"># 161        N</span> | 
|  | 468  455 <span class="c"># 162        AROMATIC</span> | 
|  | 469  456 <span class="c"># 163        6M RING</span> | 
|  | 470  457 <span class="c"># 164        O</span> | 
|  | 471  458 <span class="c"># 165        RING</span> | 
|  | 472  459 <span class="c"># 166         FRAGMENTS</span> | 
|  | 473  460 <span class="c">#</span> | 
|  | 474 <a name="_GenerateMACCS166Keys-"></a> 461 <span class="k">sub </span><span class="m">_GenerateMACCS166Keys</span> <span class="s">{</span> | 
|  | 475  462   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 476  463   <span class="k">my</span><span class="s">(</span><span class="i">$KeyNum</span><span class="cm">,</span> <span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span> | 
|  | 477  464 | 
|  | 478  465   <span class="i">$SkipPosCheck</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 479  466 | 
|  | 480  467   <span class="c"># Generate and set key values...</span> | 
|  | 481  468   <span class="j">KEYNUM:</span> <span class="k">for</span> <span class="i">$KeyNum</span> <span class="s">(</span><span class="n">1</span> .. <span class="n">166</span><span class="s">)</span> <span class="s">{</span> | 
|  | 482  469     <span class="i">$MethodName</span> = <span class="q">"_Generate166KeySetKey${KeyNum}"</span><span class="sc">;</span> | 
|  | 483  470     <span class="i">$KeyValue</span> = <span class="i">$This</span><span class="i">->$MethodName</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 484  471 | 
|  | 485  472     <span class="k">if</span> <span class="s">(</span>!<span class="i">$KeyValue</span><span class="s">)</span> <span class="s">{</span> | 
|  | 486  473       <span class="k">next</span> <span class="j">KEYNUM</span><span class="sc">;</span> | 
|  | 487  474     <span class="s">}</span> | 
|  | 488  475     <span class="i">$KeyIndex</span> = <span class="i">$KeyNum</span> - <span class="n">1</span><span class="sc">;</span> | 
|  | 489  476     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 490  477       <span class="i">$This</span>->{<span class="w">FingerprintsBitVector</span>}<span class="i">->SetBit</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span> | 
|  | 491  478     <span class="s">}</span> | 
|  | 492  479     <span class="k">else</span> <span class="s">{</span> | 
|  | 493  480       <span class="i">$This</span>->{<span class="w">FingerprintsVector</span>}<span class="i">->SetValue</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span> | 
|  | 494  481     <span class="s">}</span> | 
|  | 495  482   <span class="s">}</span> | 
|  | 496  483 | 
|  | 497  484   <span class="c"># Add key labels for MACCSKeyCount...</span> | 
|  | 498  485   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 499  486     <span class="i">$This</span><span class="i">->_SetMACCSKeyCountValueIDs</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 500  487   <span class="s">}</span> | 
|  | 501  488 | 
|  | 502  489   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 503  490 <span class="s">}</span> | 
|  | 504  491 | 
|  | 505  492 <span class="c"># Generate MDL MACCS 322 keys...</span> | 
|  | 506  493 <span class="c">#</span> | 
|  | 507  494 <span class="c"># MDL MACCS 322 key set is defined in tables 1, 2 and 3 by: Joseph L. Durant; Burton A. Leland;</span> | 
|  | 508  495 <span class="c"># Douglas R. Henry; James G. Nourse. Reoptimization of MDL Keys for Use in Drug Discovery [ Ref. 46 ].</span> | 
|  | 509  496 <span class="c">#</span> | 
|  | 510  497 <span class="c"># Atom symbols:</span> | 
|  | 511  498 <span class="c">#</span> | 
|  | 512  499 <span class="c"># A : Any valid perodic table element symbol</span> | 
|  | 513  500 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span> | 
|  | 514  501 <span class="c"># X  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span> | 
|  | 515  502 <span class="c"># Z is neither defined nor used</span> | 
|  | 516  503 <span class="c">#</span> | 
|  | 517  504 <span class="c"># Atom symbol, X, used for 322 keys [ Ref 46 ] doesn't refer to Halogens as it does for 166 keys. In</span> | 
|  | 518  505 <span class="c"># order to keep the definition of 322 keys consistent with the published definitions, the symbol X is</span> | 
|  | 519  506 <span class="c"># used to imply "others" atoms, but it's internally mapped to symbol X as defined for 166 keys</span> | 
|  | 520  507 <span class="c"># during the generation of key values.</span> | 
|  | 521  508 <span class="c">#</span> | 
|  | 522  509 <span class="c"># The keys include:</span> | 
|  | 523  510 <span class="c">#</span> | 
|  | 524  511 <span class="c"># o 26 atom properties of type P, as listed in Table 1</span> | 
|  | 525  512 <span class="c"># o 32 one-atom environments, as listed in Table 3</span> | 
|  | 526  513 <span class="c"># o 264 atom-bond-atom combinations listed in Table 4</span> | 
|  | 527  514 <span class="c">#</span> | 
|  | 528  515 <span class="c"># Total number of keys in three tables: 322</span> | 
|  | 529  516 <span class="c">#</span> | 
|  | 530  517 <span class="c"># Removal of two rare properties in Table 1 number 21 and 22 results in a 320 keyset.</span> | 
|  | 531  518 <span class="c">#</span> | 
|  | 532  519 <span class="c"># Atom properties-based keys (26):</span> | 
|  | 533  520 <span class="c">#</span> | 
|  | 534  521 <span class="c"># Index Description</span> | 
|  | 535  522 <span class="c"># 1     A(AAA) or AA(A)A - atom with at least three neighbors</span> | 
|  | 536  523 <span class="c"># 2     Q - heteroatom</span> | 
|  | 537  524 <span class="c"># 3     Anot%not-A - atom involved in one or more multiple bonds, not aromatic</span> | 
|  | 538  525 <span class="c"># 4     A(AAAA) or AA(A)(A)A - atom with at least four neighbors</span> | 
|  | 539  526 <span class="c"># 5     A(QQ) or QA(Q) - atom with at least two heteroatom neighbors</span> | 
|  | 540  527 <span class="c"># 6     A(QQQ) or QA(Q)Q - atom with at least three heteroatom neighbors</span> | 
|  | 541  528 <span class="c"># 7     QH - heteroatom with at least one hydrogen attached</span> | 
|  | 542  529 <span class="c"># 8     CH2(AA) or ACH2A - carbon with at least two single bonds and at least two hydrogens attached</span> | 
|  | 543  530 <span class="c"># 9     CH3(A) or ACH3 - carbon with at least one single bond and at least three hydrogens attached</span> | 
|  | 544  531 <span class="c"># 10    Halogen</span> | 
|  | 545  532 <span class="c"># 11    A(-A-A-A) or A-A(-A)-A - atom has at least three single bonds</span> | 
|  | 546  533 <span class="c"># 12    AAAAAA@1 > 2 - atom is in at least two different six-membered rings</span> | 
|  | 547  534 <span class="c"># 13    A($A$A$A) or A$A($A)$A - atom has more than two ring bonds</span> | 
|  | 548  535 <span class="c"># 14    A$A!A$A - atom is at a ring/chain boundary. When a comparison is done</span> | 
|  | 549  536 <span class="c">#       with another atom the path passes through the chain bond.</span> | 
|  | 550  537 <span class="c"># 15    Anot%A%Anot%A - atom is at an aromatic/nonaromatic boundary. When a</span> | 
|  | 551  538 <span class="c">#       comparison is done with another atom the path</span> | 
|  | 552  539 <span class="c">#       passes through the aromatic bond.</span> | 
|  | 553  540 <span class="c"># 16    A!A!A  - atom with more than one chain bond</span> | 
|  | 554  541 <span class="c"># 17    A!A$A!A - atom is at a ring/chain boundary. When a comparison is done</span> | 
|  | 555  542 <span class="c">#       with another atom the path passes through the ring bond.</span> | 
|  | 556  543 <span class="c"># 18    A%Anot%A%A - atom is at an aromatic/nonaromatic boundary. When a</span> | 
|  | 557  544 <span class="c">#       comparison is done with another atom the</span> | 
|  | 558  545 <span class="c">#       path passes through the nonaromatic bond.</span> | 
|  | 559  546 <span class="c"># 19    HETEROCYCLE - atom is a heteroatom in a ring.</span> | 
|  | 560  547 <span class="c"># 20    rare properties: atom with five or more neighbors, atom in</span> | 
|  | 561  548 <span class="c">#       four or more rings, or atom types other than</span> | 
|  | 562  549 <span class="c">#       H, C, N, O, S, F, Cl, Br, or I</span> | 
|  | 563  550 <span class="c"># 21    rare properties: atom has a charge, is an isotope, has two or</span> | 
|  | 564  551 <span class="c">#       more multiple bonds, or has a triple bond.</span> | 
|  | 565  552 <span class="c"># 22    N - nitrogen</span> | 
|  | 566  553 <span class="c"># 23    S - sulfur</span> | 
|  | 567  554 <span class="c"># 24    O - oxygen</span> | 
|  | 568  555 <span class="c"># 25    A(AA)A(A)A(AA) - atom has two neighbors, each with three or more neighbors</span> | 
|  | 569  556 <span class="c">#       (including the central atom).</span> | 
|  | 570  557 <span class="c"># 26    CHACH2 - atom has two hydrocarbon (CH2) neighbors</span> | 
|  | 571  558 <span class="c">#</span> | 
|  | 572  559 <span class="c">#</span> | 
|  | 573  560 <span class="c"># Atomic environments properties-based keys (32):</span> | 
|  | 574  561 <span class="c">#</span> | 
|  | 575  562 <span class="c"># Index Key Description</span> | 
|  | 576  563 <span class="c"># 27    C(CC)</span> | 
|  | 577  564 <span class="c"># 28    C(CCC)</span> | 
|  | 578  565 <span class="c"># 29    C(CN)</span> | 
|  | 579  566 <span class="c"># 30    C(CCN)</span> | 
|  | 580  567 <span class="c"># 31    C(NN)</span> | 
|  | 581  568 <span class="c"># 32    C(NNC)</span> | 
|  | 582  569 <span class="c"># 33    C(NNN)</span> | 
|  | 583  570 <span class="c"># 34    C(CO)</span> | 
|  | 584  571 <span class="c"># 35    C(CCO)</span> | 
|  | 585  572 <span class="c"># 36    C(NO)</span> | 
|  | 586  573 <span class="c"># 37    C(NCO)</span> | 
|  | 587  574 <span class="c"># 38    C(NNO)</span> | 
|  | 588  575 <span class="c"># 39    C(OO)</span> | 
|  | 589  576 <span class="c"># 40    C(COO)</span> | 
|  | 590  577 <span class="c"># 41    C(NOO)</span> | 
|  | 591  578 <span class="c"># 42    C(OOO)</span> | 
|  | 592  579 <span class="c"># 43    Q(CC)</span> | 
|  | 593  580 <span class="c"># 44    Q(CCC)</span> | 
|  | 594  581 <span class="c"># 45    Q(CN)</span> | 
|  | 595  582 <span class="c"># 46    Q(CCN)</span> | 
|  | 596  583 <span class="c"># 47    Q(NN)</span> | 
|  | 597  584 <span class="c"># 48    Q(CNN)</span> | 
|  | 598  585 <span class="c"># 49    Q(NNN)</span> | 
|  | 599  586 <span class="c"># 50    Q(CO)</span> | 
|  | 600  587 <span class="c"># 51    Q(CCO)</span> | 
|  | 601  588 <span class="c"># 52    Q(NO)</span> | 
|  | 602  589 <span class="c"># 53    Q(CNO)</span> | 
|  | 603  590 <span class="c"># 54    Q(NNO)</span> | 
|  | 604  591 <span class="c"># 55    Q(OO)</span> | 
|  | 605  592 <span class="c"># 56    Q(COO)</span> | 
|  | 606  593 <span class="c"># 57    Q(NOO)</span> | 
|  | 607  594 <span class="c"># 58    Q(OOO)</span> | 
|  | 608  595 <span class="c">#</span> | 
|  | 609  596 <span class="c"># Note: The first symbol is the central atom, with atoms bonded to the</span> | 
|  | 610  597 <span class="c"># central atom listed in parentheses. Q is any non-C, non-H atom. If</span> | 
|  | 611  598 <span class="c"># only two atoms are in parentheses, there is no implication concerning</span> | 
|  | 612  599 <span class="c"># the other atoms bonded to the central atom.</span> | 
|  | 613  600 <span class="c">#</span> | 
|  | 614  601 <span class="c"># Atom-Bond-Atom properties-based keys: (264)</span> | 
|  | 615  602 <span class="c">#</span> | 
|  | 616  603 <span class="c"># Index Key Description</span> | 
|  | 617  604 <span class="c"># 59    C-C</span> | 
|  | 618  605 <span class="c"># 60    C-N</span> | 
|  | 619  606 <span class="c"># 61    C-O</span> | 
|  | 620  607 <span class="c"># 62    C-S</span> | 
|  | 621  608 <span class="c"># 63    C-Cl</span> | 
|  | 622  609 <span class="c"># 64    C-P</span> | 
|  | 623  610 <span class="c"># 65    C-F</span> | 
|  | 624  611 <span class="c"># 66    C-Br</span> | 
|  | 625  612 <span class="c"># 67    C-Si</span> | 
|  | 626  613 <span class="c"># 68    C-I</span> | 
|  | 627  614 <span class="c"># 69    C-X</span> | 
|  | 628  615 <span class="c"># 70    N-N</span> | 
|  | 629  616 <span class="c"># 71    N-O</span> | 
|  | 630  617 <span class="c"># 72    N-S</span> | 
|  | 631  618 <span class="c"># 73    N-Cl</span> | 
|  | 632  619 <span class="c"># 74    N-P</span> | 
|  | 633  620 <span class="c"># 75    N-F</span> | 
|  | 634  621 <span class="c"># 76    N-Br</span> | 
|  | 635  622 <span class="c"># 77    N-Si</span> | 
|  | 636  623 <span class="c"># 78    N-I</span> | 
|  | 637  624 <span class="c"># 79    N-X</span> | 
|  | 638  625 <span class="c"># 80    O-O</span> | 
|  | 639  626 <span class="c"># 81    O-S</span> | 
|  | 640  627 <span class="c"># 82    O-Cl</span> | 
|  | 641  628 <span class="c"># 83    O-P</span> | 
|  | 642  629 <span class="c"># 84    O-F</span> | 
|  | 643  630 <span class="c"># 85    O-Br</span> | 
|  | 644  631 <span class="c"># 86    O-Si</span> | 
|  | 645  632 <span class="c"># 87    O-I</span> | 
|  | 646  633 <span class="c"># 88    O-X</span> | 
|  | 647  634 <span class="c"># 89    S-S</span> | 
|  | 648  635 <span class="c"># 90    S-Cl</span> | 
|  | 649  636 <span class="c"># 91    S-P</span> | 
|  | 650  637 <span class="c"># 92    S-F</span> | 
|  | 651  638 <span class="c"># 93    S-Br</span> | 
|  | 652  639 <span class="c"># 94    S-Si</span> | 
|  | 653  640 <span class="c"># 95    S-I</span> | 
|  | 654  641 <span class="c"># 96    S-X</span> | 
|  | 655  642 <span class="c"># 97    Cl-Cl</span> | 
|  | 656  643 <span class="c"># 98    Cl-P</span> | 
|  | 657  644 <span class="c"># 99    Cl-F</span> | 
|  | 658  645 <span class="c"># 100   Cl-Br</span> | 
|  | 659  646 <span class="c"># 101   Cl-Si</span> | 
|  | 660  647 <span class="c"># 102   Cl-I</span> | 
|  | 661  648 <span class="c"># 103   Cl-X</span> | 
|  | 662  649 <span class="c"># 104   P-P</span> | 
|  | 663  650 <span class="c"># 105   P-F</span> | 
|  | 664  651 <span class="c"># 106   P-Br</span> | 
|  | 665  652 <span class="c"># 107   P-Si</span> | 
|  | 666  653 <span class="c"># 108   P-I</span> | 
|  | 667  654 <span class="c"># 109   P-X</span> | 
|  | 668  655 <span class="c"># 110   F-F</span> | 
|  | 669  656 <span class="c"># 111   F-Br</span> | 
|  | 670  657 <span class="c"># 112   F-Si</span> | 
|  | 671  658 <span class="c"># 113   F-I</span> | 
|  | 672  659 <span class="c"># 114   F-X</span> | 
|  | 673  660 <span class="c"># 115   Br-Br</span> | 
|  | 674  661 <span class="c"># 116   Br-Si</span> | 
|  | 675  662 <span class="c"># 117   Br-I</span> | 
|  | 676  663 <span class="c"># 118   Br-X</span> | 
|  | 677  664 <span class="c"># 119   Si-Si</span> | 
|  | 678  665 <span class="c"># 120   Si-I</span> | 
|  | 679  666 <span class="c"># 121   Si-X</span> | 
|  | 680  667 <span class="c"># 122   I-I</span> | 
|  | 681  668 <span class="c"># 123   I-X</span> | 
|  | 682  669 <span class="c"># 124   X-X</span> | 
|  | 683  670 <span class="c"># 125   C=C</span> | 
|  | 684  671 <span class="c"># 126   C=N</span> | 
|  | 685  672 <span class="c"># 127   C=O</span> | 
|  | 686  673 <span class="c"># 128   C=S</span> | 
|  | 687  674 <span class="c"># 129   C=Cl</span> | 
|  | 688  675 <span class="c"># 130   C=P</span> | 
|  | 689  676 <span class="c"># 131   C=F</span> | 
|  | 690  677 <span class="c"># 132   C=Br</span> | 
|  | 691  678 <span class="c"># 133   C=Si</span> | 
|  | 692  679 <span class="c"># 134   C=I</span> | 
|  | 693  680 <span class="c"># 135   C=X</span> | 
|  | 694  681 <span class="c"># 136   N=N</span> | 
|  | 695  682 <span class="c"># 137   N=O</span> | 
|  | 696  683 <span class="c"># 138   N=S</span> | 
|  | 697  684 <span class="c"># 139   N=Cl</span> | 
|  | 698  685 <span class="c"># 140   N=P</span> | 
|  | 699  686 <span class="c"># 141   N=F</span> | 
|  | 700  687 <span class="c"># 142   N=Br</span> | 
|  | 701  688 <span class="c"># 143   N=Si</span> | 
|  | 702  689 <span class="c"># 144   N=I</span> | 
|  | 703  690 <span class="c"># 145   N=X</span> | 
|  | 704  691 <span class="c"># 146   O=O</span> | 
|  | 705  692 <span class="c"># 147   O=S</span> | 
|  | 706  693 <span class="c"># 148   O=Cl</span> | 
|  | 707  694 <span class="c"># 149   O=P</span> | 
|  | 708  695 <span class="c"># 150   O=F</span> | 
|  | 709  696 <span class="c"># 151   O=Br</span> | 
|  | 710  697 <span class="c"># 152   O=Si</span> | 
|  | 711  698 <span class="c"># 153   O=I</span> | 
|  | 712  699 <span class="c"># 154   O=X</span> | 
|  | 713  700 <span class="c"># 155   S=S</span> | 
|  | 714  701 <span class="c"># 156   S=Cl</span> | 
|  | 715  702 <span class="c"># 157   S=P</span> | 
|  | 716  703 <span class="c"># 158   S=F</span> | 
|  | 717  704 <span class="c"># 159   S=Br</span> | 
|  | 718  705 <span class="c"># 160   S=Si</span> | 
|  | 719  706 <span class="c"># 161   S=I</span> | 
|  | 720  707 <span class="c"># 162   S=X</span> | 
|  | 721  708 <span class="c"># 163   Cl=Cl</span> | 
|  | 722  709 <span class="c"># 164   Cl=P</span> | 
|  | 723  710 <span class="c"># 165   Cl=F</span> | 
|  | 724  711 <span class="c"># 166   Cl=Br</span> | 
|  | 725  712 <span class="c"># 167   Cl=Si</span> | 
|  | 726  713 <span class="c"># 168   Cl=I</span> | 
|  | 727  714 <span class="c"># 169   Cl=X</span> | 
|  | 728  715 <span class="c"># 170   P=P</span> | 
|  | 729  716 <span class="c"># 171   P=F</span> | 
|  | 730  717 <span class="c"># 172   P=Br</span> | 
|  | 731  718 <span class="c"># 173   P=Si</span> | 
|  | 732  719 <span class="c"># 174   P=I</span> | 
|  | 733  720 <span class="c"># 175   P=X</span> | 
|  | 734  721 <span class="c"># 176   F=F</span> | 
|  | 735  722 <span class="c"># 177   F=Br</span> | 
|  | 736  723 <span class="c"># 178   F=Si</span> | 
|  | 737  724 <span class="c"># 179   F=I</span> | 
|  | 738  725 <span class="c"># 180   F=X</span> | 
|  | 739  726 <span class="c"># 181   Br=Br</span> | 
|  | 740  727 <span class="c"># 182   Br=Si</span> | 
|  | 741  728 <span class="c"># 183   Br=I</span> | 
|  | 742  729 <span class="c"># 184   Br=X</span> | 
|  | 743  730 <span class="c"># 185   Si=Si</span> | 
|  | 744  731 <span class="c"># 186   Si=I</span> | 
|  | 745  732 <span class="c"># 187   Si=X</span> | 
|  | 746  733 <span class="c"># 188   I=I</span> | 
|  | 747  734 <span class="c"># 189   I=X</span> | 
|  | 748  735 <span class="c"># 190   X=X</span> | 
|  | 749  736 <span class="c"># 191   C#C</span> | 
|  | 750  737 <span class="c"># 192   C#N</span> | 
|  | 751  738 <span class="c"># 193   C#O</span> | 
|  | 752  739 <span class="c"># 194   C#S</span> | 
|  | 753  740 <span class="c"># 195   C#Cl</span> | 
|  | 754  741 <span class="c"># 196   C#P</span> | 
|  | 755  742 <span class="c"># 197   C#F</span> | 
|  | 756  743 <span class="c"># 198   C#Br</span> | 
|  | 757  744 <span class="c"># 199   C#Si</span> | 
|  | 758  745 <span class="c"># 200   C#I</span> | 
|  | 759  746 <span class="c"># 201   C#X</span> | 
|  | 760  747 <span class="c"># 202   N#N</span> | 
|  | 761  748 <span class="c"># 203   N#O</span> | 
|  | 762  749 <span class="c"># 204   N#S</span> | 
|  | 763  750 <span class="c"># 205   N#Cl</span> | 
|  | 764  751 <span class="c"># 206   N#P</span> | 
|  | 765  752 <span class="c"># 207   N#F</span> | 
|  | 766  753 <span class="c"># 208   N#Br</span> | 
|  | 767  754 <span class="c"># 209   N#Si</span> | 
|  | 768  755 <span class="c"># 210   N#I</span> | 
|  | 769  756 <span class="c"># 211   N#X</span> | 
|  | 770  757 <span class="c"># 212   O#O</span> | 
|  | 771  758 <span class="c"># 213   O#S</span> | 
|  | 772  759 <span class="c"># 214   O#Cl</span> | 
|  | 773  760 <span class="c"># 215   O#P</span> | 
|  | 774  761 <span class="c"># 216   O#F</span> | 
|  | 775  762 <span class="c"># 217   O#Br</span> | 
|  | 776  763 <span class="c"># 218   O#Si</span> | 
|  | 777  764 <span class="c"># 219   O#I</span> | 
|  | 778  765 <span class="c"># 220   O#X</span> | 
|  | 779  766 <span class="c"># 221   S#S</span> | 
|  | 780  767 <span class="c"># 222   S#Cl</span> | 
|  | 781  768 <span class="c"># 223   S#P</span> | 
|  | 782  769 <span class="c"># 224   S#F</span> | 
|  | 783  770 <span class="c"># 225   S#Br</span> | 
|  | 784  771 <span class="c"># 226   S#Si</span> | 
|  | 785  772 <span class="c"># 227   S#I</span> | 
|  | 786  773 <span class="c"># 228   S#X</span> | 
|  | 787  774 <span class="c"># 229   Cl#Cl</span> | 
|  | 788  775 <span class="c"># 230   Cl#P</span> | 
|  | 789  776 <span class="c"># 231   Cl#F</span> | 
|  | 790  777 <span class="c"># 232   Cl#Br</span> | 
|  | 791  778 <span class="c"># 233   Cl#Si</span> | 
|  | 792  779 <span class="c"># 234   Cl#I</span> | 
|  | 793  780 <span class="c"># 235   Cl#X</span> | 
|  | 794  781 <span class="c"># 236   P#P</span> | 
|  | 795  782 <span class="c"># 237   P#F</span> | 
|  | 796  783 <span class="c"># 238   P#Br</span> | 
|  | 797  784 <span class="c"># 239   P#Si</span> | 
|  | 798  785 <span class="c"># 240   P#I</span> | 
|  | 799  786 <span class="c"># 241   P#X</span> | 
|  | 800  787 <span class="c"># 242   F#F</span> | 
|  | 801  788 <span class="c"># 243   F#Br</span> | 
|  | 802  789 <span class="c"># 244   F#Si</span> | 
|  | 803  790 <span class="c"># 245   F#I</span> | 
|  | 804  791 <span class="c"># 246   F#X</span> | 
|  | 805  792 <span class="c"># 247   Br#Br</span> | 
|  | 806  793 <span class="c"># 248   Br#Si</span> | 
|  | 807  794 <span class="c"># 249   Br#I</span> | 
|  | 808  795 <span class="c"># 250   Br#X</span> | 
|  | 809  796 <span class="c"># 251   Si#Si</span> | 
|  | 810  797 <span class="c"># 252   Si#I</span> | 
|  | 811  798 <span class="c"># 253   Si#X</span> | 
|  | 812  799 <span class="c"># 254   I#I</span> | 
|  | 813  800 <span class="c"># 255   I#X</span> | 
|  | 814  801 <span class="c"># 256   X#X</span> | 
|  | 815  802 <span class="c"># 257   C$C</span> | 
|  | 816  803 <span class="c"># 258   C$N</span> | 
|  | 817  804 <span class="c"># 259   C$O</span> | 
|  | 818  805 <span class="c"># 260   C$S</span> | 
|  | 819  806 <span class="c"># 261   C$Cl</span> | 
|  | 820  807 <span class="c"># 262   C$P</span> | 
|  | 821  808 <span class="c"># 263   C$F</span> | 
|  | 822  809 <span class="c"># 264   C$Br</span> | 
|  | 823  810 <span class="c"># 265   C$Si</span> | 
|  | 824  811 <span class="c"># 266   C$I</span> | 
|  | 825  812 <span class="c"># 267   C$X</span> | 
|  | 826  813 <span class="c"># 268   N$N</span> | 
|  | 827  814 <span class="c"># 269   N$O</span> | 
|  | 828  815 <span class="c"># 270   N$S</span> | 
|  | 829  816 <span class="c"># 271   N$Cl</span> | 
|  | 830  817 <span class="c"># 272   N$P</span> | 
|  | 831  818 <span class="c"># 273   N$F</span> | 
|  | 832  819 <span class="c"># 274   N$Br</span> | 
|  | 833  820 <span class="c"># 275   N$Si</span> | 
|  | 834  821 <span class="c"># 276   N$I</span> | 
|  | 835  822 <span class="c"># 277   N$X</span> | 
|  | 836  823 <span class="c"># 278   O$O</span> | 
|  | 837  824 <span class="c"># 279   O$S</span> | 
|  | 838  825 <span class="c"># 280   O$Cl</span> | 
|  | 839  826 <span class="c"># 281   O$P</span> | 
|  | 840  827 <span class="c"># 282   O$F</span> | 
|  | 841  828 <span class="c"># 283   O$Br</span> | 
|  | 842  829 <span class="c"># 284   O$Si</span> | 
|  | 843  830 <span class="c"># 285   O$I</span> | 
|  | 844  831 <span class="c"># 286   O$X</span> | 
|  | 845  832 <span class="c"># 287   S$S</span> | 
|  | 846  833 <span class="c"># 288   S$Cl</span> | 
|  | 847  834 <span class="c"># 289   S$P</span> | 
|  | 848  835 <span class="c"># 290   S$F</span> | 
|  | 849  836 <span class="c"># 291   S$Br</span> | 
|  | 850  837 <span class="c"># 292   S$Si</span> | 
|  | 851  838 <span class="c"># 293   S$I</span> | 
|  | 852  839 <span class="c"># 294   S$X</span> | 
|  | 853  840 <span class="c"># 295   Cl$Cl</span> | 
|  | 854  841 <span class="c"># 296   Cl$P</span> | 
|  | 855  842 <span class="c"># 297   Cl$F</span> | 
|  | 856  843 <span class="c"># 298   Cl$Br</span> | 
|  | 857  844 <span class="c"># 299   Cl$Si</span> | 
|  | 858  845 <span class="c"># 300   Cl$I</span> | 
|  | 859  846 <span class="c"># 301   Cl$X</span> | 
|  | 860  847 <span class="c"># 302   P$P</span> | 
|  | 861  848 <span class="c"># 303   P$F</span> | 
|  | 862  849 <span class="c"># 304   P$Br</span> | 
|  | 863  850 <span class="c"># 305   P$Si</span> | 
|  | 864  851 <span class="c"># 306   P$I</span> | 
|  | 865  852 <span class="c"># 307   P$X</span> | 
|  | 866  853 <span class="c"># 308   F$F</span> | 
|  | 867  854 <span class="c"># 309   F$Br</span> | 
|  | 868  855 <span class="c"># 310   F$Si</span> | 
|  | 869  856 <span class="c"># 311   F$I</span> | 
|  | 870  857 <span class="c"># 312   F$X</span> | 
|  | 871  858 <span class="c"># 313   Br$Br</span> | 
|  | 872  859 <span class="c"># 314   Br$Si</span> | 
|  | 873  860 <span class="c"># 315   Br$I</span> | 
|  | 874  861 <span class="c"># 316   Br$X</span> | 
|  | 875  862 <span class="c"># 317   Si$Si</span> | 
|  | 876  863 <span class="c"># 318   Si$I</span> | 
|  | 877  864 <span class="c"># 319   Si$X</span> | 
|  | 878  865 <span class="c"># 320   I$I</span> | 
|  | 879  866 <span class="c"># 321   I$X</span> | 
|  | 880  867 <span class="c"># 322   X$X</span> | 
|  | 881  868 <span class="c">#</span> | 
|  | 882  869 <span class="c"># Note: Instead of using '%' as rind bond as mentioned in the article [ Ref. 46 ], MayaChemTools</span> | 
|  | 883  870 <span class="c"># used '$' as a symbol for ring bond to follow conventions used for MACCS 166 keys; the symbol '%'</span> | 
|  | 884  871 <span class="c"># is used to indicate an aromatic query bond.</span> | 
|  | 885  872 <span class="c">#</span> | 
|  | 886 <a name="_GenerateMACCS322Keys-"></a> 873 <span class="k">sub </span><span class="m">_GenerateMACCS322Keys</span> <span class="s">{</span> | 
|  | 887  874   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 888  875   <span class="k">my</span><span class="s">(</span><span class="i">$KeyNum</span><span class="cm">,</span> <span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span> | 
|  | 889  876 | 
|  | 890  877   <span class="i">$SkipPosCheck</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 891  878 | 
|  | 892  879   <span class="c"># Generate and set key values...</span> | 
|  | 893  880   <span class="j">KEYNUM:</span> <span class="k">for</span> <span class="i">$KeyNum</span> <span class="s">(</span><span class="n">1</span> .. <span class="n">322</span><span class="s">)</span> <span class="s">{</span> | 
|  | 894  881     <span class="i">$MethodName</span> = <span class="q">"_Generate322KeySetKey${KeyNum}"</span><span class="sc">;</span> | 
|  | 895  882     <span class="i">$KeyValue</span> = <span class="i">$This</span><span class="i">->$MethodName</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 896  883 | 
|  | 897  884     <span class="k">if</span> <span class="s">(</span>!<span class="i">$KeyValue</span><span class="s">)</span> <span class="s">{</span> | 
|  | 898  885       <span class="k">next</span> <span class="j">KEYNUM</span><span class="sc">;</span> | 
|  | 899  886     <span class="s">}</span> | 
|  | 900  887     <span class="i">$KeyIndex</span> = <span class="i">$KeyNum</span> - <span class="n">1</span><span class="sc">;</span> | 
|  | 901  888     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 902  889       <span class="i">$This</span>->{<span class="w">FingerprintsBitVector</span>}<span class="i">->SetBit</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span> | 
|  | 903  890     <span class="s">}</span> | 
|  | 904  891     <span class="k">else</span> <span class="s">{</span> | 
|  | 905  892       <span class="i">$This</span>->{<span class="w">FingerprintsVector</span>}<span class="i">->SetValue</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span> | 
|  | 906  893     <span class="s">}</span> | 
|  | 907  894   <span class="s">}</span> | 
|  | 908  895 | 
|  | 909  896   <span class="c"># Add key labels for MACCSKeyCount...</span> | 
|  | 910  897   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 911  898     <span class="i">$This</span><span class="i">->_SetMACCSKeyCountValueIDs</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 912  899   <span class="s">}</span> | 
|  | 913  900   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 914  901 <span class="s">}</span> | 
|  | 915  902 | 
|  | 916  903 <span class="c"># Set MACCS key count value IDs for fingerprint vector. The value IDs labels format</span> | 
|  | 917  904 <span class="c"># is: Key<KeyNum>.</span> | 
|  | 918  905 <span class="c">#</span> | 
|  | 919  906 <span class="c"># By default, no value IDs are set for fingerprint vector values.</span> | 
|  | 920  907 <span class="c">#</span> | 
|  | 921 <a name="_SetMACCSKeyCountValueIDs-"></a> 908 <span class="k">sub </span><span class="m">_SetMACCSKeyCountValueIDs</span> <span class="s">{</span> | 
|  | 922  909   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 923  910 | 
|  | 924  911   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>->{<span class="w">FingerprintsVector</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 925  912     <span class="k">return</span><span class="sc">;</span> | 
|  | 926  913   <span class="s">}</span> | 
|  | 927  914   <span class="k">my</span><span class="s">(</span><span class="i">@ValueIDs</span><span class="s">)</span><span class="sc">;</span> | 
|  | 928  915 | 
|  | 929  916   <span class="i">@ValueIDs</span> = <span class="k">map</span> <span class="s">{</span> <span class="q">"Key$_"</span><span class="sc">;</span> <span class="s">}</span> <span class="s">(</span><span class="n">1</span> .. <span class="i">$This</span>->{<span class="w">Size</span>}<span class="s">)</span><span class="sc">;</span> | 
|  | 930  917   <span class="i">$This</span>->{<span class="w">FingerprintsVector</span>}<span class="i">->AddValueIDs</span><span class="s">(</span>\<span class="i">@ValueIDs</span><span class="s">)</span><span class="sc">;</span> | 
|  | 931  918 | 
|  | 932  919   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 933  920 <span class="s">}</span> | 
|  | 934  921 | 
|  | 935  922 <span class="c">##################################</span> | 
|  | 936  923 <span class="c">#</span> | 
|  | 937  924 <span class="c">#  Implementation of MDL MACCS 166 keys...</span> | 
|  | 938  925 <span class="c">#</span> | 
|  | 939  926 <span class="c">##################################</span> | 
|  | 940  927 | 
|  | 941  928 <span class="c"># Generate key 1 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 942  929 <span class="c"># presence in a molecule.</span> | 
|  | 943  930 <span class="c">#</span> | 
|  | 944  931 <span class="c"># Key 1 description: ISOTOPE</span> | 
|  | 945  932 <span class="c">#</span> | 
|  | 946 <a name="_Generate166KeySetKey1-"></a> 933 <span class="k">sub </span><span class="m">_Generate166KeySetKey1</span> <span class="s">{</span> | 
|  | 947  934   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 948  935   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 949  936 | 
|  | 950  937   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 951  938   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 952  939     <span class="k">if</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">->IsIsotope</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 953  940       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 954  941         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 955  942         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 956  943       <span class="s">}</span> | 
|  | 957  944       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 958  945     <span class="s">}</span> | 
|  | 959  946   <span class="s">}</span> | 
|  | 960  947   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 961  948 <span class="s">}</span> | 
|  | 962  949 | 
|  | 963  950 <span class="c"># Generate key 2 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 964  951 <span class="c"># presence in a molecule.</span> | 
|  | 965  952 <span class="c">#</span> | 
|  | 966  953 <span class="c"># Key 2 description: 103 < ATOMIC NO. < 256</span> | 
|  | 967  954 <span class="c">#</span> | 
|  | 968 <a name="_Generate166KeySetKey2-"></a> 955 <span class="k">sub </span><span class="m">_Generate166KeySetKey2</span> <span class="s">{</span> | 
|  | 969  956   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 970  957   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 971  958 | 
|  | 972  959   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 973  960   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 974  961     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 975  962     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> > <span class="n">103</span> && <span class="i">$AtomicNumber</span> < <span class="n">256</span><span class="s">)</span> <span class="s">{</span> | 
|  | 976  963       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 977  964         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 978  965         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 979  966       <span class="s">}</span> | 
|  | 980  967       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 981  968     <span class="s">}</span> | 
|  | 982  969   <span class="s">}</span> | 
|  | 983  970   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 984  971 <span class="s">}</span> | 
|  | 985  972 | 
|  | 986  973 <span class="c"># Generate key 3 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 987  974 <span class="c"># presence in a molecule.</span> | 
|  | 988  975 <span class="c">#</span> | 
|  | 989  976 <span class="c"># Key 3 description: GROUP IVA,VA,VIA (GroupNumber: 14, 15, 16) PERIODS 4-6 (Ge...)</span> | 
|  | 990  977 <span class="c">#</span> | 
|  | 991 <a name="_Generate166KeySetKey3-"></a> 978 <span class="k">sub </span><span class="m">_Generate166KeySetKey3</span> <span class="s">{</span> | 
|  | 992  979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 993  980   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="cm">,</span> <span class="i">$PeriodNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 994  981 | 
|  | 995  982   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 996  983   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 997  984     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 998  985     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 999  986       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1000  987       <span class="i">$PeriodNumber</span> = <span class="i">PeriodicTable::GetElementPeriodNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1001  988       <span class="k">if</span> <span class="s">(</span><span class="i">$PeriodNumber</span> =~ <span class="q">/^(4|5|6)$/</span> && <span class="i">$GroupNumber</span> =~ <span class="q">/^(14|15|16)$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1002  989         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1003  990           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1004  991           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1005  992         <span class="s">}</span> | 
|  | 1006  993         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1007  994       <span class="s">}</span> | 
|  | 1008  995     <span class="s">}</span> | 
|  | 1009  996   <span class="s">}</span> | 
|  | 1010  997   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1011  998 <span class="s">}</span> | 
|  | 1012  999 | 
|  | 1013 1000 <span class="c"># Generate key 4 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1014 1001 <span class="c"># presence in a molecule.</span> | 
|  | 1015 1002 <span class="c">#</span> | 
|  | 1016 1003 <span class="c"># Key 4 description: ACTINIDE</span> | 
|  | 1017 1004 <span class="c">#</span> | 
|  | 1018 <a name="_Generate166KeySetKey4-"></a>1005 <span class="k">sub </span><span class="m">_Generate166KeySetKey4</span> <span class="s">{</span> | 
|  | 1019 1006   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1020 1007   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1021 1008 | 
|  | 1022 1009   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1023 1010   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1024 1011     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1025 1012     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> >= <span class="n">89</span> && <span class="i">$AtomicNumber</span> <= <span class="n">103</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1026 1013       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1027 1014         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1028 1015         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1029 1016       <span class="s">}</span> | 
|  | 1030 1017       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1031 1018     <span class="s">}</span> | 
|  | 1032 1019   <span class="s">}</span> | 
|  | 1033 1020   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1034 1021 <span class="s">}</span> | 
|  | 1035 1022 | 
|  | 1036 1023 <span class="c"># Generate key 5 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1037 1024 <span class="c"># presence in a molecule.</span> | 
|  | 1038 1025 <span class="c">#</span> | 
|  | 1039 1026 <span class="c"># Key 5 description: GROUP IIIB,IVB (Sc...)</span> | 
|  | 1040 1027 <span class="c">#</span> | 
|  | 1041 <a name="_Generate166KeySetKey5-"></a>1028 <span class="k">sub </span><span class="m">_Generate166KeySetKey5</span> <span class="s">{</span> | 
|  | 1042 1029   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1043 1030   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1044 1031 | 
|  | 1045 1032   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1046 1033   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1047 1034     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1048 1035     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1049 1036       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1050 1037       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(3|4)$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1051 1038         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1052 1039           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1053 1040           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1054 1041         <span class="s">}</span> | 
|  | 1055 1042         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1056 1043       <span class="s">}</span> | 
|  | 1057 1044     <span class="s">}</span> | 
|  | 1058 1045   <span class="s">}</span> | 
|  | 1059 1046   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1060 1047 <span class="s">}</span> | 
|  | 1061 1048 | 
|  | 1062 1049 <span class="c"># Generate key 6 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1063 1050 <span class="c"># presence in a molecule.</span> | 
|  | 1064 1051 <span class="c">#</span> | 
|  | 1065 1052 <span class="c"># Key 6 description: LANTHANIDE</span> | 
|  | 1066 1053 <span class="c">#</span> | 
|  | 1067 <a name="_Generate166KeySetKey6-"></a>1054 <span class="k">sub </span><span class="m">_Generate166KeySetKey6</span> <span class="s">{</span> | 
|  | 1068 1055   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1069 1056   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1070 1057 | 
|  | 1071 1058   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1072 1059   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1073 1060     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1074 1061     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> >= <span class="n">57</span> && <span class="i">$AtomicNumber</span> <= <span class="n">71</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1075 1062       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1076 1063         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1077 1064         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1078 1065       <span class="s">}</span> | 
|  | 1079 1066       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1080 1067     <span class="s">}</span> | 
|  | 1081 1068   <span class="s">}</span> | 
|  | 1082 1069   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1083 1070 <span class="s">}</span> | 
|  | 1084 1071 | 
|  | 1085 1072 <span class="c"># Generate key 7 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1086 1073 <span class="c"># presence in a molecule.</span> | 
|  | 1087 1074 <span class="c">#</span> | 
|  | 1088 1075 <span class="c"># Key 7 description: GROUP VB,VIB,VIIB (V...)</span> | 
|  | 1089 1076 <span class="c">#</span> | 
|  | 1090 <a name="_Generate166KeySetKey7-"></a>1077 <span class="k">sub </span><span class="m">_Generate166KeySetKey7</span> <span class="s">{</span> | 
|  | 1091 1078   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1092 1079   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1093 1080 | 
|  | 1094 1081   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1095 1082   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1096 1083     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1097 1084     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1098 1085       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1099 1086       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(5|6|7)$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1100 1087         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1101 1088           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1102 1089           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1103 1090         <span class="s">}</span> | 
|  | 1104 1091         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1105 1092       <span class="s">}</span> | 
|  | 1106 1093     <span class="s">}</span> | 
|  | 1107 1094   <span class="s">}</span> | 
|  | 1108 1095   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1109 1096 <span class="s">}</span> | 
|  | 1110 1097 | 
|  | 1111 1098 <span class="c"># Generate key 8 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1112 1099 <span class="c"># presence in a molecule.</span> | 
|  | 1113 1100 <span class="c">#</span> | 
|  | 1114 1101 <span class="c"># Key 8 description: QAAA@1</span> | 
|  | 1115 1102 <span class="c">#</span> | 
|  | 1116 <a name="_Generate166KeySetKey8-"></a>1103 <span class="k">sub </span><span class="m">_Generate166KeySetKey8</span> <span class="s">{</span> | 
|  | 1117 1104   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1118 1105   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1119 1106 | 
|  | 1120 1107   <span class="i">$RingSize</span> = <span class="n">4</span><span class="sc">;</span> | 
|  | 1121 1108   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1122 1109   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1123 1110     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> && <span class="i">$Atom</span><span class="i">->IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1124 1111       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1125 1112         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1126 1113         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1127 1114       <span class="s">}</span> | 
|  | 1128 1115       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1129 1116     <span class="s">}</span> | 
|  | 1130 1117   <span class="s">}</span> | 
|  | 1131 1118   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1132 1119 <span class="s">}</span> | 
|  | 1133 1120 | 
|  | 1134 1121 <span class="c"># Generate key 9 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1135 1122 <span class="c"># presence in a molecule.</span> | 
|  | 1136 1123 <span class="c">#</span> | 
|  | 1137 1124 <span class="c"># Key 9 description: GROUP VIII (Fe...)</span> | 
|  | 1138 1125 <span class="c">#</span> | 
|  | 1139 <a name="_Generate166KeySetKey9-"></a>1126 <span class="k">sub </span><span class="m">_Generate166KeySetKey9</span> <span class="s">{</span> | 
|  | 1140 1127   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1141 1128   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1142 1129 | 
|  | 1143 1130   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1144 1131   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1145 1132     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1146 1133     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1147 1134       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1148 1135       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(8|9|10)$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1149 1136         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1150 1137           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1151 1138           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1152 1139         <span class="s">}</span> | 
|  | 1153 1140         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1154 1141       <span class="s">}</span> | 
|  | 1155 1142     <span class="s">}</span> | 
|  | 1156 1143   <span class="s">}</span> | 
|  | 1157 1144   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1158 1145 <span class="s">}</span> | 
|  | 1159 1146 | 
|  | 1160 1147 <span class="c"># Generate key 10 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1161 1148 <span class="c"># presence in a molecule.</span> | 
|  | 1162 1149 <span class="c">#</span> | 
|  | 1163 1150 <span class="c"># Key 10 description: GROUP IIA (ALKALINE EARTH)</span> | 
|  | 1164 1151 <span class="c">#</span> | 
|  | 1165 <a name="_Generate166KeySetKey10-"></a>1152 <span class="k">sub </span><span class="m">_Generate166KeySetKey10</span> <span class="s">{</span> | 
|  | 1166 1153   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1167 1154   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1168 1155 | 
|  | 1169 1156   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1170 1157   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1171 1158     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1172 1159     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1173 1160       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1174 1161       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^2$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1175 1162         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1176 1163           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1177 1164           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1178 1165         <span class="s">}</span> | 
|  | 1179 1166         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1180 1167       <span class="s">}</span> | 
|  | 1181 1168     <span class="s">}</span> | 
|  | 1182 1169   <span class="s">}</span> | 
|  | 1183 1170   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1184 1171 <span class="s">}</span> | 
|  | 1185 1172 | 
|  | 1186 1173 <span class="c"># Generate key 11 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1187 1174 <span class="c"># presence in a molecule.</span> | 
|  | 1188 1175 <span class="c">#</span> | 
|  | 1189 1176 <span class="c"># Key 11 description: 4M RING</span> | 
|  | 1190 1177 <span class="c">#</span> | 
|  | 1191 <a name="_Generate166KeySetKey11-"></a>1178 <span class="k">sub </span><span class="m">_Generate166KeySetKey11</span> <span class="s">{</span> | 
|  | 1192 1179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1193 1180   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1194 1181 | 
|  | 1195 1182   <span class="i">$RingSize</span> = <span class="n">4</span><span class="sc">;</span> | 
|  | 1196 1183   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1197 1184   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1198 1185 | 
|  | 1199 1186   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1200 1187     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 1201 1188   <span class="s">}</span> | 
|  | 1202 1189   <span class="k">else</span> <span class="s">{</span> | 
|  | 1203 1190     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 1204 1191   <span class="s">}</span> | 
|  | 1205 1192   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1206 1193 <span class="s">}</span> | 
|  | 1207 1194 | 
|  | 1208 1195 <span class="c"># Generate key 12 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1209 1196 <span class="c"># presence in a molecule.</span> | 
|  | 1210 1197 <span class="c">#</span> | 
|  | 1211 1198 <span class="c"># Key 12 description: GROUP IB,IIB (Cu...)</span> | 
|  | 1212 1199 <span class="c">#</span> | 
|  | 1213 <a name="_Generate166KeySetKey12-"></a>1200 <span class="k">sub </span><span class="m">_Generate166KeySetKey12</span> <span class="s">{</span> | 
|  | 1214 1201   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1215 1202   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1216 1203 | 
|  | 1217 1204   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1218 1205   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1219 1206     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1220 1207     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1221 1208       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1222 1209       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(11|12)$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1223 1210         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1224 1211           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1225 1212           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1226 1213         <span class="s">}</span> | 
|  | 1227 1214         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1228 1215       <span class="s">}</span> | 
|  | 1229 1216     <span class="s">}</span> | 
|  | 1230 1217   <span class="s">}</span> | 
|  | 1231 1218   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1232 1219 <span class="s">}</span> | 
|  | 1233 1220 | 
|  | 1234 1221 <span class="c"># Generate key 13 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1235 1222 <span class="c"># presence in a molecule.</span> | 
|  | 1236 1223 <span class="c">#</span> | 
|  | 1237 1224 <span class="c"># Key 13 description: ON(C)C</span> | 
|  | 1238 1225 <span class="c">#</span> | 
|  | 1239 <a name="_Generate166KeySetKey13-"></a>1226 <span class="k">sub </span><span class="m">_Generate166KeySetKey13</span> <span class="s">{</span> | 
|  | 1240 1227   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1241 1228   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1242 1229 | 
|  | 1243 1230   <span class="i">$CentralAtomSymbol</span> = <span class="q">'N'</span><span class="sc">;</span> | 
|  | 1244 1231   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1245 1232   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1246 1233 | 
|  | 1247 1234   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1248 1235 <span class="s">}</span> | 
|  | 1249 1236 | 
|  | 1250 1237 <span class="c"># Generate key 14 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1251 1238 <span class="c"># presence in a molecule.</span> | 
|  | 1252 1239 <span class="c">#</span> | 
|  | 1253 1240 <span class="c"># Key 14 description: S-S</span> | 
|  | 1254 1241 <span class="c">#</span> | 
|  | 1255 <a name="_Generate166KeySetKey14-"></a>1242 <span class="k">sub </span><span class="m">_Generate166KeySetKey14</span> <span class="s">{</span> | 
|  | 1256 1243   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1257 1244   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1258 1245 | 
|  | 1259 1246   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1260 1247 <span class="s">}</span> | 
|  | 1261 1248 | 
|  | 1262 1249 <span class="c"># Generate key 15 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1263 1250 <span class="c"># presence in a molecule.</span> | 
|  | 1264 1251 <span class="c">#</span> | 
|  | 1265 1252 <span class="c"># Key 15 description: OC(O)O</span> | 
|  | 1266 1253 <span class="c">#</span> | 
|  | 1267 <a name="_Generate166KeySetKey15-"></a>1254 <span class="k">sub </span><span class="m">_Generate166KeySetKey15</span> <span class="s">{</span> | 
|  | 1268 1255   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1269 1256   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1270 1257 | 
|  | 1271 1258   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1272 1259   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1273 1260   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1274 1261 | 
|  | 1275 1262   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1276 1263 <span class="s">}</span> | 
|  | 1277 1264 | 
|  | 1278 1265 <span class="c"># Generate key 16 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1279 1266 <span class="c"># presence in a molecule.</span> | 
|  | 1280 1267 <span class="c">#</span> | 
|  | 1281 1268 <span class="c"># Key 16 description: QAA@1</span> | 
|  | 1282 1269 <span class="c">#</span> | 
|  | 1283 <a name="_Generate166KeySetKey16-"></a>1270 <span class="k">sub </span><span class="m">_Generate166KeySetKey16</span> <span class="s">{</span> | 
|  | 1284 1271   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1285 1272   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1286 1273 | 
|  | 1287 1274   <span class="i">$RingSize</span> = <span class="n">3</span><span class="sc">;</span> | 
|  | 1288 1275   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1289 1276   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1290 1277     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> && <span class="i">$Atom</span><span class="i">->IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1291 1278       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1292 1279         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1293 1280         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1294 1281       <span class="s">}</span> | 
|  | 1295 1282       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1296 1283     <span class="s">}</span> | 
|  | 1297 1284   <span class="s">}</span> | 
|  | 1298 1285   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1299 1286 <span class="s">}</span> | 
|  | 1300 1287 | 
|  | 1301 1288 <span class="c"># Generate key 17 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1302 1289 <span class="c"># presence in a molecule.</span> | 
|  | 1303 1290 <span class="c">#</span> | 
|  | 1304 1291 <span class="c"># Key 17 description: CTC</span> | 
|  | 1305 1292 <span class="c">#</span> | 
|  | 1306 <a name="_Generate166KeySetKey17-"></a>1293 <span class="k">sub </span><span class="m">_Generate166KeySetKey17</span> <span class="s">{</span> | 
|  | 1307 1294   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1308 1295   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span> | 
|  | 1309 1296 | 
|  | 1310 1297   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1311 1298 <span class="s">}</span> | 
|  | 1312 1299 | 
|  | 1313 1300 <span class="c"># Generate key 18 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1314 1301 <span class="c"># presence in a molecule.</span> | 
|  | 1315 1302 <span class="c">#</span> | 
|  | 1316 1303 <span class="c"># Key 18 description: GROUP IIIA (B...)</span> | 
|  | 1317 1304 <span class="c">#</span> | 
|  | 1318 <a name="_Generate166KeySetKey18-"></a>1305 <span class="k">sub </span><span class="m">_Generate166KeySetKey18</span> <span class="s">{</span> | 
|  | 1319 1306   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1320 1307   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1321 1308 | 
|  | 1322 1309   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1323 1310   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1324 1311     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1325 1312     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1326 1313       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1327 1314       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^13$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1328 1315         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1329 1316           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1330 1317           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1331 1318         <span class="s">}</span> | 
|  | 1332 1319         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1333 1320       <span class="s">}</span> | 
|  | 1334 1321     <span class="s">}</span> | 
|  | 1335 1322   <span class="s">}</span> | 
|  | 1336 1323   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1337 1324 <span class="s">}</span> | 
|  | 1338 1325 | 
|  | 1339 1326 <span class="c"># Generate key 19 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1340 1327 <span class="c"># presence in a molecule.</span> | 
|  | 1341 1328 <span class="c">#</span> | 
|  | 1342 1329 <span class="c"># Key 19 description: 7M RING</span> | 
|  | 1343 1330 <span class="c">#</span> | 
|  | 1344 <a name="_Generate166KeySetKey19-"></a>1331 <span class="k">sub </span><span class="m">_Generate166KeySetKey19</span> <span class="s">{</span> | 
|  | 1345 1332   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1346 1333   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1347 1334 | 
|  | 1348 1335   <span class="i">$RingSize</span> = <span class="n">7</span><span class="sc">;</span> | 
|  | 1349 1336   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1350 1337   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1351 1338 | 
|  | 1352 1339   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1353 1340   <span class="k">if</span> <span class="s">(</span><span class="i">$NumOfRings</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1354 1341     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 1355 1342   <span class="s">}</span> | 
|  | 1356 1343   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1357 1344 <span class="s">}</span> | 
|  | 1358 1345 | 
|  | 1359 1346 <span class="c"># Generate key 20 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1360 1347 <span class="c"># presence in a molecule.</span> | 
|  | 1361 1348 <span class="c">#</span> | 
|  | 1362 1349 <span class="c"># Key 20 description: SI</span> | 
|  | 1363 1350 <span class="c">#</span> | 
|  | 1364 <a name="_Generate166KeySetKey20-"></a>1351 <span class="k">sub </span><span class="m">_Generate166KeySetKey20</span> <span class="s">{</span> | 
|  | 1365 1352   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1366 1353 | 
|  | 1367 1354   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1368 1355 <span class="s">}</span> | 
|  | 1369 1356 | 
|  | 1370 1357 <span class="c"># Generate key 21 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1371 1358 <span class="c"># presence in a molecule.</span> | 
|  | 1372 1359 <span class="c">#</span> | 
|  | 1373 1360 <span class="c"># Key 21 description: C=C(Q)Q</span> | 
|  | 1374 1361 <span class="c">#</span> | 
|  | 1375 <a name="_Generate166KeySetKey21-"></a>1362 <span class="k">sub </span><span class="m">_Generate166KeySetKey21</span> <span class="s">{</span> | 
|  | 1376 1363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1377 1364   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1378 1365 | 
|  | 1379 1366   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1380 1367   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1381 1368   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'='</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1382 1369 | 
|  | 1383 1370   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1384 1371 <span class="s">}</span> | 
|  | 1385 1372 | 
|  | 1386 1373 <span class="c"># Generate key 22 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1387 1374 <span class="c"># presence in a molecule.</span> | 
|  | 1388 1375 <span class="c">#</span> | 
|  | 1389 1376 <span class="c"># Key 22 description: 3M RING</span> | 
|  | 1390 1377 <span class="c">#</span> | 
|  | 1391 <a name="_Generate166KeySetKey22-"></a>1378 <span class="k">sub </span><span class="m">_Generate166KeySetKey22</span> <span class="s">{</span> | 
|  | 1392 1379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1393 1380   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1394 1381 | 
|  | 1395 1382   <span class="i">$RingSize</span> = <span class="n">3</span><span class="sc">;</span> | 
|  | 1396 1383   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1397 1384   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1398 1385 | 
|  | 1399 1386   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1400 1387     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 1401 1388   <span class="s">}</span> | 
|  | 1402 1389   <span class="k">else</span> <span class="s">{</span> | 
|  | 1403 1390     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 1404 1391   <span class="s">}</span> | 
|  | 1405 1392   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1406 1393 <span class="s">}</span> | 
|  | 1407 1394 | 
|  | 1408 1395 <span class="c"># Generate key 23 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1409 1396 <span class="c"># presence in a molecule.</span> | 
|  | 1410 1397 <span class="c">#</span> | 
|  | 1411 1398 <span class="c"># Key 23 description: NC(O)O</span> | 
|  | 1412 1399 <span class="c">#</span> | 
|  | 1413 <a name="_Generate166KeySetKey23-"></a>1400 <span class="k">sub </span><span class="m">_Generate166KeySetKey23</span> <span class="s">{</span> | 
|  | 1414 1401   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1415 1402   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1416 1403 | 
|  | 1417 1404   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1418 1405   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1419 1406   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1420 1407 | 
|  | 1421 1408   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1422 1409 <span class="s">}</span> | 
|  | 1423 1410 | 
|  | 1424 1411 <span class="c"># Generate key 24 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1425 1412 <span class="c"># presence in a molecule.</span> | 
|  | 1426 1413 <span class="c">#</span> | 
|  | 1427 1414 <span class="c"># Key 24 description: N-O</span> | 
|  | 1428 1415 <span class="c">#</span> | 
|  | 1429 <a name="_Generate166KeySetKey24-"></a>1416 <span class="k">sub </span><span class="m">_Generate166KeySetKey24</span> <span class="s">{</span> | 
|  | 1430 1417   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1431 1418   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1432 1419 | 
|  | 1433 1420   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1434 1421 <span class="s">}</span> | 
|  | 1435 1422 | 
|  | 1436 1423 <span class="c"># Generate key 25 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1437 1424 <span class="c"># presence in a molecule.</span> | 
|  | 1438 1425 <span class="c">#</span> | 
|  | 1439 1426 <span class="c"># Key 25 description: NC(N)N</span> | 
|  | 1440 1427 <span class="c">#</span> | 
|  | 1441 <a name="_Generate166KeySetKey25-"></a>1428 <span class="k">sub </span><span class="m">_Generate166KeySetKey25</span> <span class="s">{</span> | 
|  | 1442 1429   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1443 1430   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1444 1431 | 
|  | 1445 1432   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1446 1433   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1447 1434   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1448 1435 | 
|  | 1449 1436   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1450 1437 <span class="s">}</span> | 
|  | 1451 1438 | 
|  | 1452 1439 <span class="c"># Generate key 26 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1453 1440 <span class="c"># presence in a molecule.</span> | 
|  | 1454 1441 <span class="c">#</span> | 
|  | 1455 1442 <span class="c"># Key 26 description: C$=C($A)$A</span> | 
|  | 1456 1443 <span class="c">#</span> | 
|  | 1457 <a name="_Generate166KeySetKey26-"></a>1444 <span class="k">sub </span><span class="m">_Generate166KeySetKey26</span> <span class="s">{</span> | 
|  | 1458 1445   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1459 1446   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1460 1447 | 
|  | 1461 1448   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1462 1449   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1463 1450   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'$='</span><span class="cm">,</span> <span class="q">'$'</span><span class="cm">,</span> <span class="q">'$'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1464 1451 | 
|  | 1465 1452   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1466 1453 <span class="s">}</span> | 
|  | 1467 1454 | 
|  | 1468 1455 <span class="c"># Generate key 27 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1469 1456 <span class="c"># presence in a molecule.</span> | 
|  | 1470 1457 <span class="c">#</span> | 
|  | 1471 1458 <span class="c"># Key 27 description: I</span> | 
|  | 1472 1459 <span class="c">#</span> | 
|  | 1473 <a name="_Generate166KeySetKey27-"></a>1460 <span class="k">sub </span><span class="m">_Generate166KeySetKey27</span> <span class="s">{</span> | 
|  | 1474 1461   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1475 1462 | 
|  | 1476 1463   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'I'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1477 1464 <span class="s">}</span> | 
|  | 1478 1465 | 
|  | 1479 1466 <span class="c"># Generate key 28 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1480 1467 <span class="c"># presence in a molecule.</span> | 
|  | 1481 1468 <span class="c">#</span> | 
|  | 1482 1469 <span class="c"># Key 28 description: QCH2Q</span> | 
|  | 1483 1470 <span class="c">#</span> | 
|  | 1484 <a name="_Generate166KeySetKey28-"></a>1471 <span class="k">sub </span><span class="m">_Generate166KeySetKey28</span> <span class="s">{</span> | 
|  | 1485 1472   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1486 1473   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1487 1474 | 
|  | 1488 1475   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1489 1476   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1490 1477   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1491 1478   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 1492 1479   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 1493 1480 | 
|  | 1494 1481   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1495 1482 <span class="s">}</span> | 
|  | 1496 1483 | 
|  | 1497 1484 <span class="c"># Generate key 29 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1498 1485 <span class="c"># presence in a molecule.</span> | 
|  | 1499 1486 <span class="c">#</span> | 
|  | 1500 1487 <span class="c"># Key 29 description: P</span> | 
|  | 1501 1488 <span class="c">#</span> | 
|  | 1502 <a name="_Generate166KeySetKey29-"></a>1489 <span class="k">sub </span><span class="m">_Generate166KeySetKey29</span> <span class="s">{</span> | 
|  | 1503 1490   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1504 1491 | 
|  | 1505 1492   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'P'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1506 1493 <span class="s">}</span> | 
|  | 1507 1494 | 
|  | 1508 1495 <span class="c"># Generate key 30 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1509 1496 <span class="c"># presence in a molecule.</span> | 
|  | 1510 1497 <span class="c">#</span> | 
|  | 1511 1498 <span class="c"># Key 30 description: CQ(C)(C)A</span> | 
|  | 1512 1499 <span class="c">#</span> | 
|  | 1513 <a name="_Generate166KeySetKey30-"></a>1500 <span class="k">sub </span><span class="m">_Generate166KeySetKey30</span> <span class="s">{</span> | 
|  | 1514 1501   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1515 1502   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1516 1503 | 
|  | 1517 1504   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 1518 1505   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1519 1506   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1520 1507 | 
|  | 1521 1508   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1522 1509 <span class="s">}</span> | 
|  | 1523 1510 | 
|  | 1524 1511 <span class="c"># Generate key 31 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1525 1512 <span class="c"># presence in a molecule.</span> | 
|  | 1526 1513 <span class="c">#</span> | 
|  | 1527 1514 <span class="c"># Key 31 description: QX</span> | 
|  | 1528 1515 <span class="c">#</span> | 
|  | 1529 <a name="_Generate166KeySetKey31-"></a>1516 <span class="k">sub </span><span class="m">_Generate166KeySetKey31</span> <span class="s">{</span> | 
|  | 1530 1517   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1531 1518 | 
|  | 1532 1519   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'X'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1533 1520 <span class="s">}</span> | 
|  | 1534 1521 | 
|  | 1535 1522 <span class="c"># Generate key 32 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1536 1523 <span class="c"># presence in a molecule.</span> | 
|  | 1537 1524 <span class="c">#</span> | 
|  | 1538 1525 <span class="c"># Key 32 description: CSN</span> | 
|  | 1539 1526 <span class="c">#</span> | 
|  | 1540 <a name="_Generate166KeySetKey32-"></a>1527 <span class="k">sub </span><span class="m">_Generate166KeySetKey32</span> <span class="s">{</span> | 
|  | 1541 1528   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1542 1529   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1543 1530 | 
|  | 1544 1531   <span class="i">$CentralAtomSymbol</span> = <span class="q">'S'</span><span class="sc">;</span> | 
|  | 1545 1532   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1546 1533   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1547 1534 | 
|  | 1548 1535   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1549 1536 <span class="s">}</span> | 
|  | 1550 1537 | 
|  | 1551 1538 <span class="c"># Generate key 33 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1552 1539 <span class="c"># presence in a molecule.</span> | 
|  | 1553 1540 <span class="c">#</span> | 
|  | 1554 1541 <span class="c"># Key 33 description: NS</span> | 
|  | 1555 1542 <span class="c">#</span> | 
|  | 1556 <a name="_Generate166KeySetKey33-"></a>1543 <span class="k">sub </span><span class="m">_Generate166KeySetKey33</span> <span class="s">{</span> | 
|  | 1557 1544   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1558 1545 | 
|  | 1559 1546   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'S'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1560 1547 <span class="s">}</span> | 
|  | 1561 1548 | 
|  | 1562 1549 <span class="c"># Generate key 34 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1563 1550 <span class="c"># presence in a molecule.</span> | 
|  | 1564 1551 <span class="c">#</span> | 
|  | 1565 1552 <span class="c"># Key 34 description: CH2=A</span> | 
|  | 1566 1553 <span class="c">#</span> | 
|  | 1567 <a name="_Generate166KeySetKey34-"></a>1554 <span class="k">sub </span><span class="m">_Generate166KeySetKey34</span> <span class="s">{</span> | 
|  | 1568 1555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1569 1556   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1570 1557 | 
|  | 1571 1558   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1572 1559   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1573 1560   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'='</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1574 1561   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 1575 1562   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 1576 1563 | 
|  | 1577 1564   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1578 1565 <span class="s">}</span> | 
|  | 1579 1566 | 
|  | 1580 1567 <span class="c"># Generate key 35 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1581 1568 <span class="c"># presence in a molecule.</span> | 
|  | 1582 1569 <span class="c">#</span> | 
|  | 1583 1570 <span class="c"># Key 35 description: GROUP IA (ALKALI METAL)</span> | 
|  | 1584 1571 <span class="c">#</span> | 
|  | 1585 <a name="_Generate166KeySetKey35-"></a>1572 <span class="k">sub </span><span class="m">_Generate166KeySetKey35</span> <span class="s">{</span> | 
|  | 1586 1573   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1587 1574   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1588 1575 | 
|  | 1589 1576   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 1590 1577   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 1591 1578     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1592 1579     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1593 1580       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1594 1581       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^1$/</span><span class="s">)</span> <span class="s">{</span> | 
|  | 1595 1582         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 1596 1583           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1597 1584           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 1598 1585         <span class="s">}</span> | 
|  | 1599 1586         <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 1600 1587       <span class="s">}</span> | 
|  | 1601 1588     <span class="s">}</span> | 
|  | 1602 1589   <span class="s">}</span> | 
|  | 1603 1590   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1604 1591 <span class="s">}</span> | 
|  | 1605 1592 | 
|  | 1606 1593 <span class="c"># Generate key 36 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1607 1594 <span class="c"># presence in a molecule.</span> | 
|  | 1608 1595 <span class="c">#</span> | 
|  | 1609 1596 <span class="c"># Key 36 description: S HETEROCYCLE</span> | 
|  | 1610 1597 <span class="c">#</span> | 
|  | 1611 <a name="_Generate166KeySetKey36-"></a>1598 <span class="k">sub </span><span class="m">_Generate166KeySetKey36</span> <span class="s">{</span> | 
|  | 1612 1599   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1613 1600   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1614 1601 | 
|  | 1615 1602   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1616 1603 <span class="s">}</span> | 
|  | 1617 1604 | 
|  | 1618 1605 <span class="c"># Generate key 37 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1619 1606 <span class="c"># presence in a molecule.</span> | 
|  | 1620 1607 <span class="c">#</span> | 
|  | 1621 1608 <span class="c"># Key 37 description: NC(O)N</span> | 
|  | 1622 1609 <span class="c">#</span> | 
|  | 1623 <a name="_Generate166KeySetKey37-"></a>1610 <span class="k">sub </span><span class="m">_Generate166KeySetKey37</span> <span class="s">{</span> | 
|  | 1624 1611   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1625 1612   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1626 1613 | 
|  | 1627 1614   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1628 1615   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1629 1616   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1630 1617 | 
|  | 1631 1618   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1632 1619 <span class="s">}</span> | 
|  | 1633 1620 | 
|  | 1634 1621 <span class="c"># Generate key 38 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1635 1622 <span class="c"># presence in a molecule.</span> | 
|  | 1636 1623 <span class="c">#</span> | 
|  | 1637 1624 <span class="c"># Key 38 description: NC(C)N</span> | 
|  | 1638 1625 <span class="c">#</span> | 
|  | 1639 <a name="_Generate166KeySetKey38-"></a>1626 <span class="k">sub </span><span class="m">_Generate166KeySetKey38</span> <span class="s">{</span> | 
|  | 1640 1627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1641 1628   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1642 1629 | 
|  | 1643 1630   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1644 1631   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1645 1632   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1646 1633 | 
|  | 1647 1634   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1648 1635 <span class="s">}</span> | 
|  | 1649 1636 | 
|  | 1650 1637 <span class="c"># Generate key 39 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1651 1638 <span class="c"># presence in a molecule.</span> | 
|  | 1652 1639 <span class="c">#</span> | 
|  | 1653 1640 <span class="c"># Key 39 description: OS(O)O</span> | 
|  | 1654 1641 <span class="c">#</span> | 
|  | 1655 <a name="_Generate166KeySetKey39-"></a>1642 <span class="k">sub </span><span class="m">_Generate166KeySetKey39</span> <span class="s">{</span> | 
|  | 1656 1643   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1657 1644   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1658 1645 | 
|  | 1659 1646   <span class="i">$CentralAtomSymbol</span> = <span class="q">'S'</span><span class="sc">;</span> | 
|  | 1660 1647   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1661 1648   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1662 1649 | 
|  | 1663 1650   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1664 1651 <span class="s">}</span> | 
|  | 1665 1652 | 
|  | 1666 1653 <span class="c"># Generate key 40 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1667 1654 <span class="c"># presence in a molecule.</span> | 
|  | 1668 1655 <span class="c">#</span> | 
|  | 1669 1656 <span class="c"># Key 40 description: S-O</span> | 
|  | 1670 1657 <span class="c">#</span> | 
|  | 1671 <a name="_Generate166KeySetKey40-"></a>1658 <span class="k">sub </span><span class="m">_Generate166KeySetKey40</span> <span class="s">{</span> | 
|  | 1672 1659   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1673 1660   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 1674 1661 | 
|  | 1675 1662   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1676 1663 <span class="s">}</span> | 
|  | 1677 1664 | 
|  | 1678 1665 <span class="c"># Generate key 41 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1679 1666 <span class="c"># presence in a molecule.</span> | 
|  | 1680 1667 <span class="c">#</span> | 
|  | 1681 1668 <span class="c"># Key 41 description: CTN</span> | 
|  | 1682 1669 <span class="c">#</span> | 
|  | 1683 <a name="_Generate166KeySetKey41-"></a>1670 <span class="k">sub </span><span class="m">_Generate166KeySetKey41</span> <span class="s">{</span> | 
|  | 1684 1671   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1685 1672   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span> | 
|  | 1686 1673 | 
|  | 1687 1674   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1688 1675 <span class="s">}</span> | 
|  | 1689 1676 | 
|  | 1690 1677 <span class="c"># Generate key 42 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1691 1678 <span class="c"># presence in a molecule.</span> | 
|  | 1692 1679 <span class="c">#</span> | 
|  | 1693 1680 <span class="c"># Key 42 description: F</span> | 
|  | 1694 1681 <span class="c">#</span> | 
|  | 1695 <a name="_Generate166KeySetKey42-"></a>1682 <span class="k">sub </span><span class="m">_Generate166KeySetKey42</span> <span class="s">{</span> | 
|  | 1696 1683   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1697 1684 | 
|  | 1698 1685   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'F'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1699 1686 <span class="s">}</span> | 
|  | 1700 1687 | 
|  | 1701 1688 <span class="c"># Generate key 43 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1702 1689 <span class="c"># presence in a molecule.</span> | 
|  | 1703 1690 <span class="c">#</span> | 
|  | 1704 1691 <span class="c"># Key 43 description: QHAQH</span> | 
|  | 1705 1692 <span class="c">#</span> | 
|  | 1706 <a name="_Generate166KeySetKey43-"></a>1693 <span class="k">sub </span><span class="m">_Generate166KeySetKey43</span> <span class="s">{</span> | 
|  | 1707 1694   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1708 1695   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1709 1696 | 
|  | 1710 1697   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 1711 1698   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 1712 1699 | 
|  | 1713 1700   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1714 1701   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1715 1702   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1716 1703 | 
|  | 1717 1704   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 1718 1705 | 
|  | 1719 1706   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1720 1707 <span class="s">}</span> | 
|  | 1721 1708 | 
|  | 1722 1709 <span class="c"># Generate key 44 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1723 1710 <span class="c"># presence in a molecule.</span> | 
|  | 1724 1711 <span class="c">#</span> | 
|  | 1725 1712 <span class="c"># Key 44 description: OTHER</span> | 
|  | 1726 1713 <span class="c">#</span> | 
|  | 1727 <a name="_Generate166KeySetKey44-"></a>1714 <span class="k">sub </span><span class="m">_Generate166KeySetKey44</span> <span class="s">{</span> | 
|  | 1728 1715   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1729 1716 | 
|  | 1730 1717   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Z'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1731 1718 <span class="s">}</span> | 
|  | 1732 1719 | 
|  | 1733 1720 <span class="c"># Generate key 45 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1734 1721 <span class="c"># presence in a molecule.</span> | 
|  | 1735 1722 <span class="c">#</span> | 
|  | 1736 1723 <span class="c"># Key 45 description: C=CN</span> | 
|  | 1737 1724 <span class="c">#</span> | 
|  | 1738 <a name="_Generate166KeySetKey45-"></a>1725 <span class="k">sub </span><span class="m">_Generate166KeySetKey45</span> <span class="s">{</span> | 
|  | 1739 1726   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1740 1727   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1741 1728 | 
|  | 1742 1729   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1743 1730   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1744 1731   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'='</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1745 1732 | 
|  | 1746 1733   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1747 1734 <span class="s">}</span> | 
|  | 1748 1735 | 
|  | 1749 1736 <span class="c"># Generate key 46 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1750 1737 <span class="c"># presence in a molecule.</span> | 
|  | 1751 1738 <span class="c">#</span> | 
|  | 1752 1739 <span class="c"># Key 46 description: BR</span> | 
|  | 1753 1740 <span class="c">#</span> | 
|  | 1754 <a name="_Generate166KeySetKey46-"></a>1741 <span class="k">sub </span><span class="m">_Generate166KeySetKey46</span> <span class="s">{</span> | 
|  | 1755 1742   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1756 1743 | 
|  | 1757 1744   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1758 1745 <span class="s">}</span> | 
|  | 1759 1746 | 
|  | 1760 1747 <span class="c"># Generate key 47 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1761 1748 <span class="c"># presence in a molecule.</span> | 
|  | 1762 1749 <span class="c">#</span> | 
|  | 1763 1750 <span class="c"># Key 47 description: SAN</span> | 
|  | 1764 1751 <span class="c">#</span> | 
|  | 1765 <a name="_Generate166KeySetKey47-"></a>1752 <span class="k">sub </span><span class="m">_Generate166KeySetKey47</span> <span class="s">{</span> | 
|  | 1766 1753   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1767 1754   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1768 1755 | 
|  | 1769 1756   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 1770 1757   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1771 1758   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1772 1759 | 
|  | 1773 1760   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1774 1761 <span class="s">}</span> | 
|  | 1775 1762 | 
|  | 1776 1763 <span class="c"># Generate key 48 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1777 1764 <span class="c"># presence in a molecule.</span> | 
|  | 1778 1765 <span class="c">#</span> | 
|  | 1779 1766 <span class="c"># Key 48 description: OQ(O)O</span> | 
|  | 1780 1767 <span class="c">#</span> | 
|  | 1781 <a name="_Generate166KeySetKey48-"></a>1768 <span class="k">sub </span><span class="m">_Generate166KeySetKey48</span> <span class="s">{</span> | 
|  | 1782 1769   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1783 1770   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1784 1771 | 
|  | 1785 1772   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 1786 1773   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1787 1774   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1788 1775 | 
|  | 1789 1776   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1790 1777 <span class="s">}</span> | 
|  | 1791 1778 | 
|  | 1792 1779 <span class="c"># Generate key 49 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1793 1780 <span class="c"># presence in a molecule.</span> | 
|  | 1794 1781 <span class="c">#</span> | 
|  | 1795 1782 <span class="c"># Key 49 description: CHARGE</span> | 
|  | 1796 1783 <span class="c">#</span> | 
|  | 1797 <a name="_Generate166KeySetKey49-"></a>1784 <span class="k">sub </span><span class="m">_Generate166KeySetKey49</span> <span class="s">{</span> | 
|  | 1798 1785   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1799 1786   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1800 1787 | 
|  | 1801 1788   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1802 1789   <span class="i">$KeyValue</span> = <span class="i">$Molecule</span><span class="i">->GetFormalCharge</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 1803 1790 | 
|  | 1804 1791   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 1805 1792 <span class="s">}</span> | 
|  | 1806 1793 | 
|  | 1807 1794 <span class="c"># Generate key 50 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1808 1795 <span class="c"># presence in a molecule.</span> | 
|  | 1809 1796 <span class="c">#</span> | 
|  | 1810 1797 <span class="c"># Key 50 description: C=C(C)C</span> | 
|  | 1811 1798 <span class="c">#</span> | 
|  | 1812 <a name="_Generate166KeySetKey50-"></a>1799 <span class="k">sub </span><span class="m">_Generate166KeySetKey50</span> <span class="s">{</span> | 
|  | 1813 1800   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1814 1801   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1815 1802 | 
|  | 1816 1803   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 1817 1804   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1818 1805   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'='</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1819 1806 | 
|  | 1820 1807   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1821 1808 <span class="s">}</span> | 
|  | 1822 1809 | 
|  | 1823 1810 <span class="c"># Generate key 51 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1824 1811 <span class="c"># presence in a molecule.</span> | 
|  | 1825 1812 <span class="c">#</span> | 
|  | 1826 1813 <span class="c"># Key 51 description: CSO</span> | 
|  | 1827 1814 <span class="c">#</span> | 
|  | 1828 <a name="_Generate166KeySetKey51-"></a>1815 <span class="k">sub </span><span class="m">_Generate166KeySetKey51</span> <span class="s">{</span> | 
|  | 1829 1816   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1830 1817   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1831 1818 | 
|  | 1832 1819   <span class="i">$CentralAtomSymbol</span> = <span class="q">'S'</span><span class="sc">;</span> | 
|  | 1833 1820   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1834 1821   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1835 1822 | 
|  | 1836 1823   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1837 1824 <span class="s">}</span> | 
|  | 1838 1825 | 
|  | 1839 1826 <span class="c"># Generate key 52 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1840 1827 <span class="c"># presence in a molecule.</span> | 
|  | 1841 1828 <span class="c">#</span> | 
|  | 1842 1829 <span class="c"># Key 52 description: NN</span> | 
|  | 1843 1830 <span class="c">#</span> | 
|  | 1844 <a name="_Generate166KeySetKey52-"></a>1831 <span class="k">sub </span><span class="m">_Generate166KeySetKey52</span> <span class="s">{</span> | 
|  | 1845 1832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1846 1833 | 
|  | 1847 1834   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1848 1835 <span class="s">}</span> | 
|  | 1849 1836 | 
|  | 1850 1837 <span class="c"># Generate key 53 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1851 1838 <span class="c"># presence in a molecule.</span> | 
|  | 1852 1839 <span class="c">#</span> | 
|  | 1853 1840 <span class="c"># Key 53 description: QHAAAQH</span> | 
|  | 1854 1841 <span class="c">#</span> | 
|  | 1855 <a name="_Generate166KeySetKey53-"></a>1842 <span class="k">sub </span><span class="m">_Generate166KeySetKey53</span> <span class="s">{</span> | 
|  | 1856 1843   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1857 1844   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1858 1845 | 
|  | 1859 1846   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1860 1847   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1861 1848   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1862 1849 | 
|  | 1863 1850   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1864 1851 <span class="s">}</span> | 
|  | 1865 1852 | 
|  | 1866 1853 <span class="c"># Generate key 54 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1867 1854 <span class="c"># presence in a molecule.</span> | 
|  | 1868 1855 <span class="c">#</span> | 
|  | 1869 1856 <span class="c"># Key 54 description: QHAAQH</span> | 
|  | 1870 1857 <span class="c">#</span> | 
|  | 1871 <a name="_Generate166KeySetKey54-"></a>1858 <span class="k">sub </span><span class="m">_Generate166KeySetKey54</span> <span class="s">{</span> | 
|  | 1872 1859   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1873 1860   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1874 1861 | 
|  | 1875 1862   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1876 1863   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1877 1864   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1878 1865 | 
|  | 1879 1866   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1880 1867 <span class="s">}</span> | 
|  | 1881 1868 | 
|  | 1882 1869 <span class="c"># Generate key 55 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1883 1870 <span class="c"># presence in a molecule.</span> | 
|  | 1884 1871 <span class="c">#</span> | 
|  | 1885 1872 <span class="c"># Key 55 description: OSO</span> | 
|  | 1886 1873 <span class="c">#</span> | 
|  | 1887 <a name="_Generate166KeySetKey55-"></a>1874 <span class="k">sub </span><span class="m">_Generate166KeySetKey55</span> <span class="s">{</span> | 
|  | 1888 1875   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1889 1876   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1890 1877 | 
|  | 1891 1878   <span class="i">$CentralAtomSymbol</span> = <span class="q">'S'</span><span class="sc">;</span> | 
|  | 1892 1879   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1893 1880   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1894 1881 | 
|  | 1895 1882   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1896 1883 <span class="s">}</span> | 
|  | 1897 1884 | 
|  | 1898 1885 <span class="c"># Generate key 56 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1899 1886 <span class="c"># presence in a molecule.</span> | 
|  | 1900 1887 <span class="c">#</span> | 
|  | 1901 1888 <span class="c"># Key 56 description: ON(O)C</span> | 
|  | 1902 1889 <span class="c">#</span> | 
|  | 1903 <a name="_Generate166KeySetKey56-"></a>1890 <span class="k">sub </span><span class="m">_Generate166KeySetKey56</span> <span class="s">{</span> | 
|  | 1904 1891   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1905 1892   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1906 1893 | 
|  | 1907 1894   <span class="i">$CentralAtomSymbol</span> = <span class="q">'N'</span><span class="sc">;</span> | 
|  | 1908 1895   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1909 1896   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1910 1897 | 
|  | 1911 1898   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1912 1899 <span class="s">}</span> | 
|  | 1913 1900 | 
|  | 1914 1901 <span class="c"># Generate key 57 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1915 1902 <span class="c"># presence in a molecule.</span> | 
|  | 1916 1903 <span class="c">#</span> | 
|  | 1917 1904 <span class="c"># Key 57 description: O HETEROCYCLE</span> | 
|  | 1918 1905 <span class="c">#</span> | 
|  | 1919 <a name="_Generate166KeySetKey57-"></a>1906 <span class="k">sub </span><span class="m">_Generate166KeySetKey57</span> <span class="s">{</span> | 
|  | 1920 1907   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1921 1908   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1922 1909 | 
|  | 1923 1910   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1924 1911 <span class="s">}</span> | 
|  | 1925 1912 | 
|  | 1926 1913 <span class="c"># Generate key 58 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1927 1914 <span class="c"># presence in a molecule.</span> | 
|  | 1928 1915 <span class="c">#</span> | 
|  | 1929 1916 <span class="c"># Key 58 description: QSQ</span> | 
|  | 1930 1917 <span class="c">#</span> | 
|  | 1931 <a name="_Generate166KeySetKey58-"></a>1918 <span class="k">sub </span><span class="m">_Generate166KeySetKey58</span> <span class="s">{</span> | 
|  | 1932 1919   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1933 1920   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1934 1921 | 
|  | 1935 1922   <span class="i">$CentralAtomSymbol</span> = <span class="q">'S'</span><span class="sc">;</span> | 
|  | 1936 1923   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1937 1924   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1938 1925 | 
|  | 1939 1926   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1940 1927 <span class="s">}</span> | 
|  | 1941 1928 | 
|  | 1942 1929 <span class="c"># Generate key 59 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1943 1930 <span class="c"># presence in a molecule.</span> | 
|  | 1944 1931 <span class="c">#</span> | 
|  | 1945 1932 <span class="c"># Key 59 description: Snot%A%A</span> | 
|  | 1946 1933 <span class="c">#</span> | 
|  | 1947 <a name="_Generate166KeySetKey59-"></a>1934 <span class="k">sub </span><span class="m">_Generate166KeySetKey59</span> <span class="s">{</span> | 
|  | 1948 1935   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1949 1936   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1950 1937 | 
|  | 1951 1938   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 1952 1939   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1953 1940   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'not%'</span><span class="cm">,</span> <span class="q">'%'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1954 1941 | 
|  | 1955 1942   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1956 1943 <span class="s">}</span> | 
|  | 1957 1944 | 
|  | 1958 1945 <span class="c"># Generate key 60 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1959 1946 <span class="c"># presence in a molecule.</span> | 
|  | 1960 1947 <span class="c">#</span> | 
|  | 1961 1948 <span class="c"># Key 60 description: S=O</span> | 
|  | 1962 1949 <span class="c">#</span> | 
|  | 1963 <a name="_Generate166KeySetKey60-"></a>1950 <span class="k">sub </span><span class="m">_Generate166KeySetKey60</span> <span class="s">{</span> | 
|  | 1964 1951   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1965 1952   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 1966 1953 | 
|  | 1967 1954   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1968 1955 <span class="s">}</span> | 
|  | 1969 1956 | 
|  | 1970 1957 <span class="c"># Generate key 61 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1971 1958 <span class="c"># presence in a molecule.</span> | 
|  | 1972 1959 <span class="c">#</span> | 
|  | 1973 1960 <span class="c"># Key 61 description: AS(A)A</span> | 
|  | 1974 1961 <span class="c">#</span> | 
|  | 1975 <a name="_Generate166KeySetKey61-"></a>1962 <span class="k">sub </span><span class="m">_Generate166KeySetKey61</span> <span class="s">{</span> | 
|  | 1976 1963   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1977 1964   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1978 1965 | 
|  | 1979 1966   <span class="i">$CentralAtomSymbol</span> = <span class="q">'S'</span><span class="sc">;</span> | 
|  | 1980 1967   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1981 1968   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1982 1969 | 
|  | 1983 1970   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1984 1971 <span class="s">}</span> | 
|  | 1985 1972 | 
|  | 1986 1973 <span class="c"># Generate key 62 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 1987 1974 <span class="c"># presence in a molecule.</span> | 
|  | 1988 1975 <span class="c">#</span> | 
|  | 1989 1976 <span class="c"># Key 62 description: A$A!A$A</span> | 
|  | 1990 1977 <span class="c">#</span> | 
|  | 1991 <a name="_Generate166KeySetKey62-"></a>1978 <span class="k">sub </span><span class="m">_Generate166KeySetKey62</span> <span class="s">{</span> | 
|  | 1992 1979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 1993 1980   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1994 1981 | 
|  | 1995 1982   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1996 1983   <span class="i">$BondSymbol</span> = <span class="q">'!'</span><span class="sc">;</span> | 
|  | 1997 1984 | 
|  | 1998 1985   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 1999 1986   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'$'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'$'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2000 1987   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2001 1988 <span class="s">}</span> | 
|  | 2002 1989 | 
|  | 2003 1990 <span class="c"># Generate key 63 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2004 1991 <span class="c"># presence in a molecule.</span> | 
|  | 2005 1992 <span class="c">#</span> | 
|  | 2006 1993 <span class="c"># Key 63 description: N=O</span> | 
|  | 2007 1994 <span class="c">#</span> | 
|  | 2008 <a name="_Generate166KeySetKey63-"></a>1995 <span class="k">sub </span><span class="m">_Generate166KeySetKey63</span> <span class="s">{</span> | 
|  | 2009 1996   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2010 1997   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2011 1998 | 
|  | 2012 1999   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2013 2000 <span class="s">}</span> | 
|  | 2014 2001 | 
|  | 2015 2002 <span class="c"># Generate key 64 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2016 2003 <span class="c"># presence in a molecule.</span> | 
|  | 2017 2004 <span class="c">#</span> | 
|  | 2018 2005 <span class="c"># Key 64 description: A$A!S</span> | 
|  | 2019 2006 <span class="c">#</span> | 
|  | 2020 <a name="_Generate166KeySetKey64-"></a>2007 <span class="k">sub </span><span class="m">_Generate166KeySetKey64</span> <span class="s">{</span> | 
|  | 2021 2008   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2022 2009   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2023 2010 | 
|  | 2024 2011   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2025 2012   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'S'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2026 2013   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'$'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2027 2014 | 
|  | 2028 2015   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2029 2016 <span class="s">}</span> | 
|  | 2030 2017 | 
|  | 2031 2018 <span class="c"># Generate key 65 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2032 2019 <span class="c"># presence in a molecule.</span> | 
|  | 2033 2020 <span class="c">#</span> | 
|  | 2034 2021 <span class="c"># Key 65 description: C%N</span> | 
|  | 2035 2022 <span class="c">#</span> | 
|  | 2036 <a name="_Generate166KeySetKey65-"></a>2023 <span class="k">sub </span><span class="m">_Generate166KeySetKey65</span> <span class="s">{</span> | 
|  | 2037 2024   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2038 2025   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'%'</span><span class="sc">;</span> | 
|  | 2039 2026 | 
|  | 2040 2027   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2041 2028 <span class="s">}</span> | 
|  | 2042 2029 | 
|  | 2043 2030 <span class="c"># Generate key 66 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2044 2031 <span class="c"># presence in a molecule.</span> | 
|  | 2045 2032 <span class="c">#</span> | 
|  | 2046 2033 <span class="c"># Key 66 description: CC(C)(C)A</span> | 
|  | 2047 2034 <span class="c">#</span> | 
|  | 2048 <a name="_Generate166KeySetKey66-"></a>2035 <span class="k">sub </span><span class="m">_Generate166KeySetKey66</span> <span class="s">{</span> | 
|  | 2049 2036   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2050 2037   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2051 2038 | 
|  | 2052 2039   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2053 2040   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2054 2041   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2055 2042 | 
|  | 2056 2043   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2057 2044 <span class="s">}</span> | 
|  | 2058 2045 | 
|  | 2059 2046 <span class="c"># Generate key 67 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2060 2047 <span class="c"># presence in a molecule.</span> | 
|  | 2061 2048 <span class="c">#</span> | 
|  | 2062 2049 <span class="c"># Key 67 description: QS</span> | 
|  | 2063 2050 <span class="c">#</span> | 
|  | 2064 <a name="_Generate166KeySetKey67-"></a>2051 <span class="k">sub </span><span class="m">_Generate166KeySetKey67</span> <span class="s">{</span> | 
|  | 2065 2052   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2066 2053 | 
|  | 2067 2054   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'S'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2068 2055 <span class="s">}</span> | 
|  | 2069 2056 | 
|  | 2070 2057 <span class="c"># Generate key 68 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2071 2058 <span class="c"># presence in a molecule.</span> | 
|  | 2072 2059 <span class="c">#</span> | 
|  | 2073 2060 <span class="c"># Key 68 description: QHQH (&...)</span> | 
|  | 2074 2061 <span class="c">#</span> | 
|  | 2075 <a name="_Generate166KeySetKey68-"></a>2062 <span class="k">sub </span><span class="m">_Generate166KeySetKey68</span> <span class="s">{</span> | 
|  | 2076 2063   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2077 2064   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2078 2065   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2079 2066   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2080 2067 | 
|  | 2081 2068   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2082 2069 <span class="s">}</span> | 
|  | 2083 2070 | 
|  | 2084 2071 <span class="c"># Generate key 69 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2085 2072 <span class="c"># presence in a molecule.</span> | 
|  | 2086 2073 <span class="c">#</span> | 
|  | 2087 2074 <span class="c"># Key 69 description: QQH</span> | 
|  | 2088 2075 <span class="c">#</span> | 
|  | 2089 <a name="_Generate166KeySetKey69-"></a>2076 <span class="k">sub </span><span class="m">_Generate166KeySetKey69</span> <span class="s">{</span> | 
|  | 2090 2077   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2091 2078   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2092 2079   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2093 2080   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2094 2081 | 
|  | 2095 2082   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2096 2083 <span class="s">}</span> | 
|  | 2097 2084 | 
|  | 2098 2085 <span class="c"># Generate key 70 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2099 2086 <span class="c"># presence in a molecule.</span> | 
|  | 2100 2087 <span class="c">#</span> | 
|  | 2101 2088 <span class="c"># Key 70 description: QNQ</span> | 
|  | 2102 2089 <span class="c">#</span> | 
|  | 2103 <a name="_Generate166KeySetKey70-"></a>2090 <span class="k">sub </span><span class="m">_Generate166KeySetKey70</span> <span class="s">{</span> | 
|  | 2104 2091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2105 2092   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2106 2093 | 
|  | 2107 2094   <span class="i">$CentralAtomSymbol</span> = <span class="q">'N'</span><span class="sc">;</span> | 
|  | 2108 2095   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2109 2096   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2110 2097 | 
|  | 2111 2098   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2112 2099 <span class="s">}</span> | 
|  | 2113 2100 | 
|  | 2114 2101 <span class="c"># Generate key 71 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2115 2102 <span class="c"># presence in a molecule.</span> | 
|  | 2116 2103 <span class="c">#</span> | 
|  | 2117 2104 <span class="c"># Key 71 description: NO</span> | 
|  | 2118 2105 <span class="c">#</span> | 
|  | 2119 <a name="_Generate166KeySetKey71-"></a>2106 <span class="k">sub </span><span class="m">_Generate166KeySetKey71</span> <span class="s">{</span> | 
|  | 2120 2107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2121 2108 | 
|  | 2122 2109   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2123 2110 <span class="s">}</span> | 
|  | 2124 2111 | 
|  | 2125 2112 <span class="c"># Generate key 72 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2126 2113 <span class="c"># presence in a molecule.</span> | 
|  | 2127 2114 <span class="c">#</span> | 
|  | 2128 2115 <span class="c"># Key 72 description: OAAO</span> | 
|  | 2129 2116 <span class="c">#</span> | 
|  | 2130 <a name="_Generate166KeySetKey72-"></a>2117 <span class="k">sub </span><span class="m">_Generate166KeySetKey72</span> <span class="s">{</span> | 
|  | 2131 2118   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2132 2119   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2133 2120 | 
|  | 2134 2121   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2135 2122   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2136 2123 | 
|  | 2137 2124   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2138 2125 <span class="s">}</span> | 
|  | 2139 2126 | 
|  | 2140 2127 <span class="c"># Generate key 73 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2141 2128 <span class="c"># presence in a molecule.</span> | 
|  | 2142 2129 <span class="c">#</span> | 
|  | 2143 2130 <span class="c"># Key 73 description: S=A</span> | 
|  | 2144 2131 <span class="c">#</span> | 
|  | 2145 <a name="_Generate166KeySetKey73-"></a>2132 <span class="k">sub </span><span class="m">_Generate166KeySetKey73</span> <span class="s">{</span> | 
|  | 2146 2133   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2147 2134   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2148 2135 | 
|  | 2149 2136   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2150 2137 <span class="s">}</span> | 
|  | 2151 2138 | 
|  | 2152 2139 <span class="c"># Generate key 74 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2153 2140 <span class="c"># presence in a molecule.</span> | 
|  | 2154 2141 <span class="c">#</span> | 
|  | 2155 2142 <span class="c"># Key 74 description: CH3ACH3</span> | 
|  | 2156 2143 <span class="c">#</span> | 
|  | 2157 <a name="_Generate166KeySetKey74-"></a>2144 <span class="k">sub </span><span class="m">_Generate166KeySetKey74</span> <span class="s">{</span> | 
|  | 2158 2145   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2159 2146   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2160 2147 | 
|  | 2161 2148   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2162 2149   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2163 2150 | 
|  | 2164 2151   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2165 2152   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2166 2153   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2167 2154 | 
|  | 2168 2155   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2169 2156 | 
|  | 2170 2157   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2171 2158 <span class="s">}</span> | 
|  | 2172 2159 | 
|  | 2173 2160 <span class="c"># Generate key 75 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2174 2161 <span class="c"># presence in a molecule.</span> | 
|  | 2175 2162 <span class="c">#</span> | 
|  | 2176 2163 <span class="c"># Key 75 description: A!N$A</span> | 
|  | 2177 2164 <span class="c">#</span> | 
|  | 2178 <a name="_Generate166KeySetKey75-"></a>2165 <span class="k">sub </span><span class="m">_Generate166KeySetKey75</span> <span class="s">{</span> | 
|  | 2179 2166   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2180 2167   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2181 2168 | 
|  | 2182 2169   <span class="i">$CentralAtomSymbol</span> = <span class="q">'N'</span><span class="sc">;</span> | 
|  | 2183 2170   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2184 2171   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'!'</span><span class="cm">,</span> <span class="q">'$'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2185 2172 | 
|  | 2186 2173   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2187 2174 <span class="s">}</span> | 
|  | 2188 2175 | 
|  | 2189 2176 <span class="c"># Generate key 76 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2190 2177 <span class="c"># presence in a molecule.</span> | 
|  | 2191 2178 <span class="c">#</span> | 
|  | 2192 2179 <span class="c"># Key 76 description: C=C(A)A</span> | 
|  | 2193 2180 <span class="c">#</span> | 
|  | 2194 <a name="_Generate166KeySetKey76-"></a>2181 <span class="k">sub </span><span class="m">_Generate166KeySetKey76</span> <span class="s">{</span> | 
|  | 2195 2182   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2196 2183   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2197 2184 | 
|  | 2198 2185   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2199 2186   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2200 2187   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'='</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2201 2188 | 
|  | 2202 2189   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2203 2190 <span class="s">}</span> | 
|  | 2204 2191 | 
|  | 2205 2192 <span class="c"># Generate key 77 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2206 2193 <span class="c"># presence in a molecule.</span> | 
|  | 2207 2194 <span class="c">#</span> | 
|  | 2208 2195 <span class="c"># Key 77 description: NAN</span> | 
|  | 2209 2196 <span class="c">#</span> | 
|  | 2210 <a name="_Generate166KeySetKey77-"></a>2197 <span class="k">sub </span><span class="m">_Generate166KeySetKey77</span> <span class="s">{</span> | 
|  | 2211 2198   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2212 2199   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2213 2200 | 
|  | 2214 2201   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2215 2202   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2216 2203   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2217 2204 | 
|  | 2218 2205   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2219 2206 <span class="s">}</span> | 
|  | 2220 2207 | 
|  | 2221 2208 <span class="c"># Generate key 78 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2222 2209 <span class="c"># presence in a molecule.</span> | 
|  | 2223 2210 <span class="c">#</span> | 
|  | 2224 2211 <span class="c"># Key 78 description: C=N</span> | 
|  | 2225 2212 <span class="c">#</span> | 
|  | 2226 <a name="_Generate166KeySetKey78-"></a>2213 <span class="k">sub </span><span class="m">_Generate166KeySetKey78</span> <span class="s">{</span> | 
|  | 2227 2214   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2228 2215   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2229 2216 | 
|  | 2230 2217   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2231 2218 <span class="s">}</span> | 
|  | 2232 2219 | 
|  | 2233 2220 <span class="c"># Generate key 79 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2234 2221 <span class="c"># presence in a molecule.</span> | 
|  | 2235 2222 <span class="c">#</span> | 
|  | 2236 2223 <span class="c"># Key 79 description: NAAN</span> | 
|  | 2237 2224 <span class="c">#</span> | 
|  | 2238 <a name="_Generate166KeySetKey79-"></a>2225 <span class="k">sub </span><span class="m">_Generate166KeySetKey79</span> <span class="s">{</span> | 
|  | 2239 2226   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2240 2227   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2241 2228 | 
|  | 2242 2229   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2243 2230   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2244 2231 | 
|  | 2245 2232   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2246 2233 <span class="s">}</span> | 
|  | 2247 2234 | 
|  | 2248 2235 <span class="c"># Generate key 80 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2249 2236 <span class="c"># presence in a molecule.</span> | 
|  | 2250 2237 <span class="c">#</span> | 
|  | 2251 2238 <span class="c"># Key 80 description: NAAAN</span> | 
|  | 2252 2239 <span class="c">#</span> | 
|  | 2253 <a name="_Generate166KeySetKey80-"></a>2240 <span class="k">sub </span><span class="m">_Generate166KeySetKey80</span> <span class="s">{</span> | 
|  | 2254 2241   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2255 2242   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2256 2243 | 
|  | 2257 2244   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2258 2245   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2259 2246 | 
|  | 2260 2247   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2261 2248 <span class="s">}</span> | 
|  | 2262 2249 | 
|  | 2263 2250 <span class="c"># Generate key 81 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2264 2251 <span class="c"># presence in a molecule.</span> | 
|  | 2265 2252 <span class="c">#</span> | 
|  | 2266 2253 <span class="c"># Key 81 description: SA(A)A</span> | 
|  | 2267 2254 <span class="c">#</span> | 
|  | 2268 <a name="_Generate166KeySetKey81-"></a>2255 <span class="k">sub </span><span class="m">_Generate166KeySetKey81</span> <span class="s">{</span> | 
|  | 2269 2256   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2270 2257   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2271 2258 | 
|  | 2272 2259   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2273 2260   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2274 2261   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2275 2262 | 
|  | 2276 2263   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2277 2264 <span class="s">}</span> | 
|  | 2278 2265 | 
|  | 2279 2266 <span class="c"># Generate key 82 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2280 2267 <span class="c"># presence in a molecule.</span> | 
|  | 2281 2268 <span class="c">#</span> | 
|  | 2282 2269 <span class="c"># Key 82 description: ACH2QH</span> | 
|  | 2283 2270 <span class="c">#</span> | 
|  | 2284 <a name="_Generate166KeySetKey82-"></a>2271 <span class="k">sub </span><span class="m">_Generate166KeySetKey82</span> <span class="s">{</span> | 
|  | 2285 2272   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2286 2273   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2287 2274 | 
|  | 2288 2275   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2289 2276   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2290 2277 | 
|  | 2291 2278   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2292 2279   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2293 2280   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2294 2281 | 
|  | 2295 2282   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2296 2283 | 
|  | 2297 2284   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2298 2285 <span class="s">}</span> | 
|  | 2299 2286 | 
|  | 2300 2287 <span class="c"># Generate key 83 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2301 2288 <span class="c"># presence in a molecule.</span> | 
|  | 2302 2289 <span class="c">#</span> | 
|  | 2303 2290 <span class="c"># Key 83 description: QAAAA@1</span> | 
|  | 2304 2291 <span class="c">#</span> | 
|  | 2305 <a name="_Generate166KeySetKey83-"></a>2292 <span class="k">sub </span><span class="m">_Generate166KeySetKey83</span> <span class="s">{</span> | 
|  | 2306 2293   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2307 2294   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2308 2295 | 
|  | 2309 2296   <span class="i">$RingSize</span> = <span class="n">5</span><span class="sc">;</span> | 
|  | 2310 2297   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 2311 2298   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 2312 2299     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> && <span class="i">$Atom</span><span class="i">->IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 2313 2300       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 2314 2301         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 2315 2302         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 2316 2303       <span class="s">}</span> | 
|  | 2317 2304       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 2318 2305     <span class="s">}</span> | 
|  | 2319 2306   <span class="s">}</span> | 
|  | 2320 2307   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 2321 2308 <span class="s">}</span> | 
|  | 2322 2309 | 
|  | 2323 2310 <span class="c"># Generate key 84 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2324 2311 <span class="c"># presence in a molecule.</span> | 
|  | 2325 2312 <span class="c">#</span> | 
|  | 2326 2313 <span class="c"># Key 84 description: NH2</span> | 
|  | 2327 2314 <span class="c">#</span> | 
|  | 2328 <a name="_Generate166KeySetKey84-"></a>2315 <span class="k">sub </span><span class="m">_Generate166KeySetKey84</span> <span class="s">{</span> | 
|  | 2329 2316   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2330 2317   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2331 2318 | 
|  | 2332 2319   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2333 2320 <span class="s">}</span> | 
|  | 2334 2321 | 
|  | 2335 2322 <span class="c"># Generate key 85 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2336 2323 <span class="c"># presence in a molecule.</span> | 
|  | 2337 2324 <span class="c">#</span> | 
|  | 2338 2325 <span class="c"># Key 85 description: CN(C)C</span> | 
|  | 2339 2326 <span class="c">#</span> | 
|  | 2340 <a name="_Generate166KeySetKey85-"></a>2327 <span class="k">sub </span><span class="m">_Generate166KeySetKey85</span> <span class="s">{</span> | 
|  | 2341 2328   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2342 2329   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2343 2330 | 
|  | 2344 2331   <span class="i">$CentralAtomSymbol</span> = <span class="q">'N'</span><span class="sc">;</span> | 
|  | 2345 2332   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2346 2333   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2347 2334 | 
|  | 2348 2335   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2349 2336 <span class="s">}</span> | 
|  | 2350 2337 | 
|  | 2351 2338 <span class="c"># Generate key 86 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2352 2339 <span class="c"># presence in a molecule.</span> | 
|  | 2353 2340 <span class="c">#</span> | 
|  | 2354 2341 <span class="c"># Key 86 description: CH2QCH2</span> | 
|  | 2355 2342 <span class="c">#</span> | 
|  | 2356 <a name="_Generate166KeySetKey86-"></a>2343 <span class="k">sub </span><span class="m">_Generate166KeySetKey86</span> <span class="s">{</span> | 
|  | 2357 2344   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2358 2345   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2359 2346 | 
|  | 2360 2347   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 2361 2348   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2362 2349 | 
|  | 2363 2350   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2364 2351   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2365 2352   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2366 2353 | 
|  | 2367 2354   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2368 2355 | 
|  | 2369 2356   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2370 2357 <span class="s">}</span> | 
|  | 2371 2358 | 
|  | 2372 2359 <span class="c"># Generate key 87 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2373 2360 <span class="c"># presence in a molecule.</span> | 
|  | 2374 2361 <span class="c">#</span> | 
|  | 2375 2362 <span class="c"># Key 87 description: X!A$A</span> | 
|  | 2376 2363 <span class="c">#</span> | 
|  | 2377 <a name="_Generate166KeySetKey87-"></a>2364 <span class="k">sub </span><span class="m">_Generate166KeySetKey87</span> <span class="s">{</span> | 
|  | 2378 2365   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2379 2366   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2380 2367 | 
|  | 2381 2368   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2382 2369   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'X'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2383 2370   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'!'</span><span class="cm">,</span> <span class="q">'$'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2384 2371 | 
|  | 2385 2372   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2386 2373 <span class="s">}</span> | 
|  | 2387 2374 | 
|  | 2388 2375 <span class="c"># Generate key 88 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2389 2376 <span class="c"># presence in a molecule.</span> | 
|  | 2390 2377 <span class="c">#</span> | 
|  | 2391 2378 <span class="c"># Key 88 description: S</span> | 
|  | 2392 2379 <span class="c">#</span> | 
|  | 2393 <a name="_Generate166KeySetKey88-"></a>2380 <span class="k">sub </span><span class="m">_Generate166KeySetKey88</span> <span class="s">{</span> | 
|  | 2394 2381   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2395 2382 | 
|  | 2396 2383   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'S'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2397 2384 <span class="s">}</span> | 
|  | 2398 2385 | 
|  | 2399 2386 <span class="c"># Generate key 89 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2400 2387 <span class="c"># presence in a molecule.</span> | 
|  | 2401 2388 <span class="c">#</span> | 
|  | 2402 2389 <span class="c"># Key 89 description: OAAAO</span> | 
|  | 2403 2390 <span class="c">#</span> | 
|  | 2404 <a name="_Generate166KeySetKey89-"></a>2391 <span class="k">sub </span><span class="m">_Generate166KeySetKey89</span> <span class="s">{</span> | 
|  | 2405 2392   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2406 2393   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2407 2394 | 
|  | 2408 2395   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2409 2396   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2410 2397 | 
|  | 2411 2398   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2412 2399 <span class="s">}</span> | 
|  | 2413 2400 | 
|  | 2414 2401 <span class="c"># Generate key 90 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2415 2402 <span class="c"># presence in a molecule.</span> | 
|  | 2416 2403 <span class="c">#</span> | 
|  | 2417 2404 <span class="c"># Key 90 description: QHAACH2A</span> | 
|  | 2418 2405 <span class="c">#</span> | 
|  | 2419 <a name="_Generate166KeySetKey90-"></a>2406 <span class="k">sub </span><span class="m">_Generate166KeySetKey90</span> <span class="s">{</span> | 
|  | 2420 2407   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2421 2408   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2422 2409 | 
|  | 2423 2410   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2424 2411   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2425 2412   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2426 2413 | 
|  | 2427 2414   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2428 2415 <span class="s">}</span> | 
|  | 2429 2416 | 
|  | 2430 2417 <span class="c"># Generate key 91 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2431 2418 <span class="c"># presence in a molecule.</span> | 
|  | 2432 2419 <span class="c">#</span> | 
|  | 2433 2420 <span class="c"># Key 91 description: QHAAACH2A</span> | 
|  | 2434 2421 <span class="c">#</span> | 
|  | 2435 <a name="_Generate166KeySetKey91-"></a>2422 <span class="k">sub </span><span class="m">_Generate166KeySetKey91</span> <span class="s">{</span> | 
|  | 2436 2423   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2437 2424   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2438 2425 | 
|  | 2439 2426   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2440 2427   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2441 2428   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2442 2429 | 
|  | 2443 2430   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2444 2431 <span class="s">}</span> | 
|  | 2445 2432 | 
|  | 2446 2433 <span class="c"># Generate key 92 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2447 2434 <span class="c"># presence in a molecule.</span> | 
|  | 2448 2435 <span class="c">#</span> | 
|  | 2449 2436 <span class="c"># Key 92 description: OC(N)C</span> | 
|  | 2450 2437 <span class="c">#</span> | 
|  | 2451 <a name="_Generate166KeySetKey92-"></a>2438 <span class="k">sub </span><span class="m">_Generate166KeySetKey92</span> <span class="s">{</span> | 
|  | 2452 2439   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2453 2440   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2454 2441 | 
|  | 2455 2442   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2456 2443   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2457 2444   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2458 2445 | 
|  | 2459 2446   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2460 2447 <span class="s">}</span> | 
|  | 2461 2448 | 
|  | 2462 2449 <span class="c"># Generate key 93 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2463 2450 <span class="c"># presence in a molecule.</span> | 
|  | 2464 2451 <span class="c">#</span> | 
|  | 2465 2452 <span class="c"># Key 93 description: QCH3</span> | 
|  | 2466 2453 <span class="c">#</span> | 
|  | 2467 <a name="_Generate166KeySetKey93-"></a>2454 <span class="k">sub </span><span class="m">_Generate166KeySetKey93</span> <span class="s">{</span> | 
|  | 2468 2455   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2469 2456   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2470 2457   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2471 2458   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2472 2459 | 
|  | 2473 2460   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2474 2461 <span class="s">}</span> | 
|  | 2475 2462 | 
|  | 2476 2463 <span class="c"># Generate key 94 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2477 2464 <span class="c"># presence in a molecule.</span> | 
|  | 2478 2465 <span class="c">#</span> | 
|  | 2479 2466 <span class="c"># Key 94 description: QN</span> | 
|  | 2480 2467 <span class="c">#</span> | 
|  | 2481 <a name="_Generate166KeySetKey94-"></a>2468 <span class="k">sub </span><span class="m">_Generate166KeySetKey94</span> <span class="s">{</span> | 
|  | 2482 2469   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2483 2470 | 
|  | 2484 2471   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2485 2472 <span class="s">}</span> | 
|  | 2486 2473 | 
|  | 2487 2474 <span class="c"># Generate key 95 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2488 2475 <span class="c"># presence in a molecule.</span> | 
|  | 2489 2476 <span class="c">#</span> | 
|  | 2490 2477 <span class="c"># Key 95 description: NAAO</span> | 
|  | 2491 2478 <span class="c">#</span> | 
|  | 2492 <a name="_Generate166KeySetKey95-"></a>2479 <span class="k">sub </span><span class="m">_Generate166KeySetKey95</span> <span class="s">{</span> | 
|  | 2493 2480   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2494 2481   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2495 2482 | 
|  | 2496 2483   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2497 2484   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2498 2485 | 
|  | 2499 2486   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2500 2487 <span class="s">}</span> | 
|  | 2501 2488 | 
|  | 2502 2489 <span class="c"># Generate key 96 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2503 2490 <span class="c"># presence in a molecule.</span> | 
|  | 2504 2491 <span class="c">#</span> | 
|  | 2505 2492 <span class="c"># Key 96 description: 5M RING</span> | 
|  | 2506 2493 <span class="c">#</span> | 
|  | 2507 <a name="_Generate166KeySetKey96-"></a>2494 <span class="k">sub </span><span class="m">_Generate166KeySetKey96</span> <span class="s">{</span> | 
|  | 2508 2495   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2509 2496   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2510 2497 | 
|  | 2511 2498   <span class="i">$RingSize</span> = <span class="n">5</span><span class="sc">;</span> | 
|  | 2512 2499   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2513 2500   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2514 2501 | 
|  | 2515 2502   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 2516 2503     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 2517 2504   <span class="s">}</span> | 
|  | 2518 2505   <span class="k">else</span> <span class="s">{</span> | 
|  | 2519 2506     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 2520 2507   <span class="s">}</span> | 
|  | 2521 2508   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 2522 2509 <span class="s">}</span> | 
|  | 2523 2510 | 
|  | 2524 2511 <span class="c"># Generate key 97 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2525 2512 <span class="c"># presence in a molecule.</span> | 
|  | 2526 2513 <span class="c">#</span> | 
|  | 2527 2514 <span class="c"># Key 97 description: NAAAO</span> | 
|  | 2528 2515 <span class="c">#</span> | 
|  | 2529 <a name="_Generate166KeySetKey97-"></a>2516 <span class="k">sub </span><span class="m">_Generate166KeySetKey97</span> <span class="s">{</span> | 
|  | 2530 2517   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2531 2518   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2532 2519 | 
|  | 2533 2520   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2534 2521   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2535 2522 | 
|  | 2536 2523   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2537 2524 <span class="s">}</span> | 
|  | 2538 2525 | 
|  | 2539 2526 <span class="c"># Generate key 98 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2540 2527 <span class="c"># presence in a molecule.</span> | 
|  | 2541 2528 <span class="c">#</span> | 
|  | 2542 2529 <span class="c"># Key 98 description: QAAAAA@1</span> | 
|  | 2543 2530 <span class="c">#</span> | 
|  | 2544 <a name="_Generate166KeySetKey98-"></a>2531 <span class="k">sub </span><span class="m">_Generate166KeySetKey98</span> <span class="s">{</span> | 
|  | 2545 2532   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2546 2533   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2547 2534 | 
|  | 2548 2535   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span> | 
|  | 2549 2536   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 2550 2537   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 2551 2538     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> && <span class="i">$Atom</span><span class="i">->IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 2552 2539       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 2553 2540         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 2554 2541         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 2555 2542       <span class="s">}</span> | 
|  | 2556 2543       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 2557 2544     <span class="s">}</span> | 
|  | 2558 2545   <span class="s">}</span> | 
|  | 2559 2546   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 2560 2547 <span class="s">}</span> | 
|  | 2561 2548 | 
|  | 2562 2549 <span class="c"># Generate key 99 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2563 2550 <span class="c"># presence in a molecule.</span> | 
|  | 2564 2551 <span class="c">#</span> | 
|  | 2565 2552 <span class="c"># Key 99 description: C=C</span> | 
|  | 2566 2553 <span class="c">#</span> | 
|  | 2567 <a name="_Generate166KeySetKey99-"></a>2554 <span class="k">sub </span><span class="m">_Generate166KeySetKey99</span> <span class="s">{</span> | 
|  | 2568 2555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2569 2556   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2570 2557 | 
|  | 2571 2558   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2572 2559 <span class="s">}</span> | 
|  | 2573 2560 | 
|  | 2574 2561 <span class="c"># Generate key 100 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2575 2562 <span class="c"># presence in a molecule.</span> | 
|  | 2576 2563 <span class="c">#</span> | 
|  | 2577 2564 <span class="c"># Key 100 description: ACH2N</span> | 
|  | 2578 2565 <span class="c">#</span> | 
|  | 2579 <a name="_Generate166KeySetKey100-"></a>2566 <span class="k">sub </span><span class="m">_Generate166KeySetKey100</span> <span class="s">{</span> | 
|  | 2580 2567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2581 2568   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2582 2569 | 
|  | 2583 2570   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2584 2571   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2585 2572 | 
|  | 2586 2573   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2587 2574   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2588 2575 | 
|  | 2589 2576   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2590 2577 | 
|  | 2591 2578   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2592 2579 <span class="s">}</span> | 
|  | 2593 2580 | 
|  | 2594 2581 <span class="c"># Generate key 101 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2595 2582 <span class="c"># presence in a molecule.</span> | 
|  | 2596 2583 <span class="c">#</span> | 
|  | 2597 2584 <span class="c"># Key 101 description: 8M RING</span> | 
|  | 2598 2585 <span class="c">#</span> | 
|  | 2599 <a name="_Generate166KeySetKey101-"></a>2586 <span class="k">sub </span><span class="m">_Generate166KeySetKey101</span> <span class="s">{</span> | 
|  | 2600 2587   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2601 2588   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2602 2589 | 
|  | 2603 2590   <span class="i">$RingSize</span> = <span class="n">8</span><span class="sc">;</span> | 
|  | 2604 2591   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2605 2592   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2606 2593 | 
|  | 2607 2594   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 2608 2595     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 2609 2596   <span class="s">}</span> | 
|  | 2610 2597   <span class="k">else</span> <span class="s">{</span> | 
|  | 2611 2598     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 2612 2599   <span class="s">}</span> | 
|  | 2613 2600   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 2614 2601 <span class="s">}</span> | 
|  | 2615 2602 | 
|  | 2616 2603 <span class="c"># Generate key 102 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2617 2604 <span class="c"># presence in a molecule.</span> | 
|  | 2618 2605 <span class="c">#</span> | 
|  | 2619 2606 <span class="c"># Key 102 description: QO</span> | 
|  | 2620 2607 <span class="c">#</span> | 
|  | 2621 <a name="_Generate166KeySetKey102-"></a>2608 <span class="k">sub </span><span class="m">_Generate166KeySetKey102</span> <span class="s">{</span> | 
|  | 2622 2609   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2623 2610 | 
|  | 2624 2611   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2625 2612 <span class="s">}</span> | 
|  | 2626 2613 | 
|  | 2627 2614 <span class="c"># Generate key 103 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2628 2615 <span class="c"># presence in a molecule.</span> | 
|  | 2629 2616 <span class="c">#</span> | 
|  | 2630 2617 <span class="c"># Key 103 description: CL</span> | 
|  | 2631 2618 <span class="c">#</span> | 
|  | 2632 <a name="_Generate166KeySetKey103-"></a>2619 <span class="k">sub </span><span class="m">_Generate166KeySetKey103</span> <span class="s">{</span> | 
|  | 2633 2620   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2634 2621 | 
|  | 2635 2622   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2636 2623 <span class="s">}</span> | 
|  | 2637 2624 | 
|  | 2638 2625 <span class="c"># Generate key 104 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2639 2626 <span class="c"># presence in a molecule.</span> | 
|  | 2640 2627 <span class="c">#</span> | 
|  | 2641 2628 <span class="c"># Key 104 description: QHACH2A</span> | 
|  | 2642 2629 <span class="c">#</span> | 
|  | 2643 <a name="_Generate166KeySetKey104-"></a>2630 <span class="k">sub </span><span class="m">_Generate166KeySetKey104</span> <span class="s">{</span> | 
|  | 2644 2631   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2645 2632   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2646 2633 | 
|  | 2647 2634   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2648 2635   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2649 2636   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2650 2637 | 
|  | 2651 2638   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2652 2639 <span class="s">}</span> | 
|  | 2653 2640 | 
|  | 2654 2641 <span class="c"># Generate key 105 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2655 2642 <span class="c"># presence in a molecule.</span> | 
|  | 2656 2643 <span class="c">#</span> | 
|  | 2657 2644 <span class="c"># Key 105 description: A$A($A)$A</span> | 
|  | 2658 2645 <span class="c">#</span> | 
|  | 2659 <a name="_Generate166KeySetKey105-"></a>2646 <span class="k">sub </span><span class="m">_Generate166KeySetKey105</span> <span class="s">{</span> | 
|  | 2660 2647   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2661 2648   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2662 2649 | 
|  | 2663 2650   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2664 2651   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2665 2652   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'$'</span><span class="cm">,</span> <span class="q">'$'</span><span class="cm">,</span> <span class="q">'$'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2666 2653 | 
|  | 2667 2654   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2668 2655 <span class="s">}</span> | 
|  | 2669 2656 | 
|  | 2670 2657 <span class="c"># Generate key 106 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2671 2658 <span class="c"># presence in a molecule.</span> | 
|  | 2672 2659 <span class="c">#</span> | 
|  | 2673 2660 <span class="c"># Key 106 description: QA(Q)Q</span> | 
|  | 2674 2661 <span class="c">#</span> | 
|  | 2675 <a name="_Generate166KeySetKey106-"></a>2662 <span class="k">sub </span><span class="m">_Generate166KeySetKey106</span> <span class="s">{</span> | 
|  | 2676 2663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2677 2664   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2678 2665 | 
|  | 2679 2666   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2680 2667   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2681 2668   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2682 2669 | 
|  | 2683 2670   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2684 2671 <span class="s">}</span> | 
|  | 2685 2672 | 
|  | 2686 2673 <span class="c"># Generate key 107 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2687 2674 <span class="c"># presence in a molecule.</span> | 
|  | 2688 2675 <span class="c">#</span> | 
|  | 2689 2676 <span class="c"># Key 107 description: XA(A)A</span> | 
|  | 2690 2677 <span class="c">#</span> | 
|  | 2691 <a name="_Generate166KeySetKey107-"></a>2678 <span class="k">sub </span><span class="m">_Generate166KeySetKey107</span> <span class="s">{</span> | 
|  | 2692 2679   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2693 2680   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2694 2681 | 
|  | 2695 2682   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2696 2683   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'X'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2697 2684   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2698 2685 | 
|  | 2699 2686   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2700 2687 <span class="s">}</span> | 
|  | 2701 2688 | 
|  | 2702 2689 <span class="c"># Generate key 108 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2703 2690 <span class="c"># presence in a molecule.</span> | 
|  | 2704 2691 <span class="c">#</span> | 
|  | 2705 2692 <span class="c"># Key 108 description: CH3AAACH2A</span> | 
|  | 2706 2693 <span class="c">#</span> | 
|  | 2707 <a name="_Generate166KeySetKey108-"></a>2694 <span class="k">sub </span><span class="m">_Generate166KeySetKey108</span> <span class="s">{</span> | 
|  | 2708 2695   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2709 2696   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2710 2697 | 
|  | 2711 2698   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2712 2699   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2713 2700   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2714 2701 | 
|  | 2715 2702   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2716 2703 <span class="s">}</span> | 
|  | 2717 2704 | 
|  | 2718 2705 <span class="c"># Generate key 109 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2719 2706 <span class="c"># presence in a molecule.</span> | 
|  | 2720 2707 <span class="c">#</span> | 
|  | 2721 2708 <span class="c"># Key 109 description: ACH2O</span> | 
|  | 2722 2709 <span class="c">#</span> | 
|  | 2723 <a name="_Generate166KeySetKey109-"></a>2710 <span class="k">sub </span><span class="m">_Generate166KeySetKey109</span> <span class="s">{</span> | 
|  | 2724 2711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2725 2712   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2726 2713 | 
|  | 2727 2714   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2728 2715   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2729 2716 | 
|  | 2730 2717   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2731 2718   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2732 2719 | 
|  | 2733 2720   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2734 2721 | 
|  | 2735 2722   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2736 2723 <span class="s">}</span> | 
|  | 2737 2724 | 
|  | 2738 2725 <span class="c"># Generate key 110 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2739 2726 <span class="c"># presence in a molecule.</span> | 
|  | 2740 2727 <span class="c">#</span> | 
|  | 2741 2728 <span class="c"># Key 110 description: NCO</span> | 
|  | 2742 2729 <span class="c">#</span> | 
|  | 2743 <a name="_Generate166KeySetKey110-"></a>2730 <span class="k">sub </span><span class="m">_Generate166KeySetKey110</span> <span class="s">{</span> | 
|  | 2744 2731   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2745 2732   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2746 2733 | 
|  | 2747 2734   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2748 2735   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2749 2736   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2750 2737 | 
|  | 2751 2738   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2752 2739 <span class="s">}</span> | 
|  | 2753 2740 | 
|  | 2754 2741 <span class="c"># Generate key 111 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2755 2742 <span class="c"># presence in a molecule.</span> | 
|  | 2756 2743 <span class="c">#</span> | 
|  | 2757 2744 <span class="c"># Key 111 description: NACH2A</span> | 
|  | 2758 2745 <span class="c">#</span> | 
|  | 2759 <a name="_Generate166KeySetKey111-"></a>2746 <span class="k">sub </span><span class="m">_Generate166KeySetKey111</span> <span class="s">{</span> | 
|  | 2760 2747   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2761 2748   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2762 2749 | 
|  | 2763 2750   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2764 2751   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2765 2752   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2766 2753 | 
|  | 2767 2754   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2768 2755 <span class="s">}</span> | 
|  | 2769 2756 | 
|  | 2770 2757 <span class="c"># Generate key 112 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2771 2758 <span class="c"># presence in a molecule.</span> | 
|  | 2772 2759 <span class="c">#</span> | 
|  | 2773 2760 <span class="c"># Key 112 description: AA(A)(A)A</span> | 
|  | 2774 2761 <span class="c">#</span> | 
|  | 2775 <a name="_Generate166KeySetKey112-"></a>2762 <span class="k">sub </span><span class="m">_Generate166KeySetKey112</span> <span class="s">{</span> | 
|  | 2776 2763   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2777 2764   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2778 2765 | 
|  | 2779 2766   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2780 2767   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2781 2768   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2782 2769 | 
|  | 2783 2770   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2784 2771 <span class="s">}</span> | 
|  | 2785 2772 | 
|  | 2786 2773 <span class="c"># Generate key 113 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2787 2774 <span class="c"># presence in a molecule.</span> | 
|  | 2788 2775 <span class="c">#</span> | 
|  | 2789 2776 <span class="c"># Key 113 description: Onot%A%A</span> | 
|  | 2790 2777 <span class="c">#</span> | 
|  | 2791 <a name="_Generate166KeySetKey113-"></a>2778 <span class="k">sub </span><span class="m">_Generate166KeySetKey113</span> <span class="s">{</span> | 
|  | 2792 2779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2793 2780   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2794 2781 | 
|  | 2795 2782   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2796 2783   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2797 2784   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'not%'</span><span class="cm">,</span> <span class="q">'%'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2798 2785 | 
|  | 2799 2786   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2800 2787 <span class="s">}</span> | 
|  | 2801 2788 | 
|  | 2802 2789 <span class="c"># Generate key 114 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2803 2790 <span class="c"># presence in a molecule.</span> | 
|  | 2804 2791 <span class="c">#</span> | 
|  | 2805 2792 <span class="c"># Key 114 description: CH3CH2A</span> | 
|  | 2806 2793 <span class="c">#</span> | 
|  | 2807 <a name="_Generate166KeySetKey114-"></a>2794 <span class="k">sub </span><span class="m">_Generate166KeySetKey114</span> <span class="s">{</span> | 
|  | 2808 2795   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2809 2796   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2810 2797 | 
|  | 2811 2798   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2812 2799   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2813 2800 | 
|  | 2814 2801   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2815 2802   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2816 2803   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2817 2804 | 
|  | 2818 2805   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 2819 2806 | 
|  | 2820 2807   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2821 2808 <span class="s">}</span> | 
|  | 2822 2809 | 
|  | 2823 2810 <span class="c"># Generate key 115 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2824 2811 <span class="c"># presence in a molecule.</span> | 
|  | 2825 2812 <span class="c">#</span> | 
|  | 2826 2813 <span class="c"># Key 115 description: CH3ACH2A</span> | 
|  | 2827 2814 <span class="c">#</span> | 
|  | 2828 <a name="_Generate166KeySetKey115-"></a>2815 <span class="k">sub </span><span class="m">_Generate166KeySetKey115</span> <span class="s">{</span> | 
|  | 2829 2816   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2830 2817   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2831 2818 | 
|  | 2832 2819   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2833 2820   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2834 2821   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2835 2822 | 
|  | 2836 2823   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2837 2824 <span class="s">}</span> | 
|  | 2838 2825 | 
|  | 2839 2826 <span class="c"># Generate key 116 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2840 2827 <span class="c"># presence in a molecule.</span> | 
|  | 2841 2828 <span class="c">#</span> | 
|  | 2842 2829 <span class="c"># Key 116 description: CH3AACH2A</span> | 
|  | 2843 2830 <span class="c">#</span> | 
|  | 2844 <a name="_Generate166KeySetKey116-"></a>2831 <span class="k">sub </span><span class="m">_Generate166KeySetKey116</span> <span class="s">{</span> | 
|  | 2845 2832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2846 2833   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2847 2834 | 
|  | 2848 2835   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2849 2836   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2850 2837   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2851 2838 | 
|  | 2852 2839   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2853 2840 <span class="s">}</span> | 
|  | 2854 2841 | 
|  | 2855 2842 <span class="c"># Generate key 117 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2856 2843 <span class="c"># presence in a molecule.</span> | 
|  | 2857 2844 <span class="c">#</span> | 
|  | 2858 2845 <span class="c"># Key 117 description: NAO</span> | 
|  | 2859 2846 <span class="c">#</span> | 
|  | 2860 <a name="_Generate166KeySetKey117-"></a>2847 <span class="k">sub </span><span class="m">_Generate166KeySetKey117</span> <span class="s">{</span> | 
|  | 2861 2848   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2862 2849   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2863 2850 | 
|  | 2864 2851   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 2865 2852   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2866 2853   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2867 2854 | 
|  | 2868 2855   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2869 2856 <span class="s">}</span> | 
|  | 2870 2857 | 
|  | 2871 2858 <span class="c"># Generate key 118 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2872 2859 <span class="c"># presence in a molecule.</span> | 
|  | 2873 2860 <span class="c">#</span> | 
|  | 2874 2861 <span class="c"># Key 118 description: ACH2CH2A > 1</span> | 
|  | 2875 2862 <span class="c">#</span> | 
|  | 2876 <a name="_Generate166KeySetKey118-"></a>2863 <span class="k">sub </span><span class="m">_Generate166KeySetKey118</span> <span class="s">{</span> | 
|  | 2877 2864   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2878 2865   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2879 2866 | 
|  | 2880 2867   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2881 2868   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2882 2869   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2883 2870   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2884 2871 | 
|  | 2885 2872   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2886 2873 <span class="s">}</span> | 
|  | 2887 2874 | 
|  | 2888 2875 <span class="c"># Generate key 119 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2889 2876 <span class="c"># presence in a molecule.</span> | 
|  | 2890 2877 <span class="c">#</span> | 
|  | 2891 2878 <span class="c"># Key 119 description: N=A</span> | 
|  | 2892 2879 <span class="c">#</span> | 
|  | 2893 <a name="_Generate166KeySetKey119-"></a>2880 <span class="k">sub </span><span class="m">_Generate166KeySetKey119</span> <span class="s">{</span> | 
|  | 2894 2881   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2895 2882   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 2896 2883 | 
|  | 2897 2884   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2898 2885 <span class="s">}</span> | 
|  | 2899 2886 | 
|  | 2900 2887 <span class="c"># Generate key 120 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2901 2888 <span class="c"># presence in a molecule.</span> | 
|  | 2902 2889 <span class="c">#</span> | 
|  | 2903 2890 <span class="c"># Key 120 description: HETEROCYCLIC ATOM > 1 (&...)</span> | 
|  | 2904 2891 <span class="c">#</span> | 
|  | 2905 <a name="_Generate166KeySetKey120-"></a>2892 <span class="k">sub </span><span class="m">_Generate166KeySetKey120</span> <span class="s">{</span> | 
|  | 2906 2893   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2907 2894   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2908 2895 | 
|  | 2909 2896   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2910 2897 <span class="s">}</span> | 
|  | 2911 2898 | 
|  | 2912 2899 <span class="c"># Generate key 121 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2913 2900 <span class="c"># presence in a molecule.</span> | 
|  | 2914 2901 <span class="c">#</span> | 
|  | 2915 2902 <span class="c"># Key 121 description: N HETEROCYCLE</span> | 
|  | 2916 2903 <span class="c">#</span> | 
|  | 2917 <a name="_Generate166KeySetKey121-"></a>2904 <span class="k">sub </span><span class="m">_Generate166KeySetKey121</span> <span class="s">{</span> | 
|  | 2918 2905   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2919 2906   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2920 2907 | 
|  | 2921 2908   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2922 2909 <span class="s">}</span> | 
|  | 2923 2910 | 
|  | 2924 2911 <span class="c"># Generate key 122 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2925 2912 <span class="c"># presence in a molecule.</span> | 
|  | 2926 2913 <span class="c">#</span> | 
|  | 2927 2914 <span class="c"># Key 122 description: AN(A)A</span> | 
|  | 2928 2915 <span class="c">#</span> | 
|  | 2929 <a name="_Generate166KeySetKey122-"></a>2916 <span class="k">sub </span><span class="m">_Generate166KeySetKey122</span> <span class="s">{</span> | 
|  | 2930 2917   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2931 2918   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2932 2919 | 
|  | 2933 2920   <span class="i">$CentralAtomSymbol</span> = <span class="q">'N'</span><span class="sc">;</span> | 
|  | 2934 2921   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2935 2922   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2936 2923 | 
|  | 2937 2924   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2938 2925 <span class="s">}</span> | 
|  | 2939 2926 | 
|  | 2940 2927 <span class="c"># Generate key 123 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2941 2928 <span class="c"># presence in a molecule.</span> | 
|  | 2942 2929 <span class="c">#</span> | 
|  | 2943 2930 <span class="c"># Key 123 description: OCO</span> | 
|  | 2944 2931 <span class="c">#</span> | 
|  | 2945 <a name="_Generate166KeySetKey123-"></a>2932 <span class="k">sub </span><span class="m">_Generate166KeySetKey123</span> <span class="s">{</span> | 
|  | 2946 2933   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2947 2934   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2948 2935 | 
|  | 2949 2936   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 2950 2937   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2951 2938   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2952 2939 | 
|  | 2953 2940   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2954 2941 <span class="s">}</span> | 
|  | 2955 2942 | 
|  | 2956 2943 <span class="c"># Generate key 124 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2957 2944 <span class="c"># presence in a molecule.</span> | 
|  | 2958 2945 <span class="c">#</span> | 
|  | 2959 2946 <span class="c"># Key 124 description: QQ</span> | 
|  | 2960 2947 <span class="c">#</span> | 
|  | 2961 <a name="_Generate166KeySetKey124-"></a>2948 <span class="k">sub </span><span class="m">_Generate166KeySetKey124</span> <span class="s">{</span> | 
|  | 2962 2949   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2963 2950 | 
|  | 2964 2951   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2965 2952 <span class="s">}</span> | 
|  | 2966 2953 | 
|  | 2967 2954 <span class="c"># Generate key 125 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2968 2955 <span class="c"># presence in a molecule.</span> | 
|  | 2969 2956 <span class="c">#</span> | 
|  | 2970 2957 <span class="c"># Key 125 description: AROMATIC RING > 1</span> | 
|  | 2971 2958 <span class="c">#</span> | 
|  | 2972 <a name="_Generate166KeySetKey125-"></a>2959 <span class="k">sub </span><span class="m">_Generate166KeySetKey125</span> <span class="s">{</span> | 
|  | 2973 2960   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2974 2961   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$NumOfAromaticRings</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2975 2962 | 
|  | 2976 2963   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2977 2964   <span class="i">$NumOfAromaticRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfAromaticRings</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2978 2965 | 
|  | 2979 2966   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 2980 2967     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfAromaticRings</span> > <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 2981 2968   <span class="s">}</span> | 
|  | 2982 2969   <span class="k">else</span> <span class="s">{</span> | 
|  | 2983 2970     <span class="i">$KeyValue</span> = <span class="i">$NumOfAromaticRings</span><span class="sc">;</span> | 
|  | 2984 2971   <span class="s">}</span> | 
|  | 2985 2972   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 2986 2973 <span class="s">}</span> | 
|  | 2987 2974 | 
|  | 2988 2975 <span class="c"># Generate key 126 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 2989 2976 <span class="c"># presence in a molecule.</span> | 
|  | 2990 2977 <span class="c">#</span> | 
|  | 2991 2978 <span class="c"># Key 126 description: A!O!A</span> | 
|  | 2992 2979 <span class="c">#</span> | 
|  | 2993 <a name="_Generate166KeySetKey126-"></a>2980 <span class="k">sub </span><span class="m">_Generate166KeySetKey126</span> <span class="s">{</span> | 
|  | 2994 2981   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 2995 2982   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2996 2983 | 
|  | 2997 2984   <span class="i">$CentralAtomSymbol</span> = <span class="q">'O'</span><span class="sc">;</span> | 
|  | 2998 2985   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 2999 2986   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'!'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3000 2987 | 
|  | 3001 2988   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3002 2989 <span class="s">}</span> | 
|  | 3003 2990 | 
|  | 3004 2991 <span class="c"># Generate key 127 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3005 2992 <span class="c"># presence in a molecule.</span> | 
|  | 3006 2993 <span class="c">#</span> | 
|  | 3007 2994 <span class="c"># Key 127 description: A$A!O > 1 (&...)</span> | 
|  | 3008 2995 <span class="c">#</span> | 
|  | 3009 <a name="_Generate166KeySetKey127-"></a>2996 <span class="k">sub </span><span class="m">_Generate166KeySetKey127</span> <span class="s">{</span> | 
|  | 3010 2997   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3011 2998   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3012 2999 | 
|  | 3013 3000   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3014 3001   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3015 3002   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'$'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3016 3003   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3017 3004 | 
|  | 3018 3005   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3019 3006 <span class="s">}</span> | 
|  | 3020 3007 | 
|  | 3021 3008 <span class="c"># Generate key 128 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3022 3009 <span class="c"># presence in a molecule.</span> | 
|  | 3023 3010 <span class="c">#</span> | 
|  | 3024 3011 <span class="c"># Key 128 description: ACH2AAACH2A</span> | 
|  | 3025 3012 <span class="c">#</span> | 
|  | 3026 <a name="_Generate166KeySetKey128-"></a>3013 <span class="k">sub </span><span class="m">_Generate166KeySetKey128</span> <span class="s">{</span> | 
|  | 3027 3014   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3028 3015   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3029 3016 | 
|  | 3030 3017   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3031 3018   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3032 3019   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3033 3020 | 
|  | 3034 3021   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3035 3022 <span class="s">}</span> | 
|  | 3036 3023 | 
|  | 3037 3024 <span class="c"># Generate key 129 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3038 3025 <span class="c"># presence in a molecule.</span> | 
|  | 3039 3026 <span class="c">#</span> | 
|  | 3040 3027 <span class="c"># Key 129 description: ACH2AACH2A</span> | 
|  | 3041 3028 <span class="c">#</span> | 
|  | 3042 <a name="_Generate166KeySetKey129-"></a>3029 <span class="k">sub </span><span class="m">_Generate166KeySetKey129</span> <span class="s">{</span> | 
|  | 3043 3030   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3044 3031   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3045 3032 | 
|  | 3046 3033   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3047 3034   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3048 3035   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3049 3036 | 
|  | 3050 3037   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3051 3038 <span class="s">}</span> | 
|  | 3052 3039 | 
|  | 3053 3040 <span class="c"># Generate key 130 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3054 3041 <span class="c"># presence in a molecule.</span> | 
|  | 3055 3042 <span class="c">#</span> | 
|  | 3056 3043 <span class="c"># Key 130 description: QQ > 1 (&...)</span> | 
|  | 3057 3044 <span class="c">#</span> | 
|  | 3058 <a name="_Generate166KeySetKey130-"></a>3045 <span class="k">sub </span><span class="m">_Generate166KeySetKey130</span> <span class="s">{</span> | 
|  | 3059 3046   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3060 3047   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3061 3048 | 
|  | 3062 3049   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3063 3050 <span class="s">}</span> | 
|  | 3064 3051 | 
|  | 3065 3052 <span class="c"># Generate key 131 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3066 3053 <span class="c"># presence in a molecule.</span> | 
|  | 3067 3054 <span class="c">#</span> | 
|  | 3068 3055 <span class="c"># Key 131 description: QH > 1</span> | 
|  | 3069 3056 <span class="c">#</span> | 
|  | 3070 <a name="_Generate166KeySetKey131-"></a>3057 <span class="k">sub </span><span class="m">_Generate166KeySetKey131</span> <span class="s">{</span> | 
|  | 3071 3058   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3072 3059   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3073 3060 | 
|  | 3074 3061   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3075 3062 <span class="s">}</span> | 
|  | 3076 3063 | 
|  | 3077 3064 <span class="c"># Generate key 132 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3078 3065 <span class="c"># presence in a molecule.</span> | 
|  | 3079 3066 <span class="c">#</span> | 
|  | 3080 3067 <span class="c"># Key 132 description: OACH2A</span> | 
|  | 3081 3068 <span class="c">#</span> | 
|  | 3082 <a name="_Generate166KeySetKey132-"></a>3069 <span class="k">sub </span><span class="m">_Generate166KeySetKey132</span> <span class="s">{</span> | 
|  | 3083 3070   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3084 3071   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3085 3072 | 
|  | 3086 3073   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3087 3074   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3088 3075   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3089 3076 | 
|  | 3090 3077   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3091 3078 <span class="s">}</span> | 
|  | 3092 3079 | 
|  | 3093 3080 <span class="c"># Generate key 133 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3094 3081 <span class="c"># presence in a molecule.</span> | 
|  | 3095 3082 <span class="c">#</span> | 
|  | 3096 3083 <span class="c"># Key 133 description: A$A!N</span> | 
|  | 3097 3084 <span class="c">#</span> | 
|  | 3098 <a name="_Generate166KeySetKey133-"></a>3085 <span class="k">sub </span><span class="m">_Generate166KeySetKey133</span> <span class="s">{</span> | 
|  | 3099 3086   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3100 3087   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3101 3088 | 
|  | 3102 3089   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3103 3090   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3104 3091   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'$'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3105 3092 | 
|  | 3106 3093   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3107 3094 <span class="s">}</span> | 
|  | 3108 3095 | 
|  | 3109 3096 <span class="c"># Generate key 134 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3110 3097 <span class="c"># presence in a molecule.</span> | 
|  | 3111 3098 <span class="c">#</span> | 
|  | 3112 3099 <span class="c"># Key 134 description: X (HALOGEN)</span> | 
|  | 3113 3100 <span class="c">#</span> | 
|  | 3114 <a name="_Generate166KeySetKey134-"></a>3101 <span class="k">sub </span><span class="m">_Generate166KeySetKey134</span> <span class="s">{</span> | 
|  | 3115 3102   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3116 3103 | 
|  | 3117 3104   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'X'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3118 3105 <span class="s">}</span> | 
|  | 3119 3106 | 
|  | 3120 3107 <span class="c"># Generate key 135 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3121 3108 <span class="c"># presence in a molecule.</span> | 
|  | 3122 3109 <span class="c">#</span> | 
|  | 3123 3110 <span class="c"># Key 135 description: Nnot%A%A</span> | 
|  | 3124 3111 <span class="c">#</span> | 
|  | 3125 <a name="_Generate166KeySetKey135-"></a>3112 <span class="k">sub </span><span class="m">_Generate166KeySetKey135</span> <span class="s">{</span> | 
|  | 3126 3113   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3127 3114   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3128 3115 | 
|  | 3129 3116   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3130 3117   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3131 3118   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'not%'</span><span class="cm">,</span> <span class="q">'%'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3132 3119 | 
|  | 3133 3120   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3134 3121 <span class="s">}</span> | 
|  | 3135 3122 | 
|  | 3136 3123 <span class="c"># Generate key 136 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3137 3124 <span class="c"># presence in a molecule.</span> | 
|  | 3138 3125 <span class="c">#</span> | 
|  | 3139 3126 <span class="c"># Key 136 description: O=A > 1</span> | 
|  | 3140 3127 <span class="c">#</span> | 
|  | 3141 <a name="_Generate166KeySetKey136-"></a>3128 <span class="k">sub </span><span class="m">_Generate166KeySetKey136</span> <span class="s">{</span> | 
|  | 3142 3129   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3143 3130   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3144 3131 | 
|  | 3145 3132   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3146 3133 <span class="s">}</span> | 
|  | 3147 3134 | 
|  | 3148 3135 <span class="c"># Generate key 137 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3149 3136 <span class="c"># presence in a molecule.</span> | 
|  | 3150 3137 <span class="c">#</span> | 
|  | 3151 3138 <span class="c"># Key 137 description: HETEROCYCLE</span> | 
|  | 3152 3139 <span class="c">#</span> | 
|  | 3153 <a name="_Generate166KeySetKey137-"></a>3140 <span class="k">sub </span><span class="m">_Generate166KeySetKey137</span> <span class="s">{</span> | 
|  | 3154 3141   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3155 3142   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3156 3143 | 
|  | 3157 3144   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3158 3145 <span class="s">}</span> | 
|  | 3159 3146 | 
|  | 3160 3147 <span class="c"># Generate key 138 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3161 3148 <span class="c"># presence in a molecule.</span> | 
|  | 3162 3149 <span class="c">#</span> | 
|  | 3163 3150 <span class="c"># Key 138 description: QCH2A > 1 (&...)</span> | 
|  | 3164 3151 <span class="c">#</span> | 
|  | 3165 <a name="_Generate166KeySetKey138-"></a>3152 <span class="k">sub </span><span class="m">_Generate166KeySetKey138</span> <span class="s">{</span> | 
|  | 3166 3153   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3167 3154   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3168 3155 | 
|  | 3169 3156   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 3170 3157   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3171 3158   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3172 3159   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3173 3160   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3174 3161 | 
|  | 3175 3162   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3176 3163 <span class="s">}</span> | 
|  | 3177 3164 | 
|  | 3178 3165 <span class="c"># Generate key 139 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3179 3166 <span class="c"># presence in a molecule.</span> | 
|  | 3180 3167 <span class="c">#</span> | 
|  | 3181 3168 <span class="c"># Key 139 description: OH</span> | 
|  | 3182 3169 <span class="c">#</span> | 
|  | 3183 <a name="_Generate166KeySetKey139-"></a>3170 <span class="k">sub </span><span class="m">_Generate166KeySetKey139</span> <span class="s">{</span> | 
|  | 3184 3171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3185 3172   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3186 3173 | 
|  | 3187 3174   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3188 3175 <span class="s">}</span> | 
|  | 3189 3176 | 
|  | 3190 3177 <span class="c"># Generate key 140 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3191 3178 <span class="c"># presence in a molecule.</span> | 
|  | 3192 3179 <span class="c">#</span> | 
|  | 3193 3180 <span class="c"># Key 140 description: O > 3 (&...)</span> | 
|  | 3194 3181 <span class="c">#</span> | 
|  | 3195 <a name="_Generate166KeySetKey140-"></a>3182 <span class="k">sub </span><span class="m">_Generate166KeySetKey140</span> <span class="s">{</span> | 
|  | 3196 3183   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3197 3184   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">4</span><span class="sc">;</span> | 
|  | 3198 3185 | 
|  | 3199 3186   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3200 3187 <span class="s">}</span> | 
|  | 3201 3188 | 
|  | 3202 3189 <span class="c"># Generate key 141 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3203 3190 <span class="c"># presence in a molecule.</span> | 
|  | 3204 3191 <span class="c">#</span> | 
|  | 3205 3192 <span class="c"># Key 141 description: CH3 > 2 (&...)</span> | 
|  | 3206 3193 <span class="c">#</span> | 
|  | 3207 <a name="_Generate166KeySetKey141-"></a>3194 <span class="k">sub </span><span class="m">_Generate166KeySetKey141</span> <span class="s">{</span> | 
|  | 3208 3195   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3209 3196   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3210 3197 | 
|  | 3211 3198   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3212 3199 <span class="s">}</span> | 
|  | 3213 3200 | 
|  | 3214 3201 <span class="c"># Generate key 142 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3215 3202 <span class="c"># presence in a molecule.</span> | 
|  | 3216 3203 <span class="c">#</span> | 
|  | 3217 3204 <span class="c"># Key 142 description: N > 1</span> | 
|  | 3218 3205 <span class="c">#</span> | 
|  | 3219 <a name="_Generate166KeySetKey142-"></a>3206 <span class="k">sub </span><span class="m">_Generate166KeySetKey142</span> <span class="s">{</span> | 
|  | 3220 3207   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3221 3208   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3222 3209 | 
|  | 3223 3210   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3224 3211 <span class="s">}</span> | 
|  | 3225 3212 | 
|  | 3226 3213 <span class="c"># Generate key 143 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3227 3214 <span class="c"># presence in a molecule.</span> | 
|  | 3228 3215 <span class="c">#</span> | 
|  | 3229 3216 <span class="c"># Key 143 description: A$A!O</span> | 
|  | 3230 3217 <span class="c">#</span> | 
|  | 3231 <a name="_Generate166KeySetKey143-"></a>3218 <span class="k">sub </span><span class="m">_Generate166KeySetKey143</span> <span class="s">{</span> | 
|  | 3232 3219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3233 3220   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3234 3221 | 
|  | 3235 3222   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3236 3223   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3237 3224   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'$'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3238 3225 | 
|  | 3239 3226   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3240 3227 <span class="s">}</span> | 
|  | 3241 3228 | 
|  | 3242 3229 <span class="c"># Generate key 144 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3243 3230 <span class="c"># presence in a molecule.</span> | 
|  | 3244 3231 <span class="c">#</span> | 
|  | 3245 3232 <span class="c"># Key 144 description: Anot%A%Anot%A</span> | 
|  | 3246 3233 <span class="c">#</span> | 
|  | 3247 <a name="_Generate166KeySetKey144-"></a>3234 <span class="k">sub </span><span class="m">_Generate166KeySetKey144</span> <span class="s">{</span> | 
|  | 3248 3235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3249 3236   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3250 3237 | 
|  | 3251 3238   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3252 3239   <span class="i">$BondSymbol</span> = <span class="q">'%'</span><span class="sc">;</span> | 
|  | 3253 3240 | 
|  | 3254 3241   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3255 3242   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'not%'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'not%'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3256 3243   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3257 3244 <span class="s">}</span> | 
|  | 3258 3245 | 
|  | 3259 3246 <span class="c"># Generate key 145 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3260 3247 <span class="c"># presence in a molecule.</span> | 
|  | 3261 3248 <span class="c">#</span> | 
|  | 3262 3249 <span class="c"># Key 145 description: 6M RING > 1</span> | 
|  | 3263 3250 <span class="c">#</span> | 
|  | 3264 <a name="_Generate166KeySetKey145-"></a>3251 <span class="k">sub </span><span class="m">_Generate166KeySetKey145</span> <span class="s">{</span> | 
|  | 3265 3252   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3266 3253   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3267 3254 | 
|  | 3268 3255   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span> | 
|  | 3269 3256   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3270 3257   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3271 3258 | 
|  | 3272 3259   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 3273 3260     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfRings</span> > <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 3274 3261   <span class="s">}</span> | 
|  | 3275 3262   <span class="k">else</span> <span class="s">{</span> | 
|  | 3276 3263     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 3277 3264   <span class="s">}</span> | 
|  | 3278 3265   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3279 3266 <span class="s">}</span> | 
|  | 3280 3267 | 
|  | 3281 3268 <span class="c"># Generate key 146 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3282 3269 <span class="c"># presence in a molecule.</span> | 
|  | 3283 3270 <span class="c">#</span> | 
|  | 3284 3271 <span class="c"># Key 146 description: O > 2</span> | 
|  | 3285 3272 <span class="c">#</span> | 
|  | 3286 <a name="_Generate166KeySetKey146-"></a>3273 <span class="k">sub </span><span class="m">_Generate166KeySetKey146</span> <span class="s">{</span> | 
|  | 3287 3274   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3288 3275   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span> | 
|  | 3289 3276 | 
|  | 3290 3277   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3291 3278 <span class="s">}</span> | 
|  | 3292 3279 | 
|  | 3293 3280 <span class="c"># Generate key 147 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3294 3281 <span class="c"># presence in a molecule.</span> | 
|  | 3295 3282 <span class="c">#</span> | 
|  | 3296 3283 <span class="c"># Key 147 description: ACH2CH2A</span> | 
|  | 3297 3284 <span class="c">#</span> | 
|  | 3298 <a name="_Generate166KeySetKey147-"></a>3285 <span class="k">sub </span><span class="m">_Generate166KeySetKey147</span> <span class="s">{</span> | 
|  | 3299 3286   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3300 3287   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3301 3288 | 
|  | 3302 3289   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3303 3290   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3304 3291   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3305 3292 | 
|  | 3306 3293   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3307 3294 <span class="s">}</span> | 
|  | 3308 3295 | 
|  | 3309 3296 <span class="c"># Generate key 148 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3310 3297 <span class="c"># presence in a molecule.</span> | 
|  | 3311 3298 <span class="c">#</span> | 
|  | 3312 3299 <span class="c"># Key 148 description: AQ(A)A</span> | 
|  | 3313 3300 <span class="c">#</span> | 
|  | 3314 <a name="_Generate166KeySetKey148-"></a>3301 <span class="k">sub </span><span class="m">_Generate166KeySetKey148</span> <span class="s">{</span> | 
|  | 3315 3302   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3316 3303   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3317 3304 | 
|  | 3318 3305   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 3319 3306   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3320 3307   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3321 3308 | 
|  | 3322 3309   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3323 3310 <span class="s">}</span> | 
|  | 3324 3311 | 
|  | 3325 3312 <span class="c"># Generate key 149 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3326 3313 <span class="c"># presence in a molecule.</span> | 
|  | 3327 3314 <span class="c">#</span> | 
|  | 3328 3315 <span class="c"># Key 149 description: CH3 > 1</span> | 
|  | 3329 3316 <span class="c">#</span> | 
|  | 3330 <a name="_Generate166KeySetKey149-"></a>3317 <span class="k">sub </span><span class="m">_Generate166KeySetKey149</span> <span class="s">{</span> | 
|  | 3331 3318   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3332 3319   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3333 3320 | 
|  | 3334 3321   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3335 3322 <span class="s">}</span> | 
|  | 3336 3323 | 
|  | 3337 3324 <span class="c"># Generate key 150 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3338 3325 <span class="c"># presence in a molecule.</span> | 
|  | 3339 3326 <span class="c">#</span> | 
|  | 3340 3327 <span class="c"># Key 150 description: A!A$A!A</span> | 
|  | 3341 3328 <span class="c">#</span> | 
|  | 3342 <a name="_Generate166KeySetKey150-"></a>3329 <span class="k">sub </span><span class="m">_Generate166KeySetKey150</span> <span class="s">{</span> | 
|  | 3343 3330   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3344 3331   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3345 3332 | 
|  | 3346 3333   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3347 3334   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="q">'!'</span><span class="cm">,</span> <span class="q">'$'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3348 3335 | 
|  | 3349 3336   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3350 3337 <span class="s">}</span> | 
|  | 3351 3338 | 
|  | 3352 3339 <span class="c"># Generate key 151 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3353 3340 <span class="c"># presence in a molecule.</span> | 
|  | 3354 3341 <span class="c">#</span> | 
|  | 3355 3342 <span class="c"># Key 151 description: NH</span> | 
|  | 3356 3343 <span class="c">#</span> | 
|  | 3357 <a name="_Generate166KeySetKey151-"></a>3344 <span class="k">sub </span><span class="m">_Generate166KeySetKey151</span> <span class="s">{</span> | 
|  | 3358 3345   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3359 3346   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3360 3347 | 
|  | 3361 3348   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3362 3349 <span class="s">}</span> | 
|  | 3363 3350 | 
|  | 3364 3351 <span class="c"># Generate key 152 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3365 3352 <span class="c"># presence in a molecule.</span> | 
|  | 3366 3353 <span class="c">#</span> | 
|  | 3367 3354 <span class="c"># Key 152 description: OC(C)C</span> | 
|  | 3368 3355 <span class="c">#</span> | 
|  | 3369 <a name="_Generate166KeySetKey152-"></a>3356 <span class="k">sub </span><span class="m">_Generate166KeySetKey152</span> <span class="s">{</span> | 
|  | 3370 3357   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3371 3358   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3372 3359 | 
|  | 3373 3360   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 3374 3361   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3375 3362   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3376 3363 | 
|  | 3377 3364   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3378 3365 <span class="s">}</span> | 
|  | 3379 3366 | 
|  | 3380 3367 <span class="c"># Generate key 153 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3381 3368 <span class="c"># presence in a molecule.</span> | 
|  | 3382 3369 <span class="c">#</span> | 
|  | 3383 3370 <span class="c"># Key 153 description: QCH2A</span> | 
|  | 3384 3371 <span class="c">#</span> | 
|  | 3385 <a name="_Generate166KeySetKey153-"></a>3372 <span class="k">sub </span><span class="m">_Generate166KeySetKey153</span> <span class="s">{</span> | 
|  | 3386 3373   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3387 3374   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3388 3375 | 
|  | 3389 3376   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 3390 3377   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3391 3378   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3392 3379   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 3393 3380   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3394 3381 | 
|  | 3395 3382   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3396 3383 <span class="s">}</span> | 
|  | 3397 3384 | 
|  | 3398 3385 <span class="c"># Generate key 154 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3399 3386 <span class="c"># presence in a molecule.</span> | 
|  | 3400 3387 <span class="c">#</span> | 
|  | 3401 3388 <span class="c"># Key 154 description: C=O</span> | 
|  | 3402 3389 <span class="c">#</span> | 
|  | 3403 <a name="_Generate166KeySetKey154-"></a>3390 <span class="k">sub </span><span class="m">_Generate166KeySetKey154</span> <span class="s">{</span> | 
|  | 3404 3391   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3405 3392   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3406 3393 | 
|  | 3407 3394   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3408 3395 <span class="s">}</span> | 
|  | 3409 3396 | 
|  | 3410 3397 <span class="c"># Generate key 155 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3411 3398 <span class="c"># presence in a molecule.</span> | 
|  | 3412 3399 <span class="c">#</span> | 
|  | 3413 3400 <span class="c"># Key 155 description: A!CH2!A</span> | 
|  | 3414 3401 <span class="c">#</span> | 
|  | 3415 <a name="_Generate166KeySetKey155-"></a>3402 <span class="k">sub </span><span class="m">_Generate166KeySetKey155</span> <span class="s">{</span> | 
|  | 3416 3403   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3417 3404   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3418 3405 | 
|  | 3419 3406   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 3420 3407   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3421 3408   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'!'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3422 3409   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 3423 3410   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3424 3411 | 
|  | 3425 3412   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3426 3413 <span class="s">}</span> | 
|  | 3427 3414 | 
|  | 3428 3415 <span class="c"># Generate key 156 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3429 3416 <span class="c"># presence in a molecule.</span> | 
|  | 3430 3417 <span class="c">#</span> | 
|  | 3431 3418 <span class="c"># Key 156 description: NA(A)A</span> | 
|  | 3432 3419 <span class="c">#</span> | 
|  | 3433 <a name="_Generate166KeySetKey156-"></a>3420 <span class="k">sub </span><span class="m">_Generate166KeySetKey156</span> <span class="s">{</span> | 
|  | 3434 3421   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3435 3422   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">@CentralAtomNbrsAtomSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomNbrsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3436 3423 | 
|  | 3437 3424   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3438 3425   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3439 3426   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3440 3427 | 
|  | 3441 3428   <span class="i">@CentralAtomNbrsAtomSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3442 3429   <span class="i">@CentralAtomNbrsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3443 3430   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 3444 3431 | 
|  | 3445 3432   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> \<span class="i">@CentralAtomNbrsAtomSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomNbrsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3446 3433 <span class="s">}</span> | 
|  | 3447 3434 | 
|  | 3448 3435 <span class="c"># Generate key 157 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3449 3436 <span class="c"># presence in a molecule.</span> | 
|  | 3450 3437 <span class="c">#</span> | 
|  | 3451 3438 <span class="c"># Key 157 description: C-O</span> | 
|  | 3452 3439 <span class="c">#</span> | 
|  | 3453 <a name="_Generate166KeySetKey157-"></a>3440 <span class="k">sub </span><span class="m">_Generate166KeySetKey157</span> <span class="s">{</span> | 
|  | 3454 3441   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3455 3442   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 3456 3443 | 
|  | 3457 3444   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3458 3445 <span class="s">}</span> | 
|  | 3459 3446 | 
|  | 3460 3447 <span class="c"># Generate key 158 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3461 3448 <span class="c"># presence in a molecule.</span> | 
|  | 3462 3449 <span class="c">#</span> | 
|  | 3463 3450 <span class="c"># Key 158 description: C-N</span> | 
|  | 3464 3451 <span class="c">#</span> | 
|  | 3465 <a name="_Generate166KeySetKey158-"></a>3452 <span class="k">sub </span><span class="m">_Generate166KeySetKey158</span> <span class="s">{</span> | 
|  | 3466 3453   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3467 3454   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 3468 3455 | 
|  | 3469 3456   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3470 3457 <span class="s">}</span> | 
|  | 3471 3458 | 
|  | 3472 3459 <span class="c"># Generate key 159 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3473 3460 <span class="c"># presence in a molecule.</span> | 
|  | 3474 3461 <span class="c">#</span> | 
|  | 3475 3462 <span class="c"># Key 159 description: O > 1</span> | 
|  | 3476 3463 <span class="c">#</span> | 
|  | 3477 <a name="_Generate166KeySetKey159-"></a>3464 <span class="k">sub </span><span class="m">_Generate166KeySetKey159</span> <span class="s">{</span> | 
|  | 3478 3465   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3479 3466   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3480 3467 | 
|  | 3481 3468   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3482 3469 <span class="s">}</span> | 
|  | 3483 3470 | 
|  | 3484 3471 <span class="c"># Generate key 160 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3485 3472 <span class="c"># presence in a molecule.</span> | 
|  | 3486 3473 <span class="c">#</span> | 
|  | 3487 3474 <span class="c"># Key 160 description: CH3</span> | 
|  | 3488 3475 <span class="c">#</span> | 
|  | 3489 <a name="_Generate166KeySetKey160-"></a>3476 <span class="k">sub </span><span class="m">_Generate166KeySetKey160</span> <span class="s">{</span> | 
|  | 3490 3477   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3491 3478   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3492 3479 | 
|  | 3493 3480   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3494 3481 <span class="s">}</span> | 
|  | 3495 3482 | 
|  | 3496 3483 <span class="c"># Generate key 161 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3497 3484 <span class="c"># presence in a molecule.</span> | 
|  | 3498 3485 <span class="c">#</span> | 
|  | 3499 3486 <span class="c"># Key 161 description: N</span> | 
|  | 3500 3487 <span class="c">#</span> | 
|  | 3501 <a name="_Generate166KeySetKey161-"></a>3488 <span class="k">sub </span><span class="m">_Generate166KeySetKey161</span> <span class="s">{</span> | 
|  | 3502 3489   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3503 3490 | 
|  | 3504 3491   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3505 3492 <span class="s">}</span> | 
|  | 3506 3493 | 
|  | 3507 3494 <span class="c"># Generate key 162 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3508 3495 <span class="c"># presence in a molecule.</span> | 
|  | 3509 3496 <span class="c">#</span> | 
|  | 3510 3497 <span class="c"># Key 162 description: AROMATIC</span> | 
|  | 3511 3498 <span class="c">#</span> | 
|  | 3512 <a name="_Generate166KeySetKey162-"></a>3499 <span class="k">sub </span><span class="m">_Generate166KeySetKey162</span> <span class="s">{</span> | 
|  | 3513 3500   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3514 3501   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3515 3502 | 
|  | 3516 3503   <span class="c"># Check molecule aromatic property...</span> | 
|  | 3517 3504   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3518 3505   <span class="k">if</span> <span class="s">(</span><span class="i">$Molecule</span><span class="i">->IsAromatic</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 3519 3506     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span> | 
|  | 3520 3507   <span class="s">}</span> | 
|  | 3521 3508 | 
|  | 3522 3509   <span class="c"># Check aromatic property of each atom...</span> | 
|  | 3523 3510   <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 3524 3511   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 3525 3512       <span class="k">if</span> <span class="s">(</span>!<span class="i">$Atom</span><span class="i">->IsAromatic</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 3526 3513         <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 3527 3514         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 3528 3515       <span class="s">}</span> | 
|  | 3529 3516   <span class="s">}</span> | 
|  | 3530 3517   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3531 3518 <span class="s">}</span> | 
|  | 3532 3519 | 
|  | 3533 3520 <span class="c"># Generate key 163 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3534 3521 <span class="c"># presence in a molecule.</span> | 
|  | 3535 3522 <span class="c">#</span> | 
|  | 3536 3523 <span class="c"># Key 163 description: 6M RING</span> | 
|  | 3537 3524 <span class="c">#</span> | 
|  | 3538 <a name="_Generate166KeySetKey163-"></a>3525 <span class="k">sub </span><span class="m">_Generate166KeySetKey163</span> <span class="s">{</span> | 
|  | 3539 3526   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3540 3527   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3541 3528 | 
|  | 3542 3529   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span> | 
|  | 3543 3530   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3544 3531   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3545 3532 | 
|  | 3546 3533   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 3547 3534     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 3548 3535   <span class="s">}</span> | 
|  | 3549 3536   <span class="k">else</span> <span class="s">{</span> | 
|  | 3550 3537     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 3551 3538   <span class="s">}</span> | 
|  | 3552 3539   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3553 3540 <span class="s">}</span> | 
|  | 3554 3541 | 
|  | 3555 3542 <span class="c"># Generate key 164 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3556 3543 <span class="c"># presence in a molecule.</span> | 
|  | 3557 3544 <span class="c">#</span> | 
|  | 3558 3545 <span class="c"># Key 164 description: O</span> | 
|  | 3559 3546 <span class="c">#</span> | 
|  | 3560 <a name="_Generate166KeySetKey164-"></a>3547 <span class="k">sub </span><span class="m">_Generate166KeySetKey164</span> <span class="s">{</span> | 
|  | 3561 3548   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3562 3549 | 
|  | 3563 3550   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3564 3551 <span class="s">}</span> | 
|  | 3565 3552 | 
|  | 3566 3553 <span class="c"># Generate key 165 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3567 3554 <span class="c"># presence in a molecule.</span> | 
|  | 3568 3555 <span class="c">#</span> | 
|  | 3569 3556 <span class="c"># Key 165 description: RING</span> | 
|  | 3570 3557 <span class="c">#</span> | 
|  | 3571 <a name="_Generate166KeySetKey165-"></a>3558 <span class="k">sub </span><span class="m">_Generate166KeySetKey165</span> <span class="s">{</span> | 
|  | 3572 3559   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3573 3560   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3574 3561 | 
|  | 3575 3562   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3576 3563   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfRings</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3577 3564 | 
|  | 3578 3565   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 3579 3566     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 3580 3567   <span class="s">}</span> | 
|  | 3581 3568   <span class="k">else</span> <span class="s">{</span> | 
|  | 3582 3569     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span> | 
|  | 3583 3570   <span class="s">}</span> | 
|  | 3584 3571   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3585 3572 <span class="s">}</span> | 
|  | 3586 3573 | 
|  | 3587 3574 <span class="c"># Generate key 166 value as 1/0 indicating its presence/absence or count of its</span> | 
|  | 3588 3575 <span class="c"># presence in a molecule.</span> | 
|  | 3589 3576 <span class="c">#</span> | 
|  | 3590 3577 <span class="c"># Key 166 description: FRAGMENTS</span> | 
|  | 3591 3578 <span class="c">#</span> | 
|  | 3592 <a name="_Generate166KeySetKey166-"></a>3579 <span class="k">sub </span><span class="m">_Generate166KeySetKey166</span> <span class="s">{</span> | 
|  | 3593 3580   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3594 3581   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$NumOfComponents</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3595 3582 | 
|  | 3596 3583   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3597 3584   <span class="i">$NumOfComponents</span> = <span class="i">$Molecule</span><span class="i">->GetNumOfConnectedComponents</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3598 3585 | 
|  | 3599 3586   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 3600 3587     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfComponents</span> > <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 3601 3588   <span class="s">}</span> | 
|  | 3602 3589   <span class="k">else</span> <span class="s">{</span> | 
|  | 3603 3590     <span class="i">$KeyValue</span> = <span class="i">$NumOfComponents</span><span class="sc">;</span> | 
|  | 3604 3591   <span class="s">}</span> | 
|  | 3605 3592   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3606 3593 <span class="s">}</span> | 
|  | 3607 3594 | 
|  | 3608 3595 <span class="c">##################################</span> | 
|  | 3609 3596 <span class="c">#</span> | 
|  | 3610 3597 <span class="c">#  Implementation of MDL MACCS 322 keys...</span> | 
|  | 3611 3598 <span class="c">#</span> | 
|  | 3612 3599 <span class="c">##################################</span> | 
|  | 3613 3600 | 
|  | 3614 3601 <span class="c"># Generate 322 keyset key 1 value as 1/0 indicating its presence/absence or</span> | 
|  | 3615 3602 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3616 3603 <span class="c">#</span> | 
|  | 3617 3604 <span class="c"># Key 1 description: A(AAA) or AA(A)A - atom with at least three neighbors</span> | 
|  | 3618 3605 <span class="c">#</span> | 
|  | 3619 <a name="_Generate322KeySetKey1-"></a>3606 <span class="k">sub </span><span class="m">_Generate322KeySetKey1</span> <span class="s">{</span> | 
|  | 3620 3607   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3621 3608   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3622 3609 | 
|  | 3623 3610   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3624 3611   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3625 3612   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3626 3613 | 
|  | 3627 3614   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3628 3615 <span class="s">}</span> | 
|  | 3629 3616 | 
|  | 3630 3617 <span class="c"># Generate 322 keyset key 2 value as 1/0 indicating its presence/absence or</span> | 
|  | 3631 3618 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3632 3619 <span class="c">#</span> | 
|  | 3633 3620 <span class="c"># Key 2 description: Q - heteroatom</span> | 
|  | 3634 3621 <span class="c">#</span> | 
|  | 3635 <a name="_Generate322KeySetKey2-"></a>3622 <span class="k">sub </span><span class="m">_Generate322KeySetKey2</span> <span class="s">{</span> | 
|  | 3636 3623   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3637 3624 | 
|  | 3638 3625   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3639 3626 <span class="s">}</span> | 
|  | 3640 3627 | 
|  | 3641 3628 <span class="c"># Generate 322 keyset key 3 value as 1/0 indicating its presence/absence or</span> | 
|  | 3642 3629 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3643 3630 <span class="c">#</span> | 
|  | 3644 3631 <span class="c"># Key 3 description: Anot%not-A - atom involved in one or more multiple bonds, not aromatic</span> | 
|  | 3645 3632 <span class="c">#</span> | 
|  | 3646 <a name="_Generate322KeySetKey3-"></a>3633 <span class="k">sub </span><span class="m">_Generate322KeySetKey3</span> <span class="s">{</span> | 
|  | 3647 3634   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3648 3635   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'not%not-'</span><span class="sc">;</span> | 
|  | 3649 3636 | 
|  | 3650 3637   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3651 3638 <span class="s">}</span> | 
|  | 3652 3639 | 
|  | 3653 3640 <span class="c"># Generate 322 keyset key 4 value as 1/0 indicating its presence/absence or</span> | 
|  | 3654 3641 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3655 3642 <span class="c">#</span> | 
|  | 3656 3643 <span class="c"># Key 4 description:      A(AAAA) or AA(A)(A)A - atom with at least four neighbors</span> | 
|  | 3657 3644 <span class="c">#</span> | 
|  | 3658 <a name="_Generate322KeySetKey4-"></a>3645 <span class="k">sub </span><span class="m">_Generate322KeySetKey4</span> <span class="s">{</span> | 
|  | 3659 3646   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3660 3647   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3661 3648 | 
|  | 3662 3649   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3663 3650   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3664 3651   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3665 3652 | 
|  | 3666 3653   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3667 3654 <span class="s">}</span> | 
|  | 3668 3655 | 
|  | 3669 3656 <span class="c"># Generate 322 keyset key 5 value as 1/0 indicating its presence/absence or</span> | 
|  | 3670 3657 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3671 3658 <span class="c">#</span> | 
|  | 3672 3659 <span class="c"># Key 5 description: A(QQ) or QA(Q) - atom with at least two heteroatom neighbors</span> | 
|  | 3673 3660 <span class="c">#</span> | 
|  | 3674 <a name="_Generate322KeySetKey5-"></a>3661 <span class="k">sub </span><span class="m">_Generate322KeySetKey5</span> <span class="s">{</span> | 
|  | 3675 3662   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3676 3663   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3677 3664 | 
|  | 3678 3665   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3679 3666   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3680 3667   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3681 3668 | 
|  | 3682 3669   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3683 3670 <span class="s">}</span> | 
|  | 3684 3671 | 
|  | 3685 3672 <span class="c"># Generate 322 keyset key 6 value as 1/0 indicating its presence/absence or</span> | 
|  | 3686 3673 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3687 3674 <span class="c">#</span> | 
|  | 3688 3675 <span class="c"># Key 6 description: A(QQQ) or QA(Q)Q - atom with at least three heteroatom neighbors</span> | 
|  | 3689 3676 <span class="c">#</span> | 
|  | 3690 <a name="_Generate322KeySetKey6-"></a>3677 <span class="k">sub </span><span class="m">_Generate322KeySetKey6</span> <span class="s">{</span> | 
|  | 3691 3678   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3692 3679   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3693 3680 | 
|  | 3694 3681   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3695 3682   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="cm">,</span> <span class="q">'Q'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3696 3683   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3697 3684 | 
|  | 3698 3685   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3699 3686 <span class="s">}</span> | 
|  | 3700 3687 | 
|  | 3701 3688 <span class="c"># Generate 322 keyset key 7 value as 1/0 indicating its presence/absence or</span> | 
|  | 3702 3689 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3703 3690 <span class="c">#</span> | 
|  | 3704 3691 <span class="c"># Key 7 description:      QH - heteroatom with at least one hydrogen attached</span> | 
|  | 3705 3692 <span class="c">#</span> | 
|  | 3706 <a name="_Generate322KeySetKey7-"></a>3693 <span class="k">sub </span><span class="m">_Generate322KeySetKey7</span> <span class="s">{</span> | 
|  | 3707 3694   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3708 3695   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3709 3696 | 
|  | 3710 3697   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3711 3698 <span class="s">}</span> | 
|  | 3712 3699 | 
|  | 3713 3700 <span class="c"># Generate 322 keyset key 8 value as 1/0 indicating its presence/absence or</span> | 
|  | 3714 3701 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3715 3702 <span class="c">#</span> | 
|  | 3716 3703 <span class="c"># Key 8 description: CH2(AA) or ACH2A - carbon with at least two single bonds and at least two hydrogens attached</span> | 
|  | 3717 3704 <span class="c">#</span> | 
|  | 3718 <a name="_Generate322KeySetKey8-"></a>3705 <span class="k">sub </span><span class="m">_Generate322KeySetKey8</span> <span class="s">{</span> | 
|  | 3719 3706   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3720 3707   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3721 3708 | 
|  | 3722 3709   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 3723 3710   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3724 3711   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3725 3712   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 3726 3713   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span> | 
|  | 3727 3714 | 
|  | 3728 3715   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3729 3716 <span class="s">}</span> | 
|  | 3730 3717 | 
|  | 3731 3718 <span class="c"># Generate 322 keyset key 9 value as 1/0 indicating its presence/absence or</span> | 
|  | 3732 3719 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3733 3720 <span class="c">#</span> | 
|  | 3734 3721 <span class="c"># Key 9 description: CH3(A) or ACH3 - carbon with at least one single bond and at least three hydrogens attached</span> | 
|  | 3735 3722 <span class="c">#</span> | 
|  | 3736 <a name="_Generate322KeySetKey9-"></a>3723 <span class="k">sub </span><span class="m">_Generate322KeySetKey9</span> <span class="s">{</span> | 
|  | 3737 3724   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3738 3725   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3739 3726 | 
|  | 3740 3727   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 3741 3728   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3742 3729   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3743 3730   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 3744 3731   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">3</span><span class="sc">;</span> | 
|  | 3745 3732 | 
|  | 3746 3733   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3747 3734 <span class="s">}</span> | 
|  | 3748 3735 | 
|  | 3749 3736 <span class="c"># Generate 322 keyset key 10 value as 1/0 indicating its presence/absence or</span> | 
|  | 3750 3737 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3751 3738 <span class="c">#</span> | 
|  | 3752 3739 <span class="c"># Key 10 description: Halogen</span> | 
|  | 3753 3740 <span class="c">#</span> | 
|  | 3754 <a name="_Generate322KeySetKey10-"></a>3741 <span class="k">sub </span><span class="m">_Generate322KeySetKey10</span> <span class="s">{</span> | 
|  | 3755 3742   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3756 3743 | 
|  | 3757 3744   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'X'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3758 3745 <span class="s">}</span> | 
|  | 3759 3746 | 
|  | 3760 3747 <span class="c"># Generate 322 keyset key 11 value as 1/0 indicating its presence/absence or</span> | 
|  | 3761 3748 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3762 3749 <span class="c">#</span> | 
|  | 3763 3750 <span class="c"># Key 11 description: A(-A-A-A) or A-A(-A)-A - atom has at least three single bonds</span> | 
|  | 3764 3751 <span class="c">#</span> | 
|  | 3765 <a name="_Generate322KeySetKey11-"></a>3752 <span class="k">sub </span><span class="m">_Generate322KeySetKey11</span> <span class="s">{</span> | 
|  | 3766 3753   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3767 3754   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3768 3755 | 
|  | 3769 3756   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3770 3757   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3771 3758   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'-'</span><span class="cm">,</span> <span class="q">'-'</span><span class="cm">,</span> <span class="q">'-'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3772 3759 | 
|  | 3773 3760   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3774 3761 <span class="s">}</span> | 
|  | 3775 3762 | 
|  | 3776 3763 <span class="c"># Generate 322 keyset key 12 value as 1/0 indicating its presence/absence or</span> | 
|  | 3777 3764 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3778 3765 <span class="c">#</span> | 
|  | 3779 3766 <span class="c"># Key 12 description: AAAAAA@1 >= 2 - atom is in at least two different six-membered rings</span> | 
|  | 3780 3767 <span class="c">#</span> | 
|  | 3781 <a name="_Generate322KeySetKey12-"></a>3768 <span class="k">sub </span><span class="m">_Generate322KeySetKey12</span> <span class="s">{</span> | 
|  | 3782 3769   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3783 3770   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3784 3771 | 
|  | 3785 3772   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span> | 
|  | 3786 3773   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 3787 3774 | 
|  | 3788 3775   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 3789 3776     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_IsAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 3790 3777       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 3791 3778     <span class="s">}</span> | 
|  | 3792 3779     <span class="i">$NumOfRings</span> = <span class="i">$Atom</span><span class="i">->GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3793 3780     <span class="k">if</span> <span class="s">(</span><span class="i">$NumOfRings</span> >= <span class="n">2</span><span class="s">)</span> <span class="s">{</span> | 
|  | 3794 3781       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 3795 3782       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 3796 3783         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 3797 3784         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 3798 3785       <span class="s">}</span> | 
|  | 3799 3786     <span class="s">}</span> | 
|  | 3800 3787   <span class="s">}</span> | 
|  | 3801 3788   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3802 3789 <span class="s">}</span> | 
|  | 3803 3790 | 
|  | 3804 3791 <span class="c"># Generate 322 keyset key 13 value as 1/0 indicating its presence/absence or</span> | 
|  | 3805 3792 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3806 3793 <span class="c">#</span> | 
|  | 3807 3794 <span class="c"># Key 13 description: A($A$A$A) or A$A($A)$A - atom has more than two ring bonds (at least three ring bonds)</span> | 
|  | 3808 3795 <span class="c">#</span> | 
|  | 3809 <a name="_Generate322KeySetKey13-"></a>3796 <span class="k">sub </span><span class="m">_Generate322KeySetKey13</span> <span class="s">{</span> | 
|  | 3810 3797   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3811 3798   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3812 3799 | 
|  | 3813 3800   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3814 3801   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3815 3802   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'$'</span><span class="cm">,</span> <span class="q">'$'</span><span class="cm">,</span> <span class="q">'$'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3816 3803 | 
|  | 3817 3804   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3818 3805 <span class="s">}</span> | 
|  | 3819 3806 | 
|  | 3820 3807 <span class="c"># Generate 322 keyset key 14 value as 1/0 indicating its presence/absence or</span> | 
|  | 3821 3808 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3822 3809 <span class="c">#</span> | 
|  | 3823 3810 <span class="c"># Key 14 description: A$A!A$A - atom is at a ring/chain boundary. When a comparison is</span> | 
|  | 3824 3811 <span class="c">#                     done with another atom the path passes through the chain bond.</span> | 
|  | 3825 3812 <span class="c">#</span> | 
|  | 3826 <a name="_Generate322KeySetKey14-"></a>3813 <span class="k">sub </span><span class="m">_Generate322KeySetKey14</span> <span class="s">{</span> | 
|  | 3827 3814   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3828 3815   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3829 3816 | 
|  | 3830 3817   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3831 3818   <span class="i">$BondSymbol</span> = <span class="q">'!'</span><span class="sc">;</span> | 
|  | 3832 3819 | 
|  | 3833 3820   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3834 3821   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'$'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'$'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3835 3822   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3836 3823 <span class="s">}</span> | 
|  | 3837 3824 | 
|  | 3838 3825 <span class="c"># Generate 322 keyset key 15 value as 1/0 indicating its presence/absence or</span> | 
|  | 3839 3826 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3840 3827 <span class="c">#</span> | 
|  | 3841 3828 <span class="c"># Key 15 description:  Anot%A%Anot%A - atom is at an aromatic/nonaromatic boundary.</span> | 
|  | 3842 3829 <span class="c">#                      When a comparison is done with another atom the path passes through the aromatic bond.</span> | 
|  | 3843 3830 <span class="c">#</span> | 
|  | 3844 <a name="_Generate322KeySetKey15-"></a>3831 <span class="k">sub </span><span class="m">_Generate322KeySetKey15</span> <span class="s">{</span> | 
|  | 3845 3832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3846 3833   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3847 3834 | 
|  | 3848 3835   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3849 3836   <span class="i">$BondSymbol</span> = <span class="q">'%'</span><span class="sc">;</span> | 
|  | 3850 3837 | 
|  | 3851 3838   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3852 3839   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'not%'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'not%'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3853 3840   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3854 3841 <span class="s">}</span> | 
|  | 3855 3842 | 
|  | 3856 3843 <span class="c"># Generate 322 keyset key 16 value as 1/0 indicating its presence/absence or</span> | 
|  | 3857 3844 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3858 3845 <span class="c">#</span> | 
|  | 3859 3846 <span class="c"># Key 16 description:     A!A!A  - atom with more than one chain bond</span> | 
|  | 3860 3847 <span class="c">#</span> | 
|  | 3861 <a name="_Generate322KeySetKey16-"></a>3848 <span class="k">sub </span><span class="m">_Generate322KeySetKey16</span> <span class="s">{</span> | 
|  | 3862 3849   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3863 3850   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3864 3851 | 
|  | 3865 3852   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 3866 3853   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3867 3854   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">'!'</span><span class="cm">,</span> <span class="q">'!'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3868 3855 | 
|  | 3869 3856   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3870 3857 <span class="s">}</span> | 
|  | 3871 3858 | 
|  | 3872 3859 <span class="c"># Generate 322 keyset key 17 value as 1/0 indicating its presence/absence or</span> | 
|  | 3873 3860 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3874 3861 <span class="c">#</span> | 
|  | 3875 3862 <span class="c"># Key 17 description: A!A$A!A - atom is at a ring/chain boundary. When a comparison</span> | 
|  | 3876 3863 <span class="c">#                     is done  with another atom the path passes through the ring bond.</span> | 
|  | 3877 3864 <span class="c">#</span> | 
|  | 3878 <a name="_Generate322KeySetKey17-"></a>3865 <span class="k">sub </span><span class="m">_Generate322KeySetKey17</span> <span class="s">{</span> | 
|  | 3879 3866   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3880 3867   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3881 3868 | 
|  | 3882 3869   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3883 3870   <span class="i">$BondSymbol</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 3884 3871 | 
|  | 3885 3872   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3886 3873   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'!'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'!'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3887 3874   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3888 3875 <span class="s">}</span> | 
|  | 3889 3876 | 
|  | 3890 3877 <span class="c"># Generate 322 keyset key 18 value as 1/0 indicating its presence/absence or</span> | 
|  | 3891 3878 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3892 3879 <span class="c">#</span> | 
|  | 3893 3880 <span class="c"># Key 18 description: A%Anot%A%A - atom is at an aromatic/nonaromatic boundary.</span> | 
|  | 3894 3881 <span class="c">#                     When a comparison is done with another atom the path passes through</span> | 
|  | 3895 3882 <span class="c">#                     the nonaromatic bond</span> | 
|  | 3896 3883 <span class="c">#</span> | 
|  | 3897 <a name="_Generate322KeySetKey18-"></a>3884 <span class="k">sub </span><span class="m">_Generate322KeySetKey18</span> <span class="s">{</span> | 
|  | 3898 3885   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3899 3886   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3900 3887 | 
|  | 3901 3888   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3902 3889   <span class="i">$BondSymbol</span> = <span class="q">'not%'</span><span class="sc">;</span> | 
|  | 3903 3890 | 
|  | 3904 3891   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3905 3892   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'%'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'%'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3906 3893   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3907 3894 <span class="s">}</span> | 
|  | 3908 3895 | 
|  | 3909 3896 <span class="c"># Generate 322 keyset key 19 value as 1/0 indicating its presence/absence or</span> | 
|  | 3910 3897 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3911 3898 <span class="c">#</span> | 
|  | 3912 3899 <span class="c"># Key 19 description: HETEROCYCLE - atom is a heteroatom in a ring.</span> | 
|  | 3913 3900 <span class="c">#</span> | 
|  | 3914 <a name="_Generate322KeySetKey19-"></a>3901 <span class="k">sub </span><span class="m">_Generate322KeySetKey19</span> <span class="s">{</span> | 
|  | 3915 3902   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3916 3903   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3917 3904 | 
|  | 3918 3905   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'Q'</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3919 3906 <span class="s">}</span> | 
|  | 3920 3907 | 
|  | 3921 3908 <span class="c"># Generate 322 keyset key 20 value as 1/0 indicating its presence/absence or</span> | 
|  | 3922 3909 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3923 3910 <span class="c">#</span> | 
|  | 3924 3911 <span class="c"># Key 20 description: rare properties: atom with five or more neighbors, atom in four</span> | 
|  | 3925 3912 <span class="c">#                     or more rings, or atom types other than  H, C, N, O, S, F, Cl, Br, or I</span> | 
|  | 3926 3913 <span class="c">#</span> | 
|  | 3927 <a name="_Generate322KeySetKey20-"></a>3914 <span class="k">sub </span><span class="m">_Generate322KeySetKey20</span> <span class="s">{</span> | 
|  | 3928 3915   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3929 3916   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3930 3917 | 
|  | 3931 3918   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 3932 3919   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 3933 3920     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> !~ <span class="q">/^(1|6|7|8|9|16|17|35|53)$/</span><span class="s">)</span> || <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetNumOfRings</span><span class="s">(</span><span class="s">)</span> >= <span class="n">4</span><span class="s">)</span> || <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetNumOfNeighbors</span><span class="s">(</span><span class="s">)</span> >= <span class="n">5</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span> | 
|  | 3934 3921       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 3935 3922     <span class="s">}</span> | 
|  | 3936 3923     <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 3937 3924     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 3938 3925       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 3939 3926       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 3940 3927     <span class="s">}</span> | 
|  | 3941 3928   <span class="s">}</span> | 
|  | 3942 3929   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3943 3930 <span class="s">}</span> | 
|  | 3944 3931 | 
|  | 3945 3932 <span class="c"># Generate 322 keyset key 21 value as 1/0 indicating its presence/absence or</span> | 
|  | 3946 3933 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3947 3934 <span class="c">#</span> | 
|  | 3948 3935 <span class="c"># Key 21 description: rare properties: atom has a charge, is an isotope, has</span> | 
|  | 3949 3936 <span class="c">#                     two or more multiple bonds, or has a triple bond.</span> | 
|  | 3950 3937 <span class="c">#</span> | 
|  | 3951 <a name="_Generate322KeySetKey21-"></a>3938 <span class="k">sub </span><span class="m">_Generate322KeySetKey21</span> <span class="s">{</span> | 
|  | 3952 3939   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3953 3940   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3954 3941 | 
|  | 3955 3942   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 3956 3943   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 3957 3944     <span class="k">if</span> <span class="s">(</span> !<span class="s">(</span><span class="i">$Atom</span><span class="i">->IsIsotope</span><span class="s">(</span><span class="s">)</span> || <span class="i">$Atom</span><span class="i">->GetFormalCharge</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span> | 
|  | 3958 3945       <span class="c"># Look for multiple and triple bonds...</span> | 
|  | 3959 3946       <span class="k">my</span><span class="s">(</span><span class="i">$Bond</span><span class="cm">,</span> <span class="i">$NumOfTripleBonds</span><span class="cm">,</span> <span class="i">$NumOfMultipleBonds</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3960 3947 | 
|  | 3961 3948       <span class="s">(</span><span class="i">$NumOfTripleBonds</span><span class="cm">,</span> <span class="i">$NumOfMultipleBonds</span><span class="s">)</span> = <span class="s">(</span><span class="n">0</span><span class="cm">,</span> <span class="n">0</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3962 3949       <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetBonds</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 3963 3950         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsSingle</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 3964 3951         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="i">$NumOfMultipleBonds</span>++<span class="sc">;</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 3965 3952         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsTriple</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="i">$NumOfTripleBonds</span>++<span class="sc">;</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 3966 3953       <span class="s">}</span> | 
|  | 3967 3954       <span class="k">if</span> <span class="s">(</span> !<span class="s">(</span><span class="i">$NumOfTripleBonds</span> || <span class="s">(</span><span class="i">$NumOfMultipleBonds</span> >= <span class="n">2</span><span class="s">)</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span> | 
|  | 3968 3955         <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 3969 3956       <span class="s">}</span> | 
|  | 3970 3957     <span class="s">}</span> | 
|  | 3971 3958     <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 3972 3959     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 3973 3960       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 3974 3961       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 3975 3962     <span class="s">}</span> | 
|  | 3976 3963   <span class="s">}</span> | 
|  | 3977 3964   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 3978 3965 <span class="s">}</span> | 
|  | 3979 3966 | 
|  | 3980 3967 <span class="c"># Generate 322 keyset key 22 value as 1/0 indicating its presence/absence or</span> | 
|  | 3981 3968 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3982 3969 <span class="c">#</span> | 
|  | 3983 3970 <span class="c"># Key 22 description:  N - nitrogen</span> | 
|  | 3984 3971 <span class="c">#</span> | 
|  | 3985 <a name="_Generate322KeySetKey22-"></a>3972 <span class="k">sub </span><span class="m">_Generate322KeySetKey22</span> <span class="s">{</span> | 
|  | 3986 3973   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3987 3974 | 
|  | 3988 3975   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 3989 3976 <span class="s">}</span> | 
|  | 3990 3977 | 
|  | 3991 3978 <span class="c"># Generate 322 keyset key 23 value as 1/0 indicating its presence/absence or</span> | 
|  | 3992 3979 <span class="c"># count of its presence in a molecule.</span> | 
|  | 3993 3980 <span class="c">#</span> | 
|  | 3994 3981 <span class="c"># Key 23 description: S - sulfur</span> | 
|  | 3995 3982 <span class="c">#</span> | 
|  | 3996 <a name="_Generate322KeySetKey23-"></a>3983 <span class="k">sub </span><span class="m">_Generate322KeySetKey23</span> <span class="s">{</span> | 
|  | 3997 3984   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 3998 3985 | 
|  | 3999 3986   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'S'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4000 3987 <span class="s">}</span> | 
|  | 4001 3988 | 
|  | 4002 3989 <span class="c"># Generate 322 keyset key 24 value as 1/0 indicating its presence/absence or</span> | 
|  | 4003 3990 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4004 3991 <span class="c">#</span> | 
|  | 4005 3992 <span class="c"># Key 24 description: O - oxygen</span> | 
|  | 4006 3993 <span class="c">#</span> | 
|  | 4007 <a name="_Generate322KeySetKey24-"></a>3994 <span class="k">sub </span><span class="m">_Generate322KeySetKey24</span> <span class="s">{</span> | 
|  | 4008 3995   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4009 3996 | 
|  | 4010 3997   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomKeys</span><span class="s">(</span><span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4011 3998 <span class="s">}</span> | 
|  | 4012 3999 | 
|  | 4013 4000 <span class="c"># Generate 322 keyset key 25 value as 1/0 indicating its presence/absence or</span> | 
|  | 4014 4001 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4015 4002 <span class="c">#</span> | 
|  | 4016 4003 <span class="c"># Key 25 description: A(AA)A(A)A(AA) - atom has two neighbors, each with</span> | 
|  | 4017 4004 <span class="c">#                     three or more neighbors (including the central atom).</span> | 
|  | 4018 4005 <span class="c">#</span> | 
|  | 4019 <a name="_Generate322KeySetKey25-"></a>4006 <span class="k">sub </span><span class="m">_Generate322KeySetKey25</span> <span class="s">{</span> | 
|  | 4020 4007   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4021 4008   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4022 4009 | 
|  | 4023 4010   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4024 4011   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">'A'</span><span class="cm">,</span> <span class="q">'A'</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4025 4012 | 
|  | 4026 4013   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4027 4014 <span class="s">}</span> | 
|  | 4028 4015 | 
|  | 4029 4016 <span class="c"># Generate 322 keyset key 26 value as 1/0 indicating its presence/absence or</span> | 
|  | 4030 4017 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4031 4018 <span class="c">#</span> | 
|  | 4032 4019 <span class="c"># Key 26 description:     CH2ACH2 - atom has two hydrocarbon (CH2) neighbors</span> | 
|  | 4033 4020 <span class="c">#</span> | 
|  | 4034 <a name="_Generate322KeySetKey26-"></a>4021 <span class="k">sub </span><span class="m">_Generate322KeySetKey26</span> <span class="s">{</span> | 
|  | 4035 4022   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4036 4023   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4037 4024 | 
|  | 4038 4025   <span class="i">$CentralAtomSymbol</span> = <span class="q">'A'</span><span class="sc">;</span> | 
|  | 4039 4026   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 4040 4027 | 
|  | 4041 4028   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4042 4029   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4043 4030   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4044 4031 | 
|  | 4045 4032   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 4046 4033 | 
|  | 4047 4034   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4048 4035 <span class="s">}</span> | 
|  | 4049 4036 | 
|  | 4050 4037 <span class="c"># Generate 322 keyset key 27 value as 1/0 indicating its presence/absence or</span> | 
|  | 4051 4038 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4052 4039 <span class="c">#</span> | 
|  | 4053 4040 <span class="c"># Key 27 description: C(CC)</span> | 
|  | 4054 4041 <span class="c">#</span> | 
|  | 4055 <a name="_Generate322KeySetKey27-"></a>4042 <span class="k">sub </span><span class="m">_Generate322KeySetKey27</span> <span class="s">{</span> | 
|  | 4056 4043   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4057 4044   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4058 4045 | 
|  | 4059 4046   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4060 4047   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4061 4048   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4062 4049 | 
|  | 4063 4050   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4064 4051 <span class="s">}</span> | 
|  | 4065 4052 | 
|  | 4066 4053 <span class="c"># Generate 322 keyset key 28 value as 1/0 indicating its presence/absence or</span> | 
|  | 4067 4054 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4068 4055 <span class="c">#</span> | 
|  | 4069 4056 <span class="c"># Key 28 description: C(CCC)</span> | 
|  | 4070 4057 <span class="c">#</span> | 
|  | 4071 <a name="_Generate322KeySetKey28-"></a>4058 <span class="k">sub </span><span class="m">_Generate322KeySetKey28</span> <span class="s">{</span> | 
|  | 4072 4059   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4073 4060   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4074 4061 | 
|  | 4075 4062   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4076 4063   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4077 4064   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4078 4065 | 
|  | 4079 4066   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4080 4067 <span class="s">}</span> | 
|  | 4081 4068 | 
|  | 4082 4069 <span class="c"># Generate 322 keyset key 29 value as 1/0 indicating its presence/absence or</span> | 
|  | 4083 4070 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4084 4071 <span class="c">#</span> | 
|  | 4085 4072 <span class="c"># Key 29 description: C(CN)</span> | 
|  | 4086 4073 <span class="c">#</span> | 
|  | 4087 <a name="_Generate322KeySetKey29-"></a>4074 <span class="k">sub </span><span class="m">_Generate322KeySetKey29</span> <span class="s">{</span> | 
|  | 4088 4075   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4089 4076   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4090 4077 | 
|  | 4091 4078   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4092 4079   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4093 4080   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4094 4081 | 
|  | 4095 4082   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4096 4083 <span class="s">}</span> | 
|  | 4097 4084 | 
|  | 4098 4085 <span class="c"># Generate 322 keyset key 30 value as 1/0 indicating its presence/absence or</span> | 
|  | 4099 4086 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4100 4087 <span class="c">#</span> | 
|  | 4101 4088 <span class="c"># Key 30 description: C(CCN)</span> | 
|  | 4102 4089 <span class="c">#</span> | 
|  | 4103 <a name="_Generate322KeySetKey30-"></a>4090 <span class="k">sub </span><span class="m">_Generate322KeySetKey30</span> <span class="s">{</span> | 
|  | 4104 4091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4105 4092   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4106 4093 | 
|  | 4107 4094   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4108 4095   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4109 4096   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4110 4097 | 
|  | 4111 4098   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4112 4099 <span class="s">}</span> | 
|  | 4113 4100 | 
|  | 4114 4101 <span class="c"># Generate 322 keyset key 31 value as 1/0 indicating its presence/absence or</span> | 
|  | 4115 4102 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4116 4103 <span class="c">#</span> | 
|  | 4117 4104 <span class="c"># Key 31 description: C(NN)</span> | 
|  | 4118 4105 <span class="c">#</span> | 
|  | 4119 <a name="_Generate322KeySetKey31-"></a>4106 <span class="k">sub </span><span class="m">_Generate322KeySetKey31</span> <span class="s">{</span> | 
|  | 4120 4107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4121 4108   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4122 4109 | 
|  | 4123 4110   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4124 4111   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4125 4112   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4126 4113 | 
|  | 4127 4114   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4128 4115 <span class="s">}</span> | 
|  | 4129 4116 | 
|  | 4130 4117 <span class="c"># Generate 322 keyset key 32 value as 1/0 indicating its presence/absence or</span> | 
|  | 4131 4118 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4132 4119 <span class="c">#</span> | 
|  | 4133 4120 <span class="c"># Key 32 description: C(NNC)</span> | 
|  | 4134 4121 <span class="c">#</span> | 
|  | 4135 <a name="_Generate322KeySetKey32-"></a>4122 <span class="k">sub </span><span class="m">_Generate322KeySetKey32</span> <span class="s">{</span> | 
|  | 4136 4123   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4137 4124   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4138 4125 | 
|  | 4139 4126   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4140 4127   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4141 4128   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4142 4129 | 
|  | 4143 4130   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4144 4131 <span class="s">}</span> | 
|  | 4145 4132 | 
|  | 4146 4133 <span class="c"># Generate 322 keyset key 33 value as 1/0 indicating its presence/absence or</span> | 
|  | 4147 4134 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4148 4135 <span class="c">#</span> | 
|  | 4149 4136 <span class="c"># Key 33 description: C(NNN)</span> | 
|  | 4150 4137 <span class="c">#</span> | 
|  | 4151 <a name="_Generate322KeySetKey33-"></a>4138 <span class="k">sub </span><span class="m">_Generate322KeySetKey33</span> <span class="s">{</span> | 
|  | 4152 4139   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4153 4140   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4154 4141 | 
|  | 4155 4142   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4156 4143   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4157 4144   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4158 4145 | 
|  | 4159 4146   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4160 4147 <span class="s">}</span> | 
|  | 4161 4148 | 
|  | 4162 4149 <span class="c"># Generate 322 keyset key 34 value as 1/0 indicating its presence/absence or</span> | 
|  | 4163 4150 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4164 4151 <span class="c">#</span> | 
|  | 4165 4152 <span class="c"># Key 34 description: C(CO)</span> | 
|  | 4166 4153 <span class="c">#</span> | 
|  | 4167 <a name="_Generate322KeySetKey34-"></a>4154 <span class="k">sub </span><span class="m">_Generate322KeySetKey34</span> <span class="s">{</span> | 
|  | 4168 4155   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4169 4156   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4170 4157 | 
|  | 4171 4158   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4172 4159   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4173 4160   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4174 4161 | 
|  | 4175 4162   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4176 4163 <span class="s">}</span> | 
|  | 4177 4164 | 
|  | 4178 4165 <span class="c"># Generate 322 keyset key 35 value as 1/0 indicating its presence/absence or</span> | 
|  | 4179 4166 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4180 4167 <span class="c">#</span> | 
|  | 4181 4168 <span class="c"># Key 35 description: C(CCO)</span> | 
|  | 4182 4169 <span class="c">#</span> | 
|  | 4183 <a name="_Generate322KeySetKey35-"></a>4170 <span class="k">sub </span><span class="m">_Generate322KeySetKey35</span> <span class="s">{</span> | 
|  | 4184 4171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4185 4172   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4186 4173 | 
|  | 4187 4174   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4188 4175   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4189 4176   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4190 4177 | 
|  | 4191 4178   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4192 4179 <span class="s">}</span> | 
|  | 4193 4180 | 
|  | 4194 4181 <span class="c"># Generate 322 keyset key 36 value as 1/0 indicating its presence/absence or</span> | 
|  | 4195 4182 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4196 4183 <span class="c">#</span> | 
|  | 4197 4184 <span class="c"># Key 36 description: C(NO)</span> | 
|  | 4198 4185 <span class="c">#</span> | 
|  | 4199 <a name="_Generate322KeySetKey36-"></a>4186 <span class="k">sub </span><span class="m">_Generate322KeySetKey36</span> <span class="s">{</span> | 
|  | 4200 4187   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4201 4188   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4202 4189 | 
|  | 4203 4190   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4204 4191   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4205 4192   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4206 4193 | 
|  | 4207 4194   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4208 4195 <span class="s">}</span> | 
|  | 4209 4196 | 
|  | 4210 4197 <span class="c"># Generate 322 keyset key 37 value as 1/0 indicating its presence/absence or</span> | 
|  | 4211 4198 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4212 4199 <span class="c">#</span> | 
|  | 4213 4200 <span class="c"># Key 37 description: C(NCO)</span> | 
|  | 4214 4201 <span class="c">#</span> | 
|  | 4215 <a name="_Generate322KeySetKey37-"></a>4202 <span class="k">sub </span><span class="m">_Generate322KeySetKey37</span> <span class="s">{</span> | 
|  | 4216 4203   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4217 4204   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4218 4205 | 
|  | 4219 4206   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4220 4207   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4221 4208   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4222 4209 | 
|  | 4223 4210   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4224 4211 <span class="s">}</span> | 
|  | 4225 4212 | 
|  | 4226 4213 <span class="c"># Generate 322 keyset key 38 value as 1/0 indicating its presence/absence or</span> | 
|  | 4227 4214 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4228 4215 <span class="c">#</span> | 
|  | 4229 4216 <span class="c"># Key 38 description: C(NNO)</span> | 
|  | 4230 4217 <span class="c">#</span> | 
|  | 4231 <a name="_Generate322KeySetKey38-"></a>4218 <span class="k">sub </span><span class="m">_Generate322KeySetKey38</span> <span class="s">{</span> | 
|  | 4232 4219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4233 4220   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4234 4221 | 
|  | 4235 4222   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4236 4223   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4237 4224   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4238 4225 | 
|  | 4239 4226   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4240 4227 <span class="s">}</span> | 
|  | 4241 4228 | 
|  | 4242 4229 <span class="c"># Generate 322 keyset key 39 value as 1/0 indicating its presence/absence or</span> | 
|  | 4243 4230 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4244 4231 <span class="c">#</span> | 
|  | 4245 4232 <span class="c"># Key 39 description: C(OO)</span> | 
|  | 4246 4233 <span class="c">#</span> | 
|  | 4247 <a name="_Generate322KeySetKey39-"></a>4234 <span class="k">sub </span><span class="m">_Generate322KeySetKey39</span> <span class="s">{</span> | 
|  | 4248 4235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4249 4236   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4250 4237 | 
|  | 4251 4238   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4252 4239   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4253 4240   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4254 4241 | 
|  | 4255 4242   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4256 4243 <span class="s">}</span> | 
|  | 4257 4244 | 
|  | 4258 4245 <span class="c"># Generate 322 keyset key 40 value as 1/0 indicating its presence/absence or</span> | 
|  | 4259 4246 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4260 4247 <span class="c">#</span> | 
|  | 4261 4248 <span class="c"># Key 40 description: C(COO)</span> | 
|  | 4262 4249 <span class="c">#</span> | 
|  | 4263 <a name="_Generate322KeySetKey40-"></a>4250 <span class="k">sub </span><span class="m">_Generate322KeySetKey40</span> <span class="s">{</span> | 
|  | 4264 4251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4265 4252   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4266 4253 | 
|  | 4267 4254   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4268 4255   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4269 4256   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4270 4257 | 
|  | 4271 4258   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4272 4259 <span class="s">}</span> | 
|  | 4273 4260 | 
|  | 4274 4261 <span class="c"># Generate 322 keyset key 41 value as 1/0 indicating its presence/absence or</span> | 
|  | 4275 4262 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4276 4263 <span class="c">#</span> | 
|  | 4277 4264 <span class="c"># Key 41 description: C(NOO)</span> | 
|  | 4278 4265 <span class="c">#</span> | 
|  | 4279 <a name="_Generate322KeySetKey41-"></a>4266 <span class="k">sub </span><span class="m">_Generate322KeySetKey41</span> <span class="s">{</span> | 
|  | 4280 4267   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4281 4268   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4282 4269 | 
|  | 4283 4270   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4284 4271   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4285 4272   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4286 4273 | 
|  | 4287 4274   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4288 4275 <span class="s">}</span> | 
|  | 4289 4276 | 
|  | 4290 4277 <span class="c"># Generate 322 keyset key 42 value as 1/0 indicating its presence/absence or</span> | 
|  | 4291 4278 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4292 4279 <span class="c">#</span> | 
|  | 4293 4280 <span class="c"># Key 42 description: C(OOO)</span> | 
|  | 4294 4281 <span class="c">#</span> | 
|  | 4295 <a name="_Generate322KeySetKey42-"></a>4282 <span class="k">sub </span><span class="m">_Generate322KeySetKey42</span> <span class="s">{</span> | 
|  | 4296 4283   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4297 4284   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4298 4285 | 
|  | 4299 4286   <span class="i">$CentralAtomSymbol</span> = <span class="q">'C'</span><span class="sc">;</span> | 
|  | 4300 4287   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4301 4288   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4302 4289 | 
|  | 4303 4290   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4304 4291 <span class="s">}</span> | 
|  | 4305 4292 | 
|  | 4306 4293 <span class="c"># Generate 322 keyset key 43 value as 1/0 indicating its presence/absence or</span> | 
|  | 4307 4294 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4308 4295 <span class="c">#</span> | 
|  | 4309 4296 <span class="c"># Key 43 description: Q(CC)</span> | 
|  | 4310 4297 <span class="c">#</span> | 
|  | 4311 <a name="_Generate322KeySetKey43-"></a>4298 <span class="k">sub </span><span class="m">_Generate322KeySetKey43</span> <span class="s">{</span> | 
|  | 4312 4299   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4313 4300   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4314 4301 | 
|  | 4315 4302   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4316 4303   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4317 4304   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4318 4305 | 
|  | 4319 4306   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4320 4307 <span class="s">}</span> | 
|  | 4321 4308 | 
|  | 4322 4309 <span class="c"># Generate 322 keyset key 44 value as 1/0 indicating its presence/absence or</span> | 
|  | 4323 4310 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4324 4311 <span class="c">#</span> | 
|  | 4325 4312 <span class="c"># Key 44 description: Q(CCC)</span> | 
|  | 4326 4313 <span class="c">#</span> | 
|  | 4327 <a name="_Generate322KeySetKey44-"></a>4314 <span class="k">sub </span><span class="m">_Generate322KeySetKey44</span> <span class="s">{</span> | 
|  | 4328 4315   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4329 4316   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4330 4317 | 
|  | 4331 4318   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4332 4319   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4333 4320   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4334 4321 | 
|  | 4335 4322   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4336 4323 <span class="s">}</span> | 
|  | 4337 4324 | 
|  | 4338 4325 <span class="c"># Generate 322 keyset key 45 value as 1/0 indicating its presence/absence or</span> | 
|  | 4339 4326 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4340 4327 <span class="c">#</span> | 
|  | 4341 4328 <span class="c"># Key 45 description: Q(CN)</span> | 
|  | 4342 4329 <span class="c">#</span> | 
|  | 4343 <a name="_Generate322KeySetKey45-"></a>4330 <span class="k">sub </span><span class="m">_Generate322KeySetKey45</span> <span class="s">{</span> | 
|  | 4344 4331   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4345 4332   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4346 4333 | 
|  | 4347 4334   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4348 4335   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4349 4336   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4350 4337 | 
|  | 4351 4338   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4352 4339 <span class="s">}</span> | 
|  | 4353 4340 | 
|  | 4354 4341 <span class="c"># Generate 322 keyset key 46 value as 1/0 indicating its presence/absence or</span> | 
|  | 4355 4342 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4356 4343 <span class="c">#</span> | 
|  | 4357 4344 <span class="c"># Key 46 description: Q(CCN)</span> | 
|  | 4358 4345 <span class="c">#</span> | 
|  | 4359 <a name="_Generate322KeySetKey46-"></a>4346 <span class="k">sub </span><span class="m">_Generate322KeySetKey46</span> <span class="s">{</span> | 
|  | 4360 4347   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4361 4348   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4362 4349 | 
|  | 4363 4350   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4364 4351   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4365 4352   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4366 4353 | 
|  | 4367 4354   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4368 4355 <span class="s">}</span> | 
|  | 4369 4356 | 
|  | 4370 4357 <span class="c"># Generate 322 keyset key 47 value as 1/0 indicating its presence/absence or</span> | 
|  | 4371 4358 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4372 4359 <span class="c">#</span> | 
|  | 4373 4360 <span class="c"># Key 47 description: Q(NN)</span> | 
|  | 4374 4361 <span class="c">#</span> | 
|  | 4375 <a name="_Generate322KeySetKey47-"></a>4362 <span class="k">sub </span><span class="m">_Generate322KeySetKey47</span> <span class="s">{</span> | 
|  | 4376 4363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4377 4364   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4378 4365 | 
|  | 4379 4366   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4380 4367   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4381 4368   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4382 4369 | 
|  | 4383 4370   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4384 4371 <span class="s">}</span> | 
|  | 4385 4372 | 
|  | 4386 4373 <span class="c"># Generate 322 keyset key 48 value as 1/0 indicating its presence/absence or</span> | 
|  | 4387 4374 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4388 4375 <span class="c">#</span> | 
|  | 4389 4376 <span class="c"># Key 48 description: Q(CNN)</span> | 
|  | 4390 4377 <span class="c">#</span> | 
|  | 4391 <a name="_Generate322KeySetKey48-"></a>4378 <span class="k">sub </span><span class="m">_Generate322KeySetKey48</span> <span class="s">{</span> | 
|  | 4392 4379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4393 4380   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4394 4381 | 
|  | 4395 4382   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4396 4383   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4397 4384   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4398 4385 | 
|  | 4399 4386   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4400 4387 <span class="s">}</span> | 
|  | 4401 4388 | 
|  | 4402 4389 <span class="c"># Generate 322 keyset key 49 value as 1/0 indicating its presence/absence or</span> | 
|  | 4403 4390 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4404 4391 <span class="c">#</span> | 
|  | 4405 4392 <span class="c"># Key 49 description: Q(NNN)</span> | 
|  | 4406 4393 <span class="c">#</span> | 
|  | 4407 <a name="_Generate322KeySetKey49-"></a>4394 <span class="k">sub </span><span class="m">_Generate322KeySetKey49</span> <span class="s">{</span> | 
|  | 4408 4395   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4409 4396   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4410 4397 | 
|  | 4411 4398   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4412 4399   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4413 4400   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4414 4401 | 
|  | 4415 4402   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4416 4403 <span class="s">}</span> | 
|  | 4417 4404 | 
|  | 4418 4405 <span class="c"># Generate 322 keyset key 50 value as 1/0 indicating its presence/absence or</span> | 
|  | 4419 4406 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4420 4407 <span class="c">#</span> | 
|  | 4421 4408 <span class="c"># Key 50 description: Q(CO)</span> | 
|  | 4422 4409 <span class="c">#</span> | 
|  | 4423 <a name="_Generate322KeySetKey50-"></a>4410 <span class="k">sub </span><span class="m">_Generate322KeySetKey50</span> <span class="s">{</span> | 
|  | 4424 4411   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4425 4412   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4426 4413 | 
|  | 4427 4414   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4428 4415   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4429 4416   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4430 4417 | 
|  | 4431 4418   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4432 4419 <span class="s">}</span> | 
|  | 4433 4420 | 
|  | 4434 4421 <span class="c"># Generate 322 keyset key 51 value as 1/0 indicating its presence/absence or</span> | 
|  | 4435 4422 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4436 4423 <span class="c">#</span> | 
|  | 4437 4424 <span class="c"># Key 51 description: Q(CCO)</span> | 
|  | 4438 4425 <span class="c">#</span> | 
|  | 4439 <a name="_Generate322KeySetKey51-"></a>4426 <span class="k">sub </span><span class="m">_Generate322KeySetKey51</span> <span class="s">{</span> | 
|  | 4440 4427   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4441 4428   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4442 4429 | 
|  | 4443 4430   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4444 4431   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4445 4432   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4446 4433 | 
|  | 4447 4434   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4448 4435 <span class="s">}</span> | 
|  | 4449 4436 | 
|  | 4450 4437 <span class="c"># Generate 322 keyset key 52 value as 1/0 indicating its presence/absence or</span> | 
|  | 4451 4438 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4452 4439 <span class="c">#</span> | 
|  | 4453 4440 <span class="c"># Key 52 description: Q(NO)</span> | 
|  | 4454 4441 <span class="c">#</span> | 
|  | 4455 <a name="_Generate322KeySetKey52-"></a>4442 <span class="k">sub </span><span class="m">_Generate322KeySetKey52</span> <span class="s">{</span> | 
|  | 4456 4443   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4457 4444   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4458 4445 | 
|  | 4459 4446   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4460 4447   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4461 4448   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4462 4449 | 
|  | 4463 4450   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4464 4451 <span class="s">}</span> | 
|  | 4465 4452 | 
|  | 4466 4453 <span class="c"># Generate 322 keyset key 53 value as 1/0 indicating its presence/absence or</span> | 
|  | 4467 4454 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4468 4455 <span class="c">#</span> | 
|  | 4469 4456 <span class="c"># Key 53 description: Q(CNO)</span> | 
|  | 4470 4457 <span class="c">#</span> | 
|  | 4471 <a name="_Generate322KeySetKey53-"></a>4458 <span class="k">sub </span><span class="m">_Generate322KeySetKey53</span> <span class="s">{</span> | 
|  | 4472 4459   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4473 4460   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4474 4461 | 
|  | 4475 4462   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4476 4463   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4477 4464   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4478 4465 | 
|  | 4479 4466   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4480 4467 <span class="s">}</span> | 
|  | 4481 4468 | 
|  | 4482 4469 <span class="c"># Generate 322 keyset key 54 value as 1/0 indicating its presence/absence or</span> | 
|  | 4483 4470 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4484 4471 <span class="c">#</span> | 
|  | 4485 4472 <span class="c"># Key 54 description: Q(NNO)</span> | 
|  | 4486 4473 <span class="c">#</span> | 
|  | 4487 <a name="_Generate322KeySetKey54-"></a>4474 <span class="k">sub </span><span class="m">_Generate322KeySetKey54</span> <span class="s">{</span> | 
|  | 4488 4475   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4489 4476   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4490 4477 | 
|  | 4491 4478   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4492 4479   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4493 4480   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4494 4481 | 
|  | 4495 4482   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4496 4483 <span class="s">}</span> | 
|  | 4497 4484 | 
|  | 4498 4485 <span class="c"># Generate 322 keyset key 55 value as 1/0 indicating its presence/absence or</span> | 
|  | 4499 4486 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4500 4487 <span class="c">#</span> | 
|  | 4501 4488 <span class="c"># Key 55 description: Q(OO)</span> | 
|  | 4502 4489 <span class="c">#</span> | 
|  | 4503 <a name="_Generate322KeySetKey55-"></a>4490 <span class="k">sub </span><span class="m">_Generate322KeySetKey55</span> <span class="s">{</span> | 
|  | 4504 4491   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4505 4492   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4506 4493 | 
|  | 4507 4494   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4508 4495   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4509 4496   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4510 4497 | 
|  | 4511 4498   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4512 4499 <span class="s">}</span> | 
|  | 4513 4500 | 
|  | 4514 4501 <span class="c"># Generate 322 keyset key 56 value as 1/0 indicating its presence/absence or</span> | 
|  | 4515 4502 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4516 4503 <span class="c">#</span> | 
|  | 4517 4504 <span class="c"># Key 56 description: Q(COO)</span> | 
|  | 4518 4505 <span class="c">#</span> | 
|  | 4519 <a name="_Generate322KeySetKey56-"></a>4506 <span class="k">sub </span><span class="m">_Generate322KeySetKey56</span> <span class="s">{</span> | 
|  | 4520 4507   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4521 4508   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4522 4509 | 
|  | 4523 4510   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4524 4511   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4525 4512   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4526 4513 | 
|  | 4527 4514   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4528 4515 <span class="s">}</span> | 
|  | 4529 4516 | 
|  | 4530 4517 <span class="c"># Generate 322 keyset key 57 value as 1/0 indicating its presence/absence or</span> | 
|  | 4531 4518 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4532 4519 <span class="c">#</span> | 
|  | 4533 4520 <span class="c"># Key 57 description: Q(NOO)</span> | 
|  | 4534 4521 <span class="c">#</span> | 
|  | 4535 <a name="_Generate322KeySetKey57-"></a>4522 <span class="k">sub </span><span class="m">_Generate322KeySetKey57</span> <span class="s">{</span> | 
|  | 4536 4523   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4537 4524   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4538 4525 | 
|  | 4539 4526   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4540 4527   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4541 4528   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4542 4529 | 
|  | 4543 4530   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4544 4531 <span class="s">}</span> | 
|  | 4545 4532 | 
|  | 4546 4533 <span class="c"># Generate 322 keyset key 58 value as 1/0 indicating its presence/absence or</span> | 
|  | 4547 4534 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4548 4535 <span class="c">#</span> | 
|  | 4549 4536 <span class="c"># Key 58 description: Q(OOO)</span> | 
|  | 4550 4537 <span class="c">#</span> | 
|  | 4551 <a name="_Generate322KeySetKey58-"></a>4538 <span class="k">sub </span><span class="m">_Generate322KeySetKey58</span> <span class="s">{</span> | 
|  | 4552 4539   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4553 4540   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4554 4541 | 
|  | 4555 4542   <span class="i">$CentralAtomSymbol</span> = <span class="q">'Q'</span><span class="sc">;</span> | 
|  | 4556 4543   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4557 4544   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4558 4545 | 
|  | 4559 4546   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4560 4547 <span class="s">}</span> | 
|  | 4561 4548 | 
|  | 4562 4549 <span class="c"># Generate 322 keyset key 59 value as 1/0 indicating its presence/absence or</span> | 
|  | 4563 4550 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4564 4551 <span class="c">#</span> | 
|  | 4565 4552 <span class="c"># Key 59 description: C-C</span> | 
|  | 4566 4553 <span class="c">#</span> | 
|  | 4567 <a name="_Generate322KeySetKey59-"></a>4554 <span class="k">sub </span><span class="m">_Generate322KeySetKey59</span> <span class="s">{</span> | 
|  | 4568 4555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4569 4556   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4570 4557 | 
|  | 4571 4558   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4572 4559 <span class="s">}</span> | 
|  | 4573 4560 | 
|  | 4574 4561 <span class="c"># Generate 322 keyset key 60 value as 1/0 indicating its presence/absence or</span> | 
|  | 4575 4562 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4576 4563 <span class="c">#</span> | 
|  | 4577 4564 <span class="c"># Key 60 description: C-N</span> | 
|  | 4578 4565 <span class="c">#</span> | 
|  | 4579 <a name="_Generate322KeySetKey60-"></a>4566 <span class="k">sub </span><span class="m">_Generate322KeySetKey60</span> <span class="s">{</span> | 
|  | 4580 4567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4581 4568   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4582 4569 | 
|  | 4583 4570   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4584 4571 <span class="s">}</span> | 
|  | 4585 4572 | 
|  | 4586 4573 <span class="c"># Generate 322 keyset key 61 value as 1/0 indicating its presence/absence or</span> | 
|  | 4587 4574 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4588 4575 <span class="c">#</span> | 
|  | 4589 4576 <span class="c"># Key 61 description: C-O</span> | 
|  | 4590 4577 <span class="c">#</span> | 
|  | 4591 <a name="_Generate322KeySetKey61-"></a>4578 <span class="k">sub </span><span class="m">_Generate322KeySetKey61</span> <span class="s">{</span> | 
|  | 4592 4579   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4593 4580   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4594 4581 | 
|  | 4595 4582   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4596 4583 <span class="s">}</span> | 
|  | 4597 4584 | 
|  | 4598 4585 <span class="c"># Generate 322 keyset key 62 value as 1/0 indicating its presence/absence or</span> | 
|  | 4599 4586 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4600 4587 <span class="c">#</span> | 
|  | 4601 4588 <span class="c"># Key 62 description: C-S</span> | 
|  | 4602 4589 <span class="c">#</span> | 
|  | 4603 <a name="_Generate322KeySetKey62-"></a>4590 <span class="k">sub </span><span class="m">_Generate322KeySetKey62</span> <span class="s">{</span> | 
|  | 4604 4591   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4605 4592   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4606 4593 | 
|  | 4607 4594   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4608 4595 <span class="s">}</span> | 
|  | 4609 4596 | 
|  | 4610 4597 <span class="c"># Generate 322 keyset key 63 value as 1/0 indicating its presence/absence or</span> | 
|  | 4611 4598 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4612 4599 <span class="c">#</span> | 
|  | 4613 4600 <span class="c"># Key 63 description: C-Cl</span> | 
|  | 4614 4601 <span class="c">#</span> | 
|  | 4615 <a name="_Generate322KeySetKey63-"></a>4602 <span class="k">sub </span><span class="m">_Generate322KeySetKey63</span> <span class="s">{</span> | 
|  | 4616 4603   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4617 4604   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4618 4605 | 
|  | 4619 4606   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4620 4607 <span class="s">}</span> | 
|  | 4621 4608 | 
|  | 4622 4609 <span class="c"># Generate 322 keyset key 64 value as 1/0 indicating its presence/absence or</span> | 
|  | 4623 4610 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4624 4611 <span class="c">#</span> | 
|  | 4625 4612 <span class="c"># Key 64 description: C-P</span> | 
|  | 4626 4613 <span class="c">#</span> | 
|  | 4627 <a name="_Generate322KeySetKey64-"></a>4614 <span class="k">sub </span><span class="m">_Generate322KeySetKey64</span> <span class="s">{</span> | 
|  | 4628 4615   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4629 4616   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4630 4617 | 
|  | 4631 4618   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4632 4619 <span class="s">}</span> | 
|  | 4633 4620 | 
|  | 4634 4621 <span class="c"># Generate 322 keyset key 65 value as 1/0 indicating its presence/absence or</span> | 
|  | 4635 4622 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4636 4623 <span class="c">#</span> | 
|  | 4637 4624 <span class="c"># Key 65 description: C-F</span> | 
|  | 4638 4625 <span class="c">#</span> | 
|  | 4639 <a name="_Generate322KeySetKey65-"></a>4626 <span class="k">sub </span><span class="m">_Generate322KeySetKey65</span> <span class="s">{</span> | 
|  | 4640 4627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4641 4628   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4642 4629 | 
|  | 4643 4630   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4644 4631 <span class="s">}</span> | 
|  | 4645 4632 | 
|  | 4646 4633 <span class="c"># Generate 322 keyset key 66 value as 1/0 indicating its presence/absence or</span> | 
|  | 4647 4634 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4648 4635 <span class="c">#</span> | 
|  | 4649 4636 <span class="c"># Key 66 description: C-Br</span> | 
|  | 4650 4637 <span class="c">#</span> | 
|  | 4651 <a name="_Generate322KeySetKey66-"></a>4638 <span class="k">sub </span><span class="m">_Generate322KeySetKey66</span> <span class="s">{</span> | 
|  | 4652 4639   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4653 4640   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4654 4641 | 
|  | 4655 4642   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4656 4643 <span class="s">}</span> | 
|  | 4657 4644 | 
|  | 4658 4645 <span class="c"># Generate 322 keyset key 67 value as 1/0 indicating its presence/absence or</span> | 
|  | 4659 4646 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4660 4647 <span class="c">#</span> | 
|  | 4661 4648 <span class="c"># Key 67 description: C-Si</span> | 
|  | 4662 4649 <span class="c">#</span> | 
|  | 4663 <a name="_Generate322KeySetKey67-"></a>4650 <span class="k">sub </span><span class="m">_Generate322KeySetKey67</span> <span class="s">{</span> | 
|  | 4664 4651   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4665 4652   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4666 4653 | 
|  | 4667 4654   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4668 4655 <span class="s">}</span> | 
|  | 4669 4656 | 
|  | 4670 4657 <span class="c"># Generate 322 keyset key 68 value as 1/0 indicating its presence/absence or</span> | 
|  | 4671 4658 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4672 4659 <span class="c">#</span> | 
|  | 4673 4660 <span class="c"># Key 68 description: C-I</span> | 
|  | 4674 4661 <span class="c">#</span> | 
|  | 4675 <a name="_Generate322KeySetKey68-"></a>4662 <span class="k">sub </span><span class="m">_Generate322KeySetKey68</span> <span class="s">{</span> | 
|  | 4676 4663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4677 4664   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4678 4665 | 
|  | 4679 4666   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4680 4667 <span class="s">}</span> | 
|  | 4681 4668 | 
|  | 4682 4669 <span class="c"># Generate 322 keyset key 69 value as 1/0 indicating its presence/absence or</span> | 
|  | 4683 4670 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4684 4671 <span class="c">#</span> | 
|  | 4685 4672 <span class="c"># Key 69 description: C-X</span> | 
|  | 4686 4673 <span class="c">#</span> | 
|  | 4687 <a name="_Generate322KeySetKey69-"></a>4674 <span class="k">sub </span><span class="m">_Generate322KeySetKey69</span> <span class="s">{</span> | 
|  | 4688 4675   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4689 4676   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4690 4677 | 
|  | 4691 4678   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4692 4679 <span class="s">}</span> | 
|  | 4693 4680 | 
|  | 4694 4681 <span class="c"># Generate 322 keyset key 70 value as 1/0 indicating its presence/absence or</span> | 
|  | 4695 4682 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4696 4683 <span class="c">#</span> | 
|  | 4697 4684 <span class="c"># Key 70 description: N-N</span> | 
|  | 4698 4685 <span class="c">#</span> | 
|  | 4699 <a name="_Generate322KeySetKey70-"></a>4686 <span class="k">sub </span><span class="m">_Generate322KeySetKey70</span> <span class="s">{</span> | 
|  | 4700 4687   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4701 4688   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4702 4689 | 
|  | 4703 4690   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4704 4691 <span class="s">}</span> | 
|  | 4705 4692 | 
|  | 4706 4693 <span class="c"># Generate 322 keyset key 71 value as 1/0 indicating its presence/absence or</span> | 
|  | 4707 4694 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4708 4695 <span class="c">#</span> | 
|  | 4709 4696 <span class="c"># Key 71 description: N-O</span> | 
|  | 4710 4697 <span class="c">#</span> | 
|  | 4711 <a name="_Generate322KeySetKey71-"></a>4698 <span class="k">sub </span><span class="m">_Generate322KeySetKey71</span> <span class="s">{</span> | 
|  | 4712 4699   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4713 4700   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4714 4701 | 
|  | 4715 4702   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4716 4703 <span class="s">}</span> | 
|  | 4717 4704 | 
|  | 4718 4705 <span class="c"># Generate 322 keyset key 72 value as 1/0 indicating its presence/absence or</span> | 
|  | 4719 4706 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4720 4707 <span class="c">#</span> | 
|  | 4721 4708 <span class="c"># Key 72 description: N-S</span> | 
|  | 4722 4709 <span class="c">#</span> | 
|  | 4723 <a name="_Generate322KeySetKey72-"></a>4710 <span class="k">sub </span><span class="m">_Generate322KeySetKey72</span> <span class="s">{</span> | 
|  | 4724 4711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4725 4712   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4726 4713 | 
|  | 4727 4714   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4728 4715 <span class="s">}</span> | 
|  | 4729 4716 | 
|  | 4730 4717 <span class="c"># Generate 322 keyset key 73 value as 1/0 indicating its presence/absence or</span> | 
|  | 4731 4718 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4732 4719 <span class="c">#</span> | 
|  | 4733 4720 <span class="c"># Key 73 description: N-Cl</span> | 
|  | 4734 4721 <span class="c">#</span> | 
|  | 4735 <a name="_Generate322KeySetKey73-"></a>4722 <span class="k">sub </span><span class="m">_Generate322KeySetKey73</span> <span class="s">{</span> | 
|  | 4736 4723   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4737 4724   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4738 4725 | 
|  | 4739 4726   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4740 4727 <span class="s">}</span> | 
|  | 4741 4728 | 
|  | 4742 4729 <span class="c"># Generate 322 keyset key 74 value as 1/0 indicating its presence/absence or</span> | 
|  | 4743 4730 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4744 4731 <span class="c">#</span> | 
|  | 4745 4732 <span class="c"># Key 74 description: N-P</span> | 
|  | 4746 4733 <span class="c">#</span> | 
|  | 4747 <a name="_Generate322KeySetKey74-"></a>4734 <span class="k">sub </span><span class="m">_Generate322KeySetKey74</span> <span class="s">{</span> | 
|  | 4748 4735   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4749 4736   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4750 4737 | 
|  | 4751 4738   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4752 4739 <span class="s">}</span> | 
|  | 4753 4740 | 
|  | 4754 4741 <span class="c"># Generate 322 keyset key 75 value as 1/0 indicating its presence/absence or</span> | 
|  | 4755 4742 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4756 4743 <span class="c">#</span> | 
|  | 4757 4744 <span class="c"># Key 75 description: N-F</span> | 
|  | 4758 4745 <span class="c">#</span> | 
|  | 4759 <a name="_Generate322KeySetKey75-"></a>4746 <span class="k">sub </span><span class="m">_Generate322KeySetKey75</span> <span class="s">{</span> | 
|  | 4760 4747   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4761 4748   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4762 4749 | 
|  | 4763 4750   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4764 4751 <span class="s">}</span> | 
|  | 4765 4752 | 
|  | 4766 4753 <span class="c"># Generate 322 keyset key 76 value as 1/0 indicating its presence/absence or</span> | 
|  | 4767 4754 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4768 4755 <span class="c">#</span> | 
|  | 4769 4756 <span class="c"># Key 76 description: N-Br</span> | 
|  | 4770 4757 <span class="c">#</span> | 
|  | 4771 <a name="_Generate322KeySetKey76-"></a>4758 <span class="k">sub </span><span class="m">_Generate322KeySetKey76</span> <span class="s">{</span> | 
|  | 4772 4759   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4773 4760   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4774 4761 | 
|  | 4775 4762   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4776 4763 <span class="s">}</span> | 
|  | 4777 4764 | 
|  | 4778 4765 <span class="c"># Generate 322 keyset key 77 value as 1/0 indicating its presence/absence or</span> | 
|  | 4779 4766 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4780 4767 <span class="c">#</span> | 
|  | 4781 4768 <span class="c"># Key 77 description: N-Si</span> | 
|  | 4782 4769 <span class="c">#</span> | 
|  | 4783 <a name="_Generate322KeySetKey77-"></a>4770 <span class="k">sub </span><span class="m">_Generate322KeySetKey77</span> <span class="s">{</span> | 
|  | 4784 4771   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4785 4772   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4786 4773 | 
|  | 4787 4774   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4788 4775 <span class="s">}</span> | 
|  | 4789 4776 | 
|  | 4790 4777 <span class="c"># Generate 322 keyset key 78 value as 1/0 indicating its presence/absence or</span> | 
|  | 4791 4778 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4792 4779 <span class="c">#</span> | 
|  | 4793 4780 <span class="c"># Key 78 description: N-I</span> | 
|  | 4794 4781 <span class="c">#</span> | 
|  | 4795 <a name="_Generate322KeySetKey78-"></a>4782 <span class="k">sub </span><span class="m">_Generate322KeySetKey78</span> <span class="s">{</span> | 
|  | 4796 4783   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4797 4784   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4798 4785 | 
|  | 4799 4786   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4800 4787 <span class="s">}</span> | 
|  | 4801 4788 | 
|  | 4802 4789 <span class="c"># Generate 322 keyset key 79 value as 1/0 indicating its presence/absence or</span> | 
|  | 4803 4790 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4804 4791 <span class="c">#</span> | 
|  | 4805 4792 <span class="c"># Key 79 description: N-X</span> | 
|  | 4806 4793 <span class="c">#</span> | 
|  | 4807 <a name="_Generate322KeySetKey79-"></a>4794 <span class="k">sub </span><span class="m">_Generate322KeySetKey79</span> <span class="s">{</span> | 
|  | 4808 4795   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4809 4796   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4810 4797 | 
|  | 4811 4798   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4812 4799 <span class="s">}</span> | 
|  | 4813 4800 | 
|  | 4814 4801 <span class="c"># Generate 322 keyset key 80 value as 1/0 indicating its presence/absence or</span> | 
|  | 4815 4802 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4816 4803 <span class="c">#</span> | 
|  | 4817 4804 <span class="c"># Key 80 description: O-O</span> | 
|  | 4818 4805 <span class="c">#</span> | 
|  | 4819 <a name="_Generate322KeySetKey80-"></a>4806 <span class="k">sub </span><span class="m">_Generate322KeySetKey80</span> <span class="s">{</span> | 
|  | 4820 4807   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4821 4808   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4822 4809 | 
|  | 4823 4810   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4824 4811 <span class="s">}</span> | 
|  | 4825 4812 | 
|  | 4826 4813 <span class="c"># Generate 322 keyset key 81 value as 1/0 indicating its presence/absence or</span> | 
|  | 4827 4814 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4828 4815 <span class="c">#</span> | 
|  | 4829 4816 <span class="c"># Key 81 description: O-S</span> | 
|  | 4830 4817 <span class="c">#</span> | 
|  | 4831 <a name="_Generate322KeySetKey81-"></a>4818 <span class="k">sub </span><span class="m">_Generate322KeySetKey81</span> <span class="s">{</span> | 
|  | 4832 4819   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4833 4820   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4834 4821 | 
|  | 4835 4822   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4836 4823 <span class="s">}</span> | 
|  | 4837 4824 | 
|  | 4838 4825 <span class="c"># Generate 322 keyset key 82 value as 1/0 indicating its presence/absence or</span> | 
|  | 4839 4826 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4840 4827 <span class="c">#</span> | 
|  | 4841 4828 <span class="c"># Key 82 description: O-Cl</span> | 
|  | 4842 4829 <span class="c">#</span> | 
|  | 4843 <a name="_Generate322KeySetKey82-"></a>4830 <span class="k">sub </span><span class="m">_Generate322KeySetKey82</span> <span class="s">{</span> | 
|  | 4844 4831   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4845 4832   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4846 4833 | 
|  | 4847 4834   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4848 4835 <span class="s">}</span> | 
|  | 4849 4836 | 
|  | 4850 4837 <span class="c"># Generate 322 keyset key 83 value as 1/0 indicating its presence/absence or</span> | 
|  | 4851 4838 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4852 4839 <span class="c">#</span> | 
|  | 4853 4840 <span class="c"># Key 83 description: O-P</span> | 
|  | 4854 4841 <span class="c">#</span> | 
|  | 4855 <a name="_Generate322KeySetKey83-"></a>4842 <span class="k">sub </span><span class="m">_Generate322KeySetKey83</span> <span class="s">{</span> | 
|  | 4856 4843   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4857 4844   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4858 4845 | 
|  | 4859 4846   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4860 4847 <span class="s">}</span> | 
|  | 4861 4848 | 
|  | 4862 4849 <span class="c"># Generate 322 keyset key 84 value as 1/0 indicating its presence/absence or</span> | 
|  | 4863 4850 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4864 4851 <span class="c">#</span> | 
|  | 4865 4852 <span class="c"># Key 84 description: O-F</span> | 
|  | 4866 4853 <span class="c">#</span> | 
|  | 4867 <a name="_Generate322KeySetKey84-"></a>4854 <span class="k">sub </span><span class="m">_Generate322KeySetKey84</span> <span class="s">{</span> | 
|  | 4868 4855   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4869 4856   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4870 4857 | 
|  | 4871 4858   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4872 4859 <span class="s">}</span> | 
|  | 4873 4860 | 
|  | 4874 4861 <span class="c"># Generate 322 keyset key 85 value as 1/0 indicating its presence/absence or</span> | 
|  | 4875 4862 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4876 4863 <span class="c">#</span> | 
|  | 4877 4864 <span class="c"># Key 85 description: O-Br</span> | 
|  | 4878 4865 <span class="c">#</span> | 
|  | 4879 <a name="_Generate322KeySetKey85-"></a>4866 <span class="k">sub </span><span class="m">_Generate322KeySetKey85</span> <span class="s">{</span> | 
|  | 4880 4867   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4881 4868   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4882 4869 | 
|  | 4883 4870   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4884 4871 <span class="s">}</span> | 
|  | 4885 4872 | 
|  | 4886 4873 <span class="c"># Generate 322 keyset key 86 value as 1/0 indicating its presence/absence or</span> | 
|  | 4887 4874 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4888 4875 <span class="c">#</span> | 
|  | 4889 4876 <span class="c"># Key 86 description: O-Si</span> | 
|  | 4890 4877 <span class="c">#</span> | 
|  | 4891 <a name="_Generate322KeySetKey86-"></a>4878 <span class="k">sub </span><span class="m">_Generate322KeySetKey86</span> <span class="s">{</span> | 
|  | 4892 4879   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4893 4880   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4894 4881 | 
|  | 4895 4882   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4896 4883 <span class="s">}</span> | 
|  | 4897 4884 | 
|  | 4898 4885 <span class="c"># Generate 322 keyset key 87 value as 1/0 indicating its presence/absence or</span> | 
|  | 4899 4886 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4900 4887 <span class="c">#</span> | 
|  | 4901 4888 <span class="c"># Key 87 description: O-I</span> | 
|  | 4902 4889 <span class="c">#</span> | 
|  | 4903 <a name="_Generate322KeySetKey87-"></a>4890 <span class="k">sub </span><span class="m">_Generate322KeySetKey87</span> <span class="s">{</span> | 
|  | 4904 4891   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4905 4892   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4906 4893 | 
|  | 4907 4894   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4908 4895 <span class="s">}</span> | 
|  | 4909 4896 | 
|  | 4910 4897 <span class="c"># Generate 322 keyset key 88 value as 1/0 indicating its presence/absence or</span> | 
|  | 4911 4898 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4912 4899 <span class="c">#</span> | 
|  | 4913 4900 <span class="c"># Key 88 description: O-X</span> | 
|  | 4914 4901 <span class="c">#</span> | 
|  | 4915 <a name="_Generate322KeySetKey88-"></a>4902 <span class="k">sub </span><span class="m">_Generate322KeySetKey88</span> <span class="s">{</span> | 
|  | 4916 4903   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4917 4904   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4918 4905 | 
|  | 4919 4906   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4920 4907 <span class="s">}</span> | 
|  | 4921 4908 | 
|  | 4922 4909 <span class="c"># Generate 322 keyset key 89 value as 1/0 indicating its presence/absence or</span> | 
|  | 4923 4910 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4924 4911 <span class="c">#</span> | 
|  | 4925 4912 <span class="c"># Key 89 description: S-S</span> | 
|  | 4926 4913 <span class="c">#</span> | 
|  | 4927 <a name="_Generate322KeySetKey89-"></a>4914 <span class="k">sub </span><span class="m">_Generate322KeySetKey89</span> <span class="s">{</span> | 
|  | 4928 4915   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4929 4916   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4930 4917 | 
|  | 4931 4918   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4932 4919 <span class="s">}</span> | 
|  | 4933 4920 | 
|  | 4934 4921 <span class="c"># Generate 322 keyset key 90 value as 1/0 indicating its presence/absence or</span> | 
|  | 4935 4922 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4936 4923 <span class="c">#</span> | 
|  | 4937 4924 <span class="c"># Key 90 description: S-Cl</span> | 
|  | 4938 4925 <span class="c">#</span> | 
|  | 4939 <a name="_Generate322KeySetKey90-"></a>4926 <span class="k">sub </span><span class="m">_Generate322KeySetKey90</span> <span class="s">{</span> | 
|  | 4940 4927   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4941 4928   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4942 4929 | 
|  | 4943 4930   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4944 4931 <span class="s">}</span> | 
|  | 4945 4932 | 
|  | 4946 4933 <span class="c"># Generate 322 keyset key 91 value as 1/0 indicating its presence/absence or</span> | 
|  | 4947 4934 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4948 4935 <span class="c">#</span> | 
|  | 4949 4936 <span class="c"># Key 91 description: S-P</span> | 
|  | 4950 4937 <span class="c">#</span> | 
|  | 4951 <a name="_Generate322KeySetKey91-"></a>4938 <span class="k">sub </span><span class="m">_Generate322KeySetKey91</span> <span class="s">{</span> | 
|  | 4952 4939   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4953 4940   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4954 4941 | 
|  | 4955 4942   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4956 4943 <span class="s">}</span> | 
|  | 4957 4944 | 
|  | 4958 4945 <span class="c"># Generate 322 keyset key 92 value as 1/0 indicating its presence/absence or</span> | 
|  | 4959 4946 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4960 4947 <span class="c">#</span> | 
|  | 4961 4948 <span class="c"># Key 92 description: S-F</span> | 
|  | 4962 4949 <span class="c">#</span> | 
|  | 4963 <a name="_Generate322KeySetKey92-"></a>4950 <span class="k">sub </span><span class="m">_Generate322KeySetKey92</span> <span class="s">{</span> | 
|  | 4964 4951   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4965 4952   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4966 4953 | 
|  | 4967 4954   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4968 4955 <span class="s">}</span> | 
|  | 4969 4956 | 
|  | 4970 4957 <span class="c"># Generate 322 keyset key 93 value as 1/0 indicating its presence/absence or</span> | 
|  | 4971 4958 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4972 4959 <span class="c">#</span> | 
|  | 4973 4960 <span class="c"># Key 93 description: S-Br</span> | 
|  | 4974 4961 <span class="c">#</span> | 
|  | 4975 <a name="_Generate322KeySetKey93-"></a>4962 <span class="k">sub </span><span class="m">_Generate322KeySetKey93</span> <span class="s">{</span> | 
|  | 4976 4963   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4977 4964   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4978 4965 | 
|  | 4979 4966   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4980 4967 <span class="s">}</span> | 
|  | 4981 4968 | 
|  | 4982 4969 <span class="c"># Generate 322 keyset key 94 value as 1/0 indicating its presence/absence or</span> | 
|  | 4983 4970 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4984 4971 <span class="c">#</span> | 
|  | 4985 4972 <span class="c"># Key 94 description: S-Si</span> | 
|  | 4986 4973 <span class="c">#</span> | 
|  | 4987 <a name="_Generate322KeySetKey94-"></a>4974 <span class="k">sub </span><span class="m">_Generate322KeySetKey94</span> <span class="s">{</span> | 
|  | 4988 4975   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 4989 4976   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 4990 4977 | 
|  | 4991 4978   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 4992 4979 <span class="s">}</span> | 
|  | 4993 4980 | 
|  | 4994 4981 <span class="c"># Generate 322 keyset key 95 value as 1/0 indicating its presence/absence or</span> | 
|  | 4995 4982 <span class="c"># count of its presence in a molecule.</span> | 
|  | 4996 4983 <span class="c">#</span> | 
|  | 4997 4984 <span class="c"># Key 95 description: S-I</span> | 
|  | 4998 4985 <span class="c">#</span> | 
|  | 4999 <a name="_Generate322KeySetKey95-"></a>4986 <span class="k">sub </span><span class="m">_Generate322KeySetKey95</span> <span class="s">{</span> | 
|  | 5000 4987   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5001 4988   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5002 4989 | 
|  | 5003 4990   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5004 4991 <span class="s">}</span> | 
|  | 5005 4992 | 
|  | 5006 4993 <span class="c"># Generate 322 keyset key 96 value as 1/0 indicating its presence/absence or</span> | 
|  | 5007 4994 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5008 4995 <span class="c">#</span> | 
|  | 5009 4996 <span class="c"># Key 96 description: S-X</span> | 
|  | 5010 4997 <span class="c">#</span> | 
|  | 5011 <a name="_Generate322KeySetKey96-"></a>4998 <span class="k">sub </span><span class="m">_Generate322KeySetKey96</span> <span class="s">{</span> | 
|  | 5012 4999   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5013 5000   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5014 5001 | 
|  | 5015 5002   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5016 5003 <span class="s">}</span> | 
|  | 5017 5004 | 
|  | 5018 5005 <span class="c"># Generate 322 keyset key 97 value as 1/0 indicating its presence/absence or</span> | 
|  | 5019 5006 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5020 5007 <span class="c">#</span> | 
|  | 5021 5008 <span class="c"># Key 97 description: Cl-Cl</span> | 
|  | 5022 5009 <span class="c">#</span> | 
|  | 5023 <a name="_Generate322KeySetKey97-"></a>5010 <span class="k">sub </span><span class="m">_Generate322KeySetKey97</span> <span class="s">{</span> | 
|  | 5024 5011   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5025 5012   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5026 5013 | 
|  | 5027 5014   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5028 5015 <span class="s">}</span> | 
|  | 5029 5016 | 
|  | 5030 5017 <span class="c"># Generate 322 keyset key 98 value as 1/0 indicating its presence/absence or</span> | 
|  | 5031 5018 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5032 5019 <span class="c">#</span> | 
|  | 5033 5020 <span class="c"># Key 98 description: Cl-P</span> | 
|  | 5034 5021 <span class="c">#</span> | 
|  | 5035 <a name="_Generate322KeySetKey98-"></a>5022 <span class="k">sub </span><span class="m">_Generate322KeySetKey98</span> <span class="s">{</span> | 
|  | 5036 5023   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5037 5024   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5038 5025 | 
|  | 5039 5026   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5040 5027 <span class="s">}</span> | 
|  | 5041 5028 | 
|  | 5042 5029 <span class="c"># Generate 322 keyset key 99 value as 1/0 indicating its presence/absence or</span> | 
|  | 5043 5030 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5044 5031 <span class="c">#</span> | 
|  | 5045 5032 <span class="c"># Key 99 description: Cl-F</span> | 
|  | 5046 5033 <span class="c">#</span> | 
|  | 5047 <a name="_Generate322KeySetKey99-"></a>5034 <span class="k">sub </span><span class="m">_Generate322KeySetKey99</span> <span class="s">{</span> | 
|  | 5048 5035   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5049 5036   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5050 5037 | 
|  | 5051 5038   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5052 5039 <span class="s">}</span> | 
|  | 5053 5040 | 
|  | 5054 5041 <span class="c"># Generate 322 keyset key 100 value as 1/0 indicating its presence/absence or</span> | 
|  | 5055 5042 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5056 5043 <span class="c">#</span> | 
|  | 5057 5044 <span class="c"># Key 100 description: Cl-Br</span> | 
|  | 5058 5045 <span class="c">#</span> | 
|  | 5059 <a name="_Generate322KeySetKey100-"></a>5046 <span class="k">sub </span><span class="m">_Generate322KeySetKey100</span> <span class="s">{</span> | 
|  | 5060 5047   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5061 5048   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5062 5049 | 
|  | 5063 5050   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5064 5051 <span class="s">}</span> | 
|  | 5065 5052 | 
|  | 5066 5053 <span class="c"># Generate 322 keyset key 101 value as 1/0 indicating its presence/absence or</span> | 
|  | 5067 5054 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5068 5055 <span class="c">#</span> | 
|  | 5069 5056 <span class="c"># Key 101 description: Cl-Si</span> | 
|  | 5070 5057 <span class="c">#</span> | 
|  | 5071 <a name="_Generate322KeySetKey101-"></a>5058 <span class="k">sub </span><span class="m">_Generate322KeySetKey101</span> <span class="s">{</span> | 
|  | 5072 5059   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5073 5060   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5074 5061 | 
|  | 5075 5062   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5076 5063 <span class="s">}</span> | 
|  | 5077 5064 | 
|  | 5078 5065 <span class="c"># Generate 322 keyset key 102 value as 1/0 indicating its presence/absence or</span> | 
|  | 5079 5066 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5080 5067 <span class="c">#</span> | 
|  | 5081 5068 <span class="c"># Key 102 description: Cl-I</span> | 
|  | 5082 5069 <span class="c">#</span> | 
|  | 5083 <a name="_Generate322KeySetKey102-"></a>5070 <span class="k">sub </span><span class="m">_Generate322KeySetKey102</span> <span class="s">{</span> | 
|  | 5084 5071   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5085 5072   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5086 5073 | 
|  | 5087 5074   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5088 5075 <span class="s">}</span> | 
|  | 5089 5076 | 
|  | 5090 5077 <span class="c"># Generate 322 keyset key 103 value as 1/0 indicating its presence/absence or</span> | 
|  | 5091 5078 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5092 5079 <span class="c">#</span> | 
|  | 5093 5080 <span class="c"># Key 103 description: Cl-X</span> | 
|  | 5094 5081 <span class="c">#</span> | 
|  | 5095 <a name="_Generate322KeySetKey103-"></a>5082 <span class="k">sub </span><span class="m">_Generate322KeySetKey103</span> <span class="s">{</span> | 
|  | 5096 5083   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5097 5084   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5098 5085 | 
|  | 5099 5086   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5100 5087 <span class="s">}</span> | 
|  | 5101 5088 | 
|  | 5102 5089 <span class="c"># Generate 322 keyset key 104 value as 1/0 indicating its presence/absence or</span> | 
|  | 5103 5090 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5104 5091 <span class="c">#</span> | 
|  | 5105 5092 <span class="c"># Key 104 description: P-P</span> | 
|  | 5106 5093 <span class="c">#</span> | 
|  | 5107 <a name="_Generate322KeySetKey104-"></a>5094 <span class="k">sub </span><span class="m">_Generate322KeySetKey104</span> <span class="s">{</span> | 
|  | 5108 5095   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5109 5096   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5110 5097 | 
|  | 5111 5098   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5112 5099 <span class="s">}</span> | 
|  | 5113 5100 | 
|  | 5114 5101 <span class="c"># Generate 322 keyset key 105 value as 1/0 indicating its presence/absence or</span> | 
|  | 5115 5102 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5116 5103 <span class="c">#</span> | 
|  | 5117 5104 <span class="c"># Key 105 description: P-F</span> | 
|  | 5118 5105 <span class="c">#</span> | 
|  | 5119 <a name="_Generate322KeySetKey105-"></a>5106 <span class="k">sub </span><span class="m">_Generate322KeySetKey105</span> <span class="s">{</span> | 
|  | 5120 5107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5121 5108   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5122 5109 | 
|  | 5123 5110   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5124 5111 <span class="s">}</span> | 
|  | 5125 5112 | 
|  | 5126 5113 <span class="c"># Generate 322 keyset key 106 value as 1/0 indicating its presence/absence or</span> | 
|  | 5127 5114 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5128 5115 <span class="c">#</span> | 
|  | 5129 5116 <span class="c"># Key 106 description: P-Br</span> | 
|  | 5130 5117 <span class="c">#</span> | 
|  | 5131 <a name="_Generate322KeySetKey106-"></a>5118 <span class="k">sub </span><span class="m">_Generate322KeySetKey106</span> <span class="s">{</span> | 
|  | 5132 5119   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5133 5120   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5134 5121 | 
|  | 5135 5122   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5136 5123 <span class="s">}</span> | 
|  | 5137 5124 | 
|  | 5138 5125 <span class="c"># Generate 322 keyset key 107 value as 1/0 indicating its presence/absence or</span> | 
|  | 5139 5126 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5140 5127 <span class="c">#</span> | 
|  | 5141 5128 <span class="c"># Key 107 description: P-Si</span> | 
|  | 5142 5129 <span class="c">#</span> | 
|  | 5143 <a name="_Generate322KeySetKey107-"></a>5130 <span class="k">sub </span><span class="m">_Generate322KeySetKey107</span> <span class="s">{</span> | 
|  | 5144 5131   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5145 5132   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5146 5133 | 
|  | 5147 5134   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5148 5135 <span class="s">}</span> | 
|  | 5149 5136 | 
|  | 5150 5137 <span class="c"># Generate 322 keyset key 108 value as 1/0 indicating its presence/absence or</span> | 
|  | 5151 5138 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5152 5139 <span class="c">#</span> | 
|  | 5153 5140 <span class="c"># Key 108 description: P-I</span> | 
|  | 5154 5141 <span class="c">#</span> | 
|  | 5155 <a name="_Generate322KeySetKey108-"></a>5142 <span class="k">sub </span><span class="m">_Generate322KeySetKey108</span> <span class="s">{</span> | 
|  | 5156 5143   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5157 5144   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5158 5145 | 
|  | 5159 5146   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5160 5147 <span class="s">}</span> | 
|  | 5161 5148 | 
|  | 5162 5149 <span class="c"># Generate 322 keyset key 109 value as 1/0 indicating its presence/absence or</span> | 
|  | 5163 5150 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5164 5151 <span class="c">#</span> | 
|  | 5165 5152 <span class="c"># Key 109 description: P-X</span> | 
|  | 5166 5153 <span class="c">#</span> | 
|  | 5167 <a name="_Generate322KeySetKey109-"></a>5154 <span class="k">sub </span><span class="m">_Generate322KeySetKey109</span> <span class="s">{</span> | 
|  | 5168 5155   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5169 5156   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5170 5157 | 
|  | 5171 5158   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5172 5159 <span class="s">}</span> | 
|  | 5173 5160 | 
|  | 5174 5161 <span class="c"># Generate 322 keyset key 110 value as 1/0 indicating its presence/absence or</span> | 
|  | 5175 5162 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5176 5163 <span class="c">#</span> | 
|  | 5177 5164 <span class="c"># Key 110 description: F-F</span> | 
|  | 5178 5165 <span class="c">#</span> | 
|  | 5179 <a name="_Generate322KeySetKey110-"></a>5166 <span class="k">sub </span><span class="m">_Generate322KeySetKey110</span> <span class="s">{</span> | 
|  | 5180 5167   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5181 5168   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5182 5169 | 
|  | 5183 5170   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5184 5171 <span class="s">}</span> | 
|  | 5185 5172 | 
|  | 5186 5173 <span class="c"># Generate 322 keyset key 111 value as 1/0 indicating its presence/absence or</span> | 
|  | 5187 5174 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5188 5175 <span class="c">#</span> | 
|  | 5189 5176 <span class="c"># Key 111 description: F-Br</span> | 
|  | 5190 5177 <span class="c">#</span> | 
|  | 5191 <a name="_Generate322KeySetKey111-"></a>5178 <span class="k">sub </span><span class="m">_Generate322KeySetKey111</span> <span class="s">{</span> | 
|  | 5192 5179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5193 5180   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5194 5181 | 
|  | 5195 5182   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5196 5183 <span class="s">}</span> | 
|  | 5197 5184 | 
|  | 5198 5185 <span class="c"># Generate 322 keyset key 112 value as 1/0 indicating its presence/absence or</span> | 
|  | 5199 5186 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5200 5187 <span class="c">#</span> | 
|  | 5201 5188 <span class="c"># Key 112 description: F-Si</span> | 
|  | 5202 5189 <span class="c">#</span> | 
|  | 5203 <a name="_Generate322KeySetKey112-"></a>5190 <span class="k">sub </span><span class="m">_Generate322KeySetKey112</span> <span class="s">{</span> | 
|  | 5204 5191   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5205 5192   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5206 5193 | 
|  | 5207 5194   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5208 5195 <span class="s">}</span> | 
|  | 5209 5196 | 
|  | 5210 5197 <span class="c"># Generate 322 keyset key 113 value as 1/0 indicating its presence/absence or</span> | 
|  | 5211 5198 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5212 5199 <span class="c">#</span> | 
|  | 5213 5200 <span class="c"># Key 113 description: F-I</span> | 
|  | 5214 5201 <span class="c">#</span> | 
|  | 5215 <a name="_Generate322KeySetKey113-"></a>5202 <span class="k">sub </span><span class="m">_Generate322KeySetKey113</span> <span class="s">{</span> | 
|  | 5216 5203   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5217 5204   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5218 5205 | 
|  | 5219 5206   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5220 5207 <span class="s">}</span> | 
|  | 5221 5208 | 
|  | 5222 5209 <span class="c"># Generate 322 keyset key 114 value as 1/0 indicating its presence/absence or</span> | 
|  | 5223 5210 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5224 5211 <span class="c">#</span> | 
|  | 5225 5212 <span class="c"># Key 114 description: F-X</span> | 
|  | 5226 5213 <span class="c">#</span> | 
|  | 5227 <a name="_Generate322KeySetKey114-"></a>5214 <span class="k">sub </span><span class="m">_Generate322KeySetKey114</span> <span class="s">{</span> | 
|  | 5228 5215   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5229 5216   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5230 5217 | 
|  | 5231 5218   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5232 5219 <span class="s">}</span> | 
|  | 5233 5220 | 
|  | 5234 5221 <span class="c"># Generate 322 keyset key 115 value as 1/0 indicating its presence/absence or</span> | 
|  | 5235 5222 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5236 5223 <span class="c">#</span> | 
|  | 5237 5224 <span class="c"># Key 115 description: Br-Br</span> | 
|  | 5238 5225 <span class="c">#</span> | 
|  | 5239 <a name="_Generate322KeySetKey115-"></a>5226 <span class="k">sub </span><span class="m">_Generate322KeySetKey115</span> <span class="s">{</span> | 
|  | 5240 5227   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5241 5228   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5242 5229 | 
|  | 5243 5230   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5244 5231 <span class="s">}</span> | 
|  | 5245 5232 | 
|  | 5246 5233 <span class="c"># Generate 322 keyset key 116 value as 1/0 indicating its presence/absence or</span> | 
|  | 5247 5234 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5248 5235 <span class="c">#</span> | 
|  | 5249 5236 <span class="c"># Key 116 description: Br-Si</span> | 
|  | 5250 5237 <span class="c">#</span> | 
|  | 5251 <a name="_Generate322KeySetKey116-"></a>5238 <span class="k">sub </span><span class="m">_Generate322KeySetKey116</span> <span class="s">{</span> | 
|  | 5252 5239   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5253 5240   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5254 5241 | 
|  | 5255 5242   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5256 5243 <span class="s">}</span> | 
|  | 5257 5244 | 
|  | 5258 5245 <span class="c"># Generate 322 keyset key 117 value as 1/0 indicating its presence/absence or</span> | 
|  | 5259 5246 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5260 5247 <span class="c">#</span> | 
|  | 5261 5248 <span class="c"># Key 117 description: Br-I</span> | 
|  | 5262 5249 <span class="c">#</span> | 
|  | 5263 <a name="_Generate322KeySetKey117-"></a>5250 <span class="k">sub </span><span class="m">_Generate322KeySetKey117</span> <span class="s">{</span> | 
|  | 5264 5251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5265 5252   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5266 5253 | 
|  | 5267 5254   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5268 5255 <span class="s">}</span> | 
|  | 5269 5256 | 
|  | 5270 5257 <span class="c"># Generate 322 keyset key 118 value as 1/0 indicating its presence/absence or</span> | 
|  | 5271 5258 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5272 5259 <span class="c">#</span> | 
|  | 5273 5260 <span class="c"># Key 118 description: Br-X</span> | 
|  | 5274 5261 <span class="c">#</span> | 
|  | 5275 <a name="_Generate322KeySetKey118-"></a>5262 <span class="k">sub </span><span class="m">_Generate322KeySetKey118</span> <span class="s">{</span> | 
|  | 5276 5263   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5277 5264   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5278 5265 | 
|  | 5279 5266   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5280 5267 <span class="s">}</span> | 
|  | 5281 5268 | 
|  | 5282 5269 <span class="c"># Generate 322 keyset key 119 value as 1/0 indicating its presence/absence or</span> | 
|  | 5283 5270 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5284 5271 <span class="c">#</span> | 
|  | 5285 5272 <span class="c"># Key 119 description: Si-Si</span> | 
|  | 5286 5273 <span class="c">#</span> | 
|  | 5287 <a name="_Generate322KeySetKey119-"></a>5274 <span class="k">sub </span><span class="m">_Generate322KeySetKey119</span> <span class="s">{</span> | 
|  | 5288 5275   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5289 5276   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5290 5277 | 
|  | 5291 5278   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5292 5279 <span class="s">}</span> | 
|  | 5293 5280 | 
|  | 5294 5281 <span class="c"># Generate 322 keyset key 120 value as 1/0 indicating its presence/absence or</span> | 
|  | 5295 5282 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5296 5283 <span class="c">#</span> | 
|  | 5297 5284 <span class="c"># Key 120 description: Si-I</span> | 
|  | 5298 5285 <span class="c">#</span> | 
|  | 5299 <a name="_Generate322KeySetKey120-"></a>5286 <span class="k">sub </span><span class="m">_Generate322KeySetKey120</span> <span class="s">{</span> | 
|  | 5300 5287   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5301 5288   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5302 5289 | 
|  | 5303 5290   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5304 5291 <span class="s">}</span> | 
|  | 5305 5292 | 
|  | 5306 5293 <span class="c"># Generate 322 keyset key 121 value as 1/0 indicating its presence/absence or</span> | 
|  | 5307 5294 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5308 5295 <span class="c">#</span> | 
|  | 5309 5296 <span class="c"># Key 121 description: Si-X</span> | 
|  | 5310 5297 <span class="c">#</span> | 
|  | 5311 <a name="_Generate322KeySetKey121-"></a>5298 <span class="k">sub </span><span class="m">_Generate322KeySetKey121</span> <span class="s">{</span> | 
|  | 5312 5299   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5313 5300   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5314 5301 | 
|  | 5315 5302   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5316 5303 <span class="s">}</span> | 
|  | 5317 5304 | 
|  | 5318 5305 <span class="c"># Generate 322 keyset key 122 value as 1/0 indicating its presence/absence or</span> | 
|  | 5319 5306 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5320 5307 <span class="c">#</span> | 
|  | 5321 5308 <span class="c"># Key 122 description: I-I</span> | 
|  | 5322 5309 <span class="c">#</span> | 
|  | 5323 <a name="_Generate322KeySetKey122-"></a>5310 <span class="k">sub </span><span class="m">_Generate322KeySetKey122</span> <span class="s">{</span> | 
|  | 5324 5311   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5325 5312   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5326 5313 | 
|  | 5327 5314   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5328 5315 <span class="s">}</span> | 
|  | 5329 5316 | 
|  | 5330 5317 <span class="c"># Generate 322 keyset key 123 value as 1/0 indicating its presence/absence or</span> | 
|  | 5331 5318 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5332 5319 <span class="c">#</span> | 
|  | 5333 5320 <span class="c"># Key 123 description: I-X</span> | 
|  | 5334 5321 <span class="c">#</span> | 
|  | 5335 <a name="_Generate322KeySetKey123-"></a>5322 <span class="k">sub </span><span class="m">_Generate322KeySetKey123</span> <span class="s">{</span> | 
|  | 5336 5323   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5337 5324   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5338 5325 | 
|  | 5339 5326   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5340 5327 <span class="s">}</span> | 
|  | 5341 5328 | 
|  | 5342 5329 <span class="c"># Generate 322 keyset key 124 value as 1/0 indicating its presence/absence or</span> | 
|  | 5343 5330 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5344 5331 <span class="c">#</span> | 
|  | 5345 5332 <span class="c"># Key 124 description: X-X</span> | 
|  | 5346 5333 <span class="c">#</span> | 
|  | 5347 <a name="_Generate322KeySetKey124-"></a>5334 <span class="k">sub </span><span class="m">_Generate322KeySetKey124</span> <span class="s">{</span> | 
|  | 5348 5335   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5349 5336   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'-'</span><span class="sc">;</span> | 
|  | 5350 5337 | 
|  | 5351 5338   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Z'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5352 5339 <span class="s">}</span> | 
|  | 5353 5340 | 
|  | 5354 5341 <span class="c"># Generate 322 keyset key 125 value as 1/0 indicating its presence/absence or</span> | 
|  | 5355 5342 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5356 5343 <span class="c">#</span> | 
|  | 5357 5344 <span class="c"># Key 125 description: C=C</span> | 
|  | 5358 5345 <span class="c">#</span> | 
|  | 5359 <a name="_Generate322KeySetKey125-"></a>5346 <span class="k">sub </span><span class="m">_Generate322KeySetKey125</span> <span class="s">{</span> | 
|  | 5360 5347   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5361 5348   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5362 5349 | 
|  | 5363 5350   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5364 5351 <span class="s">}</span> | 
|  | 5365 5352 | 
|  | 5366 5353 <span class="c"># Generate 322 keyset key 126 value as 1/0 indicating its presence/absence or</span> | 
|  | 5367 5354 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5368 5355 <span class="c">#</span> | 
|  | 5369 5356 <span class="c"># Key 126 description: C=N</span> | 
|  | 5370 5357 <span class="c">#</span> | 
|  | 5371 <a name="_Generate322KeySetKey126-"></a>5358 <span class="k">sub </span><span class="m">_Generate322KeySetKey126</span> <span class="s">{</span> | 
|  | 5372 5359   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5373 5360   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5374 5361 | 
|  | 5375 5362   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5376 5363 <span class="s">}</span> | 
|  | 5377 5364 | 
|  | 5378 5365 <span class="c"># Generate 322 keyset key 127 value as 1/0 indicating its presence/absence or</span> | 
|  | 5379 5366 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5380 5367 <span class="c">#</span> | 
|  | 5381 5368 <span class="c"># Key 127 description: C=O</span> | 
|  | 5382 5369 <span class="c">#</span> | 
|  | 5383 <a name="_Generate322KeySetKey127-"></a>5370 <span class="k">sub </span><span class="m">_Generate322KeySetKey127</span> <span class="s">{</span> | 
|  | 5384 5371   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5385 5372   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5386 5373 | 
|  | 5387 5374   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5388 5375 <span class="s">}</span> | 
|  | 5389 5376 | 
|  | 5390 5377 <span class="c"># Generate 322 keyset key 128 value as 1/0 indicating its presence/absence or</span> | 
|  | 5391 5378 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5392 5379 <span class="c">#</span> | 
|  | 5393 5380 <span class="c"># Key 128 description: C=S</span> | 
|  | 5394 5381 <span class="c">#</span> | 
|  | 5395 <a name="_Generate322KeySetKey128-"></a>5382 <span class="k">sub </span><span class="m">_Generate322KeySetKey128</span> <span class="s">{</span> | 
|  | 5396 5383   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5397 5384   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5398 5385 | 
|  | 5399 5386   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5400 5387 <span class="s">}</span> | 
|  | 5401 5388 | 
|  | 5402 5389 <span class="c"># Generate 322 keyset key 129 value as 1/0 indicating its presence/absence or</span> | 
|  | 5403 5390 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5404 5391 <span class="c">#</span> | 
|  | 5405 5392 <span class="c"># Key 129 description: C=Cl</span> | 
|  | 5406 5393 <span class="c">#</span> | 
|  | 5407 <a name="_Generate322KeySetKey129-"></a>5394 <span class="k">sub </span><span class="m">_Generate322KeySetKey129</span> <span class="s">{</span> | 
|  | 5408 5395   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5409 5396   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5410 5397 | 
|  | 5411 5398   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5412 5399 <span class="s">}</span> | 
|  | 5413 5400 | 
|  | 5414 5401 <span class="c"># Generate 322 keyset key 130 value as 1/0 indicating its presence/absence or</span> | 
|  | 5415 5402 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5416 5403 <span class="c">#</span> | 
|  | 5417 5404 <span class="c"># Key 130 description: C=P</span> | 
|  | 5418 5405 <span class="c">#</span> | 
|  | 5419 <a name="_Generate322KeySetKey130-"></a>5406 <span class="k">sub </span><span class="m">_Generate322KeySetKey130</span> <span class="s">{</span> | 
|  | 5420 5407   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5421 5408   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5422 5409 | 
|  | 5423 5410   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5424 5411 <span class="s">}</span> | 
|  | 5425 5412 | 
|  | 5426 5413 <span class="c"># Generate 322 keyset key 131 value as 1/0 indicating its presence/absence or</span> | 
|  | 5427 5414 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5428 5415 <span class="c">#</span> | 
|  | 5429 5416 <span class="c"># Key 131 description: C=F</span> | 
|  | 5430 5417 <span class="c">#</span> | 
|  | 5431 <a name="_Generate322KeySetKey131-"></a>5418 <span class="k">sub </span><span class="m">_Generate322KeySetKey131</span> <span class="s">{</span> | 
|  | 5432 5419   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5433 5420   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5434 5421 | 
|  | 5435 5422   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5436 5423 <span class="s">}</span> | 
|  | 5437 5424 | 
|  | 5438 5425 <span class="c"># Generate 322 keyset key 132 value as 1/0 indicating its presence/absence or</span> | 
|  | 5439 5426 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5440 5427 <span class="c">#</span> | 
|  | 5441 5428 <span class="c"># Key 132 description: C=Br</span> | 
|  | 5442 5429 <span class="c">#</span> | 
|  | 5443 <a name="_Generate322KeySetKey132-"></a>5430 <span class="k">sub </span><span class="m">_Generate322KeySetKey132</span> <span class="s">{</span> | 
|  | 5444 5431   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5445 5432   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5446 5433 | 
|  | 5447 5434   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5448 5435 <span class="s">}</span> | 
|  | 5449 5436 | 
|  | 5450 5437 <span class="c"># Generate 322 keyset key 133 value as 1/0 indicating its presence/absence or</span> | 
|  | 5451 5438 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5452 5439 <span class="c">#</span> | 
|  | 5453 5440 <span class="c"># Key 133 description: C=Si</span> | 
|  | 5454 5441 <span class="c">#</span> | 
|  | 5455 <a name="_Generate322KeySetKey133-"></a>5442 <span class="k">sub </span><span class="m">_Generate322KeySetKey133</span> <span class="s">{</span> | 
|  | 5456 5443   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5457 5444   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5458 5445 | 
|  | 5459 5446   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5460 5447 <span class="s">}</span> | 
|  | 5461 5448 | 
|  | 5462 5449 <span class="c"># Generate 322 keyset key 134 value as 1/0 indicating its presence/absence or</span> | 
|  | 5463 5450 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5464 5451 <span class="c">#</span> | 
|  | 5465 5452 <span class="c"># Key 134 description: C=I</span> | 
|  | 5466 5453 <span class="c">#</span> | 
|  | 5467 <a name="_Generate322KeySetKey134-"></a>5454 <span class="k">sub </span><span class="m">_Generate322KeySetKey134</span> <span class="s">{</span> | 
|  | 5468 5455   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5469 5456   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5470 5457 | 
|  | 5471 5458   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5472 5459 <span class="s">}</span> | 
|  | 5473 5460 | 
|  | 5474 5461 <span class="c"># Generate 322 keyset key 135 value as 1/0 indicating its presence/absence or</span> | 
|  | 5475 5462 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5476 5463 <span class="c">#</span> | 
|  | 5477 5464 <span class="c"># Key 135 description: C=X</span> | 
|  | 5478 5465 <span class="c">#</span> | 
|  | 5479 <a name="_Generate322KeySetKey135-"></a>5466 <span class="k">sub </span><span class="m">_Generate322KeySetKey135</span> <span class="s">{</span> | 
|  | 5480 5467   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5481 5468   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5482 5469 | 
|  | 5483 5470   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5484 5471 <span class="s">}</span> | 
|  | 5485 5472 | 
|  | 5486 5473 <span class="c"># Generate 322 keyset key 136 value as 1/0 indicating its presence/absence or</span> | 
|  | 5487 5474 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5488 5475 <span class="c">#</span> | 
|  | 5489 5476 <span class="c"># Key 136 description: N=N</span> | 
|  | 5490 5477 <span class="c">#</span> | 
|  | 5491 <a name="_Generate322KeySetKey136-"></a>5478 <span class="k">sub </span><span class="m">_Generate322KeySetKey136</span> <span class="s">{</span> | 
|  | 5492 5479   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5493 5480   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5494 5481 | 
|  | 5495 5482   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5496 5483 <span class="s">}</span> | 
|  | 5497 5484 | 
|  | 5498 5485 <span class="c"># Generate 322 keyset key 137 value as 1/0 indicating its presence/absence or</span> | 
|  | 5499 5486 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5500 5487 <span class="c">#</span> | 
|  | 5501 5488 <span class="c"># Key 137 description: N=O</span> | 
|  | 5502 5489 <span class="c">#</span> | 
|  | 5503 <a name="_Generate322KeySetKey137-"></a>5490 <span class="k">sub </span><span class="m">_Generate322KeySetKey137</span> <span class="s">{</span> | 
|  | 5504 5491   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5505 5492   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5506 5493 | 
|  | 5507 5494   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5508 5495 <span class="s">}</span> | 
|  | 5509 5496 | 
|  | 5510 5497 <span class="c"># Generate 322 keyset key 138 value as 1/0 indicating its presence/absence or</span> | 
|  | 5511 5498 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5512 5499 <span class="c">#</span> | 
|  | 5513 5500 <span class="c"># Key 138 description: N=S</span> | 
|  | 5514 5501 <span class="c">#</span> | 
|  | 5515 <a name="_Generate322KeySetKey138-"></a>5502 <span class="k">sub </span><span class="m">_Generate322KeySetKey138</span> <span class="s">{</span> | 
|  | 5516 5503   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5517 5504   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5518 5505 | 
|  | 5519 5506   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5520 5507 <span class="s">}</span> | 
|  | 5521 5508 | 
|  | 5522 5509 <span class="c"># Generate 322 keyset key 139 value as 1/0 indicating its presence/absence or</span> | 
|  | 5523 5510 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5524 5511 <span class="c">#</span> | 
|  | 5525 5512 <span class="c"># Key 139 description: N=Cl</span> | 
|  | 5526 5513 <span class="c">#</span> | 
|  | 5527 <a name="_Generate322KeySetKey139-"></a>5514 <span class="k">sub </span><span class="m">_Generate322KeySetKey139</span> <span class="s">{</span> | 
|  | 5528 5515   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5529 5516   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5530 5517 | 
|  | 5531 5518   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5532 5519 <span class="s">}</span> | 
|  | 5533 5520 | 
|  | 5534 5521 <span class="c"># Generate 322 keyset key 140 value as 1/0 indicating its presence/absence or</span> | 
|  | 5535 5522 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5536 5523 <span class="c">#</span> | 
|  | 5537 5524 <span class="c"># Key 140 description: N=P</span> | 
|  | 5538 5525 <span class="c">#</span> | 
|  | 5539 <a name="_Generate322KeySetKey140-"></a>5526 <span class="k">sub </span><span class="m">_Generate322KeySetKey140</span> <span class="s">{</span> | 
|  | 5540 5527   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5541 5528   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5542 5529 | 
|  | 5543 5530   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5544 5531 <span class="s">}</span> | 
|  | 5545 5532 | 
|  | 5546 5533 <span class="c"># Generate 322 keyset key 141 value as 1/0 indicating its presence/absence or</span> | 
|  | 5547 5534 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5548 5535 <span class="c">#</span> | 
|  | 5549 5536 <span class="c"># Key 141 description: N=F</span> | 
|  | 5550 5537 <span class="c">#</span> | 
|  | 5551 <a name="_Generate322KeySetKey141-"></a>5538 <span class="k">sub </span><span class="m">_Generate322KeySetKey141</span> <span class="s">{</span> | 
|  | 5552 5539   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5553 5540   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5554 5541 | 
|  | 5555 5542   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5556 5543 <span class="s">}</span> | 
|  | 5557 5544 | 
|  | 5558 5545 <span class="c"># Generate 322 keyset key 142 value as 1/0 indicating its presence/absence or</span> | 
|  | 5559 5546 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5560 5547 <span class="c">#</span> | 
|  | 5561 5548 <span class="c"># Key 142 description: N=Br</span> | 
|  | 5562 5549 <span class="c">#</span> | 
|  | 5563 <a name="_Generate322KeySetKey142-"></a>5550 <span class="k">sub </span><span class="m">_Generate322KeySetKey142</span> <span class="s">{</span> | 
|  | 5564 5551   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5565 5552   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5566 5553 | 
|  | 5567 5554   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5568 5555 <span class="s">}</span> | 
|  | 5569 5556 | 
|  | 5570 5557 <span class="c"># Generate 322 keyset key 143 value as 1/0 indicating its presence/absence or</span> | 
|  | 5571 5558 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5572 5559 <span class="c">#</span> | 
|  | 5573 5560 <span class="c"># Key 143 description: N=Si</span> | 
|  | 5574 5561 <span class="c">#</span> | 
|  | 5575 <a name="_Generate322KeySetKey143-"></a>5562 <span class="k">sub </span><span class="m">_Generate322KeySetKey143</span> <span class="s">{</span> | 
|  | 5576 5563   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5577 5564   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5578 5565 | 
|  | 5579 5566   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5580 5567 <span class="s">}</span> | 
|  | 5581 5568 | 
|  | 5582 5569 <span class="c"># Generate 322 keyset key 144 value as 1/0 indicating its presence/absence or</span> | 
|  | 5583 5570 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5584 5571 <span class="c">#</span> | 
|  | 5585 5572 <span class="c"># Key 144 description: N=I</span> | 
|  | 5586 5573 <span class="c">#</span> | 
|  | 5587 <a name="_Generate322KeySetKey144-"></a>5574 <span class="k">sub </span><span class="m">_Generate322KeySetKey144</span> <span class="s">{</span> | 
|  | 5588 5575   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5589 5576   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5590 5577 | 
|  | 5591 5578   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5592 5579 <span class="s">}</span> | 
|  | 5593 5580 | 
|  | 5594 5581 <span class="c"># Generate 322 keyset key 145 value as 1/0 indicating its presence/absence or</span> | 
|  | 5595 5582 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5596 5583 <span class="c">#</span> | 
|  | 5597 5584 <span class="c"># Key 145 description: N=X</span> | 
|  | 5598 5585 <span class="c">#</span> | 
|  | 5599 <a name="_Generate322KeySetKey145-"></a>5586 <span class="k">sub </span><span class="m">_Generate322KeySetKey145</span> <span class="s">{</span> | 
|  | 5600 5587   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5601 5588   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5602 5589 | 
|  | 5603 5590   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5604 5591 <span class="s">}</span> | 
|  | 5605 5592 | 
|  | 5606 5593 <span class="c"># Generate 322 keyset key 146 value as 1/0 indicating its presence/absence or</span> | 
|  | 5607 5594 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5608 5595 <span class="c">#</span> | 
|  | 5609 5596 <span class="c"># Key 146 description: O=O</span> | 
|  | 5610 5597 <span class="c">#</span> | 
|  | 5611 <a name="_Generate322KeySetKey146-"></a>5598 <span class="k">sub </span><span class="m">_Generate322KeySetKey146</span> <span class="s">{</span> | 
|  | 5612 5599   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5613 5600   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5614 5601 | 
|  | 5615 5602   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5616 5603 <span class="s">}</span> | 
|  | 5617 5604 | 
|  | 5618 5605 <span class="c"># Generate 322 keyset key 147 value as 1/0 indicating its presence/absence or</span> | 
|  | 5619 5606 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5620 5607 <span class="c">#</span> | 
|  | 5621 5608 <span class="c"># Key 147 description: O=S</span> | 
|  | 5622 5609 <span class="c">#</span> | 
|  | 5623 <a name="_Generate322KeySetKey147-"></a>5610 <span class="k">sub </span><span class="m">_Generate322KeySetKey147</span> <span class="s">{</span> | 
|  | 5624 5611   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5625 5612   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5626 5613 | 
|  | 5627 5614   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5628 5615 <span class="s">}</span> | 
|  | 5629 5616 | 
|  | 5630 5617 <span class="c"># Generate 322 keyset key 148 value as 1/0 indicating its presence/absence or</span> | 
|  | 5631 5618 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5632 5619 <span class="c">#</span> | 
|  | 5633 5620 <span class="c"># Key 148 description: O=Cl</span> | 
|  | 5634 5621 <span class="c">#</span> | 
|  | 5635 <a name="_Generate322KeySetKey148-"></a>5622 <span class="k">sub </span><span class="m">_Generate322KeySetKey148</span> <span class="s">{</span> | 
|  | 5636 5623   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5637 5624   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5638 5625 | 
|  | 5639 5626   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5640 5627 <span class="s">}</span> | 
|  | 5641 5628 | 
|  | 5642 5629 <span class="c"># Generate 322 keyset key 149 value as 1/0 indicating its presence/absence or</span> | 
|  | 5643 5630 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5644 5631 <span class="c">#</span> | 
|  | 5645 5632 <span class="c"># Key 149 description: O=P</span> | 
|  | 5646 5633 <span class="c">#</span> | 
|  | 5647 <a name="_Generate322KeySetKey149-"></a>5634 <span class="k">sub </span><span class="m">_Generate322KeySetKey149</span> <span class="s">{</span> | 
|  | 5648 5635   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5649 5636   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5650 5637 | 
|  | 5651 5638   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5652 5639 <span class="s">}</span> | 
|  | 5653 5640 | 
|  | 5654 5641 <span class="c"># Generate 322 keyset key 150 value as 1/0 indicating its presence/absence or</span> | 
|  | 5655 5642 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5656 5643 <span class="c">#</span> | 
|  | 5657 5644 <span class="c"># Key 150 description: O=F</span> | 
|  | 5658 5645 <span class="c">#</span> | 
|  | 5659 <a name="_Generate322KeySetKey150-"></a>5646 <span class="k">sub </span><span class="m">_Generate322KeySetKey150</span> <span class="s">{</span> | 
|  | 5660 5647   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5661 5648   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5662 5649 | 
|  | 5663 5650   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5664 5651 <span class="s">}</span> | 
|  | 5665 5652 | 
|  | 5666 5653 <span class="c"># Generate 322 keyset key 151 value as 1/0 indicating its presence/absence or</span> | 
|  | 5667 5654 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5668 5655 <span class="c">#</span> | 
|  | 5669 5656 <span class="c"># Key 151 description: O=Br</span> | 
|  | 5670 5657 <span class="c">#</span> | 
|  | 5671 <a name="_Generate322KeySetKey151-"></a>5658 <span class="k">sub </span><span class="m">_Generate322KeySetKey151</span> <span class="s">{</span> | 
|  | 5672 5659   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5673 5660   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5674 5661 | 
|  | 5675 5662   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5676 5663 <span class="s">}</span> | 
|  | 5677 5664 | 
|  | 5678 5665 <span class="c"># Generate 322 keyset key 152 value as 1/0 indicating its presence/absence or</span> | 
|  | 5679 5666 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5680 5667 <span class="c">#</span> | 
|  | 5681 5668 <span class="c"># Key 152 description: O=Si</span> | 
|  | 5682 5669 <span class="c">#</span> | 
|  | 5683 <a name="_Generate322KeySetKey152-"></a>5670 <span class="k">sub </span><span class="m">_Generate322KeySetKey152</span> <span class="s">{</span> | 
|  | 5684 5671   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5685 5672   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5686 5673 | 
|  | 5687 5674   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5688 5675 <span class="s">}</span> | 
|  | 5689 5676 | 
|  | 5690 5677 <span class="c"># Generate 322 keyset key 153 value as 1/0 indicating its presence/absence or</span> | 
|  | 5691 5678 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5692 5679 <span class="c">#</span> | 
|  | 5693 5680 <span class="c"># Key 153 description: O=I</span> | 
|  | 5694 5681 <span class="c">#</span> | 
|  | 5695 <a name="_Generate322KeySetKey153-"></a>5682 <span class="k">sub </span><span class="m">_Generate322KeySetKey153</span> <span class="s">{</span> | 
|  | 5696 5683   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5697 5684   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5698 5685 | 
|  | 5699 5686   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5700 5687 <span class="s">}</span> | 
|  | 5701 5688 | 
|  | 5702 5689 <span class="c"># Generate 322 keyset key 154 value as 1/0 indicating its presence/absence or</span> | 
|  | 5703 5690 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5704 5691 <span class="c">#</span> | 
|  | 5705 5692 <span class="c"># Key 154 description: O=X</span> | 
|  | 5706 5693 <span class="c">#</span> | 
|  | 5707 <a name="_Generate322KeySetKey154-"></a>5694 <span class="k">sub </span><span class="m">_Generate322KeySetKey154</span> <span class="s">{</span> | 
|  | 5708 5695   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5709 5696   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5710 5697 | 
|  | 5711 5698   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5712 5699 <span class="s">}</span> | 
|  | 5713 5700 | 
|  | 5714 5701 <span class="c"># Generate 322 keyset key 155 value as 1/0 indicating its presence/absence or</span> | 
|  | 5715 5702 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5716 5703 <span class="c">#</span> | 
|  | 5717 5704 <span class="c"># Key 155 description: S=S</span> | 
|  | 5718 5705 <span class="c">#</span> | 
|  | 5719 <a name="_Generate322KeySetKey155-"></a>5706 <span class="k">sub </span><span class="m">_Generate322KeySetKey155</span> <span class="s">{</span> | 
|  | 5720 5707   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5721 5708   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5722 5709 | 
|  | 5723 5710   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5724 5711 <span class="s">}</span> | 
|  | 5725 5712 | 
|  | 5726 5713 <span class="c"># Generate 322 keyset key 156 value as 1/0 indicating its presence/absence or</span> | 
|  | 5727 5714 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5728 5715 <span class="c">#</span> | 
|  | 5729 5716 <span class="c"># Key 156 description: S=Cl</span> | 
|  | 5730 5717 <span class="c">#</span> | 
|  | 5731 <a name="_Generate322KeySetKey156-"></a>5718 <span class="k">sub </span><span class="m">_Generate322KeySetKey156</span> <span class="s">{</span> | 
|  | 5732 5719   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5733 5720   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5734 5721 | 
|  | 5735 5722   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5736 5723 <span class="s">}</span> | 
|  | 5737 5724 | 
|  | 5738 5725 <span class="c"># Generate 322 keyset key 157 value as 1/0 indicating its presence/absence or</span> | 
|  | 5739 5726 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5740 5727 <span class="c">#</span> | 
|  | 5741 5728 <span class="c"># Key 157 description: S=P</span> | 
|  | 5742 5729 <span class="c">#</span> | 
|  | 5743 <a name="_Generate322KeySetKey157-"></a>5730 <span class="k">sub </span><span class="m">_Generate322KeySetKey157</span> <span class="s">{</span> | 
|  | 5744 5731   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5745 5732   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5746 5733 | 
|  | 5747 5734   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5748 5735 <span class="s">}</span> | 
|  | 5749 5736 | 
|  | 5750 5737 <span class="c"># Generate 322 keyset key 158 value as 1/0 indicating its presence/absence or</span> | 
|  | 5751 5738 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5752 5739 <span class="c">#</span> | 
|  | 5753 5740 <span class="c"># Key 158 description: S=F</span> | 
|  | 5754 5741 <span class="c">#</span> | 
|  | 5755 <a name="_Generate322KeySetKey158-"></a>5742 <span class="k">sub </span><span class="m">_Generate322KeySetKey158</span> <span class="s">{</span> | 
|  | 5756 5743   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5757 5744   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5758 5745 | 
|  | 5759 5746   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5760 5747 <span class="s">}</span> | 
|  | 5761 5748 | 
|  | 5762 5749 <span class="c"># Generate 322 keyset key 159 value as 1/0 indicating its presence/absence or</span> | 
|  | 5763 5750 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5764 5751 <span class="c">#</span> | 
|  | 5765 5752 <span class="c"># Key 159 description: S=Br</span> | 
|  | 5766 5753 <span class="c">#</span> | 
|  | 5767 <a name="_Generate322KeySetKey159-"></a>5754 <span class="k">sub </span><span class="m">_Generate322KeySetKey159</span> <span class="s">{</span> | 
|  | 5768 5755   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5769 5756   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5770 5757 | 
|  | 5771 5758   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5772 5759 <span class="s">}</span> | 
|  | 5773 5760 | 
|  | 5774 5761 <span class="c"># Generate 322 keyset key 160 value as 1/0 indicating its presence/absence or</span> | 
|  | 5775 5762 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5776 5763 <span class="c">#</span> | 
|  | 5777 5764 <span class="c"># Key 160 description: S=Si</span> | 
|  | 5778 5765 <span class="c">#</span> | 
|  | 5779 <a name="_Generate322KeySetKey160-"></a>5766 <span class="k">sub </span><span class="m">_Generate322KeySetKey160</span> <span class="s">{</span> | 
|  | 5780 5767   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5781 5768   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5782 5769 | 
|  | 5783 5770   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5784 5771 <span class="s">}</span> | 
|  | 5785 5772 | 
|  | 5786 5773 <span class="c"># Generate 322 keyset key 161 value as 1/0 indicating its presence/absence or</span> | 
|  | 5787 5774 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5788 5775 <span class="c">#</span> | 
|  | 5789 5776 <span class="c"># Key 161 description: S=I</span> | 
|  | 5790 5777 <span class="c">#</span> | 
|  | 5791 <a name="_Generate322KeySetKey161-"></a>5778 <span class="k">sub </span><span class="m">_Generate322KeySetKey161</span> <span class="s">{</span> | 
|  | 5792 5779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5793 5780   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5794 5781 | 
|  | 5795 5782   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5796 5783 <span class="s">}</span> | 
|  | 5797 5784 | 
|  | 5798 5785 <span class="c"># Generate 322 keyset key 162 value as 1/0 indicating its presence/absence or</span> | 
|  | 5799 5786 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5800 5787 <span class="c">#</span> | 
|  | 5801 5788 <span class="c"># Key 162 description: S=X</span> | 
|  | 5802 5789 <span class="c">#</span> | 
|  | 5803 <a name="_Generate322KeySetKey162-"></a>5790 <span class="k">sub </span><span class="m">_Generate322KeySetKey162</span> <span class="s">{</span> | 
|  | 5804 5791   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5805 5792   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5806 5793 | 
|  | 5807 5794   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5808 5795 <span class="s">}</span> | 
|  | 5809 5796 | 
|  | 5810 5797 <span class="c"># Generate 322 keyset key 163 value as 1/0 indicating its presence/absence or</span> | 
|  | 5811 5798 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5812 5799 <span class="c">#</span> | 
|  | 5813 5800 <span class="c"># Key 163 description: Cl=Cl</span> | 
|  | 5814 5801 <span class="c">#</span> | 
|  | 5815 <a name="_Generate322KeySetKey163-"></a>5802 <span class="k">sub </span><span class="m">_Generate322KeySetKey163</span> <span class="s">{</span> | 
|  | 5816 5803   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5817 5804   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5818 5805 | 
|  | 5819 5806   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5820 5807 <span class="s">}</span> | 
|  | 5821 5808 | 
|  | 5822 5809 <span class="c"># Generate 322 keyset key 164 value as 1/0 indicating its presence/absence or</span> | 
|  | 5823 5810 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5824 5811 <span class="c">#</span> | 
|  | 5825 5812 <span class="c"># Key 164 description: Cl=P</span> | 
|  | 5826 5813 <span class="c">#</span> | 
|  | 5827 <a name="_Generate322KeySetKey164-"></a>5814 <span class="k">sub </span><span class="m">_Generate322KeySetKey164</span> <span class="s">{</span> | 
|  | 5828 5815   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5829 5816   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5830 5817 | 
|  | 5831 5818   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5832 5819 <span class="s">}</span> | 
|  | 5833 5820 | 
|  | 5834 5821 <span class="c"># Generate 322 keyset key 165 value as 1/0 indicating its presence/absence or</span> | 
|  | 5835 5822 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5836 5823 <span class="c">#</span> | 
|  | 5837 5824 <span class="c"># Key 165 description: Cl=F</span> | 
|  | 5838 5825 <span class="c">#</span> | 
|  | 5839 <a name="_Generate322KeySetKey165-"></a>5826 <span class="k">sub </span><span class="m">_Generate322KeySetKey165</span> <span class="s">{</span> | 
|  | 5840 5827   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5841 5828   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5842 5829 | 
|  | 5843 5830   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5844 5831 <span class="s">}</span> | 
|  | 5845 5832 | 
|  | 5846 5833 <span class="c"># Generate 322 keyset key 166 value as 1/0 indicating its presence/absence or</span> | 
|  | 5847 5834 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5848 5835 <span class="c">#</span> | 
|  | 5849 5836 <span class="c"># Key 166 description: Cl=Br</span> | 
|  | 5850 5837 <span class="c">#</span> | 
|  | 5851 <a name="_Generate322KeySetKey166-"></a>5838 <span class="k">sub </span><span class="m">_Generate322KeySetKey166</span> <span class="s">{</span> | 
|  | 5852 5839   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5853 5840   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5854 5841 | 
|  | 5855 5842   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5856 5843 <span class="s">}</span> | 
|  | 5857 5844 | 
|  | 5858 5845 <span class="c"># Generate 322 keyset key 167 value as 1/0 indicating its presence/absence or</span> | 
|  | 5859 5846 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5860 5847 <span class="c">#</span> | 
|  | 5861 5848 <span class="c"># Key 167 description: Cl=Si</span> | 
|  | 5862 5849 <span class="c">#</span> | 
|  | 5863 <a name="_Generate322KeySetKey167-"></a>5850 <span class="k">sub </span><span class="m">_Generate322KeySetKey167</span> <span class="s">{</span> | 
|  | 5864 5851   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5865 5852   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5866 5853 | 
|  | 5867 5854   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5868 5855 <span class="s">}</span> | 
|  | 5869 5856 | 
|  | 5870 5857 <span class="c"># Generate 322 keyset key 168 value as 1/0 indicating its presence/absence or</span> | 
|  | 5871 5858 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5872 5859 <span class="c">#</span> | 
|  | 5873 5860 <span class="c"># Key 168 description: Cl=I</span> | 
|  | 5874 5861 <span class="c">#</span> | 
|  | 5875 <a name="_Generate322KeySetKey168-"></a>5862 <span class="k">sub </span><span class="m">_Generate322KeySetKey168</span> <span class="s">{</span> | 
|  | 5876 5863   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5877 5864   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5878 5865 | 
|  | 5879 5866   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5880 5867 <span class="s">}</span> | 
|  | 5881 5868 | 
|  | 5882 5869 <span class="c"># Generate 322 keyset key 169 value as 1/0 indicating its presence/absence or</span> | 
|  | 5883 5870 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5884 5871 <span class="c">#</span> | 
|  | 5885 5872 <span class="c"># Key 169 description: Cl=X</span> | 
|  | 5886 5873 <span class="c">#</span> | 
|  | 5887 <a name="_Generate322KeySetKey169-"></a>5874 <span class="k">sub </span><span class="m">_Generate322KeySetKey169</span> <span class="s">{</span> | 
|  | 5888 5875   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5889 5876   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5890 5877 | 
|  | 5891 5878   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5892 5879 <span class="s">}</span> | 
|  | 5893 5880 | 
|  | 5894 5881 <span class="c"># Generate 322 keyset key 170 value as 1/0 indicating its presence/absence or</span> | 
|  | 5895 5882 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5896 5883 <span class="c">#</span> | 
|  | 5897 5884 <span class="c"># Key 170 description: P=P</span> | 
|  | 5898 5885 <span class="c">#</span> | 
|  | 5899 <a name="_Generate322KeySetKey170-"></a>5886 <span class="k">sub </span><span class="m">_Generate322KeySetKey170</span> <span class="s">{</span> | 
|  | 5900 5887   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5901 5888   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5902 5889 | 
|  | 5903 5890   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5904 5891 <span class="s">}</span> | 
|  | 5905 5892 | 
|  | 5906 5893 <span class="c"># Generate 322 keyset key 171 value as 1/0 indicating its presence/absence or</span> | 
|  | 5907 5894 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5908 5895 <span class="c">#</span> | 
|  | 5909 5896 <span class="c"># Key 171 description: P=F</span> | 
|  | 5910 5897 <span class="c">#</span> | 
|  | 5911 <a name="_Generate322KeySetKey171-"></a>5898 <span class="k">sub </span><span class="m">_Generate322KeySetKey171</span> <span class="s">{</span> | 
|  | 5912 5899   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5913 5900   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5914 5901 | 
|  | 5915 5902   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5916 5903 <span class="s">}</span> | 
|  | 5917 5904 | 
|  | 5918 5905 <span class="c"># Generate 322 keyset key 172 value as 1/0 indicating its presence/absence or</span> | 
|  | 5919 5906 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5920 5907 <span class="c">#</span> | 
|  | 5921 5908 <span class="c"># Key 172 description: P=Br</span> | 
|  | 5922 5909 <span class="c">#</span> | 
|  | 5923 <a name="_Generate322KeySetKey172-"></a>5910 <span class="k">sub </span><span class="m">_Generate322KeySetKey172</span> <span class="s">{</span> | 
|  | 5924 5911   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5925 5912   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5926 5913 | 
|  | 5927 5914   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5928 5915 <span class="s">}</span> | 
|  | 5929 5916 | 
|  | 5930 5917 <span class="c"># Generate 322 keyset key 173 value as 1/0 indicating its presence/absence or</span> | 
|  | 5931 5918 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5932 5919 <span class="c">#</span> | 
|  | 5933 5920 <span class="c"># Key 173 description: P=Si</span> | 
|  | 5934 5921 <span class="c">#</span> | 
|  | 5935 <a name="_Generate322KeySetKey173-"></a>5922 <span class="k">sub </span><span class="m">_Generate322KeySetKey173</span> <span class="s">{</span> | 
|  | 5936 5923   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5937 5924   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5938 5925 | 
|  | 5939 5926   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5940 5927 <span class="s">}</span> | 
|  | 5941 5928 | 
|  | 5942 5929 <span class="c"># Generate 322 keyset key 174 value as 1/0 indicating its presence/absence or</span> | 
|  | 5943 5930 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5944 5931 <span class="c">#</span> | 
|  | 5945 5932 <span class="c"># Key 174 description: P=I</span> | 
|  | 5946 5933 <span class="c">#</span> | 
|  | 5947 <a name="_Generate322KeySetKey174-"></a>5934 <span class="k">sub </span><span class="m">_Generate322KeySetKey174</span> <span class="s">{</span> | 
|  | 5948 5935   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5949 5936   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5950 5937 | 
|  | 5951 5938   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5952 5939 <span class="s">}</span> | 
|  | 5953 5940 | 
|  | 5954 5941 <span class="c"># Generate 322 keyset key 175 value as 1/0 indicating its presence/absence or</span> | 
|  | 5955 5942 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5956 5943 <span class="c">#</span> | 
|  | 5957 5944 <span class="c"># Key 175 description: P=X</span> | 
|  | 5958 5945 <span class="c">#</span> | 
|  | 5959 <a name="_Generate322KeySetKey175-"></a>5946 <span class="k">sub </span><span class="m">_Generate322KeySetKey175</span> <span class="s">{</span> | 
|  | 5960 5947   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5961 5948   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5962 5949 | 
|  | 5963 5950   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5964 5951 <span class="s">}</span> | 
|  | 5965 5952 | 
|  | 5966 5953 <span class="c"># Generate 322 keyset key 176 value as 1/0 indicating its presence/absence or</span> | 
|  | 5967 5954 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5968 5955 <span class="c">#</span> | 
|  | 5969 5956 <span class="c"># Key 176 description: F=F</span> | 
|  | 5970 5957 <span class="c">#</span> | 
|  | 5971 <a name="_Generate322KeySetKey176-"></a>5958 <span class="k">sub </span><span class="m">_Generate322KeySetKey176</span> <span class="s">{</span> | 
|  | 5972 5959   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5973 5960   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5974 5961 | 
|  | 5975 5962   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5976 5963 <span class="s">}</span> | 
|  | 5977 5964 | 
|  | 5978 5965 <span class="c"># Generate 322 keyset key 177 value as 1/0 indicating its presence/absence or</span> | 
|  | 5979 5966 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5980 5967 <span class="c">#</span> | 
|  | 5981 5968 <span class="c"># Key 177 description: F=Br</span> | 
|  | 5982 5969 <span class="c">#</span> | 
|  | 5983 <a name="_Generate322KeySetKey177-"></a>5970 <span class="k">sub </span><span class="m">_Generate322KeySetKey177</span> <span class="s">{</span> | 
|  | 5984 5971   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5985 5972   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5986 5973 | 
|  | 5987 5974   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 5988 5975 <span class="s">}</span> | 
|  | 5989 5976 | 
|  | 5990 5977 <span class="c"># Generate 322 keyset key 178 value as 1/0 indicating its presence/absence or</span> | 
|  | 5991 5978 <span class="c"># count of its presence in a molecule.</span> | 
|  | 5992 5979 <span class="c">#</span> | 
|  | 5993 5980 <span class="c"># Key 178 description: F=Si</span> | 
|  | 5994 5981 <span class="c">#</span> | 
|  | 5995 <a name="_Generate322KeySetKey178-"></a>5982 <span class="k">sub </span><span class="m">_Generate322KeySetKey178</span> <span class="s">{</span> | 
|  | 5996 5983   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 5997 5984   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 5998 5985 | 
|  | 5999 5986   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6000 5987 <span class="s">}</span> | 
|  | 6001 5988 | 
|  | 6002 5989 <span class="c"># Generate 322 keyset key 179 value as 1/0 indicating its presence/absence or</span> | 
|  | 6003 5990 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6004 5991 <span class="c">#</span> | 
|  | 6005 5992 <span class="c"># Key 179 description: F=I</span> | 
|  | 6006 5993 <span class="c">#</span> | 
|  | 6007 <a name="_Generate322KeySetKey179-"></a>5994 <span class="k">sub </span><span class="m">_Generate322KeySetKey179</span> <span class="s">{</span> | 
|  | 6008 5995   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6009 5996   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6010 5997 | 
|  | 6011 5998   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6012 5999 <span class="s">}</span> | 
|  | 6013 6000 | 
|  | 6014 6001 <span class="c"># Generate 322 keyset key 180 value as 1/0 indicating its presence/absence or</span> | 
|  | 6015 6002 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6016 6003 <span class="c">#</span> | 
|  | 6017 6004 <span class="c"># Key 180 description: F=X</span> | 
|  | 6018 6005 <span class="c">#</span> | 
|  | 6019 <a name="_Generate322KeySetKey180-"></a>6006 <span class="k">sub </span><span class="m">_Generate322KeySetKey180</span> <span class="s">{</span> | 
|  | 6020 6007   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6021 6008   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6022 6009 | 
|  | 6023 6010   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6024 6011 <span class="s">}</span> | 
|  | 6025 6012 | 
|  | 6026 6013 <span class="c"># Generate 322 keyset key 181 value as 1/0 indicating its presence/absence or</span> | 
|  | 6027 6014 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6028 6015 <span class="c">#</span> | 
|  | 6029 6016 <span class="c"># Key 181 description: Br=Br</span> | 
|  | 6030 6017 <span class="c">#</span> | 
|  | 6031 <a name="_Generate322KeySetKey181-"></a>6018 <span class="k">sub </span><span class="m">_Generate322KeySetKey181</span> <span class="s">{</span> | 
|  | 6032 6019   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6033 6020   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6034 6021 | 
|  | 6035 6022   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6036 6023 <span class="s">}</span> | 
|  | 6037 6024 | 
|  | 6038 6025 <span class="c"># Generate 322 keyset key 182 value as 1/0 indicating its presence/absence or</span> | 
|  | 6039 6026 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6040 6027 <span class="c">#</span> | 
|  | 6041 6028 <span class="c"># Key 182 description: Br=Si</span> | 
|  | 6042 6029 <span class="c">#</span> | 
|  | 6043 <a name="_Generate322KeySetKey182-"></a>6030 <span class="k">sub </span><span class="m">_Generate322KeySetKey182</span> <span class="s">{</span> | 
|  | 6044 6031   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6045 6032   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6046 6033 | 
|  | 6047 6034   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6048 6035 <span class="s">}</span> | 
|  | 6049 6036 | 
|  | 6050 6037 <span class="c"># Generate 322 keyset key 183 value as 1/0 indicating its presence/absence or</span> | 
|  | 6051 6038 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6052 6039 <span class="c">#</span> | 
|  | 6053 6040 <span class="c"># Key 183 description: Br=I</span> | 
|  | 6054 6041 <span class="c">#</span> | 
|  | 6055 <a name="_Generate322KeySetKey183-"></a>6042 <span class="k">sub </span><span class="m">_Generate322KeySetKey183</span> <span class="s">{</span> | 
|  | 6056 6043   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6057 6044   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6058 6045 | 
|  | 6059 6046   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6060 6047 <span class="s">}</span> | 
|  | 6061 6048 | 
|  | 6062 6049 <span class="c"># Generate 322 keyset key 184 value as 1/0 indicating its presence/absence or</span> | 
|  | 6063 6050 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6064 6051 <span class="c">#</span> | 
|  | 6065 6052 <span class="c"># Key 184 description: Br=X</span> | 
|  | 6066 6053 <span class="c">#</span> | 
|  | 6067 <a name="_Generate322KeySetKey184-"></a>6054 <span class="k">sub </span><span class="m">_Generate322KeySetKey184</span> <span class="s">{</span> | 
|  | 6068 6055   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6069 6056   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6070 6057 | 
|  | 6071 6058   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6072 6059 <span class="s">}</span> | 
|  | 6073 6060 | 
|  | 6074 6061 <span class="c"># Generate 322 keyset key 185 value as 1/0 indicating its presence/absence or</span> | 
|  | 6075 6062 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6076 6063 <span class="c">#</span> | 
|  | 6077 6064 <span class="c"># Key 185 description: Si=Si</span> | 
|  | 6078 6065 <span class="c">#</span> | 
|  | 6079 <a name="_Generate322KeySetKey185-"></a>6066 <span class="k">sub </span><span class="m">_Generate322KeySetKey185</span> <span class="s">{</span> | 
|  | 6080 6067   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6081 6068   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6082 6069 | 
|  | 6083 6070   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6084 6071 <span class="s">}</span> | 
|  | 6085 6072 | 
|  | 6086 6073 <span class="c"># Generate 322 keyset key 186 value as 1/0 indicating its presence/absence or</span> | 
|  | 6087 6074 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6088 6075 <span class="c">#</span> | 
|  | 6089 6076 <span class="c"># Key 186 description: Si=I</span> | 
|  | 6090 6077 <span class="c">#</span> | 
|  | 6091 <a name="_Generate322KeySetKey186-"></a>6078 <span class="k">sub </span><span class="m">_Generate322KeySetKey186</span> <span class="s">{</span> | 
|  | 6092 6079   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6093 6080   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6094 6081 | 
|  | 6095 6082   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6096 6083 <span class="s">}</span> | 
|  | 6097 6084 | 
|  | 6098 6085 <span class="c"># Generate 322 keyset key 187 value as 1/0 indicating its presence/absence or</span> | 
|  | 6099 6086 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6100 6087 <span class="c">#</span> | 
|  | 6101 6088 <span class="c"># Key 187 description: Si=X</span> | 
|  | 6102 6089 <span class="c">#</span> | 
|  | 6103 <a name="_Generate322KeySetKey187-"></a>6090 <span class="k">sub </span><span class="m">_Generate322KeySetKey187</span> <span class="s">{</span> | 
|  | 6104 6091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6105 6092   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6106 6093 | 
|  | 6107 6094   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6108 6095 <span class="s">}</span> | 
|  | 6109 6096 | 
|  | 6110 6097 <span class="c"># Generate 322 keyset key 188 value as 1/0 indicating its presence/absence or</span> | 
|  | 6111 6098 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6112 6099 <span class="c">#</span> | 
|  | 6113 6100 <span class="c"># Key 188 description: I=I</span> | 
|  | 6114 6101 <span class="c">#</span> | 
|  | 6115 <a name="_Generate322KeySetKey188-"></a>6102 <span class="k">sub </span><span class="m">_Generate322KeySetKey188</span> <span class="s">{</span> | 
|  | 6116 6103   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6117 6104   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6118 6105 | 
|  | 6119 6106   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6120 6107 <span class="s">}</span> | 
|  | 6121 6108 | 
|  | 6122 6109 <span class="c"># Generate 322 keyset key 189 value as 1/0 indicating its presence/absence or</span> | 
|  | 6123 6110 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6124 6111 <span class="c">#</span> | 
|  | 6125 6112 <span class="c"># Key 189 description: I=X</span> | 
|  | 6126 6113 <span class="c">#</span> | 
|  | 6127 <a name="_Generate322KeySetKey189-"></a>6114 <span class="k">sub </span><span class="m">_Generate322KeySetKey189</span> <span class="s">{</span> | 
|  | 6128 6115   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6129 6116   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6130 6117 | 
|  | 6131 6118   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6132 6119 <span class="s">}</span> | 
|  | 6133 6120 | 
|  | 6134 6121 <span class="c"># Generate 322 keyset key 190 value as 1/0 indicating its presence/absence or</span> | 
|  | 6135 6122 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6136 6123 <span class="c">#</span> | 
|  | 6137 6124 <span class="c"># Key 190 description: X=X</span> | 
|  | 6138 6125 <span class="c">#</span> | 
|  | 6139 <a name="_Generate322KeySetKey190-"></a>6126 <span class="k">sub </span><span class="m">_Generate322KeySetKey190</span> <span class="s">{</span> | 
|  | 6140 6127   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6141 6128   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'='</span><span class="sc">;</span> | 
|  | 6142 6129 | 
|  | 6143 6130   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Z'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6144 6131 <span class="s">}</span> | 
|  | 6145 6132 | 
|  | 6146 6133 <span class="c"># Generate 322 keyset key 191 value as 1/0 indicating its presence/absence or</span> | 
|  | 6147 6134 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6148 6135 <span class="c">#</span> | 
|  | 6149 6136 <span class="c"># Key 191 description: C#C</span> | 
|  | 6150 6137 <span class="c">#</span> | 
|  | 6151 <a name="_Generate322KeySetKey191-"></a>6138 <span class="k">sub </span><span class="m">_Generate322KeySetKey191</span> <span class="s">{</span> | 
|  | 6152 6139   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6153 6140   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6154 6141 | 
|  | 6155 6142   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6156 6143 <span class="s">}</span> | 
|  | 6157 6144 | 
|  | 6158 6145 <span class="c"># Generate 322 keyset key 192 value as 1/0 indicating its presence/absence or</span> | 
|  | 6159 6146 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6160 6147 <span class="c">#</span> | 
|  | 6161 6148 <span class="c"># Key 192 description: C#N</span> | 
|  | 6162 6149 <span class="c">#</span> | 
|  | 6163 <a name="_Generate322KeySetKey192-"></a>6150 <span class="k">sub </span><span class="m">_Generate322KeySetKey192</span> <span class="s">{</span> | 
|  | 6164 6151   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6165 6152   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6166 6153 | 
|  | 6167 6154   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6168 6155 <span class="s">}</span> | 
|  | 6169 6156 | 
|  | 6170 6157 <span class="c"># Generate 322 keyset key 193 value as 1/0 indicating its presence/absence or</span> | 
|  | 6171 6158 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6172 6159 <span class="c">#</span> | 
|  | 6173 6160 <span class="c"># Key 193 description: C#O</span> | 
|  | 6174 6161 <span class="c">#</span> | 
|  | 6175 <a name="_Generate322KeySetKey193-"></a>6162 <span class="k">sub </span><span class="m">_Generate322KeySetKey193</span> <span class="s">{</span> | 
|  | 6176 6163   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6177 6164   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6178 6165 | 
|  | 6179 6166   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6180 6167 <span class="s">}</span> | 
|  | 6181 6168 | 
|  | 6182 6169 <span class="c"># Generate 322 keyset key 194 value as 1/0 indicating its presence/absence or</span> | 
|  | 6183 6170 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6184 6171 <span class="c">#</span> | 
|  | 6185 6172 <span class="c"># Key 194 description: C#S</span> | 
|  | 6186 6173 <span class="c">#</span> | 
|  | 6187 <a name="_Generate322KeySetKey194-"></a>6174 <span class="k">sub </span><span class="m">_Generate322KeySetKey194</span> <span class="s">{</span> | 
|  | 6188 6175   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6189 6176   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6190 6177 | 
|  | 6191 6178   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6192 6179 <span class="s">}</span> | 
|  | 6193 6180 | 
|  | 6194 6181 <span class="c"># Generate 322 keyset key 195 value as 1/0 indicating its presence/absence or</span> | 
|  | 6195 6182 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6196 6183 <span class="c">#</span> | 
|  | 6197 6184 <span class="c"># Key 195 description: C#Cl</span> | 
|  | 6198 6185 <span class="c">#</span> | 
|  | 6199 <a name="_Generate322KeySetKey195-"></a>6186 <span class="k">sub </span><span class="m">_Generate322KeySetKey195</span> <span class="s">{</span> | 
|  | 6200 6187   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6201 6188   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6202 6189 | 
|  | 6203 6190   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6204 6191 <span class="s">}</span> | 
|  | 6205 6192 | 
|  | 6206 6193 <span class="c"># Generate 322 keyset key 196 value as 1/0 indicating its presence/absence or</span> | 
|  | 6207 6194 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6208 6195 <span class="c">#</span> | 
|  | 6209 6196 <span class="c"># Key 196 description: C#P</span> | 
|  | 6210 6197 <span class="c">#</span> | 
|  | 6211 <a name="_Generate322KeySetKey196-"></a>6198 <span class="k">sub </span><span class="m">_Generate322KeySetKey196</span> <span class="s">{</span> | 
|  | 6212 6199   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6213 6200   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6214 6201 | 
|  | 6215 6202   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6216 6203 <span class="s">}</span> | 
|  | 6217 6204 | 
|  | 6218 6205 <span class="c"># Generate 322 keyset key 197 value as 1/0 indicating its presence/absence or</span> | 
|  | 6219 6206 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6220 6207 <span class="c">#</span> | 
|  | 6221 6208 <span class="c"># Key 197 description: C#F</span> | 
|  | 6222 6209 <span class="c">#</span> | 
|  | 6223 <a name="_Generate322KeySetKey197-"></a>6210 <span class="k">sub </span><span class="m">_Generate322KeySetKey197</span> <span class="s">{</span> | 
|  | 6224 6211   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6225 6212   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6226 6213 | 
|  | 6227 6214   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6228 6215 <span class="s">}</span> | 
|  | 6229 6216 | 
|  | 6230 6217 <span class="c"># Generate 322 keyset key 198 value as 1/0 indicating its presence/absence or</span> | 
|  | 6231 6218 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6232 6219 <span class="c">#</span> | 
|  | 6233 6220 <span class="c"># Key 198 description: C#Br</span> | 
|  | 6234 6221 <span class="c">#</span> | 
|  | 6235 <a name="_Generate322KeySetKey198-"></a>6222 <span class="k">sub </span><span class="m">_Generate322KeySetKey198</span> <span class="s">{</span> | 
|  | 6236 6223   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6237 6224   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6238 6225 | 
|  | 6239 6226   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6240 6227 <span class="s">}</span> | 
|  | 6241 6228 | 
|  | 6242 6229 <span class="c"># Generate 322 keyset key 199 value as 1/0 indicating its presence/absence or</span> | 
|  | 6243 6230 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6244 6231 <span class="c">#</span> | 
|  | 6245 6232 <span class="c"># Key 199 description: C#Si</span> | 
|  | 6246 6233 <span class="c">#</span> | 
|  | 6247 <a name="_Generate322KeySetKey199-"></a>6234 <span class="k">sub </span><span class="m">_Generate322KeySetKey199</span> <span class="s">{</span> | 
|  | 6248 6235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6249 6236   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6250 6237 | 
|  | 6251 6238   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6252 6239 <span class="s">}</span> | 
|  | 6253 6240 | 
|  | 6254 6241 <span class="c"># Generate 322 keyset key 200 value as 1/0 indicating its presence/absence or</span> | 
|  | 6255 6242 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6256 6243 <span class="c">#</span> | 
|  | 6257 6244 <span class="c"># Key 200 description: C#I</span> | 
|  | 6258 6245 <span class="c">#</span> | 
|  | 6259 <a name="_Generate322KeySetKey200-"></a>6246 <span class="k">sub </span><span class="m">_Generate322KeySetKey200</span> <span class="s">{</span> | 
|  | 6260 6247   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6261 6248   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6262 6249 | 
|  | 6263 6250   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6264 6251 <span class="s">}</span> | 
|  | 6265 6252 | 
|  | 6266 6253 <span class="c"># Generate 322 keyset key 201 value as 1/0 indicating its presence/absence or</span> | 
|  | 6267 6254 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6268 6255 <span class="c">#</span> | 
|  | 6269 6256 <span class="c"># Key 201 description: C#X</span> | 
|  | 6270 6257 <span class="c">#</span> | 
|  | 6271 <a name="_Generate322KeySetKey201-"></a>6258 <span class="k">sub </span><span class="m">_Generate322KeySetKey201</span> <span class="s">{</span> | 
|  | 6272 6259   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6273 6260   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6274 6261 | 
|  | 6275 6262   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6276 6263 <span class="s">}</span> | 
|  | 6277 6264 | 
|  | 6278 6265 <span class="c"># Generate 322 keyset key 202 value as 1/0 indicating its presence/absence or</span> | 
|  | 6279 6266 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6280 6267 <span class="c">#</span> | 
|  | 6281 6268 <span class="c"># Key 202 description: N#N</span> | 
|  | 6282 6269 <span class="c">#</span> | 
|  | 6283 <a name="_Generate322KeySetKey202-"></a>6270 <span class="k">sub </span><span class="m">_Generate322KeySetKey202</span> <span class="s">{</span> | 
|  | 6284 6271   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6285 6272   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6286 6273 | 
|  | 6287 6274   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6288 6275 <span class="s">}</span> | 
|  | 6289 6276 | 
|  | 6290 6277 <span class="c"># Generate 322 keyset key 203 value as 1/0 indicating its presence/absence or</span> | 
|  | 6291 6278 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6292 6279 <span class="c">#</span> | 
|  | 6293 6280 <span class="c"># Key 203 description: N#O</span> | 
|  | 6294 6281 <span class="c">#</span> | 
|  | 6295 <a name="_Generate322KeySetKey203-"></a>6282 <span class="k">sub </span><span class="m">_Generate322KeySetKey203</span> <span class="s">{</span> | 
|  | 6296 6283   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6297 6284   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6298 6285 | 
|  | 6299 6286   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6300 6287 <span class="s">}</span> | 
|  | 6301 6288 | 
|  | 6302 6289 <span class="c"># Generate 322 keyset key 204 value as 1/0 indicating its presence/absence or</span> | 
|  | 6303 6290 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6304 6291 <span class="c">#</span> | 
|  | 6305 6292 <span class="c"># Key 204 description: N#S</span> | 
|  | 6306 6293 <span class="c">#</span> | 
|  | 6307 <a name="_Generate322KeySetKey204-"></a>6294 <span class="k">sub </span><span class="m">_Generate322KeySetKey204</span> <span class="s">{</span> | 
|  | 6308 6295   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6309 6296   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6310 6297 | 
|  | 6311 6298   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6312 6299 <span class="s">}</span> | 
|  | 6313 6300 | 
|  | 6314 6301 <span class="c"># Generate 322 keyset key 205 value as 1/0 indicating its presence/absence or</span> | 
|  | 6315 6302 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6316 6303 <span class="c">#</span> | 
|  | 6317 6304 <span class="c"># Key 205 description: N#Cl</span> | 
|  | 6318 6305 <span class="c">#</span> | 
|  | 6319 <a name="_Generate322KeySetKey205-"></a>6306 <span class="k">sub </span><span class="m">_Generate322KeySetKey205</span> <span class="s">{</span> | 
|  | 6320 6307   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6321 6308   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6322 6309 | 
|  | 6323 6310   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6324 6311 <span class="s">}</span> | 
|  | 6325 6312 | 
|  | 6326 6313 <span class="c"># Generate 322 keyset key 206 value as 1/0 indicating its presence/absence or</span> | 
|  | 6327 6314 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6328 6315 <span class="c">#</span> | 
|  | 6329 6316 <span class="c"># Key 206 description: N#P</span> | 
|  | 6330 6317 <span class="c">#</span> | 
|  | 6331 <a name="_Generate322KeySetKey206-"></a>6318 <span class="k">sub </span><span class="m">_Generate322KeySetKey206</span> <span class="s">{</span> | 
|  | 6332 6319   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6333 6320   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6334 6321 | 
|  | 6335 6322   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6336 6323 <span class="s">}</span> | 
|  | 6337 6324 | 
|  | 6338 6325 <span class="c"># Generate 322 keyset key 207 value as 1/0 indicating its presence/absence or</span> | 
|  | 6339 6326 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6340 6327 <span class="c">#</span> | 
|  | 6341 6328 <span class="c"># Key 207 description: N#F</span> | 
|  | 6342 6329 <span class="c">#</span> | 
|  | 6343 <a name="_Generate322KeySetKey207-"></a>6330 <span class="k">sub </span><span class="m">_Generate322KeySetKey207</span> <span class="s">{</span> | 
|  | 6344 6331   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6345 6332   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6346 6333 | 
|  | 6347 6334   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6348 6335 <span class="s">}</span> | 
|  | 6349 6336 | 
|  | 6350 6337 <span class="c"># Generate 322 keyset key 208 value as 1/0 indicating its presence/absence or</span> | 
|  | 6351 6338 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6352 6339 <span class="c">#</span> | 
|  | 6353 6340 <span class="c"># Key 208 description: N#Br</span> | 
|  | 6354 6341 <span class="c">#</span> | 
|  | 6355 <a name="_Generate322KeySetKey208-"></a>6342 <span class="k">sub </span><span class="m">_Generate322KeySetKey208</span> <span class="s">{</span> | 
|  | 6356 6343   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6357 6344   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6358 6345 | 
|  | 6359 6346   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6360 6347 <span class="s">}</span> | 
|  | 6361 6348 | 
|  | 6362 6349 <span class="c"># Generate 322 keyset key 209 value as 1/0 indicating its presence/absence or</span> | 
|  | 6363 6350 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6364 6351 <span class="c">#</span> | 
|  | 6365 6352 <span class="c"># Key 209 description: N#Si</span> | 
|  | 6366 6353 <span class="c">#</span> | 
|  | 6367 <a name="_Generate322KeySetKey209-"></a>6354 <span class="k">sub </span><span class="m">_Generate322KeySetKey209</span> <span class="s">{</span> | 
|  | 6368 6355   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6369 6356   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6370 6357 | 
|  | 6371 6358   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6372 6359 <span class="s">}</span> | 
|  | 6373 6360 | 
|  | 6374 6361 <span class="c"># Generate 322 keyset key 210 value as 1/0 indicating its presence/absence or</span> | 
|  | 6375 6362 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6376 6363 <span class="c">#</span> | 
|  | 6377 6364 <span class="c"># Key 210 description: N#I</span> | 
|  | 6378 6365 <span class="c">#</span> | 
|  | 6379 <a name="_Generate322KeySetKey210-"></a>6366 <span class="k">sub </span><span class="m">_Generate322KeySetKey210</span> <span class="s">{</span> | 
|  | 6380 6367   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6381 6368   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6382 6369 | 
|  | 6383 6370   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6384 6371 <span class="s">}</span> | 
|  | 6385 6372 | 
|  | 6386 6373 <span class="c"># Generate 322 keyset key 211 value as 1/0 indicating its presence/absence or</span> | 
|  | 6387 6374 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6388 6375 <span class="c">#</span> | 
|  | 6389 6376 <span class="c"># Key 211 description: N#X</span> | 
|  | 6390 6377 <span class="c">#</span> | 
|  | 6391 <a name="_Generate322KeySetKey211-"></a>6378 <span class="k">sub </span><span class="m">_Generate322KeySetKey211</span> <span class="s">{</span> | 
|  | 6392 6379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6393 6380   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6394 6381 | 
|  | 6395 6382   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6396 6383 <span class="s">}</span> | 
|  | 6397 6384 | 
|  | 6398 6385 <span class="c"># Generate 322 keyset key 212 value as 1/0 indicating its presence/absence or</span> | 
|  | 6399 6386 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6400 6387 <span class="c">#</span> | 
|  | 6401 6388 <span class="c"># Key 212 description: O#O</span> | 
|  | 6402 6389 <span class="c">#</span> | 
|  | 6403 <a name="_Generate322KeySetKey212-"></a>6390 <span class="k">sub </span><span class="m">_Generate322KeySetKey212</span> <span class="s">{</span> | 
|  | 6404 6391   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6405 6392   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6406 6393 | 
|  | 6407 6394   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6408 6395 <span class="s">}</span> | 
|  | 6409 6396 | 
|  | 6410 6397 <span class="c"># Generate 322 keyset key 213 value as 1/0 indicating its presence/absence or</span> | 
|  | 6411 6398 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6412 6399 <span class="c">#</span> | 
|  | 6413 6400 <span class="c"># Key 213 description: O#S</span> | 
|  | 6414 6401 <span class="c">#</span> | 
|  | 6415 <a name="_Generate322KeySetKey213-"></a>6402 <span class="k">sub </span><span class="m">_Generate322KeySetKey213</span> <span class="s">{</span> | 
|  | 6416 6403   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6417 6404   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6418 6405 | 
|  | 6419 6406   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6420 6407 <span class="s">}</span> | 
|  | 6421 6408 | 
|  | 6422 6409 <span class="c"># Generate 322 keyset key 214 value as 1/0 indicating its presence/absence or</span> | 
|  | 6423 6410 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6424 6411 <span class="c">#</span> | 
|  | 6425 6412 <span class="c"># Key 214 description: O#Cl</span> | 
|  | 6426 6413 <span class="c">#</span> | 
|  | 6427 <a name="_Generate322KeySetKey214-"></a>6414 <span class="k">sub </span><span class="m">_Generate322KeySetKey214</span> <span class="s">{</span> | 
|  | 6428 6415   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6429 6416   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6430 6417 | 
|  | 6431 6418   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6432 6419 <span class="s">}</span> | 
|  | 6433 6420 | 
|  | 6434 6421 <span class="c"># Generate 322 keyset key 215 value as 1/0 indicating its presence/absence or</span> | 
|  | 6435 6422 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6436 6423 <span class="c">#</span> | 
|  | 6437 6424 <span class="c"># Key 215 description: O#P</span> | 
|  | 6438 6425 <span class="c">#</span> | 
|  | 6439 <a name="_Generate322KeySetKey215-"></a>6426 <span class="k">sub </span><span class="m">_Generate322KeySetKey215</span> <span class="s">{</span> | 
|  | 6440 6427   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6441 6428   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6442 6429 | 
|  | 6443 6430   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6444 6431 <span class="s">}</span> | 
|  | 6445 6432 | 
|  | 6446 6433 <span class="c"># Generate 322 keyset key 216 value as 1/0 indicating its presence/absence or</span> | 
|  | 6447 6434 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6448 6435 <span class="c">#</span> | 
|  | 6449 6436 <span class="c"># Key 216 description: O#F</span> | 
|  | 6450 6437 <span class="c">#</span> | 
|  | 6451 <a name="_Generate322KeySetKey216-"></a>6438 <span class="k">sub </span><span class="m">_Generate322KeySetKey216</span> <span class="s">{</span> | 
|  | 6452 6439   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6453 6440   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6454 6441 | 
|  | 6455 6442   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6456 6443 <span class="s">}</span> | 
|  | 6457 6444 | 
|  | 6458 6445 <span class="c"># Generate 322 keyset key 217 value as 1/0 indicating its presence/absence or</span> | 
|  | 6459 6446 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6460 6447 <span class="c">#</span> | 
|  | 6461 6448 <span class="c"># Key 217 description: O#Br</span> | 
|  | 6462 6449 <span class="c">#</span> | 
|  | 6463 <a name="_Generate322KeySetKey217-"></a>6450 <span class="k">sub </span><span class="m">_Generate322KeySetKey217</span> <span class="s">{</span> | 
|  | 6464 6451   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6465 6452   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6466 6453 | 
|  | 6467 6454   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6468 6455 <span class="s">}</span> | 
|  | 6469 6456 | 
|  | 6470 6457 <span class="c"># Generate 322 keyset key 218 value as 1/0 indicating its presence/absence or</span> | 
|  | 6471 6458 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6472 6459 <span class="c">#</span> | 
|  | 6473 6460 <span class="c"># Key 218 description: O#Si</span> | 
|  | 6474 6461 <span class="c">#</span> | 
|  | 6475 <a name="_Generate322KeySetKey218-"></a>6462 <span class="k">sub </span><span class="m">_Generate322KeySetKey218</span> <span class="s">{</span> | 
|  | 6476 6463   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6477 6464   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6478 6465 | 
|  | 6479 6466   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6480 6467 <span class="s">}</span> | 
|  | 6481 6468 | 
|  | 6482 6469 <span class="c"># Generate 322 keyset key 219 value as 1/0 indicating its presence/absence or</span> | 
|  | 6483 6470 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6484 6471 <span class="c">#</span> | 
|  | 6485 6472 <span class="c"># Key 219 description: O#I</span> | 
|  | 6486 6473 <span class="c">#</span> | 
|  | 6487 <a name="_Generate322KeySetKey219-"></a>6474 <span class="k">sub </span><span class="m">_Generate322KeySetKey219</span> <span class="s">{</span> | 
|  | 6488 6475   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6489 6476   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6490 6477 | 
|  | 6491 6478   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6492 6479 <span class="s">}</span> | 
|  | 6493 6480 | 
|  | 6494 6481 <span class="c"># Generate 322 keyset key 220 value as 1/0 indicating its presence/absence or</span> | 
|  | 6495 6482 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6496 6483 <span class="c">#</span> | 
|  | 6497 6484 <span class="c"># Key 220 description: O#X</span> | 
|  | 6498 6485 <span class="c">#</span> | 
|  | 6499 <a name="_Generate322KeySetKey220-"></a>6486 <span class="k">sub </span><span class="m">_Generate322KeySetKey220</span> <span class="s">{</span> | 
|  | 6500 6487   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6501 6488   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6502 6489 | 
|  | 6503 6490   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6504 6491 <span class="s">}</span> | 
|  | 6505 6492 | 
|  | 6506 6493 <span class="c"># Generate 322 keyset key 221 value as 1/0 indicating its presence/absence or</span> | 
|  | 6507 6494 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6508 6495 <span class="c">#</span> | 
|  | 6509 6496 <span class="c"># Key 221 description: S#S</span> | 
|  | 6510 6497 <span class="c">#</span> | 
|  | 6511 <a name="_Generate322KeySetKey221-"></a>6498 <span class="k">sub </span><span class="m">_Generate322KeySetKey221</span> <span class="s">{</span> | 
|  | 6512 6499   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6513 6500   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6514 6501 | 
|  | 6515 6502   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6516 6503 <span class="s">}</span> | 
|  | 6517 6504 | 
|  | 6518 6505 <span class="c"># Generate 322 keyset key 222 value as 1/0 indicating its presence/absence or</span> | 
|  | 6519 6506 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6520 6507 <span class="c">#</span> | 
|  | 6521 6508 <span class="c"># Key 222 description: S#Cl</span> | 
|  | 6522 6509 <span class="c">#</span> | 
|  | 6523 <a name="_Generate322KeySetKey222-"></a>6510 <span class="k">sub </span><span class="m">_Generate322KeySetKey222</span> <span class="s">{</span> | 
|  | 6524 6511   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6525 6512   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6526 6513 | 
|  | 6527 6514   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6528 6515 <span class="s">}</span> | 
|  | 6529 6516 | 
|  | 6530 6517 <span class="c"># Generate 322 keyset key 223 value as 1/0 indicating its presence/absence or</span> | 
|  | 6531 6518 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6532 6519 <span class="c">#</span> | 
|  | 6533 6520 <span class="c"># Key 223 description: S#P</span> | 
|  | 6534 6521 <span class="c">#</span> | 
|  | 6535 <a name="_Generate322KeySetKey223-"></a>6522 <span class="k">sub </span><span class="m">_Generate322KeySetKey223</span> <span class="s">{</span> | 
|  | 6536 6523   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6537 6524   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6538 6525 | 
|  | 6539 6526   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6540 6527 <span class="s">}</span> | 
|  | 6541 6528 | 
|  | 6542 6529 <span class="c"># Generate 322 keyset key 224 value as 1/0 indicating its presence/absence or</span> | 
|  | 6543 6530 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6544 6531 <span class="c">#</span> | 
|  | 6545 6532 <span class="c"># Key 224 description: S#F</span> | 
|  | 6546 6533 <span class="c">#</span> | 
|  | 6547 <a name="_Generate322KeySetKey224-"></a>6534 <span class="k">sub </span><span class="m">_Generate322KeySetKey224</span> <span class="s">{</span> | 
|  | 6548 6535   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6549 6536   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6550 6537 | 
|  | 6551 6538   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6552 6539 <span class="s">}</span> | 
|  | 6553 6540 | 
|  | 6554 6541 <span class="c"># Generate 322 keyset key 225 value as 1/0 indicating its presence/absence or</span> | 
|  | 6555 6542 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6556 6543 <span class="c">#</span> | 
|  | 6557 6544 <span class="c"># Key 225 description: S#Br</span> | 
|  | 6558 6545 <span class="c">#</span> | 
|  | 6559 <a name="_Generate322KeySetKey225-"></a>6546 <span class="k">sub </span><span class="m">_Generate322KeySetKey225</span> <span class="s">{</span> | 
|  | 6560 6547   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6561 6548   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6562 6549 | 
|  | 6563 6550   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6564 6551 <span class="s">}</span> | 
|  | 6565 6552 | 
|  | 6566 6553 <span class="c"># Generate 322 keyset key 226 value as 1/0 indicating its presence/absence or</span> | 
|  | 6567 6554 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6568 6555 <span class="c">#</span> | 
|  | 6569 6556 <span class="c"># Key 226 description: S#Si</span> | 
|  | 6570 6557 <span class="c">#</span> | 
|  | 6571 <a name="_Generate322KeySetKey226-"></a>6558 <span class="k">sub </span><span class="m">_Generate322KeySetKey226</span> <span class="s">{</span> | 
|  | 6572 6559   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6573 6560   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6574 6561 | 
|  | 6575 6562   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6576 6563 <span class="s">}</span> | 
|  | 6577 6564 | 
|  | 6578 6565 <span class="c"># Generate 322 keyset key 227 value as 1/0 indicating its presence/absence or</span> | 
|  | 6579 6566 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6580 6567 <span class="c">#</span> | 
|  | 6581 6568 <span class="c"># Key 227 description: S#I</span> | 
|  | 6582 6569 <span class="c">#</span> | 
|  | 6583 <a name="_Generate322KeySetKey227-"></a>6570 <span class="k">sub </span><span class="m">_Generate322KeySetKey227</span> <span class="s">{</span> | 
|  | 6584 6571   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6585 6572   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6586 6573 | 
|  | 6587 6574   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6588 6575 <span class="s">}</span> | 
|  | 6589 6576 | 
|  | 6590 6577 <span class="c"># Generate 322 keyset key 228 value as 1/0 indicating its presence/absence or</span> | 
|  | 6591 6578 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6592 6579 <span class="c">#</span> | 
|  | 6593 6580 <span class="c"># Key 228 description: S#X</span> | 
|  | 6594 6581 <span class="c">#</span> | 
|  | 6595 <a name="_Generate322KeySetKey228-"></a>6582 <span class="k">sub </span><span class="m">_Generate322KeySetKey228</span> <span class="s">{</span> | 
|  | 6596 6583   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6597 6584   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6598 6585 | 
|  | 6599 6586   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6600 6587 <span class="s">}</span> | 
|  | 6601 6588 | 
|  | 6602 6589 <span class="c"># Generate 322 keyset key 229 value as 1/0 indicating its presence/absence or</span> | 
|  | 6603 6590 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6604 6591 <span class="c">#</span> | 
|  | 6605 6592 <span class="c"># Key 229 description: Cl#Cl</span> | 
|  | 6606 6593 <span class="c">#</span> | 
|  | 6607 <a name="_Generate322KeySetKey229-"></a>6594 <span class="k">sub </span><span class="m">_Generate322KeySetKey229</span> <span class="s">{</span> | 
|  | 6608 6595   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6609 6596   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6610 6597 | 
|  | 6611 6598   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6612 6599 <span class="s">}</span> | 
|  | 6613 6600 | 
|  | 6614 6601 <span class="c"># Generate 322 keyset key 230 value as 1/0 indicating its presence/absence or</span> | 
|  | 6615 6602 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6616 6603 <span class="c">#</span> | 
|  | 6617 6604 <span class="c"># Key 230 description: Cl#P</span> | 
|  | 6618 6605 <span class="c">#</span> | 
|  | 6619 <a name="_Generate322KeySetKey230-"></a>6606 <span class="k">sub </span><span class="m">_Generate322KeySetKey230</span> <span class="s">{</span> | 
|  | 6620 6607   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6621 6608   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6622 6609 | 
|  | 6623 6610   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6624 6611 <span class="s">}</span> | 
|  | 6625 6612 | 
|  | 6626 6613 <span class="c"># Generate 322 keyset key 231 value as 1/0 indicating its presence/absence or</span> | 
|  | 6627 6614 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6628 6615 <span class="c">#</span> | 
|  | 6629 6616 <span class="c"># Key 231 description: Cl#F</span> | 
|  | 6630 6617 <span class="c">#</span> | 
|  | 6631 <a name="_Generate322KeySetKey231-"></a>6618 <span class="k">sub </span><span class="m">_Generate322KeySetKey231</span> <span class="s">{</span> | 
|  | 6632 6619   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6633 6620   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6634 6621 | 
|  | 6635 6622   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6636 6623 <span class="s">}</span> | 
|  | 6637 6624 | 
|  | 6638 6625 <span class="c"># Generate 322 keyset key 232 value as 1/0 indicating its presence/absence or</span> | 
|  | 6639 6626 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6640 6627 <span class="c">#</span> | 
|  | 6641 6628 <span class="c"># Key 232 description: Cl#Br</span> | 
|  | 6642 6629 <span class="c">#</span> | 
|  | 6643 <a name="_Generate322KeySetKey232-"></a>6630 <span class="k">sub </span><span class="m">_Generate322KeySetKey232</span> <span class="s">{</span> | 
|  | 6644 6631   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6645 6632   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6646 6633 | 
|  | 6647 6634   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6648 6635 <span class="s">}</span> | 
|  | 6649 6636 | 
|  | 6650 6637 <span class="c"># Generate 322 keyset key 233 value as 1/0 indicating its presence/absence or</span> | 
|  | 6651 6638 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6652 6639 <span class="c">#</span> | 
|  | 6653 6640 <span class="c"># Key 233 description: Cl#Si</span> | 
|  | 6654 6641 <span class="c">#</span> | 
|  | 6655 <a name="_Generate322KeySetKey233-"></a>6642 <span class="k">sub </span><span class="m">_Generate322KeySetKey233</span> <span class="s">{</span> | 
|  | 6656 6643   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6657 6644   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6658 6645 | 
|  | 6659 6646   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6660 6647 <span class="s">}</span> | 
|  | 6661 6648 | 
|  | 6662 6649 <span class="c"># Generate 322 keyset key 234 value as 1/0 indicating its presence/absence or</span> | 
|  | 6663 6650 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6664 6651 <span class="c">#</span> | 
|  | 6665 6652 <span class="c"># Key 234 description: Cl#I</span> | 
|  | 6666 6653 <span class="c">#</span> | 
|  | 6667 <a name="_Generate322KeySetKey234-"></a>6654 <span class="k">sub </span><span class="m">_Generate322KeySetKey234</span> <span class="s">{</span> | 
|  | 6668 6655   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6669 6656   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6670 6657 | 
|  | 6671 6658   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6672 6659 <span class="s">}</span> | 
|  | 6673 6660 | 
|  | 6674 6661 <span class="c"># Generate 322 keyset key 235 value as 1/0 indicating its presence/absence or</span> | 
|  | 6675 6662 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6676 6663 <span class="c">#</span> | 
|  | 6677 6664 <span class="c"># Key 235 description: Cl#X</span> | 
|  | 6678 6665 <span class="c">#</span> | 
|  | 6679 <a name="_Generate322KeySetKey235-"></a>6666 <span class="k">sub </span><span class="m">_Generate322KeySetKey235</span> <span class="s">{</span> | 
|  | 6680 6667   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6681 6668   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6682 6669 | 
|  | 6683 6670   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6684 6671 <span class="s">}</span> | 
|  | 6685 6672 | 
|  | 6686 6673 <span class="c"># Generate 322 keyset key 236 value as 1/0 indicating its presence/absence or</span> | 
|  | 6687 6674 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6688 6675 <span class="c">#</span> | 
|  | 6689 6676 <span class="c"># Key 236 description: P#P</span> | 
|  | 6690 6677 <span class="c">#</span> | 
|  | 6691 <a name="_Generate322KeySetKey236-"></a>6678 <span class="k">sub </span><span class="m">_Generate322KeySetKey236</span> <span class="s">{</span> | 
|  | 6692 6679   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6693 6680   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6694 6681 | 
|  | 6695 6682   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6696 6683 <span class="s">}</span> | 
|  | 6697 6684 | 
|  | 6698 6685 <span class="c"># Generate 322 keyset key 237 value as 1/0 indicating its presence/absence or</span> | 
|  | 6699 6686 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6700 6687 <span class="c">#</span> | 
|  | 6701 6688 <span class="c"># Key 237 description: P#F</span> | 
|  | 6702 6689 <span class="c">#</span> | 
|  | 6703 <a name="_Generate322KeySetKey237-"></a>6690 <span class="k">sub </span><span class="m">_Generate322KeySetKey237</span> <span class="s">{</span> | 
|  | 6704 6691   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6705 6692   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6706 6693 | 
|  | 6707 6694   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6708 6695 <span class="s">}</span> | 
|  | 6709 6696 | 
|  | 6710 6697 <span class="c"># Generate 322 keyset key 238 value as 1/0 indicating its presence/absence or</span> | 
|  | 6711 6698 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6712 6699 <span class="c">#</span> | 
|  | 6713 6700 <span class="c"># Key 238 description: P#Br</span> | 
|  | 6714 6701 <span class="c">#</span> | 
|  | 6715 <a name="_Generate322KeySetKey238-"></a>6702 <span class="k">sub </span><span class="m">_Generate322KeySetKey238</span> <span class="s">{</span> | 
|  | 6716 6703   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6717 6704   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6718 6705 | 
|  | 6719 6706   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6720 6707 <span class="s">}</span> | 
|  | 6721 6708 | 
|  | 6722 6709 <span class="c"># Generate 322 keyset key 239 value as 1/0 indicating its presence/absence or</span> | 
|  | 6723 6710 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6724 6711 <span class="c">#</span> | 
|  | 6725 6712 <span class="c"># Key 239 description: P#Si</span> | 
|  | 6726 6713 <span class="c">#</span> | 
|  | 6727 <a name="_Generate322KeySetKey239-"></a>6714 <span class="k">sub </span><span class="m">_Generate322KeySetKey239</span> <span class="s">{</span> | 
|  | 6728 6715   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6729 6716   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6730 6717 | 
|  | 6731 6718   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6732 6719 <span class="s">}</span> | 
|  | 6733 6720 | 
|  | 6734 6721 <span class="c"># Generate 322 keyset key 240 value as 1/0 indicating its presence/absence or</span> | 
|  | 6735 6722 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6736 6723 <span class="c">#</span> | 
|  | 6737 6724 <span class="c"># Key 240 description: P#I</span> | 
|  | 6738 6725 <span class="c">#</span> | 
|  | 6739 <a name="_Generate322KeySetKey240-"></a>6726 <span class="k">sub </span><span class="m">_Generate322KeySetKey240</span> <span class="s">{</span> | 
|  | 6740 6727   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6741 6728   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6742 6729 | 
|  | 6743 6730   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6744 6731 <span class="s">}</span> | 
|  | 6745 6732 | 
|  | 6746 6733 <span class="c"># Generate 322 keyset key 241 value as 1/0 indicating its presence/absence or</span> | 
|  | 6747 6734 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6748 6735 <span class="c">#</span> | 
|  | 6749 6736 <span class="c"># Key 241 description: P#X</span> | 
|  | 6750 6737 <span class="c">#</span> | 
|  | 6751 <a name="_Generate322KeySetKey241-"></a>6738 <span class="k">sub </span><span class="m">_Generate322KeySetKey241</span> <span class="s">{</span> | 
|  | 6752 6739   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6753 6740   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6754 6741 | 
|  | 6755 6742   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6756 6743 <span class="s">}</span> | 
|  | 6757 6744 | 
|  | 6758 6745 <span class="c"># Generate 322 keyset key 242 value as 1/0 indicating its presence/absence or</span> | 
|  | 6759 6746 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6760 6747 <span class="c">#</span> | 
|  | 6761 6748 <span class="c"># Key 242 description: F#F</span> | 
|  | 6762 6749 <span class="c">#</span> | 
|  | 6763 <a name="_Generate322KeySetKey242-"></a>6750 <span class="k">sub </span><span class="m">_Generate322KeySetKey242</span> <span class="s">{</span> | 
|  | 6764 6751   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6765 6752   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6766 6753 | 
|  | 6767 6754   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6768 6755 <span class="s">}</span> | 
|  | 6769 6756 | 
|  | 6770 6757 <span class="c"># Generate 322 keyset key 243 value as 1/0 indicating its presence/absence or</span> | 
|  | 6771 6758 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6772 6759 <span class="c">#</span> | 
|  | 6773 6760 <span class="c"># Key 243 description: F#Br</span> | 
|  | 6774 6761 <span class="c">#</span> | 
|  | 6775 <a name="_Generate322KeySetKey243-"></a>6762 <span class="k">sub </span><span class="m">_Generate322KeySetKey243</span> <span class="s">{</span> | 
|  | 6776 6763   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6777 6764   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6778 6765 | 
|  | 6779 6766   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6780 6767 <span class="s">}</span> | 
|  | 6781 6768 | 
|  | 6782 6769 <span class="c"># Generate 322 keyset key 244 value as 1/0 indicating its presence/absence or</span> | 
|  | 6783 6770 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6784 6771 <span class="c">#</span> | 
|  | 6785 6772 <span class="c"># Key 244 description: F#Si</span> | 
|  | 6786 6773 <span class="c">#</span> | 
|  | 6787 <a name="_Generate322KeySetKey244-"></a>6774 <span class="k">sub </span><span class="m">_Generate322KeySetKey244</span> <span class="s">{</span> | 
|  | 6788 6775   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6789 6776   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6790 6777 | 
|  | 6791 6778   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6792 6779 <span class="s">}</span> | 
|  | 6793 6780 | 
|  | 6794 6781 <span class="c"># Generate 322 keyset key 245 value as 1/0 indicating its presence/absence or</span> | 
|  | 6795 6782 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6796 6783 <span class="c">#</span> | 
|  | 6797 6784 <span class="c"># Key 245 description: F#I</span> | 
|  | 6798 6785 <span class="c">#</span> | 
|  | 6799 <a name="_Generate322KeySetKey245-"></a>6786 <span class="k">sub </span><span class="m">_Generate322KeySetKey245</span> <span class="s">{</span> | 
|  | 6800 6787   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6801 6788   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6802 6789 | 
|  | 6803 6790   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6804 6791 <span class="s">}</span> | 
|  | 6805 6792 | 
|  | 6806 6793 <span class="c"># Generate 322 keyset key 246 value as 1/0 indicating its presence/absence or</span> | 
|  | 6807 6794 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6808 6795 <span class="c">#</span> | 
|  | 6809 6796 <span class="c"># Key 246 description: F#X</span> | 
|  | 6810 6797 <span class="c">#</span> | 
|  | 6811 <a name="_Generate322KeySetKey246-"></a>6798 <span class="k">sub </span><span class="m">_Generate322KeySetKey246</span> <span class="s">{</span> | 
|  | 6812 6799   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6813 6800   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6814 6801 | 
|  | 6815 6802   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6816 6803 <span class="s">}</span> | 
|  | 6817 6804 | 
|  | 6818 6805 <span class="c"># Generate 322 keyset key 247 value as 1/0 indicating its presence/absence or</span> | 
|  | 6819 6806 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6820 6807 <span class="c">#</span> | 
|  | 6821 6808 <span class="c"># Key 247 description: Br#Br</span> | 
|  | 6822 6809 <span class="c">#</span> | 
|  | 6823 <a name="_Generate322KeySetKey247-"></a>6810 <span class="k">sub </span><span class="m">_Generate322KeySetKey247</span> <span class="s">{</span> | 
|  | 6824 6811   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6825 6812   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6826 6813 | 
|  | 6827 6814   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6828 6815 <span class="s">}</span> | 
|  | 6829 6816 | 
|  | 6830 6817 <span class="c"># Generate 322 keyset key 248 value as 1/0 indicating its presence/absence or</span> | 
|  | 6831 6818 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6832 6819 <span class="c">#</span> | 
|  | 6833 6820 <span class="c"># Key 248 description: Br#Si</span> | 
|  | 6834 6821 <span class="c">#</span> | 
|  | 6835 <a name="_Generate322KeySetKey248-"></a>6822 <span class="k">sub </span><span class="m">_Generate322KeySetKey248</span> <span class="s">{</span> | 
|  | 6836 6823   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6837 6824   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6838 6825 | 
|  | 6839 6826   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6840 6827 <span class="s">}</span> | 
|  | 6841 6828 | 
|  | 6842 6829 <span class="c"># Generate 322 keyset key 249 value as 1/0 indicating its presence/absence or</span> | 
|  | 6843 6830 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6844 6831 <span class="c">#</span> | 
|  | 6845 6832 <span class="c"># Key 249 description: Br#I</span> | 
|  | 6846 6833 <span class="c">#</span> | 
|  | 6847 <a name="_Generate322KeySetKey249-"></a>6834 <span class="k">sub </span><span class="m">_Generate322KeySetKey249</span> <span class="s">{</span> | 
|  | 6848 6835   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6849 6836   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6850 6837 | 
|  | 6851 6838   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6852 6839 <span class="s">}</span> | 
|  | 6853 6840 | 
|  | 6854 6841 <span class="c"># Generate 322 keyset key 250 value as 1/0 indicating its presence/absence or</span> | 
|  | 6855 6842 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6856 6843 <span class="c">#</span> | 
|  | 6857 6844 <span class="c"># Key 250 description: Br#X</span> | 
|  | 6858 6845 <span class="c">#</span> | 
|  | 6859 <a name="_Generate322KeySetKey250-"></a>6846 <span class="k">sub </span><span class="m">_Generate322KeySetKey250</span> <span class="s">{</span> | 
|  | 6860 6847   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6861 6848   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6862 6849 | 
|  | 6863 6850   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6864 6851 <span class="s">}</span> | 
|  | 6865 6852 | 
|  | 6866 6853 <span class="c"># Generate 322 keyset key 251 value as 1/0 indicating its presence/absence or</span> | 
|  | 6867 6854 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6868 6855 <span class="c">#</span> | 
|  | 6869 6856 <span class="c"># Key 251 description: Si#Si</span> | 
|  | 6870 6857 <span class="c">#</span> | 
|  | 6871 <a name="_Generate322KeySetKey251-"></a>6858 <span class="k">sub </span><span class="m">_Generate322KeySetKey251</span> <span class="s">{</span> | 
|  | 6872 6859   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6873 6860   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6874 6861 | 
|  | 6875 6862   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6876 6863 <span class="s">}</span> | 
|  | 6877 6864 | 
|  | 6878 6865 <span class="c"># Generate 322 keyset key 252 value as 1/0 indicating its presence/absence or</span> | 
|  | 6879 6866 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6880 6867 <span class="c">#</span> | 
|  | 6881 6868 <span class="c"># Key 252 description: Si#I</span> | 
|  | 6882 6869 <span class="c">#</span> | 
|  | 6883 <a name="_Generate322KeySetKey252-"></a>6870 <span class="k">sub </span><span class="m">_Generate322KeySetKey252</span> <span class="s">{</span> | 
|  | 6884 6871   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6885 6872   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6886 6873 | 
|  | 6887 6874   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6888 6875 <span class="s">}</span> | 
|  | 6889 6876 | 
|  | 6890 6877 <span class="c"># Generate 322 keyset key 253 value as 1/0 indicating its presence/absence or</span> | 
|  | 6891 6878 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6892 6879 <span class="c">#</span> | 
|  | 6893 6880 <span class="c"># Key 253 description: Si#X</span> | 
|  | 6894 6881 <span class="c">#</span> | 
|  | 6895 <a name="_Generate322KeySetKey253-"></a>6882 <span class="k">sub </span><span class="m">_Generate322KeySetKey253</span> <span class="s">{</span> | 
|  | 6896 6883   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6897 6884   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6898 6885 | 
|  | 6899 6886   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6900 6887 <span class="s">}</span> | 
|  | 6901 6888 | 
|  | 6902 6889 <span class="c"># Generate 322 keyset key 254 value as 1/0 indicating its presence/absence or</span> | 
|  | 6903 6890 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6904 6891 <span class="c">#</span> | 
|  | 6905 6892 <span class="c"># Key 254 description: I#I</span> | 
|  | 6906 6893 <span class="c">#</span> | 
|  | 6907 <a name="_Generate322KeySetKey254-"></a>6894 <span class="k">sub </span><span class="m">_Generate322KeySetKey254</span> <span class="s">{</span> | 
|  | 6908 6895   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6909 6896   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6910 6897 | 
|  | 6911 6898   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6912 6899 <span class="s">}</span> | 
|  | 6913 6900 | 
|  | 6914 6901 <span class="c"># Generate 322 keyset key 255 value as 1/0 indicating its presence/absence or</span> | 
|  | 6915 6902 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6916 6903 <span class="c">#</span> | 
|  | 6917 6904 <span class="c"># Key 255 description: I#X</span> | 
|  | 6918 6905 <span class="c">#</span> | 
|  | 6919 <a name="_Generate322KeySetKey255-"></a>6906 <span class="k">sub </span><span class="m">_Generate322KeySetKey255</span> <span class="s">{</span> | 
|  | 6920 6907   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6921 6908   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6922 6909 | 
|  | 6923 6910   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6924 6911 <span class="s">}</span> | 
|  | 6925 6912 | 
|  | 6926 6913 <span class="c"># Generate 322 keyset key 256 value as 1/0 indicating its presence/absence or</span> | 
|  | 6927 6914 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6928 6915 <span class="c">#</span> | 
|  | 6929 6916 <span class="c"># Key 256 description: X#X</span> | 
|  | 6930 6917 <span class="c">#</span> | 
|  | 6931 <a name="_Generate322KeySetKey256-"></a>6918 <span class="k">sub </span><span class="m">_Generate322KeySetKey256</span> <span class="s">{</span> | 
|  | 6932 6919   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6933 6920   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'#'</span><span class="sc">;</span> | 
|  | 6934 6921 | 
|  | 6935 6922   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Z'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6936 6923 <span class="s">}</span> | 
|  | 6937 6924 | 
|  | 6938 6925 <span class="c"># Generate 322 keyset key 257 value as 1/0 indicating its presence/absence or</span> | 
|  | 6939 6926 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6940 6927 <span class="c">#</span> | 
|  | 6941 6928 <span class="c"># Key 257 description: C$C</span> | 
|  | 6942 6929 <span class="c">#</span> | 
|  | 6943 <a name="_Generate322KeySetKey257-"></a>6930 <span class="k">sub </span><span class="m">_Generate322KeySetKey257</span> <span class="s">{</span> | 
|  | 6944 6931   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6945 6932   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 6946 6933 | 
|  | 6947 6934   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'C'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6948 6935 <span class="s">}</span> | 
|  | 6949 6936 | 
|  | 6950 6937 <span class="c"># Generate 322 keyset key 258 value as 1/0 indicating its presence/absence or</span> | 
|  | 6951 6938 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6952 6939 <span class="c">#</span> | 
|  | 6953 6940 <span class="c"># Key 258 description: C$N</span> | 
|  | 6954 6941 <span class="c">#</span> | 
|  | 6955 <a name="_Generate322KeySetKey258-"></a>6942 <span class="k">sub </span><span class="m">_Generate322KeySetKey258</span> <span class="s">{</span> | 
|  | 6956 6943   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6957 6944   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 6958 6945 | 
|  | 6959 6946   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6960 6947 <span class="s">}</span> | 
|  | 6961 6948 | 
|  | 6962 6949 <span class="c"># Generate 322 keyset key 259 value as 1/0 indicating its presence/absence or</span> | 
|  | 6963 6950 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6964 6951 <span class="c">#</span> | 
|  | 6965 6952 <span class="c"># Key 259 description: C$O</span> | 
|  | 6966 6953 <span class="c">#</span> | 
|  | 6967 <a name="_Generate322KeySetKey259-"></a>6954 <span class="k">sub </span><span class="m">_Generate322KeySetKey259</span> <span class="s">{</span> | 
|  | 6968 6955   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6969 6956   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 6970 6957 | 
|  | 6971 6958   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6972 6959 <span class="s">}</span> | 
|  | 6973 6960 | 
|  | 6974 6961 <span class="c"># Generate 322 keyset key 260 value as 1/0 indicating its presence/absence or</span> | 
|  | 6975 6962 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6976 6963 <span class="c">#</span> | 
|  | 6977 6964 <span class="c"># Key 260 description: C$S</span> | 
|  | 6978 6965 <span class="c">#</span> | 
|  | 6979 <a name="_Generate322KeySetKey260-"></a>6966 <span class="k">sub </span><span class="m">_Generate322KeySetKey260</span> <span class="s">{</span> | 
|  | 6980 6967   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6981 6968   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 6982 6969 | 
|  | 6983 6970   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6984 6971 <span class="s">}</span> | 
|  | 6985 6972 | 
|  | 6986 6973 <span class="c"># Generate 322 keyset key 261 value as 1/0 indicating its presence/absence or</span> | 
|  | 6987 6974 <span class="c"># count of its presence in a molecule.</span> | 
|  | 6988 6975 <span class="c">#</span> | 
|  | 6989 6976 <span class="c"># Key 261 description: C$Cl</span> | 
|  | 6990 6977 <span class="c">#</span> | 
|  | 6991 <a name="_Generate322KeySetKey261-"></a>6978 <span class="k">sub </span><span class="m">_Generate322KeySetKey261</span> <span class="s">{</span> | 
|  | 6992 6979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 6993 6980   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 6994 6981 | 
|  | 6995 6982   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 6996 6983 <span class="s">}</span> | 
|  | 6997 6984 | 
|  | 6998 6985 <span class="c"># Generate 322 keyset key 262 value as 1/0 indicating its presence/absence or</span> | 
|  | 6999 6986 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7000 6987 <span class="c">#</span> | 
|  | 7001 6988 <span class="c"># Key 262 description: C$P</span> | 
|  | 7002 6989 <span class="c">#</span> | 
|  | 7003 <a name="_Generate322KeySetKey262-"></a>6990 <span class="k">sub </span><span class="m">_Generate322KeySetKey262</span> <span class="s">{</span> | 
|  | 7004 6991   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7005 6992   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7006 6993 | 
|  | 7007 6994   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7008 6995 <span class="s">}</span> | 
|  | 7009 6996 | 
|  | 7010 6997 <span class="c"># Generate 322 keyset key 263 value as 1/0 indicating its presence/absence or</span> | 
|  | 7011 6998 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7012 6999 <span class="c">#</span> | 
|  | 7013 7000 <span class="c"># Key 263 description: C$F</span> | 
|  | 7014 7001 <span class="c">#</span> | 
|  | 7015 <a name="_Generate322KeySetKey263-"></a>7002 <span class="k">sub </span><span class="m">_Generate322KeySetKey263</span> <span class="s">{</span> | 
|  | 7016 7003   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7017 7004   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7018 7005 | 
|  | 7019 7006   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7020 7007 <span class="s">}</span> | 
|  | 7021 7008 | 
|  | 7022 7009 <span class="c"># Generate 322 keyset key 264 value as 1/0 indicating its presence/absence or</span> | 
|  | 7023 7010 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7024 7011 <span class="c">#</span> | 
|  | 7025 7012 <span class="c"># Key 264 description: C$Br</span> | 
|  | 7026 7013 <span class="c">#</span> | 
|  | 7027 <a name="_Generate322KeySetKey264-"></a>7014 <span class="k">sub </span><span class="m">_Generate322KeySetKey264</span> <span class="s">{</span> | 
|  | 7028 7015   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7029 7016   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7030 7017 | 
|  | 7031 7018   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7032 7019 <span class="s">}</span> | 
|  | 7033 7020 | 
|  | 7034 7021 <span class="c"># Generate 322 keyset key 265 value as 1/0 indicating its presence/absence or</span> | 
|  | 7035 7022 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7036 7023 <span class="c">#</span> | 
|  | 7037 7024 <span class="c"># Key 265 description: C$Si</span> | 
|  | 7038 7025 <span class="c">#</span> | 
|  | 7039 <a name="_Generate322KeySetKey265-"></a>7026 <span class="k">sub </span><span class="m">_Generate322KeySetKey265</span> <span class="s">{</span> | 
|  | 7040 7027   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7041 7028   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7042 7029 | 
|  | 7043 7030   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7044 7031 <span class="s">}</span> | 
|  | 7045 7032 | 
|  | 7046 7033 <span class="c"># Generate 322 keyset key 266 value as 1/0 indicating its presence/absence or</span> | 
|  | 7047 7034 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7048 7035 <span class="c">#</span> | 
|  | 7049 7036 <span class="c"># Key 266 description: C$I</span> | 
|  | 7050 7037 <span class="c">#</span> | 
|  | 7051 <a name="_Generate322KeySetKey266-"></a>7038 <span class="k">sub </span><span class="m">_Generate322KeySetKey266</span> <span class="s">{</span> | 
|  | 7052 7039   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7053 7040   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7054 7041 | 
|  | 7055 7042   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7056 7043 <span class="s">}</span> | 
|  | 7057 7044 | 
|  | 7058 7045 <span class="c"># Generate 322 keyset key 267 value as 1/0 indicating its presence/absence or</span> | 
|  | 7059 7046 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7060 7047 <span class="c">#</span> | 
|  | 7061 7048 <span class="c"># Key 267 description: C$X</span> | 
|  | 7062 7049 <span class="c">#</span> | 
|  | 7063 <a name="_Generate322KeySetKey267-"></a>7050 <span class="k">sub </span><span class="m">_Generate322KeySetKey267</span> <span class="s">{</span> | 
|  | 7064 7051   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7065 7052   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7066 7053 | 
|  | 7067 7054   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'C'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7068 7055 <span class="s">}</span> | 
|  | 7069 7056 | 
|  | 7070 7057 <span class="c"># Generate 322 keyset key 268 value as 1/0 indicating its presence/absence or</span> | 
|  | 7071 7058 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7072 7059 <span class="c">#</span> | 
|  | 7073 7060 <span class="c"># Key 268 description: N$N</span> | 
|  | 7074 7061 <span class="c">#</span> | 
|  | 7075 <a name="_Generate322KeySetKey268-"></a>7062 <span class="k">sub </span><span class="m">_Generate322KeySetKey268</span> <span class="s">{</span> | 
|  | 7076 7063   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7077 7064   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7078 7065 | 
|  | 7079 7066   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'N'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7080 7067 <span class="s">}</span> | 
|  | 7081 7068 | 
|  | 7082 7069 <span class="c"># Generate 322 keyset key 269 value as 1/0 indicating its presence/absence or</span> | 
|  | 7083 7070 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7084 7071 <span class="c">#</span> | 
|  | 7085 7072 <span class="c"># Key 269 description: N$O</span> | 
|  | 7086 7073 <span class="c">#</span> | 
|  | 7087 <a name="_Generate322KeySetKey269-"></a>7074 <span class="k">sub </span><span class="m">_Generate322KeySetKey269</span> <span class="s">{</span> | 
|  | 7088 7075   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7089 7076   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7090 7077 | 
|  | 7091 7078   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7092 7079 <span class="s">}</span> | 
|  | 7093 7080 | 
|  | 7094 7081 <span class="c"># Generate 322 keyset key 270 value as 1/0 indicating its presence/absence or</span> | 
|  | 7095 7082 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7096 7083 <span class="c">#</span> | 
|  | 7097 7084 <span class="c"># Key 270 description: N$S</span> | 
|  | 7098 7085 <span class="c">#</span> | 
|  | 7099 <a name="_Generate322KeySetKey270-"></a>7086 <span class="k">sub </span><span class="m">_Generate322KeySetKey270</span> <span class="s">{</span> | 
|  | 7100 7087   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7101 7088   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7102 7089 | 
|  | 7103 7090   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7104 7091 <span class="s">}</span> | 
|  | 7105 7092 | 
|  | 7106 7093 <span class="c"># Generate 322 keyset key 271 value as 1/0 indicating its presence/absence or</span> | 
|  | 7107 7094 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7108 7095 <span class="c">#</span> | 
|  | 7109 7096 <span class="c"># Key 271 description: N$Cl</span> | 
|  | 7110 7097 <span class="c">#</span> | 
|  | 7111 <a name="_Generate322KeySetKey271-"></a>7098 <span class="k">sub </span><span class="m">_Generate322KeySetKey271</span> <span class="s">{</span> | 
|  | 7112 7099   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7113 7100   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7114 7101 | 
|  | 7115 7102   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7116 7103 <span class="s">}</span> | 
|  | 7117 7104 | 
|  | 7118 7105 <span class="c"># Generate 322 keyset key 272 value as 1/0 indicating its presence/absence or</span> | 
|  | 7119 7106 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7120 7107 <span class="c">#</span> | 
|  | 7121 7108 <span class="c"># Key 272 description: N$P</span> | 
|  | 7122 7109 <span class="c">#</span> | 
|  | 7123 <a name="_Generate322KeySetKey272-"></a>7110 <span class="k">sub </span><span class="m">_Generate322KeySetKey272</span> <span class="s">{</span> | 
|  | 7124 7111   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7125 7112   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7126 7113 | 
|  | 7127 7114   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7128 7115 <span class="s">}</span> | 
|  | 7129 7116 | 
|  | 7130 7117 <span class="c"># Generate 322 keyset key 273 value as 1/0 indicating its presence/absence or</span> | 
|  | 7131 7118 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7132 7119 <span class="c">#</span> | 
|  | 7133 7120 <span class="c"># Key 273 description: N$F</span> | 
|  | 7134 7121 <span class="c">#</span> | 
|  | 7135 <a name="_Generate322KeySetKey273-"></a>7122 <span class="k">sub </span><span class="m">_Generate322KeySetKey273</span> <span class="s">{</span> | 
|  | 7136 7123   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7137 7124   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7138 7125 | 
|  | 7139 7126   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7140 7127 <span class="s">}</span> | 
|  | 7141 7128 | 
|  | 7142 7129 <span class="c"># Generate 322 keyset key 274 value as 1/0 indicating its presence/absence or</span> | 
|  | 7143 7130 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7144 7131 <span class="c">#</span> | 
|  | 7145 7132 <span class="c"># Key 274 description: N$Br</span> | 
|  | 7146 7133 <span class="c">#</span> | 
|  | 7147 <a name="_Generate322KeySetKey274-"></a>7134 <span class="k">sub </span><span class="m">_Generate322KeySetKey274</span> <span class="s">{</span> | 
|  | 7148 7135   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7149 7136   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7150 7137 | 
|  | 7151 7138   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7152 7139 <span class="s">}</span> | 
|  | 7153 7140 | 
|  | 7154 7141 <span class="c"># Generate 322 keyset key 275 value as 1/0 indicating its presence/absence or</span> | 
|  | 7155 7142 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7156 7143 <span class="c">#</span> | 
|  | 7157 7144 <span class="c"># Key 275 description: N$Si</span> | 
|  | 7158 7145 <span class="c">#</span> | 
|  | 7159 <a name="_Generate322KeySetKey275-"></a>7146 <span class="k">sub </span><span class="m">_Generate322KeySetKey275</span> <span class="s">{</span> | 
|  | 7160 7147   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7161 7148   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7162 7149 | 
|  | 7163 7150   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7164 7151 <span class="s">}</span> | 
|  | 7165 7152 | 
|  | 7166 7153 <span class="c"># Generate 322 keyset key 276 value as 1/0 indicating its presence/absence or</span> | 
|  | 7167 7154 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7168 7155 <span class="c">#</span> | 
|  | 7169 7156 <span class="c"># Key 276 description: N$I</span> | 
|  | 7170 7157 <span class="c">#</span> | 
|  | 7171 <a name="_Generate322KeySetKey276-"></a>7158 <span class="k">sub </span><span class="m">_Generate322KeySetKey276</span> <span class="s">{</span> | 
|  | 7172 7159   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7173 7160   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7174 7161 | 
|  | 7175 7162   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7176 7163 <span class="s">}</span> | 
|  | 7177 7164 | 
|  | 7178 7165 <span class="c"># Generate 322 keyset key 277 value as 1/0 indicating its presence/absence or</span> | 
|  | 7179 7166 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7180 7167 <span class="c">#</span> | 
|  | 7181 7168 <span class="c"># Key 277 description: N$X</span> | 
|  | 7182 7169 <span class="c">#</span> | 
|  | 7183 <a name="_Generate322KeySetKey277-"></a>7170 <span class="k">sub </span><span class="m">_Generate322KeySetKey277</span> <span class="s">{</span> | 
|  | 7184 7171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7185 7172   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7186 7173 | 
|  | 7187 7174   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'N'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7188 7175 <span class="s">}</span> | 
|  | 7189 7176 | 
|  | 7190 7177 <span class="c"># Generate 322 keyset key 278 value as 1/0 indicating its presence/absence or</span> | 
|  | 7191 7178 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7192 7179 <span class="c">#</span> | 
|  | 7193 7180 <span class="c"># Key 278 description: O$O</span> | 
|  | 7194 7181 <span class="c">#</span> | 
|  | 7195 <a name="_Generate322KeySetKey278-"></a>7182 <span class="k">sub </span><span class="m">_Generate322KeySetKey278</span> <span class="s">{</span> | 
|  | 7196 7183   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7197 7184   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7198 7185 | 
|  | 7199 7186   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'O'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7200 7187 <span class="s">}</span> | 
|  | 7201 7188 | 
|  | 7202 7189 <span class="c"># Generate 322 keyset key 279 value as 1/0 indicating its presence/absence or</span> | 
|  | 7203 7190 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7204 7191 <span class="c">#</span> | 
|  | 7205 7192 <span class="c"># Key 279 description: O$S</span> | 
|  | 7206 7193 <span class="c">#</span> | 
|  | 7207 <a name="_Generate322KeySetKey279-"></a>7194 <span class="k">sub </span><span class="m">_Generate322KeySetKey279</span> <span class="s">{</span> | 
|  | 7208 7195   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7209 7196   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7210 7197 | 
|  | 7211 7198   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7212 7199 <span class="s">}</span> | 
|  | 7213 7200 | 
|  | 7214 7201 <span class="c"># Generate 322 keyset key 280 value as 1/0 indicating its presence/absence or</span> | 
|  | 7215 7202 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7216 7203 <span class="c">#</span> | 
|  | 7217 7204 <span class="c"># Key 280 description: O$Cl</span> | 
|  | 7218 7205 <span class="c">#</span> | 
|  | 7219 <a name="_Generate322KeySetKey280-"></a>7206 <span class="k">sub </span><span class="m">_Generate322KeySetKey280</span> <span class="s">{</span> | 
|  | 7220 7207   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7221 7208   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7222 7209 | 
|  | 7223 7210   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7224 7211 <span class="s">}</span> | 
|  | 7225 7212 | 
|  | 7226 7213 <span class="c"># Generate 322 keyset key 281 value as 1/0 indicating its presence/absence or</span> | 
|  | 7227 7214 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7228 7215 <span class="c">#</span> | 
|  | 7229 7216 <span class="c"># Key 281 description: O$P</span> | 
|  | 7230 7217 <span class="c">#</span> | 
|  | 7231 <a name="_Generate322KeySetKey281-"></a>7218 <span class="k">sub </span><span class="m">_Generate322KeySetKey281</span> <span class="s">{</span> | 
|  | 7232 7219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7233 7220   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7234 7221 | 
|  | 7235 7222   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7236 7223 <span class="s">}</span> | 
|  | 7237 7224 | 
|  | 7238 7225 <span class="c"># Generate 322 keyset key 282 value as 1/0 indicating its presence/absence or</span> | 
|  | 7239 7226 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7240 7227 <span class="c">#</span> | 
|  | 7241 7228 <span class="c"># Key 282 description: O$F</span> | 
|  | 7242 7229 <span class="c">#</span> | 
|  | 7243 <a name="_Generate322KeySetKey282-"></a>7230 <span class="k">sub </span><span class="m">_Generate322KeySetKey282</span> <span class="s">{</span> | 
|  | 7244 7231   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7245 7232   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7246 7233 | 
|  | 7247 7234   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7248 7235 <span class="s">}</span> | 
|  | 7249 7236 | 
|  | 7250 7237 <span class="c"># Generate 322 keyset key 283 value as 1/0 indicating its presence/absence or</span> | 
|  | 7251 7238 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7252 7239 <span class="c">#</span> | 
|  | 7253 7240 <span class="c"># Key 283 description: O$Br</span> | 
|  | 7254 7241 <span class="c">#</span> | 
|  | 7255 <a name="_Generate322KeySetKey283-"></a>7242 <span class="k">sub </span><span class="m">_Generate322KeySetKey283</span> <span class="s">{</span> | 
|  | 7256 7243   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7257 7244   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7258 7245 | 
|  | 7259 7246   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7260 7247 <span class="s">}</span> | 
|  | 7261 7248 | 
|  | 7262 7249 <span class="c"># Generate 322 keyset key 284 value as 1/0 indicating its presence/absence or</span> | 
|  | 7263 7250 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7264 7251 <span class="c">#</span> | 
|  | 7265 7252 <span class="c"># Key 284 description: O$Si</span> | 
|  | 7266 7253 <span class="c">#</span> | 
|  | 7267 <a name="_Generate322KeySetKey284-"></a>7254 <span class="k">sub </span><span class="m">_Generate322KeySetKey284</span> <span class="s">{</span> | 
|  | 7268 7255   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7269 7256   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7270 7257 | 
|  | 7271 7258   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7272 7259 <span class="s">}</span> | 
|  | 7273 7260 | 
|  | 7274 7261 <span class="c"># Generate 322 keyset key 285 value as 1/0 indicating its presence/absence or</span> | 
|  | 7275 7262 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7276 7263 <span class="c">#</span> | 
|  | 7277 7264 <span class="c"># Key 285 description: O$I</span> | 
|  | 7278 7265 <span class="c">#</span> | 
|  | 7279 <a name="_Generate322KeySetKey285-"></a>7266 <span class="k">sub </span><span class="m">_Generate322KeySetKey285</span> <span class="s">{</span> | 
|  | 7280 7267   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7281 7268   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7282 7269 | 
|  | 7283 7270   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7284 7271 <span class="s">}</span> | 
|  | 7285 7272 | 
|  | 7286 7273 <span class="c"># Generate 322 keyset key 286 value as 1/0 indicating its presence/absence or</span> | 
|  | 7287 7274 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7288 7275 <span class="c">#</span> | 
|  | 7289 7276 <span class="c"># Key 286 description: O$X</span> | 
|  | 7290 7277 <span class="c">#</span> | 
|  | 7291 <a name="_Generate322KeySetKey286-"></a>7278 <span class="k">sub </span><span class="m">_Generate322KeySetKey286</span> <span class="s">{</span> | 
|  | 7292 7279   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7293 7280   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7294 7281 | 
|  | 7295 7282   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'O'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7296 7283 <span class="s">}</span> | 
|  | 7297 7284 | 
|  | 7298 7285 <span class="c"># Generate 322 keyset key 287 value as 1/0 indicating its presence/absence or</span> | 
|  | 7299 7286 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7300 7287 <span class="c">#</span> | 
|  | 7301 7288 <span class="c"># Key 287 description: S$S</span> | 
|  | 7302 7289 <span class="c">#</span> | 
|  | 7303 <a name="_Generate322KeySetKey287-"></a>7290 <span class="k">sub </span><span class="m">_Generate322KeySetKey287</span> <span class="s">{</span> | 
|  | 7304 7291   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7305 7292   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7306 7293 | 
|  | 7307 7294   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'S'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7308 7295 <span class="s">}</span> | 
|  | 7309 7296 | 
|  | 7310 7297 <span class="c"># Generate 322 keyset key 288 value as 1/0 indicating its presence/absence or</span> | 
|  | 7311 7298 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7312 7299 <span class="c">#</span> | 
|  | 7313 7300 <span class="c"># Key 288 description: S$Cl</span> | 
|  | 7314 7301 <span class="c">#</span> | 
|  | 7315 <a name="_Generate322KeySetKey288-"></a>7302 <span class="k">sub </span><span class="m">_Generate322KeySetKey288</span> <span class="s">{</span> | 
|  | 7316 7303   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7317 7304   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7318 7305 | 
|  | 7319 7306   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7320 7307 <span class="s">}</span> | 
|  | 7321 7308 | 
|  | 7322 7309 <span class="c"># Generate 322 keyset key 289 value as 1/0 indicating its presence/absence or</span> | 
|  | 7323 7310 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7324 7311 <span class="c">#</span> | 
|  | 7325 7312 <span class="c"># Key 289 description: S$P</span> | 
|  | 7326 7313 <span class="c">#</span> | 
|  | 7327 <a name="_Generate322KeySetKey289-"></a>7314 <span class="k">sub </span><span class="m">_Generate322KeySetKey289</span> <span class="s">{</span> | 
|  | 7328 7315   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7329 7316   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7330 7317 | 
|  | 7331 7318   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7332 7319 <span class="s">}</span> | 
|  | 7333 7320 | 
|  | 7334 7321 <span class="c"># Generate 322 keyset key 290 value as 1/0 indicating its presence/absence or</span> | 
|  | 7335 7322 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7336 7323 <span class="c">#</span> | 
|  | 7337 7324 <span class="c"># Key 290 description: S$F</span> | 
|  | 7338 7325 <span class="c">#</span> | 
|  | 7339 <a name="_Generate322KeySetKey290-"></a>7326 <span class="k">sub </span><span class="m">_Generate322KeySetKey290</span> <span class="s">{</span> | 
|  | 7340 7327   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7341 7328   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7342 7329 | 
|  | 7343 7330   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7344 7331 <span class="s">}</span> | 
|  | 7345 7332 | 
|  | 7346 7333 <span class="c"># Generate 322 keyset key 291 value as 1/0 indicating its presence/absence or</span> | 
|  | 7347 7334 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7348 7335 <span class="c">#</span> | 
|  | 7349 7336 <span class="c"># Key 291 description: S$Br</span> | 
|  | 7350 7337 <span class="c">#</span> | 
|  | 7351 <a name="_Generate322KeySetKey291-"></a>7338 <span class="k">sub </span><span class="m">_Generate322KeySetKey291</span> <span class="s">{</span> | 
|  | 7352 7339   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7353 7340   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7354 7341 | 
|  | 7355 7342   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7356 7343 <span class="s">}</span> | 
|  | 7357 7344 | 
|  | 7358 7345 <span class="c"># Generate 322 keyset key 292 value as 1/0 indicating its presence/absence or</span> | 
|  | 7359 7346 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7360 7347 <span class="c">#</span> | 
|  | 7361 7348 <span class="c"># Key 292 description: S$Si</span> | 
|  | 7362 7349 <span class="c">#</span> | 
|  | 7363 <a name="_Generate322KeySetKey292-"></a>7350 <span class="k">sub </span><span class="m">_Generate322KeySetKey292</span> <span class="s">{</span> | 
|  | 7364 7351   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7365 7352   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7366 7353 | 
|  | 7367 7354   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7368 7355 <span class="s">}</span> | 
|  | 7369 7356 | 
|  | 7370 7357 <span class="c"># Generate 322 keyset key 293 value as 1/0 indicating its presence/absence or</span> | 
|  | 7371 7358 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7372 7359 <span class="c">#</span> | 
|  | 7373 7360 <span class="c"># Key 293 description: S$I</span> | 
|  | 7374 7361 <span class="c">#</span> | 
|  | 7375 <a name="_Generate322KeySetKey293-"></a>7362 <span class="k">sub </span><span class="m">_Generate322KeySetKey293</span> <span class="s">{</span> | 
|  | 7376 7363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7377 7364   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7378 7365 | 
|  | 7379 7366   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7380 7367 <span class="s">}</span> | 
|  | 7381 7368 | 
|  | 7382 7369 <span class="c"># Generate 322 keyset key 294 value as 1/0 indicating its presence/absence or</span> | 
|  | 7383 7370 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7384 7371 <span class="c">#</span> | 
|  | 7385 7372 <span class="c"># Key 294 description: S$X</span> | 
|  | 7386 7373 <span class="c">#</span> | 
|  | 7387 <a name="_Generate322KeySetKey294-"></a>7374 <span class="k">sub </span><span class="m">_Generate322KeySetKey294</span> <span class="s">{</span> | 
|  | 7388 7375   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7389 7376   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7390 7377 | 
|  | 7391 7378   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'S'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7392 7379 <span class="s">}</span> | 
|  | 7393 7380 | 
|  | 7394 7381 <span class="c"># Generate 322 keyset key 295 value as 1/0 indicating its presence/absence or</span> | 
|  | 7395 7382 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7396 7383 <span class="c">#</span> | 
|  | 7397 7384 <span class="c"># Key 295 description: Cl$Cl</span> | 
|  | 7398 7385 <span class="c">#</span> | 
|  | 7399 <a name="_Generate322KeySetKey295-"></a>7386 <span class="k">sub </span><span class="m">_Generate322KeySetKey295</span> <span class="s">{</span> | 
|  | 7400 7387   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7401 7388   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7402 7389 | 
|  | 7403 7390   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Cl'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7404 7391 <span class="s">}</span> | 
|  | 7405 7392 | 
|  | 7406 7393 <span class="c"># Generate 322 keyset key 296 value as 1/0 indicating its presence/absence or</span> | 
|  | 7407 7394 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7408 7395 <span class="c">#</span> | 
|  | 7409 7396 <span class="c"># Key 296 description: Cl$P</span> | 
|  | 7410 7397 <span class="c">#</span> | 
|  | 7411 <a name="_Generate322KeySetKey296-"></a>7398 <span class="k">sub </span><span class="m">_Generate322KeySetKey296</span> <span class="s">{</span> | 
|  | 7412 7399   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7413 7400   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7414 7401 | 
|  | 7415 7402   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7416 7403 <span class="s">}</span> | 
|  | 7417 7404 | 
|  | 7418 7405 <span class="c"># Generate 322 keyset key 297 value as 1/0 indicating its presence/absence or</span> | 
|  | 7419 7406 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7420 7407 <span class="c">#</span> | 
|  | 7421 7408 <span class="c"># Key 297 description: Cl$F</span> | 
|  | 7422 7409 <span class="c">#</span> | 
|  | 7423 <a name="_Generate322KeySetKey297-"></a>7410 <span class="k">sub </span><span class="m">_Generate322KeySetKey297</span> <span class="s">{</span> | 
|  | 7424 7411   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7425 7412   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7426 7413 | 
|  | 7427 7414   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7428 7415 <span class="s">}</span> | 
|  | 7429 7416 | 
|  | 7430 7417 <span class="c"># Generate 322 keyset key 298 value as 1/0 indicating its presence/absence or</span> | 
|  | 7431 7418 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7432 7419 <span class="c">#</span> | 
|  | 7433 7420 <span class="c"># Key 298 description: Cl$Br</span> | 
|  | 7434 7421 <span class="c">#</span> | 
|  | 7435 <a name="_Generate322KeySetKey298-"></a>7422 <span class="k">sub </span><span class="m">_Generate322KeySetKey298</span> <span class="s">{</span> | 
|  | 7436 7423   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7437 7424   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7438 7425 | 
|  | 7439 7426   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7440 7427 <span class="s">}</span> | 
|  | 7441 7428 | 
|  | 7442 7429 <span class="c"># Generate 322 keyset key 299 value as 1/0 indicating its presence/absence or</span> | 
|  | 7443 7430 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7444 7431 <span class="c">#</span> | 
|  | 7445 7432 <span class="c"># Key 299 description: Cl$Si</span> | 
|  | 7446 7433 <span class="c">#</span> | 
|  | 7447 <a name="_Generate322KeySetKey299-"></a>7434 <span class="k">sub </span><span class="m">_Generate322KeySetKey299</span> <span class="s">{</span> | 
|  | 7448 7435   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7449 7436   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7450 7437 | 
|  | 7451 7438   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7452 7439 <span class="s">}</span> | 
|  | 7453 7440 | 
|  | 7454 7441 <span class="c"># Generate 322 keyset key 300 value as 1/0 indicating its presence/absence or</span> | 
|  | 7455 7442 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7456 7443 <span class="c">#</span> | 
|  | 7457 7444 <span class="c"># Key 300 description: Cl$I</span> | 
|  | 7458 7445 <span class="c">#</span> | 
|  | 7459 <a name="_Generate322KeySetKey300-"></a>7446 <span class="k">sub </span><span class="m">_Generate322KeySetKey300</span> <span class="s">{</span> | 
|  | 7460 7447   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7461 7448   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7462 7449 | 
|  | 7463 7450   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7464 7451 <span class="s">}</span> | 
|  | 7465 7452 | 
|  | 7466 7453 <span class="c"># Generate 322 keyset key 301 value as 1/0 indicating its presence/absence or</span> | 
|  | 7467 7454 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7468 7455 <span class="c">#</span> | 
|  | 7469 7456 <span class="c"># Key 301 description: Cl$X</span> | 
|  | 7470 7457 <span class="c">#</span> | 
|  | 7471 <a name="_Generate322KeySetKey301-"></a>7458 <span class="k">sub </span><span class="m">_Generate322KeySetKey301</span> <span class="s">{</span> | 
|  | 7472 7459   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7473 7460   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7474 7461 | 
|  | 7475 7462   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Cl'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7476 7463 <span class="s">}</span> | 
|  | 7477 7464 | 
|  | 7478 7465 <span class="c"># Generate 322 keyset key 302 value as 1/0 indicating its presence/absence or</span> | 
|  | 7479 7466 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7480 7467 <span class="c">#</span> | 
|  | 7481 7468 <span class="c"># Key 302 description: P$P</span> | 
|  | 7482 7469 <span class="c">#</span> | 
|  | 7483 <a name="_Generate322KeySetKey302-"></a>7470 <span class="k">sub </span><span class="m">_Generate322KeySetKey302</span> <span class="s">{</span> | 
|  | 7484 7471   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7485 7472   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7486 7473 | 
|  | 7487 7474   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'P'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7488 7475 <span class="s">}</span> | 
|  | 7489 7476 | 
|  | 7490 7477 <span class="c"># Generate 322 keyset key 303 value as 1/0 indicating its presence/absence or</span> | 
|  | 7491 7478 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7492 7479 <span class="c">#</span> | 
|  | 7493 7480 <span class="c"># Key 303 description: P$F</span> | 
|  | 7494 7481 <span class="c">#</span> | 
|  | 7495 <a name="_Generate322KeySetKey303-"></a>7482 <span class="k">sub </span><span class="m">_Generate322KeySetKey303</span> <span class="s">{</span> | 
|  | 7496 7483   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7497 7484   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7498 7485 | 
|  | 7499 7486   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7500 7487 <span class="s">}</span> | 
|  | 7501 7488 | 
|  | 7502 7489 <span class="c"># Generate 322 keyset key 304 value as 1/0 indicating its presence/absence or</span> | 
|  | 7503 7490 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7504 7491 <span class="c">#</span> | 
|  | 7505 7492 <span class="c"># Key 304 description: P$Br</span> | 
|  | 7506 7493 <span class="c">#</span> | 
|  | 7507 <a name="_Generate322KeySetKey304-"></a>7494 <span class="k">sub </span><span class="m">_Generate322KeySetKey304</span> <span class="s">{</span> | 
|  | 7508 7495   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7509 7496   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7510 7497 | 
|  | 7511 7498   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7512 7499 <span class="s">}</span> | 
|  | 7513 7500 | 
|  | 7514 7501 <span class="c"># Generate 322 keyset key 305 value as 1/0 indicating its presence/absence or</span> | 
|  | 7515 7502 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7516 7503 <span class="c">#</span> | 
|  | 7517 7504 <span class="c"># Key 305 description: P$Si</span> | 
|  | 7518 7505 <span class="c">#</span> | 
|  | 7519 <a name="_Generate322KeySetKey305-"></a>7506 <span class="k">sub </span><span class="m">_Generate322KeySetKey305</span> <span class="s">{</span> | 
|  | 7520 7507   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7521 7508   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7522 7509 | 
|  | 7523 7510   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7524 7511 <span class="s">}</span> | 
|  | 7525 7512 | 
|  | 7526 7513 <span class="c"># Generate 322 keyset key 306 value as 1/0 indicating its presence/absence or</span> | 
|  | 7527 7514 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7528 7515 <span class="c">#</span> | 
|  | 7529 7516 <span class="c"># Key 306 description: P$I</span> | 
|  | 7530 7517 <span class="c">#</span> | 
|  | 7531 <a name="_Generate322KeySetKey306-"></a>7518 <span class="k">sub </span><span class="m">_Generate322KeySetKey306</span> <span class="s">{</span> | 
|  | 7532 7519   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7533 7520   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7534 7521 | 
|  | 7535 7522   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7536 7523 <span class="s">}</span> | 
|  | 7537 7524 | 
|  | 7538 7525 <span class="c"># Generate 322 keyset key 307 value as 1/0 indicating its presence/absence or</span> | 
|  | 7539 7526 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7540 7527 <span class="c">#</span> | 
|  | 7541 7528 <span class="c"># Key 307 description: P$X</span> | 
|  | 7542 7529 <span class="c">#</span> | 
|  | 7543 <a name="_Generate322KeySetKey307-"></a>7530 <span class="k">sub </span><span class="m">_Generate322KeySetKey307</span> <span class="s">{</span> | 
|  | 7544 7531   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7545 7532   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7546 7533 | 
|  | 7547 7534   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'P'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7548 7535 <span class="s">}</span> | 
|  | 7549 7536 | 
|  | 7550 7537 <span class="c"># Generate 322 keyset key 308 value as 1/0 indicating its presence/absence or</span> | 
|  | 7551 7538 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7552 7539 <span class="c">#</span> | 
|  | 7553 7540 <span class="c"># Key 308 description: F$F</span> | 
|  | 7554 7541 <span class="c">#</span> | 
|  | 7555 <a name="_Generate322KeySetKey308-"></a>7542 <span class="k">sub </span><span class="m">_Generate322KeySetKey308</span> <span class="s">{</span> | 
|  | 7556 7543   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7557 7544   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7558 7545 | 
|  | 7559 7546   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'F'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7560 7547 <span class="s">}</span> | 
|  | 7561 7548 | 
|  | 7562 7549 <span class="c"># Generate 322 keyset key 309 value as 1/0 indicating its presence/absence or</span> | 
|  | 7563 7550 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7564 7551 <span class="c">#</span> | 
|  | 7565 7552 <span class="c"># Key 309 description: F$Br</span> | 
|  | 7566 7553 <span class="c">#</span> | 
|  | 7567 <a name="_Generate322KeySetKey309-"></a>7554 <span class="k">sub </span><span class="m">_Generate322KeySetKey309</span> <span class="s">{</span> | 
|  | 7568 7555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7569 7556   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7570 7557 | 
|  | 7571 7558   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7572 7559 <span class="s">}</span> | 
|  | 7573 7560 | 
|  | 7574 7561 <span class="c"># Generate 322 keyset key 310 value as 1/0 indicating its presence/absence or</span> | 
|  | 7575 7562 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7576 7563 <span class="c">#</span> | 
|  | 7577 7564 <span class="c"># Key 310 description: F$Si</span> | 
|  | 7578 7565 <span class="c">#</span> | 
|  | 7579 <a name="_Generate322KeySetKey310-"></a>7566 <span class="k">sub </span><span class="m">_Generate322KeySetKey310</span> <span class="s">{</span> | 
|  | 7580 7567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7581 7568   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7582 7569 | 
|  | 7583 7570   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7584 7571 <span class="s">}</span> | 
|  | 7585 7572 | 
|  | 7586 7573 <span class="c"># Generate 322 keyset key 311 value as 1/0 indicating its presence/absence or</span> | 
|  | 7587 7574 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7588 7575 <span class="c">#</span> | 
|  | 7589 7576 <span class="c"># Key 311 description: F$I</span> | 
|  | 7590 7577 <span class="c">#</span> | 
|  | 7591 <a name="_Generate322KeySetKey311-"></a>7578 <span class="k">sub </span><span class="m">_Generate322KeySetKey311</span> <span class="s">{</span> | 
|  | 7592 7579   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7593 7580   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7594 7581 | 
|  | 7595 7582   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7596 7583 <span class="s">}</span> | 
|  | 7597 7584 | 
|  | 7598 7585 <span class="c"># Generate 322 keyset key 312 value as 1/0 indicating its presence/absence or</span> | 
|  | 7599 7586 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7600 7587 <span class="c">#</span> | 
|  | 7601 7588 <span class="c"># Key 312 description: F$X</span> | 
|  | 7602 7589 <span class="c">#</span> | 
|  | 7603 <a name="_Generate322KeySetKey312-"></a>7590 <span class="k">sub </span><span class="m">_Generate322KeySetKey312</span> <span class="s">{</span> | 
|  | 7604 7591   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7605 7592   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7606 7593 | 
|  | 7607 7594   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'F'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7608 7595 <span class="s">}</span> | 
|  | 7609 7596 | 
|  | 7610 7597 <span class="c"># Generate 322 keyset key 313 value as 1/0 indicating its presence/absence or</span> | 
|  | 7611 7598 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7612 7599 <span class="c">#</span> | 
|  | 7613 7600 <span class="c"># Key 313 description: Br$Br</span> | 
|  | 7614 7601 <span class="c">#</span> | 
|  | 7615 <a name="_Generate322KeySetKey313-"></a>7602 <span class="k">sub </span><span class="m">_Generate322KeySetKey313</span> <span class="s">{</span> | 
|  | 7616 7603   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7617 7604   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7618 7605 | 
|  | 7619 7606   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Br'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7620 7607 <span class="s">}</span> | 
|  | 7621 7608 | 
|  | 7622 7609 <span class="c"># Generate 322 keyset key 314 value as 1/0 indicating its presence/absence or</span> | 
|  | 7623 7610 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7624 7611 <span class="c">#</span> | 
|  | 7625 7612 <span class="c"># Key 314 description: Br$Si</span> | 
|  | 7626 7613 <span class="c">#</span> | 
|  | 7627 <a name="_Generate322KeySetKey314-"></a>7614 <span class="k">sub </span><span class="m">_Generate322KeySetKey314</span> <span class="s">{</span> | 
|  | 7628 7615   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7629 7616   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7630 7617 | 
|  | 7631 7618   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7632 7619 <span class="s">}</span> | 
|  | 7633 7620 | 
|  | 7634 7621 <span class="c"># Generate 322 keyset key 315 value as 1/0 indicating its presence/absence or</span> | 
|  | 7635 7622 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7636 7623 <span class="c">#</span> | 
|  | 7637 7624 <span class="c"># Key 315 description: Br$I</span> | 
|  | 7638 7625 <span class="c">#</span> | 
|  | 7639 <a name="_Generate322KeySetKey315-"></a>7626 <span class="k">sub </span><span class="m">_Generate322KeySetKey315</span> <span class="s">{</span> | 
|  | 7640 7627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7641 7628   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7642 7629 | 
|  | 7643 7630   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7644 7631 <span class="s">}</span> | 
|  | 7645 7632 | 
|  | 7646 7633 <span class="c"># Generate 322 keyset key 316 value as 1/0 indicating its presence/absence or</span> | 
|  | 7647 7634 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7648 7635 <span class="c">#</span> | 
|  | 7649 7636 <span class="c"># Key 316 description: Br$X</span> | 
|  | 7650 7637 <span class="c">#</span> | 
|  | 7651 <a name="_Generate322KeySetKey316-"></a>7638 <span class="k">sub </span><span class="m">_Generate322KeySetKey316</span> <span class="s">{</span> | 
|  | 7652 7639   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7653 7640   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7654 7641 | 
|  | 7655 7642   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Br'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7656 7643 <span class="s">}</span> | 
|  | 7657 7644 | 
|  | 7658 7645 <span class="c"># Generate 322 keyset key 317 value as 1/0 indicating its presence/absence or</span> | 
|  | 7659 7646 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7660 7647 <span class="c">#</span> | 
|  | 7661 7648 <span class="c"># Key 317 description: Si$Si</span> | 
|  | 7662 7649 <span class="c">#</span> | 
|  | 7663 <a name="_Generate322KeySetKey317-"></a>7650 <span class="k">sub </span><span class="m">_Generate322KeySetKey317</span> <span class="s">{</span> | 
|  | 7664 7651   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7665 7652   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7666 7653 | 
|  | 7667 7654   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Si'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7668 7655 <span class="s">}</span> | 
|  | 7669 7656 | 
|  | 7670 7657 <span class="c"># Generate 322 keyset key 318 value as 1/0 indicating its presence/absence or</span> | 
|  | 7671 7658 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7672 7659 <span class="c">#</span> | 
|  | 7673 7660 <span class="c"># Key 318 description: Si$I</span> | 
|  | 7674 7661 <span class="c">#</span> | 
|  | 7675 <a name="_Generate322KeySetKey318-"></a>7662 <span class="k">sub </span><span class="m">_Generate322KeySetKey318</span> <span class="s">{</span> | 
|  | 7676 7663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7677 7664   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7678 7665 | 
|  | 7679 7666   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7680 7667 <span class="s">}</span> | 
|  | 7681 7668 | 
|  | 7682 7669 <span class="c"># Generate 322 keyset key 319 value as 1/0 indicating its presence/absence or</span> | 
|  | 7683 7670 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7684 7671 <span class="c">#</span> | 
|  | 7685 7672 <span class="c"># Key 319 description: Si$X</span> | 
|  | 7686 7673 <span class="c">#</span> | 
|  | 7687 <a name="_Generate322KeySetKey319-"></a>7674 <span class="k">sub </span><span class="m">_Generate322KeySetKey319</span> <span class="s">{</span> | 
|  | 7688 7675   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7689 7676   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7690 7677 | 
|  | 7691 7678   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Si'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7692 7679 <span class="s">}</span> | 
|  | 7693 7680 | 
|  | 7694 7681 <span class="c"># Generate 322 keyset key 320 value as 1/0 indicating its presence/absence or</span> | 
|  | 7695 7682 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7696 7683 <span class="c">#</span> | 
|  | 7697 7684 <span class="c"># Key 320 description: I$I</span> | 
|  | 7698 7685 <span class="c">#</span> | 
|  | 7699 <a name="_Generate322KeySetKey320-"></a>7686 <span class="k">sub </span><span class="m">_Generate322KeySetKey320</span> <span class="s">{</span> | 
|  | 7700 7687   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7701 7688   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7702 7689 | 
|  | 7703 7690   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'I'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7704 7691 <span class="s">}</span> | 
|  | 7705 7692 | 
|  | 7706 7693 <span class="c"># Generate 322 keyset key 321 value as 1/0 indicating its presence/absence or</span> | 
|  | 7707 7694 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7708 7695 <span class="c">#</span> | 
|  | 7709 7696 <span class="c"># Key 321 description: I$X</span> | 
|  | 7710 7697 <span class="c">#</span> | 
|  | 7711 <a name="_Generate322KeySetKey321-"></a>7698 <span class="k">sub </span><span class="m">_Generate322KeySetKey321</span> <span class="s">{</span> | 
|  | 7712 7699   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7713 7700   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7714 7701 | 
|  | 7715 7702   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'I'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7716 7703 <span class="s">}</span> | 
|  | 7717 7704 | 
|  | 7718 7705 <span class="c"># Generate 322 keyset key 322 value as 1/0 indicating its presence/absence or</span> | 
|  | 7719 7706 <span class="c"># count of its presence in a molecule.</span> | 
|  | 7720 7707 <span class="c">#</span> | 
|  | 7721 7708 <span class="c"># Key 322 description: X$X</span> | 
|  | 7722 7709 <span class="c">#</span> | 
|  | 7723 <a name="_Generate322KeySetKey322-"></a>7710 <span class="k">sub </span><span class="m">_Generate322KeySetKey322</span> <span class="s">{</span> | 
|  | 7724 7711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7725 7712   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">'$'</span><span class="sc">;</span> | 
|  | 7726 7713 | 
|  | 7727 7714   <span class="k">return</span> <span class="i">$This</span><span class="i">->_DetectBondKeys</span><span class="s">(</span><span class="q">'Z'</span><span class="cm">,</span> <span class="q">'Z'</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7728 7715 <span class="s">}</span> | 
|  | 7729 7716 | 
|  | 7730 7717 <span class="c"># A : Any valid perodic table elemnet symbol</span> | 
|  | 7731 <a name="_IsAtom-"></a>7718 <span class="k">sub </span><span class="m">_IsAtom</span> <span class="s">{</span> | 
|  | 7732 7719   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7733 7720 | 
|  | 7734 7721   <span class="k">return</span> <span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 7735 7722 <span class="s">}</span> | 
|  | 7736 7723 | 
|  | 7737 7724 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span> | 
|  | 7738 <a name="_IsHeteroAtom-"></a>7725 <span class="k">sub </span><span class="m">_IsHeteroAtom</span> <span class="s">{</span> | 
|  | 7739 7726   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7740 7727 | 
|  | 7741 7728   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(1|6)$/</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> | 
|  | 7742 7729 <span class="s">}</span> | 
|  | 7743 7730 | 
|  | 7744 7731 <span class="c"># X  : Halogens; F, Cl, Br, I</span> | 
|  | 7745 <a name="_IsHalogenAtom-"></a>7732 <span class="k">sub </span><span class="m">_IsHalogenAtom</span> <span class="s">{</span> | 
|  | 7746 7733   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7747 7734 | 
|  | 7748 7735   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(9|17|35|53)$/</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 7749 7736 <span class="s">}</span> | 
|  | 7750 7737 | 
|  | 7751 7738 <span class="c"># Z  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span> | 
|  | 7752 <a name="_IsOtherAtom-"></a>7739 <span class="k">sub </span><span class="m">_IsOtherAtom</span> <span class="s">{</span> | 
|  | 7753 7740   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7754 7741 | 
|  | 7755 7742   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(1|6|7|8|9|14|15|16|17|35|53)$/</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> | 
|  | 7756 7743 <span class="s">}</span> | 
|  | 7757 7744 | 
|  | 7758 7745 <span class="c"># Detect atom keys like Cl, Br and so on...</span> | 
|  | 7759 7746 <span class="c">#</span> | 
|  | 7760 <a name="_DetectAtomKeys-"></a>7747 <span class="k">sub </span><span class="m">_DetectAtomKeys</span> <span class="s">{</span> | 
|  | 7761 7748   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7762 7749   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7763 7750 | 
|  | 7764 7751   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7765 7752   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 7766 7753     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7767 7754       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 7768 7755     <span class="s">}</span> | 
|  | 7769 7756     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$IsInRing</span><span class="s">)</span> && <span class="i">$IsInRing</span> && !<span class="i">$Atom</span><span class="i">->IsInRing</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7770 7757       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 7771 7758     <span class="s">}</span> | 
|  | 7772 7759     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7773 7760       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7774 7761         <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 7775 7762       <span class="s">}</span> | 
|  | 7776 7763     <span class="s">}</span> | 
|  | 7777 7764     <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 7778 7765     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> && <span class="i">$KeyValue</span> < <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7779 7766       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 7780 7767     <span class="s">}</span> | 
|  | 7781 7768     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7782 7769       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 7783 7770       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 7784 7771     <span class="s">}</span> | 
|  | 7785 7772   <span class="s">}</span> | 
|  | 7786 7773   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 7787 7774 <span class="s">}</span> | 
|  | 7788 7775 | 
|  | 7789 7776 <span class="c"># Detect bond keys like S-S, N-O and so on...</span> | 
|  | 7790 7777 <span class="c">#</span> | 
|  | 7791 <a name="_DetectBondKeys-"></a>7778 <span class="k">sub </span><span class="m">_DetectBondKeys</span> <span class="s">{</span> | 
|  | 7792 7779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7793 7780   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7794 7781 | 
|  | 7795 7782   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7796 7783 | 
|  | 7797 7784   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7798 7785   <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Bonds</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 7799 7786     <span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="s">)</span> = <span class="i">$Bond</span><span class="i">->GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7800 7787     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7801 7788       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> | 
|  | 7802 7789     <span class="s">}</span> | 
|  | 7803 7790     <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 7804 7791     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> && <span class="i">$KeyValue</span> < <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7805 7792       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> | 
|  | 7806 7793     <span class="s">}</span> | 
|  | 7807 7794     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7808 7795       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 7809 7796       <span class="k">last</span> <span class="j">BOND</span><span class="sc">;</span> | 
|  | 7810 7797     <span class="s">}</span> | 
|  | 7811 7798   <span class="s">}</span> | 
|  | 7812 7799   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 7813 7800 <span class="s">}</span> | 
|  | 7814 7801 | 
|  | 7815 7802 <span class="c"># Detect atom neighborhood keys like ON(C)C, OC(O)O and so on.</span> | 
|  | 7816 7803 <span class="c">#</span> | 
|  | 7817 <a name="_DetectAtomNeighborhoodKeys-"></a>7804 <span class="k">sub </span><span class="m">_DetectAtomNeighborhoodKeys</span> <span class="s">{</span> | 
|  | 7818 7805   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7819 7806   <span class="k">my</span><span class="s">(</span><span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7820 7807 | 
|  | 7821 7808   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7822 7809 | 
|  | 7823 7810   <span class="j">CENTRALATOM:</span> <span class="k">for</span> <span class="i">$CentralAtom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 7824 7811     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7825 7812       <span class="k">next</span> <span class="j">CENTRALATOM</span><span class="sc">;</span> | 
|  | 7826 7813     <span class="s">}</span> | 
|  | 7827 7814     <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 7828 7815     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> && <span class="i">$KeyValue</span> < <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7829 7816       <span class="k">next</span> <span class="j">CENTRALATOM</span><span class="sc">;</span> | 
|  | 7830 7817     <span class="s">}</span> | 
|  | 7831 7818     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7832 7819       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 7833 7820       <span class="k">last</span> <span class="j">CENTRALATOM</span><span class="sc">;</span> | 
|  | 7834 7821     <span class="s">}</span> | 
|  | 7835 7822   <span class="s">}</span> | 
|  | 7836 7823   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 7837 7824 <span class="s">}</span> | 
|  | 7838 7825 | 
|  | 7839 7826 <span class="c"># Detect bond neighborhood keys like A%Anot%A%A and so on.</span> | 
|  | 7840 7827 <span class="c">#</span> | 
|  | 7841 <a name="_DetectBondNeighborhoodKeys-"></a>7828 <span class="k">sub </span><span class="m">_DetectBondNeighborhoodKeys</span> <span class="s">{</span> | 
|  | 7842 7829   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$BondAtomMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7843 7830   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomIndex</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$BondAtomSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> <span class="s">)</span><span class="sc">;</span> | 
|  | 7844 7831 | 
|  | 7845 7832   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 7846 7833   <span class="s">(</span><span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$BondAtomMinHydrogenCountRef</span><span class="s">)</span> ? <span class="s">(</span> <span class="i">@</span>{<span class="i">$BondAtomMinHydrogenCountRef</span>} <span class="s">)</span> <span class="co">:</span> <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7847 7834 | 
|  | 7848 7835   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7849 7836   <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Bonds</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 7850 7837     <span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="s">)</span> = <span class="i">$Bond</span><span class="i">->GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7851 7838 | 
|  | 7852 7839     <span class="c"># Match bond first...</span> | 
|  | 7853 7840     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7854 7841       <span class="s">(</span><span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="s">)</span> = <span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7855 7842     <span class="s">}</span> | 
|  | 7856 7843     <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7857 7844       <span class="s">(</span><span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="s">)</span> = <span class="s">(</span><span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7858 7845     <span class="s">}</span> | 
|  | 7859 7846     <span class="k">else</span> <span class="s">{</span> | 
|  | 7860 7847       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> | 
|  | 7861 7848     <span class="s">}</span> | 
|  | 7862 7849     <span class="c"># Match neighbors of bonded atoms...</span> | 
|  | 7863 7850     <span class="k">for</span> <span class="i">$BondAtomIndex</span> <span class="s">(</span><span class="n">0</span> .. <span class="n">1</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7864 7851       <span class="i">$MinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 7865 7852       <span class="i">@NbrsToExcludeFromMatch</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7866 7853 | 
|  | 7867 7854       <span class="k">if</span> <span class="s">(</span><span class="i">$BondAtomIndex</span> == <span class="n">0</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7868 7855         <span class="i">$BondAtom</span> = <span class="i">$MatchedBondAtom1</span><span class="sc">;</span> | 
|  | 7869 7856         <span class="i">$BondAtomSymbol</span> = <span class="i">$BondAtomSymbol1</span><span class="sc">;</span> | 
|  | 7870 7857         <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="sc">;</span> | 
|  | 7871 7858       <span class="s">}</span> | 
|  | 7872 7859       <span class="k">elsif</span> <span class="s">(</span><span class="i">$BondAtomIndex</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7873 7860         <span class="i">$BondAtom</span> = <span class="i">$MatchedBondAtom2</span><span class="sc">;</span> | 
|  | 7874 7861         <span class="i">$BondAtomSymbol</span> = <span class="i">$BondAtomSymbol2</span><span class="sc">;</span> | 
|  | 7875 7862         <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$MatchedBondAtom1</span><span class="sc">;</span> | 
|  | 7876 7863       <span class="s">}</span> | 
|  | 7877 7864 | 
|  | 7878 7865       <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> && <span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span>->[<span class="i">$BondAtomIndex</span>]<span class="s">)</span><span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrAtomSymbolsRef</span>->[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7879 7866       <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span><span class="s">)</span> && <span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span>->[<span class="i">$BondAtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrBondSymbolsRef</span>->[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7880 7867       <span class="i">@NbrMinHydrogenCount</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> && <span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span>->[<span class="i">$BondAtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrsMinHydrogenCountRef</span>->[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7881 7868       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$BondAtom</span><span class="cm">,</span> <span class="i">$BondAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrsToExcludeFromMatch</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7882 7869         <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> | 
|  | 7883 7870       <span class="s">}</span> | 
|  | 7884 7871     <span class="s">}</span> | 
|  | 7885 7872     <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 7886 7873     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> && <span class="i">$KeyValue</span> < <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7887 7874       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> | 
|  | 7888 7875     <span class="s">}</span> | 
|  | 7889 7876     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7890 7877       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 7891 7878       <span class="k">last</span> <span class="j">BOND</span><span class="sc">;</span> | 
|  | 7892 7879     <span class="s">}</span> | 
|  | 7893 7880   <span class="s">}</span> | 
|  | 7894 7881   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 7895 7882 <span class="s">}</span> | 
|  | 7896 7883 | 
|  | 7897 7884 <span class="c"># Detect extended atom neighborhood keys like QHAQH, QHAAQH, and so on...</span> | 
|  | 7898 7885 <span class="c">#</span> | 
|  | 7899 <a name="_DetectExtendedAtomNeighborhoodKeys-"></a>7886 <span class="k">sub </span><span class="m">_DetectExtendedAtomNeighborhoodKeys</span> <span class="s">{</span> | 
|  | 7900 7887   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtomsSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomsBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 7901 7888   <span class="k">my</span><span class="s">(</span><span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$FirstCentralAtomIndex</span><span class="cm">,</span> <span class="i">$LastCentralAtomIndex</span><span class="cm">,</span> <span class="i">$NumOfCentralAtoms</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7902 7889 | 
|  | 7903 7890   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7904 7891 | 
|  | 7905 7892   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7906 7893   <span class="i">$NumOfCentralAtoms</span> = <span class="i">@</span>{<span class="i">$CentralAtomsSymbolsRef</span>}<span class="sc">;</span> | 
|  | 7907 7894   <span class="i">$FirstCentralAtomIndex</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7908 7895   <span class="i">$LastCentralAtomIndex</span> = <span class="i">$NumOfCentralAtoms</span> - <span class="n">1</span><span class="sc">;</span> | 
|  | 7909 7896 | 
|  | 7910 7897   <span class="c"># Retrieve first central atom information...</span> | 
|  | 7911 7898   <span class="k">my</span><span class="s">(</span><span class="i">$FirstCentralAtomSymbol</span><span class="cm">,</span> <span class="i">$FirstCentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7912 7899   <span class="i">$FirstCentralAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>->[<span class="i">$FirstCentralAtomIndex</span>]<span class="sc">;</span> | 
|  | 7913 7900   <span class="i">$FirstCentralAtomMinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>->[<span class="i">$FirstCentralAtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span> | 
|  | 7914 7901 | 
|  | 7915 7902   <span class="c"># Retrieve last central atom information...</span> | 
|  | 7916 7903   <span class="k">my</span><span class="s">(</span><span class="i">$LastCentralAtomSymbol</span><span class="cm">,</span> <span class="i">$LastCentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7917 7904   <span class="i">$LastCentralAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>->[<span class="i">$LastCentralAtomIndex</span>]<span class="sc">;</span> | 
|  | 7918 7905   <span class="i">$LastCentralAtomMinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>->[<span class="i">$LastCentralAtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span> | 
|  | 7919 7906 | 
|  | 7920 7907   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomPathRef</span><span class="cm">,</span> <span class="i">$AtomPathsRef</span><span class="cm">,</span> <span class="i">$FirstAtomIndex</span><span class="cm">,</span> <span class="i">$LastAtomIndex</span><span class="cm">,</span> <span class="i">$AtomIndex</span><span class="cm">,</span> <span class="i">$FirstPathAtom</span><span class="cm">,</span> <span class="i">$LastPathAtom</span><span class="cm">,</span> <span class="i">$FirstPathAtomID</span><span class="cm">,</span> <span class="i">$LastPathAtomID</span><span class="cm">,</span> <span class="i">$DetectedPathID</span><span class="cm">,</span> <span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="cm">,</span> <span class="i">$PreviousPathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$NextAtomSymbol</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> <span class="i">%AlreadyDetectedPaths</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7921 7908 | 
|  | 7922 7909   <span class="c"># Go over all the atoms...</span> | 
|  | 7923 7910   <span class="c">#</span> | 
|  | 7924 7911   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span> | 
|  | 7925 7912     <span class="c"># Match first central atom...</span> | 
|  | 7926 7913     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$FirstCentralAtomSymbol</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="i">$FirstCentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7927 7914       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 7928 7915     <span class="s">}</span> | 
|  | 7929 7916     <span class="c"># Get atom paths starting from matched central atom with length equal to NumOfCentralAtoms...</span> | 
|  | 7930 7917     <span class="c">#</span> | 
|  | 7931 7918     <span class="i">$AtomPathsRef</span> = <span class="i">$Molecule</span><span class="i">->GetAllAtomPathsStartingAtWithLength</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$NumOfCentralAtoms</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7932 7919     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$AtomPathsRef</span><span class="s">)</span> && <span class="i">@</span>{<span class="i">$AtomPathsRef</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7933 7920       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 7934 7921     <span class="s">}</span> | 
|  | 7935 7922     <span class="j">ATOMPATH:</span> <span class="k">for</span> <span class="i">$AtomPathRef</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$AtomPathsRef</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7936 7923       <span class="i">$FirstAtomIndex</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 7937 7924       <span class="i">$FirstPathAtom</span> = <span class="i">$AtomPathRef</span>->[<span class="i">$FirstAtomIndex</span>]<span class="sc">;</span> | 
|  | 7938 7925       <span class="i">$LastAtomIndex</span> = <span class="i">@</span>{<span class="i">$AtomPathRef</span>} - <span class="n">1</span><span class="sc">;</span> | 
|  | 7939 7926       <span class="i">$LastPathAtom</span> = <span class="i">$AtomPathRef</span>->[<span class="i">$LastAtomIndex</span>]<span class="sc">;</span> | 
|  | 7940 7927 | 
|  | 7941 7928       <span class="c"># Match last central atom to the last atom in path...</span> | 
|  | 7942 7929       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$LastPathAtom</span><span class="cm">,</span> <span class="i">$LastCentralAtomSymbol</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="i">$LastCentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7943 7930         <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span> | 
|  | 7944 7931       <span class="s">}</span> | 
|  | 7945 7932 | 
|  | 7946 7933       <span class="c"># Match other path atoms with central atoms..</span> | 
|  | 7947 7934       <span class="k">for</span> <span class="i">$AtomIndex</span> <span class="s">(</span><span class="i">$FirstAtomIndex</span> .. <span class="i">$LastAtomIndex</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7948 7935         <span class="i">$PathAtom</span> = <span class="i">$AtomPathRef</span>->[<span class="i">$AtomIndex</span>]<span class="sc">;</span> | 
|  | 7949 7936         <span class="i">$AtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>->[<span class="i">$AtomIndex</span>]<span class="sc">;</span> | 
|  | 7950 7937         <span class="i">$MinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>->[<span class="i">$AtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span> | 
|  | 7951 7938 | 
|  | 7952 7939         <span class="i">@NbrsToExcludeFromMatch</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7953 7940         <span class="k">if</span> <span class="s">(</span><span class="i">$AtomIndex</span> == <span class="i">$FirstAtomIndex</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7954 7941           <span class="i">$NextPathAtom</span> = <span class="i">$AtomPathRef</span>->[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="k">undef</span><span class="sc">;</span> | 
|  | 7955 7942           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="sc">;</span> | 
|  | 7956 7943         <span class="s">}</span> | 
|  | 7957 7944         <span class="k">elsif</span> <span class="s">(</span><span class="i">$AtomIndex</span> == <span class="i">$LastAtomIndex</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7958 7945           <span class="i">$NextPathAtom</span> = <span class="k">undef</span><span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="i">$AtomPathRef</span>->[<span class="i">$AtomIndex</span> - <span class="n">1</span>]<span class="sc">;</span> | 
|  | 7959 7946           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$PreviousPathAtom</span><span class="sc">;</span> | 
|  | 7960 7947         <span class="s">}</span> | 
|  | 7961 7948         <span class="k">else</span> <span class="s">{</span> | 
|  | 7962 7949           <span class="i">$NextPathAtom</span> = <span class="i">$AtomPathRef</span>->[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="i">$AtomPathRef</span>->[<span class="i">$AtomIndex</span> - <span class="n">1</span>]<span class="sc">;</span> | 
|  | 7963 7950           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="s">(</span><span class="i">$PreviousPathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7964 7951         <span class="s">}</span> | 
|  | 7965 7952 | 
|  | 7966 7953         <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> && <span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span>->[<span class="i">$AtomIndex</span>]<span class="s">)</span><span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrAtomSymbolsRef</span>->[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7967 7954         <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span><span class="s">)</span> && <span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span>->[<span class="i">$AtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrBondSymbolsRef</span>->[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7968 7955         <span class="i">@NbrMinHydrogenCount</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> && <span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span>->[<span class="i">$AtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrsMinHydrogenCountRef</span>->[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7969 7956 | 
|  | 7970 7957         <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrsToExcludeFromMatch</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7971 7958           <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span> | 
|  | 7972 7959         <span class="s">}</span> | 
|  | 7973 7960         <span class="c"># Match path bond symbols...</span> | 
|  | 7974 7961         <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsBondSymbolsRef</span><span class="s">)</span> && <span class="s">(</span><span class="i">$AtomIndex</span> < <span class="i">$LastAtomIndex</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7975 7962           <span class="i">$NextAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>->[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span> | 
|  | 7976 7963           <span class="i">$BondSymbol</span> = <span class="i">$CentralAtomsBondSymbolsRef</span>->[<span class="i">$AtomIndex</span>]<span class="sc">;</span> | 
|  | 7977 7964           <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 7978 7965           <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$NextAtomSymbol</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7979 7966             <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span> | 
|  | 7980 7967           <span class="s">}</span> | 
|  | 7981 7968         <span class="s">}</span> | 
|  | 7982 7969       <span class="s">}</span> | 
|  | 7983 7970       <span class="c"># Keep track of the first and last atom ID in the matched path to avoid double counting of paths...</span> | 
|  | 7984 7971       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> || !<span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7985 7972         <span class="i">$FirstPathAtomID</span> = <span class="i">$FirstPathAtom</span><span class="i">->GetID</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> <span class="i">$LastPathAtomID</span> = <span class="i">$LastPathAtom</span><span class="i">->GetID</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 7986 7973         <span class="i">$DetectedPathID</span> = <span class="s">(</span><span class="i">$FirstPathAtomID</span> < <span class="i">$LastPathAtomID</span><span class="s">)</span> ? <span class="q">"${FirstPathAtomID}-${LastPathAtomID}"</span> <span class="co">:</span> <span class="q">"${LastPathAtomID}-${FirstPathAtomID}"</span><span class="sc">;</span> | 
|  | 7987 7974         <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7988 7975           <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>} += <span class="n">1</span><span class="sc">;</span> | 
|  | 7989 7976           <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span> | 
|  | 7990 7977         <span class="s">}</span> | 
|  | 7991 7978         <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>} = <span class="n">1</span><span class="sc">;</span> | 
|  | 7992 7979       <span class="s">}</span> | 
|  | 7993 7980 | 
|  | 7994 7981       <span class="i">$KeyValue</span>++<span class="sc">;</span> | 
|  | 7995 7982       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> && <span class="i">$KeyValue</span> < <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 7996 7983         <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span> | 
|  | 7997 7984       <span class="s">}</span> | 
|  | 7998 7985       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 7999 7986         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 8000 7987         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span> | 
|  | 8001 7988       <span class="s">}</span> | 
|  | 8002 7989     <span class="s">}</span> | 
|  | 8003 7990   <span class="s">}</span> | 
|  | 8004 7991   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span> | 
|  | 8005 7992 <span class="s">}</span> | 
|  | 8006 7993 | 
|  | 8007 7994 <span class="c"># Go over the atoms attached to central atom and match 'em against specified</span> | 
|  | 8008 7995 <span class="c"># neighborhood atom symbol and bond symbols...</span> | 
|  | 8009 7996 <span class="c">#</span> | 
|  | 8010 <a name="_DoesAtomNeighborhoodMatch-"></a>7997 <span class="k">sub </span><span class="m">_DoesAtomNeighborhoodMatch</span> <span class="s">{</span> | 
|  | 8011 7998   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$NbrsToExcludeRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8012 7999 | 
|  | 8013 8000   <span class="c"># Match central atom first...</span> | 
|  | 8014 8001   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8015 8002     <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8016 8003   <span class="s">}</span> | 
|  | 8017 8004   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8018 8005     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8019 8006       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8020 8007     <span class="s">}</span> | 
|  | 8021 8008   <span class="s">}</span> | 
|  | 8022 8009   <span class="k">if</span> <span class="s">(</span>!<span class="k">defined</span> <span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8023 8010     <span class="c"># No neighbors to match...</span> | 
|  | 8024 8011     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span> | 
|  | 8025 8012   <span class="s">}</span> | 
|  | 8026 8013 | 
|  | 8027 8014   <span class="c"># Match neighbors...</span> | 
|  | 8028 8015   <span class="k">my</span><span class="s">(</span><span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$Index</span><span class="cm">,</span> <span class="i">$NbrAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrBondSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMatchCount</span><span class="cm">,</span> <span class="i">$MinNbrAtomMatchCount</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">%NbrAtomAlreadyMatchedMap</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8029 8016 | 
|  | 8030 8017   <span class="i">$MinNbrAtomMatchCount</span> = <span class="i">@$NbrAtomSymbolsRef</span><span class="sc">;</span> | 
|  | 8031 8018   <span class="k">if</span> <span class="s">(</span>!<span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8032 8019     <span class="c"># No neighbors to match...</span> | 
|  | 8033 8020     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span> | 
|  | 8034 8021   <span class="s">}</span> | 
|  | 8035 8022 | 
|  | 8036 8023   <span class="i">$NbrAtomMatchCount</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 8037 8024 | 
|  | 8038 8025   <span class="i">%NbrAtomAlreadyMatchedMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8039 8026   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 8040 8027 | 
|  | 8041 8028   <span class="i">@CentralAtomNeighbors</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8042 8029   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsToExcludeRef</span><span class="s">)</span> && <span class="i">@</span>{<span class="i">$NbrsToExcludeRef</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 8043 8030     <span class="k">push</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="i">->GetNeighbors</span><span class="s">(</span><span class="i">@</span>{<span class="i">$NbrsToExcludeRef</span>}<span class="s">)</span><span class="sc">;</span> | 
|  | 8044 8031   <span class="s">}</span> | 
|  | 8045 8032   <span class="k">else</span> <span class="s">{</span> | 
|  | 8046 8033     <span class="k">push</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="i">->GetNeighbors</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8047 8034   <span class="s">}</span> | 
|  | 8048 8035 | 
|  | 8049 8036   <span class="j">NBRATOM:</span> <span class="k">for</span> <span class="i">$NbrAtom</span> <span class="s">(</span><span class="i">@CentralAtomNeighbors</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8050 8037     <span class="j">NBRATOMSYMBOL:</span> <span class="k">for</span> <span class="i">$Index</span> <span class="s">(</span><span class="n">0</span> .. <span class="s">(</span><span class="i">$MinNbrAtomMatchCount</span> - <span class="n">1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8051 8038       <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$NbrAtomAlreadyMatchedMap</span>{<span class="i">$Index</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 8052 8039         <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span> | 
|  | 8053 8040       <span class="s">}</span> | 
|  | 8054 8041       <span class="i">$NbrAtomSymbol</span> = <span class="i">$NbrAtomSymbolsRef</span>->[<span class="i">$Index</span>]<span class="sc">;</span> | 
|  | 8055 8042       <span class="i">$NbrBondSymbol</span> = <span class="i">$NbrBondSymbolsRef</span>->[<span class="i">$Index</span>]<span class="sc">;</span> | 
|  | 8056 8043       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrBondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8057 8044         <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span> | 
|  | 8058 8045       <span class="s">}</span> | 
|  | 8059 8046 | 
|  | 8060 8047       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span> && <span class="i">$NbrAtomMinHydrogenCountRef</span>->[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span> | 
|  | 8061 8048         <span class="i">$NbrAtomMinHydrogenCount</span> = <span class="i">$NbrAtomMinHydrogenCountRef</span>->[<span class="i">$Index</span>]<span class="sc">;</span> | 
|  | 8062 8049         <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8063 8050           <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span> | 
|  | 8064 8051         <span class="s">}</span> | 
|  | 8065 8052       <span class="s">}</span> | 
|  | 8066 8053       <span class="i">$NbrAtomAlreadyMatchedMap</span>{<span class="i">$Index</span>} = <span class="i">$Index</span><span class="sc">;</span> | 
|  | 8067 8054       <span class="i">$NbrAtomMatchCount</span>++<span class="sc">;</span> | 
|  | 8068 8055 | 
|  | 8069 8056       <span class="k">if</span> <span class="s">(</span><span class="i">$NbrAtomMatchCount</span> == <span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8070 8057         <span class="k">last</span> <span class="j">NBRATOM</span><span class="sc">;</span> | 
|  | 8071 8058       <span class="s">}</span> | 
|  | 8072 8059       <span class="k">next</span> <span class="j">NBRATOM</span><span class="sc">;</span> | 
|  | 8073 8060     <span class="s">}</span> | 
|  | 8074 8061   <span class="s">}</span> | 
|  | 8075 8062 | 
|  | 8076 8063   <span class="k">return</span> <span class="s">(</span><span class="i">$NbrAtomMatchCount</span> == <span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8077 8064 <span class="s">}</span> | 
|  | 8078 8065 | 
|  | 8079 8066 <span class="c"># Checks whether bond atoms match bond symbols...</span> | 
|  | 8080 8067 <span class="c">#</span> | 
|  | 8081 <a name="_DoBondAtomsMatchBondSymbols-"></a>8068 <span class="k">sub </span><span class="m">_DoBondAtomsMatchBondSymbols</span> <span class="s">{</span> | 
|  | 8082 8069   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8083 8070   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="cm">,</span> <span class="i">$ReverseMinHydrogenCountMatch</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8084 8071 | 
|  | 8085 8072   <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 8086 8073 | 
|  | 8087 8074   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span> && <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8088 8075     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span> && <span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8089 8076       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8090 8077     <span class="s">}</span> | 
|  | 8091 8078   <span class="s">}</span> | 
|  | 8092 8079   <span class="k">else</span> <span class="s">{</span> | 
|  | 8093 8080     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span> && <span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8094 8081       <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 8095 8082     <span class="s">}</span> | 
|  | 8096 8083     <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span> && <span class="i">$This</span><span class="i">->_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8097 8084       <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">1</span><span class="sc">;</span> | 
|  | 8098 8085     <span class="s">}</span> | 
|  | 8099 8086     <span class="k">else</span> <span class="s">{</span> | 
|  | 8100 8087       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8101 8088     <span class="s">}</span> | 
|  | 8102 8089   <span class="s">}</span> | 
|  | 8103 8090 | 
|  | 8104 8091   <span class="c"># Match any hydrogen count...</span> | 
|  | 8105 8092   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="s">)</span> || <span class="k">defined</span><span class="s">(</span><span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8106 8093     <span class="k">my</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$MinHydrogenCountMatchAtom2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8107 8094 | 
|  | 8108 8095     <span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$MinHydrogenCountMatchAtom2</span><span class="s">)</span> = <span class="i">$ReverseMinHydrogenCountMatch</span> ? <span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$Atom1</span><span class="s">)</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8109 8096     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$Atom1MinHydrogenCount</span> <span class="s">)</span> <span class="s">{</span> | 
|  | 8110 8097       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8111 8098         <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8112 8099       <span class="s">}</span> | 
|  | 8113 8100     <span class="s">}</span> | 
|  | 8114 8101     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$Atom2MinHydrogenCount</span> <span class="s">)</span> <span class="s">{</span> | 
|  | 8115 8102       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom2</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8116 8103         <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8117 8104       <span class="s">}</span> | 
|  | 8118 8105     <span class="s">}</span> | 
|  | 8119 8106   <span class="s">}</span> | 
|  | 8120 8107 | 
|  | 8121 8108   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> && <span class="i">$BondSymbol</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8122 8109     <span class="k">my</span><span class="s">(</span><span class="i">$Bond</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8123 8110     <span class="i">$Bond</span> = <span class="i">$Atom1</span><span class="i">->GetBondToAtom</span><span class="s">(</span><span class="i">$Atom2</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8124 8111     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">->_DoesBondMatchesSymbol</span><span class="s">(</span><span class="i">$Bond</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8125 8112       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8126 8113     <span class="s">}</span> | 
|  | 8127 8114   <span class="s">}</span> | 
|  | 8128 8115   <span class="k">return</span> <span class="n">1</span><span class="sc">;</span> | 
|  | 8129 8116 <span class="s">}</span> | 
|  | 8130 8117 | 
|  | 8131 8118 <span class="c"># Match both implicit and explicit hydrogens on central atom...</span> | 
|  | 8132 <a name="_DoesAtomMinHydrogenCountMatch-"></a>8119 <span class="k">sub </span><span class="m">_DoesAtomMinHydrogenCountMatch</span> <span class="s">{</span> | 
|  | 8133 8120   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8134 8121 | 
|  | 8135 8122   <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinHydrogenCount</span><span class="s">)</span> && <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8136 8123     <span class="k">return</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8137 8124   <span class="s">}</span> | 
|  | 8138 8125   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetNumOfHydrogens</span><span class="s">(</span><span class="s">)</span> <  <span class="i">$MinHydrogenCount</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> | 
|  | 8139 8126 <span class="s">}</span> | 
|  | 8140 8127 | 
|  | 8141 8128 <span class="c"># Checks whether atom matches supported symbol...</span> | 
|  | 8142 8129 <span class="c">#</span> | 
|  | 8143 <a name="_DoesAtomMatchesSymbol-"></a>8130 <span class="k">sub </span><span class="m">_DoesAtomMatchesSymbol</span> <span class="s">{</span> | 
|  | 8144 8131   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="cm">,</span> <span class="i">$Symbol</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8145 8132   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8146 8133 | 
|  | 8147 8134   <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 8148 8135   <span class="j">SYMBOL:</span> <span class="s">{</span> | 
|  | 8149 8136     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^Q$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">->_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8150 8137     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^X$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">->_IsHalogenAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8151 8138     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^Z$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">->_IsOtherAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8152 8139     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^A$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">->_IsAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8153 8140     <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Atom</span><span class="i">->GetAtomSymbol</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^$Symbol$/i</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> | 
|  | 8154 8141   <span class="s">}</span> | 
|  | 8155 8142   <span class="k">return</span> <span class="i">$Status</span><span class="sc">;</span> | 
|  | 8156 8143 <span class="s">}</span> | 
|  | 8157 8144 | 
|  | 8158 8145 <span class="c"># Checks whether bond matches supported symbol...</span> | 
|  | 8159 8146 <span class="c">#</span> | 
|  | 8160 <a name="_DoesBondMatchesSymbol-"></a>8147 <span class="k">sub </span><span class="m">_DoesBondMatchesSymbol</span> <span class="s">{</span> | 
|  | 8161 8148   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$Symbol</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8162 8149   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8163 8150 | 
|  | 8164 8151   <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 8165 8152   <span class="j">SYMBOL:</span> <span class="s">{</span> | 
|  | 8166 8153     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(1|-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsSingle</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8167 8154     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(2|=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsDouble</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8168 8155     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(3|#|T)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsTriple</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8169 8156     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(1.5|%)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8170 8157 | 
|  | 8171 8158     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\~$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsSingle</span><span class="s">(</span><span class="s">)</span> || <span class="i">$Bond</span><span class="i">->IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8172 8159 | 
|  | 8173 8160     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\$$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsInRing</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8174 8161     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\!$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsInRing</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8175 8162 | 
|  | 8176 8163     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsInRing</span><span class="s">(</span><span class="s">)</span> && <span class="i">$Bond</span><span class="i">->IsSingle</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8177 8164     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsInRing</span><span class="s">(</span><span class="s">)</span> && <span class="i">$Bond</span><span class="i">->IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8178 8165     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$#|\$T)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsInRing</span><span class="s">(</span><span class="s">)</span> && <span class="i">$Bond</span><span class="i">->IsTriple</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8179 8166 | 
|  | 8180 8167     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8181 8168     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%not-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsSingle</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8182 8169     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%not=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">->IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">->IsDouble</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 8183 8170 | 
|  | 8184 8171     <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span> | 
|  | 8185 8172   <span class="s">}</span> | 
|  | 8186 8173   <span class="k">return</span> <span class="i">$Status</span><span class="sc">;</span> | 
|  | 8187 8174 <span class="s">}</span> | 
|  | 8188 8175 | 
|  | 8189 8176 <span class="c"># Cache  appropriate molecule data...</span> | 
|  | 8190 8177 <span class="c">#</span> | 
|  | 8191 <a name="_SetupMoleculeDataCache-"></a>8178 <span class="k">sub </span><span class="m">_SetupMoleculeDataCache</span> <span class="s">{</span> | 
|  | 8192 8179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8193 8180 | 
|  | 8194 8181   <span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}} = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="i">->GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8195 8182   <span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Bonds</span>}} = <span class="i">$This</span><span class="i">->GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="i">->GetBonds</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8196 8183 | 
|  | 8197 8184   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 8198 8185 <span class="s">}</span> | 
|  | 8199 8186 | 
|  | 8200 8187 <span class="c"># Clear cached molecule data...</span> | 
|  | 8201 8188 <span class="c">#</span> | 
|  | 8202 <a name="_ClearMoleculeDataCache-"></a>8189 <span class="k">sub </span><span class="m">_ClearMoleculeDataCache</span> <span class="s">{</span> | 
|  | 8203 8190   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8204 8191 | 
|  | 8205 8192   <span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Atoms</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8206 8193   <span class="i">@</span>{<span class="i">$This</span>->{<span class="w">Bonds</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8207 8194 | 
|  | 8208 8195   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span> | 
|  | 8209 8196 <span class="s">}</span> | 
|  | 8210 8197 | 
|  | 8211 8198 <span class="c"># Return a string containg data for MACCSKeys object...</span> | 
|  | 8212 <a name="StringifyMACCSKeys-"></a>8199 <span class="k">sub </span><span class="m">StringifyMACCSKeys</span> <span class="s">{</span> | 
|  | 8213 8200   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 8214 8201   <span class="k">my</span><span class="s">(</span><span class="i">$MACCSKeysString</span><span class="s">)</span><span class="sc">;</span> | 
|  | 8215 8202 | 
|  | 8216 8203   <span class="c"># Type of Keys...</span> | 
|  | 8217 8204   <span class="i">$MACCSKeysString</span> = <span class="q">"Type: $This->{Type}; Size: $This->{Size}"</span><span class="sc">;</span> | 
|  | 8218 8205 | 
|  | 8219 8206   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8220 8207     <span class="i">$MACCSKeysString</span> .= <span class="q">"; FingerprintsBitVector: < $This->{FingerprintsBitVector} >"</span><span class="sc">;</span> | 
|  | 8221 8208   <span class="s">}</span> | 
|  | 8222 8209   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>->{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span> | 
|  | 8223 8210     <span class="i">$MACCSKeysString</span> .= <span class="q">"; FingerprintsVector: < $This->{FingerprintsVector} >"</span><span class="sc">;</span> | 
|  | 8224 8211   <span class="s">}</span> | 
|  | 8225 8212 | 
|  | 8226 8213   <span class="k">return</span> <span class="i">$MACCSKeysString</span><span class="sc">;</span> | 
|  | 8227 8214 <span class="s">}</span> | 
|  | 8228 8215 | 
|  | 8229 <a name="EOF-"></a></pre> | 
|  | 8230 <p> </p> | 
|  | 8231 <br /> | 
|  | 8232 <center> | 
|  | 8233 <img src="../../../images/h2o2.png"> | 
|  | 8234 </center> | 
|  | 8235 </body> | 
|  | 8236 </html> |