/*
 * openchemlib-utils v8.15.0
 * Various utilities that extends openchemlib-js like HOSE codes or diastereotopic IDs
 * https://github.com/cheminfo/openchemlib-utils#readme
 *
 * Licensed under the MIT license.
 */
let xAtomicNumber = 0;
/**
 * Returns the atomic number of the X atom
 * @param {import('openchemlib').Molecule} molecule - An instance of a molecule
 * @returns
 */
function getXAtomicNumber(molecule) {
  if (!xAtomicNumber) {
    const OCL = molecule.getOCL();
    xAtomicNumber = OCL.Molecule.getAtomicNoFromLabel('X', OCL.Molecule.cPseudoAtomX);
  }
  return xAtomicNumber;
}

/**
 * Check if a specific atom is a sp3 carbon
 * @param {import('openchemlib').Molecule} molecule
 * @param {number} atomID
 */
function isCsp3(molecule, atomID) {
  if (molecule.getAtomicNo(atomID) !== 6) return false;
  if (molecule.getAtomCharge(atomID) !== 0) return false;
  if (molecule.getImplicitHydrogens(atomID) + molecule.getConnAtoms(atomID) !== 4) {
    return false;
  }
  return true;
}

/**
 * This method put all the chiral centers in the molecule in the same group and racemic
 * @param {import('openchemlib').Molecule} molecule - An instance of a molecule
 * @param {object} [options={}]
 * @param {object} [options.OCL] - openchemlib library
 */
function makeRacemic(molecule) {
  const {
    Molecule
  } = molecule.getOCL();
  // if we don't calculate this we have 2 epimers
  molecule.ensureHelperArrays(Molecule.cHelperCIP);
  // we need to make one group "AND" for chiral (to force to racemic, this means diastereotopic and not enantiotopic)
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (molecule.getAtomParity(i) !== Molecule.cAtomParityNone) {
      molecule.setAtomESR(i, Molecule.cESRTypeAnd, 0); // changed to group 0; TLS 9.Nov.2015
    }
  }
  // after the change we need to recalculate the CIP
  molecule.ensureHelperArrays(Molecule.cHelperCIP);
}

/**
 * Tag an atom to be able to visualize it
 * @param molecule
 * @param iAtom
 */
function tagAtom(molecule, iAtom) {
  const customLabel = `${molecule.getAtomLabel(iAtom)}*`;
  molecule.setAtomCustomLabel(iAtom, customLabel);
  if (molecule.getAtomicNo(iAtom) === 1) {
    molecule.setAtomicNo(iAtom, getXAtomicNumber(molecule));
  } else {
    // we can not use X because we would have problems with valencies if it is
    // expanded hydrogens or not
    // we can not only use a custom label because it does not count for the canonisation
    molecule.setAtomMass(iAtom, molecule.getAtomMass(iAtom) + 5);
  }
  return customLabel;
}

const FULL_HOSE_CODE$1 = 1;
const HOSE_CODE_CUT_C_SP3_SP3$1 = 2;
/**
 * Returns an array of hose code fragments for the specified molecule.
 * @param molecule - The OCL molecule to process.
 * @param options - Options for generating hose codes.
 * @returns An array of hose code fragments.
 */
function getHoseCodesForAtomsAsFragments(molecule, options = {}) {
  const OCL = molecule.getOCL();
  const {
    allowedCustomLabels,
    minSphereSize = 0,
    maxSphereSize = 4,
    kind = FULL_HOSE_CODE$1,
    tagAtoms = [],
    tagAtomFct = tagAtom
  } = options;
  const rootAtoms = options.rootAtoms ? options.rootAtoms.slice() : [];
  molecule = molecule.getCompactCopy();
  if (tagAtoms.length > 0) {
    internalTagAtoms(molecule, tagAtoms, rootAtoms, tagAtomFct);
  } else {
    // this force reordering of atoms in order to have hydrogens at the end
    molecule.ensureHelperArrays(OCL.Molecule.cHelperNeighbours);
  }
  if (rootAtoms.length === 0) {
    for (let j = 0; j < molecule.getAllAtoms(); j++) {
      if (allowedCustomLabels?.includes(molecule.getAtomCustomLabel(j) ?? '') || molecule.getAtomCustomLabel(j)) {
        rootAtoms.push(j);
      }
    }
  }
  const fragments = [];
  // keep track of the atoms when creating the fragment
  const mappings = [];
  let min = 0;
  let max = 0;
  const atomMask = new Array(molecule.getAllAtoms()).fill(false);
  const atomList = new Array(molecule.getAllAtoms());
  for (let sphere = 0; sphere <= maxSphereSize; sphere++) {
    if (max === 0) {
      for (const rootAtom of rootAtoms) {
        atomList[max] = rootAtom;
        atomMask[rootAtom] = true;
        max++;
      }
    } else {
      let newMax = max;
      for (let i = min; i < max; i++) {
        const atom = atomList[i];
        for (let j = 0; j < molecule.getAllConnAtoms(atom); j++) {
          const connAtom = molecule.getConnAtom(atom, j);
          if (!atomMask[connAtom]) {
            switch (kind) {
              case FULL_HOSE_CODE$1:
                atomMask[connAtom] = true;
                atomList[newMax++] = connAtom;
                break;
              case HOSE_CODE_CUT_C_SP3_SP3$1:
                if (!(isCsp3(molecule, atom) && isCsp3(molecule, connAtom))) {
                  atomMask[connAtom] = true;
                  atomList[newMax++] = connAtom;
                }
                break;
              default:
                throw new Error('getHoseCoesForAtom unknown kind');
            }
          }
        }
      }
      min = max;
      max = newMax;
    }
    if (sphere >= minSphereSize) {
      const fragment = new OCL.Molecule(0, 0);
      molecule.copyMoleculeByAtoms(fragment, atomMask, true, mappings);
      // we using atomMapNo field in order to keep track of the original atom number even if we remove hydrogens
      for (let i = 0; i < fragment.getAllAtoms(); i++) {
        fragment.setAtomMapNo(i, mappings.indexOf(i) + 1);
      }
      fragment.removeExplicitHydrogens();
      makeRacemic(fragment);
      // we encode atom characteristics in the query features
      addQueryFeaturesAndRemoveMapNo(fragment, molecule);
      fragments.push(fragment);
    }
  }
  return fragments;
}
/**
 * If the atom is not an halogen, X or an hydrogen
 * we add query features to the atom
 * This includes aromaticity, ring size, number of hydrogens
 * @param fragment
 * @param molecule
 */
function addQueryFeaturesAndRemoveMapNo(fragment, molecule) {
  const Molecule = molecule.getOCL().Molecule;
  for (let i = 0; i < fragment.getAllAtoms(); i++) {
    const mapping = fragment.getAtomMapNo(i) - 1;
    fragment.setAtomMapNo(i, 0);
    if ([1, 9, 17, 35, 53, getXAtomicNumber(molecule)].includes(fragment.getAtomicNo(i))) {
      continue;
    }
    // aromaticity
    const isAromatic = molecule.isAromaticAtom(mapping);
    if (isAromatic) {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFAromatic, true);
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNotAromatic, false);
    } else {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFAromatic, false);
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNotAromatic, true);
    }
    // cycles
    const smallestRing = molecule.getAtomRingSize(mapping);
    switch (smallestRing) {
      case 0:
        break;
      case 3:
        fragment.setAtomQueryFeature(i, Molecule.cAtomQFRingSize3, true);
        break;
      case 4:
        fragment.setAtomQueryFeature(i, Molecule.cAtomQFRingSize4, true);
        break;
      case 5:
        fragment.setAtomQueryFeature(i, Molecule.cAtomQFRingSize5, true);
        break;
      case 6:
        fragment.setAtomQueryFeature(i, Molecule.cAtomQFRingSize6, true);
        break;
      case 7:
        fragment.setAtomQueryFeature(i, Molecule.cAtomQFRingSize7, true);
        break;
      default:
        fragment.setAtomQueryFeature(i, Molecule.cAtomQFRingSizeLarge, true);
    }
    const nbHydrogens = molecule.getAllHydrogens(mapping);
    if (nbHydrogens === 0) {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot0Hydrogen, false);
    } else {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot0Hydrogen, true);
    }
    if (nbHydrogens === 1) {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot1Hydrogen, false);
    } else {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot1Hydrogen, true);
    }
    if (nbHydrogens === 2) {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot2Hydrogen, false);
    } else {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot2Hydrogen, true);
    }
    if (nbHydrogens === 3) {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot3Hydrogen, false);
    } else {
      fragment.setAtomQueryFeature(i, Molecule.cAtomQFNot3Hydrogen, true);
    }
  }
}
// tagging atoms may change the order of the atoms because hydrogens must be at the end of the file
// in order to remember the rootAtoms we will tag before
function internalTagAtoms(molecule, tagAtoms, rootAtoms, tagAtomFct) {
  const OCL = molecule.getOCL();
  if (tagAtoms) {
    for (let i = 0; i < molecule.getAllAtoms(); i++) {
      molecule.setAtomMapNo(i, i + 1);
    }
    if (tagAtoms.length > 0) {
      for (const atom of tagAtoms) {
        tagAtomFct(molecule, atom);
      }
    }
  }
  // this force reordering of atoms in order to have hydrogens at the end
  molecule.ensureHelperArrays(OCL.Molecule.cHelperNeighbours);
  if (rootAtoms.length > 0) {
    const mapping = new Int32Array(molecule.getAllAtoms());
    for (let i = 0; i < molecule.getAllAtoms(); i++) {
      mapping[molecule.getAtomMapNo(i) - 1] = i;
    }
    for (let i = 0; i < rootAtoms.length; i++) {
      rootAtoms[i] = mapping[rootAtoms[i]];
    }
  }
}

/**
 * We need to create an array of atoms
 * that contains an array of pathLength
 * that contains an array of object
 * @param molecule
 * @param options
 * @returns
 */
function getAllAtomsPaths(molecule, options = {}) {
  const {
    maxPathLength = 5
  } = options;
  const allAtomsPaths = [];
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    const oneAtomPaths = [];
    allAtomsPaths.push(oneAtomPaths);
    let atomPaths = [{
      path: [i],
      pathLength: 0
    }];
    oneAtomPaths.push(atomPaths);
    let nextIndexes = [0];
    let nextAtoms = [i];
    for (let sphere = 1; sphere <= maxPathLength; sphere++) {
      atomPaths = [];
      oneAtomPaths.push(atomPaths);
      const currentIndexes = nextIndexes;
      const currentAtoms = nextAtoms;
      nextIndexes = [];
      nextAtoms = [];
      for (let i = 0; i < currentIndexes.length; i++) {
        const atom = currentAtoms[i];
        const index = currentIndexes[i];
        const previousPath = oneAtomPaths[sphere - 1]?.[index]?.path;
        if (!previousPath) {
          throw new Error(`Unexpected missing previousPath for sphere ${sphere - 1} and index ${index}`);
        }
        for (let conn = 0; conn < molecule.getAllConnAtoms(atom); conn++) {
          const connectedAtom = molecule.getConnAtom(atom, conn);
          if (previousPath.includes(connectedAtom)) continue;
          nextIndexes.push(atomPaths.length);
          nextAtoms.push(connectedAtom);
          atomPaths.push({
            path: [...previousPath, connectedAtom],
            pathLength: sphere
          });
        }
      }
    }
  }
  return allAtomsPaths;
}

/**
 * Ensures that all atoms in the molecule have a unique mapNo.
 * Atoms that already have a mapNo keep it. Atoms without a mapNo
 * are assigned the next available number starting from 1.
 * Throws if the molecule contains duplicate mapNo values.
 * @param molecule - The molecule to process (modified in place)
 */
function ensureMapNo(molecule) {
  const existingMapNo = {};
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    const mapNo = molecule.getAtomMapNo(i);
    if (mapNo) {
      if (existingMapNo[mapNo]) {
        throw new Error('The molecule contains several atoms with the same mapNo');
      }
      existingMapNo[mapNo] = true;
    }
  }
  let nextMapNo = 1;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    const mapNo = molecule.getAtomMapNo(i);
    if (!mapNo) {
      while (existingMapNo[nextMapNo]) {
        nextMapNo++;
      }
      existingMapNo[nextMapNo] = true;
      molecule.setAtomMapNo(i, nextMapNo, false);
    }
  }
}

function getDefaultExportFromCjs (x) {
	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}

function getAugmentedNamespace(n) {
  if (Object.prototype.hasOwnProperty.call(n, '__esModule')) return n;
  var f = n.default;
	if (typeof f == "function") {
		var a = function a () {
			var isInstance = false;
      try {
        isInstance = this instanceof a;
      } catch {}
			if (isInstance) {
        return Reflect.construct(f, arguments, this.constructor);
			}
			return f.apply(this, arguments);
		};
		a.prototype = f.prototype;
  } else a = {};
  Object.defineProperty(a, '__esModule', {value: true});
	Object.keys(n).forEach(function (k) {
		var d = Object.getOwnPropertyDescriptor(n, k);
		Object.defineProperty(a, k, d.get ? d : {
			enumerable: true,
			get: function () {
				return n[k];
			}
		});
	});
	return a;
}

var matrix = {};

// eslint-disable-next-line @typescript-eslint/unbound-method
const toString = Object.prototype.toString;
/**
 * Checks if an object is an instance of an Array (array or typed array, except those that contain bigint values).
 *
 * @param value - Object to check.
 * @returns True if the object is an array or a typed array.
 */
function isAnyArray$1(value) {
  const tag = toString.call(value);
  return tag.endsWith('Array]') && !tag.includes('Big');
}

var libEsm = /*#__PURE__*/Object.freeze({
    __proto__: null,
    isAnyArray: isAnyArray$1
});

var require$$0 = /*@__PURE__*/getAugmentedNamespace(libEsm);

function max(input) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  if (!isAnyArray$1(input)) {
    throw new TypeError('input must be an array');
  }
  if (input.length === 0) {
    throw new TypeError('input must not be empty');
  }
  var _options$fromIndex = options.fromIndex,
    fromIndex = _options$fromIndex === void 0 ? 0 : _options$fromIndex,
    _options$toIndex = options.toIndex,
    toIndex = _options$toIndex === void 0 ? input.length : _options$toIndex;
  if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) {
    throw new Error('fromIndex must be a positive integer smaller than length');
  }
  if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) {
    throw new Error('toIndex must be an integer greater than fromIndex and at most equal to length');
  }
  var maxValue = input[fromIndex];
  for (var i = fromIndex + 1; i < toIndex; i++) {
    if (input[i] > maxValue) maxValue = input[i];
  }
  return maxValue;
}

function min(input) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  if (!isAnyArray$1(input)) {
    throw new TypeError('input must be an array');
  }
  if (input.length === 0) {
    throw new TypeError('input must not be empty');
  }
  var _options$fromIndex = options.fromIndex,
    fromIndex = _options$fromIndex === void 0 ? 0 : _options$fromIndex,
    _options$toIndex = options.toIndex,
    toIndex = _options$toIndex === void 0 ? input.length : _options$toIndex;
  if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) {
    throw new Error('fromIndex must be a positive integer smaller than length');
  }
  if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) {
    throw new Error('toIndex must be an integer greater than fromIndex and at most equal to length');
  }
  var minValue = input[fromIndex];
  for (var i = fromIndex + 1; i < toIndex; i++) {
    if (input[i] < minValue) minValue = input[i];
  }
  return minValue;
}

function rescale$1(input) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  if (!isAnyArray$1(input)) {
    throw new TypeError('input must be an array');
  } else if (input.length === 0) {
    throw new TypeError('input must not be empty');
  }
  var output;
  if (options.output !== undefined) {
    if (!isAnyArray$1(options.output)) {
      throw new TypeError('output option must be an array if specified');
    }
    output = options.output;
  } else {
    output = new Array(input.length);
  }
  var currentMin = min(input);
  var currentMax = max(input);
  if (currentMin === currentMax) {
    throw new RangeError('minimum and maximum input values are equal. Cannot rescale a constant array');
  }
  var _options$min = options.min,
    minValue = _options$min === void 0 ? options.autoMinMax ? currentMin : 0 : _options$min,
    _options$max = options.max,
    maxValue = _options$max === void 0 ? options.autoMinMax ? currentMax : 1 : _options$max;
  if (minValue >= maxValue) {
    throw new RangeError('min option must be smaller than max option');
  }
  var factor = (maxValue - minValue) / (currentMax - currentMin);
  for (var i = 0; i < input.length; i++) {
    output[i] = (input[i] - currentMin) * factor + minValue;
  }
  return output;
}

var libEs6 = /*#__PURE__*/Object.freeze({
    __proto__: null,
    default: rescale$1
});

var require$$1 = /*@__PURE__*/getAugmentedNamespace(libEs6);

Object.defineProperty(matrix, '__esModule', {
  value: true
});
var isAnyArray = require$$0;
var rescale = require$$1;
const indent = ' '.repeat(2);
const indentData = ' '.repeat(4);

/**
 * @this {Matrix}
 * @returns {string}
 */
function inspectMatrix() {
  return inspectMatrixWithOptions(this);
}
function inspectMatrixWithOptions(matrix, options = {}) {
  const {
    maxRows = 15,
    maxColumns = 10,
    maxNumSize = 8,
    padMinus = 'auto'
  } = options;
  return `${matrix.constructor.name} {
${indent}[
${indentData}${inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus)}
${indent}]
${indent}rows: ${matrix.rows}
${indent}columns: ${matrix.columns}
}`;
}
function inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus) {
  const {
    rows,
    columns
  } = matrix;
  const maxI = Math.min(rows, maxRows);
  const maxJ = Math.min(columns, maxColumns);
  const result = [];
  if (padMinus === 'auto') {
    padMinus = false;
    loop: for (let i = 0; i < maxI; i++) {
      for (let j = 0; j < maxJ; j++) {
        if (matrix.get(i, j) < 0) {
          padMinus = true;
          break loop;
        }
      }
    }
  }
  for (let i = 0; i < maxI; i++) {
    let line = [];
    for (let j = 0; j < maxJ; j++) {
      line.push(formatNumber(matrix.get(i, j), maxNumSize, padMinus));
    }
    result.push(`${line.join(' ')}`);
  }
  if (maxJ !== columns) {
    result[result.length - 1] += ` ... ${columns - maxColumns} more columns`;
  }
  if (maxI !== rows) {
    result.push(`... ${rows - maxRows} more rows`);
  }
  return result.join(`\n${indentData}`);
}
function formatNumber(num, maxNumSize, padMinus) {
  return (num >= 0 && padMinus ? ` ${formatNumber2(num, maxNumSize - 1)}` : formatNumber2(num, maxNumSize)).padEnd(maxNumSize);
}
function formatNumber2(num, len) {
  // small.length numbers should be as is
  let str = num.toString();
  if (str.length <= len) return str;

  // (7)'0.00123' is better then (7)'1.23e-2'
  // (8)'0.000123' is worse then (7)'1.23e-3',
  let fix = num.toFixed(len);
  if (fix.length > len) {
    fix = num.toFixed(Math.max(0, len - (fix.length - len)));
  }
  if (fix.length <= len && !fix.startsWith('0.000') && !fix.startsWith('-0.000')) {
    return fix;
  }

  // well, if it's still too long the user should've used longer numbers
  let exp = num.toExponential(len);
  if (exp.length > len) {
    exp = num.toExponential(Math.max(0, len - (exp.length - len)));
  }
  return exp.slice(0);
}
function installMathOperations(AbstractMatrix, Matrix) {
  AbstractMatrix.prototype.add = function add(value) {
    if (typeof value === 'number') return this.addS(value);
    return this.addM(value);
  };
  AbstractMatrix.prototype.addS = function addS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) + value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.addM = function addM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) + matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.add = function add(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.add(value);
  };
  AbstractMatrix.prototype.sub = function sub(value) {
    if (typeof value === 'number') return this.subS(value);
    return this.subM(value);
  };
  AbstractMatrix.prototype.subS = function subS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) - value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.subM = function subM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) - matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.sub = function sub(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.sub(value);
  };
  AbstractMatrix.prototype.subtract = AbstractMatrix.prototype.sub;
  AbstractMatrix.prototype.subtractS = AbstractMatrix.prototype.subS;
  AbstractMatrix.prototype.subtractM = AbstractMatrix.prototype.subM;
  AbstractMatrix.subtract = AbstractMatrix.sub;
  AbstractMatrix.prototype.mul = function mul(value) {
    if (typeof value === 'number') return this.mulS(value);
    return this.mulM(value);
  };
  AbstractMatrix.prototype.mulS = function mulS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) * value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.mulM = function mulM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) * matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.mul = function mul(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.mul(value);
  };
  AbstractMatrix.prototype.multiply = AbstractMatrix.prototype.mul;
  AbstractMatrix.prototype.multiplyS = AbstractMatrix.prototype.mulS;
  AbstractMatrix.prototype.multiplyM = AbstractMatrix.prototype.mulM;
  AbstractMatrix.multiply = AbstractMatrix.mul;
  AbstractMatrix.prototype.div = function div(value) {
    if (typeof value === 'number') return this.divS(value);
    return this.divM(value);
  };
  AbstractMatrix.prototype.divS = function divS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) / value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.divM = function divM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) / matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.div = function div(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.div(value);
  };
  AbstractMatrix.prototype.divide = AbstractMatrix.prototype.div;
  AbstractMatrix.prototype.divideS = AbstractMatrix.prototype.divS;
  AbstractMatrix.prototype.divideM = AbstractMatrix.prototype.divM;
  AbstractMatrix.divide = AbstractMatrix.div;
  AbstractMatrix.prototype.mod = function mod(value) {
    if (typeof value === 'number') return this.modS(value);
    return this.modM(value);
  };
  AbstractMatrix.prototype.modS = function modS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) % value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.modM = function modM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) % matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.mod = function mod(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.mod(value);
  };
  AbstractMatrix.prototype.modulus = AbstractMatrix.prototype.mod;
  AbstractMatrix.prototype.modulusS = AbstractMatrix.prototype.modS;
  AbstractMatrix.prototype.modulusM = AbstractMatrix.prototype.modM;
  AbstractMatrix.modulus = AbstractMatrix.mod;
  AbstractMatrix.prototype.and = function and(value) {
    if (typeof value === 'number') return this.andS(value);
    return this.andM(value);
  };
  AbstractMatrix.prototype.andS = function andS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) & value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.andM = function andM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) & matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.and = function and(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.and(value);
  };
  AbstractMatrix.prototype.or = function or(value) {
    if (typeof value === 'number') return this.orS(value);
    return this.orM(value);
  };
  AbstractMatrix.prototype.orS = function orS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) | value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.orM = function orM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) | matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.or = function or(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.or(value);
  };
  AbstractMatrix.prototype.xor = function xor(value) {
    if (typeof value === 'number') return this.xorS(value);
    return this.xorM(value);
  };
  AbstractMatrix.prototype.xorS = function xorS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) ^ value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.xorM = function xorM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) ^ matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.xor = function xor(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.xor(value);
  };
  AbstractMatrix.prototype.leftShift = function leftShift(value) {
    if (typeof value === 'number') return this.leftShiftS(value);
    return this.leftShiftM(value);
  };
  AbstractMatrix.prototype.leftShiftS = function leftShiftS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) << value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.leftShiftM = function leftShiftM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) << matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.leftShift = function leftShift(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.leftShift(value);
  };
  AbstractMatrix.prototype.signPropagatingRightShift = function signPropagatingRightShift(value) {
    if (typeof value === 'number') return this.signPropagatingRightShiftS(value);
    return this.signPropagatingRightShiftM(value);
  };
  AbstractMatrix.prototype.signPropagatingRightShiftS = function signPropagatingRightShiftS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) >> value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.signPropagatingRightShiftM = function signPropagatingRightShiftM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) >> matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.signPropagatingRightShift = function signPropagatingRightShift(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.signPropagatingRightShift(value);
  };
  AbstractMatrix.prototype.rightShift = function rightShift(value) {
    if (typeof value === 'number') return this.rightShiftS(value);
    return this.rightShiftM(value);
  };
  AbstractMatrix.prototype.rightShiftS = function rightShiftS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) >>> value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.rightShiftM = function rightShiftM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) >>> matrix.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.rightShift = function rightShift(matrix, value) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.rightShift(value);
  };
  AbstractMatrix.prototype.zeroFillRightShift = AbstractMatrix.prototype.rightShift;
  AbstractMatrix.prototype.zeroFillRightShiftS = AbstractMatrix.prototype.rightShiftS;
  AbstractMatrix.prototype.zeroFillRightShiftM = AbstractMatrix.prototype.rightShiftM;
  AbstractMatrix.zeroFillRightShift = AbstractMatrix.rightShift;
  AbstractMatrix.prototype.not = function not() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, ~this.get(i, j));
      }
    }
    return this;
  };
  AbstractMatrix.not = function not(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.not();
  };
  AbstractMatrix.prototype.abs = function abs() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.abs(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.abs = function abs(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.abs();
  };
  AbstractMatrix.prototype.acos = function acos() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.acos(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.acos = function acos(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.acos();
  };
  AbstractMatrix.prototype.acosh = function acosh() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.acosh(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.acosh = function acosh(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.acosh();
  };
  AbstractMatrix.prototype.asin = function asin() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.asin(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.asin = function asin(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.asin();
  };
  AbstractMatrix.prototype.asinh = function asinh() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.asinh(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.asinh = function asinh(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.asinh();
  };
  AbstractMatrix.prototype.atan = function atan() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.atan(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.atan = function atan(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.atan();
  };
  AbstractMatrix.prototype.atanh = function atanh() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.atanh(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.atanh = function atanh(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.atanh();
  };
  AbstractMatrix.prototype.cbrt = function cbrt() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.cbrt(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.cbrt = function cbrt(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.cbrt();
  };
  AbstractMatrix.prototype.ceil = function ceil() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.ceil(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.ceil = function ceil(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.ceil();
  };
  AbstractMatrix.prototype.clz32 = function clz32() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.clz32(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.clz32 = function clz32(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.clz32();
  };
  AbstractMatrix.prototype.cos = function cos() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.cos(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.cos = function cos(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.cos();
  };
  AbstractMatrix.prototype.cosh = function cosh() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.cosh(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.cosh = function cosh(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.cosh();
  };
  AbstractMatrix.prototype.exp = function exp() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.exp(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.exp = function exp(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.exp();
  };
  AbstractMatrix.prototype.expm1 = function expm1() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.expm1(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.expm1 = function expm1(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.expm1();
  };
  AbstractMatrix.prototype.floor = function floor() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.floor(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.floor = function floor(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.floor();
  };
  AbstractMatrix.prototype.fround = function fround() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.fround(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.fround = function fround(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.fround();
  };
  AbstractMatrix.prototype.log = function log() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.log(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.log = function log(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.log();
  };
  AbstractMatrix.prototype.log1p = function log1p() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.log1p(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.log1p = function log1p(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.log1p();
  };
  AbstractMatrix.prototype.log10 = function log10() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.log10(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.log10 = function log10(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.log10();
  };
  AbstractMatrix.prototype.log2 = function log2() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.log2(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.log2 = function log2(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.log2();
  };
  AbstractMatrix.prototype.round = function round() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.round(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.round = function round(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.round();
  };
  AbstractMatrix.prototype.sign = function sign() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.sign(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.sign = function sign(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.sign();
  };
  AbstractMatrix.prototype.sin = function sin() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.sin(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.sin = function sin(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.sin();
  };
  AbstractMatrix.prototype.sinh = function sinh() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.sinh(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.sinh = function sinh(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.sinh();
  };
  AbstractMatrix.prototype.sqrt = function sqrt() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.sqrt(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.sqrt = function sqrt(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.sqrt();
  };
  AbstractMatrix.prototype.tan = function tan() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.tan(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.tan = function tan(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.tan();
  };
  AbstractMatrix.prototype.tanh = function tanh() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.tanh(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.tanh = function tanh(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.tanh();
  };
  AbstractMatrix.prototype.trunc = function trunc() {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, Math.trunc(this.get(i, j)));
      }
    }
    return this;
  };
  AbstractMatrix.trunc = function trunc(matrix) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.trunc();
  };
  AbstractMatrix.pow = function pow(matrix, arg0) {
    const newMatrix = new Matrix(matrix);
    return newMatrix.pow(arg0);
  };
  AbstractMatrix.prototype.pow = function pow(value) {
    if (typeof value === 'number') return this.powS(value);
    return this.powM(value);
  };
  AbstractMatrix.prototype.powS = function powS(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) ** value);
      }
    }
    return this;
  };
  AbstractMatrix.prototype.powM = function powM(matrix) {
    matrix = Matrix.checkMatrix(matrix);
    if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
      throw new RangeError('Matrices dimensions must be equal');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) ** matrix.get(i, j));
      }
    }
    return this;
  };
}

/**
 * @private
 * Check that a row index is not out of bounds
 * @param {Matrix} matrix
 * @param {number} index
 * @param {boolean} [outer]
 */
function checkRowIndex(matrix, index, outer) {
  let max = outer ? matrix.rows : matrix.rows - 1;
  if (index < 0 || index > max) {
    throw new RangeError('Row index out of range');
  }
}

/**
 * @private
 * Check that a column index is not out of bounds
 * @param {Matrix} matrix
 * @param {number} index
 * @param {boolean} [outer]
 */
function checkColumnIndex(matrix, index, outer) {
  let max = outer ? matrix.columns : matrix.columns - 1;
  if (index < 0 || index > max) {
    throw new RangeError('Column index out of range');
  }
}

/**
 * @private
 * Check that the provided vector is an array with the right length
 * @param {Matrix} matrix
 * @param {Array|Matrix} vector
 * @return {Array}
 * @throws {RangeError}
 */
function checkRowVector(matrix, vector) {
  if (vector.to1DArray) {
    vector = vector.to1DArray();
  }
  if (vector.length !== matrix.columns) {
    throw new RangeError('vector size must be the same as the number of columns');
  }
  return vector;
}

/**
 * @private
 * Check that the provided vector is an array with the right length
 * @param {Matrix} matrix
 * @param {Array|Matrix} vector
 * @return {Array}
 * @throws {RangeError}
 */
function checkColumnVector(matrix, vector) {
  if (vector.to1DArray) {
    vector = vector.to1DArray();
  }
  if (vector.length !== matrix.rows) {
    throw new RangeError('vector size must be the same as the number of rows');
  }
  return vector;
}
function checkRowIndices(matrix, rowIndices) {
  if (!isAnyArray.isAnyArray(rowIndices)) {
    throw new TypeError('row indices must be an array');
  }
  for (let i = 0; i < rowIndices.length; i++) {
    if (rowIndices[i] < 0 || rowIndices[i] >= matrix.rows) {
      throw new RangeError('row indices are out of range');
    }
  }
}
function checkColumnIndices(matrix, columnIndices) {
  if (!isAnyArray.isAnyArray(columnIndices)) {
    throw new TypeError('column indices must be an array');
  }
  for (let i = 0; i < columnIndices.length; i++) {
    if (columnIndices[i] < 0 || columnIndices[i] >= matrix.columns) {
      throw new RangeError('column indices are out of range');
    }
  }
}
function checkRange(matrix, startRow, endRow, startColumn, endColumn) {
  if (arguments.length !== 5) {
    throw new RangeError('expected 4 arguments');
  }
  checkNumber('startRow', startRow);
  checkNumber('endRow', endRow);
  checkNumber('startColumn', startColumn);
  checkNumber('endColumn', endColumn);
  if (startRow > endRow || startColumn > endColumn || startRow < 0 || startRow >= matrix.rows || endRow < 0 || endRow >= matrix.rows || startColumn < 0 || startColumn >= matrix.columns || endColumn < 0 || endColumn >= matrix.columns) {
    throw new RangeError('Submatrix indices are out of range');
  }
}
function newArray(length, value = 0) {
  let array = [];
  for (let i = 0; i < length; i++) {
    array.push(value);
  }
  return array;
}
function checkNumber(name, value) {
  if (typeof value !== 'number') {
    throw new TypeError(`${name} must be a number`);
  }
}
function checkNonEmpty(matrix) {
  if (matrix.isEmpty()) {
    throw new Error('Empty matrix has no elements to index');
  }
}
function sumByRow(matrix) {
  let sum = newArray(matrix.rows);
  for (let i = 0; i < matrix.rows; ++i) {
    for (let j = 0; j < matrix.columns; ++j) {
      sum[i] += matrix.get(i, j);
    }
  }
  return sum;
}
function sumByColumn(matrix) {
  let sum = newArray(matrix.columns);
  for (let i = 0; i < matrix.rows; ++i) {
    for (let j = 0; j < matrix.columns; ++j) {
      sum[j] += matrix.get(i, j);
    }
  }
  return sum;
}
function sumAll(matrix) {
  let v = 0;
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      v += matrix.get(i, j);
    }
  }
  return v;
}
function productByRow(matrix) {
  let sum = newArray(matrix.rows, 1);
  for (let i = 0; i < matrix.rows; ++i) {
    for (let j = 0; j < matrix.columns; ++j) {
      sum[i] *= matrix.get(i, j);
    }
  }
  return sum;
}
function productByColumn(matrix) {
  let sum = newArray(matrix.columns, 1);
  for (let i = 0; i < matrix.rows; ++i) {
    for (let j = 0; j < matrix.columns; ++j) {
      sum[j] *= matrix.get(i, j);
    }
  }
  return sum;
}
function productAll(matrix) {
  let v = 1;
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      v *= matrix.get(i, j);
    }
  }
  return v;
}
function varianceByRow(matrix, unbiased, mean) {
  const rows = matrix.rows;
  const cols = matrix.columns;
  const variance = [];
  for (let i = 0; i < rows; i++) {
    let sum1 = 0;
    let sum2 = 0;
    let x = 0;
    for (let j = 0; j < cols; j++) {
      x = matrix.get(i, j) - mean[i];
      sum1 += x;
      sum2 += x * x;
    }
    if (unbiased) {
      variance.push((sum2 - sum1 * sum1 / cols) / (cols - 1));
    } else {
      variance.push((sum2 - sum1 * sum1 / cols) / cols);
    }
  }
  return variance;
}
function varianceByColumn(matrix, unbiased, mean) {
  const rows = matrix.rows;
  const cols = matrix.columns;
  const variance = [];
  for (let j = 0; j < cols; j++) {
    let sum1 = 0;
    let sum2 = 0;
    let x = 0;
    for (let i = 0; i < rows; i++) {
      x = matrix.get(i, j) - mean[j];
      sum1 += x;
      sum2 += x * x;
    }
    if (unbiased) {
      variance.push((sum2 - sum1 * sum1 / rows) / (rows - 1));
    } else {
      variance.push((sum2 - sum1 * sum1 / rows) / rows);
    }
  }
  return variance;
}
function varianceAll(matrix, unbiased, mean) {
  const rows = matrix.rows;
  const cols = matrix.columns;
  const size = rows * cols;
  let sum1 = 0;
  let sum2 = 0;
  let x = 0;
  for (let i = 0; i < rows; i++) {
    for (let j = 0; j < cols; j++) {
      x = matrix.get(i, j) - mean;
      sum1 += x;
      sum2 += x * x;
    }
  }
  if (unbiased) {
    return (sum2 - sum1 * sum1 / size) / (size - 1);
  } else {
    return (sum2 - sum1 * sum1 / size) / size;
  }
}
function centerByRow(matrix, mean) {
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      matrix.set(i, j, matrix.get(i, j) - mean[i]);
    }
  }
}
function centerByColumn(matrix, mean) {
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      matrix.set(i, j, matrix.get(i, j) - mean[j]);
    }
  }
}
function centerAll(matrix, mean) {
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      matrix.set(i, j, matrix.get(i, j) - mean);
    }
  }
}
function getScaleByRow(matrix) {
  const scale = [];
  for (let i = 0; i < matrix.rows; i++) {
    let sum = 0;
    for (let j = 0; j < matrix.columns; j++) {
      sum += matrix.get(i, j) ** 2 / (matrix.columns - 1);
    }
    scale.push(Math.sqrt(sum));
  }
  return scale;
}
function scaleByRow(matrix, scale) {
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      matrix.set(i, j, matrix.get(i, j) / scale[i]);
    }
  }
}
function getScaleByColumn(matrix) {
  const scale = [];
  for (let j = 0; j < matrix.columns; j++) {
    let sum = 0;
    for (let i = 0; i < matrix.rows; i++) {
      sum += matrix.get(i, j) ** 2 / (matrix.rows - 1);
    }
    scale.push(Math.sqrt(sum));
  }
  return scale;
}
function scaleByColumn(matrix, scale) {
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      matrix.set(i, j, matrix.get(i, j) / scale[j]);
    }
  }
}
function getScaleAll(matrix) {
  const divider = matrix.size - 1;
  let sum = 0;
  for (let j = 0; j < matrix.columns; j++) {
    for (let i = 0; i < matrix.rows; i++) {
      sum += matrix.get(i, j) ** 2 / divider;
    }
  }
  return Math.sqrt(sum);
}
function scaleAll(matrix, scale) {
  for (let i = 0; i < matrix.rows; i++) {
    for (let j = 0; j < matrix.columns; j++) {
      matrix.set(i, j, matrix.get(i, j) / scale);
    }
  }
}
class AbstractMatrix {
  static from1DArray(newRows, newColumns, newData) {
    let length = newRows * newColumns;
    if (length !== newData.length) {
      throw new RangeError('data length does not match given dimensions');
    }
    let newMatrix = new Matrix$1(newRows, newColumns);
    for (let row = 0; row < newRows; row++) {
      for (let column = 0; column < newColumns; column++) {
        newMatrix.set(row, column, newData[row * newColumns + column]);
      }
    }
    return newMatrix;
  }
  static rowVector(newData) {
    let vector = new Matrix$1(1, newData.length);
    for (let i = 0; i < newData.length; i++) {
      vector.set(0, i, newData[i]);
    }
    return vector;
  }
  static columnVector(newData) {
    let vector = new Matrix$1(newData.length, 1);
    for (let i = 0; i < newData.length; i++) {
      vector.set(i, 0, newData[i]);
    }
    return vector;
  }
  static zeros(rows, columns) {
    return new Matrix$1(rows, columns);
  }
  static ones(rows, columns) {
    return new Matrix$1(rows, columns).fill(1);
  }
  static rand(rows, columns, options = {}) {
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    const {
      random = Math.random
    } = options;
    let matrix = new Matrix$1(rows, columns);
    for (let i = 0; i < rows; i++) {
      for (let j = 0; j < columns; j++) {
        matrix.set(i, j, random());
      }
    }
    return matrix;
  }
  static randInt(rows, columns, options = {}) {
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    const {
      min = 0,
      max = 1000,
      random = Math.random
    } = options;
    if (!Number.isInteger(min)) throw new TypeError('min must be an integer');
    if (!Number.isInteger(max)) throw new TypeError('max must be an integer');
    if (min >= max) throw new RangeError('min must be smaller than max');
    let interval = max - min;
    let matrix = new Matrix$1(rows, columns);
    for (let i = 0; i < rows; i++) {
      for (let j = 0; j < columns; j++) {
        let value = min + Math.round(random() * interval);
        matrix.set(i, j, value);
      }
    }
    return matrix;
  }
  static eye(rows, columns, value) {
    if (columns === undefined) columns = rows;
    if (value === undefined) value = 1;
    let min = Math.min(rows, columns);
    let matrix = this.zeros(rows, columns);
    for (let i = 0; i < min; i++) {
      matrix.set(i, i, value);
    }
    return matrix;
  }
  static diag(data, rows, columns) {
    let l = data.length;
    if (rows === undefined) rows = l;
    if (columns === undefined) columns = rows;
    let min = Math.min(l, rows, columns);
    let matrix = this.zeros(rows, columns);
    for (let i = 0; i < min; i++) {
      matrix.set(i, i, data[i]);
    }
    return matrix;
  }
  static min(matrix1, matrix2) {
    matrix1 = this.checkMatrix(matrix1);
    matrix2 = this.checkMatrix(matrix2);
    let rows = matrix1.rows;
    let columns = matrix1.columns;
    let result = new Matrix$1(rows, columns);
    for (let i = 0; i < rows; i++) {
      for (let j = 0; j < columns; j++) {
        result.set(i, j, Math.min(matrix1.get(i, j), matrix2.get(i, j)));
      }
    }
    return result;
  }
  static max(matrix1, matrix2) {
    matrix1 = this.checkMatrix(matrix1);
    matrix2 = this.checkMatrix(matrix2);
    let rows = matrix1.rows;
    let columns = matrix1.columns;
    let result = new this(rows, columns);
    for (let i = 0; i < rows; i++) {
      for (let j = 0; j < columns; j++) {
        result.set(i, j, Math.max(matrix1.get(i, j), matrix2.get(i, j)));
      }
    }
    return result;
  }
  static checkMatrix(value) {
    return AbstractMatrix.isMatrix(value) ? value : new Matrix$1(value);
  }
  static isMatrix(value) {
    return value != null && value.klass === 'Matrix';
  }
  get size() {
    return this.rows * this.columns;
  }
  apply(callback) {
    if (typeof callback !== 'function') {
      throw new TypeError('callback must be a function');
    }
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        callback.call(this, i, j);
      }
    }
    return this;
  }
  to1DArray() {
    let array = [];
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        array.push(this.get(i, j));
      }
    }
    return array;
  }
  to2DArray() {
    let copy = [];
    for (let i = 0; i < this.rows; i++) {
      copy.push([]);
      for (let j = 0; j < this.columns; j++) {
        copy[i].push(this.get(i, j));
      }
    }
    return copy;
  }
  toJSON() {
    return this.to2DArray();
  }
  isRowVector() {
    return this.rows === 1;
  }
  isColumnVector() {
    return this.columns === 1;
  }
  isVector() {
    return this.rows === 1 || this.columns === 1;
  }
  isSquare() {
    return this.rows === this.columns;
  }
  isEmpty() {
    return this.rows === 0 || this.columns === 0;
  }
  isSymmetric() {
    if (this.isSquare()) {
      for (let i = 0; i < this.rows; i++) {
        for (let j = 0; j <= i; j++) {
          if (this.get(i, j) !== this.get(j, i)) {
            return false;
          }
        }
      }
      return true;
    }
    return false;
  }
  isDistance() {
    if (!this.isSymmetric()) return false;
    for (let i = 0; i < this.rows; i++) {
      if (this.get(i, i) !== 0) return false;
    }
    return true;
  }
  isEchelonForm() {
    let i = 0;
    let j = 0;
    let previousColumn = -1;
    let isEchelonForm = true;
    let checked = false;
    while (i < this.rows && isEchelonForm) {
      j = 0;
      checked = false;
      while (j < this.columns && checked === false) {
        if (this.get(i, j) === 0) {
          j++;
        } else if (this.get(i, j) === 1 && j > previousColumn) {
          checked = true;
          previousColumn = j;
        } else {
          isEchelonForm = false;
          checked = true;
        }
      }
      i++;
    }
    return isEchelonForm;
  }
  isReducedEchelonForm() {
    let i = 0;
    let j = 0;
    let previousColumn = -1;
    let isReducedEchelonForm = true;
    let checked = false;
    while (i < this.rows && isReducedEchelonForm) {
      j = 0;
      checked = false;
      while (j < this.columns && checked === false) {
        if (this.get(i, j) === 0) {
          j++;
        } else if (this.get(i, j) === 1 && j > previousColumn) {
          checked = true;
          previousColumn = j;
        } else {
          isReducedEchelonForm = false;
          checked = true;
        }
      }
      for (let k = j + 1; k < this.rows; k++) {
        if (this.get(i, k) !== 0) {
          isReducedEchelonForm = false;
        }
      }
      i++;
    }
    return isReducedEchelonForm;
  }
  echelonForm() {
    let result = this.clone();
    let h = 0;
    let k = 0;
    while (h < result.rows && k < result.columns) {
      let iMax = h;
      for (let i = h; i < result.rows; i++) {
        if (result.get(i, k) > result.get(iMax, k)) {
          iMax = i;
        }
      }
      if (result.get(iMax, k) === 0) {
        k++;
      } else {
        result.swapRows(h, iMax);
        let tmp = result.get(h, k);
        for (let j = k; j < result.columns; j++) {
          result.set(h, j, result.get(h, j) / tmp);
        }
        for (let i = h + 1; i < result.rows; i++) {
          let factor = result.get(i, k) / result.get(h, k);
          result.set(i, k, 0);
          for (let j = k + 1; j < result.columns; j++) {
            result.set(i, j, result.get(i, j) - result.get(h, j) * factor);
          }
        }
        h++;
        k++;
      }
    }
    return result;
  }
  reducedEchelonForm() {
    let result = this.echelonForm();
    let m = result.columns;
    let n = result.rows;
    let h = n - 1;
    while (h >= 0) {
      if (result.maxRow(h) === 0) {
        h--;
      } else {
        let p = 0;
        let pivot = false;
        while (p < n && pivot === false) {
          if (result.get(h, p) === 1) {
            pivot = true;
          } else {
            p++;
          }
        }
        for (let i = 0; i < h; i++) {
          let factor = result.get(i, p);
          for (let j = p; j < m; j++) {
            let tmp = result.get(i, j) - factor * result.get(h, j);
            result.set(i, j, tmp);
          }
        }
        h--;
      }
    }
    return result;
  }
  set() {
    throw new Error('set method is unimplemented');
  }
  get() {
    throw new Error('get method is unimplemented');
  }
  repeat(options = {}) {
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    const {
      rows = 1,
      columns = 1
    } = options;
    if (!Number.isInteger(rows) || rows <= 0) {
      throw new TypeError('rows must be a positive integer');
    }
    if (!Number.isInteger(columns) || columns <= 0) {
      throw new TypeError('columns must be a positive integer');
    }
    let matrix = new Matrix$1(this.rows * rows, this.columns * columns);
    for (let i = 0; i < rows; i++) {
      for (let j = 0; j < columns; j++) {
        matrix.setSubMatrix(this, this.rows * i, this.columns * j);
      }
    }
    return matrix;
  }
  fill(value) {
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, value);
      }
    }
    return this;
  }
  neg() {
    return this.mulS(-1);
  }
  getRow(index) {
    checkRowIndex(this, index);
    let row = [];
    for (let i = 0; i < this.columns; i++) {
      row.push(this.get(index, i));
    }
    return row;
  }
  getRowVector(index) {
    return Matrix$1.rowVector(this.getRow(index));
  }
  setRow(index, array) {
    checkRowIndex(this, index);
    array = checkRowVector(this, array);
    for (let i = 0; i < this.columns; i++) {
      this.set(index, i, array[i]);
    }
    return this;
  }
  swapRows(row1, row2) {
    checkRowIndex(this, row1);
    checkRowIndex(this, row2);
    for (let i = 0; i < this.columns; i++) {
      let temp = this.get(row1, i);
      this.set(row1, i, this.get(row2, i));
      this.set(row2, i, temp);
    }
    return this;
  }
  getColumn(index) {
    checkColumnIndex(this, index);
    let column = [];
    for (let i = 0; i < this.rows; i++) {
      column.push(this.get(i, index));
    }
    return column;
  }
  getColumnVector(index) {
    return Matrix$1.columnVector(this.getColumn(index));
  }
  setColumn(index, array) {
    checkColumnIndex(this, index);
    array = checkColumnVector(this, array);
    for (let i = 0; i < this.rows; i++) {
      this.set(i, index, array[i]);
    }
    return this;
  }
  swapColumns(column1, column2) {
    checkColumnIndex(this, column1);
    checkColumnIndex(this, column2);
    for (let i = 0; i < this.rows; i++) {
      let temp = this.get(i, column1);
      this.set(i, column1, this.get(i, column2));
      this.set(i, column2, temp);
    }
    return this;
  }
  addRowVector(vector) {
    vector = checkRowVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) + vector[j]);
      }
    }
    return this;
  }
  subRowVector(vector) {
    vector = checkRowVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) - vector[j]);
      }
    }
    return this;
  }
  mulRowVector(vector) {
    vector = checkRowVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) * vector[j]);
      }
    }
    return this;
  }
  divRowVector(vector) {
    vector = checkRowVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) / vector[j]);
      }
    }
    return this;
  }
  addColumnVector(vector) {
    vector = checkColumnVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) + vector[i]);
      }
    }
    return this;
  }
  subColumnVector(vector) {
    vector = checkColumnVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) - vector[i]);
      }
    }
    return this;
  }
  mulColumnVector(vector) {
    vector = checkColumnVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) * vector[i]);
      }
    }
    return this;
  }
  divColumnVector(vector) {
    vector = checkColumnVector(this, vector);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        this.set(i, j, this.get(i, j) / vector[i]);
      }
    }
    return this;
  }
  mulRow(index, value) {
    checkRowIndex(this, index);
    for (let i = 0; i < this.columns; i++) {
      this.set(index, i, this.get(index, i) * value);
    }
    return this;
  }
  mulColumn(index, value) {
    checkColumnIndex(this, index);
    for (let i = 0; i < this.rows; i++) {
      this.set(i, index, this.get(i, index) * value);
    }
    return this;
  }
  max(by) {
    if (this.isEmpty()) {
      return NaN;
    }
    switch (by) {
      case 'row':
        {
          const max = new Array(this.rows).fill(Number.NEGATIVE_INFINITY);
          for (let row = 0; row < this.rows; row++) {
            for (let column = 0; column < this.columns; column++) {
              if (this.get(row, column) > max[row]) {
                max[row] = this.get(row, column);
              }
            }
          }
          return max;
        }
      case 'column':
        {
          const max = new Array(this.columns).fill(Number.NEGATIVE_INFINITY);
          for (let row = 0; row < this.rows; row++) {
            for (let column = 0; column < this.columns; column++) {
              if (this.get(row, column) > max[column]) {
                max[column] = this.get(row, column);
              }
            }
          }
          return max;
        }
      case undefined:
        {
          let max = this.get(0, 0);
          for (let row = 0; row < this.rows; row++) {
            for (let column = 0; column < this.columns; column++) {
              if (this.get(row, column) > max) {
                max = this.get(row, column);
              }
            }
          }
          return max;
        }
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  maxIndex() {
    checkNonEmpty(this);
    let v = this.get(0, 0);
    let idx = [0, 0];
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        if (this.get(i, j) > v) {
          v = this.get(i, j);
          idx[0] = i;
          idx[1] = j;
        }
      }
    }
    return idx;
  }
  min(by) {
    if (this.isEmpty()) {
      return NaN;
    }
    switch (by) {
      case 'row':
        {
          const min = new Array(this.rows).fill(Number.POSITIVE_INFINITY);
          for (let row = 0; row < this.rows; row++) {
            for (let column = 0; column < this.columns; column++) {
              if (this.get(row, column) < min[row]) {
                min[row] = this.get(row, column);
              }
            }
          }
          return min;
        }
      case 'column':
        {
          const min = new Array(this.columns).fill(Number.POSITIVE_INFINITY);
          for (let row = 0; row < this.rows; row++) {
            for (let column = 0; column < this.columns; column++) {
              if (this.get(row, column) < min[column]) {
                min[column] = this.get(row, column);
              }
            }
          }
          return min;
        }
      case undefined:
        {
          let min = this.get(0, 0);
          for (let row = 0; row < this.rows; row++) {
            for (let column = 0; column < this.columns; column++) {
              if (this.get(row, column) < min) {
                min = this.get(row, column);
              }
            }
          }
          return min;
        }
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  minIndex() {
    checkNonEmpty(this);
    let v = this.get(0, 0);
    let idx = [0, 0];
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        if (this.get(i, j) < v) {
          v = this.get(i, j);
          idx[0] = i;
          idx[1] = j;
        }
      }
    }
    return idx;
  }
  maxRow(row) {
    checkRowIndex(this, row);
    if (this.isEmpty()) {
      return NaN;
    }
    let v = this.get(row, 0);
    for (let i = 1; i < this.columns; i++) {
      if (this.get(row, i) > v) {
        v = this.get(row, i);
      }
    }
    return v;
  }
  maxRowIndex(row) {
    checkRowIndex(this, row);
    checkNonEmpty(this);
    let v = this.get(row, 0);
    let idx = [row, 0];
    for (let i = 1; i < this.columns; i++) {
      if (this.get(row, i) > v) {
        v = this.get(row, i);
        idx[1] = i;
      }
    }
    return idx;
  }
  minRow(row) {
    checkRowIndex(this, row);
    if (this.isEmpty()) {
      return NaN;
    }
    let v = this.get(row, 0);
    for (let i = 1; i < this.columns; i++) {
      if (this.get(row, i) < v) {
        v = this.get(row, i);
      }
    }
    return v;
  }
  minRowIndex(row) {
    checkRowIndex(this, row);
    checkNonEmpty(this);
    let v = this.get(row, 0);
    let idx = [row, 0];
    for (let i = 1; i < this.columns; i++) {
      if (this.get(row, i) < v) {
        v = this.get(row, i);
        idx[1] = i;
      }
    }
    return idx;
  }
  maxColumn(column) {
    checkColumnIndex(this, column);
    if (this.isEmpty()) {
      return NaN;
    }
    let v = this.get(0, column);
    for (let i = 1; i < this.rows; i++) {
      if (this.get(i, column) > v) {
        v = this.get(i, column);
      }
    }
    return v;
  }
  maxColumnIndex(column) {
    checkColumnIndex(this, column);
    checkNonEmpty(this);
    let v = this.get(0, column);
    let idx = [0, column];
    for (let i = 1; i < this.rows; i++) {
      if (this.get(i, column) > v) {
        v = this.get(i, column);
        idx[0] = i;
      }
    }
    return idx;
  }
  minColumn(column) {
    checkColumnIndex(this, column);
    if (this.isEmpty()) {
      return NaN;
    }
    let v = this.get(0, column);
    for (let i = 1; i < this.rows; i++) {
      if (this.get(i, column) < v) {
        v = this.get(i, column);
      }
    }
    return v;
  }
  minColumnIndex(column) {
    checkColumnIndex(this, column);
    checkNonEmpty(this);
    let v = this.get(0, column);
    let idx = [0, column];
    for (let i = 1; i < this.rows; i++) {
      if (this.get(i, column) < v) {
        v = this.get(i, column);
        idx[0] = i;
      }
    }
    return idx;
  }
  diag() {
    let min = Math.min(this.rows, this.columns);
    let diag = [];
    for (let i = 0; i < min; i++) {
      diag.push(this.get(i, i));
    }
    return diag;
  }
  norm(type = 'frobenius') {
    switch (type) {
      case 'max':
        return this.max();
      case 'frobenius':
        return Math.sqrt(this.dot(this));
      default:
        throw new RangeError(`unknown norm type: ${type}`);
    }
  }
  cumulativeSum() {
    let sum = 0;
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        sum += this.get(i, j);
        this.set(i, j, sum);
      }
    }
    return this;
  }
  dot(vector2) {
    if (AbstractMatrix.isMatrix(vector2)) vector2 = vector2.to1DArray();
    let vector1 = this.to1DArray();
    if (vector1.length !== vector2.length) {
      throw new RangeError('vectors do not have the same size');
    }
    let dot = 0;
    for (let i = 0; i < vector1.length; i++) {
      dot += vector1[i] * vector2[i];
    }
    return dot;
  }
  mmul(other) {
    other = Matrix$1.checkMatrix(other);
    let m = this.rows;
    let n = this.columns;
    let p = other.columns;
    let result = new Matrix$1(m, p);
    let Bcolj = new Float64Array(n);
    for (let j = 0; j < p; j++) {
      for (let k = 0; k < n; k++) {
        Bcolj[k] = other.get(k, j);
      }
      for (let i = 0; i < m; i++) {
        let s = 0;
        for (let k = 0; k < n; k++) {
          s += this.get(i, k) * Bcolj[k];
        }
        result.set(i, j, s);
      }
    }
    return result;
  }
  mpow(scalar) {
    if (!this.isSquare()) {
      throw new RangeError('Matrix must be square');
    }
    if (!Number.isInteger(scalar) || scalar < 0) {
      throw new RangeError('Exponent must be a non-negative integer');
    }
    // Russian Peasant exponentiation, i.e. exponentiation by squaring
    let result = Matrix$1.eye(this.rows);
    let bb = this;
    // Note: Don't bit shift. In JS, that would truncate at 32 bits
    for (let e = scalar; e >= 1; e /= 2) {
      if ((e & 1) !== 0) {
        result = result.mmul(bb);
      }
      bb = bb.mmul(bb);
    }
    return result;
  }
  strassen2x2(other) {
    other = Matrix$1.checkMatrix(other);
    let result = new Matrix$1(2, 2);
    const a11 = this.get(0, 0);
    const b11 = other.get(0, 0);
    const a12 = this.get(0, 1);
    const b12 = other.get(0, 1);
    const a21 = this.get(1, 0);
    const b21 = other.get(1, 0);
    const a22 = this.get(1, 1);
    const b22 = other.get(1, 1);

    // Compute intermediate values.
    const m1 = (a11 + a22) * (b11 + b22);
    const m2 = (a21 + a22) * b11;
    const m3 = a11 * (b12 - b22);
    const m4 = a22 * (b21 - b11);
    const m5 = (a11 + a12) * b22;
    const m6 = (a21 - a11) * (b11 + b12);
    const m7 = (a12 - a22) * (b21 + b22);

    // Combine intermediate values into the output.
    const c00 = m1 + m4 - m5 + m7;
    const c01 = m3 + m5;
    const c10 = m2 + m4;
    const c11 = m1 - m2 + m3 + m6;
    result.set(0, 0, c00);
    result.set(0, 1, c01);
    result.set(1, 0, c10);
    result.set(1, 1, c11);
    return result;
  }
  strassen3x3(other) {
    other = Matrix$1.checkMatrix(other);
    let result = new Matrix$1(3, 3);
    const a00 = this.get(0, 0);
    const a01 = this.get(0, 1);
    const a02 = this.get(0, 2);
    const a10 = this.get(1, 0);
    const a11 = this.get(1, 1);
    const a12 = this.get(1, 2);
    const a20 = this.get(2, 0);
    const a21 = this.get(2, 1);
    const a22 = this.get(2, 2);
    const b00 = other.get(0, 0);
    const b01 = other.get(0, 1);
    const b02 = other.get(0, 2);
    const b10 = other.get(1, 0);
    const b11 = other.get(1, 1);
    const b12 = other.get(1, 2);
    const b20 = other.get(2, 0);
    const b21 = other.get(2, 1);
    const b22 = other.get(2, 2);
    const m1 = (a00 + a01 + a02 - a10 - a11 - a21 - a22) * b11;
    const m2 = (a00 - a10) * (-b01 + b11);
    const m3 = a11 * (-b00 + b01 + b10 - b11 - b12 - b20 + b22);
    const m4 = (-a00 + a10 + a11) * (b00 - b01 + b11);
    const m5 = (a10 + a11) * (-b00 + b01);
    const m6 = a00 * b00;
    const m7 = (-a00 + a20 + a21) * (b00 - b02 + b12);
    const m8 = (-a00 + a20) * (b02 - b12);
    const m9 = (a20 + a21) * (-b00 + b02);
    const m10 = (a00 + a01 + a02 - a11 - a12 - a20 - a21) * b12;
    const m11 = a21 * (-b00 + b02 + b10 - b11 - b12 - b20 + b21);
    const m12 = (-a02 + a21 + a22) * (b11 + b20 - b21);
    const m13 = (a02 - a22) * (b11 - b21);
    const m14 = a02 * b20;
    const m15 = (a21 + a22) * (-b20 + b21);
    const m16 = (-a02 + a11 + a12) * (b12 + b20 - b22);
    const m17 = (a02 - a12) * (b12 - b22);
    const m18 = (a11 + a12) * (-b20 + b22);
    const m19 = a01 * b10;
    const m20 = a12 * b21;
    const m21 = a10 * b02;
    const m22 = a20 * b01;
    const m23 = a22 * b22;
    const c00 = m6 + m14 + m19;
    const c01 = m1 + m4 + m5 + m6 + m12 + m14 + m15;
    const c02 = m6 + m7 + m9 + m10 + m14 + m16 + m18;
    const c10 = m2 + m3 + m4 + m6 + m14 + m16 + m17;
    const c11 = m2 + m4 + m5 + m6 + m20;
    const c12 = m14 + m16 + m17 + m18 + m21;
    const c20 = m6 + m7 + m8 + m11 + m12 + m13 + m14;
    const c21 = m12 + m13 + m14 + m15 + m22;
    const c22 = m6 + m7 + m8 + m9 + m23;
    result.set(0, 0, c00);
    result.set(0, 1, c01);
    result.set(0, 2, c02);
    result.set(1, 0, c10);
    result.set(1, 1, c11);
    result.set(1, 2, c12);
    result.set(2, 0, c20);
    result.set(2, 1, c21);
    result.set(2, 2, c22);
    return result;
  }
  mmulStrassen(y) {
    y = Matrix$1.checkMatrix(y);
    let x = this.clone();
    let r1 = x.rows;
    let c1 = x.columns;
    let r2 = y.rows;
    let c2 = y.columns;
    if (c1 !== r2) {
      // eslint-disable-next-line no-console
      console.warn(`Multiplying ${r1} x ${c1} and ${r2} x ${c2} matrix: dimensions do not match.`);
    }

    // Put a matrix into the top left of a matrix of zeros.
    // `rows` and `cols` are the dimensions of the output matrix.
    function embed(mat, rows, cols) {
      let r = mat.rows;
      let c = mat.columns;
      if (r === rows && c === cols) {
        return mat;
      } else {
        let resultat = AbstractMatrix.zeros(rows, cols);
        resultat = resultat.setSubMatrix(mat, 0, 0);
        return resultat;
      }
    }

    // Make sure both matrices are the same size.
    // This is exclusively for simplicity:
    // this algorithm can be implemented with matrices of different sizes.

    let r = Math.max(r1, r2);
    let c = Math.max(c1, c2);
    x = embed(x, r, c);
    y = embed(y, r, c);

    // Our recursive multiplication function.
    function blockMult(a, b, rows, cols) {
      // For small matrices, resort to naive multiplication.
      if (rows <= 512 || cols <= 512) {
        return a.mmul(b); // a is equivalent to this
      }

      // Apply dynamic padding.
      if (rows % 2 === 1 && cols % 2 === 1) {
        a = embed(a, rows + 1, cols + 1);
        b = embed(b, rows + 1, cols + 1);
      } else if (rows % 2 === 1) {
        a = embed(a, rows + 1, cols);
        b = embed(b, rows + 1, cols);
      } else if (cols % 2 === 1) {
        a = embed(a, rows, cols + 1);
        b = embed(b, rows, cols + 1);
      }
      let halfRows = parseInt(a.rows / 2, 10);
      let halfCols = parseInt(a.columns / 2, 10);
      // Subdivide input matrices.
      let a11 = a.subMatrix(0, halfRows - 1, 0, halfCols - 1);
      let b11 = b.subMatrix(0, halfRows - 1, 0, halfCols - 1);
      let a12 = a.subMatrix(0, halfRows - 1, halfCols, a.columns - 1);
      let b12 = b.subMatrix(0, halfRows - 1, halfCols, b.columns - 1);
      let a21 = a.subMatrix(halfRows, a.rows - 1, 0, halfCols - 1);
      let b21 = b.subMatrix(halfRows, b.rows - 1, 0, halfCols - 1);
      let a22 = a.subMatrix(halfRows, a.rows - 1, halfCols, a.columns - 1);
      let b22 = b.subMatrix(halfRows, b.rows - 1, halfCols, b.columns - 1);

      // Compute intermediate values.
      let m1 = blockMult(AbstractMatrix.add(a11, a22), AbstractMatrix.add(b11, b22), halfRows, halfCols);
      let m2 = blockMult(AbstractMatrix.add(a21, a22), b11, halfRows, halfCols);
      let m3 = blockMult(a11, AbstractMatrix.sub(b12, b22), halfRows, halfCols);
      let m4 = blockMult(a22, AbstractMatrix.sub(b21, b11), halfRows, halfCols);
      let m5 = blockMult(AbstractMatrix.add(a11, a12), b22, halfRows, halfCols);
      let m6 = blockMult(AbstractMatrix.sub(a21, a11), AbstractMatrix.add(b11, b12), halfRows, halfCols);
      let m7 = blockMult(AbstractMatrix.sub(a12, a22), AbstractMatrix.add(b21, b22), halfRows, halfCols);

      // Combine intermediate values into the output.
      let c11 = AbstractMatrix.add(m1, m4);
      c11.sub(m5);
      c11.add(m7);
      let c12 = AbstractMatrix.add(m3, m5);
      let c21 = AbstractMatrix.add(m2, m4);
      let c22 = AbstractMatrix.sub(m1, m2);
      c22.add(m3);
      c22.add(m6);

      // Crop output to the desired size (undo dynamic padding).
      let result = AbstractMatrix.zeros(2 * c11.rows, 2 * c11.columns);
      result = result.setSubMatrix(c11, 0, 0);
      result = result.setSubMatrix(c12, c11.rows, 0);
      result = result.setSubMatrix(c21, 0, c11.columns);
      result = result.setSubMatrix(c22, c11.rows, c11.columns);
      return result.subMatrix(0, rows - 1, 0, cols - 1);
    }
    return blockMult(x, y, r, c);
  }
  scaleRows(options = {}) {
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    const {
      min = 0,
      max = 1
    } = options;
    if (!Number.isFinite(min)) throw new TypeError('min must be a number');
    if (!Number.isFinite(max)) throw new TypeError('max must be a number');
    if (min >= max) throw new RangeError('min must be smaller than max');
    let newMatrix = new Matrix$1(this.rows, this.columns);
    for (let i = 0; i < this.rows; i++) {
      const row = this.getRow(i);
      if (row.length > 0) {
        rescale(row, {
          min,
          max,
          output: row
        });
      }
      newMatrix.setRow(i, row);
    }
    return newMatrix;
  }
  scaleColumns(options = {}) {
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    const {
      min = 0,
      max = 1
    } = options;
    if (!Number.isFinite(min)) throw new TypeError('min must be a number');
    if (!Number.isFinite(max)) throw new TypeError('max must be a number');
    if (min >= max) throw new RangeError('min must be smaller than max');
    let newMatrix = new Matrix$1(this.rows, this.columns);
    for (let i = 0; i < this.columns; i++) {
      const column = this.getColumn(i);
      if (column.length) {
        rescale(column, {
          min,
          max,
          output: column
        });
      }
      newMatrix.setColumn(i, column);
    }
    return newMatrix;
  }
  flipRows() {
    const middle = Math.ceil(this.columns / 2);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < middle; j++) {
        let first = this.get(i, j);
        let last = this.get(i, this.columns - 1 - j);
        this.set(i, j, last);
        this.set(i, this.columns - 1 - j, first);
      }
    }
    return this;
  }
  flipColumns() {
    const middle = Math.ceil(this.rows / 2);
    for (let j = 0; j < this.columns; j++) {
      for (let i = 0; i < middle; i++) {
        let first = this.get(i, j);
        let last = this.get(this.rows - 1 - i, j);
        this.set(i, j, last);
        this.set(this.rows - 1 - i, j, first);
      }
    }
    return this;
  }
  kroneckerProduct(other) {
    other = Matrix$1.checkMatrix(other);
    let m = this.rows;
    let n = this.columns;
    let p = other.rows;
    let q = other.columns;
    let result = new Matrix$1(m * p, n * q);
    for (let i = 0; i < m; i++) {
      for (let j = 0; j < n; j++) {
        for (let k = 0; k < p; k++) {
          for (let l = 0; l < q; l++) {
            result.set(p * i + k, q * j + l, this.get(i, j) * other.get(k, l));
          }
        }
      }
    }
    return result;
  }
  kroneckerSum(other) {
    other = Matrix$1.checkMatrix(other);
    if (!this.isSquare() || !other.isSquare()) {
      throw new Error('Kronecker Sum needs two Square Matrices');
    }
    let m = this.rows;
    let n = other.rows;
    let AxI = this.kroneckerProduct(Matrix$1.eye(n, n));
    let IxB = Matrix$1.eye(m, m).kroneckerProduct(other);
    return AxI.add(IxB);
  }
  transpose() {
    let result = new Matrix$1(this.columns, this.rows);
    for (let i = 0; i < this.rows; i++) {
      for (let j = 0; j < this.columns; j++) {
        result.set(j, i, this.get(i, j));
      }
    }
    return result;
  }
  sortRows(compareFunction = compareNumbers) {
    for (let i = 0; i < this.rows; i++) {
      this.setRow(i, this.getRow(i).sort(compareFunction));
    }
    return this;
  }
  sortColumns(compareFunction = compareNumbers) {
    for (let i = 0; i < this.columns; i++) {
      this.setColumn(i, this.getColumn(i).sort(compareFunction));
    }
    return this;
  }
  subMatrix(startRow, endRow, startColumn, endColumn) {
    checkRange(this, startRow, endRow, startColumn, endColumn);
    let newMatrix = new Matrix$1(endRow - startRow + 1, endColumn - startColumn + 1);
    for (let i = startRow; i <= endRow; i++) {
      for (let j = startColumn; j <= endColumn; j++) {
        newMatrix.set(i - startRow, j - startColumn, this.get(i, j));
      }
    }
    return newMatrix;
  }
  subMatrixRow(indices, startColumn, endColumn) {
    if (startColumn === undefined) startColumn = 0;
    if (endColumn === undefined) endColumn = this.columns - 1;
    if (startColumn > endColumn || startColumn < 0 || startColumn >= this.columns || endColumn < 0 || endColumn >= this.columns) {
      throw new RangeError('Argument out of range');
    }
    let newMatrix = new Matrix$1(indices.length, endColumn - startColumn + 1);
    for (let i = 0; i < indices.length; i++) {
      for (let j = startColumn; j <= endColumn; j++) {
        if (indices[i] < 0 || indices[i] >= this.rows) {
          throw new RangeError(`Row index out of range: ${indices[i]}`);
        }
        newMatrix.set(i, j - startColumn, this.get(indices[i], j));
      }
    }
    return newMatrix;
  }
  subMatrixColumn(indices, startRow, endRow) {
    if (startRow === undefined) startRow = 0;
    if (endRow === undefined) endRow = this.rows - 1;
    if (startRow > endRow || startRow < 0 || startRow >= this.rows || endRow < 0 || endRow >= this.rows) {
      throw new RangeError('Argument out of range');
    }
    let newMatrix = new Matrix$1(endRow - startRow + 1, indices.length);
    for (let i = 0; i < indices.length; i++) {
      for (let j = startRow; j <= endRow; j++) {
        if (indices[i] < 0 || indices[i] >= this.columns) {
          throw new RangeError(`Column index out of range: ${indices[i]}`);
        }
        newMatrix.set(j - startRow, i, this.get(j, indices[i]));
      }
    }
    return newMatrix;
  }
  setSubMatrix(matrix, startRow, startColumn) {
    matrix = Matrix$1.checkMatrix(matrix);
    if (matrix.isEmpty()) {
      return this;
    }
    let endRow = startRow + matrix.rows - 1;
    let endColumn = startColumn + matrix.columns - 1;
    checkRange(this, startRow, endRow, startColumn, endColumn);
    for (let i = 0; i < matrix.rows; i++) {
      for (let j = 0; j < matrix.columns; j++) {
        this.set(startRow + i, startColumn + j, matrix.get(i, j));
      }
    }
    return this;
  }
  selection(rowIndices, columnIndices) {
    checkRowIndices(this, rowIndices);
    checkColumnIndices(this, columnIndices);
    let newMatrix = new Matrix$1(rowIndices.length, columnIndices.length);
    for (let i = 0; i < rowIndices.length; i++) {
      let rowIndex = rowIndices[i];
      for (let j = 0; j < columnIndices.length; j++) {
        let columnIndex = columnIndices[j];
        newMatrix.set(i, j, this.get(rowIndex, columnIndex));
      }
    }
    return newMatrix;
  }
  trace() {
    let min = Math.min(this.rows, this.columns);
    let trace = 0;
    for (let i = 0; i < min; i++) {
      trace += this.get(i, i);
    }
    return trace;
  }
  clone() {
    return this.constructor.copy(this, new Matrix$1(this.rows, this.columns));
  }

  /**
   * @template {AbstractMatrix} M
   * @param {AbstractMatrix} from
   * @param {M} to
   * @return {M}
   */
  static copy(from, to) {
    for (const [row, column, value] of from.entries()) {
      to.set(row, column, value);
    }
    return to;
  }
  sum(by) {
    switch (by) {
      case 'row':
        return sumByRow(this);
      case 'column':
        return sumByColumn(this);
      case undefined:
        return sumAll(this);
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  product(by) {
    switch (by) {
      case 'row':
        return productByRow(this);
      case 'column':
        return productByColumn(this);
      case undefined:
        return productAll(this);
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  mean(by) {
    const sum = this.sum(by);
    switch (by) {
      case 'row':
        {
          for (let i = 0; i < this.rows; i++) {
            sum[i] /= this.columns;
          }
          return sum;
        }
      case 'column':
        {
          for (let i = 0; i < this.columns; i++) {
            sum[i] /= this.rows;
          }
          return sum;
        }
      case undefined:
        return sum / this.size;
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  variance(by, options = {}) {
    if (typeof by === 'object') {
      options = by;
      by = undefined;
    }
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    const {
      unbiased = true,
      mean = this.mean(by)
    } = options;
    if (typeof unbiased !== 'boolean') {
      throw new TypeError('unbiased must be a boolean');
    }
    switch (by) {
      case 'row':
        {
          if (!isAnyArray.isAnyArray(mean)) {
            throw new TypeError('mean must be an array');
          }
          return varianceByRow(this, unbiased, mean);
        }
      case 'column':
        {
          if (!isAnyArray.isAnyArray(mean)) {
            throw new TypeError('mean must be an array');
          }
          return varianceByColumn(this, unbiased, mean);
        }
      case undefined:
        {
          if (typeof mean !== 'number') {
            throw new TypeError('mean must be a number');
          }
          return varianceAll(this, unbiased, mean);
        }
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  standardDeviation(by, options) {
    if (typeof by === 'object') {
      options = by;
      by = undefined;
    }
    const variance = this.variance(by, options);
    if (by === undefined) {
      return Math.sqrt(variance);
    } else {
      for (let i = 0; i < variance.length; i++) {
        variance[i] = Math.sqrt(variance[i]);
      }
      return variance;
    }
  }
  center(by, options = {}) {
    if (typeof by === 'object') {
      options = by;
      by = undefined;
    }
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    const {
      center = this.mean(by)
    } = options;
    switch (by) {
      case 'row':
        {
          if (!isAnyArray.isAnyArray(center)) {
            throw new TypeError('center must be an array');
          }
          centerByRow(this, center);
          return this;
        }
      case 'column':
        {
          if (!isAnyArray.isAnyArray(center)) {
            throw new TypeError('center must be an array');
          }
          centerByColumn(this, center);
          return this;
        }
      case undefined:
        {
          if (typeof center !== 'number') {
            throw new TypeError('center must be a number');
          }
          centerAll(this, center);
          return this;
        }
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  scale(by, options = {}) {
    if (typeof by === 'object') {
      options = by;
      by = undefined;
    }
    if (typeof options !== 'object') {
      throw new TypeError('options must be an object');
    }
    let scale = options.scale;
    switch (by) {
      case 'row':
        {
          if (scale === undefined) {
            scale = getScaleByRow(this);
          } else if (!isAnyArray.isAnyArray(scale)) {
            throw new TypeError('scale must be an array');
          }
          scaleByRow(this, scale);
          return this;
        }
      case 'column':
        {
          if (scale === undefined) {
            scale = getScaleByColumn(this);
          } else if (!isAnyArray.isAnyArray(scale)) {
            throw new TypeError('scale must be an array');
          }
          scaleByColumn(this, scale);
          return this;
        }
      case undefined:
        {
          if (scale === undefined) {
            scale = getScaleAll(this);
          } else if (typeof scale !== 'number') {
            throw new TypeError('scale must be a number');
          }
          scaleAll(this, scale);
          return this;
        }
      default:
        throw new Error(`invalid option: ${by}`);
    }
  }
  toString(options) {
    return inspectMatrixWithOptions(this, options);
  }
  [Symbol.iterator]() {
    return this.entries();
  }

  /**
   * iterator from left to right, from top to bottom
   * yield [row, column, value]
   * @returns {Generator<[number, number, number], void, void>}
   */
  *entries() {
    for (let row = 0; row < this.rows; row++) {
      for (let col = 0; col < this.columns; col++) {
        yield [row, col, this.get(row, col)];
      }
    }
  }

  /**
   * iterator from left to right, from top to bottom
   * yield value
   * @returns {Generator<number, void, void>}
   */
  *values() {
    for (let row = 0; row < this.rows; row++) {
      for (let col = 0; col < this.columns; col++) {
        yield this.get(row, col);
      }
    }
  }
}
AbstractMatrix.prototype.klass = 'Matrix';
if (typeof Symbol !== 'undefined') {
  AbstractMatrix.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspectMatrix;
}
function compareNumbers(a, b) {
  return a - b;
}
function isArrayOfNumbers(array) {
  return array.every(element => {
    return typeof element === 'number';
  });
}

// Synonyms
AbstractMatrix.random = AbstractMatrix.rand;
AbstractMatrix.randomInt = AbstractMatrix.randInt;
AbstractMatrix.diagonal = AbstractMatrix.diag;
AbstractMatrix.prototype.diagonal = AbstractMatrix.prototype.diag;
AbstractMatrix.identity = AbstractMatrix.eye;
AbstractMatrix.prototype.negate = AbstractMatrix.prototype.neg;
AbstractMatrix.prototype.tensorProduct = AbstractMatrix.prototype.kroneckerProduct;
let Matrix$1 = class Matrix extends AbstractMatrix {
  /**
   * @type {Float64Array[]}
   */
  data;

  /**
   * Init an empty matrix
   * @param {number} nRows
   * @param {number} nColumns
   */
  #initData(nRows, nColumns) {
    this.data = [];
    if (Number.isInteger(nColumns) && nColumns >= 0) {
      for (let i = 0; i < nRows; i++) {
        this.data.push(new Float64Array(nColumns));
      }
    } else {
      throw new TypeError('nColumns must be a positive integer');
    }
    this.rows = nRows;
    this.columns = nColumns;
  }
  constructor(nRows, nColumns) {
    super();
    if (Matrix.isMatrix(nRows)) {
      this.#initData(nRows.rows, nRows.columns);
      Matrix.copy(nRows, this);
    } else if (Number.isInteger(nRows) && nRows >= 0) {
      this.#initData(nRows, nColumns);
    } else if (isAnyArray.isAnyArray(nRows)) {
      // Copy the values from the 2D array
      const arrayData = nRows;
      nRows = arrayData.length;
      nColumns = nRows ? arrayData[0].length : 0;
      if (typeof nColumns !== 'number') {
        throw new TypeError('Data must be a 2D array with at least one element');
      }
      this.data = [];
      for (let i = 0; i < nRows; i++) {
        if (arrayData[i].length !== nColumns) {
          throw new RangeError('Inconsistent array dimensions');
        }
        if (!isArrayOfNumbers(arrayData[i])) {
          throw new TypeError('Input data contains non-numeric values');
        }
        this.data.push(Float64Array.from(arrayData[i]));
      }
      this.rows = nRows;
      this.columns = nColumns;
    } else {
      throw new TypeError('First argument must be a positive number or an array');
    }
  }
  set(rowIndex, columnIndex, value) {
    this.data[rowIndex][columnIndex] = value;
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.data[rowIndex][columnIndex];
  }
  removeRow(index) {
    checkRowIndex(this, index);
    this.data.splice(index, 1);
    this.rows -= 1;
    return this;
  }
  addRow(index, array) {
    if (array === undefined) {
      array = index;
      index = this.rows;
    }
    checkRowIndex(this, index, true);
    array = Float64Array.from(checkRowVector(this, array));
    this.data.splice(index, 0, array);
    this.rows += 1;
    return this;
  }
  removeColumn(index) {
    checkColumnIndex(this, index);
    for (let i = 0; i < this.rows; i++) {
      const newRow = new Float64Array(this.columns - 1);
      for (let j = 0; j < index; j++) {
        newRow[j] = this.data[i][j];
      }
      for (let j = index + 1; j < this.columns; j++) {
        newRow[j - 1] = this.data[i][j];
      }
      this.data[i] = newRow;
    }
    this.columns -= 1;
    return this;
  }
  addColumn(index, array) {
    if (typeof array === 'undefined') {
      array = index;
      index = this.columns;
    }
    checkColumnIndex(this, index, true);
    array = checkColumnVector(this, array);
    for (let i = 0; i < this.rows; i++) {
      const newRow = new Float64Array(this.columns + 1);
      let j = 0;
      for (; j < index; j++) {
        newRow[j] = this.data[i][j];
      }
      newRow[j++] = array[i];
      for (; j < this.columns + 1; j++) {
        newRow[j] = this.data[i][j - 1];
      }
      this.data[i] = newRow;
    }
    this.columns += 1;
    return this;
  }
};
installMathOperations(AbstractMatrix, Matrix$1);

/**
 * @typedef {0 | 1 | number | boolean} Mask
 */

class SymmetricMatrix extends AbstractMatrix {
  /** @type {Matrix} */
  #matrix;
  get size() {
    return this.#matrix.size;
  }
  get rows() {
    return this.#matrix.rows;
  }
  get columns() {
    return this.#matrix.columns;
  }
  get diagonalSize() {
    return this.rows;
  }

  /**
   * not the same as matrix.isSymmetric()
   * Here is to check if it's instanceof SymmetricMatrix without bundling issues
   *
   * @param value
   * @returns {boolean}
   */
  static isSymmetricMatrix(value) {
    return Matrix$1.isMatrix(value) && value.klassType === 'SymmetricMatrix';
  }

  /**
   * @param diagonalSize
   * @return {SymmetricMatrix}
   */
  static zeros(diagonalSize) {
    return new this(diagonalSize);
  }

  /**
   * @param diagonalSize
   * @return {SymmetricMatrix}
   */
  static ones(diagonalSize) {
    return new this(diagonalSize).fill(1);
  }

  /**
   * @param {number | AbstractMatrix | ArrayLike<ArrayLike<number>>} diagonalSize
   * @return {this}
   */
  constructor(diagonalSize) {
    super();
    if (Matrix$1.isMatrix(diagonalSize)) {
      if (!diagonalSize.isSymmetric()) {
        throw new TypeError('not symmetric data');
      }
      this.#matrix = Matrix$1.copy(diagonalSize, new Matrix$1(diagonalSize.rows, diagonalSize.rows));
    } else if (Number.isInteger(diagonalSize) && diagonalSize >= 0) {
      this.#matrix = new Matrix$1(diagonalSize, diagonalSize);
    } else {
      this.#matrix = new Matrix$1(diagonalSize);
      if (!this.isSymmetric()) {
        throw new TypeError('not symmetric data');
      }
    }
  }
  clone() {
    const matrix = new SymmetricMatrix(this.diagonalSize);
    for (const [row, col, value] of this.upperRightEntries()) {
      matrix.set(row, col, value);
    }
    return matrix;
  }
  toMatrix() {
    return new Matrix$1(this);
  }
  get(rowIndex, columnIndex) {
    return this.#matrix.get(rowIndex, columnIndex);
  }
  set(rowIndex, columnIndex, value) {
    // symmetric set
    this.#matrix.set(rowIndex, columnIndex, value);
    this.#matrix.set(columnIndex, rowIndex, value);
    return this;
  }
  removeCross(index) {
    // symmetric remove side
    this.#matrix.removeRow(index);
    this.#matrix.removeColumn(index);
    return this;
  }
  addCross(index, array) {
    if (array === undefined) {
      array = index;
      index = this.diagonalSize;
    }
    const row = array.slice();
    row.splice(index, 1);
    this.#matrix.addRow(index, row);
    this.#matrix.addColumn(index, array);
    return this;
  }

  /**
   * @param {Mask[]} mask
   */
  applyMask(mask) {
    if (mask.length !== this.diagonalSize) {
      throw new RangeError('Mask size do not match with matrix size');
    }

    // prepare sides to remove from matrix from mask
    /** @type {number[]} */
    const sidesToRemove = [];
    for (const [index, passthroughs] of mask.entries()) {
      if (passthroughs) continue;
      sidesToRemove.push(index);
    }
    // to remove from highest to lowest for no mutation shifting
    sidesToRemove.reverse();

    // remove sides
    for (const sideIndex of sidesToRemove) {
      this.removeCross(sideIndex);
    }
    return this;
  }

  /**
   * Compact format upper-right corner of matrix
   * iterate from left to right, from top to bottom.
   *
   * ```
   *   A B C D
   * A 1 2 3 4
   * B 2 5 6 7
   * C 3 6 8 9
   * D 4 7 9 10
   * ```
   *
   * will return compact 1D array `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`
   *
   * length is S(i=0, n=sideSize) => 10 for a 4 sideSized matrix
   *
   * @returns {number[]}
   */
  toCompact() {
    const {
      diagonalSize
    } = this;

    /** @type {number[]} */
    const compact = new Array(diagonalSize * (diagonalSize + 1) / 2);
    for (let col = 0, row = 0, index = 0; index < compact.length; index++) {
      compact[index] = this.get(row, col);
      if (++col >= diagonalSize) col = ++row;
    }
    return compact;
  }

  /**
   * @param {number[]} compact
   * @return {SymmetricMatrix}
   */
  static fromCompact(compact) {
    const compactSize = compact.length;
    // compactSize = (sideSize * (sideSize + 1)) / 2
    // https://mathsolver.microsoft.com/fr/solve-problem/y%20%3D%20%20x%20%60cdot%20%20%20%60frac%7B%20%20%60left(%20x%2B1%20%20%60right)%20%20%20%20%7D%7B%202%20%20%7D
    // sideSize = (Sqrt(8 × compactSize + 1) - 1) / 2
    const diagonalSize = (Math.sqrt(8 * compactSize + 1) - 1) / 2;
    if (!Number.isInteger(diagonalSize)) {
      throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(compact)}`);
    }
    const matrix = new SymmetricMatrix(diagonalSize);
    for (let col = 0, row = 0, index = 0; index < compactSize; index++) {
      matrix.set(col, row, compact[index]);
      if (++col >= diagonalSize) col = ++row;
    }
    return matrix;
  }

  /**
   * half iterator upper-right-corner from left to right, from top to bottom
   * yield [row, column, value]
   *
   * @returns {Generator<[number, number, number], void, void>}
   */
  *upperRightEntries() {
    for (let row = 0, col = 0; row < this.diagonalSize; void 0) {
      const value = this.get(row, col);
      yield [row, col, value];

      // at the end of row, move cursor to next row at diagonal position
      if (++col >= this.diagonalSize) col = ++row;
    }
  }

  /**
   * half iterator upper-right-corner from left to right, from top to bottom
   * yield value
   *
   * @returns {Generator<[number, number, number], void, void>}
   */
  *upperRightValues() {
    for (let row = 0, col = 0; row < this.diagonalSize; void 0) {
      const value = this.get(row, col);
      yield value;

      // at the end of row, move cursor to next row at diagonal position
      if (++col >= this.diagonalSize) col = ++row;
    }
  }
}
SymmetricMatrix.prototype.klassType = 'SymmetricMatrix';
class DistanceMatrix extends SymmetricMatrix {
  /**
   * not the same as matrix.isSymmetric()
   * Here is to check if it's instanceof SymmetricMatrix without bundling issues
   *
   * @param value
   * @returns {boolean}
   */
  static isDistanceMatrix(value) {
    return SymmetricMatrix.isSymmetricMatrix(value) && value.klassSubType === 'DistanceMatrix';
  }
  constructor(sideSize) {
    super(sideSize);
    if (!this.isDistance()) {
      throw new TypeError('Provided arguments do no produce a distance matrix');
    }
  }
  set(rowIndex, columnIndex, value) {
    // distance matrix diagonal is 0
    if (rowIndex === columnIndex) value = 0;
    return super.set(rowIndex, columnIndex, value);
  }
  addCross(index, array) {
    if (array === undefined) {
      array = index;
      index = this.diagonalSize;
    }

    // ensure distance
    array = array.slice();
    array[index] = 0;
    return super.addCross(index, array);
  }
  toSymmetricMatrix() {
    return new SymmetricMatrix(this);
  }
  clone() {
    const matrix = new DistanceMatrix(this.diagonalSize);
    for (const [row, col, value] of this.upperRightEntries()) {
      if (row === col) continue;
      matrix.set(row, col, value);
    }
    return matrix;
  }

  /**
   * Compact format upper-right corner of matrix
   * no diagonal (only zeros)
   * iterable from left to right, from top to bottom.
   *
   * ```
   *   A B C D
   * A 0 1 2 3
   * B 1 0 4 5
   * C 2 4 0 6
   * D 3 5 6 0
   * ```
   *
   * will return compact 1D array `[1, 2, 3, 4, 5, 6]`
   *
   * length is S(i=0, n=sideSize-1) => 6 for a 4 side sized matrix
   *
   * @returns {number[]}
   */
  toCompact() {
    const {
      diagonalSize
    } = this;
    const compactLength = (diagonalSize - 1) * diagonalSize / 2;

    /** @type {number[]} */
    const compact = new Array(compactLength);
    for (let col = 1, row = 0, index = 0; index < compact.length; index++) {
      compact[index] = this.get(row, col);
      if (++col >= diagonalSize) col = ++row + 1;
    }
    return compact;
  }

  /**
   * @param {number[]} compact
   */
  static fromCompact(compact) {
    const compactSize = compact.length;
    if (compactSize === 0) {
      return new this(0);
    }

    // compactSize in Natural integer range ]0;∞]
    // compactSize = (sideSize * (sideSize - 1)) / 2
    // sideSize = (Sqrt(8 × compactSize + 1) + 1) / 2
    const diagonalSize = (Math.sqrt(8 * compactSize + 1) + 1) / 2;
    if (!Number.isInteger(diagonalSize)) {
      throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(compact)}`);
    }
    const matrix = new this(diagonalSize);
    for (let col = 1, row = 0, index = 0; index < compactSize; index++) {
      matrix.set(col, row, compact[index]);
      if (++col >= diagonalSize) col = ++row + 1;
    }
    return matrix;
  }
}
DistanceMatrix.prototype.klassSubType = 'DistanceMatrix';
class BaseView extends AbstractMatrix {
  constructor(matrix, rows, columns) {
    super();
    this.matrix = matrix;
    this.rows = rows;
    this.columns = columns;
  }
}
class MatrixColumnView extends BaseView {
  constructor(matrix, column) {
    checkColumnIndex(matrix, column);
    super(matrix, matrix.rows, 1);
    this.column = column;
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(rowIndex, this.column, value);
    return this;
  }
  get(rowIndex) {
    return this.matrix.get(rowIndex, this.column);
  }
}
class MatrixColumnSelectionView extends BaseView {
  constructor(matrix, columnIndices) {
    checkColumnIndices(matrix, columnIndices);
    super(matrix, matrix.rows, columnIndices.length);
    this.columnIndices = columnIndices;
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(rowIndex, this.columnIndices[columnIndex], value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(rowIndex, this.columnIndices[columnIndex]);
  }
}
class MatrixFlipColumnView extends BaseView {
  constructor(matrix) {
    super(matrix, matrix.rows, matrix.columns);
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(rowIndex, this.columns - columnIndex - 1, value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(rowIndex, this.columns - columnIndex - 1);
  }
}
class MatrixFlipRowView extends BaseView {
  constructor(matrix) {
    super(matrix, matrix.rows, matrix.columns);
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(this.rows - rowIndex - 1, columnIndex, value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(this.rows - rowIndex - 1, columnIndex);
  }
}
class MatrixRowView extends BaseView {
  constructor(matrix, row) {
    checkRowIndex(matrix, row);
    super(matrix, 1, matrix.columns);
    this.row = row;
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(this.row, columnIndex, value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(this.row, columnIndex);
  }
}
class MatrixRowSelectionView extends BaseView {
  constructor(matrix, rowIndices) {
    checkRowIndices(matrix, rowIndices);
    super(matrix, rowIndices.length, matrix.columns);
    this.rowIndices = rowIndices;
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(this.rowIndices[rowIndex], columnIndex, value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(this.rowIndices[rowIndex], columnIndex);
  }
}
class MatrixSelectionView extends BaseView {
  constructor(matrix, rowIndices, columnIndices) {
    checkRowIndices(matrix, rowIndices);
    checkColumnIndices(matrix, columnIndices);
    super(matrix, rowIndices.length, columnIndices.length);
    this.rowIndices = rowIndices;
    this.columnIndices = columnIndices;
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(this.rowIndices[rowIndex], this.columnIndices[columnIndex], value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(this.rowIndices[rowIndex], this.columnIndices[columnIndex]);
  }
}
class MatrixSubView extends BaseView {
  constructor(matrix, startRow, endRow, startColumn, endColumn) {
    checkRange(matrix, startRow, endRow, startColumn, endColumn);
    super(matrix, endRow - startRow + 1, endColumn - startColumn + 1);
    this.startRow = startRow;
    this.startColumn = startColumn;
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(this.startRow + rowIndex, this.startColumn + columnIndex, value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(this.startRow + rowIndex, this.startColumn + columnIndex);
  }
}
class MatrixTransposeView extends BaseView {
  constructor(matrix) {
    super(matrix, matrix.columns, matrix.rows);
  }
  set(rowIndex, columnIndex, value) {
    this.matrix.set(columnIndex, rowIndex, value);
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.matrix.get(columnIndex, rowIndex);
  }
}
class WrapperMatrix1D extends AbstractMatrix {
  constructor(data, options = {}) {
    const {
      rows = 1
    } = options;
    if (data.length % rows !== 0) {
      throw new Error('the data length is not divisible by the number of rows');
    }
    super();
    this.rows = rows;
    this.columns = data.length / rows;
    this.data = data;
  }
  set(rowIndex, columnIndex, value) {
    let index = this._calculateIndex(rowIndex, columnIndex);
    this.data[index] = value;
    return this;
  }
  get(rowIndex, columnIndex) {
    let index = this._calculateIndex(rowIndex, columnIndex);
    return this.data[index];
  }
  _calculateIndex(row, column) {
    return row * this.columns + column;
  }
}
class WrapperMatrix2D extends AbstractMatrix {
  constructor(data) {
    super();
    this.data = data;
    this.rows = data.length;
    this.columns = data[0].length;
  }
  set(rowIndex, columnIndex, value) {
    this.data[rowIndex][columnIndex] = value;
    return this;
  }
  get(rowIndex, columnIndex) {
    return this.data[rowIndex][columnIndex];
  }
}
function wrap(array, options) {
  if (isAnyArray.isAnyArray(array)) {
    if (array[0] && isAnyArray.isAnyArray(array[0])) {
      return new WrapperMatrix2D(array);
    } else {
      return new WrapperMatrix1D(array, options);
    }
  } else {
    throw new Error('the argument is not an array');
  }
}
class LuDecomposition {
  constructor(matrix) {
    matrix = WrapperMatrix2D.checkMatrix(matrix);
    let lu = matrix.clone();
    let rows = lu.rows;
    let columns = lu.columns;
    let pivotVector = new Float64Array(rows);
    let pivotSign = 1;
    let i, j, k, p, s, t, v;
    let LUcolj, kmax;
    for (i = 0; i < rows; i++) {
      pivotVector[i] = i;
    }
    LUcolj = new Float64Array(rows);
    for (j = 0; j < columns; j++) {
      for (i = 0; i < rows; i++) {
        LUcolj[i] = lu.get(i, j);
      }
      for (i = 0; i < rows; i++) {
        kmax = Math.min(i, j);
        s = 0;
        for (k = 0; k < kmax; k++) {
          s += lu.get(i, k) * LUcolj[k];
        }
        LUcolj[i] -= s;
        lu.set(i, j, LUcolj[i]);
      }
      p = j;
      for (i = j + 1; i < rows; i++) {
        if (Math.abs(LUcolj[i]) > Math.abs(LUcolj[p])) {
          p = i;
        }
      }
      if (p !== j) {
        for (k = 0; k < columns; k++) {
          t = lu.get(p, k);
          lu.set(p, k, lu.get(j, k));
          lu.set(j, k, t);
        }
        v = pivotVector[p];
        pivotVector[p] = pivotVector[j];
        pivotVector[j] = v;
        pivotSign = -pivotSign;
      }
      if (j < rows && lu.get(j, j) !== 0) {
        for (i = j + 1; i < rows; i++) {
          lu.set(i, j, lu.get(i, j) / lu.get(j, j));
        }
      }
    }
    this.LU = lu;
    this.pivotVector = pivotVector;
    this.pivotSign = pivotSign;
  }
  isSingular() {
    let data = this.LU;
    let col = data.columns;
    for (let j = 0; j < col; j++) {
      if (data.get(j, j) === 0) {
        return true;
      }
    }
    return false;
  }
  solve(value) {
    value = Matrix$1.checkMatrix(value);
    let lu = this.LU;
    let rows = lu.rows;
    if (rows !== value.rows) {
      throw new Error('Invalid matrix dimensions');
    }
    if (this.isSingular()) {
      throw new Error('LU matrix is singular');
    }
    let count = value.columns;
    let X = value.subMatrixRow(this.pivotVector, 0, count - 1);
    let columns = lu.columns;
    let i, j, k;
    for (k = 0; k < columns; k++) {
      for (i = k + 1; i < columns; i++) {
        for (j = 0; j < count; j++) {
          X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));
        }
      }
    }
    for (k = columns - 1; k >= 0; k--) {
      for (j = 0; j < count; j++) {
        X.set(k, j, X.get(k, j) / lu.get(k, k));
      }
      for (i = 0; i < k; i++) {
        for (j = 0; j < count; j++) {
          X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));
        }
      }
    }
    return X;
  }
  get determinant() {
    let data = this.LU;
    if (!data.isSquare()) {
      throw new Error('Matrix must be square');
    }
    let determinant = this.pivotSign;
    let col = data.columns;
    for (let j = 0; j < col; j++) {
      determinant *= data.get(j, j);
    }
    return determinant;
  }
  get lowerTriangularMatrix() {
    let data = this.LU;
    let rows = data.rows;
    let columns = data.columns;
    let X = new Matrix$1(rows, columns);
    for (let i = 0; i < rows; i++) {
      for (let j = 0; j < columns; j++) {
        if (i > j) {
          X.set(i, j, data.get(i, j));
        } else if (i === j) {
          X.set(i, j, 1);
        } else {
          X.set(i, j, 0);
        }
      }
    }
    return X;
  }
  get upperTriangularMatrix() {
    let data = this.LU;
    let rows = data.rows;
    let columns = data.columns;
    let X = new Matrix$1(rows, columns);
    for (let i = 0; i < rows; i++) {
      for (let j = 0; j < columns; j++) {
        if (i <= j) {
          X.set(i, j, data.get(i, j));
        } else {
          X.set(i, j, 0);
        }
      }
    }
    return X;
  }
  get pivotPermutationVector() {
    return Array.from(this.pivotVector);
  }
}
function hypotenuse(a, b) {
  let r = 0;
  if (Math.abs(a) > Math.abs(b)) {
    r = b / a;
    return Math.abs(a) * Math.sqrt(1 + r * r);
  }
  if (b !== 0) {
    r = a / b;
    return Math.abs(b) * Math.sqrt(1 + r * r);
  }
  return 0;
}
class QrDecomposition {
  constructor(value) {
    value = WrapperMatrix2D.checkMatrix(value);
    let qr = value.clone();
    let m = value.rows;
    let n = value.columns;
    let rdiag = new Float64Array(n);
    let i, j, k, s;
    for (k = 0; k < n; k++) {
      let nrm = 0;
      for (i = k; i < m; i++) {
        nrm = hypotenuse(nrm, qr.get(i, k));
      }
      if (nrm !== 0) {
        if (qr.get(k, k) < 0) {
          nrm = -nrm;
        }
        for (i = k; i < m; i++) {
          qr.set(i, k, qr.get(i, k) / nrm);
        }
        qr.set(k, k, qr.get(k, k) + 1);
        for (j = k + 1; j < n; j++) {
          s = 0;
          for (i = k; i < m; i++) {
            s += qr.get(i, k) * qr.get(i, j);
          }
          s = -s / qr.get(k, k);
          for (i = k; i < m; i++) {
            qr.set(i, j, qr.get(i, j) + s * qr.get(i, k));
          }
        }
      }
      rdiag[k] = -nrm;
    }
    this.QR = qr;
    this.Rdiag = rdiag;
  }
  solve(value) {
    value = Matrix$1.checkMatrix(value);
    let qr = this.QR;
    let m = qr.rows;
    if (value.rows !== m) {
      throw new Error('Matrix row dimensions must agree');
    }
    if (!this.isFullRank()) {
      throw new Error('Matrix is rank deficient');
    }
    let count = value.columns;
    let X = value.clone();
    let n = qr.columns;
    let i, j, k, s;
    for (k = 0; k < n; k++) {
      for (j = 0; j < count; j++) {
        s = 0;
        for (i = k; i < m; i++) {
          s += qr.get(i, k) * X.get(i, j);
        }
        s = -s / qr.get(k, k);
        for (i = k; i < m; i++) {
          X.set(i, j, X.get(i, j) + s * qr.get(i, k));
        }
      }
    }
    for (k = n - 1; k >= 0; k--) {
      for (j = 0; j < count; j++) {
        X.set(k, j, X.get(k, j) / this.Rdiag[k]);
      }
      for (i = 0; i < k; i++) {
        for (j = 0; j < count; j++) {
          X.set(i, j, X.get(i, j) - X.get(k, j) * qr.get(i, k));
        }
      }
    }
    return X.subMatrix(0, n - 1, 0, count - 1);
  }
  isFullRank() {
    let columns = this.QR.columns;
    for (let i = 0; i < columns; i++) {
      if (this.Rdiag[i] === 0) {
        return false;
      }
    }
    return true;
  }
  get upperTriangularMatrix() {
    let qr = this.QR;
    let n = qr.columns;
    let X = new Matrix$1(n, n);
    let i, j;
    for (i = 0; i < n; i++) {
      for (j = 0; j < n; j++) {
        if (i < j) {
          X.set(i, j, qr.get(i, j));
        } else if (i === j) {
          X.set(i, j, this.Rdiag[i]);
        } else {
          X.set(i, j, 0);
        }
      }
    }
    return X;
  }
  get orthogonalMatrix() {
    let qr = this.QR;
    let rows = qr.rows;
    let columns = qr.columns;
    let X = new Matrix$1(rows, columns);
    let i, j, k, s;
    for (k = columns - 1; k >= 0; k--) {
      for (i = 0; i < rows; i++) {
        X.set(i, k, 0);
      }
      X.set(k, k, 1);
      for (j = k; j < columns; j++) {
        if (qr.get(k, k) !== 0) {
          s = 0;
          for (i = k; i < rows; i++) {
            s += qr.get(i, k) * X.get(i, j);
          }
          s = -s / qr.get(k, k);
          for (i = k; i < rows; i++) {
            X.set(i, j, X.get(i, j) + s * qr.get(i, k));
          }
        }
      }
    }
    return X;
  }
}
class SingularValueDecomposition {
  constructor(value, options = {}) {
    value = WrapperMatrix2D.checkMatrix(value);
    if (value.isEmpty()) {
      throw new Error('Matrix must be non-empty');
    }
    let m = value.rows;
    let n = value.columns;
    const {
      computeLeftSingularVectors = true,
      computeRightSingularVectors = true,
      autoTranspose = false
    } = options;
    let wantu = Boolean(computeLeftSingularVectors);
    let wantv = Boolean(computeRightSingularVectors);
    let swapped = false;
    let a;
    if (m < n) {
      if (!autoTranspose) {
        a = value.clone();
        // eslint-disable-next-line no-console
        console.warn('Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose');
      } else {
        a = value.transpose();
        m = a.rows;
        n = a.columns;
        swapped = true;
        let aux = wantu;
        wantu = wantv;
        wantv = aux;
      }
    } else {
      a = value.clone();
    }
    let nu = Math.min(m, n);
    let ni = Math.min(m + 1, n);
    let s = new Float64Array(ni);
    let U = new Matrix$1(m, nu);
    let V = new Matrix$1(n, n);
    let e = new Float64Array(n);
    let work = new Float64Array(m);
    let si = new Float64Array(ni);
    for (let i = 0; i < ni; i++) si[i] = i;
    let nct = Math.min(m - 1, n);
    let nrt = Math.max(0, Math.min(n - 2, m));
    let mrc = Math.max(nct, nrt);
    for (let k = 0; k < mrc; k++) {
      if (k < nct) {
        s[k] = 0;
        for (let i = k; i < m; i++) {
          s[k] = hypotenuse(s[k], a.get(i, k));
        }
        if (s[k] !== 0) {
          if (a.get(k, k) < 0) {
            s[k] = -s[k];
          }
          for (let i = k; i < m; i++) {
            a.set(i, k, a.get(i, k) / s[k]);
          }
          a.set(k, k, a.get(k, k) + 1);
        }
        s[k] = -s[k];
      }
      for (let j = k + 1; j < n; j++) {
        if (k < nct && s[k] !== 0) {
          let t = 0;
          for (let i = k; i < m; i++) {
            t += a.get(i, k) * a.get(i, j);
          }
          t = -t / a.get(k, k);
          for (let i = k; i < m; i++) {
            a.set(i, j, a.get(i, j) + t * a.get(i, k));
          }
        }
        e[j] = a.get(k, j);
      }
      if (wantu && k < nct) {
        for (let i = k; i < m; i++) {
          U.set(i, k, a.get(i, k));
        }
      }
      if (k < nrt) {
        e[k] = 0;
        for (let i = k + 1; i < n; i++) {
          e[k] = hypotenuse(e[k], e[i]);
        }
        if (e[k] !== 0) {
          if (e[k + 1] < 0) {
            e[k] = 0 - e[k];
          }
          for (let i = k + 1; i < n; i++) {
            e[i] /= e[k];
          }
          e[k + 1] += 1;
        }
        e[k] = -e[k];
        if (k + 1 < m && e[k] !== 0) {
          for (let i = k + 1; i < m; i++) {
            work[i] = 0;
          }
          for (let i = k + 1; i < m; i++) {
            for (let j = k + 1; j < n; j++) {
              work[i] += e[j] * a.get(i, j);
            }
          }
          for (let j = k + 1; j < n; j++) {
            let t = -e[j] / e[k + 1];
            for (let i = k + 1; i < m; i++) {
              a.set(i, j, a.get(i, j) + t * work[i]);
            }
          }
        }
        if (wantv) {
          for (let i = k + 1; i < n; i++) {
            V.set(i, k, e[i]);
          }
        }
      }
    }
    let p = Math.min(n, m + 1);
    if (nct < n) {
      s[nct] = a.get(nct, nct);
    }
    if (m < p) {
      s[p - 1] = 0;
    }
    if (nrt + 1 < p) {
      e[nrt] = a.get(nrt, p - 1);
    }
    e[p - 1] = 0;
    if (wantu) {
      for (let j = nct; j < nu; j++) {
        for (let i = 0; i < m; i++) {
          U.set(i, j, 0);
        }
        U.set(j, j, 1);
      }
      for (let k = nct - 1; k >= 0; k--) {
        if (s[k] !== 0) {
          for (let j = k + 1; j < nu; j++) {
            let t = 0;
            for (let i = k; i < m; i++) {
              t += U.get(i, k) * U.get(i, j);
            }
            t = -t / U.get(k, k);
            for (let i = k; i < m; i++) {
              U.set(i, j, U.get(i, j) + t * U.get(i, k));
            }
          }
          for (let i = k; i < m; i++) {
            U.set(i, k, -U.get(i, k));
          }
          U.set(k, k, 1 + U.get(k, k));
          for (let i = 0; i < k - 1; i++) {
            U.set(i, k, 0);
          }
        } else {
          for (let i = 0; i < m; i++) {
            U.set(i, k, 0);
          }
          U.set(k, k, 1);
        }
      }
    }
    if (wantv) {
      for (let k = n - 1; k >= 0; k--) {
        if (k < nrt && e[k] !== 0) {
          for (let j = k + 1; j < n; j++) {
            let t = 0;
            for (let i = k + 1; i < n; i++) {
              t += V.get(i, k) * V.get(i, j);
            }
            t = -t / V.get(k + 1, k);
            for (let i = k + 1; i < n; i++) {
              V.set(i, j, V.get(i, j) + t * V.get(i, k));
            }
          }
        }
        for (let i = 0; i < n; i++) {
          V.set(i, k, 0);
        }
        V.set(k, k, 1);
      }
    }
    let pp = p - 1;
    let eps = Number.EPSILON;
    while (p > 0) {
      let k, kase;
      for (k = p - 2; k >= -1; k--) {
        if (k === -1) {
          break;
        }
        const alpha = Number.MIN_VALUE + eps * Math.abs(s[k] + Math.abs(s[k + 1]));
        if (Math.abs(e[k]) <= alpha || Number.isNaN(e[k])) {
          e[k] = 0;
          break;
        }
      }
      if (k === p - 2) {
        kase = 4;
      } else {
        let ks;
        for (ks = p - 1; ks >= k; ks--) {
          if (ks === k) {
            break;
          }
          let t = (ks !== p ? Math.abs(e[ks]) : 0) + (ks !== k + 1 ? Math.abs(e[ks - 1]) : 0);
          if (Math.abs(s[ks]) <= eps * t) {
            s[ks] = 0;
            break;
          }
        }
        if (ks === k) {
          kase = 3;
        } else if (ks === p - 1) {
          kase = 1;
        } else {
          kase = 2;
          k = ks;
        }
      }
      k++;
      switch (kase) {
        case 1:
          {
            let f = e[p - 2];
            e[p - 2] = 0;
            for (let j = p - 2; j >= k; j--) {
              let t = hypotenuse(s[j], f);
              let cs = s[j] / t;
              let sn = f / t;
              s[j] = t;
              if (j !== k) {
                f = -sn * e[j - 1];
                e[j - 1] = cs * e[j - 1];
              }
              if (wantv) {
                for (let i = 0; i < n; i++) {
                  t = cs * V.get(i, j) + sn * V.get(i, p - 1);
                  V.set(i, p - 1, -sn * V.get(i, j) + cs * V.get(i, p - 1));
                  V.set(i, j, t);
                }
              }
            }
            break;
          }
        case 2:
          {
            let f = e[k - 1];
            e[k - 1] = 0;
            for (let j = k; j < p; j++) {
              let t = hypotenuse(s[j], f);
              let cs = s[j] / t;
              let sn = f / t;
              s[j] = t;
              f = -sn * e[j];
              e[j] = cs * e[j];
              if (wantu) {
                for (let i = 0; i < m; i++) {
                  t = cs * U.get(i, j) + sn * U.get(i, k - 1);
                  U.set(i, k - 1, -sn * U.get(i, j) + cs * U.get(i, k - 1));
                  U.set(i, j, t);
                }
              }
            }
            break;
          }
        case 3:
          {
            const scale = Math.max(Math.abs(s[p - 1]), Math.abs(s[p - 2]), Math.abs(e[p - 2]), Math.abs(s[k]), Math.abs(e[k]));
            const sp = s[p - 1] / scale;
            const spm1 = s[p - 2] / scale;
            const epm1 = e[p - 2] / scale;
            const sk = s[k] / scale;
            const ek = e[k] / scale;
            const b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;
            const c = sp * epm1 * (sp * epm1);
            let shift = 0;
            if (b !== 0 || c !== 0) {
              if (b < 0) {
                shift = 0 - Math.sqrt(b * b + c);
              } else {
                shift = Math.sqrt(b * b + c);
              }
              shift = c / (b + shift);
            }
            let f = (sk + sp) * (sk - sp) + shift;
            let g = sk * ek;
            for (let j = k; j < p - 1; j++) {
              let t = hypotenuse(f, g);
              if (t === 0) t = Number.MIN_VALUE;
              let cs = f / t;
              let sn = g / t;
              if (j !== k) {
                e[j - 1] = t;
              }
              f = cs * s[j] + sn * e[j];
              e[j] = cs * e[j] - sn * s[j];
              g = sn * s[j + 1];
              s[j + 1] = cs * s[j + 1];
              if (wantv) {
                for (let i = 0; i < n; i++) {
                  t = cs * V.get(i, j) + sn * V.get(i, j + 1);
                  V.set(i, j + 1, -sn * V.get(i, j) + cs * V.get(i, j + 1));
                  V.set(i, j, t);
                }
              }
              t = hypotenuse(f, g);
              if (t === 0) t = Number.MIN_VALUE;
              cs = f / t;
              sn = g / t;
              s[j] = t;
              f = cs * e[j] + sn * s[j + 1];
              s[j + 1] = -sn * e[j] + cs * s[j + 1];
              g = sn * e[j + 1];
              e[j + 1] = cs * e[j + 1];
              if (wantu && j < m - 1) {
                for (let i = 0; i < m; i++) {
                  t = cs * U.get(i, j) + sn * U.get(i, j + 1);
                  U.set(i, j + 1, -sn * U.get(i, j) + cs * U.get(i, j + 1));
                  U.set(i, j, t);
                }
              }
            }
            e[p - 2] = f;
            break;
          }
        case 4:
          {
            if (s[k] <= 0) {
              s[k] = s[k] < 0 ? -s[k] : 0;
              if (wantv) {
                for (let i = 0; i <= pp; i++) {
                  V.set(i, k, -V.get(i, k));
                }
              }
            }
            while (k < pp) {
              if (s[k] >= s[k + 1]) {
                break;
              }
              let t = s[k];
              s[k] = s[k + 1];
              s[k + 1] = t;
              if (wantv && k < n - 1) {
                for (let i = 0; i < n; i++) {
                  t = V.get(i, k + 1);
                  V.set(i, k + 1, V.get(i, k));
                  V.set(i, k, t);
                }
              }
              if (wantu && k < m - 1) {
                for (let i = 0; i < m; i++) {
                  t = U.get(i, k + 1);
                  U.set(i, k + 1, U.get(i, k));
                  U.set(i, k, t);
                }
              }
              k++;
            }
            p--;
            break;
          }
        // no default
      }
    }
    if (swapped) {
      let tmp = V;
      V = U;
      U = tmp;
    }
    this.m = m;
    this.n = n;
    this.s = s;
    this.U = U;
    this.V = V;
  }
  solve(value) {
    let Y = value;
    let e = this.threshold;
    let scols = this.s.length;
    let Ls = Matrix$1.zeros(scols, scols);
    for (let i = 0; i < scols; i++) {
      if (Math.abs(this.s[i]) <= e) {
        Ls.set(i, i, 0);
      } else {
        Ls.set(i, i, 1 / this.s[i]);
      }
    }
    let U = this.U;
    let V = this.rightSingularVectors;
    let VL = V.mmul(Ls);
    let vrows = V.rows;
    let urows = U.rows;
    let VLU = Matrix$1.zeros(vrows, urows);
    for (let i = 0; i < vrows; i++) {
      for (let j = 0; j < urows; j++) {
        let sum = 0;
        for (let k = 0; k < scols; k++) {
          sum += VL.get(i, k) * U.get(j, k);
        }
        VLU.set(i, j, sum);
      }
    }
    return VLU.mmul(Y);
  }
  solveForDiagonal(value) {
    return this.solve(Matrix$1.diag(value));
  }
  inverse() {
    let V = this.V;
    let e = this.threshold;
    let vrows = V.rows;
    let vcols = V.columns;
    let X = new Matrix$1(vrows, this.s.length);
    for (let i = 0; i < vrows; i++) {
      for (let j = 0; j < vcols; j++) {
        if (Math.abs(this.s[j]) > e) {
          X.set(i, j, V.get(i, j) / this.s[j]);
        }
      }
    }
    let U = this.U;
    let urows = U.rows;
    let ucols = U.columns;
    let Y = new Matrix$1(vrows, urows);
    for (let i = 0; i < vrows; i++) {
      for (let j = 0; j < urows; j++) {
        let sum = 0;
        for (let k = 0; k < ucols; k++) {
          sum += X.get(i, k) * U.get(j, k);
        }
        Y.set(i, j, sum);
      }
    }
    return Y;
  }
  get condition() {
    return this.s[0] / this.s[Math.min(this.m, this.n) - 1];
  }
  get norm2() {
    return this.s[0];
  }
  get rank() {
    let tol = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON;
    let r = 0;
    let s = this.s;
    for (let i = 0, ii = s.length; i < ii; i++) {
      if (s[i] > tol) {
        r++;
      }
    }
    return r;
  }
  get diagonal() {
    return Array.from(this.s);
  }
  get threshold() {
    return Number.EPSILON / 2 * Math.max(this.m, this.n) * this.s[0];
  }
  get leftSingularVectors() {
    return this.U;
  }
  get rightSingularVectors() {
    return this.V;
  }
  get diagonalMatrix() {
    return Matrix$1.diag(this.s);
  }
}
function inverse(matrix, useSVD = false) {
  matrix = WrapperMatrix2D.checkMatrix(matrix);
  if (useSVD) {
    return new SingularValueDecomposition(matrix).inverse();
  } else {
    return solve(matrix, Matrix$1.eye(matrix.rows));
  }
}
function solve(leftHandSide, rightHandSide, useSVD = false) {
  leftHandSide = WrapperMatrix2D.checkMatrix(leftHandSide);
  rightHandSide = WrapperMatrix2D.checkMatrix(rightHandSide);
  if (useSVD) {
    return new SingularValueDecomposition(leftHandSide).solve(rightHandSide);
  } else {
    return leftHandSide.isSquare() ? new LuDecomposition(leftHandSide).solve(rightHandSide) : new QrDecomposition(leftHandSide).solve(rightHandSide);
  }
}
function determinant(matrix) {
  matrix = Matrix$1.checkMatrix(matrix);
  if (matrix.isSquare()) {
    if (matrix.columns === 0) {
      return 1;
    }
    let a, b, c, d;
    if (matrix.columns === 2) {
      // 2 x 2 matrix
      a = matrix.get(0, 0);
      b = matrix.get(0, 1);
      c = matrix.get(1, 0);
      d = matrix.get(1, 1);
      return a * d - b * c;
    } else if (matrix.columns === 3) {
      // 3 x 3 matrix
      let subMatrix0, subMatrix1, subMatrix2;
      subMatrix0 = new MatrixSelectionView(matrix, [1, 2], [1, 2]);
      subMatrix1 = new MatrixSelectionView(matrix, [1, 2], [0, 2]);
      subMatrix2 = new MatrixSelectionView(matrix, [1, 2], [0, 1]);
      a = matrix.get(0, 0);
      b = matrix.get(0, 1);
      c = matrix.get(0, 2);
      return a * determinant(subMatrix0) - b * determinant(subMatrix1) + c * determinant(subMatrix2);
    } else {
      // general purpose determinant using the LU decomposition
      return new LuDecomposition(matrix).determinant;
    }
  } else {
    throw Error('determinant can only be calculated for a square matrix');
  }
}
function xrange(n, exception) {
  let range = [];
  for (let i = 0; i < n; i++) {
    if (i !== exception) {
      range.push(i);
    }
  }
  return range;
}
function dependenciesOneRow(error, matrix, index, thresholdValue = 10e-10, thresholdError = 10e-10) {
  if (error > thresholdError) {
    return new Array(matrix.rows + 1).fill(0);
  } else {
    let returnArray = matrix.addRow(index, [0]);
    for (let i = 0; i < returnArray.rows; i++) {
      if (Math.abs(returnArray.get(i, 0)) < thresholdValue) {
        returnArray.set(i, 0, 0);
      }
    }
    return returnArray.to1DArray();
  }
}
function linearDependencies(matrix, options = {}) {
  const {
    thresholdValue = 10e-10,
    thresholdError = 10e-10
  } = options;
  matrix = Matrix$1.checkMatrix(matrix);
  let n = matrix.rows;
  let results = new Matrix$1(n, n);
  for (let i = 0; i < n; i++) {
    let b = Matrix$1.columnVector(matrix.getRow(i));
    let Abis = matrix.subMatrixRow(xrange(n, i)).transpose();
    let svd = new SingularValueDecomposition(Abis);
    let x = svd.solve(b);
    let error = Matrix$1.sub(b, Abis.mmul(x)).abs().max();
    results.setRow(i, dependenciesOneRow(error, x, i, thresholdValue, thresholdError));
  }
  return results;
}
function pseudoInverse(matrix, threshold = Number.EPSILON) {
  matrix = Matrix$1.checkMatrix(matrix);
  if (matrix.isEmpty()) {
    // with a zero dimension, the pseudo-inverse is the transpose, since all 0xn and nx0 matrices are singular
    // (0xn)*(nx0)*(0xn) = 0xn
    // (nx0)*(0xn)*(nx0) = nx0
    return matrix.transpose();
  }
  let svdSolution = new SingularValueDecomposition(matrix, {
    autoTranspose: true
  });
  let U = svdSolution.leftSingularVectors;
  let V = svdSolution.rightSingularVectors;
  let s = svdSolution.diagonal;
  for (let i = 0; i < s.length; i++) {
    if (Math.abs(s[i]) > threshold) {
      s[i] = 1.0 / s[i];
    } else {
      s[i] = 0.0;
    }
  }
  return V.mmul(Matrix$1.diag(s).mmul(U.transpose()));
}
function covariance(xMatrix, yMatrix = xMatrix, options = {}) {
  xMatrix = new Matrix$1(xMatrix);
  let yIsSame = false;
  if (typeof yMatrix === 'object' && !Matrix$1.isMatrix(yMatrix) && !isAnyArray.isAnyArray(yMatrix)) {
    options = yMatrix;
    yMatrix = xMatrix;
    yIsSame = true;
  } else {
    yMatrix = new Matrix$1(yMatrix);
  }
  if (xMatrix.rows !== yMatrix.rows) {
    throw new TypeError('Both matrices must have the same number of rows');
  }
  const {
    center = true
  } = options;
  if (center) {
    xMatrix = xMatrix.center('column');
    if (!yIsSame) {
      yMatrix = yMatrix.center('column');
    }
  }
  const cov = xMatrix.transpose().mmul(yMatrix);
  for (let i = 0; i < cov.rows; i++) {
    for (let j = 0; j < cov.columns; j++) {
      cov.set(i, j, cov.get(i, j) * (1 / (xMatrix.rows - 1)));
    }
  }
  return cov;
}
function correlation(xMatrix, yMatrix = xMatrix, options = {}) {
  xMatrix = new Matrix$1(xMatrix);
  let yIsSame = false;
  if (typeof yMatrix === 'object' && !Matrix$1.isMatrix(yMatrix) && !isAnyArray.isAnyArray(yMatrix)) {
    options = yMatrix;
    yMatrix = xMatrix;
    yIsSame = true;
  } else {
    yMatrix = new Matrix$1(yMatrix);
  }
  if (xMatrix.rows !== yMatrix.rows) {
    throw new TypeError('Both matrices must have the same number of rows');
  }
  const {
    center = true,
    scale = true
  } = options;
  if (center) {
    xMatrix.center('column');
    if (!yIsSame) {
      yMatrix.center('column');
    }
  }
  if (scale) {
    xMatrix.scale('column');
    if (!yIsSame) {
      yMatrix.scale('column');
    }
  }
  const sdx = xMatrix.standardDeviation('column', {
    unbiased: true
  });
  const sdy = yIsSame ? sdx : yMatrix.standardDeviation('column', {
    unbiased: true
  });
  const corr = xMatrix.transpose().mmul(yMatrix);
  for (let i = 0; i < corr.rows; i++) {
    for (let j = 0; j < corr.columns; j++) {
      corr.set(i, j, corr.get(i, j) * (1 / (sdx[i] * sdy[j])) * (1 / (xMatrix.rows - 1)));
    }
  }
  return corr;
}
class EigenvalueDecomposition {
  constructor(matrix, options = {}) {
    const {
      assumeSymmetric = false
    } = options;
    matrix = WrapperMatrix2D.checkMatrix(matrix);
    if (!matrix.isSquare()) {
      throw new Error('Matrix is not a square matrix');
    }
    if (matrix.isEmpty()) {
      throw new Error('Matrix must be non-empty');
    }
    let n = matrix.columns;
    let V = new Matrix$1(n, n);
    let d = new Float64Array(n);
    let e = new Float64Array(n);
    let value = matrix;
    let i, j;
    let isSymmetric = false;
    if (assumeSymmetric) {
      isSymmetric = true;
    } else {
      isSymmetric = matrix.isSymmetric();
    }
    if (isSymmetric) {
      for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
          V.set(i, j, value.get(i, j));
        }
      }
      tred2(n, e, d, V);
      tql2(n, e, d, V);
    } else {
      let H = new Matrix$1(n, n);
      let ort = new Float64Array(n);
      for (j = 0; j < n; j++) {
        for (i = 0; i < n; i++) {
          H.set(i, j, value.get(i, j));
        }
      }
      orthes(n, H, ort, V);
      hqr2(n, e, d, V, H);
    }
    this.n = n;
    this.e = e;
    this.d = d;
    this.V = V;
  }
  get realEigenvalues() {
    return Array.from(this.d);
  }
  get imaginaryEigenvalues() {
    return Array.from(this.e);
  }
  get eigenvectorMatrix() {
    return this.V;
  }
  get diagonalMatrix() {
    let n = this.n;
    let e = this.e;
    let d = this.d;
    let X = new Matrix$1(n, n);
    let i, j;
    for (i = 0; i < n; i++) {
      for (j = 0; j < n; j++) {
        X.set(i, j, 0);
      }
      X.set(i, i, d[i]);
      if (e[i] > 0) {
        X.set(i, i + 1, e[i]);
      } else if (e[i] < 0) {
        X.set(i, i - 1, e[i]);
      }
    }
    return X;
  }
}
function tred2(n, e, d, V) {
  let f, g, h, i, j, k, hh, scale;
  for (j = 0; j < n; j++) {
    d[j] = V.get(n - 1, j);
  }
  for (i = n - 1; i > 0; i--) {
    scale = 0;
    h = 0;
    for (k = 0; k < i; k++) {
      scale = scale + Math.abs(d[k]);
    }
    if (scale === 0) {
      e[i] = d[i - 1];
      for (j = 0; j < i; j++) {
        d[j] = V.get(i - 1, j);
        V.set(i, j, 0);
        V.set(j, i, 0);
      }
    } else {
      for (k = 0; k < i; k++) {
        d[k] /= scale;
        h += d[k] * d[k];
      }
      f = d[i - 1];
      g = Math.sqrt(h);
      if (f > 0) {
        g = -g;
      }
      e[i] = scale * g;
      h = h - f * g;
      d[i - 1] = f - g;
      for (j = 0; j < i; j++) {
        e[j] = 0;
      }
      for (j = 0; j < i; j++) {
        f = d[j];
        V.set(j, i, f);
        g = e[j] + V.get(j, j) * f;
        for (k = j + 1; k <= i - 1; k++) {
          g += V.get(k, j) * d[k];
          e[k] += V.get(k, j) * f;
        }
        e[j] = g;
      }
      f = 0;
      for (j = 0; j < i; j++) {
        e[j] /= h;
        f += e[j] * d[j];
      }
      hh = f / (h + h);
      for (j = 0; j < i; j++) {
        e[j] -= hh * d[j];
      }
      for (j = 0; j < i; j++) {
        f = d[j];
        g = e[j];
        for (k = j; k <= i - 1; k++) {
          V.set(k, j, V.get(k, j) - (f * e[k] + g * d[k]));
        }
        d[j] = V.get(i - 1, j);
        V.set(i, j, 0);
      }
    }
    d[i] = h;
  }
  for (i = 0; i < n - 1; i++) {
    V.set(n - 1, i, V.get(i, i));
    V.set(i, i, 1);
    h = d[i + 1];
    if (h !== 0) {
      for (k = 0; k <= i; k++) {
        d[k] = V.get(k, i + 1) / h;
      }
      for (j = 0; j <= i; j++) {
        g = 0;
        for (k = 0; k <= i; k++) {
          g += V.get(k, i + 1) * V.get(k, j);
        }
        for (k = 0; k <= i; k++) {
          V.set(k, j, V.get(k, j) - g * d[k]);
        }
      }
    }
    for (k = 0; k <= i; k++) {
      V.set(k, i + 1, 0);
    }
  }
  for (j = 0; j < n; j++) {
    d[j] = V.get(n - 1, j);
    V.set(n - 1, j, 0);
  }
  V.set(n - 1, n - 1, 1);
  e[0] = 0;
}
function tql2(n, e, d, V) {
  let g, h, i, j, k, l, m, p, r, dl1, c, c2, c3, el1, s, s2;
  for (i = 1; i < n; i++) {
    e[i - 1] = e[i];
  }
  e[n - 1] = 0;
  let f = 0;
  let tst1 = 0;
  let eps = Number.EPSILON;
  for (l = 0; l < n; l++) {
    tst1 = Math.max(tst1, Math.abs(d[l]) + Math.abs(e[l]));
    m = l;
    while (m < n) {
      if (Math.abs(e[m]) <= eps * tst1) {
        break;
      }
      m++;
    }
    if (m > l) {
      do {
        g = d[l];
        p = (d[l + 1] - g) / (2 * e[l]);
        r = hypotenuse(p, 1);
        if (p < 0) {
          r = -r;
        }
        d[l] = e[l] / (p + r);
        d[l + 1] = e[l] * (p + r);
        dl1 = d[l + 1];
        h = g - d[l];
        for (i = l + 2; i < n; i++) {
          d[i] -= h;
        }
        f = f + h;
        p = d[m];
        c = 1;
        c2 = c;
        c3 = c;
        el1 = e[l + 1];
        s = 0;
        s2 = 0;
        for (i = m - 1; i >= l; i--) {
          c3 = c2;
          c2 = c;
          s2 = s;
          g = c * e[i];
          h = c * p;
          r = hypotenuse(p, e[i]);
          e[i + 1] = s * r;
          s = e[i] / r;
          c = p / r;
          p = c * d[i] - s * g;
          d[i + 1] = h + s * (c * g + s * d[i]);
          for (k = 0; k < n; k++) {
            h = V.get(k, i + 1);
            V.set(k, i + 1, s * V.get(k, i) + c * h);
            V.set(k, i, c * V.get(k, i) - s * h);
          }
        }
        p = -s * s2 * c3 * el1 * e[l] / dl1;
        e[l] = s * p;
        d[l] = c * p;
      } while (Math.abs(e[l]) > eps * tst1);
    }
    d[l] = d[l] + f;
    e[l] = 0;
  }
  for (i = 0; i < n - 1; i++) {
    k = i;
    p = d[i];
    for (j = i + 1; j < n; j++) {
      if (d[j] < p) {
        k = j;
        p = d[j];
      }
    }
    if (k !== i) {
      d[k] = d[i];
      d[i] = p;
      for (j = 0; j < n; j++) {
        p = V.get(j, i);
        V.set(j, i, V.get(j, k));
        V.set(j, k, p);
      }
    }
  }
}
function orthes(n, H, ort, V) {
  let low = 0;
  let high = n - 1;
  let f, g, h, i, j, m;
  let scale;
  for (m = low + 1; m <= high - 1; m++) {
    scale = 0;
    for (i = m; i <= high; i++) {
      scale = scale + Math.abs(H.get(i, m - 1));
    }
    if (scale !== 0) {
      h = 0;
      for (i = high; i >= m; i--) {
        ort[i] = H.get(i, m - 1) / scale;
        h += ort[i] * ort[i];
      }
      g = Math.sqrt(h);
      if (ort[m] > 0) {
        g = -g;
      }
      h = h - ort[m] * g;
      ort[m] = ort[m] - g;
      for (j = m; j < n; j++) {
        f = 0;
        for (i = high; i >= m; i--) {
          f += ort[i] * H.get(i, j);
        }
        f = f / h;
        for (i = m; i <= high; i++) {
          H.set(i, j, H.get(i, j) - f * ort[i]);
        }
      }
      for (i = 0; i <= high; i++) {
        f = 0;
        for (j = high; j >= m; j--) {
          f += ort[j] * H.get(i, j);
        }
        f = f / h;
        for (j = m; j <= high; j++) {
          H.set(i, j, H.get(i, j) - f * ort[j]);
        }
      }
      ort[m] = scale * ort[m];
      H.set(m, m - 1, scale * g);
    }
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      V.set(i, j, i === j ? 1 : 0);
    }
  }
  for (m = high - 1; m >= low + 1; m--) {
    if (H.get(m, m - 1) !== 0) {
      for (i = m + 1; i <= high; i++) {
        ort[i] = H.get(i, m - 1);
      }
      for (j = m; j <= high; j++) {
        g = 0;
        for (i = m; i <= high; i++) {
          g += ort[i] * V.get(i, j);
        }
        g = g / ort[m] / H.get(m, m - 1);
        for (i = m; i <= high; i++) {
          V.set(i, j, V.get(i, j) + g * ort[i]);
        }
      }
    }
  }
}
function hqr2(nn, e, d, V, H) {
  let n = nn - 1;
  let low = 0;
  let high = nn - 1;
  let eps = Number.EPSILON;
  let exshift = 0;
  let norm = 0;
  let p = 0;
  let q = 0;
  let r = 0;
  let s = 0;
  let z = 0;
  let iter = 0;
  let i, j, k, l, m, t, w, x, y;
  let ra, sa, vr, vi;
  let notlast, cdivres;
  for (i = 0; i < nn; i++) {
    if (i < low || i > high) {
      d[i] = H.get(i, i);
      e[i] = 0;
    }
    for (j = Math.max(i - 1, 0); j < nn; j++) {
      norm = norm + Math.abs(H.get(i, j));
    }
  }
  while (n >= low) {
    l = n;
    while (l > low) {
      s = Math.abs(H.get(l - 1, l - 1)) + Math.abs(H.get(l, l));
      if (s === 0) {
        s = norm;
      }
      if (Math.abs(H.get(l, l - 1)) < eps * s) {
        break;
      }
      l--;
    }
    if (l === n) {
      H.set(n, n, H.get(n, n) + exshift);
      d[n] = H.get(n, n);
      e[n] = 0;
      n--;
      iter = 0;
    } else if (l === n - 1) {
      w = H.get(n, n - 1) * H.get(n - 1, n);
      p = (H.get(n - 1, n - 1) - H.get(n, n)) / 2;
      q = p * p + w;
      z = Math.sqrt(Math.abs(q));
      H.set(n, n, H.get(n, n) + exshift);
      H.set(n - 1, n - 1, H.get(n - 1, n - 1) + exshift);
      x = H.get(n, n);
      if (q >= 0) {
        z = p >= 0 ? p + z : p - z;
        d[n - 1] = x + z;
        d[n] = d[n - 1];
        if (z !== 0) {
          d[n] = x - w / z;
        }
        e[n - 1] = 0;
        e[n] = 0;
        x = H.get(n, n - 1);
        s = Math.abs(x) + Math.abs(z);
        p = x / s;
        q = z / s;
        r = Math.sqrt(p * p + q * q);
        p = p / r;
        q = q / r;
        for (j = n - 1; j < nn; j++) {
          z = H.get(n - 1, j);
          H.set(n - 1, j, q * z + p * H.get(n, j));
          H.set(n, j, q * H.get(n, j) - p * z);
        }
        for (i = 0; i <= n; i++) {
          z = H.get(i, n - 1);
          H.set(i, n - 1, q * z + p * H.get(i, n));
          H.set(i, n, q * H.get(i, n) - p * z);
        }
        for (i = low; i <= high; i++) {
          z = V.get(i, n - 1);
          V.set(i, n - 1, q * z + p * V.get(i, n));
          V.set(i, n, q * V.get(i, n) - p * z);
        }
      } else {
        d[n - 1] = x + p;
        d[n] = x + p;
        e[n - 1] = z;
        e[n] = -z;
      }
      n = n - 2;
      iter = 0;
    } else {
      x = H.get(n, n);
      y = 0;
      w = 0;
      if (l < n) {
        y = H.get(n - 1, n - 1);
        w = H.get(n, n - 1) * H.get(n - 1, n);
      }
      if (iter === 10) {
        exshift += x;
        for (i = low; i <= n; i++) {
          H.set(i, i, H.get(i, i) - x);
        }
        s = Math.abs(H.get(n, n - 1)) + Math.abs(H.get(n - 1, n - 2));
        // eslint-disable-next-line no-multi-assign
        x = y = 0.75 * s;
        w = -0.4375 * s * s;
      }
      if (iter === 30) {
        s = (y - x) / 2;
        s = s * s + w;
        if (s > 0) {
          s = Math.sqrt(s);
          if (y < x) {
            s = -s;
          }
          s = x - w / ((y - x) / 2 + s);
          for (i = low; i <= n; i++) {
            H.set(i, i, H.get(i, i) - s);
          }
          exshift += s;
          // eslint-disable-next-line no-multi-assign
          x = y = w = 0.964;
        }
      }
      iter = iter + 1;
      m = n - 2;
      while (m >= l) {
        z = H.get(m, m);
        r = x - z;
        s = y - z;
        p = (r * s - w) / H.get(m + 1, m) + H.get(m, m + 1);
        q = H.get(m + 1, m + 1) - z - r - s;
        r = H.get(m + 2, m + 1);
        s = Math.abs(p) + Math.abs(q) + Math.abs(r);
        p = p / s;
        q = q / s;
        r = r / s;
        if (m === l) {
          break;
        }
        if (Math.abs(H.get(m, m - 1)) * (Math.abs(q) + Math.abs(r)) < eps * (Math.abs(p) * (Math.abs(H.get(m - 1, m - 1)) + Math.abs(z) + Math.abs(H.get(m + 1, m + 1))))) {
          break;
        }
        m--;
      }
      for (i = m + 2; i <= n; i++) {
        H.set(i, i - 2, 0);
        if (i > m + 2) {
          H.set(i, i - 3, 0);
        }
      }
      for (k = m; k <= n - 1; k++) {
        notlast = k !== n - 1;
        if (k !== m) {
          p = H.get(k, k - 1);
          q = H.get(k + 1, k - 1);
          r = notlast ? H.get(k + 2, k - 1) : 0;
          x = Math.abs(p) + Math.abs(q) + Math.abs(r);
          if (x !== 0) {
            p = p / x;
            q = q / x;
            r = r / x;
          }
        }
        if (x === 0) {
          break;
        }
        s = Math.sqrt(p * p + q * q + r * r);
        if (p < 0) {
          s = -s;
        }
        if (s !== 0) {
          if (k !== m) {
            H.set(k, k - 1, -s * x);
          } else if (l !== m) {
            H.set(k, k - 1, -H.get(k, k - 1));
          }
          p = p + s;
          x = p / s;
          y = q / s;
          z = r / s;
          q = q / p;
          r = r / p;
          for (j = k; j < nn; j++) {
            p = H.get(k, j) + q * H.get(k + 1, j);
            if (notlast) {
              p = p + r * H.get(k + 2, j);
              H.set(k + 2, j, H.get(k + 2, j) - p * z);
            }
            H.set(k, j, H.get(k, j) - p * x);
            H.set(k + 1, j, H.get(k + 1, j) - p * y);
          }
          for (i = 0; i <= Math.min(n, k + 3); i++) {
            p = x * H.get(i, k) + y * H.get(i, k + 1);
            if (notlast) {
              p = p + z * H.get(i, k + 2);
              H.set(i, k + 2, H.get(i, k + 2) - p * r);
            }
            H.set(i, k, H.get(i, k) - p);
            H.set(i, k + 1, H.get(i, k + 1) - p * q);
          }
          for (i = low; i <= high; i++) {
            p = x * V.get(i, k) + y * V.get(i, k + 1);
            if (notlast) {
              p = p + z * V.get(i, k + 2);
              V.set(i, k + 2, V.get(i, k + 2) - p * r);
            }
            V.set(i, k, V.get(i, k) - p);
            V.set(i, k + 1, V.get(i, k + 1) - p * q);
          }
        }
      }
    }
  }
  if (norm === 0) {
    return;
  }
  for (n = nn - 1; n >= 0; n--) {
    p = d[n];
    q = e[n];
    if (q === 0) {
      l = n;
      H.set(n, n, 1);
      for (i = n - 1; i >= 0; i--) {
        w = H.get(i, i) - p;
        r = 0;
        for (j = l; j <= n; j++) {
          r = r + H.get(i, j) * H.get(j, n);
        }
        if (e[i] < 0) {
          z = w;
          s = r;
        } else {
          l = i;
          if (e[i] === 0) {
            H.set(i, n, w !== 0 ? -r / w : -r / (eps * norm));
          } else {
            x = H.get(i, i + 1);
            y = H.get(i + 1, i);
            q = (d[i] - p) * (d[i] - p) + e[i] * e[i];
            t = (x * s - z * r) / q;
            H.set(i, n, t);
            H.set(i + 1, n, Math.abs(x) > Math.abs(z) ? (-r - w * t) / x : (-s - y * t) / z);
          }
          t = Math.abs(H.get(i, n));
          if (eps * t * t > 1) {
            for (j = i; j <= n; j++) {
              H.set(j, n, H.get(j, n) / t);
            }
          }
        }
      }
    } else if (q < 0) {
      l = n - 1;
      if (Math.abs(H.get(n, n - 1)) > Math.abs(H.get(n - 1, n))) {
        H.set(n - 1, n - 1, q / H.get(n, n - 1));
        H.set(n - 1, n, -(H.get(n, n) - p) / H.get(n, n - 1));
      } else {
        cdivres = cdiv(0, -H.get(n - 1, n), H.get(n - 1, n - 1) - p, q);
        H.set(n - 1, n - 1, cdivres[0]);
        H.set(n - 1, n, cdivres[1]);
      }
      H.set(n, n - 1, 0);
      H.set(n, n, 1);
      for (i = n - 2; i >= 0; i--) {
        ra = 0;
        sa = 0;
        for (j = l; j <= n; j++) {
          ra = ra + H.get(i, j) * H.get(j, n - 1);
          sa = sa + H.get(i, j) * H.get(j, n);
        }
        w = H.get(i, i) - p;
        if (e[i] < 0) {
          z = w;
          r = ra;
          s = sa;
        } else {
          l = i;
          if (e[i] === 0) {
            cdivres = cdiv(-ra, -sa, w, q);
            H.set(i, n - 1, cdivres[0]);
            H.set(i, n, cdivres[1]);
          } else {
            x = H.get(i, i + 1);
            y = H.get(i + 1, i);
            vr = (d[i] - p) * (d[i] - p) + e[i] * e[i] - q * q;
            vi = (d[i] - p) * 2 * q;
            if (vr === 0 && vi === 0) {
              vr = eps * norm * (Math.abs(w) + Math.abs(q) + Math.abs(x) + Math.abs(y) + Math.abs(z));
            }
            cdivres = cdiv(x * r - z * ra + q * sa, x * s - z * sa - q * ra, vr, vi);
            H.set(i, n - 1, cdivres[0]);
            H.set(i, n, cdivres[1]);
            if (Math.abs(x) > Math.abs(z) + Math.abs(q)) {
              H.set(i + 1, n - 1, (-ra - w * H.get(i, n - 1) + q * H.get(i, n)) / x);
              H.set(i + 1, n, (-sa - w * H.get(i, n) - q * H.get(i, n - 1)) / x);
            } else {
              cdivres = cdiv(-r - y * H.get(i, n - 1), -s - y * H.get(i, n), z, q);
              H.set(i + 1, n - 1, cdivres[0]);
              H.set(i + 1, n, cdivres[1]);
            }
          }
          t = Math.max(Math.abs(H.get(i, n - 1)), Math.abs(H.get(i, n)));
          if (eps * t * t > 1) {
            for (j = i; j <= n; j++) {
              H.set(j, n - 1, H.get(j, n - 1) / t);
              H.set(j, n, H.get(j, n) / t);
            }
          }
        }
      }
    }
  }
  for (i = 0; i < nn; i++) {
    if (i < low || i > high) {
      for (j = i; j < nn; j++) {
        V.set(i, j, H.get(i, j));
      }
    }
  }
  for (j = nn - 1; j >= low; j--) {
    for (i = low; i <= high; i++) {
      z = 0;
      for (k = low; k <= Math.min(j, high); k++) {
        z = z + V.get(i, k) * H.get(k, j);
      }
      V.set(i, j, z);
    }
  }
}
function cdiv(xr, xi, yr, yi) {
  let r, d;
  if (Math.abs(yr) > Math.abs(yi)) {
    r = yi / yr;
    d = yr + r * yi;
    return [(xr + r * xi) / d, (xi - r * xr) / d];
  } else {
    r = yr / yi;
    d = yi + r * yr;
    return [(r * xr + xi) / d, (r * xi - xr) / d];
  }
}
class CholeskyDecomposition {
  constructor(value) {
    value = WrapperMatrix2D.checkMatrix(value);
    if (!value.isSymmetric()) {
      throw new Error('Matrix is not symmetric');
    }
    let a = value;
    let dimension = a.rows;
    let l = new Matrix$1(dimension, dimension);
    let positiveDefinite = true;
    let i, j, k;
    for (j = 0; j < dimension; j++) {
      let d = 0;
      for (k = 0; k < j; k++) {
        let s = 0;
        for (i = 0; i < k; i++) {
          s += l.get(k, i) * l.get(j, i);
        }
        s = (a.get(j, k) - s) / l.get(k, k);
        l.set(j, k, s);
        d = d + s * s;
      }
      d = a.get(j, j) - d;
      positiveDefinite &&= d > 0;
      l.set(j, j, Math.sqrt(Math.max(d, 0)));
      for (k = j + 1; k < dimension; k++) {
        l.set(j, k, 0);
      }
    }
    this.L = l;
    this.positiveDefinite = positiveDefinite;
  }
  isPositiveDefinite() {
    return this.positiveDefinite;
  }
  solve(value) {
    value = WrapperMatrix2D.checkMatrix(value);
    let l = this.L;
    let dimension = l.rows;
    if (value.rows !== dimension) {
      throw new Error('Matrix dimensions do not match');
    }
    if (this.isPositiveDefinite() === false) {
      throw new Error('Matrix is not positive definite');
    }
    let count = value.columns;
    let B = value.clone();
    let i, j, k;
    for (k = 0; k < dimension; k++) {
      for (j = 0; j < count; j++) {
        for (i = 0; i < k; i++) {
          B.set(k, j, B.get(k, j) - B.get(i, j) * l.get(k, i));
        }
        B.set(k, j, B.get(k, j) / l.get(k, k));
      }
    }
    for (k = dimension - 1; k >= 0; k--) {
      for (j = 0; j < count; j++) {
        for (i = k + 1; i < dimension; i++) {
          B.set(k, j, B.get(k, j) - B.get(i, j) * l.get(i, k));
        }
        B.set(k, j, B.get(k, j) / l.get(k, k));
      }
    }
    return B;
  }
  get lowerTriangularMatrix() {
    return this.L;
  }
}
class nipals {
  constructor(X, options = {}) {
    X = WrapperMatrix2D.checkMatrix(X);
    let {
      Y
    } = options;
    const {
      scaleScores = false,
      maxIterations = 1000,
      terminationCriteria = 1e-10
    } = options;
    let u;
    if (Y) {
      if (isAnyArray.isAnyArray(Y) && typeof Y[0] === 'number') {
        Y = Matrix$1.columnVector(Y);
      } else {
        Y = WrapperMatrix2D.checkMatrix(Y);
      }
      if (Y.rows !== X.rows) {
        throw new Error('Y should have the same number of rows as X');
      }
      u = Y.getColumnVector(0);
    } else {
      u = X.getColumnVector(0);
    }
    let diff = 1;
    let t, q, w, tOld;
    for (let counter = 0; counter < maxIterations && diff > terminationCriteria; counter++) {
      w = X.transpose().mmul(u).div(u.transpose().mmul(u).get(0, 0));
      w = w.div(w.norm());
      t = X.mmul(w).div(w.transpose().mmul(w).get(0, 0));
      if (counter > 0) {
        diff = t.clone().sub(tOld).pow(2).sum();
      }
      tOld = t.clone();
      if (Y) {
        q = Y.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));
        q = q.div(q.norm());
        u = Y.mmul(q).div(q.transpose().mmul(q).get(0, 0));
      } else {
        u = t;
      }
    }
    if (Y) {
      let p = X.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));
      p = p.div(p.norm());
      let xResidual = X.clone().sub(t.clone().mmul(p.transpose()));
      let residual = u.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));
      let yResidual = Y.clone().sub(t.clone().mulS(residual.get(0, 0)).mmul(q.transpose()));
      this.t = t;
      this.p = p.transpose();
      this.w = w.transpose();
      this.q = q;
      this.u = u;
      this.s = t.transpose().mmul(t);
      this.xResidual = xResidual;
      this.yResidual = yResidual;
      this.betas = residual;
    } else {
      this.w = w.transpose();
      this.s = t.transpose().mmul(t).sqrt();
      if (scaleScores) {
        this.t = t.clone().div(this.s.get(0, 0));
      } else {
        this.t = t;
      }
      this.xResidual = X.sub(t.mmul(w.transpose()));
    }
  }
}
matrix.AbstractMatrix = AbstractMatrix;
matrix.CHO = CholeskyDecomposition;
matrix.CholeskyDecomposition = CholeskyDecomposition;
matrix.DistanceMatrix = DistanceMatrix;
matrix.EVD = EigenvalueDecomposition;
matrix.EigenvalueDecomposition = EigenvalueDecomposition;
matrix.LU = LuDecomposition;
matrix.LuDecomposition = LuDecomposition;
var Matrix_1 = matrix.Matrix = Matrix$1;
matrix.MatrixColumnSelectionView = MatrixColumnSelectionView;
matrix.MatrixColumnView = MatrixColumnView;
matrix.MatrixFlipColumnView = MatrixFlipColumnView;
matrix.MatrixFlipRowView = MatrixFlipRowView;
matrix.MatrixRowSelectionView = MatrixRowSelectionView;
matrix.MatrixRowView = MatrixRowView;
matrix.MatrixSelectionView = MatrixSelectionView;
matrix.MatrixSubView = MatrixSubView;
matrix.MatrixTransposeView = MatrixTransposeView;
matrix.NIPALS = nipals;
matrix.Nipals = nipals;
matrix.QR = QrDecomposition;
matrix.QrDecomposition = QrDecomposition;
matrix.SVD = SingularValueDecomposition;
matrix.SingularValueDecomposition = SingularValueDecomposition;
matrix.SymmetricMatrix = SymmetricMatrix;
matrix.WrapperMatrix1D = WrapperMatrix1D;
matrix.WrapperMatrix2D = WrapperMatrix2D;
matrix.correlation = correlation;
matrix.covariance = covariance;
var _default = matrix.default = Matrix$1;
matrix.determinant = determinant;
matrix.inverse = inverse;
matrix.linearDependencies = linearDependencies;
matrix.pseudoInverse = pseudoInverse;
matrix.solve = solve;
matrix.wrap = wrap;

const Matrix = Matrix_1;
_default.Matrix ? _default.Matrix : Matrix_1;

/**
 * Algorithm that finds the shortest distance from one node to the other
 * @param {Matrix} adjMatrix - A squared adjacency matrix
 * @return {Matrix} - Distance from a node to the other, -1 if the node is unreachable
 */
function floydWarshall(adjMatrix) {
  if (Matrix.isMatrix(adjMatrix) && adjMatrix.columns !== adjMatrix.rows) {
    throw new TypeError('The adjacency matrix should be squared');
  }
  const numVertices = adjMatrix.columns;
  let distMatrix = new Matrix(numVertices, numVertices);
  distMatrix.apply((row, column) => {
    // principal diagonal is 0
    if (row === column) {
      distMatrix.set(row, column, 0);
    } else {
      let val = adjMatrix.get(row, column);
      if (val || Object.is(val, -0)) {
        // edges values remain the same
        distMatrix.set(row, column, val);
      } else {
        // 0 values become infinity
        distMatrix.set(row, column, Number.POSITIVE_INFINITY);
      }
    }
  });
  for (let k = 0; k < numVertices; ++k) {
    for (let i = 0; i < numVertices; ++i) {
      for (let j = 0; j < numVertices; ++j) {
        let dist = distMatrix.get(i, k) + distMatrix.get(k, j);
        if (distMatrix.get(i, j) > dist) {
          distMatrix.set(i, j, dist);
        }
      }
    }
  }
  // When there's no connection the value is -1
  distMatrix.apply((row, column) => {
    if (distMatrix.get(row, column) === Number.POSITIVE_INFINITY) {
      distMatrix.set(row, column, -1);
    }
  });
  return distMatrix;
}

/**
 * Returns a connectivity matrix
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {boolean} [options.pathLength=false] - get the path length between atoms
 * @param {boolean} [options.mass=false] - set the nominal mass of the atoms on diagonal
 * @param {boolean} [options.atomicNo=false] - set the atomic number of the atom on diagonal
 * @param {boolean} [options.negativeAtomicNo=false] - set the atomic number * -1 of the atom on diagonal
 * @param {boolean} [options.sdt=false] - set 1, 2 or 3 depending if single, double or triple bond
 * @param {boolean} [options.sdta=false] - set 1, 2, 3 or 4 depending if single, double, triple or aromatic  bond
 */
function getConnectivityMatrix(molecule, options = {}) {
  const OCL = molecule.getOCL();
  molecule.ensureHelperArrays(OCL.Molecule.cHelperNeighbours);
  const nbAtoms = molecule.getAllAtoms();
  let result = new Array(nbAtoms).fill();
  result = result.map(() => new Array(nbAtoms).fill(0));
  if (!options.pathLength) {
    if (options.atomicNo) {
      for (let i = 0; i < nbAtoms; i++) {
        result[i][i] = molecule.getAtomicNo(i);
      }
    } else if (options.negativeAtomicNo) {
      for (let i = 0; i < nbAtoms; i++) {
        result[i][i] = -molecule.getAtomicNo(i);
      }
    } else if (options.mass) {
      for (let i = 0; i < nbAtoms; i++) {
        result[i][i] = OCL.Molecule.cRoundedMass[molecule.getAtomicNo(i)];
      }
    } else {
      for (let i = 0; i < nbAtoms; i++) {
        result[i][i] = 1;
      }
    }
  }
  if (options.sdt) {
    for (let i = 0; i < nbAtoms; i++) {
      const l = molecule.getAllConnAtoms(i);
      for (let j = 0; j < l; j++) {
        result[i][molecule.getConnAtom(i, j)] = molecule.getConnBondOrder(i, j);
      }
    }
  } else if (options.sdta) {
    for (let i = 0; i < nbAtoms; i++) {
      const l = molecule.getAllConnAtoms(i);
      for (let j = 0; j < l; j++) {
        const bondNumber = molecule.getConnBond(i, j);
        if (molecule.isAromaticBond(bondNumber)) {
          result[i][molecule.getConnAtom(i, j)] = 4;
        } else {
          result[i][molecule.getConnAtom(i, j)] = molecule.getConnBondOrder(i, j);
        }
      }
    }
  } else {
    for (let i = 0; i < nbAtoms; i++) {
      const l = molecule.getAllConnAtoms(i);
      for (let j = 0; j < l; j++) {
        result[i][molecule.getConnAtom(i, j)] = 1;
      }
    }
  }
  if (options.pathLength) {
    result = floydWarshall(new Matrix(result)).to2DArray();
  }
  return result;
}

/**
 * Creates a compact copy of the molecule without custom labels.
 * We don't want that custom labels interfere with hose code and diaID generation.
 * @param molecule
 * @returns
 */
function getCompactCopyWithoutCustomLabels(molecule) {
  const tempMolecule = molecule.getCompactCopy();
  for (let i = 0; i < tempMolecule.getAllAtoms(); i++) {
    tempMolecule.setAtomCustomLabel(i, '');
  }
  return tempMolecule;
}

function getCanonizedDiaIDs(diaMol, options) {
  const {
    logger,
    maxNbAtoms
  } = options;
  const moleculeWithH = diaMol.moleculeWithH;
  if (moleculeWithH.getAllAtoms() > maxNbAtoms) {
    logger.warn(`too many atoms to evaluate heterotopic chiral bonds: ${moleculeWithH.getAllAtoms()} > ${maxNbAtoms}`);
    return [];
  }
  const heterotopicSymmetryRanks = diaMol.heterotopicSymmetryRanks;
  const finalRanks = diaMol.finalRanks;
  const canonizedDiaIDs = new Array(moleculeWithH.getAllAtoms());
  moleculeWithH.ensureHelperArrays(diaMol.molecule.getOCL().Molecule.cHelperSymmetryStereoHeterotopicity);
  const cache = {};
  for (let i = 0; i < diaMol.moleculeWithH.getAllAtoms(); i++) {
    const rank = heterotopicSymmetryRanks[i];
    if (rank && cache[rank]) {
      canonizedDiaIDs[finalRanks[i]] = cache[rank].diaID;
      continue;
    }
    const tempMolecule = getCompactCopyWithoutCustomLabels(diaMol.moleculeWithH);
    tagAtom(tempMolecule, i);
    makeRacemic(tempMolecule);
    const diaID = tempMolecule.getCanonizedIDCode(diaMol.molecule.getOCL().Molecule.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS);
    canonizedDiaIDs[finalRanks[i]] = diaID;
  }
  return canonizedDiaIDs;
}

/**
 * Returns an array of strings (idCodes) specified molecule. Each string corresponds to a
 * hose code. By default it will calculate the hose codes for sphere 0 to 4 and will reuse
 * the existing tagged atoms.
 * @param molecule - The OCL molecule to process.
 * @param options - Options for generating hose codes.
 * @returns An array of hose code strings.
 */
function getHoseCodesForAtomsAsStrings(molecule, options = {}) {
  const fragments = getHoseCodesForAtomsAsFragments(molecule, options);
  const OCL = molecule.getOCL();
  const hoses = [];
  for (const fragment of fragments) {
    hoses.push(fragment.getCanonizedIDCode(OCL.Molecule.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS));
  }
  return hoses;
}

/**
 * Get the canonized hose codes for a topic molecule. It will use the moleculeWithH
 * @param topicMolecule - The topic molecule to get the hose codes for.
 * @returns The canonized hose codes.
 */
function getCanonizedHoseCodes(topicMolecule) {
  const options = topicMolecule.options;
  const heterotopicSymmetryRanks = topicMolecule.heterotopicSymmetryRanks;
  const moleculeWithH = topicMolecule.moleculeWithH;
  const finalRanks = topicMolecule.finalRanks;
  const canonizedHoseCodes = new Array(moleculeWithH.getAllAtoms());
  moleculeWithH.ensureHelperArrays(topicMolecule.molecule.getOCL().Molecule.cHelperSymmetryStereoHeterotopicity);
  const cache = {};
  for (let i = 0; i < topicMolecule.moleculeWithH.getAllAtoms(); i++) {
    const rank = heterotopicSymmetryRanks[i];
    if (rank && cache[rank]) {
      canonizedHoseCodes[finalRanks[i]] = cache[rank].diaID;
      continue;
    }
    const tempMolecule = getCompactCopyWithoutCustomLabels(moleculeWithH);
    tagAtom(tempMolecule, i);
    const hoses = getHoseCodesForAtomsAsStrings(tempMolecule, options);
    canonizedHoseCodes[finalRanks[i]] = hoses;
  }
  return canonizedHoseCodes;
}

/**
 * For each atom we will return an array of objects
 * @param topicMolecule
 * @param options
 * @returns
 */
function getCanonizedHoseCodesForPath(topicMolecule, options = {}) {
  const {
    minPathLength = 0,
    maxPathLength = topicMolecule.options.maxPathLength,
    toAtomicNo,
    fromAtomicNo
  } = options;
  if (maxPathLength > topicMolecule.options.maxPathLength) {
    throw new Error(`maxPathLength cannot be larger than the one defined in topicMolecule: ${topicMolecule.options.maxPathLength}`);
  }
  const atomsPaths = topicMolecule.atomsPaths;
  const molecule = topicMolecule.moleculeWithH;
  const results = new Array(molecule.getAllAtoms());
  for (let fromAtom = 0; fromAtom < molecule.getAllAtoms(); fromAtom++) {
    results[fromAtom] = {
      fromDiaID: topicMolecule.diaIDs[fromAtom],
      paths: []
    };
    if (fromAtomicNo && molecule.getAtomicNo(fromAtom) !== fromAtomicNo) {
      continue;
    }
    for (let pathLength = minPathLength; pathLength <= maxPathLength; pathLength++) {
      const pathOfSpecificLength = atomsPaths[fromAtom][pathLength];
      for (const path of pathOfSpecificLength) {
        const toAtom = path.path.at(-1);
        if (toAtomicNo && molecule.getAtomicNo(toAtom) !== toAtomicNo) {
          continue;
        }
        results[fromAtom].paths.push({
          toDiaID: topicMolecule.diaIDs[toAtom],
          pathLength: path.pathLength,
          path: path.path,
          hoses: getHoseCodesForAtomsAsStrings(topicMolecule.moleculeWithH, {
            ...options,
            rootAtoms: path.path,
            tagAtoms: [fromAtom, toAtom]
          })
        });
      }
    }
  }
  return results;
}

function getDiaIDsAndInfo(diaMol, canonizedDiaIDs) {
  const newDiaIDs = [];
  const molecule = diaMol.moleculeWithH;
  const counts = {};
  for (const diaID of canonizedDiaIDs) {
    if (!counts[diaID]) {
      counts[diaID] = 0;
    }
    counts[diaID]++;
  }
  for (let i = 0; i < canonizedDiaIDs.length; i++) {
    const diaID = canonizedDiaIDs[diaMol.finalRanks[i]];
    if (!diaID) {
      throw new Error(`Unexpected missing canonized diaID for atom ${i}`);
    }
    const count = counts[diaID];
    if (!count) {
      throw new Error(`Unexpected missing count for diaID ${diaID}`);
    }
    const newDiaID = {
      idCode: diaID,
      attachedHydrogensIDCodes: [],
      attachedHydrogens: [],
      nbAttachedHydrogens: 0,
      atomLabel: molecule.getAtomLabel(i),
      nbEquivalentAtoms: count,
      heavyAtom: undefined,
      atomMapNo: molecule.getAtomMapNo(i)
    };
    if (molecule.getAtomicNo(i) === 1) {
      const atom = molecule.getConnAtom(i, 0);
      newDiaID.heavyAtom = canonizedDiaIDs[diaMol.finalRanks[atom]];
    }
    for (let j = 0; j < molecule.getAllConnAtoms(i); j++) {
      const atom = molecule.getConnAtom(i, j);
      if (molecule.getAtomicNo(atom) === 1) {
        newDiaID.nbAttachedHydrogens++;
        newDiaID.attachedHydrogens.push(atom);
        const hydrogenDiaID = canonizedDiaIDs[diaMol.finalRanks[atom]];
        if (!hydrogenDiaID) {
          throw new Error(`Unexpected missing canonized diaID for atom ${atom}`);
        }
        if (!newDiaID.attachedHydrogensIDCodes.includes(hydrogenDiaID)) {
          newDiaID.attachedHydrogensIDCodes.push(hydrogenDiaID);
        }
      }
    }
    newDiaIDs.push(newDiaID);
  }
  return newDiaIDs;
}

/**
 * Get a unique atomic number for a X
 * @param xMolecule
 * @returns
 */
function getHeterotopicSymmetryRanks(xMolecule) {
  xMolecule.ensureHelperArrays(xMolecule.getOCL().Molecule.cHelperSymmetryStereoHeterotopicity);
  const symmetryRanks = [];
  for (let i = 0; i < xMolecule.getAllAtoms(); i++) {
    symmetryRanks.push(xMolecule.getSymmetryRank(i));
  }
  return symmetryRanks;
}
function getFinalRanks(xMolecule) {
  xMolecule.ensureHelperArrays(xMolecule.getOCL().Molecule.cHelperSymmetryStereoHeterotopicity);
  return xMolecule.getFinalRanks(0).map(rank => rank - 1);
}

/**
 * Returns the atoms that are chiral or pseudo chiral.
 * There could be some issues if the original molecule lacks chiral bonds.
 * The function will add them and this could lead to some issues in the case of pseudochiral atoms.
 * @param {import('openchemlib').Molecule} molecule
 * @returns {number[]}
 */
function getChiralOrHeterotopicCarbons(molecule) {
  const {
    Molecule
  } = molecule.getOCL();
  const xAtomicNumber = getXAtomicNumber(molecule);
  const internalMolecule = molecule.getCompactCopy();
  // hydrogens may be diastereotopic, we need to add them
  internalMolecule.addImplicitHydrogens();
  for (let i = 0; i < internalMolecule.getAllAtoms(); i++) {
    // hydrogens are not taken into account during canonization, we need to change them with an atom with a valence of 1
    if (internalMolecule.getAtomicNo(i) === 1) {
      internalMolecule.setAtomicNo(i, xAtomicNumber);
    }
  }
  addPossibleChiralBonds(internalMolecule);
  internalMolecule.ensureHelperArrays(Molecule.cHelperSymmetryStereoHeterotopicity);
  const atoms = [];
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (internalMolecule.getAtomicNo(i) === xAtomicNumber) {
      continue;
    }
    if (molecule.getAtomicNo(i) !== internalMolecule.getAtomicNo(i)) {
      throw new Error('getChiralOrHeterotopicCarbons: mismatching atomic numbers');
    }
    if (internalMolecule.getAtomicNo(i) !== 6) {
      continue;
    }
    const neighbourSymmetries = getNeighbourSymmetries(internalMolecule, i);
    if (neighbourSymmetries.length === 4) {
      atoms.push(i);
    }
  }
  return atoms;
}
function addPossibleChiralBonds(molecule) {
  const {
    Molecule
  } = molecule.getOCL();
  molecule.ensureHelperArrays(Molecule.cHelperSymmetryStereoHeterotopicity);
  for (let i = 0; i < molecule.getAtoms(); i++) {
    if (molecule.getAtomicNo(i) !== 6) continue;
    if (molecule.getStereoBond(i) >= 0) continue;
    const neighbourSymmetries = getNeighbourSymmetries(molecule, i);
    if (neighbourSymmetries.length <= 2) continue;
    const stereoBond = molecule.getAtomPreferredStereoBond(i);
    if (stereoBond !== -1) {
      molecule.setBondType(stereoBond, Molecule.cBondTypeUp);
      if (molecule.getBondAtom(1, stereoBond) === i) {
        const connAtom = molecule.getBondAtom(0, stereoBond);
        molecule.setBondAtom(0, stereoBond, i);
        molecule.setBondAtom(1, stereoBond, connAtom);
      }
      // To me it seems that we have to add all stereo centers into AND group 0. TLS 9.Nov.2015
      molecule.setAtomESR(i, Molecule.cESRTypeAnd, 0);
    }
  }
}
function getNeighbourSymmetries(molecule, iAtom) {
  const neighbourSymmetries = [];
  for (let j = 0; j < molecule.getAllConnAtoms(iAtom); j++) {
    const connAtom = molecule.getConnAtom(iAtom, j);
    const symmetryRank = molecule.getSymmetryRank(connAtom);
    if (!neighbourSymmetries.includes(symmetryRank)) {
      neighbourSymmetries.push(molecule.getSymmetryRank(connAtom));
    }
  }
  return neighbourSymmetries;
}

/**
 * This function will add missing chiral bonds on carbons ensure that all enantiotopic
 * or diastereotopic atoms can be identified uniquely
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {number} [options.esrType=Molecule.cESRTypeAnd]
 * @param {boolean} [options.atLeastThreeAtoms=true] - if true, only carbons with at least three atoms will be considered
 */
function ensureHeterotopicChiralBonds(molecule, options = {}) {
  const {
    Molecule
  } = molecule.getOCL();
  const {
    esrType = Molecule.cESRTypeAnd,
    atLeastThreeAtoms = true
  } = options;
  molecule.ensureHelperArrays(Molecule.cHelperBitNeighbours);
  const heterotopicCarbons = getChiralOrHeterotopicCarbons(molecule);
  for (const i of heterotopicCarbons) {
    if (atLeastThreeAtoms && molecule.getAllConnAtoms(i) < 3) continue;
    if (molecule.getStereoBond(i) === -1) {
      const stereoBond = molecule.getAtomPreferredStereoBond(i);
      if (stereoBond !== -1) {
        molecule.setBondType(stereoBond, Molecule.cBondTypeUp);
        if (molecule.getBondAtom(1, stereoBond) === i) {
          const connAtom = molecule.getBondAtom(0, stereoBond);
          molecule.setBondAtom(0, stereoBond, i);
          molecule.setBondAtom(1, stereoBond, connAtom);
        }
        // To me it seems that we have to add all stereo centers into AND group 0. TLS 9.Nov.2015
        molecule.setAtomESR(i, esrType, 0);
      }
    }
  }
}

/**
 * Expand all the implicit hydrogens and ensure chiral bonds on heterotopic bonds
 * @param molecule
 * @param options
 * @returns
 */
function getMoleculeWithH(molecule, options) {
  const {
    logger,
    maxNbAtoms
  } = options;
  const moleculeWithH = molecule.getCompactCopy();
  moleculeWithH.addImplicitHydrogens();
  if (moleculeWithH.getAllAtoms() > maxNbAtoms) {
    logger.warn(`too many atoms to evaluate heterotopic chiral bonds: ${moleculeWithH.getAllAtoms()} > ${maxNbAtoms}`);
  } else {
    ensureHeterotopicChiralBonds(moleculeWithH);
  }
  return moleculeWithH;
}

/**
 * In order to be able to give a unique ID to all the atoms we are replacing the H by X
 * @param moleculeWithH
 * @returns
 */
function getXMolecule(moleculeWithH) {
  const xAtomNumber = getXAtomicNumber(moleculeWithH);
  const xMolecule = moleculeWithH.getCompactCopy();
  for (let i = 0; i < xMolecule.getAllAtoms(); i++) {
    // hydrogens are not taken into account during canonization, we need to change them with an atom with a valence of 1
    if (xMolecule.getAtomicNo(i) === 1) {
      xMolecule.setAtomicNo(i, xAtomNumber);
    }
  }
  return xMolecule;
}

/**
 * This class deals with topicity information and hose codes
 * It is optimized to avoid recalculation of the same information
 */
class TopicMolecule {
  originalMolecule;
  molecule;
  idCode;
  options;
  cache;
  constructor(molecule, options = {}) {
    this.originalMolecule = molecule;
    this.options = {
      maxPathLength: 5,
      maxNbAtoms: 250,
      logger: console,
      ...options
    };
    this.idCode = molecule.getIDCode();
    this.molecule = this.originalMolecule.getCompactCopy();
    this.molecule.ensureHelperArrays(molecule.getOCL().Molecule.cHelperNeighbours);
    this.molecule.ensureHelperArrays(this.molecule.getOCL().Molecule.cHelperNeighbours);
    this.cache = {};
  }
  /**
   * This method ensures that all the atoms have a mapNo corresponding to the atom number.
   * It will enforce mapNo in molecule and moleculeWithH
   * We start numbering the atoms at 1
   */
  setAtomNoInMapNo() {
    const molecules = [this.molecule, this.moleculeWithH];
    for (const molecule of molecules) {
      for (let i = 0; i < molecule.getAllAtoms(); i++) {
        molecule.setAtomMapNo(i, i + 1, false);
      }
    }
  }
  /**
   * This method ensures that all the atoms have a mapNo in the molecule (and not the moleculeWithH! )
   */
  ensureMapNo() {
    ensureMapNo(this.molecule);
  }
  /**
   * For each atom we will return an array of objects that contains the
   * different possible path as well as the canonic hose codes
   * @param options
   * @returns
   */
  getHoseCodesForPath(options = {}) {
    return getCanonizedHoseCodesForPath(this, options);
  }
  /**
   * Return one fragment for a specific sphere size and specific root atoms
   * @param rootAtoms
   * @param options
   * @returns
   */
  getHoseFragment(rootAtoms, options = {}) {
    const {
      sphereSize = 2,
      tagAtoms = rootAtoms,
      tagAtomFct
    } = options;
    const fragments = getHoseCodesForAtomsAsFragments(this.moleculeWithH, {
      rootAtoms,
      minSphereSize: sphereSize,
      maxSphereSize: sphereSize,
      tagAtoms,
      tagAtomFct
    });
    return fragments[0];
  }
  getAtomPathsFrom(atom, options = {}) {
    const {
      minPathLength = 1,
      maxPathLength = this.options.maxPathLength,
      toAtomicNo
    } = options;
    if (maxPathLength > this.options.maxPathLength) {
      throw new Error('The maxPathLength is too long, you should increase the maxPathLength when instantiating the TopicMolecule');
    }
    const atomPaths = this.atomsPaths[atom];
    if (!atomPaths) {
      throw new Error('Unexpected missing atom path');
    }
    const paths = [];
    for (let i = minPathLength; i <= maxPathLength; i++) {
      const atomPathValue = atomPaths[i];
      if (!atomPathValue) {
        throw new Error(`Unexpected missing atom path at index ${i}`);
      }
      for (const atomPath of atomPathValue) {
        if (!toAtomicNo || this.moleculeWithH.getAtomicNo(atomPath.path.at(-1)) === toAtomicNo) {
          paths.push(atomPath.path);
        }
      }
    }
    return paths;
  }
  getAtomPaths(atom1, atom2, options = {}) {
    const {
      pathLength
    } = options;
    if (pathLength !== undefined && pathLength > this.options.maxPathLength) {
      throw new Error('The distance is too long, you should increase the maxPathLength when instantiating the TopicMolecule');
    }
    const atomPaths = this.atomsPaths[atom1];
    if (!atomPaths) {
      throw new Error('Unexpected missing atom path');
    }
    const minDistance = pathLength || 0;
    const maxDistance = pathLength || this.options.maxPathLength;
    const paths = [];
    for (let i = minDistance; i <= maxDistance; i++) {
      const atomPathValue = atomPaths[i];
      if (!atomPathValue) {
        throw new Error(`Unexpected missing atom path at index ${i}`);
      }
      for (const atomPath of atomPathValue) {
        if (atomPath.path.at(-1) === atom2) {
          paths.push(atomPath.path);
        }
      }
    }
    return paths;
  }
  get atomsPaths() {
    if (this.cache.atomsPaths) return this.cache.atomsPaths;
    this.cache.atomsPaths = getAllAtomsPaths(this.moleculeWithH, {
      maxPathLength: this.options.maxPathLength
    });
    return this.cache.atomsPaths;
  }
  toMolfile(options = {}) {
    const {
      version = 2
    } = options;
    if (version === 2) {
      return this.molecule.toMolfile();
    }
    return this.molecule.toMolfileV3();
  }
  getMolecule() {
    return this.molecule;
  }
  /**
   * Returns a new TopicMolecule but will copy precalculated information
   * if possible (same idCode). This is very practical when expanding hydrogens
   * for example.
   * @param molecule
   * @returns
   */
  fromMolecule(molecule) {
    const idCode = molecule.getIDCode();
    if (idCode !== this.idCode) {
      // no way for optimisation
      return new TopicMolecule(molecule);
    }
    const topicMolecule = new TopicMolecule(molecule);
    topicMolecule.cache = {
      canonizedDiaIDs: this.cache.canonizedDiaIDs,
      canonizedHoseCodes: this.cache.canonizedHoseCodes
    };
    return topicMolecule;
  }
  /**
   * Returns a molecule with all the hydrogens added. The order is NOT canonized
   */
  get moleculeWithH() {
    if (this.cache.moleculeWithH) return this.cache.moleculeWithH;
    this.cache.moleculeWithH = getMoleculeWithH(this.molecule, {
      maxNbAtoms: this.options.maxNbAtoms,
      logger: this.options.logger
    });
    return this.cache.moleculeWithH;
  }
  get xMolecule() {
    if (this.cache.xMolecule) return this.cache.xMolecule;
    this.cache.xMolecule = getXMolecule(this.moleculeWithH);
    return this.cache.xMolecule;
  }
  /**
   * This is related to the current moleculeWithH. The order is NOT canonized
   */
  get diaIDs() {
    if (this.cache.diaIDs) return this.cache.diaIDs;
    const diaIDs = [];
    if (this.moleculeWithH.getAllAtoms() > this.options.maxNbAtoms) {
      this.options.logger.warn(`too many atoms to evaluate heterotopicity: ${this.moleculeWithH.getAllAtoms()} > ${this.options.maxNbAtoms}`);
    } else {
      for (let i = 0; i < this.moleculeWithH.getAllAtoms(); i++) {
        diaIDs.push(this.canonizedDiaIDs[this.finalRanks[i]]);
      }
    }
    this.cache.diaIDs = diaIDs;
    return diaIDs;
  }
  /**
   * We return the atomIDs corresponding to the specified diaID as well has the attached hydrogens or heavy atoms
   * @param diaID
   * @returns
   */
  getDiaIDsObject() {
    return groupDiastereotopicAtomIDsAsObject(this.diaIDs, this.molecule, this.moleculeWithH);
  }
  /**
   * This is related to the current moleculeWithH. The order is NOT canonized
   */
  get hoseCodes() {
    if (this.cache.hoseCodes) return this.cache.hoseCodes;
    const hoseCodes = [];
    for (let i = 0; i < this.moleculeWithH.getAllAtoms(); i++) {
      hoseCodes.push(this.canonizedHoseCodes[this.finalRanks[i]]);
    }
    this.cache.hoseCodes = hoseCodes;
    return hoseCodes;
  }
  get canonizedDiaIDs() {
    if (this.cache.canonizedDiaIDs) return this.cache.canonizedDiaIDs;
    this.cache.canonizedDiaIDs = getCanonizedDiaIDs(this, {
      maxNbAtoms: this.options.maxNbAtoms,
      logger: this.options.logger
    });
    return this.cache.canonizedDiaIDs;
  }
  get canonizedHoseCodes() {
    if (this.cache.canonizedHoseCodes) {
      return this.cache.canonizedHoseCodes;
    }
    this.cache.canonizedHoseCodes = getCanonizedHoseCodes(this);
    return this.cache.canonizedHoseCodes;
  }
  /**
   * Returns the distance matrix for the current moleculeWithH
   */
  get distanceMatrix() {
    return getConnectivityMatrix(this.moleculeWithH, {
      pathLength: true
    });
  }
  get diaIDsAndInfo() {
    if (this.cache.diaIDsAndInfo) {
      return this.cache.diaIDsAndInfo;
    }
    this.cache.diaIDsAndInfo = getDiaIDsAndInfo(this, this.canonizedDiaIDs);
    return this.cache.diaIDsAndInfo;
  }
  /**
   * Returns symmetryRanks for all the atoms including hydrogens. Those ranks
   * deals with topicity and is related to the current moleculeWithH.
   * In order to calculate the ranks we replace all the
   * hydrogens with a X atom.
   */
  get heterotopicSymmetryRanks() {
    if (this.cache.heterotopicSymmetryRanks) {
      return this.cache.heterotopicSymmetryRanks;
    }
    this.cache.heterotopicSymmetryRanks = getHeterotopicSymmetryRanks(this.xMolecule);
    return [...this.cache.heterotopicSymmetryRanks];
  }
  /**
   * Returns finalRanks for all the atoms including hydrogens. Those ranks
   * deals with topicity and is related to the current moleculeWithH.
   * All the atoms have a unique identifier.j
   * In order to calculate the ranks we replace all the
   * hydrogens with a X atom.
   */
  get finalRanks() {
    if (this.cache.finalRanks) return this.cache.finalRanks;
    this.cache.finalRanks = getFinalRanks(this.xMolecule);
    return this.cache.finalRanks;
  }
  toMolfileWithH(options = {}) {
    const {
      version = 2
    } = options;
    if (version === 2) {
      return this.moleculeWithH.toMolfile();
    }
    return this.moleculeWithH.toMolfileV3();
  }
  toMolfileWithoutH(options = {}) {
    const molecule = this.molecule.getCompactCopy();
    molecule.ensureHelperArrays(molecule.getOCL().Molecule.cHelperNeighbours);
    const atomsToDelete = [];
    for (let atomID = 0; atomID < molecule.getAtoms(); atomID++) {
      if (molecule.getExplicitHydrogens(atomID) > 0) {
        for (let i = 0; i < molecule.getAllConnAtoms(atomID); i++) {
          const connectedAtom = molecule.getConnAtom(atomID, i);
          if (molecule.getAtomicNo(connectedAtom) === 1) {
            atomsToDelete.push(connectedAtom);
          }
        }
      }
    }
    molecule.deleteAtoms(atomsToDelete);
    const {
      version = 2
    } = options;
    if (version === 2) {
      return molecule.toMolfile();
    }
    return molecule.toMolfileV3();
  }
  /**
   * Returns an array of objects containing the oclID and the corresponding hydrogens and atoms
   * for the specified atomLabel (if any)
   * This always applied to the molecule with expanded hydrogens and chirality
   * @param options
   * @returns
   */
  getGroupedDiastereotopicAtomIDs(options = {}) {
    if (!this.diaIDs) return undefined;
    return groupDiastereotopicAtomIDs$1(this.diaIDs, this.moleculeWithH, options);
  }
  /**
   * This method returns a mapping between the diaIDs of the current molecule.
   * It expects that the initial molfile and the final molfile contains atomMapNo
   * in order to track which atom becomes which one.
   * @param molecule
   */
  getDiaIDsMapping(molecule) {
    const topicMolecule = new TopicMolecule(molecule);
    const originalDiaIDs = this.diaIDsAndInfo.filter(diaID => diaID.atomMapNo);
    const destinationDiaIDs = topicMolecule.diaIDsAndInfo.filter(diaID => diaID.atomMapNo);
    const mapping = {};
    // we first check all the atoms present in the molfile
    for (const destinationDiaID of destinationDiaIDs) {
      const originalDiaID = originalDiaIDs.find(diaID => diaID.atomMapNo === destinationDiaID.atomMapNo);
      const newIDCode = destinationDiaID.idCode;
      const oldIDCode = originalDiaID.idCode;
      if (oldIDCode in mapping) {
        if (mapping[oldIDCode] !== newIDCode) {
          mapping[oldIDCode] = undefined;
        }
      } else {
        mapping[oldIDCode] = newIDCode;
      }
    }
    // we now check all the attached hydrogens that are not defined in the molfile and were not yet mapped
    for (const destinationDiaID of destinationDiaIDs) {
      const originalDiaID = originalDiaIDs.find(diaID => diaID.atomMapNo === destinationDiaID.atomMapNo);
      for (let i = 0; i < originalDiaID.attachedHydrogensIDCodes.length; i++) {
        const oldHydrogenIDCode = originalDiaID.attachedHydrogensIDCodes.at(i);
        if (mapping[oldHydrogenIDCode]) continue;
        const newHydrogenIDCode = destinationDiaID.attachedHydrogensIDCodes[i];
        if (oldHydrogenIDCode && newHydrogenIDCode) {
          if (oldHydrogenIDCode in mapping) {
            if (mapping[oldHydrogenIDCode] !== newHydrogenIDCode) {
              mapping[oldHydrogenIDCode] = undefined;
            }
          } else {
            mapping[oldHydrogenIDCode] = newHydrogenIDCode;
          }
        }
      }
    }
    return mapping;
  }
}
function groupDiastereotopicAtomIDs$1(diaIDs, molecule, options = {}) {
  const diaIDsObject = groupDiastereotopicAtomIDsAsObject(diaIDs, molecule, molecule, options);
  return Object.values(diaIDsObject);
}
function groupDiastereotopicAtomIDsAsObject(diaIDs, molecule, moleculeWithH, options = {}) {
  const {
    atomLabel
  } = options;
  const diaIDsObject = {};
  for (let i = 0; i < diaIDs.length; i++) {
    if (!atomLabel || moleculeWithH.getAtomLabel(i) === atomLabel) {
      const diaID = diaIDs[i];
      if (!diaIDsObject[diaID]) {
        diaIDsObject[diaID] = {
          counter: 0,
          oclID: diaID,
          atomLabel: moleculeWithH.getAtomLabel(i),
          atoms: [],
          existingAtoms: [],
          heavyAtoms: [],
          attachedHydrogens: [],
          customLabels: [],
          attachedHydrogensCustomLabels: [],
          heavyAtomsCustomLabels: []
        };
      }
      const customLabel = moleculeWithH.getAtomCustomLabel(i)?.replace(/^\]/, '');
      if (customLabel && !diaIDsObject[diaID].customLabels.includes(customLabel)) {
        diaIDsObject[diaID].customLabels.push(customLabel);
      }
      if (moleculeWithH.getAtomicNo(i) === 1) {
        const connected = moleculeWithH.getConnAtom(i, 0);
        if (!diaIDsObject[diaID].heavyAtoms.includes(connected)) {
          diaIDsObject[diaID].heavyAtoms.push(connected);
        }
        const heavyAtomCustomLabel = molecule.getAtomCustomLabel(connected)?.replace(/^\]/, '');
        if (heavyAtomCustomLabel && !diaIDsObject[diaID].heavyAtomsCustomLabels.includes(heavyAtomCustomLabel)) {
          diaIDsObject[diaID].heavyAtomsCustomLabels.push(heavyAtomCustomLabel);
        }
        if (molecule.getAtomicNo(i)) {
          diaIDsObject[diaID].existingAtoms.push(i);
        } else if (!diaIDsObject[diaID].existingAtoms.includes(connected)) {
          diaIDsObject[diaID].existingAtoms.push(connected);
        }
      } else {
        for (let j = 0; j < moleculeWithH.getAllConnAtoms(i); j++) {
          const connected = moleculeWithH.getConnAtom(i, j);
          if (moleculeWithH.getAtomicNo(connected) === 1) {
            const attachedHydrogenCustomLabel = molecule.getAtomCustomLabel(connected)?.replace(/^\]/, '');
            if (attachedHydrogenCustomLabel && !diaIDsObject[diaID].attachedHydrogensCustomLabels.includes(attachedHydrogenCustomLabel)) {
              diaIDsObject[diaID].attachedHydrogensCustomLabels.push(attachedHydrogenCustomLabel);
            }
            diaIDsObject[diaID].attachedHydrogens.push(connected);
          }
        }
        diaIDsObject[diaID].existingAtoms.push(i);
      }
      diaIDsObject[diaID].counter++;
      diaIDsObject[diaID].atoms.push(i);
    }
  }
  for (const diaIDObject of Object.values(diaIDsObject)) {
    diaIDObject.existingAtoms.sort((a, b) => a - b);
    diaIDObject.attachedHydrogens.sort((a, b) => a - b);
  }
  return diaIDsObject;
}

/**
 * Returns an array of symmetry ranks.
 * @param {import('openchemlib').Molecule} molecule - An instance of a molecule
 * @returns
 */
function getSymmetryRanks(molecule) {
  const {
    Molecule
  } = molecule.getOCL();
  const xAtomNumber = getXAtomicNumber(molecule);
  // most of the molecules have some symmetry
  const internalMolecule = molecule.getCompactCopy();
  for (let i = 0; i < internalMolecule.getAllAtoms(); i++) {
    // hydrogens are not taken into account during canonization, we need to change them with an atom with a valence of 1
    if (internalMolecule.getAtomicNo(i) === 1) {
      internalMolecule.setAtomicNo(i, xAtomNumber);
    }
  }
  internalMolecule.ensureHelperArrays(Molecule.cHelperSymmetryStereoHeterotopicity);
  const symmetryRanks = [];
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    symmetryRanks.push(internalMolecule.getSymmetryRank(i));
  }
  return symmetryRanks;
}

/**
 * Returns an array of diastereotopic ID (as idCode)
 * @param {import('openchemlib').Molecule} molecule
 */
function getDiastereotopicAtomIDs(molecule) {
  const {
    Molecule
  } = molecule.getOCL();
  ensureHeterotopicChiralBonds(molecule);
  const symmetryRanks = getSymmetryRanks(molecule);
  const numberAtoms = molecule.getAllAtoms();
  const ids = [];
  const cache = {};
  for (let iAtom = 0; iAtom < numberAtoms; iAtom++) {
    const rank = symmetryRanks[iAtom];
    if (rank && cache[rank]) {
      ids[iAtom] = cache[rank];
      continue;
    }
    const tempMolecule = getCompactCopyWithoutCustomLabels(molecule);
    tagAtom(tempMolecule, iAtom);
    makeRacemic(tempMolecule);
    // We need to ensure the helper array in order to get correctly the result of racemisation
    ids[iAtom] = tempMolecule.getCanonizedIDCode(Molecule.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS);
    cache[rank] = ids[iAtom];
  }
  return ids;
}

/**
 *
 * @param {import('openchemlib').Molecule} molecule
 */
function getDiastereotopicAtomIDsAndH(molecule) {
  const OCL = molecule.getOCL();
  molecule = molecule.getCompactCopy();
  molecule.addImplicitHydrogens();
  molecule.ensureHelperArrays(OCL.Molecule.cHelperNeighbours);
  const diaIDs = getDiastereotopicAtomIDs(molecule);
  const newDiaIDs = [];
  for (let i = 0; i < diaIDs.length; i++) {
    const diaID = diaIDs[i];
    const newDiaID = {
      oclID: diaID,
      hydrogenOCLIDs: [],
      nbHydrogens: 0
    };
    if (molecule.getAtomicNo(i) === 1) {
      const atom = molecule.getConnAtom(i, 0);
      newDiaID.heavyAtom = diaIDs[atom];
    }
    for (let j = 0; j < molecule.getAllConnAtoms(i); j++) {
      const atom = molecule.getConnAtom(i, j);
      if (molecule.getAtomicNo(atom) === 1) {
        newDiaID.nbHydrogens++;
        if (!newDiaID.hydrogenOCLIDs.includes(diaIDs[atom])) {
          newDiaID.hydrogenOCLIDs.push(diaIDs[atom]);
        }
      }
    }
    newDiaIDs.push(newDiaID);
  }
  return newDiaIDs;
}

function groupDiastereotopicAtomIDs(diaIDs, molecule, options = {}) {
  const {
    atomLabel
  } = options;
  const diaIDsObject = {};
  for (let i = 0; i < diaIDs.length; i++) {
    if (!atomLabel || molecule.getAtomLabel(i) === atomLabel) {
      const diaID = diaIDs[i];
      if (!diaIDsObject[diaID]) {
        diaIDsObject[diaID] = {
          counter: 0,
          atoms: [],
          oclID: diaID,
          atomLabel: molecule.getAtomLabel(i)
        };
      }
      diaIDsObject[diaID].counter++;
      diaIDsObject[diaID].atoms.push(i);
    }
  }
  return Object.keys(diaIDsObject).map(key => diaIDsObject[key]);
}

/**
 * This function groups the diasterotopic atomIds of the molecule based on equivalence of atoms. The output object contains
 * a set of chemically equivalent atoms(element.atoms) and the groups of magnetically equivalent atoms (element.magneticGroups)
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {string} [options.atomLabel] - Select atoms of the given atomLabel. By default it returns all the explicit atoms in the molecule
 * @returns {Array}
 */
function getGroupedDiastereotopicAtomIDs(molecule, options = {}) {
  const diaIDs = getDiastereotopicAtomIDs(molecule);
  return groupDiastereotopicAtomIDs(diaIDs, molecule, options);
}

/**
 * Parse a molfile and returns an object containing the molecule, the map and the diaIDs
 * The map allows to reload properties assigned to the atom molfile
 * Please take care than numbering of atoms starts at 0 !
 * @param {typeof import('openchemlib')} OCL - openchemlib library
 * @param {string} molfile
 * @returns
 */
function getDiastereotopicAtomIDsFromMolfile(OCL, molfile) {
  const {
    map,
    molecule
  } = OCL.Molecule.fromMolfileWithAtomMap(molfile);
  const diaIDsArray = getDiastereotopicAtomIDsAndH(molecule);
  const diaIDs = {};
  for (let i = 0; i < map.length; i++) {
    diaIDs[map[i]] = {
      source: map[i],
      destination: i,
      ...diaIDsArray[i]
    };
  }
  return {
    map: diaIDs,
    molecule,
    diaIDs: diaIDsArray
  };
}

/**
 * Returns a SVG
 * @param {*} molecule
 * @param {*} [options={}]
 */
function toDiastereotopicSVG(molecule, options = {}) {
  const {
    width = 300,
    height = 200,
    prefix = 'ocl',
    heavyAtomHydrogen = false
  } = options;
  let svg = options.svg;
  let diaIDs = [];
  const hydrogenInfo = {};
  for (const line of getDiastereotopicAtomIDsAndH(molecule)) {
    hydrogenInfo[line.oclID] = line;
  }
  if (heavyAtomHydrogen) {
    for (let i = 0; i < molecule.getAtoms(); i++) {
      diaIDs.push([]);
    }
    const groupedDiaIDs = molecule.getGroupedDiastereotopicAtomIDs();
    for (const diaID of groupedDiaIDs) {
      if (hydrogenInfo[diaID.oclID] && hydrogenInfo[diaID.oclID].nbHydrogens > 0) {
        for (const atom of diaID.atoms) {
          for (const id of hydrogenInfo[diaID.oclID].hydrogenOCLIDs) {
            if (!diaIDs[atom * 1].includes(id)) diaIDs[atom].push(id);
          }
        }
      }
    }
  } else {
    diaIDs = molecule.getDiastereotopicAtomIDs().map(a => [a]);
  }
  if (!svg) svg = molecule.toSVG(width, height, prefix);
  svg = svg.replaceAll(/Atom:\d+"/g, value => {
    const atom = value.replaceAll(/\D/g, '');
    return `${value} data-diaid="${diaIDs[atom].join(',')}"`;
  });
  return svg;
}

/**
 * Returns the hose codes for all atoms in the molecule
 * @param {*} molecule
 * @param {object} [options={}]
 * @param {string[]} [options.atomLabels]
 * @param {number} [options.minSphereSize=0]
 * @param {number} [options.maxSphereSize=4]
 * @returns
 */
function getHoseCodes(molecule, options = {}) {
  const {
    atomLabels,
    minSphereSize,
    maxSphereSize
  } = options;
  const {
    Molecule
  } = molecule.getOCL();
  const atomicNumbers = atomLabels?.map(label => Molecule.getAtomicNoFromLabel(label));
  const internalMolecule = getCompactCopyWithoutCustomLabels(molecule);
  internalMolecule.addImplicitHydrogens();
  ensureHeterotopicChiralBonds(internalMolecule);
  const hoses = [];
  for (let i = 0; i < internalMolecule.getAllAtoms(); i++) {
    if (atomicNumbers && !atomicNumbers.includes(internalMolecule.getAtomicNo(i))) {
      hoses.push(undefined);
    } else {
      const tempMolecule = internalMolecule.getCompactCopy();
      tagAtom(tempMolecule, i);
      hoses.push(getHoseCodesForAtomsAsStrings(tempMolecule, {
        minSphereSize,
        maxSphereSize
      }));
    }
  }
  return hoses;
}

/**
 * Returns an object containing a molfile, molfile with hydrogens, hoses codes and optionally the diaIDs
 * and the diaIDs
 * The map allows to reload properties assigned to the atom molfile
 * Please take care than numbering of atoms starts at 0 !
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {string[]} [options.atomLabels]
 * @param {boolean} [options.calculateDiastereotopicIDs=true]
 * @param {number} [options.minSphereSize=0]
 * @param {number} [options.maxSphereSize=4]
 * @returns
 */
function getHoseCodesAndInfo(molecule, options = {}) {
  const {
    minSphereSize,
    maxSphereSize,
    calculateDiastereotopicIDs = true
  } = options;
  const {
    Molecule
  } = molecule.getOCL();
  molecule = molecule.getCompactCopy();
  // this will force reordering of the hydrogens to the end, just to have the same order as in the molfile
  molecule.ensureHelperArrays(Molecule.cHelperNeighbours);
  const newMolfile = molecule.toMolfile();
  molecule.addImplicitHydrogens();
  ensureHeterotopicChiralBonds(molecule);
  molecule.ensureHelperArrays(Molecule.cHelperSymmetryStereoHeterotopicity);
  const newMolfileWithH = molecule.toMolfile();
  const symmetryRanks = getSymmetryRanks(molecule);
  const cache = {};
  const hoses = [];
  const diaIDs = [];
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    const rank = symmetryRanks[i];
    if (rank && cache[rank]) {
      diaIDs.push(cache[rank].diaID);
      hoses.push(cache[rank].hose);
      continue;
    }
    const tempMolecule = getCompactCopyWithoutCustomLabels(molecule);
    tagAtom(tempMolecule, i);
    let diaID;
    if (calculateDiastereotopicIDs) {
      makeRacemic(tempMolecule);
      diaID = tempMolecule.getCanonizedIDCode(Molecule.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS);
      diaIDs.push(diaID);
    }
    const hose = getHoseCodesForAtomsAsStrings(tempMolecule, {
      minSphereSize,
      maxSphereSize
    });
    hoses.push(hose);
    cache[rank] = {
      diaID,
      hose
    };
  }
  const distanceMatrix = getConnectivityMatrix(molecule, {
    pathLength: true
  });
  return {
    molfile: newMolfile,
    molfileWithH: newMolfileWithH,
    hoses,
    diaIDs: calculateDiastereotopicIDs ? diaIDs : undefined,
    moleculeWithHydrogens: molecule,
    distanceMatrix
  };
}

const FULL_HOSE_CODE = 1;
const HOSE_CODE_CUT_C_SP3_SP3 = 2;
/**
 * Returns the hose code for specific atom numbers
 * @param {import('openchemlib').Molecule} originalMolecule - The OCL molecule to be fragmented
 * @param {number[]} rootAtoms
 * @param {object} [options={}]
 * @param {number} [options.minSphereSize=0] - Smallest hose code sphere
 * @param {number} [options.maxSphereSize=4] - Largest hose code sphere
 * @param {number} [options.kind=FULL_HOSE_CODE] - Kind of hose code, default usual sphere
 */
function getHoseCodesForAtoms(originalMolecule, rootAtoms = [], options = {}) {
  const {
    minSphereSize = 0,
    maxSphereSize = 4,
    kind = FULL_HOSE_CODE
  } = options;
  const molecule = getCompactCopyWithoutCustomLabels(originalMolecule);
  // those 2 lines should be done only once
  molecule.addImplicitHydrogens();
  ensureHeterotopicChiralBonds(molecule);
  const allowedCustomLabels = [];
  for (const rootAtom of rootAtoms) {
    allowedCustomLabels.push(tagAtom(molecule, rootAtom));
  }
  return getHoseCodesForAtomsAsStrings(molecule, {
    minSphereSize,
    maxSphereSize,
    allowedCustomLabels,
    kind
  });
}

/**
 * Returns the hose code for a specific atom number
 * @param {import('openchemlib').Molecule} originalMolecule
 * @param {number} rootAtom
 * @param {object} [options={}]
 * @param {boolean} [options.isTagged] - Specify is the atom is already tagged
 * @param {number} [options.minSphereSize=0] - Smallest hose code sphere
 * @param {number} [options.maxSphereSize=4] - Largest hose code sphere
 * @param {number} [options.kind=FULL_HOSE_CODE] - Kind of hose code, default usual sphere
 */
function getHoseCodesForAtom(originalMolecule, rootAtom, options = {}) {
  return getHoseCodesForAtoms(originalMolecule, [rootAtom], options);
}

/**
 * Returns an array of strings (idCodes) specified molecule. Each string corresponds to a
 * hose code. By default it will calculate the hose codes for sphere 0 to 4 and will reuse
 * the existing tagged atoms.
 * This method ensure implicity hydrogens and possible missing chiral bonds.
 * @param {import('openchemlib').Molecule} molecule - The OCL molecule to process.
 * @param {object} options - Options for generating hose codes.
 * @param {string[]} [options.allowedCustomLabels] - Array of the custom labels that are considered as root atoms. By default all atoms having a customLabel
 * @param {number} [options.minSphereSize=0] - Smallest hose code sphere
 * @param {number} [options.maxSphereSize=4] - Largest hose code sphere
 * @param {number} [options.kind=FULL_HOSE_CODE] - Kind of hose code, default usual sphere
 *  @param {number[]} [options.rootAtoms=[]] - Array of atom from which we should start to create the HOSE. By default we will used the taggedAtoms
 * @param {number[]} [options.tagAtoms=[]] - Array of atom indices to tag as root atoms
 * @param {Function} [options.tagAtomFct=tagAtom] - Function to tag an atom as root atom. By default it is defined internal
 * @returns {Array} - An array of hose code fragments.
 */
function getHoseCodesFromDiastereotopicID(molecule, options = {}) {
  molecule.addImplicitHydrogens();
  ensureHeterotopicChiralBonds(molecule);
  return getHoseCodesForAtomsAsStrings(molecule, options);
}

let fragment$1;
/**
 * Returns the hose code for a specific atom number
 * @param {import('openchemlib').Molecule} molecule
 * @param from
 * @param to
 * @param maxLength
 */
function getHoseCodesForPath(molecule, from, to, maxLength) {
  const OCL = molecule.getOCL();
  const originalFrom = from;
  const originalTo = to;
  molecule = getCompactCopyWithoutCustomLabels(molecule);
  const originalAtoms = []; // path before renumbering
  molecule.getPath(originalAtoms, from, to, maxLength + 1);
  let torsion;
  if (originalAtoms.length === 4) {
    torsion = molecule.calculateTorsion(originalAtoms);
  }
  const tag1 = tagAtom(molecule, from);
  const tag2 = tagAtom(molecule, to);
  molecule.addImplicitHydrogens();
  ensureHeterotopicChiralBonds(molecule);
  molecule.ensureHelperArrays(OCL.Molecule.cHelperNeighbours);
  from = -1;
  to = -1;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (tag1 === tag2) {
      if (molecule.getAtomCustomLabel(i) === tag1) {
        if (from === -1) {
          from = i;
        } else {
          to = i;
        }
      }
    } else {
      if (tag1 === molecule.getAtomCustomLabel(i)) {
        from = i;
      }
      if (tag2 === molecule.getAtomCustomLabel(i)) {
        to = i;
      }
    }
  }
  if (!fragment$1) fragment$1 = new OCL.Molecule(0, 0);
  const atoms = [];
  molecule.getPath(atoms, from, to, maxLength + 1);
  let min = 0;
  let max = 0;
  const atomMask = new Array(molecule.getAllAtoms()).fill(false);
  const atomList = new Array(molecule.getAllAtoms()).fill(-1);
  const hoses = [];
  for (let sphere = 0; sphere <= 2; sphere++) {
    if (max === 0) {
      for (const atom of atoms) {
        atomMask[atom] = true;
        atomList[max++] = atom;
      }
    } else {
      let newMax = max;
      for (let i = min; i < max; i++) {
        const atom = atomList[i];
        for (let j = 0; j < molecule.getAllConnAtoms(atom); j++) {
          const connAtom = molecule.getConnAtom(atom, j);
          if (!atomMask[connAtom]) {
            atomMask[connAtom] = true;
            atomList[newMax++] = connAtom;
          }
        }
      }
      min = max;
      max = newMax;
    }
    const atomMap = [];
    molecule.copyMoleculeByAtoms(fragment$1, atomMask, true, atomMap);
    makeRacemic(fragment$1);
    const oclID = fragment$1.getCanonizedIDCode(OCL.Molecule.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS);
    hoses.push({
      sphere,
      oclID
    });
  }
  return {
    atoms: originalAtoms,
    from: originalFrom,
    to: originalTo,
    torsion,
    hoses,
    length: originalAtoms.length - 1
  };
}

/**
 * Create a polymer from a unit, alpha and omega groups
 * A unit must contain a R1 and a R2
 * An alpha end group must contain a R1
 * An omega end group must contain a R2
 * @param {import('openchemlib').Molecule} unit - an instance of OCL.Molecule
 * @param {object} options
 * @param {number} [options.count=10] - number of units
 * @param {boolean} [options.markMonomer=false] - mark the different units of the polymer in the atom map
 * @param {import('openchemlib').Molecule} [options.alpha] - alpha end group, default is an hydrogen
 * @param {import('openchemlib').Molecule} [options.gamma] - omega end group, default is an hydrogen
 */
function createPolymer(unit, options = {}) {
  const {
    count = 10
  } = options;
  checkEntity(unit, 'unit');
  const {
    Molecule
  } = unit.getOCL();
  const {
    alpha,
    gamma
  } = getAlphaGamma(unit, options);
  checkEntity(alpha, 'alpha');
  checkEntity(gamma, 'gamma');
  const {
    r1AtomicNo,
    r2AtomicNo
  } = getR1R2AtomicNo(Molecule);
  const polymer = alpha.getCompactCopy();
  polymer.addMolecule(getUnit(unit, 1, options));
  addBond(polymer, r1AtomicNo, r1AtomicNo);
  for (let i = 0; i < count - 1; i++) {
    polymer.addMolecule(getUnit(unit, i + 2, options));
    addBond(polymer, r2AtomicNo, r1AtomicNo);
  }
  polymer.addMolecule(gamma);
  addBond(polymer, r2AtomicNo, r2AtomicNo);
  polymer.ensureHelperArrays(Molecule.cHelperNeighbours);
  // encoding directly in atomNapNo didn't work out because it was removed when deleting atoms
  for (let i = 0; i < polymer.getAtoms(); i++) {
    polymer.setAtomMapNo(i, (polymer.getAtomCustomLabel(i) || '').replace(/monomer_/, ''));
    polymer.setAtomCustomLabel(i, '');
  }
  return polymer;
}
function getUnit(unit, index, options) {
  const {
    markMonomer = false
  } = options;
  if (markMonomer) {
    unit = unit.getCompactCopy();
    unit.ensureHelperArrays(unit.getOCL().Molecule.cHelperNeighbours);
    for (let j = 0; j < unit.getAtoms(); j++) {
      unit.setAtomCustomLabel(j, `monomer_${index}`);
    }
  }
  return unit;
}
function addBond(molecule, firstAtomicNo, secondAtomicNo) {
  molecule.ensureHelperArrays(molecule.getOCL().Molecule.cHelperNeighbours);
  let i, j;
  loop: for (i = 0; i < molecule.getAtoms(); i++) {
    if (molecule.getAtomicNo(i) === firstAtomicNo) {
      for (j = i + 1; j < molecule.getAtoms(); j++) {
        if (molecule.getAtomicNo(j) === secondAtomicNo) {
          molecule.addBond(molecule.getConnAtom(i, 0), molecule.getConnAtom(j, 0), 1);
          break loop;
        }
      }
    }
  }
  molecule.deleteAtoms([i, j]);
}
function checkEntity(unit, kind) {
  let nbR1 = 1;
  let nbR2 = 1;
  switch (kind) {
    case 'unit':
      break;
    case 'alpha':
      nbR2 = 0;
      break;
    case 'gamma':
      nbR1 = 0;
      break;
    default:
      throw new Error('Unknown kind');
  }
  if (!unit) {
    throw new Error('unit is required');
  }
  const {
    Molecule
  } = unit.getOCL();
  // unit must contain ONE R1 and ONE R2
  const {
    r1AtomicNo,
    r2AtomicNo
  } = getR1R2AtomicNo(Molecule);
  let r1Count = 0;
  let r2Count = 0;
  for (let i = 0; i < unit.getAtoms(); i++) {
    if (unit.getAtomicNo(i) === r1AtomicNo) {
      r1Count++;
    }
    if (unit.getAtomicNo(i) === r2AtomicNo) {
      r2Count++;
    }
  }
  if (r1Count !== nbR1) {
    throw new Error(`${kind} must contain ${nbR1} R1`);
  }
  if (r2Count !== nbR2) {
    throw new Error(`${kind} must contain ${nbR2} R2`);
  }
}
function getAlphaGamma(unit, options) {
  let {
    alpha,
    gamma
  } = options;
  const {
    Molecule
  } = unit.getOCL();
  const {
    r1AtomicNo,
    r2AtomicNo
  } = getR1R2AtomicNo(Molecule);
  if (!alpha) {
    alpha = Molecule.fromSmiles('CC');
    alpha.setAtomicNo(0, r1AtomicNo);
    alpha.setAtomicNo(1, 1);
  }
  if (!gamma) {
    gamma = Molecule.fromSmiles('CC');
    gamma.setAtomicNo(0, r2AtomicNo);
    gamma.setAtomicNo(1, 1);
  }
  return {
    alpha,
    gamma
  };
}
function getR1R2AtomicNo(Molecule) {
  const r1AtomicNo = Molecule.getAtomicNoFromLabel('R1', Molecule.cPseudoAtomsRGroups);
  const r2AtomicNo = Molecule.getAtomicNoFromLabel('R2', Molecule.cPseudoAtomsRGroups);
  return {
    r1AtomicNo,
    r2AtomicNo
  };
}

var pl=class{copyMolecule(Z){let Bt=Z.getIDCodeAndCoordinates();navigator.clipboard.writeText(`${Bt.idCode} ${Bt.coordinates}`);}pasteMolecule(){return null;}};var fS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Yo=new Uint8Array(256);for(let w=0;w<fS.length;w++)Yo[fS.charCodeAt(w)]=w;function DS(w){let Z=w.length*.75,Bt=w.length,ot,Ft=0,p1,Rt,y1,i1;w.at(-1)==="="&&(Z--,w.at(-2)==="="&&Z--);let s1=new ArrayBuffer(Z),o1=new Uint8Array(s1);for(ot=0;ot<Bt;ot+=4)p1=Yo[w.charCodeAt(ot)],Rt=Yo[w.charCodeAt(ot+1)],y1=Yo[w.charCodeAt(ot+2)],i1=Yo[w.charCodeAt(ot+3)],o1[Ft++]=p1<<2|Rt>>4,o1[Ft++]=(Rt&15)<<4|y1>>2,o1[Ft++]=(y1&3)<<6|i1&63;return s1;}function Cl(w){return w.toString(16).padStart(2,"0");}var Tr=globalThis.devicePixelRatio||1;var G2=class{constructor(Z){this.ctx=Z,this.ctx.textAlign="left",this.ctx.textBaseline="top",this.currentFontSize=12,this.currentFont="12px sans-serif",this.ctx.font=this.currentFont,this.currentColor="#000000",this.currentLineWidth=1,this.canvasCache=new Map();}clearRect(Z,Bt,ot,Ft){this.ctx.clearRect(Z,Bt,ot,Ft);}getBackgroundRGB(){return 16777215;}getForegroundRGB(){return 0;}getSelectionBackgroundRGB(){return 12310268;}getLineWidth(){return this.currentLineWidth;}setRGB(Z){let Bt=Z>>>16&255,ot=Z>>>8&255,Ft=Z>>>0&255;this.currentColor=`#${Cl(Bt)}${Cl(ot)}${Cl(Ft)}`,this.ctx.fillStyle=this.currentColor,this.ctx.strokeStyle=this.currentColor;}setFont(Z,Bt,ot){this.currentFontSize=Z,this.currentFont=`${Bt?"bold":""} ${ot?"italic":""} ${Z}px sans-serif`,this.ctx.font=this.currentFont;}getFontSize(){return this.currentFontSize;}getBounds(Z){let Bt=this.ctx.measureText(Z);return {x:Bt.actualBoundingBoxLeft,y:Bt.actualBoundingBoxAscent,width:Bt.actualBoundingBoxRight,height:Bt.actualBoundingBoxAscent};}drawString(Z,Bt,ot){this.ctx.fillText(ot,Z,Bt);}drawCenteredString(Z,Bt,ot){this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.fillText(ot,Z,Bt),this.ctx.textAlign="left",this.ctx.textBaseline="top";}setLineWidth(Z){this.currentLineWidth=Z,this.ctx.lineWidth=Z;}fillRectangle(Z,Bt,ot,Ft){this.ctx.fillRect(Z,Bt,ot,Ft);}fillCircle(Z,Bt,ot){let Ft=ot/2;this.ctx.beginPath(),this.ctx.arc(Z+Ft,Bt+Ft,Ft,0,2*Math.PI),this.ctx.fill();}drawLine(Z,Bt,ot,Ft){this.ctx.beginPath(),this.ctx.moveTo(Z,Bt),this.ctx.lineTo(ot,Ft),this.ctx.stroke();}drawPolygon(Z){this.ctx.beginPath(),this.ctx.moveTo(Z.getX(0),Z.getY(0));for(let Bt=1;Bt<Z.getSize();Bt++)this.ctx.lineTo(Z.getX(Bt),Z.getY(Bt));this.ctx.stroke();}drawRectangle(Z,Bt,ot,Ft){this.ctx.strokeRect(Z,Bt,ot,Ft);}fillPolygon(Z){this.ctx.beginPath(),this.ctx.moveTo(Z.getX(0),Z.getY(0));for(let Bt=1;Bt<Z.getSize();Bt++)this.ctx.lineTo(Z.getX(Bt),Z.getY(Bt));this.ctx.fill();}drawImage(Z,Bt,ot,Ft,p1,Rt,y1,i1,s1){if(arguments.length!==9)throw new Error(`drawImage call with ${arguments.length} arguments unimplemented`);let o1=this.canvasCache.get(Z);if(!o1){o1=document.createElement("canvas");let A0=Z.imageData;o1.width=A0.width,o1.height=A0.height;let N0=o1.getContext("2d");N0.globalAlpha=0,N0.putImageData(A0,0,0),this.canvasCache.set(Z,o1);}this.ctx.drawImage(o1,Bt,ot,Ft,p1,Rt,y1,i1,s1);}isDarkBackground(){return  false;}};var Hl=class{constructor(Z,Bt){this.canvasElement=Z,this.changeListener=Bt,this.drawContext=new G2(this.canvasElement.getContext("2d"));}getBackgroundRGB(){return 16777215;}getCanvasWidth(){return this.canvasElement.width;}getCanvasHeight(){return this.canvasElement.height;}getDrawContext(){return this.drawContext;}onChange(Z,Bt){this.changeListener?.({what:Z,isUserEvent:Bt});}getClipboardHandler(){return new pl();}};var HPt=`
/* We can customize editor styles here. */
`,Nc;function uS(){if(Nc)return Nc;let w=new CSSStyleSheet();return w.replaceSync(HPt),Nc=w,w;}function Oc(w,Z,Bt){let ot=-1;function Ft(Rt,y1,i1=0){y1.button>0||Z.fireMouseEvent(Rt,y1.button+1,i1,Math.round(y1.offsetX*Tr),Math.round(y1.offsetY*Tr),y1.shiftKey,y1.ctrlKey,y1.altKey,y1.button===2);}w.addEventListener("pointerdown",Rt=>{ot===-1&&(ot=Rt.pointerId,Ft(Bt.MOUSE_EVENT_PRESSED,Rt));});function p1(Rt){ot===Rt.pointerId&&(ot=-1,Ft(Bt.MOUSE_EVENT_RELEASED,Rt));}return document.addEventListener("pointerup",p1),w.addEventListener("click",Rt=>{Ft(Bt.MOUSE_EVENT_CLICKED,Rt,Rt.detail);}),w.addEventListener("pointerenter",Rt=>{Ft(Bt.MOUSE_EVENT_ENTERED,Rt);}),w.addEventListener("pointerleave",Rt=>{Ft(Bt.MOUSE_EVENT_EXITED,Rt);}),w.addEventListener("pointermove",Rt=>{ot!==-1?ot===Rt.pointerId&&Ft(Bt.MOUSE_EVENT_DRAGGED,Rt):Ft(Bt.MOUSE_EVENT_MOVED,Rt);}),()=>{document.removeEventListener("pointerup",p1);};}function QS(w,Z,Bt,ot,Ft){let p1=typeof navigator<"u"&&navigator.platform==="MacIntel",Rt=i1=>p1&&i1.metaKey||!p1&&i1.ctrlKey;function y1(i1,s1){let o1=MPt(s1,ot);o1!==null&&Bt.fireKeyEvent(i1,o1,s1.altKey,s1.ctrlKey,s1.shiftKey,Rt(s1));}Z.addEventListener("keydown",i1=>{Rt(i1)&&i1.key==="c"||Rt(i1)&&i1.key==="v"||y1(ot.KEY_EVENT_PRESSED,i1);}),Z.addEventListener("keyup",i1=>{y1(ot.KEY_EVENT_RELEASED,i1);}),w.addEventListener("paste",i1=>{let s1=i1.clipboardData.getData("text"),o1=Ft.fromText(s1);o1&&o1.getAllAtoms()>0&&Bt.addPastedOrDropped(o1);});}function MPt(w,Z){switch(w.key){case "Control":return Z.KEY_CTRL;case "Alt":return Z.KEY_ALT;case "Shift":return Z.KEY_SHIFT;case "Delete":case "Backspace":return Z.KEY_DELETE;case "F1":return Z.KEY_HELP;case "Escape":return Z.KEY_ESCAPE;case "Enter":return Z.KEY_ENTER;default:return w.key.length===1?w.key.codePointAt(0):null;}}var Ml=class{constructor(Z){this.canvasElement=Z,this.drawContext=new G2(this.canvasElement.getContext("2d"));}setDimensions(Z,Bt){this.canvasElement.width=Z,this.canvasElement.style.width=`${Z/Tr}px`,this.canvasElement.height=Bt,this.canvasElement.style.height=`${Bt/Tr}px`;}getDrawContext(){return this.drawContext;}getBackgroundRGB(){return 16777215;}getForegroundRGB(){return 0;}};var oS={"chain.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB2UlEQVR4XmNgGJmAkYGJgQULZGXAhCygIGICQg4GdjTIARRDh5xAEQwNKYzXeK4xY1Oez3SNfz8TmoYUxq+6m9bfqLjDI4tmfhzLff9VR17FoWhwZXpkOm2v1C+79+cbD4gga8lneuhrfdv6/+ItSBpSGB+bTDos9IfzP9N/k3cX6+7wwByWz/TWR/E1w/+kO+8j4BpSGL9rz9wh+Efs14TF3heY/tu/vlF2hxtkSxzLY2/FVyz/om69jT0G8kM6QyNDM9MT41nbZX9y/J/ct1/4iU7aIYb/9q8uVx0UbmF64mV7i/1/0s0HSVM5dRgYrjB84/8U+bh80iH+34z/17Xc51ZhUGX8qpkK1GL6+krltyClVyz/c+69C57CwQsK1v+Sl9rdvgr8Z/7P9WvKxNs8fsD44ABqeWLkdYHhv9sL8e+s/xJuv4k4yajEAI6H/+6llxn+g6DUh75gSXhgugEdmXIUJB5150HSFA59oHKIBteGSyBhpv+q9wsVQaZDICdDKuNnneRjCY9exU3l5AUrh2gQelAQ/8Tgve2Tb25NjIgYBkmnMl5Sumi+hQmiGKqhgaGB57Pts4Bfek0sjkjmIxQhs8BpiZFBh0EPCLGlTnQxcGod8gAAp9es6fCW8G8AAAAASUVORK5CYII=)","eraser.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAC1UlEQVR4XnWU309SYRjHn8OYTTM3zTmjC8NFFBR10dJu27wx11VX/QNdeGebTsvua93mRbUmLhURzYgKRZRJUJLibLPpRDCZC3/b1AMc4Tw97+EAR2e8FzD4fr7v53nPOQDCDkT/s2KAKiwROOXvFP8JLnDDGHhgArzgg28wCQGYgiDMw6E+1pY2rsECLEIIIrAC1O2CV/AWzPAOLGCFQbDDJ/hC+CQktU5bXWJoMGlaVv0iPAy/GeCmeBf0QB/YYECKO6kkzAl6Z/+t+BmsSJotgmmN4lFYZcA4tfdQez+1D8Fnio+S1oHe5TAcFuJHVBNit4nGLYrHGOCBbin+ntodMEzxKMkMWy8LpfgSEUN4niC7TTBtqzYYMCG3Z9xHadgD/bC1hi+U4uw1TkhFsqs3adpngJdGHSAZB8VHYAZ4vdt+RSjED3KcvYWYWMJuFY0E+MjdQe5MZgYE7YhFL8soCJzDU1iKwdcE+HOjBoG/NNJbq5DJI40EPNiIPCLgO/Wzk4lS3D2kPyaTQe5hETZsLDfxRRQLkLuLDjJd7u8wJs/mRs22J7CR4re3Qq3xIpENPUUHG+biuqX2UVsVX41epTp9ZjINm0ttqTIEZECQboK0ztd/Ya951t+nRi2GFYgksxluSlO7BMTYLVblMVcmOOTEZ9N+i4YvkREmAySz2JaNE4CqtM5jvrZHcbbE5lmLU8NrJTEmc3drsT1VlmmXdsCbgTdSu7wKUi2zPqsaq7GWZCjeJBZnwxlAN9dRyecBtsvzH/4+DV+MNdsLT4/GJSU0jHde3T2KtMxYnA8X5tvT5cp2eehDLnVxrPPoLgWpx4Hd+8Lp/Zx7boYoe/g40eDtViIF6Se+xPX8qPl96DqECImrRMOY2fg3e1atwd16UX1cR75wEXr4VmGdxL52atbpX2HnxfTenfiJcelKr9CjvQp/IMWJ57AO62ndOKk7890/iSWBU4XaZc0AAAAASUVORK5CYII=)","fist.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAABj0lEQVR4Xu2S3yuDYRTHz7IZsfdCUrYLG4VCpJV6d0mS/A1zg79ArRArP4q5s4ulVousFCn/gX/g5WK7wkZMzIXMxjZ793XeMdn7vpM/wDn1PD1P53PO95znIfq3rwmYyU5tZPr7PJYoTjGaZ8xB1t+xZQqyP60iAEeWsThFGKpqbiE9CRECrnCHLnTAj17QbLV4E3mFXALbcOAGSXRiClnMgZLkZR/QYg0UEpDBDuxI4IHzT6OADdRiEK2gE12gBWmWE8Yj7weQIGOT650zaoiqAVtjDx2KeEWR8xZ4lUt+jEWkWJxJBYgkWa7NLy5WXWl5FilzhfoKwEAzzkwYI3DhTQUoVYpYR10FYCTPaDbJ2heQUwGfR0kFELmt6Utu9Jmz6dmFpmmR7v141w1XBiCBNFNacyKmCxT59kgHGBIQ4g7UkpRzESuwaCoQ+YZxqwGUGaUwrvvStqazLeRLj/bTZUTQB5rQfg1jjac9e8qAzFgZKbDMALpj1Kz3Z0WKjiGIfex++x6H98PgK4d/APiDpdwStyBoAAAAAElFTkSuQmCC)","hand.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB50lEQVR4Xq2TwUsUcRzF3yy52TboHiKVLBCElb1479g5kgKPCkKs4ME6eAiiP0GELileStew6NLJq5Sihw6BG2VlECymB2PVXd10Zl7vN+OuOjNLl35fZhiY+fzee9/vb4D/tAow9fafu90BsqrvnXzNBwSTTBAZ2I3BkSbeYBMzLHNRn9/nEFHCvYZAutDHDfb5wDvanOVnoozBhkBzIUeHOQEHfO8DW0QV0xjC3VjoUh2onAC/ZPAme4giemMQo+BKoaeusCmdSa41MmYL8HxLgUKe27q/UKLzSSxcwUOMwk7VgTKX6sBz7oeA61hJHSUP8ST1raZQA7Z8hb0QkO1WE+d5lZdlx+UbTsjSR95i0bc0E7GUzfIHdziouRqFPzwU5ii4IzOP+SFiqe3i8jyP1A1bgKPyVGa5/M2S7iaDdWZ8KUwNe1Uus923FHx8ujwZPA9YGO48+CK/Ywp4un8N8SIZgG78fCTvFV1n9w+ePe6GFMzMJ7u4zuOInQDYYaKcDB3Ba63FGQWPLk8mt2MAWKv96kk0sKM2TBFfkQ4fvkx6fyHSH9NalwO0PkXPaktirt8rhRpqelblbV6IASzkmivP9NrEdE9AM/FXbCPG4v+6p+3VcZ2ql5zTZSqv+XcQ6+gKgL8a/RiIJPdySgAAAABJRU5ErkJggg==)","handPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACAUlEQVR4Xq2Tz0sUcRjGn1lytW2wPUQamSAIK3vp7kk6i1LgMUGIFTqUBw9BiPsPhNAlpUtuKhpdOnVUKqlDh6CNsh+CsJQdjC13ddOZeXq+M7uTzu7SpXmZLwvzfr7P8/5Y4D89eZh48s/bhoC04nMXH/EmwThjRAp2c/B6C7vZwhRLXFP6NY4RRVxpCiTzw/zCYR94RpsP+Z4oYbQp0JbP0GFGwB6f+8A2UcF9jOFyQ+hkCJSrwDcZ7GcfUcDFBohRcKXQFyp8lc4s3zYzZgvwfEuBwgK/65xXRccrsXAGE7gBOxECJb4IgQfcjQAX8DJxEN/HVOJTTaEGbPsKvyJAuldNXOZZnpIdl485I0tveIkF31KuzlI6zU3ucFRzNQq/uS/MUeGOzNzm6zpLHa3ryzxQN2wBjsIT4JE6f7Co09RgHRlfAnPjXoXr7PQtmdSsNqn2eDJ4HLAw3rX3QX4nVaC534sA0bYCvdi6Je9lveb+mkLw2+PPiIKZ+WwPN3ioj9MyczQMsMNYKR5ZwfOnCzkVTq7KTpYDgrKCp5XuyGw9AOvViHoSmPhryaS7nCM+IhldvlRy92nYmaBLQWtdXqX1rn5X22OLI16xihhjBjA9q3CQJxoAFjJt5Xv6bBLdKmgmvsIOYrLxv+5uZ+WOtmqJi3pNLGj+54gN9ATAH0reBFwT+FQbAAAAAElFTkSuQmCC)","invisible.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACjUlEQVR4XnWTS09TURSF178wMUExvhIfiY+0Q6MThwwEHYk6MODAqHHgzD9gHDgWYhQBAUWMqY/SogSkCGJJNAiFUiyV2qqURkFa7cPvnJZiBXMH7Tl3rbXX2ntf5bWgyH+emPI8v8reAn8nj3r0Qr3qU78GNKghDWtEfk3ot2LKKq6AphTUjGYF26ObuqU7alabOvRQj/VEz6APKS23jvI/rY/6AD2ksCH0AG9Sq9r1QJ0W/hyREFbcOqQNcqiL/3FuIpozhJeot6J+H/VHegrci60lSA7t0VVtlRNqTvPAY4bQqxYL70LdxSsvd2l164B2qVHLVN4L0U2VhL4aQl9RveDdS9gl4IcBNWpRUShNUJxUT3OG0E/UTo4u4N0a1U9SHdRu3QOQIOw8N+0Yc/A2ZwgDeHfh3ZgZpbBH+zDTAPy7Jok6qU/K0Jht2k91CL5SVD9aHh1BvYHiCxYe1nV9w9h5bVcdk4DwGn3TmYg1Y9Rb8P2FQYVQbOM+qjPaDDwMguMw3j00Mst0narUDaUgBICPI5VgAhe5rUVguZBhhMaGOEzrrU6pQpfpdoqeB8k2hvoF7UB9mhxmsyD4WYIs0c/ifEKnoVxSEsptQke5rdQ5vGdRt4SYXTEf2lWq1l1s1GojlDiAgpmTLN4KHEKegw+NKvsco8oglApd0XtoOzEzhZmCuq2QJ7RRX3lqmO84xjaxGltUj/dVcJEwhuIqwVRptsZMZwL/wG2FPIHryijVVBnUNdJlS1ZKlmJEzkApr1JDj5KsyeJaQsR+fDlW8G/KCWyl1tgpziEIxczwVcnYcT6p5LpwO7gZ5jzH7mT0hmbW0+IO/UBixXX5L4RZlmpOn8u6vT7Y3P4BKLGmkBK1qvgAAAAASUVORK5CYII=)","lasso.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADg0lEQVR4Xk2UXWxTZRjHn7XYfWhh4DKlIFLRdlucImbGr2gEwYwsAjGRXXihRlTOFrOoF0RcdWwhEVnQdgOmbgzoliEhAZJlvZwdMQg6No/U2IYOWVrK1q1d19q1Pef8fU7bsy3/nIvznv/ved/n47xEZKDivNpK8RoE6XC4J9gX7A/2hXukwxCwta1UcxhUu4PcLFHnqZnaf+/E0FhTqDpiiaqqjjSFhsbvnZja76kRdarLQRzbTSjAuozgczaHVoJYhShX1krlSmH2bSWaQz5nRsA6MJQDrHMtx0Y3y4QS7Eo0eTpG3K5rP7tdHSNNnl2JNQxtlo+NzrXAmgXEDcnWA/5ihbAtOeyKtKf3wmIvs6+2l8GS3hv51u3aliQUKwf8yVZxA2GNIvSIBCNaJmPt/jrR6KZfyL6omQdQF2tvmTTyPt2iIhDq/f1mth/1LtjCVTa9QAIN8dEl8tK8mgJBj6oF21GvEWb4+wlft08Sds+FHbPmDl2A/mOl2Ran7SQylkV0MIcdu+cI7J3utUb0aL2q1DZSlDiRvObpKdpCZymVf1dqW6/qYY1QsM8SXYULw3jcq8XLWlSghOrJpYUwXxpeDUuUZn6smNWheUx6l7uxGD8HrKXz9A2doQidJnnPoWt6VEQItm4/4aX0LSd2wLCEqMB6+otmqYt8K1LVd3+oTRA6/yXUTXe+mCHsjE048QbWw8R6EHoNAMlGbA+d/PSOAZXKZC9tKbr19m+DFZztc/E/B2/3jp//x5logyC/8oyBd9DBIjeODj4/X8hTcO4PZZ/a6RKpYfBKWb6CuTQ+i41elD5A5cLHga7jPjOvWDIDv6e/EE25WXo49N0mPmF21OR3wm/FTahMf3/dNtLoe4GPa1LeC9y4xGUxacNnvHnykfTG+IWxJzOlyhnPzHH7bUJRvgINiSuu+CE8i2Jw8NwORq/jidRDktMz4COU46twnVyEx+brwxfFQDc+weu4P0drQFHq/Z+uP73UZq7vh8FAV6oeL2OTZl4OFMCUaZw4NXDjyNTBWENylaLDwXFpH+5Tm5mku4sN1XZQFwrkR+OvyjvxpvT5kTuEHcmpDh5i/qIQ/1l5LQd4RifUOS1A1XTnRq76r5dhzRlTPBxx7vlSDstmiA0r8NGXUcLZm6jJARkGZvnJAtqtod4JmhJbT/9tiZ4bS9QsX83dGv8DIrFVpnd+f4UAAAAASUVORK5CYII=)","lassoPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADiklEQVR4XlVUbWxTVRh+12K3oYWBy9SCSAHbbXGRaGb8SoygmJFFICayH/5AIyrdYhb1BxFXHWswQRa03WVM3RzYjaEhYcZl/Tk6QhB0bN62xjV0yNJStm7tutbetvfex3N7e3XmyUnuOXme9+O8zz1EZKDyIhwVeBE28VisLzIQGYwMxPrEY7Bhh6NCYxgUuou8DLwuUD936G736GRrtC5uSSioi7dGR6fuds8dCtTzOoXlIhbbSyjBhrwt6G6LrgExlKJKfkiskksLuzVoiwbdeRs2gIlUgXWp/eTEdomwGnvSrYGuca/n2g9eT9d4a2BPej0TbZdOTiy1w1oQ8JsyHYdD5TJhZ2bME+/M7YfFWelc56yEJbc//oXXszNDKJcPhzId/CbCetnWxxOMaJ9NdoYaeaOXLpHg8HOCw0lOWrgPjcnO9lkjy9PLyzZCU2jQzOgnpgV7rNaut5GNRsnPEXzcstICQY9awX5i2ggzQoOEzzpnCXuXYq5Fc5cuTH8z5IoCnkRVooM55tq7RGDc+X5rXI+Oq3JDCyVILhTj54bPEYbPKV+CoyAhuaHjqh7WOEUGLIm1uDCGbdOFeEoxK+Hjilvz8Ng6WBK08E31og5tk+IBNg3GFBw+zlfMoHwJjrMUpzMk7Tt6TY/qOMHeGyI8l7vpxi4YtOBq0xvJR4vUQ8FV2bo7XzekCdxfhMZ57tk8YXdyxo1XsBEmhvv93ZoAJBnxcvT0B7cNqJFn++mJspuv/zJSzcb2VOr3kVv9Uz/+6U47BI/vZ+FzlkEHi9QyMfL0cilzwfnf5IPKpFeLzSOXK4s3qDb8YXLiovg2aoT3wj2ngmZ2YskP/Zr7mDepXnow+uVWVmHBatIbsddSJtTkvrpuH28JPsPKNclvhm8Ms2sxaeYz+k8/nNucujD5WL5CPhtYOOW8RSgr3kBz+rIndRRPohwsuJrBOO16NPuA6A4MBQlV+DTWKJVhy3JT7CIf7sX7eAn3qmpNUJZ969vrj7PGNRjwTiTck23C89iqkVcKSmDKt8x8N3Tj+NyRZHNmrazDkSnxIO5RhpmhO/9G0jIoByXSI6kXpN14Vfzo+G3CrsxcFzOx4iJif1YRKwXMozNssZi189xmdutXfoJVJWaZOVJs5v/18H+/rcK7nyQI3/tRrwryTLDIVkGgvRrKm6AhvePMH5bE+cl0/cpT9dX4B08ibwJFFp9KAAAAAElFTkSuQmCC)","pointingHand.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADe0lEQVR4Xq2V+yvrYRzHnWwuaaUst9mY21iyHcVySghxJJLLDy7L2Y9S4geHThx+5ISc0vCDf0AS6fj1rPxkRJ2dJjvtjNolt1y+NMY+5/N5yonZbIunvm179nyf1/N+fy5PSMgLo6OjwxAWFgaxsbHQ2NhonJiYELy0Pqj/CgoKPqSmpjoGBgZgfHwciouLna2tre+D2uSlxXK5XJ2UlMTt7e2B2WyGjIwMiImJ+fhmADy9OjMzk7PZbHB0dAT4HXp6en6+GSA5OVktk8k4u90Ox8fHTEF3d/fvNwNIpVKm4AFACgYHB//Mzc0pUZ3o1SBPgEKhgKysLFd5ebkdlekTExMLUKUU56VVVVVhQQM9AdnZ2dDe3g5bW1tQU1MDKSkpNrTtr0qlsvT3939/NSA9PR2mp6fh7u4OhoaGWG2gXdDZ2Qnx8fFWBH3CR4P1IvMFe4feqoqKir7k5OQoSQEF2Wq1siwiwMzMDLjdbhgeHoa8vDw4OztjiiIiIqCyshLq6uoA39mRSCSKZ5DQ0FAxnuQXeutG+Yb8/Hwt1gIDHB4eMsDs7Czc399TsAFPCxzHwe7uLojFYlhdXQWDwQBKpZLDfdTeVMhra2vBaDRCV1cX2zAtLQ0IcHp6yuYWFxeZRfPz89DX18cAVIgYbNje3oaTkxPAJODwsN4BLS0tTPbGxgagTBCJRECFdnt7C+fn53B9fc0UXF1dweXlJbhcLnA4HAxmsVhYvVRUVHA8Hu85IDIyUl5SUgImk4mduKmp6T+ANiXvHz+Ag+ZJEYHpkxTgHt4VCIVCCTY009TUFNzc3MDk5CTlPRwcHLCN/A2CE6C0tNQ7IDw8nI8Z8LWhoeGWFGxubkJvby+THSyAz+d7jUEIpp46ISGB0+l0zHeKh9PpDAhACimd0QUuKirKO4BSC3uOTqPRwMXFBQvig/+BWER9C+8RLjo62jcAPayhvqPX6xmAgkf++hu0huKF2cdhivsGjIyMCAsLC81jY2PMHgIEMgiwvr4OcXFxHNaCbwDZ1NbW9q2srAz29/fZ6QOB0LrR0VHAdPd/ZwgEAhF6uaPVap/EwbMOHpTRPGUbKgfsBv5vPawJXn19/WfsR04qPMoozzg8hlEirK2tMUBzc3Pg93Zubq6uurqa9aCVlZUnz/LyMvu9tLQECwsLgPVD1f/Ds8n9AyubuM4FiwqZAAAAAElFTkSuQmCC)","rect.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACc0lEQVR4Xo2UT0hUURTGf7uipMy8GbUwigx0WbiwpCgQKmgl1CYj3Plahtg/eguFUIoamNxUCEFCGlIgEhSORmQRNeVMSkhpWcSU1KSOQ9i8vvfmpiMZOB8Xzjv3fPPd8+dertPHQICX/OAVnTRTz1GOaNXL7pQvSdTG9KHwCVJMyzlMFw1UsJFC8lmtVSi7Qr4u7SUVk1KsmCkyZtJETchUmTKh3NSYk6ZBq0a276nSXtRMGc+kfMIkiRY3shQkWiZ9wjjxMN5SEAuPQ5qegBALe07a+eiMCj9lxZ0ZJ+N483A9oQf6qbWED6rITW4IcQGaGJuT/Y0f7rm1cJliS+jnLjNkAviEDXTwVbZ/2gwjobLESKgY6iiwhI5gyw/N/T2zKtljF0CN6p39SAZbCVyhTpwVLKOUM8wGmn4lEy35yGH+Jp1TKF9nrRp3mzbOMcp9m0MhtLPrvwRDr/6/mwda6cZ4ON24Hd5z1RISfGNIAdmDnWabtHtlzxLjtY1pgucM2o8rPOUhj+UZY0qDWGEJad5y0ca8mO90LLyKA+yjkirN6QWeaO0kwjvucZw8m0MwGinLzmelUi1nP3vYQrUCH3GNY5Qp+UpbpelcQjNnWcchVWRQhc2jiPWsYTl7aZRetvTBtP5VaJW7la0c5g4npFbCbk5xSzlNKPGRUKk6vYCwScIH2ax2lagH1VJ6wxdbNVUumKUFhGFNaMxiyEk4v3Jn1VmE4LluBK804W/5zdDA/+OxCtk58dzeNjcS7vYJ/v1bzGMJnm7rPDLmkzlvdph2E5/zRs13M2BS/p3OvhoLkVSBi7jE5zn/VPCy+K/GH86K+gV5WsL6AAAAAElFTkSuQmCC)","rectPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACi0lEQVR4Xo2UT0hUQRzHP6c2KmrTnYoKjCAP+45FB0uKAqECT0FdMsKbr2OIUdE76EUpamHzUmoEGWmIgUnQn9UOWURp7ksJKSuLeCW1qesStq/fvB11lzr4vgzM/Ob3md+b3/xmuEYfA4Fe8ZMhOmmklmMclVYr/U6xpRg0Pn2I+yRpZsQ4Shd1lLGJCGHWSItIv0xsXTKXEp+0+AqZJqum1KCKqQpliXaqKnVK1Umrkr62VMjcoJpWvkprYAqvyUksRV7TlAYmcOP4S1EyPgEZegMgGfftjP3JHhf9kp5rz9pZ21+U44t6oZ9qA3yUjNygReSKoIEPC2H/oN19pxouUWKAfrqZJRtIAxvp4Jv09d9mGYtZ3lisBGooMkBHMKVd5QsRlSbfcxMl99tFUCX5zg1SwZSHI6qJ4q+wNHWGuSCmzqTXFEYMan7TeYlyBSi2ItymjXOMc9/sIQLt7C4AMiE36ka7K/HDlUXR1uh0qIcH9JCpd+OZ+u3wnisG8PjOCEOydr6S1hxJXhufBnjBsBlc5hkPeRS6bt2zbuUiWK1WJpThLReMz8vFk07GV3OQ/ZRTIXWqN11t7SLBO+5yglVmD0FppA0dZqWkcScH2MtmAVqsJ1zlOJZUbbnJ0kw+0MhZ1lEpGRnGCS2zVGgDa1nOPup5ahYNqnU+QrOYm9nGEe5wUqKVsofT3JRdTspZjMWictIFwBYJfIitcsClFHNYIr3hq7iapAW1VACMSoUmjUZsz/6dX6t2rvgKAN9xEvhRT0/oZaXg/7EYIFcnvvO4zUnEezSg79//LAbw5bYuKqs+q/Nqh2pX7oJ1UP1QAyqt73Tu1ShUShK8not8WbBPBy+LfjX+AjC0Avv8MQHTAAAAAElFTkSuQmCC)","zoom.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACiUlEQVR4XpVTTUgUYRh+nJWCxUsNevBiYGm7UjAnFyoI9ORKSxt4a71Ei9I10EPg0VO7hOE1ikQSofXiYv6QRX9bkTAjbbM/B2mz8id3Z2f/ZvbtndR0NYn9XuYbPuZ55n3f730efMQCZjCLOX4/xyJe4BXe4C3e4QNi0JDCBu8JRPkURxIMm8BjjOMJJvEUU8jadUn36D79Zs5X8JhSyb6AX/iBzxxfLMIMwx/gIcYwXRMTNa86Mhrp23QXOwx3sW9zNKKOaF5NzAlrnCWBFXAx43jE8PeC0b4U9KstJmh/tJh+dSlotJeEDYZ/Bea5GAtudoZDkm5jcCP1poejd+XhaG+6kc82kvRwiDpLwha+A1RX8K4OaDfCU038UTQGk/GA2qO4lDbFpfbEA4NJ0QA1UThktOeFDBPOLd+/qF9PtOZBDi30LNU91FBfgz+rvmaoIdUVmnZo4CxLQU3cYsLJ7G1HebvqC7nIhHJ6G7y7mmsNKTQtGjbyq5p3Dnzv2au31i24QK35cEhpriQAzbUp92AS1GKqI7odL5F1jM9bzV7KzoyVLvfbDhKAoYZ4wGp/NFKU8Br6scS9VrM7Fw8a56/8A271ovb0pkF9m2UPy2AWGd/k4sYdpal/7+fH4cTxvaPsGo6C3EXysWYWQafIR2cqSnFyV237CM6ADOowyM8Si+xkkCsztB2RIYZCFT2QB1mYVdwSSSza/N85nD1qDl27cyA76EQ1k6bqtESiRagrXFsdyBxQq+ySnfIhtbJ6gHX2bBprQvmAHwKH/GDBmRCDyibP4Od/HLcNZ0KcCSnkmLQsKEd4mmvfgTMhybGCb0zI4RPb1bSbUtnDUvHz4yGJ7BUWx2+5Iu7Rc33AhQAAAABJRU5ErkJggg==)"};var Gc=Object.create(null),US=3/4,Vl=class{constructor(Z){this.HOTSPOT_32=Z.HOTSPOT_32,this.IMAGE_NAME_32=Z.IMAGE_NAME_32,this.cPointerCursor=Z.cPointerCursor,this.cTextCursor=Z.cTextCursor;}getCursor(Z){if(Gc[Z])return Gc[Z];if(this.IMAGE_NAME_32[Z])return this.buildCursor(Z);switch(Z){case this.cPointerCursor:return "default";case this.cTextCursor:return "text";default:throw new Error(`Unknown cursor: ${Z}`);}}buildCursor(Z){let Bt=this.IMAGE_NAME_32[Z],Ft=`${oS[Bt]} ${this.HOTSPOT_32[Z*2]*US} ${this.HOTSPOT_32[Z*2+1]*US}, default`;return Gc[Z]=Ft,Ft;}};var El=class{constructor(Z,Bt){this.title=Z,this.rootElement=Bt,this.elements=[],this.dialogElement=null;}setLayout(Z,Bt){this.hLayout=LS(Z),this.vLayout=`${LS(Bt)} auto`;}add(Z,Bt,ot,Ft,p1){this.elements.push({component:Z,x:Bt,y:ot,x2:Ft,y2:p1});}createTextField(Z,Bt){return new zc(Z,Bt);}createLabel(Z){return new Jc(Z);}createComboBox(){return new Yc();}createCheckBox(Z){return new Kc(Z);}setEventConsumer(Z){this.consumer=Z;}showMessage(Z){window.alert(Z);}showDialog(Z){let Bt=document.createElement("dialog"),ot=this.rootElement.getBoundingClientRect();Object.assign(Bt.style,{position:"absolute",marginBlock:0,left:`${ot.left}px`,right:`${document.body.parentElement.clientWidth-ot.right}px`,top:`${this.rootElement.offsetTop+30}px`}),this.dialogElement=Bt,this.rootElement.getRootNode().append(Bt);let Ft=document.createElement("form");Ft.style.display="grid",Ft.style.gridTemplateColumns=this.hLayout,Ft.style.gridTemplateRows=this.vLayout,Ft.addEventListener("submit",i1=>{i1.preventDefault(),this.consumer.fireOk(),Z();}),Bt.append(Ft);for(let{component:i1,x:s1,y:o1,x2:A0,y2:N0}of this.elements){let M0=document.createElement("div");A0===void 0?(M0.style.gridColumn=`${s1+1} / ${s1+2}`,M0.style.gridRow=`${o1+1} / ${o1+2}`):(M0.style.gridColumn=`${s1+1} / ${A0+2}`,M0.style.gridRow=`${o1+1} / ${N0+2}`),M0.append(i1.getElement()),Ft.append(M0);}let p1=document.createElement("div");Object.assign(p1.style,{display:"flex",flexDirection:"row-reverse",gap:"15px",gridColumn:"1 / -1",gridRow:"-1"}),Ft.append(p1);let Rt=document.createElement("button");Rt.type="submit",Rt.textContent="OK",p1.append(Rt);let y1=document.createElement("button");y1.type="button",y1.textContent="Cancel",y1.addEventListener("click",()=>{this.consumer.fireCancel(),Z();}),p1.append(y1),Bt.showModal(),Bt.addEventListener("cancel",()=>{this.consumer.fireCancel(),Z();});}disposeDialog(){this.dialogElement!==null&&(this.dialogElement.remove(),this.dialogElement=null);}},J2=class{setEventHandler(Z){this.eventHandler=Z;}fireEvent(Z,Bt){this.eventHandler(Z,Bt);}},Jc=class extends J2{constructor(Z){super(),this.element=document.createElement("label"),this.setText(Z);}setText(Z){this.element.textContent=Z;}getElement(){return this.element;}},zc=class extends J2{constructor(){super(),this.element=document.createElement("input"),this.element.type="text";}setText(Z){this.element.value=Z;}getText(){return this.element.value;}getElement(){return this.element;}},Yc=class extends J2{constructor(){super(),this.element=document.createElement("select"),this.element.addEventListener("change",()=>{this.fireEvent(2,this.element.selectedIndex);});}setEnabled(Z){this.element.disabled=!Z;}addItem(Z){let Bt=document.createElement("option");Bt.textContent=Z,this.element.append(Bt);}getSelectedIndex(){return this.element.selectedIndex;}setSelectedIndex(Z){this.element.selectedIndex=Z;}setSelectedItem(Z){let Bt=this.element.options;for(let ot=0;ot<Bt.length;ot++)Bt[ot].textContent===Z&&(this.element.selectedIndex=ot);}getSelectedItem(){return this.element.options[this.element.selectedIndex].textContent;}removeAllItems(){this.element.innerHTML="";}setEditable(){}getElement(){return this.element;}},Kc=class extends J2{constructor(Z){super();let Bt=document.createElement("label"),ot=document.createElement("input");ot.type="checkbox",ot.addEventListener("change",()=>{this.fireEvent(3,ot.checked?1:0);}),Bt.append(ot),Bt.append(Z),this.element=Bt,this.checkBox=ot;}setEnabled(Z){this.checkBox.disabled=!Z;}isSelected(){return this.checkBox.checked;}setSelected(Z){this.checkBox.checked=Z;}getElement(){return this.element;}};function LS(w){return w.map(Z=>Z>0?`${Z}px`:"auto").join(" ");}var Ko=class{constructor(Z){this.imageData=Z,this.dataView=new DataView(Z.data.buffer);}getWidth(){return this.imageData.width;}getHeight(){return this.imageData.height;}getRGB(Z,Bt){let ot=this.dataView.getInt32((Bt*this.imageData.width+Z)*4,false);return (ot&255)<<24|ot>>>8;}setRGB(Z,Bt,ot){let Ft=ot>>>24&255,p1=ot<<8|Ft;this.dataView.setInt32((Bt*this.imageData.width+Z)*4,p1,false);}toDataURL(){let Z=document.createElement("canvas"),Bt=Z.getContext("2d");return Z.width=this.imageData.width,Z.height=this.imageData.height,Bt.putImageData(this.imageData,0,0),Z.toDataURL("image/png");}};var Sl=class{constructor(Z,Bt,ot){this.canvasElement=Z,this.dialogRoot=Bt,this.JavaEditorArea=ot;}register(Z){this.javaUiHelper=Z,this.cursorManager=new Vl(this.JavaEditorArea,Z);}grabFocus(){this.canvasElement.focus({preventScroll:true});}setCursor(Z){this.canvasElement.style.cursor=this.cursorManager.getCursor(Z);}showHelpDialog(){}createImage(Z,Bt){let ot=new ImageData(Z,Bt);return new Ko(ot);}createImageFromBase64(Z,Bt,ot){ot=ot.replaceAll(/%\d+%/g,y1=>"A".repeat(Number(y1.slice(1,-1))));let Ft=DS(ot),p1=new Uint8ClampedArray(Ft),Rt=new ImageData(p1,Z,Bt);return new Ko(Rt);}createDialog(Z){return new El(Z,this.dialogRoot);}runLater(Z){typeof requestAnimationFrame=="function"?requestAnimationFrame(Z):typeof setImmediate=="function"?setImmediate(Z):setTimeout(Z,0);}};function sS(w,Z,Bt,ot,Ft,p1,Rt,y1){let{readOnly:i1=false,initialMode:s1="molecule",initialFragment:o1=false}=Z,A0=document.createElement("div");A0.dataset.openchemlibCanvasEditor="true",Object.assign(A0.style,{width:"100%",height:"100%",display:"flex",flexDirection:"row",alignItems:"start",backgroundColor:"white",touchAction:"none",userSelect:"none",webkitUserSelect:"none"});let N0=A0.attachShadow({mode:"open"});N0.adoptedStyleSheets=[uS()];let M0=null;i1||(M0=document.createElement("canvas"),N0.append(M0));let qe=document.createElement("div");Object.assign(qe.style,{width:"100%",height:"100%"}),N0.append(qe);let J0=document.createElement("canvas");J0.tabIndex=0,Object.assign(J0.style,{outline:"none"}),qe.append(J0),w.append(A0);let R8=new p1(new Sl(J0,qe,ot)),GP=new ot(VPt(s1,ot),new Hl(J0,Bt),R8);if(o1)if(s1==="molecule"){let dA=new Rt(0,0);dA.setFragment(true),GP.setMolecule(dA);}else {let dA=y1.create();dA.setFragment(true),GP.setReaction(dA);}R8.setEditorArea(GP);let z2=i1?null:new Ft(GP,new Ml(M0),R8);function Y2(dA){J0.style.width=`${dA.width}px`,J0.width=Math.floor(dA.width*Tr),J0.style.height=`${dA.height}px`,J0.height=Math.floor(dA.height*Tr),dA.width>0&&dA.height>0&&GP.repaint();}let Xo=qe.getBoundingClientRect();Y2(Xo);let K2=new ResizeObserver(([dA])=>{Y2(dA.contentRect);});K2.observe(qe);let X2=null,Z2=null,W2=null;i1||(X2=Oc(J0,GP,ot),Z2=QS(qe,J0,GP,ot,Rt),W2=Oc(M0,z2,ot));function _2(){A0.remove(),K2.disconnect(),X2?.(),Z2?.(),W2?.();}return {editorArea:GP,toolbar:z2,uiHelper:R8,destroy:_2};}function VPt(w,Z){switch(w){case "molecule":return 0;case "reaction":return Z.MODE_REACTION|Z.MODE_MULTIPLE_FRAGMENTS;default:throw new Error(`Invalid initial mode: ${w}`);}}function yS(w,Z,Bt,ot,Ft){class p1{#t;#e;#P;#n;#f;#r;constructor(y1,i1={}){let{editorArea:s1,toolbar:o1,uiHelper:A0,destroy:N0}=sS(y1,i1,M0=>this.#i(M0),w,Z,Bt,ot,Ft);this.#t=s1,this.#e=o1,this.#P=A0,this.#n=null,this.#f={[w.EDITOR_EVENT_MOLECULE_CHANGED]:"molecule",[w.EDITOR_EVENT_SELECTION_CHANGED]:"selection",[w.EDITOR_EVENT_HIGHLIGHT_ATOM_CHANGED]:"highlight-atom",[w.EDITOR_EVENT_HIGHLIGHT_BOND_CHANGED]:"highlight-bond"},this.#r=N0;}getMode(){return this.#A(),this.#t.getMode()&w.MODE_REACTION!==0?"reaction":"molecule";}setMolecule(y1){this.#A(),this.#t.setMolecule(y1);}getMolecule(){return this.#A(),this.#t.getMolecule();}setReaction(y1){this.#A(),this.#t.setReaction(y1);}getReaction(){return this.#A(),this.#t.getReaction();}setOnChangeListener(y1){this.#A(),this.#n=y1;}removeOnChangeListener(){this.#A(),this.#n=null;}clearAll(){this.#A(),this.#t.clearAll();}destroy(){this.#A(),this.#r(),this.#t=null,this.#e=null,this.#P=null,this.#n=null,this.#r=null;}get isDestroyed(){return !this.#t;}moleculeChanged(){this.#A(),this.#t.moleculeChanged();}#A(){if(this.isDestroyed)throw new Error("CanvasEditor has been destroyed");}#i(y1){if(!this.#n)return;let{what:i1,isUserEvent:s1}=y1;this.#n({type:this.#f[i1],isUserEvent:s1});}}return p1;}function lS(w,Z,Bt,ot){class Ft extends HTMLElement{static MODE=Object.freeze(Object.create({MOLECULE:"molecule",REACTION:"reaction"}));static observedAttributes=Object.freeze(["idcode","fragment","mode","readonly"]);#t={idcode:"",fragment:false,mode:Ft.MODE_MOLECULE,readonly:false};get idcode(){return this.#t.idcode;}set idcode(Rt){this.#t.idcode=String(Rt),this.setAttribute("idcode",this.#t.idcode);}get fragment(){return this.#t.fragment;}set fragment(Rt){this.#t.fragment=!!Rt,this.#t.fragment?this.setAttribute("fragment",""):this.removeAttribute("fragment");}get mode(){return this.#t.mode;}set mode(Rt){this.#t.mode=String(Rt),this.setAttribute("mode",this.#t.mode);}get readonly(){return this.#t.readonly;}set readonly(Rt){this.#t.readonly=!!Rt,this.#t.readonly?this.setAttribute("readonly",""):this.removeAttribute("readonly");}setMolecule(Rt){this.fragment=Rt.isFragment(),this.idcode=`${Rt.getIDCode()} ${Rt.getIDCoordinates()}`,this.#e.setMolecule(Rt);}getMolecule(){return this.#e.getMolecule();}setReaction(Rt){this.fragment=Rt.isFragment(),this.idcode=ot.encode(Rt,{keepAbsoluteCoordinates:true,mode:ot.INCLUDE_MAPPING|ot.INCLUDE_COORDS|ot.RETAIN_REACTANT_AND_PRODUCT_ORDER})??"",this.#e.setReaction(Rt);}getReaction(){return this.#e.getReaction();}clearAll(){this.#e.clearAll(),this.idcode="";}moleculeChanged(){this.#e.moleculeChanged();}#e;#P(){this.#e||(this.#e=new w(this,{readOnly:this.readonly,initialMode:this.mode}),this.#e.setOnChangeListener(this.#o),requestIdleCallback(()=>this.#n()));}#n(){switch(this.mode){case Ft.MODE.MOLECULE:return this.#r();case Ft.MODE.REACTION:return this.#A();default:throw new Error(`Mode ${this.mode} is not supported`);}}#f(Rt){let y1=Rt.indexOf(" ");if(y1===-1)return Z.fromIDCode(Rt);let i1=Rt.slice(0,y1),s1=Rt.slice(y1+1);return Z.fromIDCode(i1,s1);}#r(){let Rt=this.#f(this.idcode);Rt.setFragment(this.fragment),this.#e.setMolecule(Rt);}#A(){let Rt=ot.decode(this.idcode,{ensureCoordinates:true})??Bt.create();Rt.setFragment(this.fragment),this.#e.setReaction(Rt);}#i=false;#Q(Rt){this.#i=true;try{Rt();}finally{this.#i=false;}}#o=Rt=>{let y1=this.idcode,i1=this.fragment;this.#Q(()=>{if(Rt.type==="molecule")switch(this.mode){case Ft.MODE.MOLECULE:{let o1=this.getMolecule();this.idcode=`${o1.getIDCode()} ${o1.getIDCoordinates()}`,this.fragment=o1.isFragment();break;}case Ft.MODE.REACTION:{let o1=this.getReaction();this.idcode=ot.encode(o1,{keepAbsoluteCoordinates:true,mode:ot.INCLUDE_MAPPING|ot.INCLUDE_COORDS|ot.RETAIN_REACTANT_AND_PRODUCT_ORDER}),this.fragment=o1.isFragment();break;}default:throw new Error(`Unsupported mode ${this.mode}`);}});let s1=new CustomEvent("change",{detail:Rt,bubbles:true});if(this.dispatchEvent(s1),Rt.mode==="molecule"){if(this.idcode!==y1){let o1=new CustomEvent("idcode-changed",{detail:this.idcode,bubbles:true});this.dispatchEvent(o1);}if(this.fragment!==i1){let o1=new CustomEvent("fragment-changed",{detail:this.fragment,bubbles:true});this.dispatchEvent(o1);}}};#D(){this.#e&&(this.#e.destroy(),this.#e=void 0);}#u(){this.#D(),this.#P();}connectedCallback(){this.#t={idcode:this.getAttribute("idcode")||"",fragment:this.hasAttribute("fragment"),mode:this.getAttribute("mode")||Ft.MODE.MOLECULE,readonly:this.hasAttribute("readonly")},this.#P();}disconnectedCallback(){this.#D();}adoptedCallback(){this.connectedCallback();}attributeChangedCallback(Rt,y1,i1){if(!this.#e||this.#i)return;(()=>{switch(Rt){case "idcode":return this.#t.idcode=String(i1),()=>this.#n();case "fragment":return this.#t.fragment=i1!==null,()=>this.#n();case "mode":return this.#t.mode=String(i1),()=>this.#u();case "readonly":return this.#t.readonly=i1!==null,()=>this.#u();default:throw new Error("unsupported attribute change");}})()();}}return Ft;}function Xc(w){let{GenericEditorArea:Z,GenericEditorToolbar:Bt,GenericUIHelper:ot,Molecule:Ft,Reaction:p1,ReactionEncoder:Rt}=w,y1=yS(Z,Bt,ot,Ft,p1);function i1(){let s1=customElements.get("openchemlib-editor");if(s1)return s1;let o1=lS(y1,Ft,p1,Rt);customElements.define("openchemlib-editor",o1);let A0=document.createElement("style");return A0.id="openchemlib-editor-default-style",A0.innerHTML=`
    /* dynamicaly added from openchemlib registerCustomElement with low priority */
    openchemlib-editor:defined {
      display: block;
      height: 400px;
      width: 600px;
    }
    `,document.head.prepend(A0),o1;}w.CanvasEditor=y1,w.registerCustomElement=i1,delete w.GenericEditorArea,delete w.GenericEditorToolbar,delete w.GenericUIHelper;}function TS(w){w.prototype.changeCustomLabelPosition=function(Bt){switch(Bt){case "superscript":for(let ot=0;ot<this.getAllAtoms();ot++){let Ft=this.getAtomCustomLabel(ot);Ft&&!Ft.startsWith("]")&&this.setAtomCustomLabel(ot,`]${Ft}`);}break;case "normal":for(let ot=0;ot<this.getAllAtoms();ot++){let Ft=this.getAtomCustomLabel(ot);Ft?.startsWith("]")&&this.setAtomCustomLabel(ot,Ft.slice(1));}break;case "auto":for(let ot=0;ot<this.getAllAtoms();ot++){let Ft=this.getAtomCustomLabel(ot);Ft&&(this.getAtomLabel(ot)==="C"?Ft.startsWith("]")&&this.setAtomCustomLabel(ot,Ft.slice(1)):Ft.startsWith("]")||this.setAtomCustomLabel(ot,`]${Ft}`));}break;}};}function hS(w){w.prototype.getNextCustomAtomLabel=function(Bt){let ot=Bt||"1",Ft=new Set();for(let Rt=0;Rt<this.getAllAtoms();Rt++){let y1=this.getAtomCustomLabel(Rt);y1&&Ft.add(y1);}let p1=0;for(;Ft.has(ot)&&p1++<100;)ot=EPt(ot);return ot;};}function EPt(w){let Z=w.match(/(\d+)/);if(Z){let ot=Number.parseInt(Z[1],10);return w.replace(/(\d+)/,(ot+1).toString());}let Bt=w.match(/([a-yA-Y])([^a-zA-Z]*)$/);if(Bt){let ot=Bt[1],Ft=String.fromCodePoint(ot.codePointAt(0)+1);return Ft==="Z"||Ft==="z"?"1":w.replace(/([a-yA-Y])([^a-zA-Z]*)$/,`${Ft}$2`);}return "1";}function cS(w){let Z=w.fromMolfile;w.fromMolfile=function(ot,Ft={}){let{customLabelPosition:p1}=Ft,Rt=Z.call(this,ot),y1=ot.includes(`\r
`)?`\r
`:`
`,i1=ot.split(y1);if(i1.length<4||!i1[3].includes("V2000"))return Rt;let s1=i1.slice(4+Rt.getAllAtoms()+Rt.getAllBonds());for(let o1=0;o1<s1.length;o1++){let A0=s1[o1];if(A0.startsWith("A  ")){let N0=Number(A0.slice(3)),M0=s1[o1+1]?.trim();o1++,!Number.isNaN(N0)&&N0<=Rt.getAllAtoms()&&M0&&!Rt.getAtomCustomLabel(N0-1)&&Rt.setAtomCustomLabel(N0-1,M0);}if(A0.startsWith("V  ")){let N0=A0.split(" ").filter(Boolean);if(N0.length>=3){let M0=Number(N0[1]),qe=N0.slice(2).join(" ");!Number.isNaN(M0)&&M0<=Rt.getAllAtoms()&&!Rt.getAtomCustomLabel(M0-1)&&Rt.setAtomCustomLabel(M0-1,qe);}}if(A0.startsWith("M  ZZC")){let N0=Number(A0.slice(7,10).trim()),M0=A0.slice(10).trim();N0&&M0&&Rt.setAtomCustomLabel(N0-1,M0);}}return Rt.changeCustomLabelPosition(p1),Rt;};}var SPt=["M  STY","M  SLB","M  SAL","M  SDT","M  SDD","M  SED"];function wS(w){let Z=w.prototype.toMolfile;w.prototype.toMolfile=function(ot={}){let Ft=this.getCompactCopy(),{includeCustomAtomLabelsAsALines:p1=false,includeCustomAtomLabelsAsVLines:Rt=false,customLabelPosition:y1,removeCustomAtomLabels:i1=false}=ot;Ft.changeCustomLabelPosition(y1);let s1=Z.call(Ft);if(!p1&&!Rt&&!i1)return s1;let o1=s1.includes(`\r
`)?`\r
`:`
`,A0=s1.split(o1);if(i1&&(A0=A0.filter(qe=>!SPt.some(J0=>qe.startsWith(J0)))),A0.length<4||!A0[3].includes("V2000"))return s1;let N0=[];for(let qe=0;qe<Ft.getAllAtoms();qe++){let J0=Ft.getAtomCustomLabel(qe);if(J0){let R8=String(qe+1).padStart(3," ");p1&&N0.push(`A  ${R8}`,J0),Rt&&N0.push(`V  ${R8} ${J0}`);}}let M0=A0.findIndex(qe=>qe.startsWith("M  END"));return M0===-1?s1:(A0.splice(M0,0,...N0),A0.join(o1));};}function dS(w){let Z=w.prototype.toRxn,Bt=w.prototype.toRxnV3;w.prototype.toRxn=function(Ft={}){return gS(this,Z,Ft);},w.prototype.toRxnV3=function(Ft={}){return gS(this,Bt,Ft);};}function gS(w,Z,Bt){let{programName:ot="",keepIdCode:Ft=false}=Bt,p1=Z.call(w,ot);return Ft?p1:p1.replace(/^OCL_RXN_V1.0:.*$/m,"");}function BS(w){let Z=w.prototype.toSVG;w.prototype.toSVG=function(ot,Ft,p1,Rt){if(typeof ot!="number"||typeof Ft!="number")throw new Error("Molecule#toSVG requires width and height to be specified");Rt=Rt||{};let y1=Rt.factorTextSize||1,i1=Rt.autoCrop===true,s1=Rt.autoCropMargin===void 0?5:Rt.autoCropMargin,o1=Z.call(this,ot,Ft,y1,i1,s1,p1,Rt),A0=/svg id="(.*)" xmlns/.exec(o1)[1];return o1=o1.replace("<style>",`<style> #${A0} text {font-family: sans-serif;}`),o1=o1.replace("line {",`#${A0} line {`),o1=o1.replace("polygon {",`#${A0} polygon {`),Rt.fontWeight&&(o1=o1.replaceAll("font-size=",`font-weight="${Rt.fontWeight}" font-size=`)),Rt.strokeWidth&&(o1=o1.replaceAll(/stroke-width="[^"]+"/g,`stroke-width="${Rt.strokeWidth}"`)),o1;};}function vS(w){let{ConformerGenerator:Z,ForceFieldMMFF94:Bt,Molecule:ot,Reaction:Ft}=w;Z.prototype.molecules=function*(){let s1;for(;(s1=this.getNextConformerAsMolecule())!==null;)yield s1;};let p1={maxIts:4e3,gradTol:1e-4,funcTol:1e-6},Rt=Bt.prototype._minimise;delete Bt.prototype._minimise,Bt.prototype.minimise=function(s1){return s1={...p1,...s1},Rt.call(this,s1.maxIts,s1.gradTol,s1.funcTol);},TS(ot),hS(ot),cS(ot),wS(ot),dS(Ft),BS(ot);function y1(i1){if(!i1)return null;if(i1.includes("V2000")||i1.includes("V3000"))return ot.fromMolfile(i1);try{return ot.fromSmiles(i1);}catch{}try{return ot.fromIDCode(i1);}catch{}return null;}ot.fromText=function(s1){let o1=y1(s1);return o1&&o1.getAllAtoms()>0?o1:null;},ot.prototype.getOCL=function(){return w;};}function af(){}function qPt(w){let Z=w.document,Bt={},Ft=af;Ft.__moduleStartupDone=af;function i1(){}function s1(){}function o1(){}function A0(){}function N0(){}function M0(){}function qe(){}function J0(){}function R8(){}function GP(){}function z2(){}function Y2(){}function Xo(){}function K2(){}function X2(){}function Z2(){}function W2(){}function _2(){}function dA(){}function tD(){}function Zc(){}function c9(){}function eD(){}function Wc(){}function _c(){}function $c(){}function ac(){}function tw(){}function AD(){}function mS(){}function ew(){}function Aw(){}function d1(){}function nw(){}function Pw(){}function ql(){}function di(){}function D0(){}function rw(){}function iw(){}function fw(){}function Dw(){}function uw(){}function Qw(){}function ow(){}function Il(){}function Uw(){}function Lw(){}function sw(){}function yw(){}function lw(){}function Tw(){}function hw(){}function cw(){}function ww(){}function gw(){}function dw(){}function Bw(){}function Zo(){}function vw(){}function Fw(){}function mw(){}function kw(){}function kS(t,e){t.S=e;}function xl(t,e){t.I=e;}function bS(t,e){t.T=e;}function RS(t,e){t.O=e;}function $2(t,e){t.P=e;}function jS(t,e){t.G=e;}function pS(t,e){t.d=e;}function CS(t,e){t.f=e;}function HS(t,e){t.i=e;}function MS(t,e){t.i=e;}function VS(t,e){t.f=e;}function ES(t,e){t.n=e;}function bw(t,e){t.p=e;}function SS(t,e){t.b=e;}function qS(t,e){t.e=e;}function IS(t,e){t.r=e;}function xS(t){t.a=t.b;}function Wo(t){this.a=t;}function hr(t){this.j=t;}function Rw(t){this.e=t;}function jw(t){this.e=t;}function GA(t){this.b=t;}function pw(t){this.a=t;}function Cw(t){this.a=t;}function Hw(t){this.a=t;}function Mw(t){this.a=t;}function Vw(t){this.a=t;}function Ew(t){this.a=t;}function Sw(t){this.a=t;}function qw(t){this.a=t;}function Iw(t){this.a=t;}function a2(t){this.a=t;}function _o(t){this.a=t;}function xw(t){this.b=t;}function nD(t){this.a=t;}function tu(){this.i=0;}function Nw(){this.i=1;}function Ow(){this.a=-1;}function Nl(){this.b=-1;}function Bi(t){this.a=t;}function eu(t){this.a=t;}function Ol(t){this.a=t;}function Gl(t){this.a=t;}function Jl(t){this.a=t;}function PD(t){this.a=t;}function zl(t){this.a=t;}function Yl(t){this.a=t;}function Kl(t){this.c=t;}function rD(t){this.a=t;}function iD(t){this.a=t;}function w9(t){this.a=t;}function g9(t){this.a=t;}function Xl(t){this.b=t;}function $o(t){this.b=t;}function Gw(t){this.a=t;}function Zt(t){this.c=t;}function Jw(t){this.c=t;}function zw(t){this.a=t;}function Zl(t){this.a=t;}function Yw(t){this.c=t;}function Kw(t){this.a=t;}function Xw(t){this.a=t;}function NS(t,e){t.a=e;}function OS(t,e){t.a=e;}function GS(t,e){t.d=e;}function JS(t,e){t.e=e;}function ao(t,e){t.n=e;}function zS(t,e){t.T&=~e;}function Zw(t,e){t.C[e]=-1;}function Wl(t,e){mt(t.a,e);}function YS(t,e){mt(t.S,e);}function KS(t,e){PO(t.a,e);}function XS(t,e){rO(t.a,e);}function ZS(t,e){tQ(t.a,e);}function _l(t,e){mt(t.a,e);}function JP(t,e){mt(t.a,e);}function tU(t,e){LA(t.d,e);}function WS(t,e){KS(e,t.B);}function _S(t,e){XS(e,t.v);}function $S(t,e){Kq(e,t.f);}function aS(t,e){t.H[e]=512;}function tq(t,e,A){t.k[e]=A;}function Au(){fU(this);}function f1(){gu(this);}function UP(){Hu(this);}function Ww(t){WK(this,t);}function eq(t){return gK(t);}function Aq(t){return kK(t);}function nq(){return ++jV;}function _w(){this.a=new BU();}function fD(){this.a=new f1();}function $w(){this.a=new f1();}function nu(){this.c=new f1();}function eU(){f1.call(this);}function aw(){f1.call(this);}function t7(){Fr.call(this);}function $l(){Fr.call(this);}function d9(){Fr.call(this);}function e7(){$w.call(this);}function al(){$w.call(this);}function Pq(t){t.a>0&&--t.a;}function rq(t,e){t.q=e,t.T=0;}function iq(t,e){t.r=e,t.T=0;}function t3(t,e){t.F[e]|=I0;}function LP(t,e){t.u[e]|=u0;}function vi(t,e){t.length=e;}function fq(t,e){mt(t.c,e);}function rA(t,e){Vi(t.a,e);}function Dq(t){return t>>>0;}function uq(t){return _r(t);}function Qq(){return Ff(),Lr;}function e3(){Fr.call(this);}function A7(){Fr.call(this);}function BA(){Fr.call(this);}function A3(){Fr.call(this);}function n7(){Fr.call(this);}function n3(){sQ.call(this,0);}function P7(){Y8.call(this,2);}function r7(){this.b=new b9();}function i7(){this.a=new f1();}function oq(t){this.a=t,Di(t);}function P3(){this.a=new yD();}function f7(){wp(),this.b=Et;}function Uq(t){_A(),J1(),wn=t;}function Fi(t){NL(t),t.d=null;}function Lq(t){qE=t,Ho=true;}function c0(){c0=d1,ND();}function Pu(t){this.a=JJ(t);}function DD(){this.a=new UP();}function r3(){this.a=new yP();}function D7(){this.a=new yP();}function u7(){$l.call(this);}function cr(t){C1.call(this,t);}function sq(t,e){rA(e,t.a.a);}function AU(t,e,A){t.k[e].a=A;}function nU(t,e,A){t.k[e].b=A;}function PU(t,e,A){t.k[e].c=A;}function yq(t,e){return t.o[e];}function lq(t,e){return t.X[e];}function Tq(t,e){return t.Y[e];}function uD(t,e){return t.e[e];}function Q7(t,e){return t.J[e];}function b1(t,e){return t.s[e];}function le(t,e){return t.A[e];}function U0(t,e){return t.B[e];}function K(t,e){return t.C[e];}function Ae(t,e){return t.G[e];}function l1(t,e){return t.H[e];}function Ht(t,e){return t.e[e];}function $1(t,e){return t.o[e];}function O(t,e){return t.j[e];}function hq(t,e){return t.d[e];}function i3(t,e){return t.e[e];}function QD(t,e){return t.e[e];}function ru(t,e){return t.a[e];}function B9(t,e){return t.a[e];}function z0(t,e){return t.k[e];}function cq(t,e){return t.f[e];}function iu(t,e){return t.b[e];}function o7(t,e){return t.b[e];}function U7(t,e){return t.c[e];}function wq(t,e){return t.a[e];}function gq(t,e,A){t8(t.a,A,e);}function dq(t){RJ(t.a,t.c,t.b);}function L7(t){Ta.call(this,t);}function s7(t){cr.call(this,t);}function y7(t){OU.call(this,t);}function l7(t){OU.call(this,t);}function T7(t){OU.call(this,t);}function h7(t){OU.call(this,t);}function wr(t){cr.call(this,t);}function c7(t){cr.call(this,t);}function w7(t){XL.call(this,t);}function Bq(t){return eP*t*t;}function mi(t){return L1(t),t;}function oD(t){return L1(t),t;}function vq(t,e){return t.db[e];}function Fq(t){return ui(t),t.B;}function mq(t){return ui(t),t.H;}function kq(t){return is(t,t.i);}function bq(t,e){return oz(t,e);}function Rq(t,e){return aG(t,e);}function UD(t,e){t.T|=248&(8|e);}function jq(t,e){t.g=new zr(e);}function ki(t){t.b=null,t.c=0;}function j8(t){cr.call(this,t);}function p8(t){cr.call(this,t);}function rU(t){cr.call(this,t);}function g7(t){cr.call(this,t);}function LD(t){cr.call(this,t);}function pq(t){lx(t,t.length);}function Cq(t){Dx(t,t.length);}function Hq(t){ux(t,t.length);}function Mq(t){Tx(t,t.length);}function f3(t){Mu(t,t.length);}function iU(t){L1(t),this.a=t;}function D3(t){new f1(),this.a=t;}function d7(t){return 4e3*t*t;}function Vq(t){return 8e3*t*t;}function B7(t){return t.b==t.c;}function zP(t){return !!t&&t.b;}function u3(t,e){return t.a[e];}function d(t,e){return jB(t,e);}function v7(t){return qu(t,t.jb);}function kt(t,e){return t.J[e].a;}function pt(t,e){return t.J[e].b;}function vA(t,e){return t.J[e].c;}function d0(t,e){return t.u[e]&3;}function Ie(t,e){return t.F[e]&3;}function dn(t,e){return t.w[e]<0;}function sD(t,e,A){mD(t.k[e],A);}function Eq(t,e){t.c=e,t.T&=-144;}function fU(t){t.a=0,t.b=0,t.c=1;}function F7(t){this.b=t,this.a=1;}function Q3(t){wr.call(this,t);}function FA(t){EA.call(this,t,0);}function m7(t){lD.call(this,t,0);}function JA(){J1(),X3.call(this);}function Sq(t){return _A(),$r(t);}function qq(t){return _A(),ti(t);}function Iq(t){return t.c||wQ(t);}function v9(t,e){return t.k[e].a;}function F9(t,e){return t.k[e].b;}function m9(t,e){return t.k[e].c;}function k7(){k7=d1,W4=new i1();}function o3(){o3=d1,_4=new tw();}function bi(){bi=d1,Dl=new UP();}function k9(){k9=d1,go=false;}function b7(t){wr.call(this,t);}function YP(t){p8.call(this,t);}function U3(t){Pu.call(this,t);}function DU(t){$o.call(this,t);}function R7(t){jU.call(this,t);}function j7(t){DU.call(this,t);}function p7(t){yB.call(this,t);}function L3(t){C8.call(this,t);}function s3(t){Xw.call(this,t);}function C7(t){p9.call(this,t);}function H7(t){oq.call(this,t.a);}function Ri(){j3.call(this,null);}function yD(){eu.call(this,"");}function fu(){eu.call(this,"");}function V0(){eu.call(this,"");}function b9(){eu.call(this,"");}function M7(){this.a=0,this.b=0;}function Du(t){return MU(t),t.n;}function uu(t,e){return kv(t,e);}function xq(t,e){TI(t.b,t.a,e);}function y3(t,e){return N(t.j,e);}function V7(t,e){return N(t.k,e);}function l3(t,e){return vq(t.d,e);}function Nq(t,e){return yq(t.d,e);}function R0(t,e){return HU(t.d,e);}function uU(t,e){return t<e?t:t-e;}function K1(t,e){return e*t.c+t.b;}function X1(t,e){return e*t.c+t.a;}function Oq(t,e){return N(t.a,e);}function T3(t,e){return N(t.f,e);}function gr(t,e){return N(t.g,e);}function mA(t,e){return t.u[e]&48;}function Qu(t,e){return t.A[e]==0;}function Gq(t,e){return Pf(t.d,e);}function ou(t){return sb(t,I5(t));}function E7(t){return t.l|t.m<<22;}function xn(t){return ut(t,7),t.p;}function Jq(t,e){return t.a+=e,t;}function h3(t,e){return t.a+=e,t;}function E0(t,e,A){t.s[e]=A,t.T=0;}function w0(t,e,A){t.H[e]=A,t.T=0;}function S7(t,e){mt(t.f,e),t.d=-1;}function q7(t,e){mt(t.g,e),t.d=-1;}function zq(){Mo!=0&&(Mo=0),Vo=-1;}function c3(){c3=d1,UE=(Xh(),Ro);}function C8(t){this.a=(L1(t),t);}function QU(t){this.a=new Oi(t);}function I7(t){this.a=new L7(t.a);}function R9(t){this.b=t,this.a=0;}function u(t,e){this.b=t,this.a=e;}function lD(t,e){this.k=t,this.j=e;}function iA(t,e){return t.a[e]&c1;}function sP(t,e){return t.c[e]&c1;}function Uu(t,e){return t.u[e]&448;}function Lu(t,e){return t.H[e]&127;}function Yq(t,e){return t.C[e]==-1;}function ji(t,e){return Z0[t.C[e]];}function oU(t,e){ba.call(this,t,e);}function TD(t){zK.call(this,t,t.o);}function UU(){vO.call(this,new c9());}function hD(t,e){su.call(this,t,e);}function x7(t,e){this.b=t,this.a=e;}function KP(t,e){this.a=t,this.b=e;}function su(t,e){this.a=t,this.b=e;}function N7(t,e){this.a=t,this.b=e;}function Ze(t,e){this.a=t,this.b=e;}function O7(t,e){this.a=t,this.b=e;}function G7(t,e){this.a=t,this.b=e;}function J7(t,e){this.a=t,this.b=e;}function LU(t,e){this.b=t,this.a=e;}function cD(t,e){this.b=t,this.a=e;}function z7(t,e){this.a=t,this.b=e;}function Y7(t,e){this.a=t,this.b=e;}function sU(t,e){this.k=e,this.j=t;}function w3(t,e){this.a=t,this.b=e;}function pi(t,e){su.call(this,t,e);}function Kq(t,e){lG(t.a,t.b,t.c,e);}function Xq(t,e){QL(t.c,new Mw(e));}function K7(t,e,A){Dn(t,A),Ln(t,e);}function We(t,e,A,n){t.w[e]=n?-A:A;}function wD(t){return t.a.c+t.c.c;}function nn(t){this.b=t,this.a=-2;}function X7(t){jD.call(this,t,0);}function Z7(){yB.call(this,null);}function yP(){Oi.call(this,null);}function W7(){Al==null&&(Al=[]);}function Zq(){throw At(new BA());}function g3(){throw At(new BA());}function Wq(t){throw new Error(t);}function _q(t,e){Qx(t),t.b._c(e);}function _7(t,e){return mt(t.a,e);}function $7(t,e){return Pf(t.a,e);}function z(t,e,A){return t.D[e][A];}function W(t,e,A){return t.i[e][A];}function xt(t,e,A){return t.k[e][A];}function pA(t,e,A){return t.n[e][A];}function $q(t,e){return t.H[e]==512;}function d3(t,e){return N(t.a,e).a;}function a7(t,e){return N(t.a,e).b;}function tg(t){return sn(t,1,t.c)>0;}function aq(t){return Array.from(t);}function tI(){return new _P(new P8());}function eg(){c3(),Ho||bL(),new Rj();}function z1(){z1=d1,ci=new Aw();}function yU(){yU=d1,Bl=new Pw();}function lU(){lU=d1,C4=SA("X",32);}function Ag(){Ag=d1,Gf=(z1(),$A);}function ng(){ng=d1,d8=(z1(),$A);}function Pg(){p9.call(this,null);}function j9(t,e){su.call(this,t,e);}function rg(t){sp(),Na.call(this,t);}function dr(t){return t.b=aB(t.a);}function yu(t,e){return wg(e,t.a);}function ig(t,e){return wg(e,t.a);}function TU(t,e){return qU(t.a,e);}function E1(t,e){return G(t,e)>0;}function Ci(t,e){return G(t,e)<0;}function fg(t,e){return t.a.get(e);}function eI(t){return t.B?t.B.t:1;}function Dg(t,e){this.a=t,this.c=e;}function ug(t,e){this.a=t,this.b=e;}function lP(t,e){this.a=t,this.b=e;}function Qg(t,e){this.a=t,this.b=e;}function hU(t,e){this.c=t,this.d=e;}function og(t,e){this.b=t,this.a=e;}function Ug(t,e){this.b=t,this.a=e;}function lu(t,e){su.call(this,t,e);}function cU(t,e){su.call(this,t,e);}function wU(t,e){V9(t,t.length,e);}function AI(t,e){r6.call(this,t,0,e);}function nI(t){w.clearTimeout(t);}function Lg(t){this.b=t,this.c=false;}function sg(){Ho||bL(),this.a=new vm();}function Tu(t){return typeof t===h2;}function Hi(t){return typeof t===Ar;}function H8(t){return typeof t===mf;}function O1(t){return t??null;}function B3(t,e){return t==e-1?0:t+1;}function n0(t,e){return G(t,e)==0;}function hu(t,e){return G(t,e)>=0;}function yg(t,e){return G(t,e)<=0;}function gt(t,e){return G(t,e)!=0;}function PI(t,e){return _A(),ze(t,e);}function rI(t,e){return _A(),SA(t,e);}function lg(t,e){return O1(t)===O1(e);}function v3(t,e,A){return t.f[e][A];}function F3(t,e,A){return t.e[e][A];}function Mi(t,e){return (t.u[e]&4)!=0;}function gU(t,e){return (t.F[e]&4)!=0;}function ue(t,e){return t.i[e].length;}function m3(t,e){return t.e[e]-t.j[e];}function dU(t,e){return (t.u[e]&8)!=0;}function Tg(t){return parseInt(t)||-1;}function p9(t){this.f=t,this.g=true;}function hg(){this.c=new yP(),this.b=0;}function BU(){Ff(),this.g=new Ii(),tz();}function ve(t,e,A){t.J[e].a=A,t.T&=7;}function xe(t,e,A){t.J[e].b=A,t.T&=7;}function TP(t,e,A){t.J[e].c=A,t.T&=7;}function iI(t,e,A){t8(t.f,A,e),t.d=-1;}function fI(t,e,A){t8(t.g,A,e),t.d=-1;}function DI(t,e,A){return p5(t.a,e,A);}function cg(t){return S0(t.l,t.m,t.h);}function XP(t){return t?t.ed():null;}function wg(t,e){return t.toFixed(e);}function C9(t){return t.a<t.c.size();}function o0(t){return typeof t===Ar;}function gg(t,e){return e==0?t.i:t.j;}function Vi(t,e){return t.a+=""+e,t;}function dg(t,e){return t.a+=""+e,t;}function J(t,e){return t.a+=""+e,t;}function cu(t,e){Xi(t,0,t.length,e);}function k3(t,e){yx(t.a,t.a.length,e);}function uI(t,e){return t.j[e]-EL(t,e);}function fA(t,e){return (t.F[e]&64)!=0;}function wu(t,e){return (t.F[e]&48)>>4;}function M8(t){return cP(t,t.q,t.r,wn);}function gu(t){t.a=c(fP,e0,1,0,5,1);}function du(t){_5(),sB.call(this,t,0);}function b3(t){AI.call(this,t,new b9());}function Bg(t){$X.call(this,t,new b9());}function R3(t){P8.call(this),this.e=t;}function j3(t){this.d=new f1(),this.c=t;}function vg(t,e){this.b=tP(e),this.a=t;}function Fg(t,e){this.b=tP(e),this.a=t;}function QI(t,e){return j0(t.a[e][3]);}function oI(t,e){return j0(t.a[e][2]);}function mg(t,e){return j0(t.a[e][2]);}function kg(t,e){return j0(t.a[e][1]);}function UI(t){return t.e==null?"":t.e;}function bg(t,e,A,n){t.e=e,t.c=A,t.d=n;}function vU(t,e,A,n){t.a=e,t.b=A,t.c=n;}function gD(t,e,A,n){t.D[e][A]=n,t.T=0;}function ZP(t,e,A){mt(t.a,new Ze(e,A));}function Rg(t){Xi(t,0,t.length,null);}function jg(t){be(),iG.call(this,t);}function pg(t){XO.call(this,t,cN());}function Cg(){Xw.call(this,"UTF-8");}function Hg(){lu.call(this,"Tail",3);}function Mg(){lu.call(this,"Head",1);}function p3(t){t.g=c(gE,h0,115,0,0,1);}function C3(t){ut(t,31),t.d&&HY(t.d);}function FU(t){return t!=null?a8(t):0;}function V8(t,e){return (t.u[e]&Tn)!=0;}function Br(t,e){return (t.u[e]&Po)!=0;}function Vg(t,e){return (t.u[e]&u0)!=0;}function vr(t,e){return (t.F[e]&u0)!=0;}function H3(t,e){return (t.F[e]&L8)!=0;}function M3(t,e){return (t.F[e]&I0)!=0;}function Y0(t,e){return (t.u[e]&I0)!=0;}function Bu(t,e){return (t.G[e]&s8)!=0;}function P0(t,e){return (t.u[e]&512)!=0;}function LI(t,e){return (t.u[e]&C0)!=0;}function sI(t,e){return (t.u[e]&de)!=0;}function Ei(t,e){return (t.u[e]&hn)!=0;}function WP(t,e){return (t.F[e]&128)!=0;}function r0(t,e){return (t.a[e]&u0)!=0;}function je(t,e){return (t.c[e]&u0)!=0;}function E8(t,e){return (t.c[e]&I0)!=0;}function yI(t,e){return (t.a[e]&I0)!=0;}function V3(t,e){return (t.a[e]&l8)!=0;}function hP(t,e){return (t.F[e]&768)>>8;}function Pn(t,e){return cP(t,t.q,t.r,e);}function S0(t,e,A){return {l:t,m:e,h:A};}function E3(t,e){return t<e?-1:t>e?1:0;}function Eg(t,e){return t.a+=he(e),t;}function mU(t,e,A){return t.j=e,A6(t,A);}function lI(t,e,A){return vI(t.a,e,A);}function TI(t,e,A){NS(t,lI(e,t.a,A));}function hI(t,e,A,n){t.a.nd(A,e.kd(n));}function kU(t,e){UL(t,e),t.d&&(e.T=0);}function zA(t,e){J1(),bv.call(this,t,e);}function CA(t){_A(),AL.call(this,0,0,t);}function vu(t){Ne.call(this,t.a,t.b,t.c);}function Sg(){cL.call(this,"#","","");}function qg(){lu.call(this,"Range",2);}function S8(t){return $n(t,0,t.length);}function At(t){return t.backingJsObject;}function ne(t,e){return (t.u[e]&F1)>>18;}function S3(t,e){return (t.G[e]&7680)>>9;}function q3(t,e){return N(t.k,e).length;}function Bn(t,e){return e<t.f&&r0(t.p,e);}function _e(t,e){return e<t.g&&je(t.p,e);}function cI(t,e){return e<t.f&&V3(t.p,e);}function Xt(t,e){return t!=null&&hz(t,e);}function wI(t,e){return j0(t.b[e-1][2]);}function Ig(t,e,A){return j0(t.a[e][A]);}function xg(t,e,A){t.i[0].a=e,t.i[0].b=A;}function gI(t,e){t.H[e]=512,vf(t),t.T=0;}function dI(t,e){e.Nb(t.c),YO(e,t.a,t.b);}function I3(t,e){IB(e,t.c),CL(e,t.a,t.b);}function BI(t,e){t.q=Mh(new kB(t.o,e),t);}function mt(t,e){return t.a.push(e),true;}function vI(t,e,A){return t.a.nd(e,A),e;}function FI(t,e,A){t.a=e^1502,t.b=A^tl;}function x3(t,e,A){return e.kd(t.kd(A));}function dD(t){return t.$H||(t.$H=++jV);}function mI(t){return at(Ar,typeof t);}function kI(t){return at(mf,typeof t);}function bI(t,e){return {type:e,value:t};}function N3(t){return t.p==null?t.o.P:t.p;}function Ng(t){this.c=t,this.b=t.length;}function bU(){this.a=0,this.b=0,this.c=0;}function Og(){this.b=new Nl(),this.a=this.b;}function Gg(t,e){this.a=new EA(t.a,JW(e));}function Jg(t,e,A){this.a=new yj(t.a,e.a);}function zg(t){Ho||bL(),this.a=new pg(t);}function Yg(){Ri.call(this),this.b=new f1();}function Fr(){p3(this),VT(this),this.jc();}function Kg(){this.a=c(fP,e0,1,8,5,1);}function Xg(){this.a=c(F,k,6,0,15,1);}function RU(t){this.d=c(NA,te,6,t,14,1);}function q8(t){this.a=t,Xl.call(this,t);}function jU(t){$o.call(this,t),this.a=t;}function vn(t){eu.call(this,(L1(t),t));}function Zg(t){if(!t)throw At(new e3());}function BD(t){if(!t)throw At(new n7());}function Fu(t){if(!t)throw At(new A7());}function RI(){return _A(),J1(),J1(),wn;}function Si(t,e){return Te(t.a,N3(e.c));}function mu(t,e,A){return WA(t,e,A,t.C[e]);}function pU(t,e){return (t.u[e]&49152)>>14;}function jI(t,e){return {molecule:t,map:e};}function mr(t,e){return e<0?null:N(t.d,e);}function pI(t,e,A){return FY(rp(t.a,e,A));}function vD(t,e,A){t.u[e]&=-449,t.u[e]|=A;}function I8(t,e,A,n){t.a+=e,t.b+=A,t.c+=n;}function Qe(t,e){t.d[t.c]=x1(t.d[t.c],e);}function CI(t,e){Ye(t.a,N3(e.c),new td());}function FD(t,e,A){return hF(t,e,e,A),t;}function HI(t,e,A,n,P){Rk(e,A,t.i[n][P]);}function Wg(t,e,A){t.Q=-6,t.F=e,t.D=A,Cb(t);}function CU(t){t.e=Ee,t.a=null,t.d=null;}function HU(t,e){return t.g==null?-1:t.g[e];}function MI(t){return t.l+t.m*rP+t.h*iP;}function VI(t){return t>=56320&&t<=57343;}function EI(t){if(!t)throw At(new e3());}function _g(t){if(!t)throw At(new A3());}function MU(t){t.n==null&&uX(t);}function mD(t,e){return vU(t,e.a,e.b,e.c),t;}function O3(t,e){this.c=1,this.a=t,this.b=e;}function Nn(t,e){this.a=0,this.b=t,this.c=e;}function ku(t){_F.call(this,t),this.e=NaN;}function G3(){_A(),AL.call(this,32,32,null);}function $g(t){TD.call(this,t),Lh(this,t);}function ag(t){this.a=c(Pt,ft,6,t,16,1);}function td(){this.b=new V0(),this.c=new f1();}function ed(){this.e=new UP(),this.c=5e5;}function Ad(t,e){t.s=w.Math.min(e,t.t);}function SI(t,e,A){t.ub(e-t.V/2,A-t.V/2,t.V);}function cP(t,e,A,n){return mR(t,e,A,n,t.J);}function qI(t,e,A,n,P){return pX(t,e,A,n,P);}function nd(t,e){return IN(t,e,t.a.length-1);}function kD(t,e){return s5(t,e,e.q,e.r,true);}function qi(t,e){return t.i[e].length-t.e[e];}function Pd(t,e){return t.j==null?-1:t.j[e];}function rd(t){return t.c==1&&t.a==0&&t.b==0;}function II(t){return t<0?t+36:t>=36?t-36:t;}function id(t,e){return t&&e&&t instanceof e;}function xI(t,e){return uu(new Array(e),t);}function NI(t){return Jt(DA(t,32))^Jt(t);}function OI(t,e,A){return t.apply(e,A);}function GI(t,e,A,n){return _A(),bA(t,e,A,n);}function JI(t,e){return k9(),t==e?0:t?1:-1;}function fd(t,e){var A;return A=t.d,t.d=e,A;}function $e(t,e){t.a=e,t.c=0,t.b=63,Cq(t.d);}function zI(t,e){t.backingJsObject=e,Qb(t,e);}function J3(t,e){bi(),wB(Dl,t)||ED(Dl,t,e);}function Dd(t,e){return L1(e),new lP(t,e);}function ud(t,e){return L1(e),new lP(t,e);}function at(t,e){return L1(t),O1(t)===O1(e);}function rn(t){return S8(l2(t,0,t.length));}function Qd(t){return t.d.length-t.c.length;}function z3(t,e){return t.t==null?null:t.t[e];}function HA(t,e){return t.v==null?null:t.v[e];}function R1(t,e){return w.Math.abs(t.w[e]);}function kr(t,e){return ((t.u[e]&w8)>>>27)-1;}function od(t,e){return t.e[e]-t.j[e]+It(t,e);}function Ud(t,e){this.a=new Rv(new R9(t),e);}function Ld(t){this.a=new w.Map(),this.b=t;}function sd(t){this.a=new w.Map(),this.b=t;}function Y3(t,e,A){this.c=t,this.a=e,this.b=A;}function K3(t,e,A){this.c=t,this.a=e,this.b=A;}function bu(t,e,A){this.b=t,this.c=e,this.a=A;}function Ne(t,e,A){this.a=t,this.b=e,this.c=A;}function wP(t,e,A){this.a=t,this.b=e,this.c=A;}function yd(t,e,A){this.a=t,this.b=e,this.c=A;}function ld(t,e,A){this.a=t,this.c=e,this.b=A;}function Td(t,e,A){this.a=t,this.c=e,this.b=A;}function S1(t,e,A){sU.call(this,e,t),this.a=A;}function VU(t,e,A){sU.call(this,e,t),this.a=A;}function x8(t){sG.call(this,t,(OT(),oc));}function Ii(){this.c=8,this.O=new QU(new tD());}function X3(){J1(),this.M=this.N=256,vR(this);}function EU(t,e){Vu(e,t.R),Nu(e,t.v),jd(e,t.w);}function YI(t,e){G1(t),VR(t,GQ(e,true,null));}function SU(t,e){return OF(e,KN(t,lT(e)));}function oe(t,e){return gt(V(t.B[e],re),0);}function hd(t,e){return t.e[e]-t0(t,e)+It(t,e);}function KI(t,e,A){return t.indexOf(k0(e),A);}function j0(t){return Hi(t)?(L1(t),t):t.Xc();}function XI(t,e){Gi(t.e,e)&&uL(t.d,e);}function cd(t,e,A){t.F[e]&=-49,t.F[e]|=A<<4;}function br(t,e,A){t.A[e]=A,t.T&=t.C[e]==1?0:7;}function wd(t,e){return t.a*=e,t.b*=e,t.c*=e,t;}function ZI(t,e){return t.d==null&&bb(t,e),t.d;}function WI(t,e){t.B=false,QL(t.v,new O7(t,e));}function _I(t,e){t.v=false,QL(t.s,new G7(t,e));}function $I(t,e){t.f=false,QL(t.c,new J7(t,e));}function aI(t){t.b=false,ttt(t.a,new a2(tB(t)));}function bD(t){this.c=t,this.O=new QU(new tD());}function gd(t,e,A){this.a=t,this.b=e,this.c=A;}function xi(t,e){this.a=t>e?t:e,this.b=t>e?e:t;}function Z3(t,e){t.u=new V0(),t.t=6,t.v=0,t.r=e;}function qU(t,e){var A;return A=e,!!G9(t,A);}function Ni(t){var e=t.Ec();return e.getText();}function Rr(t){var e=t.Ic();e.disposeDialog();}function RD(t,e){var A=t.Ic();A.showMessage(e);}function tx(){var t;return t=qL(null),t.f=2,t;}function dd(t){oL(t.a),vv(t.c,t.b),t.b=null;}function ex(t){return k9(),at(h2,typeof t);}function IU(t,e){if(!t)throw At(new p8(e));}function Bd(t,e){if(t!=e)throw At(new A3());}function vd(t){bi(),z5.call(this,t,Ey,new UP());}function Ax(t){return _A(),new CA(JB(new tu(),t));}function On(t){return jn(kx(o0(t)?Ce(t):t));}function nx(t,e,A){return $0(t,e)||$0(t,A)?16:1;}function Fd(t,e,A){A5(A,0,t,e,A.length,false);}function md(t,e,A,n,P){i6(t,e,A,0,A.length,n,P);}function kd(t,e){return vF(e,t.c)||vF(e,t.a);}function jD(t,e){this.e=e,Uh(this,(L1(t),t));}function W3(t){this.f=t,this.e=2,this.a=vs(t);}function bd(t,e){this.a=t,this.c=e,this.b=true;}function Rd(t){this.a=t.a,this.b=t.b,this.c=t.c;}function jd(t,e){e.a=e.a*t.c+t.a,e.b=e.b*t.c+t.b;}function Px(t,e){return e==1?t.a+t.f++:t.i+t.g++;}function rx(t){return t.g.a.length+t.f.a.length;}function jr(t,e){return t.H[e]==257||t.H[e]==129;}function H9(t,e){return t.p&&e<t.f?iA(t.p,e):0;}function pr(t,e){return t.p&&e<t.g?sP(t.p,e):0;}function N(t,e){return Fe(e,t.a.length),t.a[e];}function _3(t){var e;return e=t.slice(),kv(e,t);}function H(t){var e;return e=qL(t),Xv(t,e),e;}function Ru(t){return t.p==null&&(t.p=mW(t)),t.p;}function ix(t){return t.d==null&&bb(t,10240),t.d;}function fx(t){return !Z4&&(Z4=new BU()),Ts(Z4,t);}function ae(t,e){var A=t.Jc();return A.setRGB(e);}function xU(t){var e=t.Kc();return e.getWidth();}function NU(t){var e=t.Kc();return e.getHeight();}function pd(t){var e=t.Bc();return e.grabFocus();}function Te(t,e){var A;return A=e,XP(G9(t,A));}function Dx(t,e){var A;for(A=0;A<e;++A)t[A]=0;}function ux(t,e){var A;for(A=0;A<e;++A)t[A]=2;}function Cd(t,e){this.c=t,this.a=e,this.b=false;}function OU(t){this.b=t,this.a=new f1(),CN(this,t);}function Hd(t,e){e?this.a=e:this.a=new R3(t);}function _P(t){t?this.a=t:this.a=new R3(null);}function YA(t){var e=t.Ec();return e.isSelected();}function Nt(t,e){var A=t.Ec();return A.addItem(e);}function GU(t,e,A,n){var P=t.Kc();P.setRGB(e,A,n);}function JU(t,e){var A=t.Ec();return A.setText(e);}function N8(t,e){var A=t.Ec();return A.setText(e);}function k1(t,e,A,n,P,r){return mk(t,e,A,n,P,0,r);}function Md(t,e,A,n){return (n[t]&n[e]&~n[A])!=0;}function Oe(t,e,A){t.u[e]&=-49,t.u[e]|=A,t.T&=7;}function Vd(t,e,A){t.u[e]&=-49153,t.u[e]|=A<<14;}function Gn(t,e,A){A?t.u[e]|=I0:t.u[e]&=wy;}function gP(t,e,A){A?t.u[e]|=512:t.u[e]&=-513;}function pe(t,e){t.K!=e&&(t.K=e,e||zb(t),t.T=0);}function Qx(t){t.b||(t.b=t.a.Tb(),t.a.size());}function $3(t){Lj(),this.a="Helvetica",this.b=t;}function Ed(){LF(),zD.call(this,4,(e9(),dl));}function Sd(){Sd=d1,nc=c(FPt,Ke,143,256,0,1);}function qd(){qd=d1,Ac=c(vPt,Ke,142,256,0,1);}function Id(){Id=d1,ec=c(BPt,Ke,141,128,0,1);}function ox(){return B(d(xV,1),k,6,15,[0,1,2]);}function ju(t,e){return L1(t),t+(""+(L1(e),e));}function Jn(t){return Hi(t)?vt((L1(t),t)):t.Yc();}function Ux(t){return wD(new PD(t.e).a)<t.c;}function a3(t){return Array.isArray(t)&&t.ud===AD;}function M9(t){return t.length==0?0:Q1(t,P1,Et);}function Lx(t,e){!t.b&&(t.b=new Ri()),K8(t.b,m1(e));}function sx(t,e,A){Xq(new Av(t._,e),new ld(t,e,A));}function yx(t,e,A){XF(0,e,t.length),Xi(t,0,e,A);}function dP(t,e,A){kQ(),mL.call(this,t,e,A,255);}function V9(t,e,A){var n;for(n=0;n<e;++n)t[n]=A;}function lx(t,e){var A;for(A=0;A<e;++A)t[A]=-1;}function Tx(t,e){var A;for(A=0;A<e;++A)t[A]=-1;}function tT(t){var e;for(e=0;e<t.q;e++)t.u[e]&=wy;}function xd(t){var e;for(e=0;e<t.q;e++)t.u[e]&=-449;}function hx(t){var e;for(e=0;e<t.q;e++)t.u[e]&=-513;}function Nd(t){var e;return e=t.a[0],t.e>0?e:-e|0;}function Cr(t){var e;return e=qL(t),e.k=t,e.f=1,e;}function cx(t,e){return !t&&(t=[]),t[t.length]=e,t;}function Od(t,e){return hA(0,t,0,e.a.length,true,e);}function Gd(t,e,A,n){return hA(1,e,0,A,n,new Wo(t));}function $P(t,e){return t.a.get(e)!==void 0;}function zU(t,e){return t==null?e:e==null?t:t+","+e;}function eT(t){return !Array.isArray(t)&&t.ud===AD;}function Jd(t,e,A){return t.c?$8(e.b,A.b):um(e,A);}function wx(t,e){return S0(t.l&e.l,t.m&e.m,t.h&e.h);}function gx(t,e){return S0(t.l|e.l,t.m|e.m,t.h|e.h);}function dx(t,e){return S0(t.l^e.l,t.m^e.m,t.h^e.h);}function j1(t,e){return jn(Kk(o0(t)?Ce(t):t,e));}function q0(t,e){return jn(f5(o0(t)?Ce(t):t,e));}function DA(t,e){return jn(PK(o0(t)?Ce(t):t,e));}function Jt(t){return o0(t)?t|0:E7(t);}function he(t){return o0(t)?""+t:iR(t);}function zd(t){return t.N==null&&(ui(t),dZ(t)),t.N;}function pD(t){t.a||(t.a=true,LL(t.e,new Sw(t)));}function e1(t){t.b||(t.b=true,LL(t.f,new Ew(t)));}function pu(t,e){if(t<0||t>=e)throw At(new u7());}function AT(t,e){if(t==null)throw At(new c7(e));}function Oi(t){this.b=null,this.a=(yU(),t||Bl);}function nT(t){this.c=0,this.d=0,this.b=t,this.a=0;}function Yd(t,e){this.k=t,this.c=0,this.g=e,Fs(this);}function C1(t){p3(this),this.f=t,VT(this),this.jc();}function Kd(t,e){var A=t.Bc();return A.setCursor(e);}function Bx(t){var e;return e=i2(DP,t),e?rj(e):null;}function vx(t){var e;return e=i2(DP,t),e?Zj(e):null;}function Fx(t){var e;return e=i2(DP,t),e?bj(e):null;}function BP(t,e){var A=t.Ec();return A.setEnabled(e);}function Xd(t,e,A){var n=t.Kc();return n.getRGB(e,A);}function mx(t,e,A){return A<0?-1:t.lastIndexOf(e,A);}function Cu(t,e){return H8(e)?wB(t,e):!!SU(t.a,e);}function kx(t){return S0(~t.l&x0,~t.m&x0,~t.h&aA);}function Zd(t,e){W5(),Me.call(this,t),d_(this,e);}function Wd(t,e,A){p9.call(this,e),Oa(this,t,e,A);}function Ue(t,e,A){be(),this.e=t,this.d=e,this.a=A;}function bx(t,e,A){A?t.F[e]|=L8:t.F[e]&=-32769;}function Rx(t,e,A){A?t.F[e]|=u0:t.F[e]&=-65537;}function jx(t,e,A){t.u[e]&=-67108865,A&&(t.u[e]|=Tn);}function O8(t,e){return e<t.g&&(E8(t.p,e)||t.H[e]==8);}function _d(t,e,A){return D8(t,e,e.D[0][A],e.D[1][A]);}function Hr(t,e){return t.a+=e.a,t.b+=e.b,t.c+=e.c,t;}function px(t,e){return t.a-=e.a,t.b-=e.b,t.c-=e.c,t;}function Hu(t){t.a=new Ld(t),t.c=new sd(t),++t.b;}function Cx(t,e,A,n,P){for(;e<A;)n[P++]=Ji(t,e++);}function Mu(t,e){var A;for(A=0;A<e;++A)t[A]=false;}function $d(t){var e;for(e=0;e<t.r;e++)t.F[e]&=-98305;}function Hx(t,e){var A=t.Jc();return A.drawPolygon(e);}function YU(t,e){var A=t.Jc();return A.fillPolygon(e);}function uA(t,e){var A=t.Ec();return A.setSelected(e);}function ad(t){var e=t.Ac();return e.getDrawContext();}function tB(t){var e=t.zc();return e.getDrawContext();}function CD(t){var e=t.zc();return e.getCanvasWidth();}function HD(t,e){return Gt(e,t.length+1),t.substr(e);}function zn(t,e){for(L1(e);t.ad();)xq(e,t.bd());}function aP(t,e){var A;return A=Sr(t.a,e,t),A==null;}function Gi(t,e){return Ye(t.a,e,(k9(),go))==null;}function Mx(t,e){return G(t,e)<0?-1:G(t,e)>0?1:0;}function vP(t){return t.e==0?t:new Ue(-t.e,t.d,t.a);}function PT(t,e){return t.f[e]&&(t.o[e]==1||t.o[e]==2);}function Mr(t,e){J(t.c,"  "),J(t.c,e),J(t.c,$A);}function rT(t,e){ML.call(this,t,true,e),this.a=true;}function eB(t){var e;e=GK(t),this.a=e,this.b=new bD(e);}function Vr(t){var e=t.zc();return e.getCanvasHeight();}function Vx(t,e,A){var n=t.zc();return n.onChange(e,A);}function AB(t,e){var A=t.Bc();return A.createDialog(e);}function KU(t,e){var A=t.Jc();return A.setLineWidth(e);}function Ex(t,e){var A;A=e+1,A>t.length&&(t.length=A);}function t8(t,e,A){DL(e,t.a.length),t.a.splice(e,0,A);}function Sx(t,e,A,n,P,r){t.F=e,t.B=A,t.D=n,t.C=P,t.A=r;}function XU(t,e,A){A?t.u[e]|=Po:t.u[e]&=gy,t.T&=7;}function iT(t,e,A){t.H[e]=A==1?1:A==2?2:A==3?4:16,t.T=0;}function qx(t,e,A,n){return {x:t,y:e,width:A,height:n};}function G8(t,e){return new Ne(t.a-e.a,t.b-e.b,t.c-e.c);}function ZU(t,e){return t.j[e]==2&&t.o[e]==2&&t.C[e]<=7;}function nB(t,e){return new wP(e.a-t.a,e.b-t.b,e.c-t.c);}function Yn(t){var e;return e=new zA(t.q,t.r),ff(t,e),e;}function J8(t){var e;for(e=0;t>0;)t>>=1,++e;return e;}function PB(t,e){return t.a+=String.fromCharCode(e),t;}function Ge(t,e){return t.a+=String.fromCharCode(e),t;}function L1(t){if(t==null)throw At(new d9());return t;}function rB(t,e){return t.c==null?null:t.c[e];}function WU(t,e,A){var n=t.Ic();return n.setLayout(e,A);}function fT(t){var e=t.Jc();return e.getBackgroundRGB();}function iB(t){var e=t.Jc();return e.getForegroundRGB();}function B0(t){var e=t.Ec();return e.getSelectedIndex();}function Ix(t){var e;return e=t-10,(e<0?48+t:97+e)&c1;}function xx(t,e){var A;return A=Cj(t),A?ts(A,e):null;}function Er(t,e){return H8(e)?xu(t,e):XP(SU(t.a,e));}function DT(t,e){return new Su(t.d,t.a,t.b,t.c.jd(e));}function Ji(t,e){return Gt(e,t.length),t.charCodeAt(e);}function Nx(t,e){t.c=e,t.e*w.Math.pow(10,-t.b/1.36);}function fB(t){G1(t),t.eb=w.Math.max(t.eb,3),e1(t.k);}function _U(t,e,A){t.d=6,t.e=A,t.c=e,t.f=(e[t.e]&63)<<11;}function DB(t,e,A){this.i=t,this.d=e,this.f=DX(A,t,e);}function zi(t,e,A,n){this.b=t,this.a=e,this.c=A,this.d=n;}function qt(t,e,A,n){this.c=t,this.b=e,this.d=A,this.a=n;}function QA(t,e,A,n){this.c=t,this.d=e,this.b=A,this.a=n;}function uB(t,e,A,n){sU.call(this,t,n),this.b=e,this.a=A;}function uT(t,e){this.a=s4,this.d=t,this.b=e,this.c=-1;}function $U(t){this.d=t,this.a=this.d.b,this.b=this.d.c;}function QB(){nu.call(this),this.b=new f1(),this.a=new f1();}function oB(t,e,A){KO.call(this,t,e,e.D[0][A],e.D[1][A]);}function Sr(t,e,A){return H8(e)?ED(t,e,A):nb(t.a,e,A);}function QT(t,e){return O1(t)===O1(e)||t!=null&&MP(t,e);}function z8(t,e){return O1(t)===O1(e)||t!=null&&MP(t,e);}function Ox(t){return String.fromCharCode.apply(null,t);}function Kn(t){return /\d/.test(String.fromCharCode(t));}function aU(t,e,A){return O0(t,e,A,$0(t,e)||$0(t,A)?16:1);}function UB(t){return Er((!b4&&(b4=new hp()),b4).b,m1(t));}function tL(t){if(t==null)throw At(new d9());return t;}function LB(t,e){return t.c!=e.c?t.c>e.c?1:-1:0;}function Gx(t){return t.a==t.b?-1:t.c[t.a++];}function oT(t,e){var A;return A=t.C[e],A==7||A==15||A==33;}function Jx(t,e){var A;return A=TY(t.a,e),t.a=wq(t.a,A),A;}function zx(t,e){t.H=e,t.eb=w.Math.max(t.eb,1),e1(t.k);}function Vu(t,e){e.c*=t.c,e.a=e.a*t.c+t.a,e.b=e.b*t.c+t.b;}function Eu(t,e,A,n){return A<n?t.a[e][n][A]:t.a[e][A][n];}function Yx(t,e,A,n){for(var P=0;P<=n;P++)t[P]=e[A+P];}function Su(t,e,A,n){this.d=t,this.a=e,this.b=A,this.c=n;}function sB(t,e){this.v=new eD(),this.L=t,this.G=e,this.xb();}function yB(t){this.b=new kL(11),this.a=(yU(),t||Bl);}function Y8(t){this.e=t,(t&1)==0&&!bo&&!bo&&(bo=new Bk());}function Kx(t){w.setTimeout(function(){throw t;},0);}function eL(t,e,A,n){var P=t.Jc();return P.setFont(e,A,n);}function Xx(t,e){var A=t.Ec();return A.setSelectedItem(e);}function Wt(t,e){var A=t.Ec();return A.setSelectedIndex(e);}function UT(t,e){var A;return A=pn(t,e),A+WA(t,e,A,t.C[e]);}function Zx(t,e){var A;return A=hK(t,e),A?ts(A,e):null;}function Wx(t,e){return t.b!=e.b?t.b<e.b?-1:1:0;}function lB(t,e,A){e<A?t.u[A][e]=true:t.u[e][A]=true;}function _x(t,e){var A;for(A=0;A<e.q;A++)mD(t.k[A],e.J[A]);}function $x(t){var e;for(e=0;e<t.R.f;e++)jx(t.R,e,t.M[e]);}function ax(t){var e;for(e=aj(t);e;)WT(t,e,Do),e=aj(t);}function tN(t){var e;for(e=Vv(t);e;)WT(t,e,TC),e=Vv(t);}function TB(t){var e;this.a=t,e=this.Bc(),e.register(this);}function AL(t,e,A){_A(),A?this.a=A:this.a=new zA(t,e);}function hB(t,e,A){var n=t.Ac();return n.setDimensions(e,A);}function MD(t,e,A){var n;return n=new xw(AB(t,e)),aJ(n,A),n;}function E9(t,e){var A;return A=qL(t),Xv(t,A),A.f=e?8:0,A;}function cB(t,e){var A;return A=Du(t.sd),e==null?A:A+": "+e;}function oA(t,e,A){return Ct(e,A,t.length),t.substr(e,A-e);}function wB(t,e){return e==null?!!SU(t.a,null):$P(t.c,e);}function gB(t,e){return new Su(e.d,new Qg(e,t),e.b,e.c);}function Fn(t,e){return t.a[hA(0,e,0,t.a.length,true,t)][2];}function MA(t,e){return t.a[hA(0,e,0,t.a.length,true,t)][5];}function qr(t,e){return t.a[hA(0,e,0,t.a.length,true,t)][4];}function e8(t,e){return t.a[hA(0,e,0,t.a.length,true,t)][3];}function eN(t,e){return xr(t,e.c,e.d)&&xr(t,e.c+e.b,e.d+e.a);}function AN(t){return String.fromCodePoint(t).trim()==="";}function dB(t){return /[A-Z]/i.test(String.fromCharCode(t));}function BB(t){return /[A-Z]/i.test(String.fromCharCode(t));}function nN(t){return HT(t.$c().Vb(),oO(new nw(),new Bw()));}function PN(t){return t>=5&&t<=9||t>=15&&t<=17||t==35||t==53;}function vt(t){return Math.max(Math.min(t,Et),-2147483648)|0;}function rN(t,e){return Yr(t.toLowerCase(),e.toLowerCase());}function LT(t,e,A){Rd.call(this,nB(new gT(t,e),new gT(t,A)));}function v0(t,e,A){Rd.call(this,nB(new Yi(t,e),new Yi(t,A)));}function sT(t,e){Kl.call(this,t),DL(e,t.size()),this.a=e;}function qu(t,e){return t.s==null&&(ui(t),ea(t,e,t.R.J)),t.s;}function iN(t,e){return Er(t.a,e)!=null?Er(t.a,e):(Y9(),q2);}function yT(t,e){return ((t.G[e]&7680)>>9)+((t.G[e]&cy)>>13);}function nL(t,e){return t.a[hA(0,e,0,t.a.length,true,t)][6]>0;}function vB(t,e){return t.a[hA(0,e,0,t.a.length,true,t)][8]>0;}function PL(t,e){return t.a[hA(0,e,0,t.a.length,true,t)][5].a;}function fN(t,e){return jr(t.V,e)&&(bs(t,e)!=-1||YL(t,e)!=-1);}function mn(t){return w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c);}function Iu(t){var e;e=t.a,t.a=t.b,t.b=e,e=t.c,t.c=t.d,t.d=e;}function lT(t){var e;return t==null?0:(e=a8(t),e|0);}function FB(t,e){return Xt(e,84)?wk(t.a,e):false;}function DN(t){if(t.Wc())return null;var e=t.k;return wo[e];}function TT(t,e){var A,n;return A=e,n=new Zo(),kj(t,A,n),n.d;}function _0(t,e,A,n){var P;return P=Z9(t,6),vU(t.J[P],e,A,n),P;}function mB(t,e,A,n){var P;return P=ZA(t,e,A),P!=-1&&uh(t,P,n);}function hT(t,e,A,n){var P=t.Jc();return P.drawString(e,A,n);}function rL(t,e,A,n){var P=t.Jc();return P.fillCircle(e,A,n);}function cT(t,e,A){var n=t.Bc();return n.showHelpDialog(e,A);}function uN(t,e){var A;for(A=0;A<e;++A)t[A]=new Zl(t[A]);}function iL(t,e){var A;A=t.b,t.b=e.b,e.b=A,A=t.d,t.d=e.d,e.d=A;}function kB(t,e){Bs(),this.b=t,ut(this.b,63),this.d=e,_R(this);}function Yi(t,e){this.a=t[3*e],this.b=t[3*e+1],this.c=t[3*e+2];}function bB(t,e,A){Ho||bL(),eW(e),this.a=new z5(t.a,e,new UP());}function A8(t,e,A,n){t.F[e]&=-131080,t.F[e]|=A,n&&(t.F[e]|=4);}function Ir(t,e,A,n,P){var r=t.Jc();return r.drawLine(e,A,n,P);}function QN(t,e){return bF(t,e)?(tF(t),true):false;}function oN(t,e){return n8(e),bP(t,c(E,q,6,e,15,1),0,e);}function VD(t,e){return n8(e),bP(t,c(Ut,ht,6,e,15,1),0,e);}function kn(t,e){return n8(e),bP(t,c(F,k,6,e,15,1),0,e);}function UN(t){var e;return S8(l2(t,0,(e=t.length,ND(),e)));}function xu(t,e){return e==null?XP(SU(t.a,null)):fg(t.c,e);}function RB(t,e){return e===t?"(this Map)":e==null?nr:ZD(e);}function LN(t){return /[A-Z\d]/i.test(String.fromCharCode(t));}function sN(t){return t==2||t==10||t==18||t==36||t==54||t==86;}function FP(t,e){return (t.u[t.D[0][e]]&t.u[t.D[1][e]]&512)!=0;}function jB(t,e){var A=t.a=t.a||[];return A[e]||(A[e]=t.Rc(e));}function yN(t,e,A,n,P){var r=t.Jc();return r.clearRect(e,A,n,P);}function lN(t,e,A){t.b=null,t.a=e,A==null?t.c=Ts(t,e):t.c=A;}function TN(t,e,A){t.e=null,t.d=e,A==null?t.f=Ts(t,e):t.f=A;}function ED(t,e,A){return e==null?nb(t.a,null,A):sm(t.c,e,A);}function hN(t,e){t.b.a.length!=0&&J(t.b,"<NL>"),J(t.b,e);}function fL(t,e){return n8(e),bP(t,c(zt,_t,6,e,15,1),0,e);}function cN(){return No||(!No&&(No=new ed()),No);}function wT(t){if(t<0)throw At(new wr("bitIndex < 0: "+t));}function DL(t,e){if(t<0||t>e)throw At(new wr(o6+t+U6+e));}function Fe(t,e){if(t<0||t>=e)throw At(new wr(o6+t+U6+e));}function Gt(t,e){if(t<0||t>=e)throw At(new Q3(o6+t+U6+e));}function gT(t,e){this.a=t.J[e].a,this.b=t.J[e].b,this.c=t.J[e].c;}function pB(t,e,A){this.k=t,this.c=2,this.g=A,this.j=e,Fs(this);}function CB(t){Bs(),this.b=t,ut(this.b,63),this.d=Ik(t),_R(this);}function dT(){dT=d1,yE=(e6(),Kf),LE=_V,sE=$V,lE=aV;}function HB(t){var e,A;for(e=0,A=t-1;A>0;)A>>=1,++e;return e;}function wN(t){throw new Error("missing static resource: "+t);}function gN(t){return t.r?"Unresolved SMARTS features:"+t.r:"";}function dN(t,e){return P0(t.u,z(t.u,0,e))&&P0(t.u,z(t.u,1,e));}function MB(t,e){return j0(t.a[hA(0,e,0,t.a.length,true,t)][1]);}function VB(t,e){return j0(t.a[hA(0,e,0,t.a.length,true,t)][4]);}function EB(t,e){return j0(t.a[hA(0,e,0,t.a.length,true,t)][2]);}function xr(t,e,A){return e>=t.c&&e<=t.c+t.b&&A>=t.d&&A<=t.d+t.a;}function BN(t,e,A){return gt(V(e.c[t.d[A]],j1(1,t.b[A])),0);}function K0(t,e,A){return bA(t.J[e].a,t.J[e].b,t.J[A].a,t.J[A].b);}function vN(){return fQ(),B(d(vl,1),Ke,95,0,[SE,xo,Uc]);}function FN(){return Y9(),B(d(Btt,1),Ke,107,0,[O4,J4,G4,yi,q2]);}function mP(t){return be(),G(t,0)>=0?ge(t):vP(ge(p0(t)));}function V(t,e){return jn(wx(o0(t)?Ce(t):t,o0(e)?Ce(e):e));}function Y(t,e){return jn(gx(o0(t)?Ce(t):t,o0(e)?Ce(e):e));}function Nr(t,e){return jn(dx(o0(t)?Ce(t):t,o0(e)?Ce(e):e));}function mN(t,e){return e<t.g&&(E8(t.p,e)||t.H[e]==8)?1.5:dt(t,e);}function uL(t,e){L1(e),t.a[t.c]=e,t.c=t.c+1&t.a.length-1,Iz(t);}function $t(t){return BD(t.a<t.c.a.length),t.b=t.a++,t.c.a[t.b];}function Nu(t,e){e.c=e.c*t.c+t.a,e.d=e.d*t.c+t.b,e.b*=t.c,e.a*=t.c;}function SB(t){k7(),XL.call(this,t),this.a="",this.b=t,this.a="";}function qB(t,e){Ue.call(this,1,2,B(d(F,1),k,6,15,[t,e]));}function BT(t,e,A){return A=dK(A),t.replace(new RegExp(e,"g"),A);}function SD(t){var e=t.Jc();return e.getSelectionBackgroundRGB();}function Ki(t,e){var A;return A=pn(t,e),A+WA(t,e,A,t.C[e])-N1(t,e);}function IB(t,e){var A;for(A=0;A<t.q;A++)t.J[A].a*=e,t.J[A].b*=e;}function vT(t,e,A,n,P){t.i[0].a=e,t.i[0].b=A,t.i[1].a=n,t.i[1].b=P;}function Or(t,e,A){return (t.H[e]==257||t.H[e]==129)&&t.D[0][e]==A;}function xB(t,e,A){var n;dm(e,A,t.a.length),n=A-e,t.a.splice(e,n);}function i0(t,e,A,n){var P=t.Ic(),r=e.Ec();return P.add(r,A,n);}function QL(t,e){var A=t.Ic();function n(){e.nc();}A.showDialog(n);}function NB(t,e){var A;return A=1-e,t.a[A]=Wu(t.a[A],A),Wu(t,e);}function FT(t,e){if(e==null)throw At(new d9());return Cu(t.e,e);}function OB(t,e){if(e==null)throw At(new d9());return Er(t.e,e);}function S9(t,e){var A,n;return n=V(t,h1),A=j1(e,32),Y(A,n);}function qD(t,e,A){dm(e,A,t.size()),this.c=t,this.a=e,this.b=A-e;}function oL(t){Fu(t.b!=-1),t.c.removeAtIndex(t.b),t.a=t.b,t.b=-1;}function bn(t){for(;t.d>0&&t.a[--t.d]==0;);t.a[t.d++]==0&&(t.e=0);}function UL(t,e){e.K=t.K,e.L=t.L,e.S=t.S,e.I=t.I,e.P=t.P,e.T=t.T&24;}function GB(t,e){var A;return A=e.C[t],A<(T2(),IA).length?IA[A]:2;}function kN(t,e){var A;return e==null?null:Z5(t,KA((A=e,c0(),A)));}function JB(t,e){return t.j=null,A6(t,new nn(new R9(e)))?t.j:null;}function zB(){this.a=tP("/resources/forcefield/mmff94/bndk.csv");}function YB(){this.a=tP("/resources/forcefield/mmff94/dfsb.csv");}function KB(){this.a=sk("/resources/forcefield/mmff94/def.csv");}function XB(){this.a=sk("/resources/forcefield/mmff94/atom.csv");}function ZB(){this.a=tP("/resources/forcefield/mmff94/covrad.csv");}function mT(t,e,A,n,P){var r=t.Jc();return r.fillRectangle(e,A,n,P);}function bN(t,e,A){var n;n=Pz();try{return OI(t,e,A);}finally{WN(n);}}function RN(t,e){var A;return A=L$(t,e),A?new _P(A):null;}function WB(t,e){var A;return A=OB(t,e),++t.a,A&&(++A.b,++t.b),A;}function Gr(t){var e;return o0(t)?(e=t,e==-0?0:e):dO(t);}function jN(t){Hs();var e,A;for(ut(t,1),A=t.f,e=0;e<A;e++)yp(t,e);}function pN(t){var e,A;for(A=Fj(t);A;)e=UY(A),WT(t,e,Qo),A=Fj(t);}function CN(t,e){var A=t;e.setEventHandler(function(n,P){A.Dc(n,P);});}function kT(t,e,A,n){var P=t.Jc();return P.drawCenteredString(e,A,n);}function HN(t,e,A,n,P){var r=t.Jc();return r.drawDottedLine(e,A,n,P);}function bT(t,e,A,n,P){this.a=t,this.b=e,this.g=A,this.f=n,this.e=P;}function RT(t){this.a=c(F,k,6,t,15,1),this.b=c(F,k,6,t,15,1);}function kA(t,e){be(),Ue.call(this,t,1,B(d(F,1),k,6,15,[e]));}function jT(){jT=d1,GE=B(d(F,1),k,6,15,[40,20,20,100,20]);}function MN(){return t9(),B(d(vtt,1),Ke,97,0,[sl,Ll,Ul,yl,jo,ll]);}function VN(){return OT(),B(d(RPt,1),Ke,80,0,[oc,ME,VE,EE]);}function _B(t,e,A){return wD(new PD(t.e).a)<t.c?Mv(t,e,A):null;}function $B(t,e,A){t.b=e,t.a=A,t.c&&t.e*w.Math.pow(10,-e/1.36);}function aB(t){return BD(t.a<t.c.size()),t.c.getAtIndex(t.b=t.a++);}function EN(t){return function(){return bN(t,this,arguments);};}function SN(t){if(!("stack"in t))try{throw t;}catch{}return t;}function UA(t){var e=t.Ic(),A=e.createComboBox();return new T7(A);}function Le(t,e){var A=t.Ic(),n=A.createLabel(e);return new l7(n);}function LL(t,e){var A=t,n=t.Bc();n.runLater(function(){A.Cc(e);});}function pT(t,e){var A;return A=t.u[e]&hn,A==0?0:A==ie?2:A==q1?3:4;}function tv(t,e){var A;return A=t-e,A>=U1?A-=F0:A<m6&&(A+=F0),A;}function Ou(t,e,A){var n;return n=new DB(e,A,t.C),JS(n,vz(t,n)),n;}function ID(t,e){var A;return A=t.b?Te(t.b,m1(e)):null,A?A.a:e-1;}function sL(t,e){var A;return A=t.c?Te(t.c,m1(e)):null,A?A.a:e-1;}function K8(t,e){var A;return A=$9(t,e),A<0&&(A=-(A+1),t8(t.d,A,e)),A;}function qN(t,e){var A;for(A=t.d-1;A>=0&&t.a[A]==e[A];A--);return A<0;}function IN(t,e,A){for(;A>=0;--A)if(z8(e,t.a[A]))return A;return  -1;}function q9(t,e,A){var n;return n=(Fe(e,t.a.length),t.a[e]),t.a[e]=A,n;}function ev(t){vi(t.g.a,0),vi(t.f.a,0),vi(t.a.a,0),t.b=null,t.d=-1;}function Gu(t,e){t.e&&(!t.r&&(t.r=new V0()),J(t.r," "),J(t.r,e));}function kP(t,e){return e.e==0||t.e==0?y9:(P9(),Ms(t,e));}function Av(t,e){xk(),this.c=MD(t,"Edit Text",this),this.e=e,M_(this);}function Jr(t){J1(),bv.call(this,t?t.M:256,t?t.N:256),t&&ff(t,this);}function nv(t,e){return e<t.g.a.length?N(t.g,e):N(t.f,e-t.g.a.length);}function Pv(t,e,A){return t.f.k.D[0][e]==A?t.f.k.D[1][e]:t.f.k.D[0][e];}function rv(t,e,A){var n;for(n=0;n<t.e.length;n++)t.a[n]+=e,t.b[n]+=A;}function iv(t,e,A,n){var P=t.Bc();return P.createImageFromBase64(e,A,n);}function xN(t,e){var A=t.Fc(),n=new CA(e);return A.copyMolecule(n);}function NN(t){var e,A;return A=Z5(new n3(),KA((e=t,ND(),e))),new _P(A);}function yL(t){var e;for(e=t.length-1;e>=0&&(t[e]|0)==0;--e);return e;}function CT(t,e){var A;return A=t.C[e],A==8||A==16||A==34||A==52||A==84;}function ON(t,e){var A;return A=t.C[e],A==9||A==17||A==35||A==53||A==85;}function HT(t,e){var A;return e.c.kd(WO(t,e.d.pc(),(A=new Kw(e),A)));}function GN(t,e){return P9(),e<Dc.length?eZ(t,Dc[e]):kP(t,Pi(e));}function zr(t){Vh(),FI(this,Jt(V(q0(t,24),Qi)),Jt(V(t,Qi)));}function n8(t){if(t<0)throw At(new g7("Negative array size: "+t));}function JN(){throw new Error("drug likeness must be assessed first");}function fv(){this.a=tP("/resources/forcefield/mmff94/vanderwaals.csv");}function MT(t){this.d=t,this.b=this.d.a.entries(),this.a=this.b.next();}function VT(t){return t.j&&(t.backingJsObject!==vp&&t.jc(),t.g=null),t;}function Dv(t){t.cb&&(ff(t.cb,t.V),t.I=t.bb?new us(t.bb):null);}function fn(t,e){var A=t.Ic(),n=A.createCheckBox(e);return new y7(n);}function zN(t,e){var A;return A=GQ(t,e,null),A?new _P(A):null;}function uv(t,e){var A;return A=new r7(),A.c=e,ut(t,15),cp(A,t,true),A.b.a;}function Xn(t){var e,A;e=Lm(t);do A=e,jW(t),e=Lm(t);while(A!=e);return e;}function YN(t,e){return t.a=(t.a+e.a)/2,t.b=(t.b+e.b)/2,t.c=(t.c+e.c)/2,t;}function Dn(t,e){if(!e||e.q==0){t.H=null;return;}t.H=e,t.L=false,ut(t.H,1);}function lL(t,e){return e[0]!=-1&&e[3]!=-1?xQ(t,e):s_(t.o,t,e);}function KN(t,e){var A;return A=t.a.get(e),A??c(fP,e0,1,0,5,1);}function I1(t,e){var A;A=e.j,(A&t.J)==0&&(LL(t._,new Td(t,A,e)),t.J|=A);}function Qv(t,e){var A;t.b&&(G1(t),A=new Km(t._,t.V,e),_I(A,new Cw(t)));}function ov(t,e,A){var n=t.Bc(),P=n.createImage(e,A);return new _o(P);}function TL(t){var e,A,n;return e=t&x0,A=t>>22&x0,n=t<0?aA:0,S0(e,A,n);}function hL(t,e,A){var n,P;n=e>>4,P=2*(e&15),t.a[n]&=~(3<<P),t.a[n]|=A<<P;}function Je(t,e,A,n){n?t.G[e]|=A:t.G[e]&=~A,t.T=0,n&&A!=0&&(t.K=true);}function cL(t,e,A){this.b=t,this.d=e,this.e=A,this.c=this.d+(""+this.e);}function wL(t,e,A,n){var P;return P=c(F,k,6,e,15,1),pY(P,t,e,A,n),P;}function Uv(){Uv=d1,Lc=B(d(NA,1),te,6,14,[0,1,3,7,15,31,63,127]);}function XN(t){t.eb=w.Math.max(t.eb,4),e1(t.k),I1(t,new S1(t,1,false));}function ZN(t,e){return w.Math.pow(10,w.Math.log10(2e3)*t/(e-1)-1);}function Lv(t){return t==5||t==6||t==7||t==8||t==15||t==16||t==33||t==34;}function WN(t){t&&FO((o3(),_4)),--Mo,t&&Vo!=-1&&(nI(Vo),Vo=-1);}function Yr(t,e){var A,n;return A=(L1(t),t),n=(L1(e),e),A==n?0:A<n?-1:1;}function sv(t,e){var A,n;return A=e.dd(),n=G9(t,A),!!n&&z8(n.d,e.ed());}function I9(t,e){return e==0||t.e==0?t:e>0?Nm(t,e):Kb(t,-e);}function ET(t,e){return e==0||t.e==0?t:e>0?Kb(t,e):Nm(t,-e);}function gL(t,e){t.eb=w.Math.max(t.eb,e),e1(t.k),I1(t,new S1(t,1,true));}function yv(t){var e;return !!(t.r&&(e=JO(t.r),zR(t,e)));}function _N(t){var e,A;return e=t.c.e.length,A=t.c.e.length,A<e?-1:A>e?1:0;}function $N(t){var e,A;return e=t.c.e.length,A=t.c.e.length,e<A?-1:e>A?1:0;}function xD(t){var e;return e=(T2(),IA)[t<IA.length?t:6],e*(.9);}function lv(t,e){var A;wT(e),A=e/31|0,Ex(t.a,A),t.a[A]=t.a[A]|0|1<<e%31;}function dL(t,e){return H8(e)?e==null?P5(t.a,null):pF(t.c,e):P5(t.a,e);}function Tv(t,e){return t.a?J(t.a,t.b):t.a=new vn(t.d),dg(t.a,e),t;}function BL(t,e){var A;return A=c(F,k,6,e,15,1),sA(t,0,A,0,t.length),A;}function vL(t,e){var A;for(A=t-e;A<m6;)A+=F0;for(;A>U1;)A-=F0;return A;}function hv(t,e){var A,n;return n=t.j.k[e],A=t.j.j[e],n==0?t.b:n==1?A:t.a+A;}function ce(t,e,A,n,P,r){var i=t.Ic(),f=e.Ec();return i.add(f,A,n,P,r);}function ST(t,e,A,n,P){p9.call(this,e),this.c=zX(this,t,n,e,A),this.b=P;}function FL(t,e,A,n){var P;return P=c(F,k,6,e+1,15,1),HW(P,t,e,A,n),P;}function mL(t,e,A,n){kQ(),this.a=(n&255)<<24|(t&255)<<16|(e&255)<<8|A&255;}function c(t,e,A,n,P,r){var i;return i=Qk(P,n),P!=10&&B(d(t,r),e,A,P,i),i;}function cv(){return z1(),""+null.vd(),null;}function wv(t){this.b=tP("/resources/forcefield/mmff94/bond.csv"),this.a=t;}function gv(t){this.b=tP("/resources/forcefield/mmff94/stbn.csv"),this.a=t;}function dv(t){this.b=tP("/resources/forcefield/mmff94/angle.csv"),this.a=t;}function kL(t){gu(this),IU(t>=0,"Initial capacity must not be negative");}function bL(){throw new Error("static resources must be registered first");}function Bv(){this.a=tP("/resources/forcefield/mmff94/herschbachlaurie.csv");}function ND(){ND=d1,new Cg(),new s3("ISO-LATIN-1"),new s3("ISO-8859-1");}function aN(t){if(!t)throw At(new rU("Unable to add element to queue"));}function Ct(t,e,A){if(t<0||e>A||e<t)throw At(new Q3(KQ+t+Q6+e+mp+A));}function tO(t,e){try{t.c=Qn(e);}catch(A){if(A=a1(A),!Xt(A,40))throw At(A);}}function LA(t,e){var A;return A=(Fe(e,t.a.length),t.a[e]),t.a.splice(e,1),A;}function RL(t){var e;return e=-1,t.a!=-2?(e=t.a,t.a=-2):e=t.b.Oc(),e;}function X8(t,e){var A;return A=x9(t,e,0),A==-1?false:(LA(t,A),true);}function vv(t,e){var A;return A=new Zo(),A.c=true,A.d=e.ed(),kj(t,e.dd(),A);}function OD(t,e){var A;return A=hA(0,e,0,t.a.length,true,t),A>=0&&t.a[A][7]>0;}function Fv(t,e){return e<t.g&&(E8(t.p,e)||t.H[e]==8)?0:t.H[e]&127;}function mv(t,e){return e<t.g&&(E8(t.p,e)||t.H[e]==8)?0:t.H[e]&127;}function eO(t,e){return t.a[e]>-1?t.a[e]:t.C[e]==1?R$(t,e):f6(t,e);}function we(t,e,A,n){t.u[e]&=-8,A!=3&&(t.u[e]&=gy),t.u[e]|=A,n&&(t.u[e]|=4);}function AO(t){var e;for(ut(t,15),e=0;e<t.q;e++)(t.u[e]&3)!=0&&Ve(t,e,1,0);}function Ju(t,e){var A;for(A=e;A<t.length;A++)if(t[A]==62)return A;return  -1;}function zu(t,e,A){var n=t.Ic(),P=n.createTextField(e,A);return new h7(P);}function kv(t,e){return xv(e)!=10&&B($L(e),e.td,e.__elementTypeId$,xv(e),t),t;}function bv(t,e){this.M=w.Math.max(1,t),this.N=w.Math.max(1,e),vR(this);}function GD(t){this.b=c(Ut,ht,6,t,15,1),this.c=c(Ut,ht,6,t,15,1),this.a=0;}function qT(t){this.e=t,this.d=c(F,k,6,0,15,1),this.c=c(F,k,6,0,15,1);}function IT(t){this.e=t,this.b=this.e.a.entries(),this.a=c(fP,e0,1,0,5,1);}function P8(){this.g=new f1(),this.f=new f1(),this.a=new f1(),this.d=-1,this.c=false;}function Rv(t,e){Fm(),this.d=e,this.i=new nn(t),this.g=new b9(),this.b=new b9();}function jL(t,e){hU.call(this,t,e),this.a=c(bPt,e0,123,2,0,1),this.b=true;}function jv(){this.b=c(Ut,ht,6,64,15,1),this.c=c(Ut,ht,6,64,15,1),this.a=0;}function pv(t,e,A){this.b=w.Math.max(t,e),this.c=w.Math.min(t,e),this.a=A;}function nO(t){return at(Ar,typeof t)||id(t,w.java.lang.Number$impl);}function xT(t,e){return new wP(t.b*e.c-t.c*e.b,t.c*e.a-t.a*e.c,t.a*e.b-t.b*e.a);}function G1(t){!t.cb&&(t.cb=new X3()),ff(t.V,t.cb),t.bb=t.I?new us(t.I):null;}function PO(t,e){e&&(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)));}function rO(t,e){e&&(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)));}function Xi(t,e,A,n){var P;n=(yU(),n||Bl),P=t.slice(e,A),Zh(P,t,e,A,-e,n);}function Z8(t,e,A,n,P,r,i){i.a=e.a+P,i.c=e.c+r,i.b=e.b+P,i.d=e.d+r,Hn(t,i,A,n);}function x9(t,e,A){for(;A<t.a.length;++A)if(z8(e,t.a[A]))return A;return  -1;}function r8(t,e){var A;for(A=0;A<t.e.length;A++)if(e==t.e[A])return A;return  -1;}function NT(t){var e;for(e=0;e<t.q;e++)if(t.J[e].c!=0)return  true;return  false;}function iO(t,e){var A;for(A=fl[e]/2;t<-A;)t+=F0;for(;t>=A;)t-=fl[e];return t;}function fO(t,e){var A;return A=t.C[e],A==3||A==11||A==19||A==37||A==55||A==87;}function DO(t,e){var A;return A=t.C[e],A==4||A==12||A==20||A==38||A==56||A==88;}function ze(t,e){J1();var A;for(A=t-e;A<m6;)A+=F0;for(;A>U1;)A-=F0;return A;}function Cv(t,e,A,n,P,r){this.c=t,this.e=e,this.d=A,this.f=n,this.b=P,this.a=r;}function uO(t,e,A,n,P){Ct(e,A,t.length),Ct(P,P+(A-e),n.length),Cx(t,e,A,n,P);}function Hv(t,e,A,n){return L1(t),L1(e),L1(A),L1(n),new Su(t,e,A,new hw());}function OT(){OT=d1,oc=new lu("All",0),ME=new Mg(),VE=new qg(),EE=new Hg();}function Mv(t,e,A){if(e==null||A==null)throw At(new d9());return Sr(t.e,e,A);}function QO(t){return G(t,0)==0&&2<So.length?So[2]:new ef(t,2);}function Vv(t){return t.d.a.length<2?null:new Yb(N(t.d,0),N(t.d,1));}function pL(t){return t.a.d!=t.c?fg(t.a,t.b.value[0]):t.b.value[1];}function p0(t){var e;return o0(t)&&(e=0-t,!isNaN(e))?e:jn(Zr(t));}function oO(t,e){return DT(rG(Dd(t,new Il()),ud(e,new Il()),new iw()),new ow());}function UO(t){var e,A;return new _P((e=new P8(),A=new nn(new R9(t)),wY(e,A),e));}function Zi(t,e){var A;return e==null||e.length==0?null:dh(t,KA((A=e,c0(),A)));}function GT(t,e,A,n){if(A==null||A.length==0){NL(e),e.d=null;return;}gp(t,e,A,n,0);}function Ev(t,e){var A;for(A=0;A<e.length;A++)if(e[A]==t)return  true;return  false;}function LO(t,e){var A,n;for(n=new f1(),A=0;A<e.r;A++)mt(n,new oB(t,e,A));return n;}function JT(t,e){var A,n;for(n=new Zt(t.a);n.a<n.c.a.length;)A=$t(n),A.mc(e);}function sO(t,e){var A,n;for(n=new Zt(t.a);n.a<n.c.a.length;)A=$t(n),A.mc(e);}function CL(t,e,A){var n;for(n=0;n<t.q;n++)t.J[n].a+=e,t.J[n].b+=A;t.U+=e,t.V+=A;}function Sv(t,e){return ut(t,7),t.o[e]==2&&t.j[e]==2?rb(t,e):Ns(t,e,false);}function yO(t,e){t.L||(d$(t,e),t.L=true),t.r||(F_(t,e),W$(t),DY(t),t.r=true);}function qv(t,e,A){t8(t.g,A,e),t.b[e.a]=true,e.g!=-1&&(t.c[u1(t.k,e.a,e.g)]=true);}function HL(t){return t.v<<=t.t,(!t.r||t.v!=63)&&(t.v+=64),Ge(t.u,t.v&c1),t.u.a;}function zT(t){var e;return e=t.b.a.length==0?null:N(t.b,0),e!=null&&ZT(t,0),e;}function lO(t,e){var A,n;for(A=0,n=0;n<t.b;n++)t.e[n][e]&&t.c[n]==-3&&++A;return A;}function TO(t,e){return new Ne(t.b*e.c-t.c*e.b,-(t.a*e.c-t.c*e.a),t.a*e.b-t.b*e.a);}function Iv(t,e){this.a=j0(t.b[e][5]),this.b=j0(t.b[e][6]),this.c=j0(t.b[e][7]);}function Wi(t,e){return (t.F[e]&768)>>8!=1&&(t.F[e]&768)>>8!=2?-1:(t.F[e]&ln)>>10;}function YT(t,e){return t.o[e]==2&&t.j[e]==2&&t.n[e][0]==2&&t.n[e][1]==2&&t.C[e]<=7;}function hO(t){return t==1||t>=5&&t<=9||t>=14&&t<=17||t>=32&&t<=35||t>=52&&t<=53;}function xv(t){return t.__elementTypeCategory$==null?10:t.__elementTypeCategory$;}function cO(t){var e,A;for(A=t.a,e=0;e<t.b.length;e++)A+=t.b[e]*v4[t.c[e]];return A;}function wO(t){var e,A;for(A=t.d,e=0;e<t.b.length;e++)A+=t.b[e]*F4[t.c[e]];return A;}function gO(t){var e,A,n;for(e=jF(t),n=0,A=0;A<xP.length;A++)n+=e[A]*xP[A];return n;}function KT(t,e,A){var n;for(n=N(t.k,e).length;A>=n;)A-=n;for(;A<0;)A+=n;return A;}function Nv(t,e){return t.V.q!=0&&t.r?xN(t.r,e?Sb(t.V):Yn(t.V)):false;}function dO(t){return bh(t,(Kr(),tc))<0?-MI(Zr(t)):t.l+t.m*rP+t.h*iP;}function BO(t,e,A,n,P){return L1(t),L1(e),L1(A),L1(n),L1(P),new Su(t,e,A,n);}function ML(t,e,A){ip.call(this,t),this.b=e,this.c=G(A,0)==0?new WD():new zr(A);}function vO(t){this.e="",this.c=9,this.d=0,this.i=c(Y4,e0,56,1,0,1),this.i[0]=t;}function JD(){this.i=c(Y4,e0,56,2,0,1),this.i[0]=new c9(),this.i[1]=new c9(),this.a=0;}function Kr(){Kr=d1,$4=S0(x0,x0,524287),hE=S0(0,0,y8),a4=TL(1),TL(2),tc=TL(0);}function Yu(t,e){var A,n;for(n=yu(t.b,e),A=n.length;A<10;A++)Ge(t.a,32);J(t.a,n);}function Ov(t,e){var A,n;for(n=yu(t.a,e),A=n.length;A<10;A++)Ge(t.b,32);J(t.b,n);}function FO(t){var e,A;if(t.b){A=null;do e=t.b,t.b=null,A=zk(e,A);while(t.b);t.b=A;}}function mO(t){var e,A;if(t.a){A=null;do e=t.a,t.a=null,A=zk(e,A);while(t.a);t.a=A;}}function VL(t,e){return e?(ut(t,1),cP(t,t.f,t.g,wn)):cP(t,t.q,t.r,wn);}function kO(t,e){if(t.N!=0){t.C!=-4&&(t.C=-4,t.Bb(t.N));return;}t.C=-5,t.P=e,t.Bb(e);}function bO(t,e){try{t.i[0].a=Qn(e);}catch(A){if(A=a1(A),!Xt(A,40))throw At(A);}}function RO(t,e){try{t.i[0].b=Qn(e);}catch(A){if(A=a1(A),!Xt(A,40))throw At(A);}}function jO(t,e){try{t.d=Q1(e,P1,Et);}catch(A){if(A=a1(A),!Xt(A,40))throw At(A);}}function pO(t){var e,A;return e=c(F,k,6,t.q,15,1),A=n9(t,e,false,false),Aj(t,e,A);}function Gv(t,e){var A,n;for(A=t.o[e],n=0;n<t.j[e];n++)tA(t,t.i[e][n])&&++A;return A;}function Xr(t,e,A){var n,P;for(n=0,P=0;P<t.j[e];P++)K(t,t.i[e][P])==A&&++n;return n;}function N9(t,e){var A;for(A=0;A<t.e.length;A++)if(e==t.e[A])return  true;return  false;}function Jv(t,e,A,n){var P;return P=0,e&&(P|=1),A&&(P|=2),n&&(P|=4),Ru(new lD(t.a,P));}function zv(t,e,A,n,P){var r;return r=Eb(t,e,A,n,P),r<0?Ob(t,e,A,n,P):j0(t.b[r][5]);}function CO(t,e){var A;return wT(e),A=e/31|0,A<t.a.length&&((t.a[A]|0)>>>e%31&1)==1;}function EL(t,e){var A,n;if(A=0,t.K)for(n=0;n<t.j[e];n++)oe(t,t.i[e][n])&&++A;return A;}function t0(t,e){var A,n;for(A=t.j[e],n=0;n<t.j[e];n++)t.C[t.i[e][n]]==1&&--A;return A;}function XT(t,e){var A,n,P,r;return n=e/2|0,P=t>=n,P&&(t-=n),r=e/32,A=r*t/(n-t),P?-A:A;}function Zn(t,e){var A;return t.t==null||t.t[e]==null?null:rn((A=t.t[e],c0(),A));}function VA(t,e){return (t.u[e]&F1)>>18!=1&&(t.u[e]&F1)>>18!=2?-1:(t.u[e]&jA)>>20;}function Yv(t){return t!=null&&(typeof t===iy||typeof t=="function")&&t.ud!==AD;}function Ku(t){return J1(),t>=0&&t<Ur.length&&Ur[t]!=null?Ur[t]:t>=171&&t<=190?HV:MV;}function HO(){return e9(),B(d(mPt,1),Ke,72,0,[CE,bE,kE,RE,dl,jE,ye,pE]);}function zD(t,e){IU(t>=0,"Digits < 0"),AT(e,"null RoundingMode"),this.a=t,this.b=e;}function Kv(t,e,A,n,P,r,i,f){this.e=t,this.a=e,this.b=A,this.f=n,this.d=i,this.c=P*r/f;}function Xu(t,e,A){if(!t.c){if(t.e.a.length==4){t.c=true;return;}mt(t.e,new K3(t,e,A));}}function MO(t,e,A){t.a==null&&(t.a=c(E,q,6,t.R.f,15,1),pq(t.a)),t.a[e]=A<<24>>24;}function VO(t,e,A){var n;return n=AK(t,e,A),n&&A==386&&(ut(t,7),n=n&(t.F[e]&128)==0),n;}function SL(t,e,A){var n,P;for(n=0,P=0;P<Ht(t.f,A);P++)N9(e,W(t.f,A,P))&&++n;return n;}function EO(t,e,A){var n,P;for(P=0;P<t.j[A];P++)if(n=t.i[A][P],n!=e)return n;return  -1;}function me(t,e,A){var n=function(){return t.apply(n,arguments);};return e.apply(n,A),n;}function Xv(t,e){if(t){e.k=t;var n=DN(e);if(!n){wo[t]=[e];return;}n.sd=e;}}function Zv(t,e){var A;if(t.i!=null)for(A=0;A<t.i.length;A++)t.i[A].a*=e,t.i[A].b*=e;}function SO(t){var e,A;for(ut(t,7),e=0,A=0;A<t.p.j.a.length;A++)i3(t.p,A)&&++e;return e;}function qO(t){var e,A;if(t.K)return 0;for(ut(t,1),A=0,e=0;e<t.f;e++)A+=It(t,e);return A;}function qL(t){var e;return e=new Dh(),e.n="Class$"+(t?"S"+t:""+e.i),e.b=e.n,e.j=e.n,e;}function IO(t,e){var A;for(A=0;A<t.j[e];A++)if(t.s[t.i[e][A]]<0)return  true;return  false;}function Wv(t,e){var A;for(A=0;A<t.j[e];A++)if(t.s[t.i[e][A]]>0)return  true;return  false;}function xO(t,e){var A;return A=t.C[e]<Ur.length?Ur[t.C[e]]:null,A==null?6:A[A.length-1];}function _v(t,e,A){var n,P,r;for(r=t.a.length-1,P=t.b,n=0;n<A;P=P+1&r,++n)e[n]=t.a[P];}function IL(t,e,A,n,P,r){p9.call(this,n),this.e=t,this.b=e,this.c=A,this.a=P,this.d=r;}function $v(t,e){t&&(this.k=c(U9,or,26,1,0,1),this.k[0]=t),this.c=0,this.g=e,Fs(this);}function av(t,e){return t.b!=e.b?t.b>e.b?-1:1:t.c!=e.c?t.c>e.c?-1:1:0;}function xL(t){var e;return e=t.e[t.d++]-48,Kn(t.e[t.d]&c1)&&(e=10*e+(t.e[t.d++]-48)),e;}function NO(t){var e,A;return e=yL(t.a),e==-1?0:(A=t.a[e]|0,e*31+(32-_9(A)));}function OO(t,e){var A,n,P,r;if(t.e!=null)for(n=t.e,P=0,r=n.length;P<r;++P)A=n[P],A.J=e;}function tF(t){Fu(t.c>=0),_J(t.d,t.c)<0&&(t.a=t.a-1&t.d.a.length-1,t.b=t.d.c),t.c=-1;}function NL(t){t.q=0,t.r=0,t.K=false,t.L=false,t.I=0,t.v=null,t.t=null,t.P=null,t.T=0;}function GO(t){var e,A;for(A=0,e=0;e<t.a.q;e++)(K(t.a,e)==7||K(t.a,e)==8)&&++A;return A;}function eF(t,e){var A;for(A=0;A<t.j[e];A++)if(b1(t,t.i[e][A])<0)return  true;return  false;}function JO(t){var e=t.Fc(),A=e.pasteMolecule();return A?A.vc():null;}function zO(t,e){return t.d!=e.d?t.d<e.d?-1:1:t.e!=e.e?t.e<e.e?-1:1:0;}function OL(t){var e,A;if(t==0)return 32;for(A=0,e=1;(e&t)==0;e<<=1)++A;return A;}function AF(t){var e;return e=c(Ut,ht,6,2,15,1),e[0]=gn*(t/17|0)+B8,e[1]=gn*(t%17)+B8,e;}function ZT(t,e){var A;A=LA(t.b,t.b.a.length-1),e<t.b.a.length&&(q9(t.b,e,A),Db(t,e));}function YO(t,e,A){var n;if(t.i!=null)for(n=0;n<t.i.length;n++)t.i[n].a+=e,t.i[n].b+=A;}function WT(t,e,A){var n;ua(e,A,(t.e&12)!=0),n=F5(t,e.b[0],e.b[1],0),wF(t,e.b[0],e.b[1],n);}function Zu(t,e,A,n){return vt(w.Math.round((t.a[e]*t.c[e]+n*t.c[A])/(t.c[e]+t.c[A])));}function T1(t,e,A,n){n?t.B[e]=Y(t.B[e],A):t.B[e]=V(t.B[e],On(A)),t.T=0,t.K=true;}function KO(t,e,A,n){this.d=e,this.a=A,this.b=n,this.e=L2(t.d,e,A,n),this.c=J_(t.d,e,A,n);}function XO(t,e){Gm(),this.o=t,this.n=G(t,0)==0?new WD():new zr(t),this.r=new Cd(t,e);}function nF(t,e){var A,n;t.b&&(G1(t),n=(t.U&4)!=0,A=new Sm(t._,t.V,e,n),WI(A,new pw(t)));}function PF(t){var e;t.a=false,e=new a2(ad(t)),yN(e,0,0,t.b.o,t.b.e),s$(t.b,new a2(ad(t)));}function ZO(t,e,A){var n,P;for(t.J&=~e,P=new Zt(t.S);P.a<P.c.a.length;)n=$t(P),n.mc(A);}function WO(t,e,A){var n;return vG(t),t.b=true,n=new ww(),n.a=e,_q(t.a,new og(n,A)),n.a;}function rF(t,e){var A;for(Ez(t),A=0;A<t.b.length;A++)if(e[t.b[A]])return  true;return  false;}function _O(t,e){var A;for(A=0;A<t.j[e];A++)if(K(t,t.i[e][A])!=6)return  true;return  false;}function iF(t,e,A){var n,P;for(P=N(t.j,e),n=0;n<P.length;n++)if(A==P[n])return n;return  -1;}function $O(t,e,A){var n,P;for(P=N(t.k,e),n=0;n<P.length;n++)if(A==P[n])return n;return  -1;}function Wu(t,e){var A,n;return A=1-e,n=t.a[A],t.a[A]=n.a[e],n.a[e]=t,t.b=true,n.b=false,n;}function _u(t,e,A,n){var P,r;this.a=Un(t,e,A,n),P=A-t,r=n-e,this.b=w.Math.sqrt(P*P+r*r);}function $u(t,e){var A;for(A=0;A<t.q;A++)w.Math.abs(t.w[A])==w.Math.abs(e)&&(t.w[A]=0);}function W8(t,e){var A;return A=c(F,k,6,e,15,1),sA(t,0,A,0,w.Math.min(t.length,e)),A;}function aO(t,e){var A;return A=c(NA,te,6,e,14,1),sA(t,0,A,0,w.Math.min(t.length,e)),A;}function ke(t){return t.J==null&&(ui(t),(t.Q&q1)==0&&(G$(t),wj(t,1),wj(t,2)),utt(t)),t.J;}function tG(t,e){var A;for(A=0;A<O(t.k,e);A++)if(!t.b[W(t.k,e,A)])return  true;return  false;}function _i(t,e){var A;return A=c(F,k,6,e,15,1),sA(t,0,A,0,w.Math.min(t.length,e)),A;}function GL(t,e){var A=t.Jc(),n=A.getBounds(e);return new QA(n.x,n.y,n.width,n.height);}function fF(t,e){var A;(!t.q||!e.q)&&(A=new CB(t.o),!t.q&&(t.q=Mh(A,t)),!e.q&&(e.q=Mh(A,e)));}function eG(t){var e={};return t!=null&&(e=t&&t.prototype,!e&&(e=wo[t])),Object.create(e);}function Wn(t,e){for(var A in e)e[A].configurable=true;Object.defineProperties(t,e);}function AG(t,e){typeof window===iy&&typeof window.$gwt===iy&&(window.$gwt[t]=e);}function nG(){W7();for(var t=Al,e=0;e<arguments.length;e++)t.push(arguments[e]);}function PG(t,e){var A,n;if(t.g)for(n=new Zt(t.g);n.a<n.c.a.length;)A=$t(n),A.Ib(e,t.p);}function JL(t,e){var A;return A=c(Pt,ft,6,e,16,1),sA(t,0,A,0,w.Math.min(t.length,e)),A;}function $i(t,e){var A;for(A=0;A<O(t.j,e);A++)if($0(t.j,W(t.j,e,A)))return  true;return  false;}function bP(t,e,A,n){var P,r;return r=t.length,P=w.Math.min(n,r)-A,A5(t,A,e,0,P,true),e;}function zL(t,e,A){var n;for(n=0;n<t.k.a.length;n++)if(tf(t,n,e)&&tf(t,n,A))return n;return  -1;}function DF(t,e,A){var n,P,r;for(n=0,P=0;P<A;P++)r=e[P],t[P]=r<<1|n,n=r>>>31;n!=0&&(t[A]=n);}function u1(t,e,A){var n;for(n=0;n<t.i[e].length;n++)if(t.i[e][n]==A)return t.k[e][n];return  -1;}function uF(t,e,A){var n,P,r;for(P=0,r=0;r<t.j[e];r++)n=t.i[e][r],n!=A&&t.j[n]>2&&++P;return P;}function QF(t,e){var A,n,P;for(L1(e),A=false,P=e.Tb();P.ad();)n=P.bd(),A=A|t.add(n);return A;}function YL(t,e){var A;return A=os(t.V,z(t.V,0,e)),A!=-1&&Ie(t.V,A)!=1&&Ie(t.V,A)!=2&&(A=-1),A;}function oF(t){var e;if(t.b==-2){if(t.e==0)e=-1;else for(e=0;t.a[e]==0;e++);t.b=e;}return t.b;}function UF(t){return t.a<54?t.f<0?-1:t.f>0?1:0:(!t.c&&(t.c=mP(M1(t.f))),t.c).e;}function rG(t,e,A){return Hv(A,new bd(t,e),new Tw(),B(d(vl,1),Ke,95,0,[(fQ(),xo)]));}function LF(){LF=d1,new zD(34,(e9(),ye)),new zD(7,ye),new zD(16,ye),new zD(0,dl);}function iG(t){if(L1(t),t.length==0)throw At(new YP("Zero length BigInteger"));rW(this,t);}function _T(t,e,A,n){p9.call(this,t),this.a=c(Ut,ht,6,1,15,1),this.a[0]=A,this.b=e,this.c=n;}function KL(t,e,A,n,P,r){this.f=e,this.d=A,this.a=n,this.b=P,this.c=r,this.e=jZ(t.k,e,A,n,P,r);}function XL(t){p3(this),VT(this),this.backingJsObject=t,Qb(this,t),this.f=t==null?nr:ZD(t);}function sF(t){return vt(w.Math.round((Be==-1&&(Be=globalThis.devicePixelRatio||1),Be*t)));}function fG(t){return t>=21&&t<=30||t>=39&&t<=48||t==57||t>=72&&t<=80||t==89||t>=104&&t<=112;}function Rn(t){return Rs(t,26)*14901161193847656e-24+Rs(t,27)*11102230246251565e-32;}function O9(t,e){var A;return A=c(F,k,6,2,15,1),t>e?(A[0]=t,A[1]=e):(A[0]=e,A[1]=t),A;}function DG(t){var e,A;for(A=true,e=0;e<t.i.f;e++)if(t.o[e]!=0&&!t.e[e]){A=false;break;}return A;}function yF(t){var e,A;for(ut(t,31),A=0,e=0;e<t.f;e++)(t.u[e]&3)!=0&&(t.u[e]&4)==0&&++A;return A;}function $T(t,e){var A,n;for(A=0,n=0;n<t.j[e];n++)tA(t,t.i[e][n])&&!Bu(t,t.k[e][n])&&++A;return A;}function uG(t){var e,A,n;for(A=0,e=-1,n=0;n<t.a.length;n++)A<t.a[n]&&(A=t.a[n],e=n);return e;}function QG(t){var e,A;if(e=t.q,t.t)for(A=0;A<t.q;A++)t.e[A]&&--e;return t.i>0&&e>t.i&&(e=t.i),e;}function oG(t){var e;for(e=0;e<t.g;e++)if(t.H[e]==8)return Bf(new hr(t),null,false);return  false;}function UG(t){var e;for(e=0;e<t.o.q;e++)if((t.a==null?NaN:t.a[e])>2.72)return  false;return  true;}function au(t,e){var A,n;for(n=0,A=0;A<t.r;A++)(t.D[0][A]==e||t.D[1][A]==e)&&(n+=dt(t,A));return n;}function lF(t){var e,A,n;for(n=0,A=t.Tb();A.ad();)e=A.bd(),n=n+(e!=null?a8(e):0),n=n|0;return n;}function aT(t,e){var A,n;for(n=t.o.Ec(),n.removeAllItems(),A=0;A<16;A++)Nt(t.o,""+(e+A));return 16;}function jn(t){var e;return e=t.h,e==0?t.l+t.m*rP:e==aA?t.l+t.m*rP-iP:t;}function M1(t){return p2<t&&t<iP?t<0?w.Math.ceil(t):w.Math.floor(t):jn(qX(t));}function LG(t,e,A){var n;return n=N(t.I,0),RQ(n,kt(t.V,e),pt(t.V,e))==RQ(n,kt(t.V,A),pt(t.V,A));}function TF(t,e,A){var n,P,r;n=vt(K6*M8(t.V)),P=vt(kt(t.V,A)),r=vt(pt(t.V,A)),rL(e,P-n,r-n,2*n);}function hF(t,e,A,n){var P;P=t.a.length,A>P?A=P:Gt(e,A+1),t.a=oA(t.a,0,e)+(""+n)+HD(t.a,A);}function un(t,e){var A;A=t.a.length,e<A?t.a=oA(t.a,0,e):e>A&&(t.a+=S8(c(l9,te,6,e-A,15,1)));}function sG(t,e){var A;this.c=t,A=new f1(),mh(t,A,e,t.b,null,false,null),this.a=new sT(A,0);}function yG(t,e,A){var n,P;return e==null?null:Ls(t,KA((P=e,c0(),P)),A==null?null:KA((n=A,n)),0);}function lG(t,e,A,n){n&&e!=-1&&(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true))),A.nc();}function th(t,e){return !!($1(t.b,e)==1&&K(t.b,e)<10||Bn(t.b,e)||EP(t.b,e,true));}function cF(t,e){var A,n;for(A=0,n=t.size();A<n;++A)if(z8(e,t.getAtIndex(A)))return A;return  -1;}function sA(t,e,A,n,P){z1(),AT(t,"src"),AT(A,"dest"),EG(t,e,A,n,P),A5(t,e,A,n,P,true);}function ZL(t,e,A,n,P,r,i,f,D,Q){var o=t.Jc(),L=e.pc();return o.drawImage(L,A,n,P,r,i,f,D,Q);}function wF(t,e,A,n){var P;P=w.Math.min(x9(t.d,e,0),x9(t.d,A,0)),t8(t.d,P,n),X8(t.d,e),X8(t.d,A);}function gF(t,e){return w.Math.sqrt((t.a-e.a)*(t.a-e.a)+(t.b-e.b)*(t.b-e.b)+(t.c-e.c)*(t.c-e.c));}function eh(t,e){return w.Math.sqrt((e.a-t.a)*(e.a-t.a)+(e.b-t.b)*(e.b-t.b)+(e.c-t.c)*(e.c-t.c));}function TG(t,e){return t.C[e]==1&&t.A[e]==0&&t.s[e]==0&&(t.u[e]&w8)==0&&(t.t==null||t.t[e]==null);}function hG(t,e){var A;for(A=0;A<t.b;A++)if(t.e[A][e]&&t.c[A]==-3)return A<t.a?1:A<t.b?2:0;return  -1;}function cG(t,e,A){var n;for(n=0;n<t.j.g.length;n++)if(t.e[e][n]&&t.e[A][n])return  true;return  false;}function dF(t,e){return e>=t.f?0:e<t.f&&r0(t.p,e)&&t.C[e]==6&&t.s[e]!=0?1:t.o[e];}function BF(t){return ut(t,15),!t.d&&(t.f<2||!Ds(t.J[0],t.J[1]))&&(t.d=new FA(t)),t.d?ke(t.d):null;}function wG(t){return ut(t,15),!t.d&&(t.f<2||!Ds(t.J[0],t.J[1]))&&(t.d=new FA(t)),t.d?v7(t.d):null;}function vF(t,e){var A,n;for(n=e.Tb();n.ad();)if(A=n.bd(),QT(t,A.ed()))return  true;return  false;}function gG(t){var e,A,n;for(n=1,A=t.Tb();A.ad();)e=A.bd(),n=31*n+(e!=null?a8(e):0),n=n|0;return n;}function dG(t,e){var A,n,P;for(P=(ut(t,7),t.p),n=0,A=0;A<P.j.a.length;A++)iF(P,A,e)>=0&&++n;return n;}function Ce(t){var e,A,n,P;return P=t,n=0,P<0&&(P+=iP,n=aA),A=vt(P/rP),e=vt(P-A*rP),S0(e,A,n);}function Ah(t){var e;return G(t,0)<0&&(t=On(t)),e=Jt(DA(t,32)),64-(e!=0?_9(e):_9(Jt(t))+32);}function a1(t){var e;return Xt(t,27)?t:(e=t&&t.__java$exception,e||(e=new SB(t),void 0),e);}function BG(t){return t==null?false:t.$implements__java_lang_Cloneable||Array.isArray(t);}function vG(t){if(t.b)throw At(new rU("Stream already terminated, can't be modified or used"));}function FF(t){this.f=t,this.e=new MT(this.f.c),this.a=this.e,this.b=nh(this),this.d=this.f.b;}function mF(t,e){p9.call(this,t),this.a=c(Ut,ht,6,2,15,1),this.a[0]=e,this.a[1]=Ee,this.c=-1;}function tQ(t,e){t.w!=e&&(t.w==19||e==19?(t.w=e,t.eb=w.Math.max(t.eb,1),e1(t.k)):t.w=e);}function FG(t,e){var A;for(A=0;A<t.j.g;A++)t.e[A]&&ps(e,A)&&(Af(t,z(t.j,0,A)),Af(t,z(t.j,1,A)));}function kF(t,e){var A;return e>0?(t[e]+t[e-1])/2:(A=U1+(t[0]+t[t.length-1])/2,A>U1?A-F0:A);}function mG(t){var e;return t<128?(e=(Id(),ec)[t],!e&&(e=ec[t]=new Ol(t)),e):new Ol(t);}function bF(t,e){if(e==null)return  false;for(;t.a!=t.b;)if(MP(e,im(t)))return  true;return  false;}function nh(t){return t.a.ad()?true:t.a!=t.e?false:(t.a=new IT(t.f.a),t.a.ad());}function kG(t){return t.includes("ATOMS=(")?k2:t.includes("BONDS=(")?"BONDS":null;}function RF(t){return t.n==null&&(t.n=kn(t.e,t.e.length),t.n.sort(me(D0.prototype.gd,D0,[]))),t.n;}function jF(t){var e,A;for(A=c(F,k,6,xP.length+2,15,1),ut(t,7),e=0;e<t.f;e++)++A[Ga(t,e)];return A;}function bG(t){var e,A;for(A=0,e=0;e<t.a.q;e++)(K(t.a,e)==7||K(t.a,e)==8)&&hd(t.a,e)>0&&++A;return A;}function RG(t){var e;return e=t.a[t.b],e==null?null:(t.a[t.b]=null,t.b=t.b+1&t.a.length-1,e);}function pF(t,e){var A;return A=t.a.get(e),A===void 0?++t.d:(t.a.delete(e),--t.c,++t.b.b),A;}function B(t,e,A,n,P){return P.sd=t,P.td=e,P.ud=AD,P.__elementTypeId$=A,P.__elementTypeCategory$=n,P;}function CF(t,e,A,n){return Ptt(n,t,e),A!=null&&(A[0]=n.f[0],A[1]=n.b[0],A[2]=n.b[1],A[3]=n.f[1]),n.d;}function jG(t,e,A,n){mt(t.$,new QA(e-t.V,A-t.V,2*t.V,2*t.V)),t.K||mt(t.U,new bu(e,A,UQ(t,n)?-3:t.p[n]));}function HF(t){var e,A;for(A=new Zt(t.U);A.a<A.c.a.length;)e=$t(A),Z1(t,e.a),SI(t,e.b,e.c);Z1(t,t.Q);}function Ph(t){var e,A;return e=vt(t.i[1].a-t.i[0].a),A=vt(t.i[1].b-t.i[0].b),w.Math.sqrt(e*e+A*A);}function MF(t,e){var A,n,P;return A=t.l-e.l,n=t.m-e.m+(A>>22),P=t.h-e.h+(n>>22),S0(A&x0,n&x0,P&aA);}function pG(t,e){var A,n,P;return A=t.l+e.l,n=t.m+e.m+(A>>22),P=t.h+e.h+(n>>22),S0(A&x0,n&x0,P&aA);}function eQ(t,e){var A;for(A=0;A<t.j[e];A++)if(t.n[e][A]==2&&K(t,t.i[e][A])>6)return  true;return  false;}function CG(t,e){var A,n;return A=js(t,e),A==-1?-1:(n=t.b.a.length,mt(t.b,e),t8(t.a,A,m1(n)),n);}function HG(t){var e,A,n;for(n=w.Math.max(t.d.length,t.c.length),A=1,e=n-t.a+1;e<=n;e++)A*=e;return A;}function Zr(t){var e,A,n;return e=~t.l+1&x0,A=~t.m+(e==0?1:0)&x0,n=~t.h+(e==0&&A==0?1:0)&aA,S0(e,A,n);}function MG(t){var e;if(t<0)return P1;if(t==0)return 0;for(e=cn;(e&t)==0;e>>=1);return e;}function RP(t,e){var A,n;return A=e.toArray(),n=A.length,n==0?false:(Fd(t.a,t.a.length,A),true);}function VG(t,e){var A;for(A=0;A<t.b;A++)if(t.e[A][e]&&t.c[A]==-3)return A<t.a?A:A<t.b?A-t.a:-1;return  -1;}function VF(t,e,A,n){var P,r;for(r=0;r<O(t.f,A);r++)if(P=W(t.f,A,r),P!=n&&P<e)return  false;return  true;}function rh(t,e,A){var n,P,r,i;for(P=e,r=0,i=P.length;r<i;++r)n=P[r],t.f[n&1073741823]=(n&cn)!=0^A?2:1;}function EG(t,e,A,n,P){var r,i;if(i=t.length,r=A.length,e<0||n<0||P<0||e+P>i||n+P>r)throw At(new $l());}function Ye(t,e,A){var n,P;return n=new jL(e,A),P=new Zo(),t.b=ab(t,t.b,n,P),P.b||++t.c,t.b.b=false,P.d;}function EF(t,e,A,n){var P;return o2(t,e,A,n),rd(t.R)?null:(P=t.R,I3(t.R,t.L),t.R=new Au(),P);}function SF(t){var e,A;return A=_9(t.h),A==32?(e=_9(t.m),e==32?_9(t.l)+32:e+20-10):A-12;}function SG(t,e){var A,n;for(A=c(M2,m2,29,e,0,1),n=0;n<t.length;n++)t[n]&&(A[n]=new vu(t[n]));return A;}function qG(t,e){var A;if(t.c!=null){for(A=0;A<t.c.length;A++)if(e==t.c[A]&&t.d[A])return  true;}return  false;}function ih(t){var e,A;return A=(t[1]+t[0])/2,e=w.Math.abs(t[1]-t[0]),e>U1?A:A<0?A+U1:A-U1;}function IG(t,e){return r9(t)==-1||r9(e)==-1||((r9(t)|r9(e))&1)!=0?3:r9(t)==r9(e)?1:2;}function qF(t,e,A){var n;for(n=0;n<t.j[e];n++)if(K(t,t.i[e][n])!=6&&t.i[e][n]!=A)return  true;return  false;}function xG(t,e,A){var n,P,r;for(ut(e,1),P=N(t.a,A),n=0;n<t.d.d.a.length;n++)r=mr(t.d,n),cZ(r,e,P);ni(e);}function NG(t){YF();var e;e=Yy,(e.startsWith(Ky)||e.startsWith(Xy)||e.startsWith(Zy))&&nY(t,AE);}function OG(t,e,A,n,P){var r;return r=f5(t,e),A&&WL(r),P&&(t=pz(t,e),n?qn=Zr(t):qn=S0(t.l,t.m,t.h)),r;}function AQ(t,e){t.D[0]=W8(t.D[0],e),t.D[1]=W8(t.D[1],e),t.H=W8(t.H,e),t.F=W8(t.F,e),t.G=W8(t.G,e),t.N=e;}function He(t,e,A){t.a==t.b.length&&(t.b=VD(t.b,2*t.a),t.c=VD(t.c,2*t.a)),t.b[t.a]=e,t.c[t.a]=A,++t.a;}function GG(t,e){var A,n;for(A=t.a.length-1;e!=t.b;)n=e-1&A,t.a[e]=t.a[n],e=n;t.a[t.b]=null,t.b=t.b+1&A;}function JG(t,e){var A,n;for(A=t.a.length-1,t.c=t.c-1&A;e!=t.c;)n=e+1&A,t.a[e]=t.a[n],e=n;t.a[t.c]=null;}function WL(t){var e,A,n;e=~t.l+1&x0,A=~t.m+(e==0?1:0)&x0,n=~t.h+(e==0&&A==0?1:0)&aA,t.l=e,t.m=A,t.h=n;}function fh(t){var e,A;for(e=0,A=0;A<t.length;A++)e=(e<<5)-e+(Gt(A,t.length),t.charCodeAt(A))|0;return e;}function IF(t,e,A){var n;return t.A.d.a.length!=0&&(n=mr(t.A,0),n.a<e)?(tU(t.A,0),n.b):t.od(A);}function nQ(t,e){var A,n;for(L1(e),n=e.Tb();n.ad();)if(A=n.bd(),!t.contains(A))return  false;return  true;}function zG(t,e){return t.a>e.a?1:t.a<e.a?-1:t.b>e.b?1:t.b<e.b?-1:0;}function YG(t,e){return t.c<e.c?-1:t.c>e.c?1:t.d<e.d?-1:t.d>e.d?1:0;}function KG(t,e){return SA(e,t.c)!=0?1:(t.j=pZ(e),t.j==null?rJ(e)?3:4:t.j.length==0?3:2);}function YD(t,e,A,n){var P;return (t.G&1)!=0?false:(P=N(t.$,n),e>P.c&&e<P.c+P.b&&A>P.d&&A<P.d+P.a);}function G9(t,e){var A,n,P;for(P=t.b;P;){if(A=t.a.Rb(e,P.c),A==0)return P;n=A<0?0:1,P=P.a[n];}return null;}function xF(t,e){Bp();var A,n;for(n=e-t,A=0;A<Pl[t].length;A++)if(Pl[t][A].b==n)return Pl[t][A].a;return NaN;}function XG(t){Hs();var e,A;for(ut(t,1),A=0,e=0;e<t.q;e++)t.C[e]==1?++A:A+=t.e[e]-t.j[e]+It(t,e);return A;}function NF(t,e,A,n){var P,r,i;for(P=c(E,q,6,n,15,1),i=DJ(t.a,P),r=0;r<i;r++)e[A+r]=P[r]&c1;return i;}function OF(t,e){var A,n,P,r;for(n=e,P=0,r=n.length;P<r;++P)if(A=n[P],QT(t,A.dd()))return A;return null;}function ZG(t,e,A){var n,P;for(P=0;P<t.g[e].length;P++)n=t.g[e][P],t.k[n]==2&&(t.k[n]=1,t.j[n]=A<<24>>24);}function PQ(t){var e,A;for(A=false,e=0;e<t.q;e++)(t.u[e]&512)!=0&&(t.C[e]=-1,A=true);return A&&ni(t)!=null;}function ai(t,e){var A;return A=BT(e,"([/\\\\\\.\\*\\+\\?\\|\\(\\)\\[\\]\\{\\}$^])","\\\\$1"),BT(t,A,"");}function GF(t,e){var A;return A=hA(0,e,0,t.a.length,true,t),j0(t.a[A][3])*w.Math.pow(j0(t.a[A][1]),.25);}function rQ(t,e){var A;e*2+1>=t.b.a.length||(rQ(t,2*e+1),A=2*e+2,A<t.b.a.length&&rQ(t,A),Db(t,e));}function iQ(t,e,A){var n;for(n=A-1;n>=0&&t[n]==e[n];n--);return n<0?0:Ci(V(t[n],h1),V(e[n],h1))?-1:1;}function WG(t,e){var A,n,P;for(P=0,n=new Zt(e);n.a<n.c.a.length;)A=$t(n),P+=nm(t,A.c,A.b)?t.b:0;return P;}function _G(t,e){var A;if(O(t.L,e)!=2)return  false;for(A=0;A<2;A++)if(pA(t.L,e,A)!=2)return  false;return  true;}function JF(t,e,A){var n;if(t.i!=null)for(n=0;n<t.i.length;n++)t.i[n].a=t.o[n]+e-t.k,t.i[n].b=t.p[n]+A-t.n;}function $G(t,e){var A;for(A=0;A<O(t.R,e);A++)if(t.o[xt(t.R,e,A)]==3&&pA(t.R,e,A)==1)return  true;return  false;}function yA(t,e,A){var n,P,r,i;for(P=N(t.j,e),r=0,i=P.length;r<i;++r)if(n=P[r],A==n)return  true;return  false;}function tf(t,e,A){var n,P,r,i;for(P=N(t.k,e),r=0,i=P.length;r<i;++r)if(n=P[r],A==n)return  true;return  false;}function aG(t,e){Ff();var A,n,P;for(P=0,A=0,n=0;n<t.length;n++)P+=_r(t[n]&e[n]),A+=_r(t[n]|e[n]);return P/A;}function zF(t,e){this.n=t,this.k=e,this.j=(e&16)==0,this.d=-1,this.e=0,this.o=0,this.a=-1,this.g=-1,this.c=0;}function _L(t,e,A,n,P){p9.call(this,t),this.a=c(Ut,ht,6,2,15,1),this.a[0]=A,this.a[1]=n,this.b=e,this.c=P;}function Dh(){this.i=ott++,this.n=null,this.j=null,this.g=null,this.d=null,this.b=null,this.k=null,this.a=null;}function tJ(t){return at(typeof t,mf)?true:t!=null&&t.$implements__java_lang_CharSequence;}function i8(){i8=d1,Fl=B(d(it,1),Dt,2,6,["distance","plane","line","torsion","stereo","binap"]);}function J9(){J9=d1,hi=B(d(it,1),Dt,2,6,["","0","00","000","0000","00000","000000","0000000","00000000"]);}function Wr(){Wr=d1,xA=B(d(Se,1),PA,6,15,[.29899999499320984,.5870000123977661,.11400000005960464]);}function YF(){YF=d1,K4=B(d(F,1),k,6,15,[5258420,0]),AE=B(d(F,1),k,6,15,[11837695,14737632]);}function eJ(t){return t>=3&&t<=4||t>=11&&t<=13||t>=19&&t<=31||t>=37&&t<=51||t>=55&&t<=84||t>=87&&t<=112;}function $L(t){return H8(t)?it:Hi(t)?Ltt:Tu(t)?Utt:eT(t)||a3(t)?t.sd:t.sd||Array.isArray(t)&&d(pV,1)||pV;}function KF(t){t.J=1,t.R=new Au(),t.$=new f1(),t.U=new f1(),t.s=c(Pt,ft,6,t.L.q,16,1),t.w=new c9(),t.Q=0,t.C=-1,Cb(t);}function fQ(){fQ=d1,SE=new cU("CONCURRENT",0),xo=new cU("IDENTITY_FINISH",1),Uc=new cU("UNORDERED",2);}function XF(t,e,A){if(t>e)throw At(new p8(KQ+t+Fp+e));if(t<0||e>A)throw At(new b7(KQ+t+Q6+e+mp+A));}function AJ(t,e,A){var n,P;for(++t.b,n=new TD(t),n.p=A,P=t.g.length-1;P>=0;P--)HI(t,n,t.g[P],P,e[P]);return n;}function ZF(t,e){var A,n;for(n=c(F,k,6,e.length+1,15,1),A=0;A<e.length;A++)n[A]=e[A];return n[e.length]=t,n;}function nJ(t,e){var A;for(A=0;A<e.length;A++){if(e[A]<t.g[A].a.length-1)return ++e[A],true;e[A]=0;}return  false;}function WF(t,e){var A;for(A=0;A<t.f.length;A++)if(gt(t.f[A],e.f[A]))return Ci(t.f[A],e.f[A])?-1:1;return 0;}function KD(t,e){var A;for(A=0;A<e.k.length;A++)mD(t.k[A],e.k[A]);e.j==null?t.j=null:t.j=fL(e.j,e.j.length);}function PJ(t,e){var A;for(A=0;A<O(t.i,e);A++)if(pA(t.i,e,A)==2&&K(t.i,W(t.i,e,A))==8)return  true;return  false;}function rJ(t){var e;if(t.length<3){for(e=1;e<(J1(),Z0).length;e++)if(Z0[e].startsWith(t))return  true;}return  false;}function iJ(t){var e,A,n,P,r;for(r=1,A=t,n=0,P=A.length;n<P;++n)e=A[n],r=31*r+(e!=null?a8(e):0),r=r|0;return r;}function DQ(t){var e,A,n;for(n=t.a.a.length,e=new Array(n),A=0;A<n;A++)e[A]=bI(N(t.a,A).a,N(t.a,A).b);return e;}function fJ(t){var e,A;if(A=o$(t),P0(t.A,t.a))for(e=0;e<t.A.q;e++)P0(t.A,e)&&lp(t,e,A);else lp(t,t.a,A);Bj(t.A);}function _F(t){var e;for(this.o=t,this.k=c(M2,m2,29,t.q,0,1),e=0;e<t.q;e++)this.k[e]=new vu(t.J[e]);this.n=NaN;}function $F(t,e,A,n){this.c=c(NA,te,6,n.c,14,1),this.b=c(NA,te,6,n.c,14,1),tY(n,t,e,this.c,this.b),this.a=A;}function aF(t,e,A,n){this.a=(n8(e),bP(t,c(F,k,6,e,15,1),0,e)),this.b=(n8(n),bP(A,c(F,k,6,n,15,1),0,n));}function tm(t,e,A){var n;G1(t),n=e==-1?new gm(t._,t,t.F,t.B,t.D,t.C,t.A):new Sk(t._,t,t.V,e),$I(n,new yd(t,e,A));}function DJ(t,e){var A;return t.a==t.b?-1:(A=w.Math.min(e.length,t.b-t.a),Yx(e,t.c,t.a,A),t.a+=A,A);}function em(t,e){var A;return t===e?true:Xt(e,160)?(A=e,t.Mc()==A.Mc()&&t.Nc()==A.Nc()):t===e;}function aL(t,e){return (t.u[e]&w8)!=0?true:t.C[e]<=1?false:kb(t,e)||t.C[e]==13||t.C[e]>=171;}function Am(t,e){return !(t.C[e]!=6||t.s[e]!=0||It(t,e)+t.j[e]!=4);}function nm(t,e,A){var n;for(n=0;n<e.length;n++)if(gt(V(t.f[n],e[n]),V(A[n],e[n])))return  false;return  true;}function uJ(t,e){var A,n,P;for(n=false,A=1;A<4;A++)for(P=0;P<A;P++)t[P]>t[A]&&(n=!n),e[P]>e[A]&&(n=!n);return n;}function QJ(t){var e,A,n;for(n=t.a.length,e=new Array(n),A=0;A<n;A++)e[A]=aq((Fe(A,t.a.length),t.a[A]));return e;}function ts(t,e){var A;for(!e&&(e=Yn(t.o)),e.T&=-249,A=0;A<e.q;A++)mD(e.J[A],t.k[A]);return t.p!=null&&$2(e,t.p),e;}function Pm(t,e){var A,n,P;for(L1(e),A=false,n=t.Tb();n.ad();)P=n.bd(),e.contains(P)||(n.cd(),A=true);return A;}function es(t,e){var A,n,P;for(L1(e),A=false,n=t.Tb();n.ad();)P=n.bd(),e.contains(P)&&(n.cd(),A=true);return A;}function rm(t){var e;if(t.c!=0)return t.c;for(e=0;e<t.a.length;e++)t.c=t.c*33+(t.a[e]&-1);return t.c=t.c*t.e,t.c;}function im(t){var e;return BD(t.a!=t.b),e=t.d.a[t.a],_g(t.b==t.d.c&&e!=null),t.c=t.a,t.a=t.a+1&t.d.a.length-1,e;}function _8(t,e){var A;return A=Te(t.b,e),A||(A=new hj(t.k,t.q,t.s,e,t.n),Ye(t.b,kn(e,e.length),A),A);}function G(t,e){var A;return o0(t)&&o0(e)&&(A=t-e,!isNaN(A))?A:bh(o0(t)?Ce(t):t,o0(e)?Ce(e):e);}function oJ(t){var e;return t!=null&&(e=t.__java$exception,e)?e:id(t,TypeError)?new w7(t):new XL(t);}function fm(t,e,A){var n,P;return DL(e,t.a.length),n=A.toArray(),P=n.length,P==0?false:(Fd(t.a,e,n),true);}function uh(t,e,A){if(A){if(t.s[e]>8)return  false;++t.s[e];}else {if(t.s[e]<-8)return  false;--t.s[e];}return t.T=0,true;}function uQ(t,e,A,n,P,r,i){return tr(t,e,A,n,P,r==null?t.D[0][A]:r[t.D[0][A]],r==null?t.D[1][A]:r[t.D[1][A]],i);}function UJ(t,e,A,n,P,r,i,f){var D;for(D=A;r<i;)D>=n||e<A&&f.Rb(t[e],t[D])<=0?P[r++]=t[e++]:P[r++]=t[D++];}function LJ(t,e,A,n,P){e==0||n==0||(e==1?P[n]=Qs(P,A,n,t[0]):n==1?P[e]=Qs(P,t,e,A[0]):XK(t,A,P,e,n));}function sJ(t,e){var A,n,P,r;if(e.length==0)return null;for(n=e,P=0,r=n.length;P<r;++P)A=n[P],t.C[A]=-1;return ni(t);}function Qh(){dp();var t,e,A,n;if(!Jf&&!Jf)for(Jf=new Ri(),e=GV,A=0,n=e.length;A<n;++A)t=LQ(e[A]),K8(Jf,t);}function yJ(t,e){var A,n;for(n=c(U9,or,26,t.length,0,1),A=0;A<t.length;A++)n[A]=t[A].a;return new _P(new wh(n,e));}function Dm(t){var e;for(t.q=c(Pt,ft,6,t.L.q,16,1),e=0;e<t.L.r;e++)t.q[z(t.L,0,e)]=true,t.q[z(t.L,1,e)]=true;}function oh(t,e,A){t.v==null&&(t.v=c(F,f0,7,t.M,0,2)),A.sort(me(D0.prototype.gd,D0,[])),t.v[e]=A,t.T=0,t.K=true;}function lJ(t,e,A){var n,P;for(n=k1(it,[nA,Dt],[13,2],6,[t.f,e],2),ut(t,7),P=0;P<t.f;P++)n[P]=JR(t,P,e,A);return n;}function TJ(t,e,A){var n,P,r;return r=1.02*GB(t.f[1],e)+GB(t.f[0],e),n=A/r,P=w.Math.pow(n,-6),n>=1?0:2*(P*P-P);}function hJ(t,e){var A,n,P;for(n=0,A=0;A<t.V.q;A++)P0(t.V,A)&&++n;P=n!=0&&n!=t.V.q,(t.U&1)!=0?x$(t,e,P):az(t,e,P);}function cJ(t,e){var A,n;for(A=jF(t),n=0;n<xP.length;n++)A[n]!=0&&ZP(e,""+A[n]+" * "+xP[n]+"   AtomType: "+JV[n],2);}function wJ(t){var e,A;for(e=new yD(),A=0;A<t.b.length;A++)Vi(e,(J1(),Z0)[t.c[A]]),t.b[A]>1&&Jq(e,t.b[A]);return e.a;}function jP(t,e){var A,n;for(n=new Zt(t);n.a<n.c.a.length;)if(A=$t(n),Qz(A,e))return  false;return t.a.push(e),true;}function gJ(t,e,A){var n,P;if(t.I){for(P=new Zt(t.I);P.a<P.c.a.length;)if(n=$t(P),n.Hb(e,A))return n;}return null;}function QQ(t,e){return t.e[e]-t0(t,e)+It(t,e)<=0?false:tA(t,e)?true:t.o[e]==0;}function Qn(t){var e;return e=se(t),e>Mp?1/0:e<-34028234663852886e22?-1/0:e;}function m1(t){var e,A;return t>-129&&t<128?(qd(),e=t+128,A=Ac[e],!A&&(A=Ac[e]=new Gl(t)),A):new Gl(t);}function um(t,e){return k9(),H8(t)?Yr(t,e):Hi(t)?$8((L1(t),t),(L1(e),e)):Tu(t)?JI((L1(t),t),(L1(e),e)):t.Sb(e);}function Uh(t,e){var A;t.c=e,t.a=lh(e),t.a<54&&(t.f=(A=e.d>1?S9(e.a[0],e.a[1]):S9(e.a[0],0),Gr(e.e>0?A:p0(A))));}function ef(t,e){this.e=e,this.a=Ah(t),this.a<54?this.f=Gr(t):this.c=(be(),G(t,0)>=0?ge(t):vP(ge(p0(t))));}function As(t,e,A,n,P){A<n?(this.a=t,this.b=e,this.c=A,this.d=n):(this.a=e,this.b=t,this.c=n,this.d=A),this.e=P;}function Qm(t,e,A,n,P,r){var i;this.a=A,this.b=n,this.c=P,this.d=r,i=ett(t.o,e,A,n,P,r),this.e=i.a,this.f=i.b,this.g=i.c;}function dJ(t,e,A,n){var P,r,i;for(P=e+1;P<A;++P)for(r=P;r>e&&n.Rb(t[r-1],t[r])>0;--r)i=t[r],t[r]=t[r-1],t[r-1]=i;}function om(t,e,A){var n;for(n=0;n<t.j[e];n++)if(t.n[e][n]==2&&K(t,t.i[e][n])>6&&t.i[e][n]!=A)return  true;return  false;}function oQ(t,e,A){var n,P;return n=N(t.g,t.q[e]),n.g==A?false:(P=N(t.g,t.q[A]),P.g==e?true:qG(P,e));}function BJ(t,e){return t.a!=e.a?t.a<e.a?-1:1:t.b!=e.b?t.b<e.b?-1:1:t.c!=e.c?t.c<e.c?-1:1:0;}function $8(t,e){return t<e?-1:t>e?1:t==e?t==0?$8(1/t,1/e):0:isNaN(t)?isNaN(e)?0:1:-1;}function vJ(t,e){t.V!=e&&(G1(t),t.V=e,t.U=0,t.I=null,t.eb=w.Math.max(t.eb,4),e1(t.k),I1(t,new S1(t,1,false)));}function Lh(t,e){t.e=e.e,t.c=e.c,t.b=e.b,t.a=e.a==null?null:VD(e.a,e.a.length),t.d=e.d==null?null:VD(e.d,e.d.length);}function FJ(t){var e,A,n,P;for(e=(t.g==null&&(t.g=(P=cY(t),oY(P))),t.g),A=0,n=e.length;A<n;++A);}function mJ(t){var e,A,n,P;for(t.a=15,P=(A=new rD(t.c).a.$c().Tb(),new iD(A));P.a.ad();)n=(e=P.a.bd(),e.ed()),Ha(n);}function Um(t){var e,A,n,P;return t.e==0?t:(e=t.d,A=e+1,n=c(F,k,6,A,15,1),DF(n,t.a,e),P=new Ue(t.e,A,n),bn(P),P);}function Lm(t){var e,A;for(e=0,Rg(t.e),A=0;A<t.e.length;A++)(A==0||Us(t.e[A],t.e[A-1])!=0)&&++e,t.f[t.e[A].a]=e;return e;}function kJ(t){var e,A;if(t.$!=null)for(e=0;e<t.R.f;e++)Vd(t.R,e,t.$[e]);if(t.i!=null)for(A=0;A<t.R.g;A++)cd(t.R,A,t.i[A]);}function sh(t,e){var A,n,P,r;return A=t.D[0][e],n=t.D[1][e],P=t.J[n].a-t.J[A].a,r=t.J[n].b-t.J[A].b,w.Math.sqrt(P*P+r*r);}function sm(t,e,A){var n;return n=t.a.get(e),t.a.set(e,A===void 0?null:A),n===void 0?(++t.c,++t.b.b):++t.d,n;}function yh(t,e){var A;return O1(t)===O1(e)?true:Xt(e,23)?(A=e,t.e==A.e&&t.d==A.d&&qN(t,A.a)):false;}function x1(t,e){var A;return o0(t)&&o0(e)&&(A=t+e,p2<A&&A<iP)?A:jn(pG(o0(t)?Ce(t):t,o0(e)?Ce(e):e));}function on(t,e){var A;return o0(t)&&o0(e)&&(A=t*e,p2<A&&A<iP)?A:jn(z_(o0(t)?Ce(t):t,o0(e)?Ce(e):e));}function l0(t,e){var A;return o0(t)&&o0(e)&&(A=t-e,p2<A&&A<iP)?A:jn(MF(o0(t)?Ce(t):t,o0(e)?Ce(e):e));}function bJ(t,e,A,n){return (t.U&6)!=0&&A[1]!=n[1]?A[1]==0?-1:1:$8(e[A[0]].a+e[A[0]].b,e[n[0]].a+e[n[0]].b);}function ym(t,e,A){var n,P;for(n=e;t.j[A]==2&&t.o[A]==2&&A!=n;)P=A,A=t.i[A][0]==e?t.i[A][1]:t.i[A][0],e=P;return A==n?-1:A;}function XD(t){var e,A;return t.includes("/csd/")?null:(e=(A=qE[t],typeof A===iy?A:null),!e&&wN(t),new Ng(e));}function UQ(t,e){var A;if(Ht(t.L,e)==0)return  false;for(A=0;A<Ht(t.L,e);A++)if(!vr(t.L,xt(t.L,e,A)))return  false;return  true;}function lm(t,e,A,n,P){var r,i;return r=D8(t,e,A,n)+D8(t,e,n,P),i=r,u2(e,A,n,P,3)?i+=r>0?4:3:u2(e,A,n,P,4)&&(i+=r>0?6:4),i;}function RJ(t,e,A){var n,P;for(P=false,n=0;n<e.e.length;n++)if(!AN(Ji(e.e,n))){P=true;break;}P||X8(t.I,e),e1(t.k),fB(A.a);}function Af(t,e){var A,n;for(t.d[e]&&(t.d[e]=false,--t.b),n=0;n<O(t.j,e);n++)A=xt(t.j,e,n),t.e[A]&&(t.e[A]=false,--t.c);}function nf(t,e){var A,n;for(n=c(F,k,6,t==null?1:t.length+1,15,1),A=0;A<n.length-1;A++)n[A]=t[A];return n[n.length-1]=e,n;}function jJ(t,e){var A,n,P,r;for(P=0,r=0;P<t.length&&r<e.length;){if(A=t[P],n=e[r],A==n)return  true;A<n?++P:++r;}return  false;}function _r(t){return t-=t>>1&1431655765,t=(t>>2&858993459)+(t&858993459),t=(t>>4)+t&252645135,t+=t>>8,t+=t>>16,t&63;}function ZD(t){var e;return Array.isArray(t)&&t.ud===AD?Du($L(t))+"@"+(e=a8(t)>>>0,e.toString(16)):t.toString();}function Tm(t){var e,A;return t.w.d.a.length==0?null:(e=Xt(t,117)?lQ(t.c,t.w.d.a.length):0,A=mr(t.w,e),tU(t.w,e),A);}function pJ(t,e){var A;if(t.i==null)return  false;for(A=0;A<t.i.length;A++)if(!e.Hb(t.i[A].a,t.i[A].b))return  false;return  true;}function hm(t,e,A,n,P){var r,i,f;for(hf(t,e,t.k[A],n,P),f=t.o,i=0;i<f.e[e];i++)r=f.i[e][i],f.e[r]==1&&hf(t,r,t.k[A],n,P);}function ns(t,e,A){var n;for(n=0;n<t.f;n++)if(t.C[n]==A&&t.s[n]==0&&t.j[n]==0&&(t.s[n]=-1,t.T=0,--e,e==0))return 0;return e;}function X0(t,e,A){A>=0&&A<=190&&(A==151||A==152?(t.C[e]=1,t.A[e]=A-149):(t.C[e]=A,t.A[e]=0),t.u[e]&=-2013265921,t.T=0);}function cm(){this.b=tP("/resources/forcefield/mmff94/pbci.csv"),this.a=tP("/resources/forcefield/mmff94/bci.csv");}function wm(t,e,A,n,P){this.f=e,this.a=A,this.b=n,this.c=P,this.d=OD(t.b,e.a[n]),this.g=zv(t.a,e,A,n,P),this.e=AY(t.a,e,A,n,P);}function gm(t,e,A,n,P,r,i){hh(),this.c=MD(t,UV,this),this.d=e,this.a=-1,this.k=A,this.g=n,this.j=P,this.i=r,this.n=i,$j(this);}function dm(t,e,A){if(t<0||e>A)throw At(new wr(KQ+t+Q6+e+", size: "+A));if(t>e)throw At(new p8(KQ+t+Fp+e));}function Bm(t){if(t<P1)throw At(new j8("Overflow"));if(t>Et)throw At(new j8("Underflow"));return vt(t);}function vm(){if(!ul)try{li=new UR(),ul=!0;}catch(t){if(t=a1(t),Xt(t,19))z1();else throw At(t);}}function Fm(){Fm=d1,OV=B(d(it,1),Dt,2,6,["Idorsia No","Actelion No","ID","IDNUMBER","COMPOUND_ID","NAME","COMPND"]);}function mm(){mm=d1,eE=B(d(it,1),Dt,2,6,["none","pressed","released","clicked","entered","exited","moved","dragged"]);}function WD(){Vh();var t,e,A;A=kPt+++Date.now(),t=vt(w.Math.floor(A*vV))&Qi,e=vt(A-t*l4),this.a=t^1502,this.b=e^tl;}function CJ(t,e){var A,n,P;for(A=0,Rg(t.b),n=0;n<e.length;n++)(n==0||Us(t.b[n],t.b[n-1])!=0)&&++A,P=t.b[n].a,e[P]=A;return A;}function KA(t){var e,A,n,P;for(P=t.length,e=c(E,q,6,0,15,1),n=0;n<P;)A=Uk(t,n,t.length),n+=A>=u0?2:1,__(e,A);return e;}function HJ(t){var e,A,n;for(j$(t),n=c(U9,nA,74,QG(t),0,2),e=0,A=0;A<t.q&&e<t.i;A++)(!t.t||!t.e[A])&&(n[e++]=t.n[A]);return n;}function km(t,e){var A,n;for(n=0,Xi(t,0,t.length,null),A=0;A<t.length;A++)(A==0||Us(t[A],t[A-1])!=0)&&++n,e[t[A].a]=n;return n;}function bm(t,e){var A,n;return n=t.d.a.length,A=K8(t,e),t.d.a.length!=n?(mt(t.b,e),t.a=null,n):(t.a==null&&lz(t),t.a[A]);}function Rm(t,e){var A;return A=e?OJ(t):gh(t),A&&t.r?(z1(),""+null.vd(),true):false;}function MJ(t){var e;for(e=0;e<t.o.q;e++)if((t.a==null?NaN:t.a[e])>1e3||(t.a==null?NaN:t.a[e])>2e3)return  true;return  false;}function jm(t,e,A){var n,P;for(P=t.Tb();P.ad();)if(n=P.bd(),O1(e)===O1(n)||e!=null&&MP(e,n))return A&&P.cd(),true;return  false;}function VJ(t,e,A,n,P){var r;return r=e.a[n],!(OD(t.b,r)||A==P||u1(e,A,n)==-1||u1(e,n,P)==-1);}function EJ(t,e){var A,n;for(n=0;n<t.b.length;n++)if(A=w.Math.abs(t.b[n]-e.b[n]),A>py&&A<t.a[n]-py)return  false;return  true;}function pm(t,e){var A,n;for(n=0;n<t.$.a.length;n++)t.v=BQ(t.v,N(t.$,n));PZ(t,e),A=.1*e,t.v.c-=A,t.v.d-=A,t.v.b+=2*A,t.v.a+=2*A;}function SJ(t){var e;if(dN(t,t.a))for(e=0;e<t.u.r;e++)P0(t.u,z(t.u,0,e))&&P0(t.u,z(t.u,1,e))&&Dj(t,e);else Dj(t,t.a);Wb(t.u);}function Cm(t){var e,A;ut(t.V,15),e=c(F,k,6,t.V.q,15,1),A=n9(t.V,e,false,true),A=n$(t,e,A),t_(t,e,A),t.M=e,t.L=Aj(t.V,e,A);}function qJ(t){var e,A,n;for(A=false,n=false,e=0;e<t.q;e++)t.A[e]!=0&&(t.A[e]=0,A=true,t.C[e]==1&&(n=true));return n&&(t.T=0),A;}function lh(t){var e,A,n;return t.e==0?0:(e=t.d<<5,A=t.a[t.d-1],t.e<0&&(n=oF(t),n==t.d-1&&(--A,A=A|0)),e-=_9(A),e);}function IJ(t){var e,A,n;return t<Io.length?Io[t]:(A=t>>5,e=t&31,n=c(F,k,6,A+1,15,1),n[A]=1<<e,new Ue(1,A+1,n));}function xJ(t,e,A){var n,P,r;for(P=0,r=0;r<t.a.length;r++)if(n=(1-A)*t.a[r]+A/t.a.length,P+=n,e<=P)return r;return t.a.length-1;}function Hm(t,e,A,n){var P,r;for(ut(t,1),P=0;P<n;P++)for(r=0;r<t.e[e[P]];r++)if(t.i[e[P]][r]==e[P+1]){A[P]=t.k[e[P]][r];break;}}function NJ(t,e,A){var n,P;for(n=V(A,h1),P=0;G(n,0)!=0&&P<e;P++)n=x1(n,V(t[P],h1)),t[P]=Jt(n),n=q0(n,32);return Jt(n);}function Un(t,e,A,n){var P,r,i;return r=A-t,i=n-e,i!=0?(P=w.Math.atan(r/i),i<0&&(r<0?P-=U1:P+=U1)):P=r>0?RA:Ao,P;}function Mm(t){var e,A,n;for(n=new V0(),A=new Zt(t);A.a<A.c.a.length;)e=$t(A),J(J(n,g6+e.Lb()+'"'+e.Kb()+d6),$A);return n.a;}function OJ(t){var e,A,n;for(A=new P8(),e=0;e<t.L.length;e++)n=Sb(t.L[e]),n&&(e<t.Y?(mt(A.g,n),A.d=-1):(mt(A.f,n),A.d=-1));return A;}function pn(t,e){var A,n;return A=((t.u[e]&w8)>>>27)-1,A==-1&&(A=(n=t.C[e]<Ur.length?Ur[t.C[e]]:null,n==null?6:n[n.length-1])),A;}function GJ(t,e){return t.h==y8&&t.m==0&&t.l==0?(e&&(qn=S0(0,0,0)),cg((Kr(),a4))):(e&&(qn=S0(t.l,t.m,t.h)),S0(0,0,0));}function _n(t){return t<3?0:t<11?1:t<19?2:t<37?3:t<55?4:0;}function ge(t){be();var e,A;return A=Jt(t),e=Jt(DA(t,32)),e!=0?new qB(A,e):A>10||A<0?new kA(1,A):vE[A];}function JJ(t){var e=/^#?0\.(0+)$/.exec(t);if(!e)throw new Error("unimplemented DecimalFormat with pattern "+t);return e[1].length;}function Th(t,e,A,n,P,r,i,f,D,Q){mm(),sU.call(this,t,Q),this.b=e,this.c=A,this.g=n,this.i=P,this.f=r,this.d=i,this.a=f,this.e=D;}function Vm(t,e,A,n,P,r,i,f,D,Q){this.i=t,this.a=e,this.f=A,this.o=n,this.c=P,this.k=r,this.j=i,this.p=f,this.d=D,this.n=Q,r$(this);}function Em(t,e,A){this.b=new Xb(this,t.a),this.c=e,this.e=A,this.d=new al(),_l(this.d,this.b),hB(this,this.b.o,this.b.e),PF(this);}function Sm(t,e,A,n){Y5(),this.v=MD(t,(e.u[A]&512)!=0?"Atom Query Features (Multiple)":"Atom Query Features",this),itt(this,e,A,n);}function hh(){hh=d1,XV=B(d(it,1),Dt,2,6,["None","One electron (duplet)","Two electrons (triplet)","Two electrons (singulet)"]);}function _D(t,e){var A;if(t.f==null)e.a+=" atoms:<null>";else for(J(e," atoms:"+t.f[0]),A=1;A<t.f.length;A++)J(e,","+t.f[A]);}function qm(t,e,A){var n,P;for(t.U=e,n=0;n<t.R.f;n++)t.f[n]=A[n],t.db[n]=0,t.ib[n]=false;for(P=0;P<t.R.g;P++)t.o[P]=0,t.q[P]=false;}function Im(t,e,A){var n;for(n=0;n<t.r;n++)if((t.D[0][n]==e&&t.D[1][n]==A||t.D[0][n]==A&&t.D[1][n]==e)&&t.H[n]!=512)return n;return  -1;}function nt(t,e){var A,n;for(A=e,n=0;e!=0;)t.d==0&&(t.f=(t.c[++t.e]&63)<<11,t.d=6),n|=(u0&t.f)>>16-A+e,t.f<<=1,--e,--t.d;return n;}function xm(t,e,A){var n,P,r;for(r=0,n=c(F,k,6,O(t.b,e)-1,15,1),P=0;P<O(t.b,e);P++)W(t.b,e,P)!=A&&(n[r++]=W(t.b,e,P));return n;}function zJ(t,e,A){var n,P,r;for(r=0,n=c(F,k,6,O(t.c,e)-1,15,1),P=0;P<O(t.c,e);P++)W(t.c,e,P)!=A&&(n[r++]=W(t.c,e,P));return n;}function $n(t,e,A){var n,P,r,i;for(r=e+A,Ct(e,r,t.length),i="",P=e;P<r;)n=w.Math.min(P+eP,r),i+=Ox(t.slice(P,n)),P=n;return i;}function Nm(t,e){var A,n,P,r;return A=e>>5,e&=31,P=t.d+A+(e==0?0:1),n=c(F,k,6,P,15,1),Eh(n,t.a,A,e),r=new Ue(t.e,P,n),bn(r),r;}function Pf(t,e){var A,n;for(n=t.a.length,e.length<n&&(e=uu(new Array(n),e)),A=0;A<n;++A)e[A]=t.a[A];return e.length>n&&(e[n]=null),e;}function ch(t){var e,A;for(A=0,e=0;e<t.length;e++)A<(Gt(e,t.length),t.charCodeAt(e))&&(A=(Gt(e,t.length),t.charCodeAt(e)));return A;}function Om(t,e){var A,n;for(n=0;n<t.g[e].length;n++)if(A=t.g[e][n],t.f[A]&&(t.o[A]==1||t.o[A]==2)&&t.k[A]==0)return  true;return  false;}function Ps(t,e){for(var A=0;!e[A]||e[A]=="";)A++;for(var n=e[A++];A<e.length;A++)!e[A]||e[A]==""||(n+=t+e[A]);return n;}function Gm(){var t;!DP&&(DP=new hg()),(DP.b&1)!=0&&DP.a!=15&&z1(),t=1&~DP.b,t!=0&&(wa(DP,t),t==1&&mJ(DP));}function YJ(t){_A();var e,A,n;return n=new Nw(),A=(n.j=null,A6(n,new nn(new R9(t)))?n.j:null),e=n.f==null?ou(n.j):n.f,jI(new CA(A),e);}function wh(t,e){P8.call(this),t!=null&&(RP(this.g,new qD(new iU(t),0,e)),RP(this.f,new qD(new iU(t),e,t.length))),this.c=wQ(this);}function z9(t,e){var A;return o0(t)&&o0(e)&&(A=t%e,p2<A&&A<iP)?A:jn((N5(o0(t)?Ce(t):t,o0(e)?Ce(e):e,true),qn));}function KJ(t){var e;return e=typeof t,at(e,h2)||at(e,Ar)||at(e,mf)?true:t!=null&&t.$implements__java_lang_Comparable;}function Jm(t,e,A){for(t.j==null&&(t.j=c(zt,_t,6,t.o.r,15,1),Mq(t.j));A<0;)A=A+360<<16>>16;for(;A>=360;)A=A-360<<16>>16;t.j[e]=A;}function bA(t,e,A,n){J1();var P,r,i;return r=A-t,i=n-e,i!=0?(P=w.Math.atan(r/i),i<0&&(r<0?P-=U1:P+=U1)):P=r>0?RA:Ao,P;}function XJ(t){var e;try{return EY((new Qh(),t.a));}catch(A){if(A=a1(A),Xt(A,19))return e=A,X9(e,(z1(),ci)),-999;throw At(A);}}function rs(t,e){return t.e>e.e?1:t.e<e.e?-1:t.d>e.d?t.e:t.d<e.d?-e.e:t.e*iQ(t.a,e.a,t.d);}function ZJ(t){return t>=48&&t<48+w.Math.min(10,10)?t-48:t>=97&&t<97?t-97+10:t>=65&&t<65?t-65+10:-1;}function WJ(t,e){var A,n;for(A=e;A<t.length;A++){if(n=(Gt(A,t.length),t.charCodeAt(A)),n==32||n==9)return  -1;if(n==61)return A;}return  -1;}function _J(t,e){var A,n,P,r;return n=t.a.length-1,A=e-t.b&n,r=t.c-e&n,P=t.c-t.b&n,_g(A<P),A>=r?(JG(t,e),-1):(GG(t,e),1);}function zm(t,e){var A,n;for(n=t.a.length,e.length<n&&(e=uu(new Array(n),e)),A=0;A<n;++A)e[A]=t.a[A];return e.length>n&&(e[n]=null),e;}function gh(t){var e,A;if((t.U&4)==0||t.L==null)return null;for(A=new P8(),e=0;e<t.L.length;e++)e<t.Y?q7(A,t.L[e]):S7(A,t.L[e]);return A;}function dh(t,e){var A;if(e==null||e.length==0)return null;for(A=2;A<e.length-2;A++)if(e[A]==32)return Ls(t,e,e,A+1);return Ls(t,e,null,0);}function Ym(){Ym=d1,SV=B(d(F,2),f0,7,0,[B(d(F,1),k,6,15,[0,0,1]),B(d(F,1),k,6,15,[0,2,3]),B(d(F,1),k,6,15,[1,3,3])]);}function Y9(){Y9=d1,O4=new hD("ONE_ONE",0),J4=new hD("ONE_TWO",1),G4=new hD("ONE_THREE",2),yi=new hD("ONE_FOUR",3),q2=new hD("ONE_X",4);}function LQ(t){var e,A;return G(t,-129)>0&&G(t,128)<0?(Sd(),e=Jt(t)+128,A=nc[e],!A&&(A=nc[e]=new Jl(t)),A):new Jl(t);}function Km(t,e,A){this.s=MD(t,P0(e,e.D[0][A])&&P0(e,e.D[1][A])?"Bond Query Features (Multiple)":"Bond Query Features",this),qa(this,e,A);}function $J(t,e){e=e||{};var A=(typeof e.maxSphereSize===ho?5:e.maxSphereSize)|0,n=(typeof e.type===ho?0:e.type)|0;return IK(t,A,n);}function aJ(t,e){t.a=e;var A=t.Ic(),n=t;function P(){n.Hc();}function r(){n.Gc();}var i={fireOk:P,fireCancel:r};A.setEventConsumer(i);}function Me(t){W5();var e;if(!isNaN(t)&&!isFinite(t)||isNaN(t))throw At(new YP("Infinite or NaN"));pa(this,(e=t,e.toPrecision(20)));}function K9(t,e){return L1(t),e==null?false:at(t,e)?true:t.length==e.length&&at(t.toLowerCase(),e.toLowerCase());}function tz(){var t,e;if(E2==null)for(e=new GA(false),E2=c(U9,or,26,Lr.length,0,1),t=0;t<Lr.length;t++)E2[t]=Zi(e,Lr[t]),ut(E2[t],1);}function ez(t){var e;return HT(t.Vb(),(e=gB(new uw(),Hv(new Dw(),new fw(),new lw(),B(d(vl,1),Ke,95,0,[(fQ(),xo)]))),DT(e,new Qw())));}function Xm(t){be(),t.length==0?(this.e=0,this.d=1,this.a=B(d(F,1),k,6,15,[0])):(this.e=1,this.d=t.length,this.a=t,bn(this));}function sQ(t){this.j=t&-4,this.q=t&3,this.o=(t&32)!=0,this.e=(t&64)!=0,this.i=(t&8)!=0,this.d=2,(t&4)!=0&&(this.d|=1),this.i&&(this.d&=-3);}function rf(t,e){var A,n;for(A=0,n=0;n<t.j[e];n++)t.n[e][n]==2&&(K(t,t.i[e][n])==7||K(t,t.i[e][n])==8||K(t,t.i[e][n])==16)&&++A;return A;}function Zm(t,e,A){var n,P,r,i,f;for(P=0,i=0,f=0;f<t.g[e].length;f++)n=t.g[e][f],t.k[n]==A&&(r=1<<t.j[n],(i&r)==0&&(i|=r,++P));return P;}function is(t,e){var A,n,P,r,i;for(i=0,n=1,r=new Zt(t.a);r.a<r.c.a.length;)P=$t(r),A=P.cc(e,null,""+n,false),A!=0&&(i+=A,++n);return i;}function Az(t,e,A,n){var P,r;if(t.d.length>t.c.length)for(P=0;P<t.a;P++)A[n+P]=t.c[P];else for(r=N(t.b,e),P=0;P<t.a;P++)A[n+P]=t.c[r[P]];}function nz(t,e,A,n){var P,r;if(t.d.length<=t.c.length)for(P=0;P<t.a;P++)A[n+P]=t.d[P];else for(r=N(t.b,e),P=0;P<t.a;P++)A[n+P]=t.d[r[P]];}function Wm(t,e,A){var n,P,r,i;for(i=i=c(Pt,ft,6,t.q,16,1),r=mX(t,e,A,i),P=c(F,k,6,r,15,1),r=0,n=0;n<t.q;n++)i[n]&&(P[r++]=n);return P;}function Pz(){var t;return Mo!=0&&(t=Date.now(),t-TE>2e3&&(TE=t,Vo=w.setTimeout(zq,10))),Mo++==0?(mO((o3(),_4)),true):false;}function $r(t){switch(J1(),t){case 7:case 8:case 9:case 15:case 16:case 17:case 33:case 34:case 35:case 52:case 53:return  true;}return  false;}function rz(t,e){var A,n,P;if(n=r9(t),P=r9(e),n==-1||P==-1||(n+P&1)==0)return 3;switch(A=0,n+P){case 3:case 7:A=2;break;case 5:A=1;}return A;}function iz(t,e){var A,n,P;if(n=r9(t),P=r9(e),n==-1||P==-1||(n+P&1)==0)return 3;switch(A=0,n+P){case 3:case 7:A=1;break;case 5:A=2;}return A;}function fz(t,e,A){A!=null&&A.length==0&&(A=null),A==null?t.t!=null&&(t.t[e]=null):(t.t==null&&(t.t=c(E,c8,10,t.M,0,2)),t.t[e]=A);}function _m(t,e,A,n){var P;P=new fs(t,e),hL(P,A,dt(e,A)==1?2:3),hL(P,n,dt(e,n)==2?1:2),t.g[A]=true,t.g[n]=true,Gi(t.e,P)&&uL(t.d,P);}function Dz(){var t,e;if(Tl==null&&Tl==null){for(t=c(Ftt,e0,199,po.length,0,1),e=0;e<po.length;e++)t[e]=new op(po[e][0],po[e][1]);Tl=t;}}function uz(t,e){var A,n,P;_A(),e=e||{};var r=!e.noCoordinates,i=!e.noStereo;return A=new n3(),n=new G3(),md(A,n.a,KA((P=t,ND(),P)),r,i),n;}function pP(t){var e;if(t<hi.length)return hi[t];for(e=new V0();t>=hi.length;)J(e,hi[hi.length-1]),t-=hi.length-1;return J(e,hi[t]),e.a;}function Qz(t,e){var A,n,P;if(e.e.length!=t.e.length)return  false;for(n=RF(t),P=RF(e),A=0;A<n.length;A++)if(n[A]!=P[A])return  false;return  true;}function $m(t,e){var A,n,P;for(P=0,n=0;n<t.length;n++){for(A=t[n];e[P]<A;)if(++P,P==e.length)return  false;if(e[P]>A)return  false;}return  true;}function oz(t,e){Ff();var A,n,P,r;for(r=0,n=0,P=0,A=0;A<t.length;A++)r+=_r(t[A]&e[A]),n+=_r(t[A]),P+=_r(e[A]);return r/w.Math.sqrt(n*P);}function am(t,e){var A,n,P,r;for(n=0,P=0,r=0,A=0;A<t.V.q;A++)(!e||P0(t.V,A))&&(P+=kt(t.V,A),r+=pt(t.V,A),++n);return n>1?new ug(P/n,r/n):null;}function Uz(t,e){var A,n;for(n=true,A=0;A<t.c.length;A++)(gt(V(On(t.c[A]),e.c[A]),0)||gt(V(t.b[A],e.c[A]),e.b[A]))&&(n=false);return n;}function Lz(t,e){var A,n;for(n=true,A=0;A<t.c.length;A++)(gt(V(On(e.c[A]),t.c[A]),0)||gt(V(e.b[A],t.c[A]),t.b[A]))&&(n=false);return n;}function sz(t,e,A,n){var P,r,i;for(r=0,i=0;i<t.i[e].length;i++)if(P=(1-n)*t.e[e][i]+n/t.i[e].length,r+=P,A<=r)return i;return t.i[e].length-1;}function tk(t,e,A,n){var P;for(P=0;P<A.length;P++)A[P]||(A[P]=true,n[e]=P,e+1==n.length?mt(t.b,kn(n,n.length)):tk(t,e+1,A,n),A[P]=false);}function fs(t,e){var A;for(this.b=t,this.a=c(F,k,6,(t.i.g+15)/16|0,15,1),A=0;A<t.i.g;A++)this.a[A>>4]|=w.Math.min(3,dt(e,A))<<2*(A&15);}function CP(t,e,A){this.j=t,this.i=A,this.e=c(F,k,6,e,15,1),this.k=c(F,k,6,e,15,1),this.a=c(Ut,ht,6,e,15,1),this.b=c(Ut,ht,6,e,15,1);}function yz(t){var e,A,n,P,r;for(A=xX(new dP(238,238,238)),n=Qi&A.a,P=0;P<xU(t);P++)for(r=0;r<NU(t);r++)e=Xd(t,P,r),GU(t,P,r,(Sn&e)+n);}function lz(t){var e,A,n,P;for(t.a=c(F,k,6,t.d.a.length,15,1),e=0,P=new Zt(t.b);P.a<P.c.a.length;)n=$t(P),t.a[A=$9(t,n),A<0?-1:A]=e++;}function Tz(t,e){var A,n,P;for(t.c=e,P=new Zt(t.g);P.a<P.c.a.length;)A=$t(P),pe(A,e);for(n=new Zt(t.f);n.a<n.c.a.length;)A=$t(n),pe(A,e);}function Bh(t,e){var A,n,P,r;return A=e/2|0,P=t<0,t=w.Math.abs(t),r=e/32|0,n=w.Math.min(A-1,Jt(M1(w.Math.round(t*A/(t+r))))),P?A+n:n;}function ek(t,e,A){var n;return n=e==0?F0+t[0]-t[t.length-1]:t[e]-t[e-1],A>w6&&A<AA?n-=2*w.Math.cos(A+v2):n-=.5*w.Math.cos(A+v2),n;}function Ds(t,e){var A;return e==null||!Xt(e,29)?false:(A=e,w.Math.abs(A.a-t.a)+w.Math.abs(A.b-t.b)+w.Math.abs(A.c-t.c)<1e-6);}function Ak(){Ak=d1,Fo=B(d(Pt,1),ft,6,16,[false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,true,true]);}function hz(t,e){return H8(t)?!!RV[e]:t.td?!!t.td[e]:Hi(t)?!!bV[e]:Tu(t)?!!kV[e]:false;}function yQ(t,e){switch(e){case 0:return VY(t,false);case 1:return cz(t);case 2:return zY(t);case 3:return Vz(t);case 4:return sY(t);}return null;}function nk(t){var e;e=t.R.c*(t.r!=0?t.r:M8(t.L)),t.Y=e*ytt,t.T=e*stt,t.S=e*.38,t.W=e*.47,t.X=vt(e*t.J*ltt+.5),t.V=e*.12,t.Z=e*.4,t.A=e*.5+.5;}function cz(t){try{return t=Yn(t),ds(t),ke(new FA(t));}catch(e){if(e=a1(e),Xt(e,27))return z1(),null;throw At(e);}}function wz(t,e){var A,n;for(n=0;n<t.b.i.g;n++)t.b.g[n]&&(A=3&t.a[n>>4]>>2*(n&15),w0(e,n,A==1?1:A==2?t.b.g[n]&&!WP(t.b.i,n)?386:2:A==3?4:16));}function gz(t,e,A){var n,P;for(n=new FA(ts(A,null)),ke(n),qu(n,n.jb),t.d=c(F,k,6,e.g.length,15,1),P=0;P<t.d.length;P++)t.d[P]=Pd(A,e.g[P].a);}function a8(t){return H8(t)?fh(t):Hi(t)?vt((L1(t),t)):Tu(t)?(L1(t),t?1231:1237):eT(t)?t.ob():a3(t)?dD(t):t&&t.hashCode?t.hashCode():dD(t);}function dz(t){var e,A;for(e=0;e<t.R.f;e++)(!t.M[e]||t.db[e]==3)&&(t.bb[e]=0);for(A=0;A<t.R.g;A++)(l1(t.R,A)!=1||t.o[A]==0||t.o[A]==3)&&(t.n[A]=0);}function Bz(t,e){var A,n;if((t.u[e]&hn)!=0){for(n=(ut(t,7),t.p),A=0;A<n.j.a.length;A++)if(N(n.k,A).length==6&&yA(n,A,e))return  true;}return  false;}function $D(t,e){var A,n;if(t.C[e]==7&&t.e[e]+It(t,e)>=3){for(A=0;A<t.e[e];A++)if(n=t.i[e][A],t.C[n]==8&&t.e[n]+It(t,n)==1)return  true;}return  false;}function lQ(t,e){var A,n;if(Zg(e>0),(e&-e)==e)return vt(e*Rs(t,31)*4656612873077393e-25);do A=Rs(t,31),n=A%e;while(A-n+(e-1)<0);return vt(n);}function us(t){var e,A;gu(this);try{if(t)for(A=new Zt(t);A.a<A.c.a.length;)e=$t(A),mt(this,e.Gb());}catch(n){if(n=a1(n),!Xt(n,19))throw At(n);}}function XA(t,e,A){A>=-1&&A<=14&&(t.u[e]&=-2013265921,t.u[e]|=1+A<<27,t.C[e]==6&&(A==-1||A==0||A==2||A==4)&&(t.u[e]&=-49,A==2&&(t.u[e]|=16)));}function Pk(t,e,A,n){var P,r,i,f;for(r=-1,i=-1,f=0;f<Ht(t.e,e);f++)if(P=W(t.e,e,f),P==A||P==n)if(i==-1)i=f;else {r=f;break;}return t.a[e][r][i];}function rk(t,e){var A,n,P,r,i;for(A=-1,n=-1,r=0;r<O(t.k,e);r++)P=W(t.k,e,r),i=(pA(t.k,e,r)<<24)+t.a[P],!t.b[P]&&(A==-1||n<i)&&(A=r,n=i);return A;}function vz(t,e){var A,n,P,r;for(n=1,r=0;r<t.u.length;r++)n*=u3(t.u[r],e.d[r]);for(A=_8(t.i,e.d),P=0;P<t.v.length;P++)n*=F3(A,P,e.i[P]);return n;}function ik(t,e){var A,n,P,r;for(r=t.size(),e.length<r&&(e=uu(new Array(r),e)),P=e,n=t.Tb(),A=0;A<r;++A)P[A]=n.bd();return e.length>r&&(e[r]=null),e;}function fk(t,e){return w.Math.acos((t.a*e.a+t.b*e.b+t.c*e.c)/(w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c)*w.Math.sqrt(e.a*e.a+e.b*e.b+e.c*e.c)));}function Qs(t,e,A,n){P9();var P,r;for(P=0,r=0;r<A;r++)P=x1(on(V(e[r],h1),V(n,h1)),V(Jt(P),h1)),t[r]=Jt(P),P=DA(P,32);return Jt(P);}function an(t,e){var A;for(A=0;A<t.w;A++)e-=16;for(e<0&&z1();e>15;)Ot(t,1,1),Ot(t,15,4),e-=16,++t.w;Ot(t,1,1),Ot(t,e,4);}function vh(){Ym(),this.c=new zA(24,29),this.i=c(F,k,6,24,15,1),this.b=c(F,k,6,2,15,1),this.e=c(F,k,6,2,15,1),this.f=c(F,k,6,2,15,1);}function Fz(t,e,A){return EI(t>=0&&t<=1114111),t>=u0?(e[A++]=55296+(t-u0>>10&1023)&c1,e[A]=56320+(t-u0&1023)&c1,2):(e[A]=t&c1,1);}function mz(t){var e;if(t.q==1)return  true;for(e=1;e<t.q;e++)if(t.J[e].a!=t.J[0].a||t.J[e].b!=t.J[0].b||t.J[e].c!=t.J[0].c)return  true;return  false;}function kz(t,e,A){var n,P;for(P=0;P<O(t.j,e);P++)if(n=W(t.j,e,P),K(t.j,n)==8&&O(t.j,n)==1)return A&&b1(t.j,n)==0&&E0(t.j,n,-1),true;return  false;}function Dk(t,e){var A,n;for(n=0;n<t.b.length;n++)if(A=w.Math.abs(t.b[n]-e.b[n]),A>py&&A<t.a[n]-py)return A<t.a[n]/2^t.b[n]<e.b[n]?1:-1;return 0;}function Fh(t,e,A,n){var P,r;for(r=0;r<t.g[e].length;r++)P=t.g[e][r],t.f[P]&&(t.o[P]==1||t.o[P]==2)&&t.k[P]==0&&(t.k[P]=n<<24>>24,t.j[P]=A<<24>>24);}function bz(t){var e;return HT(t.Vb(),(e=gB(new sw(),BO(new Uw(),new Lw(),new gw(),new dw(),B(d(vl,1),Ke,95,0,[(fQ(),Uc),xo]))),DT(e,new yw())));}function os(t,e){var A;if(t.j[e]==3&&e<t.f&&r0(t.p,e)&&(t.p&&e<t.f?iA(t.p,e):0)>=5){for(A=0;A<t.j[e];A++)if(ri(t,t.k[e][A]))return t.k[e][A];}return  -1;}function Rz(t){var e,A,n;for(A=false,e=1;e<t.e.a.length;e++)for(n=0;n<e;n++)N(t.e,n).a>N(t.e,e).a&&(A=!A),N(t.e,n).b>N(t.e,e).b&&(A=!A);return A;}function jz(t){var e,A;for(e=0;e<t.f.q;e++)!t.b[e]&&Ht(t.f,e)==0&&(A=new CP(t.f,1,false),t.b[e]=true,A.e[0]=e,A.a[0]=0,A.b[0]=0,A.k[0]=0,jP(t.d,A));}function pz(t,e){var A,n,P;return e<=22?(A=t.l&(1<<e)-1,n=P=0):e<=44?(A=t.l,n=t.m&(1<<e-22)-1,P=0):(A=t.l,n=t.m,P=t.h&(1<<e-44)-1),S0(A,n,P);}function mh(t,e,A,n,P,r,i,f){var D,Q;n&&(D=n.a[0],D&&mh(t,e,A,D,P,r,i),Oz(t,A,n.c,P,r,i)&&e.add(n),Q=n.a[1],Q&&mh(t,e,A,Q,P,r,i));}function Us(t,e){var A;for(A=0;A<t.c;A++)if(gt(t.d[A],e.d[A]))return Ci(t.d[A],e.d[A])?-1:1;return n0(t.d[t.c],e.d[t.c])?0:Ci(t.d[t.c],e.d[t.c])?-1:1;}function uk(t,e,A){var n,P,r;for(r=e.length,n=new CP(t.f,r,false),n.a[0]=0,n.b[0]=0,P=0;P<r;P++)n.k[P]=128-r,n.e[P]=e[P];r<8?hQ(n):Za(t,n,e,A),jP(t.d,n);}function Qk(t,e){var A=new Array(e),n;switch(t){case 14:case 15:n=0;break;case 16:n=false;break;default:return A;}for(var P=0;P<e;++P)A[P]=n;return A;}function ok(t){var e;return e=new eD(),t.a<=t.b?(e.c=t.a,e.b=t.b-t.a):(e.c=t.b,e.b=t.a-t.b),t.c<=t.d?(e.d=t.c,e.a=t.d-t.c):(e.d=t.d,e.a=t.c-t.d),e;}function Ot(t,e,A){for(;A!=0;)t.t==0&&((!t.r||t.v!=63)&&(t.v+=64),Ge(t.u,t.v&c1),t.t=6,t.v=0),t.v<<=1,t.v=Jt(Y(t.v,V(e,1))),e=q0(e,1),--A,--t.t;}function Cz(t,e,A,n,P,r,i,f,D,Q){var o;return o=kh(y5(t,e,A,n,P,r,i,f,D)),o==-1&&(o=kh(y5(t,e,A,n,P,r,i,7,7)),o==-1&&(o=kh(y5(t,e,A,n,P,3,3,7,7)))),o;}function kh(t){var e,A,n,P;for(p4||l_(),P=C0,n=q1,A=0;A<13;A++){if(e=P>=vo.length||t<vo[P]?-1:t==vo[P]?0:1,e==0)return P;P=e<0?P-n:P+n,n=n/2|0;}return  -1;}function Hz(t,e){_A();var A;return typeof e===ho&&(e=true),typeof e===h2?A=new CA(Zi(new GA(e),t)):typeof e===mf&&(A=new CA(yG(new GA(false),t,e))),A;}function Uk(t,e,A){var n,P;return n=Ji(t,e++),n>=55296&&n<=56319&&e<A&&VI(P=(Gt(e,t.length),t.charCodeAt(e)))?u0+((n&1023)<<10)+(P&1023):n;}function Mz(t){var e;return t==null?false:(e=typeof t,at(e,h2)||at(e,Ar)||at(e,mf)||t.$implements__java_io_Serializable||Array.isArray(t));}function Vz(t){var e;try{return e=KR(new n5(t)),ke(new EA(e,8));}catch(A){if(A=a1(A),Xt(A,27))return z1(),null;throw At(A);}}function TQ(t,e){var A,n,P;return A=t.a,n=t.b,P=t.c,t.a=A*e[0][0]+n*e[1][0]+P*e[2][0],t.b=A*e[0][1]+n*e[1][1]+P*e[2][1],t.c=A*e[0][2]+n*e[1][2]+P*e[2][2],t;}function Ls(t,e,A,n){var P,r,i,f,D;return e==null?null:(_U(t,e,0),P=nt(t,4),f=nt(t,4),P>8&&(P=f),r=nt(t,P),i=nt(t,f),D=new zA(r,i),gp(t,D,e,A,n),D);}function Lk(t,e,A){var n,P,r;if(t.i!=null)for(n=0;n<t.i.length;n++)r=t.p[n]*e,P=t.o[n]-A,t.i[n].a=t.k+r*w.Math.sin(P),t.i[n].b=t.n+r*w.Math.cos(P);}function Ez(t){var e,A,n,P,r,i;for(A=0,P=t.a,r=0,i=P.length;r<i;++r)n=P[r],n&&++A;for(t.b=c(F,k,6,A,15,1),A=0,e=0;e<t.a.length;e++)t.a[e]&&(t.b[A++]=e);}function m0(t,e){t.b!=e&&e>=0&&e<34&&(e!=t.b||e==20||e==33)&&(e!=19||(t.a.U&4)!=0)&&(e!=21||(t.a.U&8)!=0)&&!(e==0||e==17||e==1)&&(t.b=e,tQ(t.a,e),pD(t.n));}function Sz(t,e){switch(e){default:case 0:return yQ(t.a,0);case 1:return yQ(t.a,1);case 2:return yQ(t.a,2);case 3:return yQ(t.a,3);case 4:return yQ(t.a,4);}}function qz(t){switch(typeof t){case mf:return fh(t);case Ar:return vt((L1(t),t));case h2:return L1(t),t?1231:1237;default:return t==null?0:dD(t);}}function Iz(t){var e,A,n;t.b==t.c&&(n=t.a.length,A=MG(w.Math.max(8,n))<<1,t.b!=0?(e=xI(t.a,A),_v(t,e,n),t.a=e,t.b=0):vi(t.a,A),t.c=n);}function HP(t,e,A,n,P){var r,i,f;P&&(r=t.vb(n),i=r/2+(t.wb()/8|0),f=t.wb()/2|0,(n=="+"||n=="-")&&(f=f*2/3),mt(t.$,new QA(e-i,A-f,2*i,2*f))),t.K||t.tb(n,e,A);}function xz(t){var e,A;for(A=false,e=0;e<t.V.f;e++)R1(t.V,e)!=0&&dn(t.V,e)&&(A||(G1(t),A=true),We(t.V,e,R1(t.V,e),false));A&&gL(t,w.Math.max(t.eb,1));}function Nz(t,e){var A,n,P;return P=t.h-e.h,P<0||(A=t.l-e.l,n=t.m-e.m+(A>>22),P+=n>>22,P<0)?false:(t.l=A&x0,t.m=n&x0,t.h=P&aA,true);}function Oz(t,e,A,n,P,r,i){var f,D;return !(e.ld()&&(D=t.a.Rb(A,n),D<0||D==0)||e.md()&&(f=t.a.Rb(A,r),f>0||f==0));}function aD(t,e,A,n){var P;return P=c(Ut,ht,6,3,15,1),P[0]=t.k[n].a-t.k[A].a,P[1]=t.k[n].b-t.k[A].b,P[2]=t.k[n].c-t.k[A].c,P[0]*e[0]+P[1]*e[1]+P[2]*e[2]>0;}function Gz(t,e){var A;for(A=0;A<t.j.f;A++)t.d[A]&&dQ(t.j,A)==0&&(!e||K(t.j,A)==5&&b1(t.j,A)<0||K(t.j,A)==6||K(t.j,A)==14||tA(t.j,A)&&b1(t.j,A)>0)&&Af(t,A);}function ar(t){var e;return e=w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c),e==0?(z1(),t.a=1,t.b=0,t.c=0,t):(t.a/=e,t.b/=e,t.c/=e,t);}function ti(t){return J1(),!(t==1||t==6||$r(t)||t==2||t==10||t==18||t==36||t==54||t==86||t>103);}function sk(t){var e,A,n,P,r,i;for(i=tP(t),r=i.length,e=i[0].length,P=k1(F,[f0,k],[7,6],15,[r,e],2),A=0;A<r;A++)for(n=0;n<e;n++)P[A][n]=i[A][n].a;return P;}function yk(t){var e;return e=0,t==2?e=1:t>=3&&t<=10?e=2:t>=11&&t<=18?e=3:t>=19&&t<=36?e=4:t>=37&&t<=54&&(e=5),(t>=21&&t<=30||t>=39&&t<=48)&&(e*=10),e;}function Jz(t,e){e.j==1?(t.a!=-1&&(X0(t.e,t.a,t.k),br(t.e,t.a,t.g),XA(t.e,t.a,t.j),Oe(t.e,t.a,t.i),VP(t.e,t.a,t.n)),Rr(t.c)):e.j==0&&(I$(t),Rr(t.c));}function ss(t){var e,A;return isNaN(t)?{l:0,m:0,h:524160}:(e=(A=new ArrayBuffer(8),new Float64Array(A)[0]=t,new Uint32Array(A)),S9(e[0]|0,e[1]|0));}function lk(t){var e,A;if(t.K){for(e=0;e<t.q;e++)if(gt(V(t.B[e],re),0)){for(t=new Jr(t),A=e;A<t.q;A++)gt(V(t.B[A],re),0)&&(t.C[A]=-1);ni(t);}}return t;}function Tk(t,e,A,n,P,r){this.f=t,P!=0&&P!=1?this.c=true:(this.a=e,this.b=A,this.d=r,this.e=new f1(),n!=-1&&Xu(this,n,A-1),n!=-1&&P==1&&Xu(this,fo,A+1));}function f8(t,e){G1(t),Oh(t.V,t.hb,t.kb,e,0,-1,0,null)&&(t.t!=-1&&(t.t=-1,I1(t,new S1(t,4,true))),t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));}function zz(t){var e,A,n,P,r,i;for(r=-1,i=Ee,e=0;e<t.V.q;e++)n=t.hb-kt(t.V,e),P=t.kb-pt(t.V,e),A=w.Math.sqrt(n*n+P*P),A<24&&i>A&&(i=A,r=t.M[e]);return r;}function Yz(t,e){var A,n,P;for(n=0;n<t.j[e];n++)if(t.n[e][n]!=1){for(A=t.i[e][n],P=0;P<t.j[A];P++)if(t.n[A][P]==1&&rf(t,t.i[A][P])!=0)return  true;}return  false;}function ff(t,e){var A,n;for(e.v=null,e.t=null,e.K=t.K,e.q=0,A=0;A<t.q;A++)Vn(t,e,A,0,0);for(e.r=0,n=0;n<t.r;n++)tr(t,e,n,0,0,t.D[0][n],t.D[1][n],false);t.Yb(e);}function Kz(t,e){var A,n;for(A=c(F,f0,7,e,0,2),n=0;n<t.length;n++)t[n]!=null&&(A[n]=c(F,k,6,t[n].length,15,1),sA(t[n],0,A[n],0,t[n].length));return A;}function Xz(t,e){var A,n;for(A=c(E,c8,10,e,0,2),n=0;n<t.length;n++)t[n]!=null&&(A[n]=c(E,q,6,t[n].length,15,1),sA(t[n],0,A[n],0,t[n].length));return A;}function hk(t,e,A){var n,P,r,i,f;if(r=N1(t,e),n=WA(t,e,r,A),i=((t.u[e]&w8)>>>27)-1,i==-1){for(f=Ku(t.C[e]),P=0;P<f.length-1&&r>f[P]+n;)++P;i=f[P];}return i+n-r;}function Zz(t,e){var A;if(t.b.length!=e.b.length)return t.b.length<e.b.length?-1:1;for(A=0;A<t.b.length;A++)if(t.b[A]!=e.b[A])return t.b[A]<e.b[A]?-1:1;return 0;}function Wz(t,e){var A,n,P;t.j||e.startsWith("COUNTS")&&(A=lA(e,Pe(e,7)),n=Q1(oA(e,7,Pe(e,7)),P1,Et),P=Q1(oA(e,A,Pe(e,A)),P1,Et),t.j=new zA(n,P));}function _z(t,e){var A,n,P,r,i,f;for(i=new J0(),f=t.c.length==2?t.c:t.b,n=f,P=0,r=n.length;P<r;++P)A=n[P],Hr(i,e.k[A]);return wd(i,.5),ar(px(i,z0(e,t.f[4]))),i;}function $z(t,e){var A,n;if(n=false,t.f.t==null)for(t.f.t=c(F,k,6,e.length,15,1),A=t.f.t.length;--A>=0;)t.f.t[e[A]]=A;return n=Yj(t,e,0,n),n=Yj(t,e,1,n),n;}function az(t,e,A){var n;if(t.eb==6){if(A)for(n=0;n<t.V.q;n++)Gn(t.V,n,!P0(t.V,n));er(new Y8(A?4:0),t.V),A&&tT(t.V);}b5(t.G,e,new QA(0,0,CD(t.k),Vr(t.k)),u0|t.T);}function ck(t,e){var A,n,P;if(wT(e),A=e/31|0,n=t.a.length,A>=n)return  -1;for(P=(t.a[A]|0)&Et<<e%31;P==0;){if(++A>=n)return  -1;P=t.a[A]|0;}return A*31+OL(P);}function bh(t,e){var A,n,P,r,i,f,D,Q;return D=t.h>>19,Q=e.h>>19,D!=Q?Q-D:(P=t.h,f=e.h,P!=f?P-f:(n=t.m,i=e.m,n!=i?n-i:(A=t.l,r=e.l,A-r)));}function Df(t,e,A,n){var P;if(e==0){A<0?n.a=t.T:n.a=-t.T,n.b=0;return;}P=w.Math.atan(A/e),e<0&&(P+=U1),n.a=-(t.T*w.Math.sin(P)),n.b=t.T*w.Math.cos(P);}function tY(t,e,A,n,P){var r,i,f,D;for(i=A,f=0,D=i.length;f<D;++f)r=i[f],P[t.d[r]]=x1(P[t.d[r]],e[r]<<t.b[r]),n[t.d[r]]=x1(n[t.d[r]],j1(Lc[t.a[r]],t.b[r]));}function eY(t){var e=t.backingJsObject;if(e&&e.stack){var A=e.stack,n=e+$A;return A.substring(0,n.length)==n&&(A=A.substring(n.length)),A.split($A);}return [];}function hQ(t){var e,A;for(e=U1-U1*(t.e.length-2)/t.e.length,A=1;A<t.e.length;A++)t.a[A]=t.a[A-1]+w.Math.sin(e*(A-1)),t.b[A]=t.b[A-1]+w.Math.cos(e*(A-1));}function AY(t,e,A,n,P){var r;return r=Eb(t,e,A,n,P),r<0?jj(t,e,A,n,P,Ob(t,e,A,n,P)):w.Math.abs(j0(t.b[r][4]))<.001?jj(t,e,A,n,P,j0(t.b[r][5])):j0(t.b[r][4]);}function nY(t,e){var A,n,P,r,i;for(r=0;r<xU(t);r++)for(i=0;i<NU(t);i++)for(A=Xd(t,r,i),P=A&Qi,n=0;n<K4.length;n++)if(P==K4[n]){GU(t,r,i,(Sn&A)+e[n]);break;}}function PY(t,e,A){var n,P;if(t.k=e,t.n=A,t.i!=null)for(P=t.i.length,t.o=c(Ut,ht,6,P,15,1),t.p=c(Ut,ht,6,P,15,1),n=0;n<P;n++)t.o[n]=t.i[n].a,t.p[n]=t.i[n].b;}function ys(t,e){var A,n,P;if($1(t.R,e)<2)return  false;if(O(t.R,e)==2)return  true;for(A=0,P=0;P<O(t.R,e);P++)n=xt(t.R,e,P),_e(t.R,n)&&(A+=dt(t.R,n)-1);return A>1;}function t9(){t9=d1,sl=new pi("CREATE",0),Ll=new pi("CHANGE_DIF",1),Ul=new pi("CHANGE_ABS",2),yl=new pi("REMOVE",3),jo=new pi("NO_CHANGE",4),ll=new pi("UNKNOWN",5);}function wk(t,e){var A,n,P;return A=e.dd(),P=e.ed(),n=t.get(A),!(!(O1(P)===O1(n)||P!=null&&MP(P,n))||n==null&&!t.containsKey(A));}function rY(t,e,A){var n,P,r,i,f,D,Q;if(t.e!=null)for(r=t.e,f=0,Q=r.length;f<Q;++f)n=r[f],Wg(n,e,A);if(t.b!=null)for(P=t.b,i=0,D=P.length;i<D;++i)n=P[i],Wg(n,e,A);}function gk(t,e,A){var n,P,r,i,f;for(r=true,f=N(t.g,e).a,i=rk(t,f);i!=-1;)n=W(t.k,f,i),P=xt(t.k,f,i),i=rk(t,n),qv(t,new bT(n,P,f,A&&r,A&&i==-1),++e),f=n,r=false;}function dk(t,e){var A,n;if(e!=null)for(ut(t.j,1),A=0;A<t.j.f;A++)e[A]!=0&&(n=mu(t.j,A,N1(t.j,A)),e[A]==15?n>=0&&XA(t.j,A,0):e[A]!=UT(t.j,A)&&XA(t.j,A,e[A]-n));}function Rh(t){var e,A,n;if(A=new f1(),e=t.e.indexOf(k0(10)),e==-1)mt(A,t.e);else {for(n=0;e!=-1;)mt(A,oA(t.e,n,e)),n=e+1,e=KI(t.e,10,n);mt(A,HD(t.e,n));}return A;}function MP(t,e){return H8(t)?at(t,e):Hi(t)||Tu(t)?(L1(t),O1(t)===O1(e)):eT(t)?t.mb(e):a3(t)?lg(t,e):t&&t.equals?t.equals(e):O1(t)===O1(e);}function iY(t,e,A){var n,P;return n=c(F,k,6,4,15,1),n[0]=e.b,n[1]=e.a,n[2]=A.a,n[3]=A.b,P=IQ(t.R,n),w.Math.abs(P)<.3||w.Math.abs(P)>kp?3:P<0?2:1;}function fY(t,e,A){var n,P;return n=c(F,k,6,4,15,1),n[0]=e.b,n[1]=e.a,n[2]=A.a,n[3]=A.b,P=IQ(t.R,n),w.Math.abs(P)<.3||w.Math.abs(P)>kp?3:P<0?1:2;}function lA(t,e){var A;if(e==-1)return  -1;for(A=e+1;A<t.length;A++)if(Gt(A,t.length),t.charCodeAt(A)!=32&&(Gt(A,t.length),t.charCodeAt(A)!=9))return A;return  -1;}function DY(t){var e,A;for(t.b=null,e=0;e<t.g.g;e++)Bu(t.g,e)&&(!t.b&&(t.b=new f1()),A=new Y2(),A.a=z(t.g,0,e),A.b=z(t.g,1,e),A.d=S3(t.g,e),A.c=yT(t.g,e),mt(t.b,A));}function Bk(){Up();var t,e,A,n,P,r,i;for(gu(this),r=new BU(),A=IV,n=0,P=A.length;n<P;++n)e=A[n],t=Zi(new GP(),e),ut(t,31),uK(r,t),i=new Lg(t),i.a=M8(i.b),this.a.push(i);}function cQ(t){var e,A,n;for(Cm(t),Ua(new f7(),gh(t)),n=c(F,k,6,t.L.length,15,1),e=0;e<t.V.q;e++)A=t.M[e],We(t.V,e,R1(t.L[A],n[A]),R1(t.V,e)==0||dn(t.V,e)),++n[A];}function uY(t,r){var A=cE;A||(A=Z.createElement("canvas"),cE=A);var n=""+t.b+"px "+t.a,P=A.getContext("2d");P.font=n;var r=P.measureText(r);return r.width;}function vk(t,e){var A,n,P,r,i;for(r=Mb(t,t.D[0][e])||Mb(t,t.D[1][e])?5:3,n=0;n<2;n++)A=t.D[n][e],P=dt(t,e)+(i=pn(t,A),i+WA(t,A,i,t.C[A]))-N1(t,A),r>P&&(r=P);return r;}function QY(t,e,A){var n,P,r,i,f;if(n=xt(t.k,e,A),i=W(t.k,e,A),t.e[n]!=0){for(f=8*t.q[e]+1,P=N(t.g,t.q[e]).c,r=0;r<P.length&&i!=P[r];r++)++f;return f;}return 8*t.q[i];}function oY(t){var e,A,n,P;for(e="x3",A="fB",P=w.Math.min(t.length,5),n=P-1;n>=0;n--)if(at(t[n].d,e)||at(t[n].d,A)){t.length>=n+1&&t.splice(0,n+1);break;}return t;}function UY(t){var e,A,n,P;for(P=0,n=null,A=new Zt(t);A.a<A.c.a.length;)e=$t(A),P<e.b[0].e.length*e.b[1].e.length&&(P=e.b[0].e.length*e.b[1].e.length,n=e);return n;}function wQ(t){var e,A,n;for(n=new Zt(t.g);n.a<n.c.a.length;)if(e=$t(n),e.K)return  true;for(A=new Zt(t.f);A.a<A.c.a.length;)if(e=$t(A),e.K)return  true;return  false;}function Cn(t,e){var A;return o0(t)&&o0(e)&&(A=t/e,p2<A&&A<iP)?A<0?w.Math.ceil(A):w.Math.floor(A):jn(N5(o0(t)?Ce(t):t,o0(e)?Ce(e):e,false));}function LY(t,e){var A,n,P;for(t.g=c(F,k,6,t.k.q,15,1),A=Zb(t.k,t.g,e,true),t.q=c(jPt,e0,177,A,0,1),P=true,n=0;n<A;n++)P=P&!!(t.q[n]=aa(t.r,t.k,t.g,n));return P;}function sY(t){var e;try{return t=Yn(t),ds(t),e=KR(new n5(t)),ke(new EA(e,8));}catch(A){if(A=a1(A),Xt(A,27))return z1(),null;throw At(A);}}function uf(t,e,A){var n,P,r;if(P=N1(t,e),P-=WA(t,e,P,t.C[e]),A&&(P-=t.e[e]-t.j[e]),r=Ku(t.C[e]),P<=r[0])return  -1;for(n=1;n<r.length;n++)if(r[n]>=P)return r[n];return P;}function Fk(t,e,A,n,P){this.f=e,this.a=A,this.b=n,this.c=P,this.j=zv(t.a,e,A,n,P),this.g=L2(t.d,e,A,n),this.i=L2(t.d,e,P,n),this.d=oR(t.n,e,A,n,P),this.e=oR(t.n,e,P,n,A);}function mk(t,e,A,n,P,r,i){var f,D,Q,o,L;if(o=P[r],Q=r==i-1,f=Q?n:0,L=Qk(f,o),n!=10&&B(d(t,i-r),e[r],A[r],f,L),!Q)for(++r,D=0;D<o;++D)L[D]=mk(t,e,A,n,P,r,i);return L;}function gQ(t,e){var A,n;for(A=0;A<t.r;A++)for(n=0;n<2;n++)t.D[n][A]==e&&(t.H[A]=512);$u(t,t.w[e]),t.C[e]=-1,t.v!=null&&(t.v[e]=null),t.t!=null&&(t.t[e]=null),vf(t),t.T=0;}function yY(t,e){var A,n,P,r;for(A=t.e[e],r=c(F,k,6,A,15,1),P=0;P<A;P++)r[P]=(t.i[e][P]<<16)+P;for(r.sort(me(D0.prototype.gd,D0,[])),n=0;n<A;n++)r[n]&=c1;return r;}function lY(t,e){var A,n,P;for(P=new V0(),n=0;n<t.a.a.length;n++)P.a.length!=0&&(P.a+="+"),A=new FA(N(t.a,n)),J(P,ke(A)),e&&(P.a+=" ",J(P,qu(A,true)));return P.a;}function TY(t,e){if(t.b==-1)t.a=c(ktt,e0,170,e,0,1),t.b=e,t.c=e-1;else do t.c=t.c==0?t.b-1:t.c-1;while(t.a[t.c]&&ph(t.a[t.c]));return !t.a[t.c]&&(t.a[t.c]=new Nl()),t.c;}function jh(t,e,A){var n,P,r;for(P=t.$c().Tb();P.ad();)if(n=P.bd(),r=n.dd(),O1(e)===O1(r)||e!=null&&MP(e,r))return A&&(n=new hU(n.dd(),n.ed()),P.cd()),n;return null;}function Hn(t,e,A,n){vr(t.L,u1(t.L,A,n))?(Z1(t,-3),t.qb(e),Z1(t,t.Q)):t.p[A]!=t.p[n]?rK(t,e,A,n):t.p[A]!=0?(Z1(t,t.p[A]),t.qb(e),Z1(t,t.Q)):t.qb(e);}function dQ(t,e){var A,n,P,r,i;if(!t.K||t.v==null||t.v[e]==null)return hk(t,e,t.C[e]);for(i=0,n=t.v[e],P=0,r=n.length;P<r;++P)A=n[P],i=w.Math.max(i,hk(t,e,A));return i;}function kk(){kk=d1,B8=vt(w.Math.round(vt(w.Math.round((Be==-1&&(Be=globalThis.devicePixelRatio||1),Be*2))))),gn=(Be==-1&&(Be=globalThis.devicePixelRatio||1),Be*21);}function BQ(t,e){var A,n,P,r;return P=w.Math.min(t.c,e.c),r=w.Math.min(t.d,e.d),n=w.Math.max(t.c+t.b,e.c+e.b)-P,A=w.Math.max(t.d+t.a,e.d+e.a)-r,new QA(P,r,n,A);}function hY(t,e,A,n){W7();var P=Al;function r(){for(var i=0;i<P.length;i++)P[i]();}if(t)try{YE(r)();}catch(i){t(e,i);}else YE(r)();}function bk(t,e,A,n){var P,r,i;for(P=0;P<t.q;P++)(!n||(t.u[P]&512)!=0)&&(i=t.R[P]*e,r=t.Q[P]-A,t.J[P].a=t.U+i*w.Math.sin(r),t.J[P].b=t.V+i*w.Math.cos(r));n&&(t.T&=7);}function ph(t){var e,A,n,P,r;if(!t.d)if(t.b==-1)t.d=true;else {for(r=false,A=t.a,n=0,P=A.length;n<P;++n)if(e=A[n],!e)r=true;else if(!ph(e))return  false;t.d=!r;}return t.d;}function cY(t){var e,A,n,P,r,i;if(P=eY(t),r=c(gE,h0,115,0,0,1),e=0,n=P.length,n==0)return r;for(i=Vj(P[0]),at(i.d,L4)||(r[e++]=i),A=1;A<n;A++)r[e++]=Vj(P[A]);return r;}function Rk(t,e,A){for(var n,P;A<0;)A=A+360<<16>>16;for(;A>=360;)A=A-360<<16>>16;n=e.a,A!=(t.j==null?-1:t.j[n])&&(P=A-(t.j==null?-1:t.j[n]),HZ(t,e,U1*P/180),Jm(t,n,A));}function vQ(t){var e,A,n;if(!t.a)return null;for(t.e||IR(t,1),e=null,n=new Zt(t.a);n.a<n.c.a.length;)A=$t(n),!A.b&&(!e||e.e>A.e)&&(e=A);return e?e.b=true:t.a=null,e;}function jk(t){var e,A,n,P;for(n=-1,P=Et,e=0;e<t.k.f;e++)t.b[e]||(A=t.a[e],oe(t.k,e)&&(A+=cn),O(t.k,e)==0?A+=1056964608:A+=O(t.k,e)<<24,P>A&&(P=A,n=e));return n;}function Qf(t,e,A){var n,P;if(e<t.f&&r0(t.p,e)){for(P=(ut(t,7),t.p),n=0;n<P.j.a.length;n++)if(!(N(P.k,n).length!=A||!yA(P,n,e))&&t.b[n]==0)return  true;}return  false;}function wY(t,e){var A,n;if(n=Y1(e),A=false,n==null||!n.startsWith("$RXN"))throw At(new C1("'$RXN' tag not found"));return at(n,nH)?A=p$(t,e):A=$$(t,e),A;}function pk(t,e,A){if(t.f[e])return 0;if(t.a){if(Ht(t.j,e)!=3)return 0;}else if(Ht(t.j,e)>3)return 0;return K(t.j,e)==6?(A&&E0(t.j,e,1),2):K(t.j,e)==5?4:0;}function ZA(t,e,A){var n,P,r,i,f,D,Q,o;for(i=-1,P=cP(t,t.q,t.r,wn),f=Ee,D=P*P/12,n=0;n<t.q;n++)Q=t.J[n].a,o=t.J[n].b,r=(e-Q)*(e-Q)+(A-o)*(A-o),r<D&&r<f&&(f=r,i=n);return i;}function Ck(t,e){var A,n,P,r,i,f;for(n=t,P=0,r=n.length;P<r;++P)if(A=n[P],e.j[A]!=0)return  false;for(i=b1(e,t[0]),f=1;f<t.length;f++)if(b1(e,t[f])!=i)return  false;return  true;}function Hk(t,e,A){var n,P;return t.L.q==0?null:(t.v=QR(t),n=t.R.c*M8(t.L),P=new Zs(t.v,e,n,A),P.c==1&&P.a==0&&P.b==0?P=null:(Vu(P,t.R),Nu(P,t.v)),T5(t,e,n,A),P);}function gY(t){var e,A,n,P;for(ut(t,1),P=0,e=0;e<t.q;e++)n=t.A[e]!=0?t.A[e]:o9[t.C[e]],P+=n+It(t,e)*o9[1],t.C[e]>=171&&t.C[e]<=190&&(A=t.e[e],A>2&&(P-=(A-2)*o9[1]));return P;}function Mk(t,e,A){var n,P,r,i,f,D;for(P=0,r=0;r<t.j[e];r++)if(n=t.i[e][r],n!=A){for(i=0,f=0;f<t.j[n];f++)D=t.i[n][f],D!=e&&_e(t,t.k[n][f])&&t.j[D]>2&&++i;i==2&&++P;}return P;}function dY(t,e){var A,n,P,r,i,f,D,Q;for(D=-1,n=0,i=0;i<2;i++)for(A=t.D[i][e],f=0;f<t.e[A];f++)P=t.i[A][f],P!=t.D[1-i][e]&&(r=t.k[A][f],Q=HQ(t,r,P),n<Q&&(n=Q,D=r));return D;}function BY(t,e){var A,n,P,r,i,f;for(A=new f1(),n=0;n<e.q;n++)if(e.e[n]>1)for(P=0;P<e.e[n];P++)for(i=e.i[n][P],r=P+1;r<e.e[n];r++)f=e.i[n][r],mt(A,new wm(t,e,i,n,f));return A;}function vY(t,e){var A,n,P,r;for(A=1;A<e.q;A++)for(n=0;n<A;n++)!t[A][n]&&(t[A][n]=new mF(O9(A,n),(r=e.C[A],(r<(T2(),IA).length?IA[r]:2)+(P=e.C[n],P<IA.length?IA[P]:2))));}function FY(t){var e,A,n,P,r;for(r=new Sg(),A=t,n=0,P=A.length;n<P;++n)e=A[n],r.a?J(r.a,r.b):r.a=new vn(r.d),dg(r.a,e);return r.a?r.e.length==0?r.a.a:r.a.a+(""+r.e):r.c;}function Ch(t,e){var A,n,P;return P=-1,n=-1,(t.G&128)!=0||(V8(t.L,e)&&(P=ne(t.L,e),n=VA(t.L,e)),A=os(t.L,e),A!=-1&&(P=hP(t.L,A),n=Wi(t.L,A)),P!=-1&&P!=0&&(P|=n<<8)),P;}function Hh(t,e,A,n,P,r,i,f){var D,Q;for(Q=1;Q<f;Q++){for(D=i[Q];D<i[Q+1];D++)A[D]=r[P[D]]+(A[n[D]]<<8);if(xR(t,e,A,n,P,i,Q),A[1]!=A[2])return  true;Q>1&&rR(A,n,i,Q);}return  false;}function Vk(t,e,A){var n,P;if(A[0]=0,t[e]==43||t[e]==45){for(P=t[e],n=1,++A[0];t[e+A[0]]==P;)++n,++A[0];return n==1&&Kn(t[e+1]&c1)&&(n=t[e+1]-48,++A[0]),P==43?n:-n;}return 0;}function X9(t,e,A){var n,P,r,i,f;for(FJ(t),P=(t.i==null&&(t.i=c(CV,h0,27,0,0,1)),t.i),r=0,i=P.length;r<i;++r)n=P[r],X9(n);f=t.e,f&&X9(f);}function Mh(t,e){var A,n,P;for(P=c(Se,PA,6,t.d.length,15,1),n=c(Se,PA,6,t.d.length,15,1),A=0;A<t.d.length;A++)P[A]=iO(lL(e,t.a[A]),t.e[A]),n[A]=fl[t.e[A]];return new x7(P,n);}function Vh(){Vh=d1;var t,e,A,n;for(uc=c(Ut,ht,6,25,15,1),Qc=c(Ut,ht,6,33,15,1),n=152587890625e-16,e=32;e>=0;e--)Qc[e]=n,n*=.5;for(A=1,t=24;t>=0;t--)uc[t]=A,A*=.5;}function Ek(t,e){var A,n,P,r,i;for(P=-1,r=Ee,n=0;n<t.e.length;n++)i=U1*t.e[n]/180,A=w.Math.abs(e-i),A>U1&&(A=F0-A),A/=10+w.Math.sqrt(t.b[n]),r>A&&(r=A,P=n);return P;}function mY(t,e,A){var n,P,r;if(n=A[e],n!=-1&&d0(t.a,n)!=0&&lK(t,e,n,A)){if(r=d0(t.b,e),P=d0(t.a,n),r==3){if(P==1||P==2)return 5;}else if(P==3||IY(t,e,A)==(r==P))return 5;}return 0;}function kY(t){var e,A,n;return G(t,0)>=0?(A=Cn(t,xf),n=z9(t,xf)):(e=DA(t,1),A=Cn(e,5e8),n=z9(e,5e8),n=x1(j1(n,1),V(t,1))),Y(j1(n,32),V(A,h1));}function bY(t,e){P9();var A,n;for(n=(be(),I2),A=t;e>1;e>>=1)(e&1)!=0&&(n=kP(n,A)),A.d==1?A=kP(A,A):A=new Xm(CR(A.a,A.d,c(F,k,6,A.d<<1,15,1)));return n=kP(n,A),n;}function ls(t,e){var A,n;for(L1(e),n=t.b.a.length,mt(t.b,e);n>0;){if(A=n,n=(n-1)/2|0,t.a.Rb(N(t.b,n),e)<=0)return q9(t.b,A,e),true;q9(t.b,A,N(t.b,n));}return q9(t.b,n,e),true;}function t2(t,e){var A,n,P,r;for(l1(t.j,e)==1&&(w0(t.j,e,2),t.k+=2),P=0;P<2;P++)for(A=z(t.j,P,e),t.d[A]=false,r=0;r<O(t.j,A);r++)n=xt(t.j,A,r),t.e[n]&&(t.e[n]=false,--t.c);}function RY(t){var e,A,n,P,r;for(A=0;A<t.j.g;A++)if(dt(t.j,A)==2){for(P=0;P<2;P++)if(e=z(t.j,P,A),K(t.j,e)<=8){for(r=0;r<O(t.j,e);r++)if(n=xt(t.j,e,r),t.e[n]){Af(t,e);break;}}}}function jY(t,e){var A,n,P,r,i,f;if(!(e.length<=0||e[0]<64))for(_U(t,e,0),f=nt(t,4),P=nt(t,1)==1,r=nt(t,1)==1,A=0;A<t.g.f;A++)i=nt(t,f),n=P,P&&r&&(n=nt(t,1)==1),We(t.g,A,i,n);}function pY(t,e,A,n,P){var r,i;for(r=0,i=0;i<P;i++)r=x1(r,l0(V(e[i],h1),V(n[i],h1))),t[i]=Jt(r),r=q0(r,32);for(;i<A;i++)r=x1(r,V(e[i],h1)),t[i]=Jt(r),r=q0(r,32);}function CY(t,e,A,n,P){var r,i;if(r=x3(t.a,t.b,P),i=tL(x3(e.a,e.b,P)),n.containsKey(r)){if(A)throw At(new rU("Duplicate key "+r));n.put(r,null.vd(n.get(r)));}else n.put(r,i);}function HY(t){var e,A,n;for(e=0;e<t.R.f;e++)!Br(t.R,e)&&t.db[e]==3&&XU(t.R,e,true);for(A=0;A<t.R.g;A++)t.o[A]==3&&(n=dt(t.R,A),n==1?XU(t.R,z(t.R,0,A),true):n==2&&w0(t.R,A,386));}function Eh(t,e,A,n){var P,r,i;if(n==0)sA(e,0,t,A,t.length-A);else for(i=32-n,t[t.length-1]=0,r=t.length-1;r>A;r--)t[r]|=e[r-A-1]>>>i,t[r-1]=e[r-A-1]<<n;for(P=0;P<A;P++)t[P]=0;}function g0(t,e){var A,n,P;if(e<0||e>999){J(t.a,"  ?");return;}for(A=false,n=0;n<3;n++)P=e/100|0,P==0?n==2||A?Ge(t.a,48):Ge(t.a,32):(Ge(t.a,48+P&c1),A=true),e=10*(e%100);}function Sk(t,e,A,n){hh(),this.c=MD(t,UV,this),this.d=e,this.e=A,this.a=n,this.k=K(this.e,n),this.g=le(this.e,n),this.j=kr(this.e,n),this.i=mA(this.e,n),this.n=Zn(this.e,n),$j(this);}function Sh(t,e,A,n,P){var r,i,f,D;for(r=-1,i=-1,D=0;D<Ht(t.e,e);D++)if(f=xt(t.e,e,D),f==A||f==n)if(r==-1)r=D;else {i=D;break;}t.a[e][i][r]==0&&(t.a[e][i][r]=P,t.d[e]+=P,++t.c[e]);}function MY(t,e){var A,n,P;return P=c(F,k,6,2,15,1),u1(t,e[1],e[2])!=-1?(P[0]=e[2],P[1]=e[1]):(A=c(F,k,6,16,15,1),n=s2(t,A,e[1],e[2],15,null,null),P[0]=A[1],P[1]=A[n-1]),P;}function VY(t,e){try{return e?(t=Yn(t),MR(t,!0),ja(t),ke(new FA(t))):ke(new FA(t));}catch(A){if(A=a1(A),Xt(A,27))return z1(),null;throw At(A);}}function qk(t,e,A){_5(),sB.call(this,t,e),this.j=1,this.k=10,this.n=400,this.f=400,this.i=true,this.d="black",this.b=new f1(),this.a=new f1(),this.c=new V0(),this.e=new $3(12),this.g=A,++S2;}function EY(t){var e,A,n,P,r;for(A=0,Di(t),ut(t,7),e=0;e<t.f;e++)try{r=Ay(t,e,6241),P=(n=$9(Jf,LQ(r)),n<0?-1:n),P!=-1&&(A+=z4[P]);}catch(i){if(i=a1(i),!Xt(i,19))throw At(i);}return A;}function k0(t){var e,A;return t>=u0?(e=55296+(t-u0>>10&1023)&c1,A=56320+(t-u0&1023)&c1,String.fromCharCode(e)+(""+String.fromCharCode(A))):String.fromCharCode(t&c1);}function e2(t,e){var A;return w.Math.abs(t)>w.Math.abs(e)?(A=e/t,A=w.Math.abs(t)*w.Math.sqrt(1+A*A)):e!=0?(A=t/e,A=w.Math.abs(e)*w.Math.sqrt(1+A*A)):A=0,A;}function tA(t,e){var A,n,P,r;if(t.K){if(gt(V(t.B[e],1),0))return  false;if(t.v!=null&&t.v[e]!=null){for(n=t.v[e],P=0,r=n.length;P<r;++P)if(A=n[P],!$r(A))return  false;}}return $r(t.C[e]);}function SY(t,e){var A,n,P,r;if(t.K){if(gt(V(t.B[e],1),0))return  false;if(t.v!=null&&t.v[e]!=null){for(n=t.v[e],P=0,r=n.length;P<r;++P)if(A=n[P],!ti(A))return  false;}}return ti(t.C[e]);}function qY(){ry();var t,e,A,n,P,r,i,f,D;for(rl=new yP(),i=m4,f=0,D=i.length;f<D;++f)for(r=i[f],P=o8(r[0],";"),e=P,A=0,n=e.length;A<n;++A)t=e[A],Ye(rl,ai(t.toLowerCase(),"-"),r[1]);}function Ik(t){Bs();var e,A,n,P,r;for(ut(t,7),P=c(Pt,ft,6,t.g,16,1),n=0,A=0;A<t.g;A++)i$(t,A)&&(P[A]=true,++n);for(r=c(F,k,6,n,15,1),n=0,e=0;e<t.g;e++)P[e]&&(r[n++]=e);return r;}function IY(t,e,A){var n,P,r,i,f,D,Q;if(D=false,$1(t.b,e)==0)for(f=1;f<O(t.b,e);f++)for(Q=0;Q<f;Q++)n=W(t.b,e,f),P=W(t.b,e,Q),r=A[n],i=A[P],r!=-1&&i!=-1&&r>i^n>P&&(D=!D);return D;}function qh(t,e,A){var n,P;for(P=false,n=0;n<t.V.f;n++)R1(t.V,n)!=0&&(A&&!dn(t.V,n)||e&&dn(t.V,n))&&(P||(G1(t),P=true),We(t.V,n,0,false));P&&(e||cQ(t),gL(t,w.Math.max(t.eb,1)));}function xk(){xk=d1,hl=B(d(F,1),k,6,15,[0,2,1,3]),WV=B(d(it,1),Dt,2,6,["plain","italic","bold","italics & bold"]),ZV=B(d(it,1),Dt,2,6,["8","9","10","12","14","18","24","32"]);}function Ts(t,e){var A,n;if(!e)return null;for(n=c(F,k,6,(Lr.length+31)/32|0,15,1),e=lk(e),Dn(t.g,e),A=0;A<Lr.length;A++)Ln(t.g,E2[A]),sn(t.g,1,4)>0&&(n[A/32|0]|=1<<31-A%32);return n;}function Nk(t,e){var A,n,P,r;for(A=c(F,k,6,t.j[e]-EL(t,e),15,1),r=0,P=0;P<t.j[e];P++)n=t.i[e][P],gt(V(t.B[n],re),0)||(A[r++]=t.C[n]);return A.sort(me(D0.prototype.gd,D0,[])),A;}function hs(t,e){var A;if(t==null)return e==null?0:1;if(e==null)return  -1;for(A=0;A<t.length;A++){if(e.length==A)return 1;if(t[A]!=e[A])return t[A]<e[A]?-1:1;}return e.length>t.length?-1:0;}function cs(t,e){var A;if(t==null)return e==null?0:1;if(e==null)return  -1;for(A=0;A<t.length;A++){if(e.length==A)return 1;if(t[A]!==e[A])return t[A]<e[A]?-1:1;}return e.length>t.length?-1:0;}function xY(t,e,A,n){var P,r;for(r=e,P=r.c==null||t.a.Rb(A.c,r.c)>0?1:0;r.a[P]!=A;)r=r.a[P],P=t.a.Rb(A.c,r.c)>0?1:0;r.a[P]=n,n.b=A.b,n.a[0]=A.a[0],n.a[1]=A.a[1],A.a[0]=null,A.a[1]=null;}function NY(t){var e,A;try{return A=new vd(t),Ib(A,4e3,so),is(A,A.i);}catch(n){if(n=a1(n),Xt(n,185))return NaN;if(Xt(n,19))return e=n,X9(e,(z1(),ci)),NaN;throw At(n);}}function Ok(t,e){var A,n,P,r,i;for(r=e.length,i=c(F,k,6,r,15,1),n=0;n<r;n++)for(A=n==r-1?e[0]:e[n+1],P=0;P<O(t.i,e[n]);P++)if(W(t.i,e[n],P)==A){i[n]=xt(t.i,e[n],P);break;}return i;}function ws(t,e,A){var n,P;if((t.u[e]&hn)==0||(t.u[A]&hn)==0)return  false;for(P=(ut(t,7),t.p),n=0;n<P.j.a.length;n++)if(N(P.k,n).length==5&&yA(P,n,e)&&yA(P,n,A))return  true;return  false;}function OY(t){var e,A;return t.f||(A=new tu(),t.a&&(A.a=true),t.f=JB(A,(e=t.g.a,e)),t.f&&(t.f.P==null||t.f.P.length==0)&&$2(t.f,t.e!=-1&&t.c!=null?t.c[t.e]:t.f?t.f.P:null)),t.f;}function GY(t,e,A){var n,P,r,i,f,D,Q;if(D=false,$1(t.g,e)==0)for(f=1;f<O(t.g,e);f++)for(Q=0;Q<f;Q++)n=W(t.g,e,f),P=W(t.g,e,Q),r=R1(t.g,n),i=R1(t.g,P),A[r]>A[i]^n>P&&(D=!D);return D;}function JY(t,e){var A;for(A=0;e<t.length&&(t[e]!=93||A!=0);)t[e]==91?++A:t[e]==93&&--A,++e;if(e==t.length)throw At(new C1("SmilesParser: No matching closing bracket found."));return e+1;}function Gk(t,e,A){return t.L!=null&&t.L[e]!=null&&t.L[e][A]?null:t.I[e]==0&&t.B[A]==0?(O(t.u,A)!=0&&(t.H[t.G[e]]=true),O(t.D,e)!=0&&(t.A[t.w[A]]=true),new cD(e,A)):null;}function Jk(t){var e,A,n;for(n=new cL(", ","[","]"),A=t.Tb();A.ad();)e=A.bd(),Tv(n,O1(e)===O1(t)?"(this Collection)":e==null?nr:ZD(e));return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c;}function A2(t){var e,A,n;if(il==null){if(e=XD("/resources/csd/"+t),e)return il="csd/",new nn(new Bi((n=e,c0(),n)));il="cod/";}return new nn(new Bi((A=XD("/resources/"+il+t),c0(),A)));}function zY(t){var e,A;try{for(t=Yn(t),ds(t),e=t.r,A=0;A<e;A++)t.H[A]=1,t.T=0;return ke(new FA(t));}catch(n){if(n=a1(n),Xt(n,27))return z1(),null;throw At(n);}}function zk(t,e){var A,n,P,r;for(n=0,P=t.length;n<P;n++){r=t[n];try{r[1]?r[0].vd()&&(e=cx(e,r)):r[0].vd();}catch(i){if(i=a1(i),Xt(i,27))A=i,Kx(Xt(A,163)?A.Lc():A);else throw At(i);}}return e;}function Yk(t){var e,A,n,P,r,i,f,D;for(f=c(F,k,6,t.f,15,1),D=(ut(t,7),t.p),r=0;r<w.Math.min(32,D.j.a.length);r++)for(i=N(D.j,r),A=i,n=0,P=A.length;n<P;++n)e=A[n],f[e]|=1<<r;return f;}function Ih(t){var e,A,n,P;if(A=Jt(DA(t,32)),A==0)return n=Jt(t)>>>0,n.toString(16);e=c(l9,te,6,17,15,1),P=17;do e[--P]=Ix(Jt(t)&15),t=DA(t,4);while(G(t,0)!=0);return $n(e,P,17-P);}function N1(t,e){var A,n,P,r,i,f;for(t.$b(1),i=false,n=false,f=0,P=0;P<t.e[e];P++)(!t.K||!oe(t,t.i[e][P]))&&(r=t.n[e][P],f+=r,r>1&&(i=true),A=t.k[e][P],t.H[A]==8&&(n=true));return n&&!i&&++f,f;}function FQ(t,e){var A,n,P,r;for(l1(t.k,e)==1&&w0(t.k,e,2),P=0;P<2;P++)for(A=z(t.k,P,e),Y0(t.k,A)&&(Gn(t.k,A,false),--t.b),r=0;r<O(t.k,A);r++)n=xt(t.k,A,r),t.g[n]&&(t.g[n]=false,--t.c);}function xh(t,e,A){var n,P,r,i,f;for(P=0,i=new Zt(A);i.a<i.c.a.length;)r=$t(i),r.length!=0&&(f=GL(e,r).b,P<f&&(P=f));return n=t.c*Do*(A.a.length-1)+t.c,new QA(t.i[0].a,t.i[0].b-t.c/2,P,n);}function se(t){if(c4==null&&(c4=new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")),!c4.test(t))throw At(new YP(c2+t+'"'));return parseFloat(t);}function Nh(t){var e,A;for(A=k1(F,[nA,f0],[28,7],0,[2,32],2),e=0;e<t.R.f;e++)t.M[e]&&(t.bb[e]==1?A[0][t.ab[e]]=nf(A[0][t.ab[e]],e):t.bb[e]==2&&(A[1][t.ab[e]]=nf(A[0][t.ab[e]],e)));return A;}function gs(t){var e,A,n,P;for(P=new nn(new Bi((A=XD(t),c0(),A))),n=new nu();;)try{if(e=Y1(P),e!=null)js(n,e);else break;}catch(r){if(r=a1(r),Xt(r,75))break;throw At(r);}return n;}function Kk(t,e){var A,n,P;return e&=63,e<22?(A=t.l<<e,n=t.m<<e|t.l>>22-e,P=t.h<<e|t.m>>22-e):e<44?(A=0,n=t.l<<e-22,P=t.m<<e-22|t.l>>44-e):(A=0,n=0,P=t.l<<e-44),S0(A&x0,n&x0,P&aA);}function Xk(t,e){var A,n,P,r,i;if(at(t.a,"Helvetica")){for(r=0,n=0,P=e.length;n<P;n++)A=(Gt(n,e.length),e.charCodeAt(n)),r+=(A<128?i=wE[A]:i=wA,i*t.b/20);return r;}else return uY(t,e);}function Zk(t,e,A){var n,P,r,i;return P=t.c[A][0]*U1/180,r=t.c[A][1]*U1/180,i=t.e[A]*U1/180,e<i-U1?e+=F0:e>i+U1&&(e-=F0),n=(i-e)/(i-(e<i?P:r)),n<1?0:n<2?(n-=1,n*n):1;}function YY(t,e){var A,n,P,r,i;if(t.e!=null)for(A=j5(t)/t.p.c,P=t.e,r=0,i=P.length;r<i;++r)n=P[r],jS(n,t.f),n.r=A/n.R.c,X5(n,e);if(t.b!=null)for(P=t.b,r=0,i=P.length;r<i;++r)n=P[r],X5(n,e);}function Pe(t,e){var A,n,P,r;for(A=false,P=false,n=e;n<t.length;n++)if(r=(Gt(n,t.length),t.charCodeAt(n)),r==40?A=true:r==41?A=false:r==34&&(P=!P),!A&&!P&&(r==32||r==9))return n;return  -1;}function KY(t){lU();var e,A,n,P;for(l5(t,1),n=t.q,A=c(it,Dt,2,n,6,1),e=0;e<n;e++)P=Yn(t),VP(P,e,(J1(),Z0)[P.C[e]]+"*"),P.C[e]==1?X0(P,e,C4):br(P,e,P.A[e]+5),AO(P),A[e]=ke(new EA(P,8));return A;}function ds(t){var e,A;for(ut(t,15),t.L=false,e=0;e<t.q;e++)t.u[e]&=dy,(t.u[e]&3)!=0?t.u[e]|=Po:t.u[e]&=gy;for(A=0;A<t.r;A++)(t.F[A]&3)!=0&&dt(t,A)==2?t.H[A]=386:t.H[A]&=-385;t.T&=-249;}function mQ(t,e,A,n,P){var r;n|=P1,r=AF(A),n!=-1&&(ae(e,n),mT(e,r[0],r[1],gn,gn)),A==20?ZL(e,t.c,0,t.d*84,84,84,r[0],r[1],gn,gn):ZL(e,P?t.g:t.i,(r[0]-B8)*t.j,(r[1]-B8)*t.j,84,84,r[0],r[1],gn,gn);}function n2(t,e){var A,n,P,r;for(P=false,n=0;n<t.R.g;n++)zQ(t,n,1)&&(t.q[n]=t.L,e&&aZ(t,n),P=true);for(r=false,A=0;A<t.R.f;A++)ty(t,A,1)&&(t.ib[A]=t.L,e&&I_(t,A),r=true);return r&&(t.L=!t.L),P||r;}function Z9(t,e){return t.q>=t.M&&bQ(t,t.M*2),t.C[t.q]=0,X0(t,t.q,e),t.s[t.q]=0,t.u[t.q]=0,t.B[t.q]=0,t.w[t.q]=0,vU(t.J[t.q],0,0,0),t.v!=null&&(t.v[t.q]=null),t.t!=null&&(t.t[t.q]=null),t.T=0,t.q++;}function XY(t){var e,A,n,P,r;for(r=new LU(t.g,t.f),P=c(F,k,6,t.g.q,15,1),A=0;A<t.g.q;A++)P[A]=R1(t.g,A);for(n=c(F,k,6,t.f.q,15,1),e=0;e<t.f.q;e++)n[e]=R1(t.f,e);return -Ys(r,_h(r,P,n))*.25;}function ei(t){var e,A,n,P;for(P=new nn(new Bi((n=XD(t),c0(),n))),e=new f1();;)try{if(A=Y1(P),A!=null)e.a.push(A);else break;}catch(r){if(r=a1(r),Xt(r,75))break;throw At(r);}return e;}function ZY(t,e){var A,n,P;for(A=c(F,k,6,t.e.length,15,1),P=0;P<t.e.length;P++)n=j1(Lc[t.a[P]],t.b[P]),gt(V(e.c[t.d[P]],n),0)?A[P]=Jt(q0(V(e.b[t.d[P]],n),t.b[P])):A[P]=-1;return A;}function WY(t,e){i8();var A,n,P,r;for(n=c(Pt,ft,6,e.q,16,1),A=0;A<e.f;A++)if(!n[A]&&e.o[A]==2&&e.C[A]<=8){for(P=KZ(A,e),r=0;r<P.length;r++)n[P[r]]=true;P[0]!=P[P.length-1]&&mt(t,new C7(P));}}function Oh(t,e,A,n,P,r,i,f){var D,Q;return D=ZA(t,e,A),D==-1?(t.q>=t.M&&bQ(t,t.M*2),D=Z9(t,n),vU(t.J[D],e,A,0),t.A[D]=P,XA(t,D,r),Oe(t,D,i),VP(t,D,f),true):(Q=gf(t,D,n,P,r,i),Q=Q|VP(t,D,f),Q);}function Wk(t,e,A,n){var P,r,i,f;for(ut(e,1),r=0;r<A;r++)n[r]!=-1&&t.C[r]!=1&&t.e[r]!=Ht(e,n[r])&&(P=uf(t,r,false),P!=-1&&(f=uf(e,n[r],false),P!=f&&(i=kr(e,n[r]),(i==-1||i<P)&&XA(e,n[r],P))));}function _Y(t,e,A){var n,P,r;for(r=0;r<t.e.length;r++)P=w.Math.sqrt((t.a[r]-e)*(t.a[r]-e)+(t.b[r]-A)*(t.b[r]-A)),n=0-Un(e,A,t.a[r],t.b[r]),t.a[r]=e+P*w.Math.sin(n),t.b[r]=A+P*w.Math.cos(n);}function $Y(t,e,A){var n,P,r,i,f;return r=(P=t/e,P>0?w.Math.floor(P):w.Math.ceil(P)),i=t%e,f=$8(t*e,0),i!=0&&(n=$8(w.Math.abs(i)*2,w.Math.abs(e)),r+=SQ(vt(r)&1,f*(5+n),A)),new W3(r);}function Gh(t,e){var A,n,P;for(p9.call(this,t),A=0,P=0;P<t.length;P++)e.j[t[P]]!=1&&++A;if(A>2)for(this.a=c(F,k,6,A,15,1),A=0,n=0;n<t.length;n++)e.j[t[n]]!=1&&(this.a[A++]=t[n]);else this.a=t;}function Ai(t,e,A,n,P,r){var i,f,D,Q;for(D=0,f=0;f<t.R.g;f++)(Ae(t.R,t.C[f])&n)!=0&&++D;if(D!=0)for(an(t,e),Ot(t,D,A),i=0;i<t.R.g;i++)Q=Ae(t.R,t.C[i])&n,Q!=0&&(Ot(t,i,A),P!=1&&Ot(t,Q>>r,P));}function Jh(t,e){var A,n,P;if(t.v==null||t.v[e]==null)return gt(V(t.B[e],1),0)?"":Z0[t.C[e]];for(P="",n=0;n<t.v[e].length;n++)n>0&&(P=(L1(P),P+(L1(","),","))),A=t.v[e][n],P=ju(P,Z0[A]);return P;}function of(t){var e,A,n,P;for(ut(t,7),n=0;n<t.g;n++)(t.H[n]==257||t.H[n]==129)&&(t.H[n]=1);for(e=0;e<t.f;e++)ey(t,e);for(P=0;P<t.g;P++)Nj(t,P);for(A=0;A<t.g;A++)t.H[A]==2&&(t.F[A]&3)==3&&(t.H[A]=386);}function aY(t,e,A){var n,P,r;if(e.c!=null)for(P=0;P<e.c.length;P++)for(r=0;r<O(t.k,e.a);r++)e.c[P]==W(t.k,e.a,r)&&(n=xt(t.k,e.a,r),e.d[P]||Gj(t,n,e.a,A),t.e[n]>9&&(A.a+="%"),h3(A,t.e[n]));}function tK(t,e){var A,n,P,r,i;if(t.i.K){if(gt(V(U0(t.i,e),1),0))return  false;if(A=HA(t.i,e),A!=null){for(P=A,r=0,i=P.length;r<i;++r)if(n=P[r],!$r(n))return  false;return  true;}}return $r(K(t.i,e));}function _k(t,e,A,n,P){var r,i,f;for(r=true,i=0;i<n;i++)r=r&A[i]==0;if(P==0)sA(A,n,t,0,e),i=e;else {for(f=32-P,r=r&A[i]<<f==0,i=0;i<e-1;i++)t[i]=A[i+n]>>>P|A[i+n+1]<<f;t[i]=A[i+n]>>>P,++i;}return r;}function eK(t){var e,A;(t.G&32)==0&&(A=BR(t.L),A!=null&&(t.w.a==0&&t.w.b==0&&(e=t.R.c*M8(t.L),t.v=QR(t),pm(t,e),T5(t,null,e,0)),t.Cb(vt(t.A)),t.L.O!=1&&Z1(t,448),t.tb(A,t.w.a,t.w.b+bf*t.A)));}function $k(t){var e,A,n;if(gu(this),!(t==null||t.length==0))for(e=0,A=t.indexOf(k0(10));A!=-1;)n=VX((Ct(e,A,t.length),t.substr(e,A-e))),n&&this.a.push(n),e=A+1,A=t.indexOf(k0(10),e);}function AK(t,e,A){var n,P;switch(P=A&127,n=vk(t,e),P){case 1:case 8:return n>=1;case 2:return n>=2;case 4:return n>=3;case 32:return n>=4;case 64:return n>=5;case 16:return  true;default:return  false;}}function Uf(t,e,A,n){var P,r,i;for(i=0;i<t.e.length;i++)r=w.Math.sqrt((t.a[i]-e)*(t.a[i]-e)+(t.b[i]-A)*(t.b[i]-A)),P=Un(e,A,t.a[i],t.b[i])+n,t.a[i]=e+r*w.Math.sin(P),t.b[i]=A+r*w.Math.cos(P);}function zh(t,e){var A,n,P;return n=e.g-B8,P=e.i-B8,n<0||n>=2*gn||P<0||P>=17*gn?-1:(A=17*vt(n/gn)+vt(P/gn),A>=0&&A<34&&(A!=t.b||A==20||A==33)&&(A!=19||(t.a.U&4)!=0)&&(A!=21||(t.a.U&8)!=0)?A:-1);}function nK(t){var e;t.c==null&&(e=O1(t.b)===O1(W4)?null:t.b,t.d=e==null?nr:Yv(e)?e==null?null:e.name:H8(e)?"String":Du($L(e)),t.a=t.a+": "+(Yv(e)?e==null?null:e.message:e+""),t.c="("+t.d+") "+t.a);}function PK(t,e){var A,n,P,r;return e&=63,A=t.h&aA,e<22?(r=A>>>e,P=t.m>>e|A<<22-e,n=t.l>>e|t.m<<22-e):e<44?(r=0,P=A>>>e-22,n=t.m>>e-22|t.h<<44-e):(r=0,P=0,n=A>>>e-44),S0(n&x0,P&x0,r&aA);}function rK(t,e,A,n){var P,r;P=new s1(),r=new s1(),P.a=e.a,P.c=e.c,P.b=(e.a+e.b)/2,P.d=(e.c+e.d)/2,r.a=P.b,r.c=P.d,r.b=e.b,r.d=e.d,cA(t,P)&&(Z1(t,t.p[A]),t.qb(P)),cA(t,r)&&(Z1(t,t.p[n]),t.qb(r)),Z1(t,t.Q);}function ak(t,e,A){var n,P;return n=ZA(t,e,A),n!=-1?((t.u[n]&512)!=0?PQ(t):gQ(t,n),t.T=0,true):(P=wf(t,e,A),P!=-1?((t.u[t.D[0][P]]&t.u[t.D[1][P]]&512)!=0?PQ(t):Kh(t,P),t.T=0,true):false);}function tb(t,e,A){var n,P,r;for(t.U=e,t.V=A,t.Q=c(Ut,ht,6,t.q,15,1),t.R=c(Ut,ht,6,t.q,15,1),n=0;n<t.q;n++)P=e-t.J[n].a,r=A-t.J[n].b,t.R[n]=w.Math.sqrt(P*P+r*r),t.Q[n]=bA(e,A,t.J[n].a,t.J[n].b);}function eb(t,e){var A,n,P,r;for(r=c(F,k,6,t.j[e]-EL(t,e),15,1),P=0,n=0;n<t.j[e];n++)A=t.i[e][n],gt(V(t.B[A],re),0)||(r[P++]=w.Math.abs(t.w[A]));return r.sort(me(D0.prototype.gd,D0,[])),r;}function Ab(t,e){var A,n,P,r,i;if(A=-1,t.o[e]==1){for(r=0;r<t.j[e];r++)if(t.n[e][r]==2){if(n=t.i[e][r],t.j[n]==2&&t.o[n]==2){for(i=0;i<2;i++)if(P=t.i[n][i],P!=e&&t.o[P]==1){A=n;break;}}break;}}return A;}function iK(t,e){var A,n,P,r,i;for(i=new f1(),r=0;r<e.q;r++)e.e[r]==3&&(A=e.i[r][0],n=e.i[r][1],P=e.i[r][2],mt(i,new KL(t,e,r,A,n,P)),mt(i,new KL(t,e,r,A,P,n)),mt(i,new KL(t,e,r,n,P,A)));return i;}function Y1(t){var e,A,n;if(A=RL(t),A==-1)return null;for(n=new V0(),e=false;!e;)if(A==10?e=true:A==13&&(e=true,A=RL(t),A!=10&&(t.a=A)),!e){if(A==-1)break;Ge(n,A&c1),A=RL(t);}return n.a;}function fK(t,e,A){var n,P,r,i,f,D;if(D=N(t.b,e),t.d.length<=t.c.length)for(f=0;f<t.a;f++)A[t.d[f]]=t.c[D[f]];else {for(P=t.d,r=0,i=P.length;r<i;++r)n=P[r],A[n]=-1;for(f=0;f<t.a;f++)A[t.d[D[f]]]=t.c[f];}}function DK(t){return t.K++==64?false:t.i?ph(t.i.b)?false:(wU(t.I,0),wU(t.B,0),f3(t.H),f3(t.A),Pb(t),xS(t.i),t.q=wR(t),t.g=7,t.c=0,t.d=0,t.e=0,t.f=0,true):(t.i=new Og(),true);}function nb(t,e,A){var n,P,r,i;if(i=lT(e),P=(n=t.a.get(i),n??c(fP,e0,1,0,5,1)),P.length==0)t.a.set(i,P);else if(r=OF(e,P),r)return r.fd(A);return P[P.length]=new hU(e,A),++t.c,++t.b.b,null;}function C(t,e,A){var n=wo,P=n[t],r=P instanceof Array?P[0]:null;P&&!r?U=P:(U=eG(e),U.td=A,!e&&(U.ud=AD),n[t]=U);for(var i=3;i<arguments.length;++i)arguments[i].prototype=U;r&&(U.sd=r);}function Yh(t,e){var A,n;if((t.G&4224)!=0||(n=Ch(t,e),n==-1&&(A=Ab(t.L,e),A!=-1&&(e=A,n=Ch(t,e))),n==-1))return t.p[e];switch(n&255){case 1:return 384;case 2:return 64;default:return 448;}}function Kh(t,e){var A,n,P;for(n=0;n<2;n++){for(A=0,P=0;P<t.r;P++)P!=e&&(t.D[0][P]==t.D[n][e]||t.D[1][P]==t.D[n][e])&&++A;A==0&&($u(t,t.w[t.D[n][e]]),t.C[t.D[n][e]]=-1);}t.H[e]=512,vf(t),t.T=0;}function uK(t,e){var A,n;if(!e)return null;for(n=c(NA,te,6,(Lr.length+63)/64|0,14,1),e=lk(e),Dn(t.g,e),A=0;A<Lr.length;A++)Ln(t.g,E2[A]),sn(t.g,1,4)>0&&(n[A/64|0]=Y(n[A/64|0],j1(1,63-A%64)));return n;}function QK(t,e,A,n){var P,r,i,f;for(f=c(F,k,6,t.o[e].f,15,1),V9(f,f.length,-1),r=gr(t.c,e),P=0;P<r.f;P++)A[P]!=-1&&(f[A[P]]=w.Math.abs(r.w[P]));for(i=0;i<f.length;i++)f[i]==-1&&(f[i]=n++);return f;}function Pb(t){var e,A,n,P,r,i,f,D,Q;for(Q=t.F.g,t.J=kn(Q,Q.length),e=t.v.g,t.C=kn(e,e.length),P=t.J,i=0,D=P.length;i<D;++i)A=P[i],t.o<A&&(t.o=A);for(n=t.C,r=0,f=n.length;r<f;++r)A=n[r],t.n<A&&(t.n=A);}function oK(t,e){var A,n,P,r,i,f,D,Q,o;if(t==null)return e;for(o=c(F,k,6,t.length+e.length,15,1),Q=0,P=t,i=0,D=P.length;i<D;++i)A=P[i],o[Q++]=A;for(n=e,r=0,f=n.length;r<f;++r)A=n[r],o[Q++]=A;return o;}function UK(t,e){switch(e){case 0:Lb(t);return;case 1:G1(t),t.eb=w.Math.max(t.eb,6),e1(t.k),I1(t,new S1(t,1,true));return;case 17:Dv(t),t.eb=w.Math.max(t.eb,2),e1(t.k),I1(t,new S1(t,1,true));return;}}function rb(t,e,A){var n,P,r,i,f,D,Q,o;for(Q=-1,P=0,f=0;f<2;f++)for(n=t.i[e][f],D=0;D<t.e[n];D++)r=t.i[n][D],r!=e&&(i=t.k[n][D],o=HQ(t,i,r),P<o&&(true)&&(P=o,Q=i));return Q;}function ib(t){var e,A,n,P;for(A=0,e=0,n=0;n<t.g.a.length+t.f.a.length;n++)P=n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length),P.r!=0&&(A+=P.r,e+=cP(P,P.q,P.r,(J1(),wn))*P.r);return A==0?(J1(),J1(),wn):e/A;}function LK(t,e,A,n){var P,r,i,f,D;for(i=c(Pt,ft,6,t.length+1,16,1),D=c(F,k,6,n,15,1),f=0;f<n;f++)P=A==null?f:A[f],P!=-1&&(D[f]=t[P],i[D[f]]=true);for(r=0;r<e.length;r++)i[e[r]]||(e[r]=0);return D;}function sK(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(n=0,A*=A,f=0;f<e.q;f++){for(Q=e.J[f].a,L=e.J[f].b,i=false,D=0;D<t.V.q;D++)if(o=kt(t.V,D),s=pt(t.V,D),P=o-Q,r=s-L,P*P+r*r<A){i=true;break;}i&&++n;}return n==e.q;}function kQ(){kQ=d1,new dP(255,255,255),new dP(128,128,128),new dP(0,0,0),new dP(0,255,0),new dP(255,255,0),new dP(255,200,0),new dP(255,0,0),new dP(0,255,255),new dP(0,0,255),new dP(255,0,255);}function yK(t,e,A){var n;return ak(t.V,e,A)?(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)),true):(n=gJ(t,e,A),n?(X8(t.I,n),t.v=null,t.eb=w.Math.max(t.eb,1),e1(t.k),true):false);}function lK(t,e,A,n){var P,r,i,f;if(O(t.b,e)!=O(t.a,A))return  false;for(r=0;r<O(t.b,e);r++){for(f=W(t.b,e,r),P=false,i=0;i<O(t.a,A);i++)if(n[f]==W(t.a,A,i)){P=true;break;}if(!P)return  false;}return  true;}function fb(t,e){var A,n,P,r,i,f,D,Q,o;for(o=0,P=t,i=0,D=P.length;i<D;++i)A=P[i],e[A]==0&&++o;if(o==0)return null;for(Q=c(F,k,6,o,15,1),o=0,n=t,r=0,f=n.length;r<f;++r)A=n[r],e[A]==0&&(Q[o++]=A);return Q;}function TK(t,e){var A,n,P,r;for(t.j=new JA(),n=0;n<e.g.a.length;n++)r=N(e.g,n),ut(r,1),s5(t.j,r,r.f,r.g,!r.K);for(t.d=new JA(),A=0;A<e.f.a.length;A++)P=N(e.f,A),ut(P,1),s5(t.d,P,P.f,P.g,!P.K);Di(t.j),Di(t.d);}function hK(t,e){var A,n;return _j(t,e,false)?t.s!=null?(t.B=new rT(t,t.o),Ad(t.B,400),t.b=new Oi(new tD()),Cj(t)):(n=new NQ(e),ao(n,t.v),A=TX(n,t.o),Ws(t,A),A.p="SO#1",A):null;}function Db(t,e){var A,n,P,r,i,f;for(A=t.b.a.length,P=N(t.b,e);e*2+1<A&&(n=(r=2*e+1,i=r+1,f=r,i<A&&t.a.Rb(N(t.b,i),N(t.b,r))<0&&(f=i),f),!(t.a.Rb(P,N(t.b,n))<0));)q9(t.b,e,N(t.b,n)),e=n;q9(t.b,e,P);}function B1(t){var e,A,n;for(A=t.length,n=0;n<A&&(Gt(n,t.length),t.charCodeAt(n)<=32);)++n;for(e=A;e>n&&(Gt(e-1,t.length),t.charCodeAt(e-1)<=32);)--e;return n>0||e<A?(Ct(n,e,t.length),t.substr(n,e-n)):t;}function Xh(){Xh=d1,zV=B(d(it,1),Dt,2,6,["mutagenic","tumorigenic","irritant","reproductive effective"]),Ro=B(d(it,1),Dt,2,6,["Mutagenicity","Tumorigenicity","Irritating effects","Reproductive effects"]);}function ub(t,e,A,n,P){var r,i,f,D,Q;for(r=A[n],Q=false,f=0;f<e.f;f++)if(f!=n&&A[f]==r){Q=true;break;}if(!Q)return P;for(i=0;i<e.f;i++)(i==n||A[i]>r)&&++A[i];++P;do D=P,C_(t,e,A),P=CJ(t,A);while(D!=P);return P;}function Zh(t,e,A,n,P,r){var i,f,D,Q;if(i=n-A,i<7){dJ(e,A,n,r);return;}if(D=A+P,f=n+P,Q=D+(f-D>>1),Zh(e,t,D,Q,-P,r),Zh(e,t,Q,f,-P,r),r.Rb(t[Q-1],t[Q])<=0){for(;A<n;)e[A++]=t[D++];return;}UJ(t,D,Q,f,e,A,n,r);}function Qb(t,e){if(e instanceof Object)try{e.__java$exception=t;var A=t;Object.defineProperties(e,{cause:{get:function(){var n=A.hc();return n&&n.fc();}},suppressed:{get:function(){return A.gc();}}});}catch{}}function ob(t,e){var A,n,P;return n=t.a*t.a+t.b*t.b+t.c*t.c,P=e.a*e.a+e.b*e.b+e.c*e.c,n==0||P==0||(A=(t.a*e.a+t.b*e.b+t.c*e.c)/w.Math.sqrt(n*P),A>=1)?0:A<=-1?U1:w.Math.acos(A);}function cK(t,e,A){var n,P,r;P=B1((Ct(31,34,A.length),A.substr(31,3))),at(P,"A")||at(P,"*")?T1(t.j,e,1,true):at(P,"Q")?(r=c(F,k,6,1,15,1),r[0]=6,yf(t.j,e,r,true)):(n=SA(P,67),X0(t.j,e,n));}function Wh(t,e){var A,n,P,r;if(r=t.c.a.length,r==0)return  -1;for(P=1;2*P<=r;)P<<=1;for(n=P,--P;n!=0;){if(n>>=1,P>=r){P-=n;continue;}if(A=Yr(e,N(t.c,P)),A==0)return P;if(n==0)break;A<0?P-=n:P+=n;}return  -1;}function _h(t,e,A){var n,P,r,i;for(r=c(F,k,6,t.b.f+1,15,1),V9(r,r.length,-1),P=0;P<A.length;P++)A[P]!=0&&(r[A[P]]=P);for(i=c(F,k,6,t.b.f,15,1),V9(i,i.length,-1),n=0;n<e.length;n++)i[n]=r[e[n]];return i;}function Ub(t){var e,A;return t.d>0||(e=1,A=1,t.a<54?(t.a>=1&&(A=t.f),e+=w.Math.log10(w.Math.abs(A))):(e+=(t.a-1)*co,q5((!t.c&&(t.c=mP(M1(t.f))),t.c),Pi(e)).e!=0&&++e),t.d=vt(e)),t.d;}function wK(t){var e;for(e=0;e<t.q;e++)switch(t.C[e]){case 1:case 5:case 6:case 7:case 8:case 9:case 14:case 15:case 16:case 17:case 33:case 34:case 35:case 52:case 53:continue;default:return  false;}return  true;}function gK(t){Ff();var e,A,n,P,r,i;if(t==null)return null;for(e=c(E,q,6,t.length*8,15,1),n=0;n<t.length;n++)for(i=t[n],P=7;P>=0;P--)A=i&15,A>9&&(A+=7),e[n*8+P]=48+A<<24>>24,i>>=4;return rn((r=e,c0(),r));}function L0(t,e,A,n,P){var r,i,f,D,Q,o;for(r=Ht(t.e,e),D=O(t.e,e),Q=1;Q<r;Q++)for(i=Q<D?t.f[xt(t.e,e,Q)]:0,o=0;o<Q;o++)t.a[e][Q][o]==0&&(f=o<D?t.f[xt(t.e,e,o)]:0,(i==A&&f==n||i==n&&f==A)&&(t.a[e][Q][o]=P));}function dK(t){var e;for(e=0;0<=(e=t.indexOf("\\",e));)Gt(e+1,t.length),t.charCodeAt(e+1)==36?t=(Ct(0,e,t.length),t.substr(0,e)+"$"+HD(t,++e)):t=(Ct(0,e,t.length),t.substr(0,e)+(""+HD(t,++e)));return t;}function BK(t,e,A,n){var P,r,i,f,D;for(D=new f1(),r=0;r<e.q;r++)for(i=r+1;i<e.q;i++)P=new xi(r,i),f=Er(A.a,P)!=null?Er(A.a,P):(Y9(),q2),(f==(Y9(),yi)||f==q2)&&mn(new LT(e,r,i))<n&&mt(D,new uj(t,e,r,i));return D;}function $h(t,e,A){var n;n=t.D[0][e],t.D[0][e]=t.D[0][A],t.D[0][A]=n,n=t.D[1][e],t.D[1][e]=t.D[1][A],t.D[1][A]=n,n=t.H[e],t.H[e]=t.H[A],t.H[A]=n,n=t.F[e],t.F[e]=t.F[A],t.F[A]=n,n=t.G[e],t.G[e]=t.G[A],t.G[A]=n,t.T=0;}function vK(t,e){var A,n,P;if(e.j==0){try{A=Q1((P=t.b.Ec(),P.getSelectedItem()),P1,Et);}catch(r){if(r=a1(r),Xt(r,40)){RD(t.c,"Illegal text size.");return;}else throw At(r);}n=hl[B0(t.a)],bg(t.e,Ni(t.d),A,n);}Rr(t.c);}function FK(t){var e,A,n,P;for(t.Ab(2*t.S),P=new s1(),n=0;n<t.L.r;n++)e=z(t.L,0,n),A=z(t.L,1,n),H3(t.L,n)&&(P.a=X1(t.R,kt(t.L,e)),P.c=K1(t.R,pt(t.L,e)),P.b=X1(t.R,kt(t.L,A)),P.d=K1(t.R,pt(t.L,A)),Z1(t,-2),t.qb(P));}function Bs(){Bs=d1,fl=B(d(Ut,1),ht,6,15,[F0,U1,R2,AA]),EV=B(d(F,2),f0,7,0,[B(d(F,1),k,6,15,[0,0,0,2]),B(d(F,1),k,6,15,[0,0,1,2]),B(d(F,1),k,6,15,[0,1,1,3]),B(d(F,1),k,6,15,[2,2,3,2])]);}function mK(t){var e,A,n,P;for(n=-0.5299999713897705,Di(t),ut(t,7),e=0;e<t.f;e++){P=-1;try{P=Ay(t,e,2144);}catch(r){if(r=a1(r),!Xt(r,19))throw At(r);}for(A=0;A<zf.length;A++)if(n0(Ql[A],P)){n+=zf[A];break;}}return n;}function Lb(t){var e;t.I&&(t.I.a.length=0,t.eb=w.Math.max(t.eb,1),e1(t.k)),G1(t),e=t.V.K,Fi(t.V),pe(t.V,e),t.cb.q!=0?(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true))):(t.eb=w.Math.max(t.eb,1),e1(t.k));}function sb(t,e){var A,n,P,r,i,f;for(r=c(F,k,6,t.q,15,1),n=0;n<t.q;n++)r[n]=n;P=t.q;do--P;while(P>=0&&e[P]);for(A=0;A<P;A++)if(e[r[A]]){f=r[A],r[A]=r[P],r[P]=f,i=e[A],e[A]=e[P],e[P]=i;do--P;while(e[P]);}return r;}function kK(t){Ff();var e,A,n,P;if(t.length==0||(t.length&7)!=0)return null;for(n=c(F,k,6,t.length/8|0,15,1),A=0;A<t.length;A++)P=A/8|0,e=(Gt(A,t.length),t.charCodeAt(A)-48),e>16&&(e-=7),n[P]<<=4,n[P]+=e;return n;}function W9(t,e,A){var n,P,r;if(t.length!=e.length)return  -1;for(r=0,n=A.lc(),P=0;P<t.length-1;P++)if(r=hA(t[P],e[P],r,n+1,true,A),n=hA(t[P],e[P],r,n+1,false,A),r==-1||n==-1)return  -1;return hA(t[P],e[P],r,n+1,true,A);}function bK(t,e,A){var n,P,r,i,f,D,Q;P=vt(K6*M8(t.V)),r=vt(kt(t.V,z(t.V,0,A))),f=vt(pt(t.V,z(t.V,0,A))),i=vt(kt(t.V,z(t.V,1,A))),D=vt(pt(t.V,z(t.V,1,A))),n=(Q=e.Jc(),Q.getLineWidth()),KU(e,P),Ir(e,r,f,i,D),KU(e,n);}function yb(t){switch(t){case 6:return 1;case 53:return 2;case 33:return 3;case 34:return 4;case 35:return 5;case 15:return 6;case 16:return 7;case 17:return 8;case 7:return 9;case 8:return 10;case 9:return 11;}return 0;}function RK(t){var e;for(t.e=new r3(),t.d=new Kg(),XI(t,new fs(t,t.i)),e=Yn(t.i);!B7(t.d);)if(wz(RG(t.d),e),N$(t,e),t.e.a.c>=dtt){z1(),""+ke(new FA(t.i));break;}}function vs(t){var e,A;return t>-140737488355328&&t<0x800000000000?t==0?0:(e=t<0,e&&(t=-t),A=vt(w.Math.floor(w.Math.log(t)/.6931471805599453)),(!e||t!=w.Math.pow(2,A))&&++A,A):Ah(M1(t));}function jK(t,e){var A,n,P,r,i,f;if(t.s[e]==0)return  false;for(f=true,A=t.s[e],r=t.j[e],i=0,n=0;n<r;n++)P=t.i[e][n],i+=t.s[P];return w.Math.abs(A)<=w.Math.abs(i)&&w.Math.sign(A)!=w.Math.sign(i)&&(f=false),f;}function pK(t,e){var A,n,P,r,i,f;for(ut(t,1),i=0;i<2;i++)if(A=t.D[i][e],t.C[A]==7){for(n=t.D[1-i][e],f=0;f<t.j[n];f++)if(P=t.i[n][f],r=t.k[n][f],(t.C[P]==7||t.C[P]==8||t.C[P]==16)&&dt(t,r)>=2)return  true;}return  false;}function CK(t){var e;if(t.f!=null){for(e=0;e<t.f.length;e++)if((t.c[e]&~t.f[e])!=0)return  false;}else return  false;return !t.d&&(t.d=dh(new GA(false),t.e)),!t.a&&(t.a=dh(new GA(false),t.b)),Dn(t.g,t.d),Ln(t.g,t.a),tg(t.g);}function lb(t){var e;e=YA(t.d),BP(t.k,!e),BP(t.c,!e),BP(t.n,!e),BP(t.i,!e),BP(t.j,!e),BP(t.b,!e),BP(t.g,!e),BP(t.f,!e&&dt(t.u,t.a)==2&&Ie(t.u,t.a)!=0&&Ie(t.u,t.a)!=3),BP(t.q,!e),BP(t.r,!e&&B0(t.q)!=1),BP(t.p,e),BP(t.o,e);}function e9(){e9=d1,CE=new j9("UP",0),bE=new j9("DOWN",1),kE=new j9("CEILING",2),RE=new j9("FLOOR",3),dl=new j9("HALF_UP",4),jE=new j9("HALF_DOWN",5),ye=new j9("HALF_EVEN",6),pE=new j9("UNNECESSARY",7);}function ah(t,e,A){var n,P,r;for(n=false,r=0;r<t.j[e];r++)if(!_e(t,t.k[e][r])&&t.n[e][r]==1&&(P=t.i[e][r],!(P<t.f&&r0(t.p,P))&&(t.C[P]==6&&rf(t,P)==1||t.C[P]==16&&rf(t,P)==2))){if(n||!A)return  true;n=true;}return  false;}function HK(t,e){var A,n,P,r,i;for(A=c(Ut,ht,6,t.v.length+t.u.length,15,1),n=_8(t.i,e.d).c,r=new Zt(n);r.a<r.c.a.length;)if(P=$t(r),(nm(e,P.c,P.b)?e.b:0)!=0)for(i=0;i<A.length;i++)BN(t.C,P,i)&&(A[i]+=P.a);return A;}function TA(t,e,A,n,P,r){var i,f,D,Q;for(D=0,f=0;f<t.R.f;f++)gt(V(U0(t.R,t.B[f]),n),0)&&++D;if(D!=0)for(an(t,e),Ot(t,D,A),i=0;i<t.R.f;i++)Q=V(U0(t.R,t.B[i]),n),G(Q,0)!=0&&(Ot(t,i,A),P!=1&&Ot(t,q0(Q,r),P));}function MK(t,e){var A,n,P,r,i,f,D;for(i=Ht(t.R,e),f=c(F,k,6,i,15,1),P=0;P<i;P++)f[P]=W(t.R,e,P);for(n=i;n>1;n--){for(A=false,r=1;r<n;r++)t6(t,e,f[r-1],f[r])&&(A=true,D=f[r-1],f[r-1]=f[r],f[r]=D);if(!A)break;}return f;}function VK(t){var e,A,n,P,r,i,f;for(i=c(E,xy,58,8,0,3),f=0;f<=7;f++)for(i[f]=c(E,c8,10,t[f].c,0,2),n=0,r=(A=new x8(new q8(new w9(t[f]).a).b),new g9(A));C9(r.a.a);)P=(e=dr(r.a),e.dd()),i[f][n++]=P;return i;}function bQ(t,e){var A,n;for(t.C=W8(t.C,e),t.s=W8(t.s,e),t.w=W8(t.w,e),n=t.J.length,t.J=SG(t.J,e),A=n;A<e;A++)t.J[A]=new J0();t.A=W8(t.A,e),t.u=W8(t.u,e),t.B=aO(t.B,e),t.v!=null&&(t.v=Kz(t.v,e)),t.t!=null&&(t.t=Xz(t.t,e)),t.M=e;}function Tb(t,e,A){var n,P,r,i;if(t.k=e,t.n=A,t.i!=null)for(i=t.i.length,t.o=c(Ut,ht,6,i,15,1),t.p=c(Ut,ht,6,i,15,1),r=0;r<i;r++)n=e-t.i[r].a,P=A-t.i[r].b,t.p[r]=w.Math.sqrt(n*n+P*P),t.o[r]=bA(e,A,t.i[r].a,t.i[r].b);}function EK(t,e){var A,n,P,r,i,f,D;for(n=c(Pt,ft,6,O(t.e,e),16,1),D=0,P=0;P<O(t.e,e);P++){for(f=0,i=-1,r=0;r<O(t.e,e);r++)n[r]||(A=xt(t.e,e,r),f<t.f[A]&&(f=t.f[A],i=r));if(f==0)return D;D<<=8,D+=f,n[i]=true;}return D;}function Mn(t){return w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c)>0?new wP(t.a/w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c),t.b/w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c),t.c/w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c)):new wP(0,0,0);}function Fs(t){var e;if(t.p=new Au(),t.k!=null)for(t.e=c(tE,e0,104,t.k.length,0,1),e=0;e<t.k.length;e++)t.e[e]=new du(t.k[e]);if(t.a!=null)for(t.b=c(tE,e0,104,t.a.length,0,1),e=0;e<t.a.length;e++)t.b[e]=new du(t.a[e]);t.d=24;}function SK(t,e,A){var n,P;if(P=N(t.b,e),t.d.length<=t.c.length){for(n=0;n<t.a;n++)if(A[t.d[n]]!=null&&A[t.d[n]][t.c[P[n]]])return  true;}else for(n=0;n<t.a;n++)if(A[t.d[P[n]]]!=null&&A[t.d[P[n]]][t.c[n]])return  true;return  false;}function qK(t,e){e6();var A,n,P,r;if(Kf[e]!=null){for(n=0;n<Kf[e].length;n++)for(r=Kf[e][n],P=15;P>=0;P--)(r&3)==0&&GU(t,P,n,-1),r>>=2;for(A=0;A<Kf[e].length;A++)for(r=Kf[e][A],P=15;P>=0;P--)(r&3)==1&&GU(t,P,A,Sn),r>>=2;}}function _9(t){var e,A,n;return t<0?0:t==0?32:(n=-(t>>16),e=n>>16&16,A=16-e,t=t>>e,n=t-256,e=n>>16&8,A+=e,t<<=e,n=t-C0,e=n>>16&4,A+=e,t<<=e,n=t-En,e=n>>16&2,A+=e,t<<=e,n=t>>14,e=n&~(n>>1),A+2-e);}function s0(t,e){var A=w;if(t==="")return A;var n=t.split(".");if(!(n[0]in A)&&A.execScript&&A.execScript("var "+n[0]),e){var P=e.prototype.sd;P.e=e;}for(var r;n.length&&(r=n.shift());)A=A[r]=A[r]||!n.length&&e||{};return A;}function t5(t,e,A,n,P,r,i){var f,D;return f=W(t.g,t.s[e],n),f<t.D.length&&(!t.D[f]||t.f[f]==i)&&f!=t.u[e]&&(D=xt(t.g,t.s[e],n),!r[D]&&!Bu(t.g,D)&&(t.s[++A]=f,t.u[A]=t.s[e],t.v[A]=D,r[D]=true,P[f]?t.t[A]=true:P[f]=true)),A;}function P2(t,e){var A,n,P,r,i;for(i=0,A=0,n=0;n<e;n++)i+=t[n].b*w.Math.sin(t[n].a),A+=t[n].b*w.Math.cos(t[n].a);return A==0?r=i>0?RA:Ao:(r=w.Math.atan(i/A),A<0&&(r+=U1)),P=w.Math.sqrt(i*i+A*A)/e,new KP(r,P);}function ms(t){var e,A,n;if(t.d!=-1)return t.d;for(t.d=0,A=0;A<t.g.a.length+t.f.a.length;A++)for(n=A<t.g.a.length?N(t.g,A):N(t.f,A-t.g.a.length),e=0;e<n.q;e++)t.d<w.Math.abs(n.w[e])&&(t.d=w.Math.abs(n.w[e]));return t.d;}function e5(t,e){Wr();var A;return A=c(Se,PA,6,4,15,1),A[0]=U4*((t&PP)>>16),A[1]=U4*((t&AP)>>8),A[2]=U4*(t&255),ZZ(A,e),t&Sn|vt(w.Math.round(A[0]*255))<<16|vt(w.Math.round(A[1]*255))<<8|vt(w.Math.round(A[2]*255));}function A5(t,e,A,n,P,r){var i,f,D,Q,o;if(P!=0)for(O1(t)===O1(A)&&(t=t.slice(e,e+P),e=0),D=A,f=e,Q=e+P;f<Q;)i=w.Math.min(f+eP,Q),P=i-f,o=t.slice(f,i),o.splice(0,0,n,r?P:0),Array.prototype.splice.apply(D,o),f=i,n+=P;}function IK(t,e,A){var n,P,r,i,f;for(f=Zi(new GA(true),t),P=-1,r=0;r<f.q;r++)if(n=f.t==null||f.t[r]==null?null:rn((i=f.t[r],c0(),i)),n!=null&&n.endsWith("*")){P=r;break;}return P>=0?JR(f,P,e,A):c(it,Dt,2,0,6,1);}function r2(t,e){var A;if(e<0)throw At(new j8("Negative exponent"));if(e==0)return I2;if(e==1||yh(t,I2)||yh(t,y9))return t;if(!jQ(t,0)){for(A=1;!jQ(t,A);)++A;return kP(IJ(A*e),r2(ET(t,A),e));}return bY(t,e);}function hb(t,e,A,n,P){var r,i,f,D,Q;for(Q=-1,i=0;i<O(t.j,A);i++)if(W(t.j,A,i)==e){Q=i;break;}for(f=-1,r=0;r<O(t.d,P);r++)if(W(t.d,P,r)==n){f=r;break;}for(D=0;D<8;D++)if(cs(t.k[A][Q][D],t.e[P][f][D])!=0)return D<<8;return q1;}function cb(t,e,A,n){var P;for(P=0;P<t.r;P++)if(t.D[0][P]==e&&t.D[1][P]==A||t.D[0][P]==A&&t.D[1][P]==e)return u8(t,P,n),t.T=0,P;return t.r>=t.N&&AQ(t,t.N*2),t.D[0][t.r]=e,t.D[1][t.r]=A,t.H[t.r]=n,t.F[t.r]=0,t.G[t.r]=0,t.T=0,t.r++;}function wb(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(s=e.length,P=e,r=0,i=P.length;r<i;++r)n=P[r],L=t.a[n]&c1,(L==0||L>s)&&(t.a[n]&=qP,t.a[n]|=s);for(D=A,Q=0,o=D.length;Q<o;++Q)f=D[Q],L=t.c[f]&c1,(L==0||L>s)&&(t.c[f]&=qP,t.c[f]|=s);}function ks(t,e){this.a=new dv(this),this.e=new cm(),this.b=new XB(),this.c=new zB(),this.d=new wv(this),this.f=new ZB(),this.i=new YB(),this.g=new KB(),this.j=new Bv(),this.k=new vg(this,t),this.n=new gv(this),this.o=new Fg(this,e),this.p=new fv();}function RQ(t,e,A){var n,P,r,i,f,D;return n=t.i[1].a-t.i[0].a,P=t.i[1].b-t.i[0].b,i=(t.i[0].a+t.i[1].a)/2,f=(t.i[0].b+t.i[1].b)/2,n==0?P<0^A>f:P==0?n<0^e>i:(r=-n/P,D=(t.i[0].a+r*r*e-r*A+r*t.i[0].b)/(1+r*r),n<0^D>i);}function xK(t,e,A){var n,P,r,i,f;for(f=c(dPt,h0,159,A,0,1),i=c(F,k,6,A,15,1),r=0;r<A;r++)f[r]=new ew();for(n=0;n<t.V.q;n++)f[e[n]].a+=kt(t.V,n),f[e[n]].b+=pt(t.V,n),++i[e[n]];for(P=0;P<A;P++)f[P].a/=i[P],f[P].b/=i[P];return f;}function ni(t){var e,A,n;for(n=false,e=0;e<t.q;e++)t.C[e]==-1&&(n=true,$u(t,t.w[e]));for(A=0;A<t.r;A++)t.H[A]==512?n=true:(t.C[t.D[0][A]]==-1||t.C[t.D[1][A]]==-1)&&(t.H[A]=512,n=true);return n?(t.T=0,vf(t)):null;}function NK(t,e,A){var n,P,r,i,f,D;for(f=c(Pt,ft,6,t.f,16,1),A[0]=e,D=1,f[e]=true,r=0;r<D;r++)for(i=0;i<t.j[A[r]];i++)P=t.k[A[r]][i],((t.F[P]&64)!=0||dt(t,P)==2||ri(t,P))&&(n=t.i[A[r]][i],f[n]||(A[D++]=n,f[n]=true));return D;}function OK(t){var e,A,n,P;for(P=false,A=0;A<t.V.q;A++)if(P0(t.V,A)){P=true;break;}if(n=am(t,P),n){for(G1(t),e=0;e<t.V.q;e++)(!P||P0(t.V,e))&&(ve(t.V,e,2*n.a-kt(t.V,e)),xe(t.V,e,2*n.b-pt(t.V,e)));t.eb=w.Math.max(t.eb,1),e1(t.k);}}function gb(t,e,A){var n;dT();var P;this.a=new YR(new JA(),t,A,this),YS(this.a,new Vw(this)),this.c=e,this.f=A,this.e=new al(),_l(this.e,this.a),this.d=new e7(),_l(this.d,this.a),P=(n=this.zc(),n.getClipboardHandler()),IS(this.a,new Iw(P));}function db(t){ip.call(this,t),this.d=c(F,k,6,this.v.length,15,1),this.c=c(F,k,6,this.u.length,15,1),this.a=c(OE,F2,165,1,0,1),this.a[0]=Ou(this,c(F,k,6,this.v.length,15,1),c(F,k,6,this.u.length,15,1)),this.b=-1;}function n5(t){var e,A;for(this.i=Yn(t),BW(this),ut(this.i,7),this.g=c(Pt,ft,6,this.i.g,16,1),this.f=c(Pt,ft,6,this.i.f,16,1),e=0;e<this.i.f;e++)A=Ku(K(this.i,e))[0],this.f[e]=t0(this.i,e)<A;RK(this),CW(this),yZ(this),SX(this);}function GK(t){t=t||{};var e=0;return t.matchAtomCharge===true&&(e|=1),t.matchAtomMass===true&&(e|=2),t.matchDBondToDelocalized===true&&(e|=4),(t.matchAromDBondToDelocalized===true||t.matchAromDBondToDelocalized===void 0)&&(e|=8),e;}function Bb(t,e){var A,n,P,r,i,f,D;for(D=xn(t.R),A=0;A<D.j.a.length;A++)if(D.e[A]&&yA(D,A,e)){for(P=N(D.j,A),r=0,i=P.length;r<i;++r)if(n=P[r],n!=e){for(f=0;f<O(t.R,n);f++)if(ri(t.R,xt(t.R,n,f)))return  true;}return  false;}return  false;}function Lf(t,e,A){var n,P,r;if(n=K(t.j,e),n>=5&&n<=8||n==15||n==16||n==33||n==34||n==52){if(r=dQ(t.j,e),r!=0)return  true;if(P=b1(t.j,e),n==5&&P>=0)return A&&E0(t.j,e,P-1),true;if(n!=5&&P<=0)return A&&E0(t.j,e,P+1),true;}return  false;}function JK(t,e,A){var n,P,r,i,f;for(f=false,i=1,e[A]=i,n=true;n;){for(n=false,P=0;P<t.b;P++)if(e[P]==i)for(r=0;r<t.b;r++)e[r]==0&&cG(t,P,r)&&(t.c[r]==-2?(e[r]=i+1,n=true):t.c[r]!=t.c[A]&&(e[r]=i+1,f=true));++i;}return f;}function zK(t,e){var A;for(this.o=e,this.k=c(M2,m2,29,t.k.length,0,1),A=0;A<this.k.length;A++)this.k[A]=new vu(t.k[A]);t.j!=null&&(this.j=fL(t.j,t.j.length)),this.p=t.p==null||t.p.endsWith(" (copy)")?t.p:ju(t.p," (copy)"),this.n=NaN;}function vb(t,e){var A,n,P,r,i;for(r=c(HE,h0,44,8,0,1),i=0;i<=7;i++)for(r[i]=new Oi(new _2()),A=0;A<t.f;A++)P=e[A][i],P!=null&&(n=Te(r[i],P),n=n==null?c(F,k,6,1,15,1):kn(n,n.length+1),n[n.length-1]=A,Ye(r[i],P,n));return r;}function YK(t,e){var A,n,P;if(t.t!=-1&&(ae(e,(P=SD(e),P!=0?P:zy)),TF(t,e,t.t),t.w==19&&(n=R1(t.V,t.t),n!=0)))for(A=0;A<t.V.f;A++)A!=t.t&&R1(t.V,A)==n&&TF(t,e,A);t.u!=-1&&(ae(e,(P=SD(e),P!=0?P:zy)),bK(t,e,t.u)),t.v&&t.v.Mb(e);}function P5(t,e){var A,n,P,r,i;for(r=lT(e),n=(A=t.a.get(r),A??c(fP,e0,1,0,5,1)),i=0;i<n.length;i++)if(P=n[i],QT(e,P.dd()))return n.length==1?(n.length=0,t.a.delete(r)):n.splice(i,1),--t.c,++t.b.b,P.ed();return null;}function KK(t,e){var A,n,P,r,i;if(t.C[e]!=8||t.j[e]!=1)return  false;if(A=t.i[e][0],t.C[A]==15){for(i=t.j[A],n=0;n<i;n++)if(P=t.i[A][n],P!=e&&t.C[P]==8&&(r=u1(t,A,P),t.H[r]==2))return  true;}return  false;}function r5(t,e){var A,n;if(t==null)return e==null?0:1;if(e==null)return  -1;for(A=w.Math.min(t.length,e.length),n=0;n<A;n++)if((t[n]&qP)!=(e[n]&qP))return (t[n]&qP)<(e[n]&qP)?-1:1;return t.length==e.length?0:t.length<e.length?-1:1;}function XK(t,e,A,n,P){var r,i,f,D;if(O1(t)===O1(e)&&n==P){CR(t,n,A);return;}for(f=0;f<n;f++){for(i=0,r=t[f],D=0;D<P;D++)i=x1(x1(on(V(r,h1),V(e[D],h1)),V(A[f+D],h1)),V(Jt(i),h1)),A[f+D]=Jt(i),i=DA(i,32);A[f+P]=Jt(i);}}function ZK(t){var e,A,n,P,r;for(A=0;A<t.R.f;A++)$e(t.e[A],A),W1(t.e[A],t.c+1,on(2,t.f[A]));for(r=c(F,k,6,t.U+1,15,1),n=0;n<t.R.f;n++)++r[t.f[n]];for(P=1;r[P]==1;)++P;for(e=0;e<t.R.f;e++)if(t.f[e]==P){Qe(t.e[e],1);break;}t.U=Xn(t);}function i5(t,e){var A,n,P;if(t.a==null){for(t.a=c(Ut,ht,6,t.o.q,15,1),t.d=c(Ut,ht,6,(i8(),Fl).length,15,1),P=new Zt(e);P.a<P.c.a.length;)n=$t(P),n.g&&(t.d[n.rd()]+=n.pd(t,t.a));for(t.e=0,A=0;A<t.o.q;A++)t.e+=t.a[A];t.c=-1;}}function WK(t,e){e=e||{};var A=e.smartsMode||"smiles",n=e.skipCoordinateTemplates||false,P=e.makeHydrogenExplicit||false,r=e.noCactvs||false,i=e.singleDotSeparator||false,f=e.createSmartsWarnings||false;t.xc(A,n,P,r,i,f);}function jQ(t,e){var A,n,P;if(e==0)return (t.a[0]&1)!=0;if(e<0)throw At(new j8("Negative bit address"));if(P=e>>5,P>=t.d)return t.e<0;if(A=t.a[P],e=1<<(e&31),t.e<0){if(n=oF(t),P<n)return  false;n==P?A=-A:A=~A;}return (A&e)!=0;}function Fb(t,e,A,n,P,r,i){var f,D,Q;f=A==-1?(i[e].a-i[t.B[0]].a)/8:i[e].a-i[A].a,D=A==-1?(i[e].b-i[t.B[0]].b)/8:i[e].b-i[A].b,Ot(t,vt((n+f)/P),r),Ot(t,vt((n+D)/P),r),t.jb&&(Q=A==-1?(i[e].c-i[t.B[0]].c)/8:i[e].c-i[A].c,Ot(t,vt((n+Q)/P),r));}function mb(t,e){var A,n,P,r;if(t.d!=e.d)return t.d>e.d?1:-1;for(P=t.a.length,r=e.a.length,A=w.Math.min(P,r),n=0;n<A;n++)if(--P,--r,t.a[P]!=e.a[r])return t.a[P]>e.a[r]?1:-1;return P!=r?P>r?1:-1:t.b!=e.b?t.b>e.b?1:-1:0;}function kb(t,e){var A,n,P,r;if(t.K){if(gt(V(t.B[e],1),0))return  false;if(t.v!=null&&t.v[e]!=null){for(n=t.v[e],P=0,r=n.length;P<r;++P)if(A=n[P],!(A==1||A>=5&&A<=9||A>=14&&A<=17||A>=32&&A<=35||A>=52&&A<=53))return  false;}}return hO(t.C[e]);}function _K(t){var e,A,n,P,r,i;if(!ul)return aM;for(r=0,n=0,i=new bD(1),A=new JA(),P=0;P<li.a.a.length;P++)f2(new GA(false),A,d3(li,P)),Dn(i,t),Ln(i,A),sn(i,1,i.c)>0&&(r+=a7(li,P),++n);return e=n==0?-1:r/w.Math.sqrt(n),e+"	"+n+"	"+t.f;}function bb(t,e){var A,n,P,r;for(r=0,n=new QB();r<e;){try{P=Y1(t.i);}catch(i){if(i=a1(i),Xt(i,75))break;throw At(i);}if(P==null)break;P.startsWith(ro)&&++r,P.startsWith(">")&&(A=$R(P),A!=null&&CG(n,A));}t.d=Pf(n.b,c(it,Dt,2,0,6,1));}function f5(t,e){var A,n,P,r,i;return e&=63,A=t.h,n=(A&y8)!=0,n&&(A|=-1048576),e<22?(i=A>>e,r=t.m>>e|A<<22-e,P=t.l>>e|t.m<<22-e):e<44?(i=n?aA:0,r=A>>e-22,P=t.m>>e-22|A<<44-e):(i=n?aA:0,r=n?x0:0,P=A>>e-44),S0(P&x0,r&x0,i&aA);}function sf(t,e,A,n,P,r){for(var i,f,D;t.q+n>t.M;)bQ(t,t.M*2);for(;t.r+n>t.N;)AQ(t,t.N*2);return i=ZA(t,e,A),i!=-1?FR(t,i,n,P,r):(f=wf(t,e,A),f!=-1?JQ(t,f,n,P,r):(i=_0(t,e,A,0),D=U1*(n-2)/n,O5(t,i,n,i,P,0,U1-D,r),t.T=0,true));}function Rb(t){var e,A,n,P,r,i,f,D,Q,o;for(D=0,n=t,r=0,f=n.length;r<f;++r)e=n[r],e==-1&&++D;if(D!=0)for(o=t,t=c(F,k,6,o.length-D,15,1),Q=0,A=o,P=0,i=A.length;P<i;++P)e=A[P],e!=-1&&(t[Q++]=e);return t.sort(me(D0.prototype.gd,D0,[])),t;}function $K(t){var e,A,n,P;if(A=new P8(),t.g.a.length!=0){for(P=new Jr(N(t.g,0)),e=1;e<t.g.a.length;e++)kD(P,N(t.g,e));mt(A.g,P),A.d=-1;}if(t.f.a.length!=0){for(n=new Jr(N(t.f,0)),e=1;e<t.f.a.length;e++)kD(n,N(t.f,e));mt(A.f,n),A.d=-1;}return A;}function aK(t,e){var A,n,P,r,i;for(t.i=c(F,k,6,t.g.f,15,1),n=0;n<t.f.f;n++)R1(t.f,n)!=0&&(t.i[e[R1(t.f,n)]]=R0(t.f,n));if(i=c(F,k,6,t.g.q,15,1),r=n9(t.g,i,false,false),r>1)for(P=c(F,k,6,r,15,1),A=0;A<t.g.f;A++)t.i[A]|=P[i[A]]++<<5;}function tX(t,e){return !e&&(e={mode:3}),e=Object.assign({},e),"ensureCoordinates"in e?(e.ensureCoordinates=!!e.ensureCoordinates,zN(t,e.ensureCoordinates)):(typeof e.mode!==Ar&&(e.mode=3),e.mode=Math.trunc(e.mode),RN(t,e.mode));}function yf(t,e,A,n){var P;if(A==null){t.v!=null&&(t.v[e]=null);return;}if(A.length==1&&!n){P=A[0],t.C[e]!=P&&gf(t,e,P,0,-1,0),t.v!=null&&(t.v[e]=null);return;}t.v==null&&(t.v=c(F,f0,7,t.M,0,2)),t.v[e]=A,n&&(t.B[e]=Y(t.B[e],1)),t.T=0,t.K=true;}function eX(t,e){var A,n,P,r,i,f,D;for(A=c(Ut,ht,6,Ht(t.L,e),15,1),P=0;P<Ht(t.L,e);P++)A[P]=K0(t.L,e,W(t.L,e,P));for(A.sort(me(di.prototype.gd,di,[])),r=kF(A,0),i=ek(A,0,r),n=1;n<A.length;n++)f=kF(A,n),D=ek(A,n,f),i<D&&(i=D,r=f);return r;}function AX(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(s=new QU(new tD()),Q=e,o=0,L=Q.length;o<L;++o)for(D=Q[o],P=A,r=0,i=P.length;r<i;++r)n=P[r],f=c(F,k,6,2,15,1),f[0]=t.J[D],f[1]=t.C[n],Ye(s.a,f,(k9(),go))==null;return ik(s,c(F,f0,7,0,0,2));}function $9(t,e){var A,n,P,r;if(r=t.d.a.length,r==0)return  -1;for(P=1;2*P<=r;)P<<=1;for(n=P,--P;n!=0;){if(n>>=1,P>=r){P-=n;continue;}if(A=Jd(t,e,N(t.d,P)),A==0)return P;if(n==0)break;A<0?P-=n:P+=n;}return P<r&&Jd(t,e,N(t.d,P))>0&&++P,-(P+1);}function nX(t,e,A,n){var P,r,i,f,D,Q;if(P=t.e[e],f=c(F,k,6,P,15,1),Q=k5(t,e,A,n,f),Q==3)return  false;for(i=(t.u[e]&3)==Q?257:129,D=0;D<P;D++)(f[D]&1)==1&&(r=t.k[e][A[D]],t.H[r]=i,t.D[0][r]!=e&&(t.D[1][r]=t.D[0][r],t.D[0][r]=e));return  true;}function PX(t){var e,A,n,P;for(n=new Zt(t.g);n.a<n.c.a.length;)if(e=$t(n),e.q!=0)return  false;for(P=new Zt(t.f);P.a<P.c.a.length;)if(e=$t(P),e.q!=0)return  false;for(A=new Zt(t.a);A.a<A.c.a.length;)if(e=$t(A),e.q!=0)return  false;return  true;}function rX(t,e){var A,n,P;if(t.f=e,K7(t.e,t.c,t.f),sn(t.e,4,8)==0)return t.a=null,0;for(t.a=t.e.F,A=t.a.a.length-1;A>=0;A--)for(P=N(t.a,A),n=0;n<P.length;n++)if(P[n]!=-1&&t.b[n]>0&&t.b[n]>Ki(t.f,P[n])){LA(t.a,A);break;}return t.a.a.length;}function jb(t,e,A){var n,P,r,i,f;for(this.a=c(F,k,6,t.f,15,1),this.a[0]=e,A[e]=true,r=0,i=0;r<=i;){for(P=O(t,this.a[r]),f=0;f<P;f++)n=W(t,this.a[r],f),w.Math.abs(t.w[n])==0&&n0(V(t.B[n],re),0)&&!A[n]&&(this.a[++i]=n,A[n]=true);++r;}}function iX(t,e,A,n,P){var r,i,f,D,Q,o,L,s;return r=_n(e.C[A]),i=_n(e.C[P]),f=r>i?4:3,D=(Q=_n(e.C[A]),o=_n(e.C[n]),L=_n(e.C[P]),Q>L&&(Q=(s=m1(L),m1(L=Q),s).a),W9(B(d(F,1),k,6,15,[1,0,2]),B(d(F,1),k,6,15,[o,Q,L]),t)),D>=0?j0(t.a[D][f]):0;}function pb(t,e,A){var n,P,r;if(t.o[e]==2||(t.o[e]==1||EP(t,e,true))&&t.j[e]!=3||t.o[e]==0&&t.j[e]!=4)return 1;for(r=-2,P=0;P<t.j[e];P++)if(n=t.i[e][P],n!=A){if(r==-2)r=HU(t.d,n);else if(r!=HU(t.d,n))return 1;}return t.j[e]-1;}function fX(t,e){var A,n,P,r,i;if(t.i.K){if(gt(V(U0(t.i,e),1),0))return  true;if(i=HA(t.i,e),i!=null){for(n=i,P=0,r=n.length;P<r;++P)if(A=n[P],A==5||A==6||A==7||A==8||A==15||A==16||A==33||A==34)return  true;return  false;}}return Lv(K(t.i,e));}function DX(t,e,A){var n,P,r,i,f,D,Q,o,L;for(L=c(NA,te,6,1+t.d[t.d.length-1],14,1),n=0,i=e,D=0,o=i.length;D<o;++D)P=i[D],L[t.d[n]]=x1(L[t.d[n]],P<<t.b[n]),++n;for(r=A,f=0,Q=r.length;f<Q;++f)P=r[f],L[t.d[n]]=x1(L[t.d[n]],P<<t.b[n]),++n;return L;}function D5(t,e){var A,n,P;this.a=t.D[0][e],this.b=t.D[1][e],n=R1(t,this.a),P=R1(t,this.b),n<P?(this.d=n,this.e=P):(this.d=P,this.e=n),this.c=t.G[e]&31,A=t.H[e]&127,A==16?this.c|=16:A==2?this.c|=2:A==4?this.c|=4:this.c|=1,this.i=(t9(),ll);}function bs(t,e){var A,n,P;if(A=z(t.V,0,e),d0(t.V,A)!=0)return Mi(t.V,A)||d0(t.V,A)!=1&&d0(t.V,A)!=2?-1:A;if($1(t.V,A)==1){for(P=0;P<O(t.V,A);P++)if(pA(t.V,A,P)==2&&(n=W(t.V,A,P),$1(t.V,n)==2&&(d0(t.V,n)==1||d0(t.V,n)==2)))return n;}return  -1;}function uX(t){if(t.Vc()){var e=t.c;e.Wc()?t.n="["+e.k:e.Vc()?t.n="["+e.Tc():t.n="[L"+e.Tc()+";",t.b=e.Sc()+"[]",t.j=e.Uc()+"[]";return;}var A=t.g,n=t.d;n=n.split("/"),t.n=Ps(".",[A,Ps("$",n)]),t.b=Ps(".",[A,Ps(".",n)]),t.j=n[n.length-1];}function Cb(t){var e,A,n,P;e=t.M!=0?t.M:t.D!=0?t.D:-1,t.t=(Wr(),A=(e&PP)>>16,n=(e&AP)>>8,P=e&255,(A+vt(w.Math.round(bf*(92-A)))<<16)+(n+vt(w.Math.round(bf*(160-n)))<<8)+P+vt(w.Math.round(bf*(255-P)))),t.u=Os(sy,e),t.H=-24321,t.I=-6291392;}function pQ(t){var e,A,n,P,r,i,f;do for(f=false,A=0;A<t.j.g;A++)if(t.e[A]){for(r=false,P=0;P<2;P++){for(n=z(t.j,P,A),e=false,i=0;i<O(t.j,n);i++)if(A!=xt(t.j,n,i)&&t.e[xt(t.j,n,i)]){e=true;break;}if(!e){r=true;break;}}r&&(f=true,t2(t,A));}while(f);}function u5(t){var e,A,n,P,r,i,f;do for(f=false,A=0;A<t.k.g;A++)if(t.g[A]){for(r=false,P=0;P<2;P++){for(e=false,n=z(t.k,P,A),i=0;i<O(t.k,n);i++)if(A!=xt(t.k,n,i)&&t.g[xt(t.k,n,i)]){e=true;break;}if(!e){r=true;break;}}r&&(f=true,FQ(t,A));}while(f);}function Hb(t){var e,A,n,P,r,i;for(t.e=c(Ut,ht,6,t.d,15,1),A=new Zt(t.a);A.a<A.c.a.length;)e=$t(A),e.dc(t.i,t.e);for(i=-1e8,n=.1,r=0;r<t.d;r++)t.e[r]*=n,t.e[r]>i&&(i=t.e[r]);if(i>10){for(;i*n>10;)n*=.5;for(P=0;P<t.d;P++)t.e[P]*=n;}return n;}function QX(t){t=t||{};var e=t.countMode||wV;switch(e){case wV:return 4;case "existence":return 1;case "firstMatch":return 2;case "separated":return 3;case "rigorous":return 5;case "unique":return 6;default:throw new Error("invalid count mode: "+e);}}function Rs(t,e){var A,n,P,r,i,f;return r=t.a*tl+t.b*1502,f=t.b*tl+11,A=w.Math.floor(f*vV),r+=A,f-=A*l4,r%=l4,t.a=r,t.b=f,e<=24?w.Math.floor(t.a*uc[e]):(P=t.a*(1<<e-24),i=w.Math.floor(t.b*Qc[e]),n=P+i,n>=To&&(n-=U8),n);}function Mb(t,e){var A,n,P,r;if(t.K){if(gt(V(t.B[e],1),0))return  false;if(t.v!=null&&t.v[e]!=null){for(n=t.v[e],P=0,r=n.length;P<r;++P)if(A=n[P],!(A>=21&&A<=30||A>=39&&A<=48||A==57||A>=72&&A<=80||A==89||A>=104&&A<=112))return  false;}}return fG(t.C[e]);}function oX(t,e,A,n,P,r){var i,f,D,Q,o,L,s;for(I8(t.k[A],n,P,r),s=t.o,L=c(Pt,ft,6,s.q,16,1),D=c(F,k,6,s.q,15,1),D[0]=A,L[e]=true,L[A]=true,f=0,Q=0;f<=Q;){for(o=0;o<s.e[D[f]];o++)i=s.i[D[f]][o],L[i]||(L[i]=true,D[++Q]=i,I8(t.k[i],n,P,r));++f;}}function O0(t,e,A,n){var P;if(e==A)return  -1;for(P=0;P<t.r;P++)if(t.D[0][P]==e&&t.D[1][P]==A||t.D[0][P]==A&&t.D[1][P]==e)return t.H[P]<n&&(t.H[P]=n),P;return t.r>=t.N&&AQ(t,t.N*2),t.D[0][t.r]=e,t.D[1][t.r]=A,t.H[t.r]=n,t.F[t.r]=0,t.G[t.r]=0,t.T=0,t.r++;}function Q5(t,e,A){var n,P,r,i,f,D;if(e==A)return 0;for(ut(t,1),i=c(F,k,6,t.q,15,1),r=c(F,k,6,t.q,15,1),r[0]=e,i[e]=1,P=0,f=0;P<=f;){for(D=0;D<t.e[r[P]];D++){if(n=t.i[r[P]][D],n==A)return i[r[P]];i[n]==0&&(r[++f]=n,i[n]=i[r[P]]+1);}++P;}return  -1;}function CQ(t,e){var A,n;if(ut(t,1),t.j[e]==2&&t.n[e][0]==2&&t.n[e][1]==2){for(A=0;A<2;A++)for(n=0;n<t.e[t.i[e][A]];n++)if(Or(t,t.k[t.i[e][A]][n],t.i[e][A]))return t.k[t.i[e][A]][n];}else for(A=0;A<t.e[e];A++)if(Or(t,t.k[e][A],e))return t.k[e][A];return  -1;}function o5(t,e,A){var n,P,r,i,f,D;for(ut(t,1),r=c(F,k,6,t.f,15,1),D=c(Pt,ft,6,t.f,16,1),r[0]=e,r[1]=A,D[e]=true,D[A]=true,P=1,i=1;P<=i;){for(f=0;f<t.j[r[P]];f++){if(n=t.i[r[P]][f],n==e&&P!=1)return  -1;D[n]||(D[n]=true,r[++i]=n);}++P;}return i;}function i2(t,e){var A;return e==null?null:(A=Te(t.c,e),A||((e.endsWith("<")||e.endsWith("-"))&&(A=Te(t.c,e.endsWith("<")?oA(e,0,e.length-1)+">":e.endsWith("-")?oA(e,0,e.length-1)+"+":e),A)?(A=new sj(A),Ye(t.c,e,A),A):null));}function UX(t,e,A,n,P,r){var i,f,D,Q,o;for(f=new f1(),i=_W(t,e),D=0;D<e.q;D++)for(Q=0;Q<D+1;Q++)o=iN(A,new xi(D,Q)),(o==(Y9(),yi)||o==q2)&&w.Math.abs(i[D])>lo&&w.Math.abs(i[Q])>lo&&mn(new LT(e,D,Q))<n&&mt(f,new Kv(e,D,Q,o,i[D],i[Q],P,r));return f;}function LX(t,e,A,n,P){var r,i,f,D,Q;for(Q=-1,i=0;i<O(t.j,A);i++)if(W(t.j,A,i)==e){Q=i;break;}for(f=-1,r=0;r<O(t.d,P);r++)if(W(t.d,P,r)==n){f=r;break;}for(D=2;D<8;D++)if(t.p[A][Q][D]==null||cs(t.p[A][Q][D],t.i[P][f][D])!=0)return D-2<<8;return 1536;}function sX(t,e,A,n){var P,r,i,f,D,Q,o;for(o=n.a.length,0<o?n.a=oA(n.a,0,0):0>o&&(n.a+=S8(c(l9,te,6,-o,15,1))),D=Bn(t.k,e)&&(t.j&4)==0,r=A,i=0,f=r.length;i<f;++i)P=r[i],n.a.length!=0&&(n.a+=","),Q=(J1(),Z0)[P],J(n,D?Q.toLowerCase():Q);return n.a;}function yX(t){var e,A;for(A=new yD(),e=0;e<t.length;e++)switch(Gt(e,t.length),t.charCodeAt(e)){case 38:A.a+="&&";break;case 9:A.a+="&09";break;case 10:A.a+="&0A";break;case 32:A.a+="&20";break;default:PB(A,(Gt(e,t.length),t.charCodeAt(e)));}return A.a;}function lX(t,e,A,n,P){var r,i,f,D;if(t.j.length==0||t.n.a.length==0)return null;for(D=c(Pt,h0,12,e,0,2),f=c(Pt,ft,6,n,16,1),i=0;i<P.length;i++)P[i]!=-1&&R1(t.f,i)==0&&(f[P[i]]=true);for(r=0;r<A.length;r++)A[r]!=-1&&R1(t.g,r)==0&&(D[A[r]]=f);return D;}function U5(t,e,A,n,P,r){var i,f,D,Q,o;for(I8(t.k[e],n,P,r),o=t.o,D=0;D<o.e[e];D++){if(i=o.i[e][D],f=false,A!=null){for(Q=0;Q<A.length;Q++)if(i==A[Q]){f=true;break;}}f||(o.e[i]==1?I8(t.k[i],n,P,r):fA(o,o.k[e][D])?I8(t.k[i],n/3,P/3,r/3):oX(t,e,i,n,P,r));}}function f2(t,e,A){var n,P,r,i;if(A==null||A.length==0){GT(t,e,null,null);return;}n=A.indexOf(k0(32)),n>0&&n<A.length-1?GT(t,e,KA((r=(Ct(0,n,A.length),A.substr(0,n)),c0(),r)),KA((i=(Gt(n+1,A.length+1),A.substr(n+1)),i))):GT(t,e,KA((P=A,c0(),P)),null);}function TX(t,e){var A,n,P,r;for(t.f=G(e,0)==0?new WD():new zr(e),n=new ku(t.d),A=null,P=0;P<12&&!(gt(t.n,0)&&(z1(),E1(M1(Date.now()),t.n)));P++){if(LR(t,n)||G(e,0)!=0)return n;A?A.e>n.e&&(r=A,A=n,n=r):(A=n,n=new ku(t.d));}return A;}function D2(t,e){var A,n,P,r,i,f;if(!t.b)return  false;for(P=false,r=t.b.a.length-1;r>=0;r--)if(n=false,i=N(t.b,r),i.a==2?n=NW(t,i.b,i.c,i.d,e):i.a==1&&(n=RW(t,i.b,e)),n){for(X8(t.b,i),f=0;f<t.g[i.b].length;f++)A=t.g[i.b][f],t.n[A]=false;P=true;}return P;}function HQ(t,e,A){return dt(t,e)!=1?0:16-t.e[A]+16*w.Math.max(0,w.Math.min(9,t.p&&e<t.g?sP(t.p,e):0)-2)+((t.H[e]&384)==0||t.D[0][e]!=A?L8:0)+((t.u[A]&3)==0?C0:0)+(t.C[A]==1?q1:0)+(t.e[A]==1?ie:0)+((t.F[e]&64)!=0?0:512)+(t.C[A]!=6?256:0);}function Vb(t,e,A,n){var P,r,i,f,D,Q,o;for(P=c(F,k,6,O(t.i,A),15,1),f=0,i=0;i<O(t.i,A);i++)P[f]=W(t.i,A,i),!n[P[f]]&&Ks(t,e,P[f])&&++f;if(f==0)return  -1;if(f==1)return P[0];for(D=-1,Q=Et,r=0;r<f;r++)o=eR(t.i,e,P[r],Et,n),o<Q&&(Q=o,D=P[r]);return D;}function hX(t,e){var A,n,P;e.j==1?Rr(t.s):e.j==0?(SJ(t),t.v=true,Rr(t.s)):O1(e.k)===O1(t.d)||O1(e.k)===O1(t.q)?lb(t):O1(e.k)===O1(t.p)&&(P=B0(t.p),t.t!=P&&(n=t.t+B0(t.o),A=aT(t,P),n<P?Wt(t.o,0):n<P+A?Wt(t.o,n-P):Wt(t.o,A-1),t.t=P));}function cX(t,e){var A,n,P,r;return A=kr(t.R,e),n=uf(t.R,e,false),P=uf(t.R,e,true),r=-1,n!=P?A!=-1&&A>n?r=A<<24>>24:r=n<<24>>24:A!=-1?(A>P||A<P&&A>=N1(t.R,e))&&(r=A<<24>>24):!aL(t.R,e)&&m3(t.R,e)!=0&&(r=N1(t.R,e),r-=mu(t.R,e,r)),MO(t,e,r),r;}function wX(t){var e,A,n;for(e=0,A=0,n=0;n<t.g.a.length+t.f.a.length;n++)e+=M8(n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length))*(n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length)).r,A+=(n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length)).r;return A!=0?A/e:1;}function gX(t){var e,A,n;for(e=0,A=0,n=0;n<t.g.a.length+t.f.a.length;n++)e+=M8(n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length))*(n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length)).r,A+=(n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length)).r;return A!=0?A/e:1;}function $0(t,e){var A,n,P,r;if(t.K){if(gt(V(t.B[e],1),0))return  false;if(t.v!=null&&t.v[e]!=null){for(n=t.v[e],P=0,r=n.length;P<r;++P)if(A=n[P],!(A>=3&&A<=4||A>=11&&A<=13||A>=19&&A<=31||A>=37&&A<=51||A>=55&&A<=84||A>=87&&A<=112))return  false;}}return eJ(t.C[e]);}function js(t,e){var A,n,P,r;if(r=t.c.a.length,r==0)return t8(t.c,0,e),0;for(P=1;2*P<=r;)P<<=1;for(n=P,--P;n!=0;){if(n>>=1,P>=r){P-=n;continue;}if(A=Yr(e,N(t.c,P)),A==0)return  -1;if(n==0)break;A<0?P-=n:P+=n;}return P<r&&Yr(e,N(t.c,P))>0&&++P,t8(t.c,P,e),P;}function dX(t){var e,A,n,P,r,i,f,D,Q;if(Q=1,n=cP(t,t.q,t.r,(J1(),wn)),n!=0)(n<1||n>3)&&(Q=1.5/n);else {for(D=Mp,e=1;e<t.q;e++)for(A=0;A<e;A++)r=t.J[A].a-t.J[e].a,i=t.J[A].b-t.J[e].b,f=t.J[A].c-t.J[e].c,P=r*r+i*i+f*f,D>P&&(D=P);Q=3/w.Math.max(.75,D);}return Q;}function BX(t){var e,A,n,P;for(A=0;A<t.R.f;A++)$e(t.e[A],A),W1(t.e[A],2*t.c+4,j1(t.f[A],t.c+4));for(P=false,e=0;e<t.R.f;e++)P=P|ty(t,e,3);for(n=0;n<t.R.g;n++)P=P|zQ(t,n,3);if(!P)return  false;for(;t.U<t.R.f&&(P=u$(t),!!P);)U2(t),t.P&&D2(t.P,t.f);return  true;}function Eb(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y;for(r=e.a[A],f=e.a[n],D=e.a[P],o=lm(t.a,e,A,n,P),s=-1,L=0;L<5&&s<0;L++)i=t.a.g.a[r-1][L],Q=t.a.g.a[D-1][L],i>Q&&(i=(y=m1(Q),m1(Q=i),y).a),s=W9(B(d(F,1),k,6,15,[2,1,3,0]),B(d(F,1),k,6,15,[f,i,Q,o]),t);return s;}function vX(t,e,A,n,P){var r,i,f;for(r=0,i=0,f=0;f<n;f++)r=(P9(),x1(on(V(A[f],h1),V(P,h1)),V(Jt(r),h1))),i=x1(l0(V(t[e+f],h1),V(r,h1)),i),t[e+f]=Jt(i),i=q0(i,32),r=DA(r,32);return i=x1(l0(V(t[e+n],h1),r),i),t[e+n]=Jt(i),Jt(q0(i,32));}function FX(t,e,A,n){var P,r,i,f,D,Q;for(i=c(F,k,6,t.f.q,15,1),f=c(F,k,6,t.f.q,15,1),i[0]=A,i[1]=e,f[A]=1,f[e]=2,r=1,D=1;r<=D;){for(Q=0;Q<O(t.f,i[r]);Q++){if(P=W(t.f,i[r],Q),P==n)return 1+f[i[r]];f[P]==0&&Ei(t.f,P)&&(i[++D]=P,f[P]=f[i[r]]+1);}++r;}return 0;}function mX(t,e,A,n){var P,r,i,f,D,Q,o;for(ut(t,1),n==null&&(n=c(Pt,ft,6,t.q,16,1)),D=c(F,k,6,t.q,15,1),D[0]=e,n[e]=true,i=0,Q=0,f=1;i<=Q;){for(r=A?t.i[D[i]].length:t.e[D[i]],o=0;o<r;o++)P=t.i[D[i]][o],P<n.length&&!n[P]&&(D[++Q]=P,n[P]=true,++f);++i;}return f;}function ps(t,e){var A,n,P,r,i,f;for(i=0;i<2;i++)if(A=z(t.i,i,e),K(t.i,A)==7&&O(t.i,A)==2&&(n=z(t.i,1-i,e),K(t.i,n)==6)){for(f=0;f<O(t.i,n);f++)if(P=W(t.i,n,f),r=xt(t.i,n,f),(K(t.i,P)==8||K(t.i,P)==16)&&dt(t.i,r)==2&&O(t.i,P)==1)return  true;}return  false;}function kX(t){var e,A,n;return A=t.l,(A&A-1)!=0||(n=t.m,(n&n-1)!=0)||(e=t.h,(e&e-1)!=0)||e==0&&n==0&&A==0?-1:e==0&&n==0&&A!=0?OL(A):e==0&&n!=0&&A==0?OL(n)+22:e!=0&&n==0&&A==0?OL(e)+44:-1;}function MQ(t,e,A,n,P){t[e[0]][e[1]]?t[e[0]][e[1]].a.length==2||t[e[0]][e[1]].c<P?t[e[0]][e[1]]=new _T(e,A,n,P):t[e[0]][e[1]].c==P&&(t[e[0]][e[1]].a[0]=(t[e[0]][e[1]].a[0]+n)/2,t[e[0]][e[1]].b=oK(t[e[0]][e[1]].b,A)):t[e[0]][e[1]]=new _T(e,A,n,P);}function bX(t,e,A){var n,P,r,i,f,D,Q;if(Ht(t.d,A)==1&&(r=W(t.d,A,0),dU(t.d,r))){for(n=e.k[A],P=e.k[r],D=new Ne(P.a-n.a,P.b-n.b,P.c-n.c),i=0;i<O(t.d,r);i++)if(f=W(t.d,r,i),Ei(t.d,f)&&(Q=G8(P,e.k[f]),ob(D,Q)>RA))return  false;return Hr(Hr(n,D),D),true;}return  false;}function RX(t){var e,A,n,P,r,i;for(e=0;e<t.k.g;e++)if(t.g[e]){for(r=true,P=0;P<2&&r;P++)for(A=z(t.k,P,e),i=0;i<O(t.k,A)&&r;i++)e!=xt(t.k,A,i)&&t.g[xt(t.k,A,i)]&&(r=false);if(r)for(w0(t.k,e,8),--t.c,n=0;n<2;n++)A=z(t.k,n,e),Y0(t.k,A)&&(Gn(t.k,A,false),--t.b);}}function jX(t,e){e.j==0?(fJ(t),t.B=true,Rr(t.v)):e.j==1?Rr(t.v):O1(e.k)===O1(t.b)?e.a==1?(N8(t.D,""),JU(t.w,e4)):(N8(t.D,ji(t.A,t.a)),JU(t.w,oV)):O1(e.k)===O1(t.c)?(uA(t.f,false),Wt(t.n,0),Wt(t.j,0)):O1(e.k)===O1(t.f)&&uA(t.c,false);}function pX(t,e,A,n,P){var r,i,f,D,Q,o;for(r=1/(1+w.Math.exp(t-5)),o=1-1/(1+w.Math.exp(e+5)),Q=1/(1+w.Math.exp(.012*A-6)),i=1-1/(1+w.Math.exp(n)),f=(.5+r/2)*(.5+o/2)*(.5+Q/2)*(.5+i/2),D=0;P!=null&&D<P.length;D++)P[D]==2?f*=.8:P[D]==3&&(f*=.6);return f;}function Sb(t){var e,A,n,P,r,i,f;for(n=0,A=0;A<t.q;A++)(t.u[A]&512)!=0&&++n;if(n==0)return null;for(r=0,P=0;P<t.r;P++)(t.u[t.D[0][P]]&t.u[t.D[1][P]]&512)!=0&&++r;for(f=c(Pt,ft,6,t.q,16,1),e=0;e<t.q;e++)f[e]=(t.u[e]&512)!=0;return i=new zA(n,r),fi(t,i,f,false,null),i;}function CX(t,e){var A,n,P,r,i,f,D,Q;for(i=0,n=e,P=0,r=n.length;P<r;++P)A=n[P],A==-1&&++i;for(Q=c(F,k,6,e.length-i,15,1),D=0,f=0;f<e.length;f++)e[f]!=-1&&(Q[D]=R0(t.g,f)<<16|R0(t.H,e[f]),t.i!=null&&(Q[D]|=t.i[f]<<24),++D);return Q.sort(me(D0.prototype.gd,D0,[])),Q;}function Cs(t,e){var A,n;A=-1,n=0,(t.G[e]&16)!=0&&(A=16,++n),(t.G[e]&64)!=0&&(A=64,++n),(t.G[e]&32)!=0&&(A=32,++n),(t.G[e]&4)!=0&&(A=4,++n),(t.G[e]&2)!=0&&(A=2,++n),(t.G[e]&8)!=0&&(A=8,++n),(t.G[e]&1)!=0&&(A=1,++n),A!=-1&&A!=(t.H[e]&127)&&(t.H[e]=A),n<2&&(t.G[e]&=-128);}function HX(t,e){var A,n;t.c==e.c?t.i=(t9(),jo):_r(e.c)==1?(t.g=e.c==1?1:e.c==2?386:e.c==4?4:e.c==16?16:8,t.i=(t9(),Ul)):(A=(t.c&16)!=0?0:(t.c&1)!=0?1:(t.c&2)!=0?2:3,n=(e.c&16)!=0?0:(e.c&1)!=0?1:(e.c&2)!=0?2:3,n==A?t.i=(t9(),jo):(t.f=n-A,t.i=(t9(),Ll)));}function MX(t,e,A,n,P,r){var i,f,D,Q,o,L;return Q=u1(e,n,P),i=D8(t,e,A,n),f=D8(t,e,n,P),D=D8(t,e,P,r),L=f,f==0&&dt(e,Q)==1&&(i==1||D==1)&&(L=2),o=zZ(e,A,n,P,r),o==4&&u1(e,A,P)==-1&&u1(e,n,r)==-1?40+L:o==5&&(e.a[A]==1||e.a[n]==1||e.a[P]==1||e.a[r]==1)?50+L:L;}function VX(t){var e,A,n;return !t.startsWith(g6)||!t.endsWith(d6)||(A=t.indexOf(k0(34),21),A==-1)?null:(n=(Ct(21,A,t.length),t.substr(21,A-21)),e=oA(t,21+n.length+1,t.length-17),at(n,"arrow")?new Tj(e):at(n,"text")?new dR(e):null);}function EX(t){var e,A,n,P,r,i,f,D;for(ut(t,1),f=c(Se,PA,6,t.f,15,1),n=c(F,k,6,t.f,15,1),D=0;D<t.f;D++){for(n[0]=D,P=c(F,k,6,t.f,15,1),P[D]=1,A=0,r=0;A<=r;){for(i=0;i<t.j[n[A]];i++)e=t.i[n[A]][i],P[e]==0&&(P[e]=P[n[A]]+1,n[++r]=e,f[D]+=P[e]-1);++A;}f[D]/=r;}return f;}function SX(t){var e,A,n;for(t.n=c(F,k,6,t.j,15,1),t.k=c(F,k,6,t.j,15,1),t.o=c(F,k,6,t.j,15,1),e=0;e<t.i.f;e++)t.b[e]!=0&&(n=t.b[e]-1,t.a!=null&&(t.k[n]+=t.a[e]),t.c!=null&&(t.o[n]+=t.c[e]));for(A=0;A<t.i.g;A++)t.g[A]&&dt(t.i,A)==2&&(t.n[t.b[z(t.i,0,A)]-1]+=2);}function Hs(){Hs=d1,H4=w.Math.cos(v2),S4=w.Math.sin(v2),V4=w.Math.cos(a6),I4=w.Math.sin(a6),mo=w.Math.cos(AA),ko=w.Math.sin(AA),M4=w.Math.cos(Lo),q4=w.Math.sin(Lo),E4=w.Math.cos(k6),x4=w.Math.sin(k6),w.Math.cos(xC),w.Math.sin(xC);}function qX(t){var e,A,n,P,r;return isNaN(t)?(Kr(),tc):t<-9223372036854776e3?(Kr(),hE):t>=9223372036854776e3?(Kr(),$4):(P=false,t<0&&(P=true,t=-t),n=0,t>=iP&&(n=vt(t/iP),t-=n*iP),A=0,t>=rP&&(A=vt(t/rP),t-=A*rP),e=vt(t),r=S0(e,A,n),P&&WL(r),r);}function L5(t,e){Wr();var A,n,P,r,i;return A=t&Sn,i=(t&PP)>>16,P=(t&AP)>>8,n=t&255,r=vt(1/(1-e)),i==0&&P==0&&n==0?A|r<<16|r<<8|r:(i>0&&i<r&&(i=r),P>0&&P<r&&(P=r),n>0&&n<r&&(n=r),A|w.Math.min(vt(i/e),255)<<16|w.Math.min(vt(P/e),255)<<8|w.Math.min(vt(n/e),255));}function IX(t,e){var A,n,P,r,i,f,D,Q,o;for(D=xn(t.e),Q=N(D.k,e).length,f=N(D.k,e),o=false,P=0;P<Q;P++)if(t.f[f[P]]==0){o=true;break;}if(o){for(A=(180*Q-360)/Q*.01745329238474369,i=N(D.j,e),r=0;r<Q;r++)Sh(t,i[r],f[r==0?Q-1:r-1],f[r],A);if(Q<=4)for(n=0;n<Q;n++)t.f[f[n]]+=Q;}}function VQ(t,e,A,n){this.b=c(N4,e0,48,2,0,1),this.b[0]=t,this.b[1]=e,this.c=c(Ut,ht,6,2,15,1),this.d=c(Ut,ht,6,2,15,1),this.c[0]=ru(this.b[0],A),this.d[0]=iu(this.b[0],A),this.c[1]=ru(this.b[1],n),this.d[1]=iu(this.b[1],n),this.a=c(F,k,6,2,15,1),this.a[0]=1,this.a[1]=1;}function xX(t){Wr();var e,A,n,P;return P=t.a>>16&255,n=t.a>>8&255,A=t.a&255,e=t.a>>24&255,P==0&&n==0&&A==0?new mL(5,5,5,e):(P>0&&P<5&&(P=5),n>0&&n<5&&(n=5),A>0&&A<5&&(A=5),new mL(w.Math.min(vt(P/qf),255),w.Math.min(vt(n/qf),255),w.Math.min(vt(A/qf),255),e));}function Ms(t,e){P9();var A,n,P,r,i,f,D,Q,o;return e.d>t.d&&(f=t,t=e,e=f),e.d<63?fZ(t,e):(i=(t.d&-2)<<4,Q=ET(t,i),o=ET(e,i),n=xs(t,I9(Q,i)),P=xs(e,I9(o,i)),D=Ms(Q,o),A=Ms(n,P),r=Ms(xs(Q,n),xs(P,o)),r=y2(y2(r,D),A),r=I9(r,i),D=I9(D,i<<1),y2(y2(D,r),A));}function D8(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y;for(P=e.a[A],r=e.a[n],o=u1(e,A,n),L=true,y=(ut(e,7),e.p),s=0;s<y.j.a.length&&L;s++)for(f=N(y.k,s),D=0,Q=f.length;D<Q;++D)if(i=f[D],i==o&&e.b[s]==0){L=false;break;}return dt(e,o)==1&&L&&(nL(t.b,P)&&nL(t.b,r)||vB(t.b,P)&&vB(t.b,r))?1:0;}function a9(t,e){J9();var A,n,P,r;if(isNaN(t))return "NaN";if(!isNaN(t)&&!isFinite(t))return "Infinity";if(t==0)return "0";for(P=1,n=1;n<e;n++)P*=10;for(r=P*10,A=0;w.Math.abs(t)+.5<P;)t*=10,--A;for(;w.Math.abs(t)+.5>=r;)t/=10,++A;return Ba(M1(t+(t<0?-0.5:.5)),A,e);}function NX(t){var e,A,n,P,r,i;for(n=0,r=0;r<t.e.length;r++)for(e=t.e[r],A=Ht(t.j,e),i=0;i<A;i++)W(t.j,e,i)>e&&++n;for(t.f=c(F,k,6,n,15,1),t.g=c(F,k,6,t.j.q,15,1),n=0,P=0;P<t.e.length;P++)for(e=t.e[P],A=Ht(t.j,e),t.g[e]=P,i=0;i<A;i++)W(t.j,e,i)>e&&(t.f[n++]=xt(t.j,e,i));}function OX(t){for(var e,A,n,P,r,i;;){for(r=c(Pt,ft,6,t.U+1,16,1),n=-1,A=0;A<t.R.f;A++)dQ(t.R,A)!=0&&(r[t.f[A]]&&n<t.f[A]&&(n=t.f[A]),r[t.f[A]]=true);if(n==-1)break;for(P=0,e=0;e<t.R.f;e++)i=0,t.f[e]==n&&(i=++P),$e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),W1(t.e[e],8,i);t.U=Xn(t);}}function qb(t,e){var A,n,P,r,i;if(t.q==0)return null;for(n=t.J[0].a,r=t.J[0].b,P=t.J[0].a,i=t.J[0].b,A=1;A<t.q;A++)n>t.J[A].a?n=t.J[A].a:P<t.J[A].a&&(P=t.J[A].a),r>t.J[A].b?r=t.J[A].b:i<t.J[A].b&&(i=t.J[A].b);return e?(e.c=n,e.d=r,e.b=P-n,e.a=i-r):e=new QA(n,r,P-n,i-r),e;}function Ib(t,e,A){var n,P,r,i;for(i=1,P=0;P<t.g.q;P++)t.i[3*P]=kt(t.g,P),t.i[3*P+1]=pt(t.g,P),t.i[3*P+2]=vA(t.g,P);if(i=Ca(t,e,A),i==0)for(n=0;n<t.g.q;n++)ve(t.g,n,t.i[3*n]),xe(t.g,n,t.i[3*n+1]),TP(t.g,n,t.i[3*n+2]);for(r=new Zt(t.c);r.a<r.c.a.length;)$t(r),null.vd();return i;}function GX(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(r=false,P=0;P<2;P++)if(A=z(t.g,P,e),o=t.G[A],O(t.H,o)>2){for(s=z(t.g,1-P,e),D=Et,f=0;f<O(t.g,A);f++)n=W(t.g,A,f),n!=s&&D>n&&(D=n);for(y=t.G[s],Q=Et,i=0;i<O(t.H,o);i++)L=W(t.H,o,i),L!=y&&Q>L&&(Q=L);t.G[D]!=Q&&(r=!r);}return r;}function JX(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(Q=new Zt(e);Q.a<Q.c.a.length;)if(D=$t(Q),D.rd()==1){for(f=D.f,L=t,s=0,y=L.length;s<y;++s){if(o=L[s],o==-1)return  false;for(A=false,P=f,r=0,i=P.length;r<i;++r)if(n=P[r],o==n){A=true;break;}if(!A)return  false;}return  true;}return  false;}function zX(t,e,A,n,P){var r,i,f,D,Q,o,L;if(A)return u_(e,n[1],n[2]);for(Q=k1(Pt,[h0,ft],[12,6],16,[2,e.q],2),i=c(F,k,6,2,15,1),f=0;f<2;f++)i[f]=qQ(e,n[1+f],P[f],Q[f],null,null);for(L=i[0]<i[1]?0:1,o=c(F,k,6,i[L],15,1),D=0,r=0;r<e.q;r++)Q[L][r]&&(o[D++]=r);return t.a=L==1,o;}function xb(t,e){var A,n,P,r,i,f;for(P=0;P<t.b;P++)if(t.e[P][e]&&t.c[P]!=-3){for(n=0;n<=t.j.g.length;n++)if(n!=e&&t.e[P][n])for(t.e[P][e]=false,f=P<t.a?P:P<t.b?P-t.a:-1,i=Px(t,P<t.a?1:P<t.b?2:0),r=0;r<t.j.g[e].length;r++)A=t.j.g[e][r],PT(t.j,A)&&t.j.j[A]==f&&(t.j.j[A]=i<<24>>24);}}function lf(t){var e,A,n,P,r;for(r=new V0(),P=t.length,n=0;n<P;n++)switch(e=Uk(t,n,t.length),A=e&c1,e){case 38:r.a+="&amp;";break;case 60:r.a+="&lt;";break;case 62:r.a+="&gt;";break;case 34:r.a+="&quot;";break;case 39:r.a+="&apos;";break;default:r.a+=String.fromCharCode(A);}return r.a;}function YX(t){var e,A,n,P;for(e=0;e<t.k.f;e++)if(K(t.k,e)==7&&b1(t.k,e)==0&&N1(t.k,e)>3&&$1(t.k,e)>0){for(P=0;P<O(t.k,e);P++)if(A=W(t.k,e,P),n=xt(t.k,e,P),dt(t.k,n)>1&&tA(t.k,A)){l1(t.k,n)==4?w0(t.k,n,2):w0(t.k,n,1),E0(t.k,e,b1(t.k,e)+1),E0(t.k,A,b1(t.k,A)-1),XA(t.k,e,-1);break;}}}function KX(t,e){var A,n,P,r,i,f;for(r=t.indexOf(e+"=(")+e.length+2,i=t.indexOf(k0(41),r),P=Pe(t,r),A=Q1((Ct(r,P,t.length),t.substr(r,P-r)),P1,Et),f=c(F,k,6,A,15,1),n=0;n<A;n++)r=lA(t,P),P=Pe(t,r),(P==-1||P>i)&&(P=i),f[n]=Q1((Ct(r,P,t.length),t.substr(r,P-r)),P1,Et);return f;}function Nb(t,e){var A;if(A=0,e<t.g&&(E8(t.p,e)||t.H[e]==8)||t.H[e]==8)A|=8;else switch(dt(t,e)){case 0:A|=16;break;case 1:A|=1;break;case 2:A|=2;break;case 3:A|=4;break;case 4:A|=32;break;case 5:A|=64;}return (t.F[e]&64)!=0?A|=256:t.K||(A|=128),e<t.g&&je(t.p,e)?A|=qA:t.K||(A|=rP),A;}function Ob(t,e,A,n,P){var r;if(u2(e,A,n,P,3))return 60;if(u2(e,A,n,P,4))return 90;switch(r=e.a[n],Fn(t.a.b,r)){case 2:if(e.C[n]==8)return 105;if(OD(t.a.b,r))return 180;break;case 3:if(e8(t.a.b,r)==3&&MA(t.a.b,r)==0)return e.C[n]==7?107:92;break;case 4:return 109.45;}return 120;}function XX(t,e,A){var n,P,r,i,f,D,Q,o;for(n=false,D=0;D<e.j.a.length;D++)if(N(e.k,D).length==6){for(f=true,Q=N(e.j,D),o=N(e.k,D),r=0;r<6;r++)if(!Lf(t,Q[r],false)||!t.e[o[r]]){f=false;break;}if(f){if(A)for(i=0;i<6;i++)Lf(t,Q[i],true);for(P=0;P<6;P+=2)t2(t,o[P]);n=true;break;}}return n;}function W1(t,e,A){t.b==0&&(++t.c,t.b=63),t.b==63?(t.d[t.c]=Y(t.d[t.c],A),t.b-=e):t.b>=e?(t.d[t.c]=j1(t.d[t.c],e),t.d[t.c]=Y(t.d[t.c],A),t.b-=e):(t.d[t.c]=j1(t.d[t.c],t.b),t.d[t.c]=Y(t.d[t.c],q0(A,e-t.b)),e-=t.b,++t.c,t.b=63-e,t.d[t.c]=Y(t.d[t.c],V(A,(1<<e)-1)));}function Gb(t,e,A,n){var P,r,i,f;if(n==1&&!th(t,e)){if(O(t.b,e)==3)return  -1;if(O(t.b,e)==3)return P=xm(t,e,A),R0(t.b,P[0])==R0(t.b,P[1])?P[2]:R0(t.b,P[0])==R0(t.b,P[2])?P[1]:P[0];}for(i=-1,f=-1,r=0;r<O(t.b,e);r++)P=W(t.b,e,r),P!=A&&i<R0(t.b,P)&&(i=R0(t.b,P),f=P);return f;}function Jb(t){var e,A,n,P,r,i,f,D;for(t.c=0,A=new f1(),P=1;P<t.e.length;P++)for(r=0;r<P;r++)f=w.Math.abs(t.a[P]-t.a[r]),D=w.Math.abs(t.b[P]-t.b[r]),n=w.Math.sqrt(f*f+D*D),n<.8&&(e=c(F,k,6,2,15,1),e[0]=t.e[P],e[1]=t.e[r],A.a.push(e)),i=1-w.Math.min(n,1),t.c+=i*i;return A;}function ZX(t){var e;return e=new fD(),mt(e.a,new Ze("The polar surface area prediction is based on an atom-type based",2)),mt(e.a,new Ze("increment system, published by P. Ertl, B. Rohde, P. Selzer",2)),mt(e.a,new Ze("in J. Med. Chem. 2000, 43, 3714-3717",2)),mt(e.a,new Ze(t4,2)),cJ(t,e),e;}function WX(t){var e,A,n,P,r,i,f;for(f=t.T&248,ut(t,1),i=c(F,k,6,t.f,15,1),A=0;A<t.f;A++)i[A]=It(t,A);for(n=0;n<i.length;n++)if(i[n]!=0)for(r=0;r<i[n];r++)O0(t,n,Z9(t,1),1);for(ut(t,1),P=.8*cP(t,t.q,t.r,(J1(),wn)),e=0;e<i.length;e++)i[e]!=0&&Q$(t,e,i[e],P);(f&8)!=0&&(t.T|=248&(8|f));}function zb(t){var e,A,n,P;for(P=false,A=0;A<t.q;A++)gt(V(t.B[A],re),0)&&(t.C[A]=-1,P=true);for(P&&ni(t),t.v!=null&&(t.v=null,P=true),e=0;e<t.q;e++)gt(t.B[e],0)&&(t.B[e]=0,P=true);for(n=0;n<t.r;n++)t.G[n]!=0&&(t.G[n]=0,P=true),t.H[n]==8&&(t.H[n]=1,P=true);return P&&(t.T=0),P;}function _X(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(i=c(F,k,6,P,15,1),r=0;r<t.f.q;r++){for(D=0;D<Ht(t.f,r);D++){for(s=A[W(t.f,r,D)],Q=0;Q<D&&!(s<i[Q]);Q++);for(o=D;o>Q;o--)i[o]=i[o-1];i[Q]=s;}for(L=Ht(t.f,r),$e(e[r],r),W1(e[r],n,A[r]),W1(e[r],(P-L)*(n+1),0),f=0;f<L;f++)W1(e[r],n+1,i[f]);}}function Yb(t,e){var A,n;for(this.b=c(N4,e0,48,2,0,1),this.b[0]=t,this.b[1]=e,this.c=c(Ut,ht,6,2,15,1),this.d=c(Ut,ht,6,2,15,1),this.a=c(F,k,6,2,15,1),A=0;A<2;A++){for(n=0;n<this.b[A].e.length;n++)this.c[A]+=ru(this.b[A],n),this.d[A]+=iu(this.b[A],n);this.a[A]=this.b[A].e.length;}}function $X(t,e){var A,n,P,r;this.a=new U3((n=my,n)),ut(t,15),r=(z1(),$A),this.b=e,P=t.P!=null?t.P:"",J(this.b,P+r),J(this.b,"Actelion Java MolfileCreator 2.0"+r+r),J(this.b,"  0  0  0  0  0  0              0 V3000"+r),this.c=1,A=mz(t),A&&(this.c=dX(t)),cp(this,t,A),J(this.b,D9+r);}function aX(t,e){var A,n,P;if(A=z(t.R,0,e),A>=t.R.f)return  false;if(t.db[A]==1||t.db[A]==2)return  true;if(t.db[A]==3)return  false;if(n=os(t.R,A),n!=-1)return t.o[n]==1||t.o[n]==2;for(P=0;P<O(t.R,A);P++)if(pA(t.R,A,P)==2&&(t.db[W(t.R,A,P)]==1||t.db[W(t.R,A,P)]==2))return  true;return  false;}function s5(t,e,A,n,P){var r,i,f,D,Q;for(t.K=t.K|e.K,i=c(F,k,6,e.q,15,1),D=a0(t,1),Q=a0(t,2),r=0;r<A;r++)(P||n0(V(e.B[r],re),0))&&(i[r]=Vn(e,t,r,D,Q));for(f=0;f<n;f++)(P||!oe(e,e.D[0][f])&&!oe(e,e.D[1][f]))&&tr(e,t,f,D,Q,i[e.D[0][f]],i[e.D[1][f]],false);return t.L=t.L&&e.L,t.I=0,t.T=0,i;}function tZ(t,e,A){var n,P;if(e<3||(n=e-1,(t[n]==43||t[n]==45)&&--n,!Kn(t[n]&c1))||(--n,t[n]!=68&&t[n]!=82&&t[n]!=88&&t[n]!=122))return  false;for(A[0]=0;n>0&&dB(t[n-1]);)--n,++A[0];for(P=e+1;dB(t[n]);){if(t.length<=P||t[n]!==t[P])return  false;++n,++P;}return  true;}function eZ(t,e){var A,n,P,r,i,f,D,Q,o;return Q=t.e,Q==0?(be(),y9):(n=t.d,A=t.a,n==1?(P=on(V(A[0],h1),V(e,h1)),D=Jt(P),i=Jt(DA(P,32)),i==0?new kA(Q,D):new Ue(Q,2,B(d(F,1),k,6,15,[D,i]))):(f=n+1,r=c(F,k,6,f,15,1),r[n]=Qs(r,A,n,e),o=new Ue(Q,f,r),bn(o),o));}function AZ(t,e){var A,n,P,r,i,f;if(e.startsWith("M  CHG")&&(r=Q1(B1((Ct(6,9,e.length),e.substr(6,3))),P1,Et),r>0))for(A=10,f=14,i=1;i<=r;++i,A+=8,f+=8)n=Q1(B1((Ct(A,A+3,e.length),e.substr(A,A+3-A))),P1,Et)-1,P=Q1(B1((Ct(f,f+3,e.length),e.substr(f,f+3-f))),P1,Et),E0(t.j,n,P);}function nZ(t,e){var A,n,P,r,i,f;if(e.startsWith("M  ISO")&&(P=Q1(B1((Ct(6,9,e.length),e.substr(6,3))),P1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)n=Q1(B1((Ct(A,A+3,e.length),e.substr(A,A+3-A))),P1,Et)-1,i=Q1(B1((Ct(f,f+3,e.length),e.substr(f,f+3-f))),P1,Et),br(t.j,n,i);}function Kb(t,e){var A,n,P,r,i;if(n=e>>5,e&=31,n>=t.d)return t.e<0?(be(),fc):(be(),y9);if(r=t.d-n,P=c(F,k,6,r+1,15,1),_k(P,r,t.a,n,e),t.e<0){for(A=0;A<n&&t.a[A]==0;A++);if(A<n||e>0&&t.a[A]<<32-e!=0){for(A=0;A<r&&P[A]==-1;A++)P[A]=0;A==r&&++r,++P[A];}}return i=new Ue(t.e,r,P),bn(i),i;}function PZ(t,e){var A,n,P,r,i,f,D;for(P=c(Pt,ft,6,t.L.q,16,1),n=0;n<t.L.r;n++)H3(t.L,n)&&(P[z(t.L,0,n)]=true,P[z(t.L,1,n)]=true);for(i=new eD(),A=0;A<t.L.q;A++)r=oe(t.L,A)?e*.47:P[A]?e*.38:0,r!=0&&(f=X1(t.R,kt(t.L,A)),D=K1(t.R,pt(t.L,A)),i.c=f-r,i.d=D-r,i.b=r*2,i.a=r*2,t.v=BQ(t.v,i));}function rZ(t){var e,A,n,P;for(P=new V0(),A=0;A<t.g.a.length;A++)A!=0&&(P.a+="."),J(P,Ru(new lD(N(t.g,A),2)));for(P.a+=">",n=0;n<t.a.a.length;n++)n!=0&&(P.a+="."),J(P,Ru(new m7(N(t.a,n))));for(P.a+=">",e=0;e<t.f.a.length;e++)e!=0&&(P.a+="."),J(P,Ru(new lD(N(t.f,e),2)));return P.a;}function Xb(t,e){kk(),this.n=t,this.a=e,this.i=u6(this.a._,i4),NG(this.i),this.g=u6(this.a._,i4),yz(this.g),this.o=2*B8+sF(xU(this.i)/4|0),this.e=2*B8+sF(NU(this.i)/4|0),this.c=u6(this.a._,TV),this.j=(Be==-1&&(Be=globalThis.devicePixelRatio||1),4/Be),this.b=5,this.k=-1,this.f=-1,this.a.db=this;}function iZ(t,e,A,n,P){if(!_j(t,e,P))return  false;if(t.s==null)t.t=new NQ(e),ao(t.t,t.v),w5(t.t,t.o,-1);else {switch(t.b=new Oi(new tD()),A){case 2:t.B=new ML(t,false,t.o);break;case 3:t.B=new ML(t,true,t.o);break;case 4:t.B=new rT(t,t.o);break;case 1:t.B=new db(t);}Ad(t.B,n);}return  true;}function u2(t,e,A,n,P){var r,i,f,D,Q,o,L,s;if(s=(ut(t,7),t.p),Q=new DD(),aP(Q,m1(e)),aP(Q,m1(A)),aP(Q,m1(n)),u1(t,e,A)>=0&&u1(t,A,n)>=0){for(o=0;o<s.j.a.length;o++)if(N(s.k,o).length==P){for(L=new DD(),i=N(s.j,o),f=0,D=i.length;f<D;++f)r=i[f],aP(L,m1(r));if(nQ(L,Q))return  true;}}return  false;}function Zb(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(ut(t,1),r=0;r<t.q;r++)e[r]=-1;for(Q=0,P=0;P<t.q;P++)if(e[P]==-1){for(e[P]=Q,o=c(F,k,6,t.q,15,1),o[0]=P,D=0,L=0;D<=L;){for(f=n?t.i[o[D]].length:t.e[o[D]],s=0;s<f;s++)i=t.i[o[D]][s],e[i]==-1&&!A[t.k[o[D]][s]]&&(o[++L]=i,e[i]=Q);++D;}++Q;}return Q;}function Wb(t){var e,A,n;if(t.K)for(ut(t,7),e=0;e<t.g;e++)n=_r(t.G[e]&127),(e<t.g&&(E8(t.p,e)||t.H[e]==8))&(t.G[e]&8)!=0&&(t.G[e]&=-9,--n),n!=0&&(A=t.H[e]&127,A==1?t.G[e]|=1:A==2?t.G[e]|=2:A==4?t.G[e]|=4:A==32?t.G[e]|=32:A==64?t.G[e]|=64:A==16?t.G[e]|=16:A==8&&(t.G[e]|=8));}function y5(t,e,A,n,P,r,i,f,D){var Q,o,L,s,y;return s=n<Fo.length&&Fo[n]?w.Math.min(3,r):0,y=P<Fo.length&&Fo[P]?w.Math.min(3,i):0,f=w.Math.min(7,f),D=w.Math.min(7,D),Q=f+(s<<3)+(w.Math.min(127,n)<<5),o=D+(y<<3)+(w.Math.min(127,P)<<5),L=A?8:e?8+t:t,(L<<24)+(Q<o?(Q<<12)+o:(o<<12)+Q);}function fZ(t,e){var A,n,P,r,i,f,D,Q,o,L,s;return n=t.d,r=e.d,f=n+r,D=t.e!=e.e?-1:1,f==2?(o=on(V(t.a[0],h1),V(e.a[0],h1)),s=Jt(o),L=Jt(DA(o,32)),L==0?new kA(D,s):new Ue(D,2,B(d(F,1),k,6,15,[s,L]))):(A=t.a,P=e.a,i=c(F,k,6,f,15,1),LJ(A,n,P,r,i),Q=new Ue(D,f,i),bn(Q),Q);}function _b(t,e){var A,n,P,r,i,f;if(dt(t,e)!=1)return  false;for(r=0;r<2;r++){for(A=t.D[r][e],f=t.D[1-r][e];t.o[A]==2&&t.j[A]==2&&t.C[A]<10;)for(i=0;i<2;i++)if(n=t.i[A][i],n!=f){if(t.j[n]==1||(P=t.k[A][i],dt(t,P)==1&&P<e))return  true;f=A,A=n;break;}if(t.j[A]==1)return  true;}return  false;}function $b(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y;for(y=c(Pt,ft,6,n.length,16,1),f=t,Q=0,L=f.length;Q<L;++Q)if(r=f[Q],e[r]==0){if(n[A[r]]||y[A[r]])return  false;y[A[r]]=true;}for(s=-1,i=t,D=0,o=i.length;D<o;++D)if(r=i[D],e[r]==0){if(s==-1)s=P[r];else if(P[r]!=s)return  false;}return  true;}function ab(t,e,A,n){var P,r;if(e){if(P=t.a.Rb(A.c,e.c),P==0)return n.d=fd(e,A.d),n.b=true,e;r=P<0?0:1,e.a[r]=ab(t,e.a[r],A,n),zP(e.a[r])&&(zP(e.a[1-r])?(e.b=true,e.a[0].b=false,e.a[1].b=false):zP(e.a[r].a[r])?e=Wu(e,1-r):zP(e.a[r].a[1-r])&&(e=NB(e,1-r)));}else return A;return e;}function tR(t,e,A,n,P){var r,i,f;return r=A==-1?w.Math.abs(P[e].a-P[t.B[0]].a)/8:w.Math.abs(P[e].a-P[A].a),n<r&&(n=r),i=A==-1?w.Math.abs(P[e].b-P[t.B[0]].b)/8:w.Math.abs(P[e].b-P[A].b),n<i&&(n=i),t.jb&&(f=A==-1?w.Math.abs(P[e].c-P[t.B[0]].c)/8:w.Math.abs(P[e].c-P[A].c),n<f&&(n=f)),n;}function eR(t,e,A,n,P){var r,i,f,D,Q,o;if(e==A)return 0;for(t.$b(1),D=c(F,k,6,t.q,15,1),f=c(F,k,6,t.q,15,1),f[0]=e,D[e]=1,i=0,Q=0;i<=Q&&D[f[i]]<=n;){for(o=0;o<t.e[f[i]];o++){if(r=t.i[f[i]][o],r==A)return D[f[i]];D[r]==0&&(P==null||P.length<=r||!P[r])&&(f[++Q]=r,D[r]=D[f[i]]+1);}++i;}return  -1;}function DZ(t,e,A){var n,P,r,i,f;return r=WJ(e,A),r==-1?-1:(P=(n=Pe(e,r+1),n==-1?e.length:n),i=(Ct(A,r,e.length),e.substr(A,r-A)),f=(Ct(r+1,P,e.length),e.substr(r+1,P-(r+1))),(f.startsWith("(")&&f.endsWith(")")||f.startsWith('"')&&f.endsWith('"'))&&(f=oA(f,1,f.length-1)),Ye(t,i,f),lA(e,P));}function eA(t,e){var A;return L1(e),A=2-t.e,A==0?t:A>0?A<wi.length&&t.a+gl[vt(A)]<54?new W3(t.f*wi[vt(A)]):new jD(GN((!t.c&&(t.c=mP(M1(t.f))),t.c),vt(A)),2):t.a<54&&-A<wi.length?$Y(t.f,wi[vt(-A)],e):T$((!t.c&&(t.c=mP(M1(t.f))),t.c),Pi(-A),e);}function l5(t,e){lU();var A,n,P,r,i;for(P=0;P<t.q;P++)for(i=Yn(t),X0(i,P,C4),ut(i,15),n=0;n<i.f;n++)(i.u[n]&Tn)!=0&&CQ(i,n)==-1&&(r=(ut(i,7),i.o[n]==2&&i.j[n]==2?rb(i,n):Ns(i,n,false)),r!=-1&&(t.H[r]=257,t.T=0,t.D[1][r]==n&&(A=t.D[0][r],t.D[0][r]=n,t.T=0,t.D[1][r]=A,t.T=0),Ve(t,n,e,0)));}function uZ(t,e,A,n,P,r){i8();var i,f,D,Q,o,L,s,y,l,T,h;for(s=t.o,i=c(Pt,ft,6,s.q,16,1),Q=c(F,k,6,s.q,15,1),Q[0]=e,i[e]=true,l=A,T=0,h=l.length;T<h;++T)y=l[T],i[y]=true;for(hf(t,e,n,P,r),D=0,o=0;D<=o;){for(L=0;L<s.e[Q[D]];L++)f=s.i[Q[D]][L],i[f]||(i[f]=true,Q[++o]=f,hf(t,f,n,P,r));++D;}}function QZ(t){var e,A,n,P;if(t.g.K)for(e=0;e<t.g.r;e++)n=Ae(t.g,e),(n&127)!=0&&(A=-1,P=0,(n&16)!=0&&(A=16,++P),(n&64)!=0&&(A=64,++P),(n&32)!=0&&(A=32,++P),(n&4)!=0&&(A=4,++P),(n&2)!=0&&(A=2,++P),(n&8)!=0&&(A=8,++P),(n&1)!=0&&(A=1,++P),A!=-1&&(w0(t.g,e,A),P==1&&Je(t.g,e,127,false)));}function oZ(t,e,A){var n;switch(n=A.length<45?0:M9(B1((Ct(42,45,A.length),A.substr(42,3)))),n){case 0:break;case 1:T1(t.j,e,768,true);break;case 2:T1(t.j,e,128,true);break;case 3:T1(t.j,e,384,true);break;default:T1(t.j,e,896,true);}A.length>=48&&(Gt(47,A.length),A.charCodeAt(47)==49)&&T1(t.j,e,de,true);}function AR(t,e,A,n,P){var r,i,f,D,Q,o;if(ut(t,7),!((t.u[e]&hn)==0||A&&!(e<t.f&&r0(t.p,e))))for(D=c(F,k,6,t.f,15,1),D[0]=e,n[e]=true,f=0,Q=0;f<=Q;){for(o=0;o<t.j[D[f]];o++)i=t.k[D[f]][o],!P[i]&&(t.F[i]&64)!=0&&(!A||i<t.g&&je(t.p,i))&&(P[i]=true,r=t.i[D[f]][o],n[r]||(n[r]=true,D[++Q]=r));++f;}}function Tf(t,e,A,n,P,r){var i,f,D,Q,o,L;for(t.a[A]=e<<16>>16,t.c[A]=t.c[A]+t.c[n]<<16>>16,t.d[A][0]=P<<16>>16,t.d[A][1]=r<<16>>16,L=t.a.length-1,D=c(zt,_t,6,L,15,1),Q=c(zt,_t,6,L,15,1),o=c(zt,ee,16,L,0,2),f=0,i=0;i<t.a.length;i++)i!=n&&(D[f]=t.a[i],Q[f]=t.c[i],o[f]=t.d[i],++f);t.a=D,t.c=Q,t.d=o;}function A9(t){var e;switch(e=-1,t.w){case 18:e=9;break;case 2:t.t!=-1&&P0(t.V,t.t)||t.u!=-1&&FP(t.V,t.u)?e=t.W?4:t.Z?3:2:t.t!=-1||t.u!=-1?e=11:t.v?e=t.W?4:t.Z&&!Xt(t.v,62)?3:2:e=t.Z?t.d?8:6:t.d?7:5;break;case 4:e=1;break;case 22:e=0;break;case 21:e=12;break;default:e=11;}t.s!=e&&(t.s=e,Kd(t._,e));}function hf(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y;L=n.a,s=n.b,y=n.c,r=w.Math.cos(P),Q=w.Math.sin(P),o=1-r,i=t.k[e].a-A.a,f=t.k[e].b-A.b,D=t.k[e].c-A.c,AU(t,e,A.a+(o*L*L+r)*i+(o*L*s+Q*y)*f+(o*L*y-Q*s)*D),nU(t,e,A.b+(o*L*s-Q*y)*i+(o*s*s+r)*f+(o*s*y+Q*L)*D),PU(t,e,A.c+(o*L*y+Q*s)*i+(o*y*s-Q*L)*f+(o*y*y+r)*D);}function UZ(t,e){var A,n,P,r,i,f,D,Q;for(Q=new f1(),A=0;A<e.q;A++)if(n=e.a[A],!(e.e[A]<=1&&OD(t.b,n)))for(r=0;r<e.e[A];r++)for(f=e.i[A][r],i=0;i<e.e[A];i++)D=e.i[A][i],!(f>D)&&VJ(t,e,f,A,D)&&(P=new Fk(t,e,f,A,D),(w.Math.abs(P.d)>so||w.Math.abs(P.e)>so)&&Q.a.push(P));return Q;}function LZ(t,e,A,n,P){var r,i,f,D,Q,o,L;switch(r=e.a[A],i=e.a[P],Q=D8(t,e,A,n),L=D8(t,e,n,P),D=r<=i?Q:L,o=r<i?L:Q,f=lm(t,e,A,n,P),f){case 1:return D>0||D==o?1:2;case 2:return 3;case 3:return 5;case 4:return 4;case 5:return D>0||D==o?6:7;case 6:return 8;case 7:return D>0||D==o?9:10;case 8:return 11;}return 0;}function sZ(t,e){var A,n,P;if(t.c)return 3;for(P=new Zt(t.e);P.a<P.c.a.length;)n=$t(P),n.a!=fo&&n.a!=Et&&(n.a=e[n.a]);switch(A=false,t.e.a.length){case 2:if(N(t.e,0).a>=fo||N(t.e,1).a>=fo)return 3;A=$z(t,e);break;case 3:mt(t.e,new K3(t,Et,t.b));case 4:A=Rz(t);break;default:return 3;}return t.d^A?1:2;}function nR(t,e,A){var n,P;if(dt(t,e)!=1)return  false;if((t.u[A]&3)!=0)return  true;for(P=0;P<t.r;P++)if(P!=e&&t.H[P]==2&&(t.D[0][P]==A&&(t.u[t.D[1][P]]&3)!=0||t.D[1][P]==A&&(t.u[t.D[0][P]]&3)!=0))return  true;for(n=0;n<t.r;n++)if(n!=e&&t.H[n]==1&&(t.D[0][n]==A||t.D[1][n]==A)&&(t.F[n]&3)!=0)return  true;return  false;}function yZ(t){var e,A,n,P;for(n=0;n<t.i.r;n++)for(P=0;P<2;P++)e=z(t.i,P,n),A=z(t.i,1-P,n),K(t.i,e)==1&&le(t.i,e)>1&&K(t.i,A)>1&&t.b[A]!=0&&(le(t.i,e)==2?(t.a==null&&(t.a=c(F,k,6,t.i.q,15,1)),++t.a[A]):(t.c==null&&(t.c=c(F,k,6,t.i.q,15,1)),++t.c[A]),Zw(t.i,e));(t.a!=null||t.c!=null)&&ni(t.i);}function lZ(t){var e,A,n,P,r,i,f,D,Q;if(t.b){for(e=c(F,k,6,t.F.a.length,15,1),n=0;n<e.length;n++)for(e[n]=n,r=N(t.a,n),i=0,f=r.length;i<f;++i)P=r[i],P&&(e[n]+=u0);for(e.sort(me(D0.prototype.gd,D0,[])),Q=new f1(),D=new f1(),A=0;A<e.length;A++)mt(Q,N(t.F,e[A]&c1)),mt(D,N(t.a,e[A]&c1));t.F=Q,t.a=D;}}function TZ(t){return t.t!=-1?(gQ(t.V,t.t),t.t=-1,t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)),true):t.u!=-1?(Kh(t.V,t.u),t.u=-1,t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)),true):t.v&&!t.v.j?(X8(t.I,t.v),t.v=null,t.eb=w.Math.max(t.eb,1),e1(t.k),true):false;}function hZ(t,e){var A,n,P,r;for(P=2+2*w.Math.sqrt(t.d.q),n=0;n<t.d.q;n++)Ht(t.d,n)!=1&&(AU(e,n,P*Rn(t.f)-P/2),nU(e,n,P*Rn(t.f)-P/2),PU(e,n,P*Rn(t.f)-P/2));for(A=0;A<t.d.q;A++)Ht(t.d,A)==1&&(r=W(t.d,A,0),AU(e,A,e.k[r].a+4*Rn(t.f)-2),nU(e,A,e.k[r].b+4*Rn(t.f)-2),PU(e,A,e.k[r].c+4*Rn(t.f)-2));CU(e);}function cZ(t,e,A){var n,P,r,i;if(n=A[t.a],P=A[t.b],t.i==(t9(),sl))return O0(e,n,P,t.g),true;if(r=u1(e,n,P),t.i==Ul)return w0(e,r,t.g),true;if(t.i==Ll){if(i=dt(e,r)+t.f,i>=0&&i<=3)return w0(e,r,(J1(),i==0?16:i==1?1:i==2?386:i==3?4:i==4?32:64)),true;}else if(t.i==yl)return e.H[r]=512,true;return  false;}function T5(t,e,A,n){var P;switch(P=A/2,n&F1){case F1:if(e){t.w.a=e.c+e.b/2,t.w.b=e.d+e.a-P;break;}case 0:t.w.a=t.v.c+t.v.b/2,t.w.b=t.v.d+t.v.a+P,e&&t.w.b>e.d+e.a-P&&(t.w.b=e.d+e.a-P);break;case y8:if(e){t.w.a=e.c+e.b/2,t.w.b=e.d+P;break;}case l8:t.w.a=t.v.c+t.v.b/2,t.w.b=t.v.d-P,e&&t.w.b<e.d+P&&(t.w.b=e.d+P);}}function PR(t,e){var A,n;for(this.k=c(U9,or,26,t.g.a.length+t.f.a.length,0,1),n=0;n<t.g.a.length+t.f.a.length;n++)this.k[n]=n<t.g.a.length?N(t.g,n):N(t.f,n-t.g.a.length);for(this.n=t.g.a.length,this.a=c(U9,or,26,t.a.a.length,0,1),A=0;A<t.a.a.length;A++)this.a[A]=N(t.a,A);this.o=false,this.c=1,this.g=e,Fs(this);}function wZ(t,e){var A,n,P,r,i,f,D,Q;for(Q=xn(t.H),f=0;f<Q.j.a.length;f++)if(tf(Q,f,e)){for(D=c(F,k,6,2,15,1),P=0;P<2;P++)for(D[P]=Et,n=z(t.H,P,e),r=0;r<O(t.H,n);r++)A=W(t.H,n,r),A!=z(t.H,1-P,e)&&D[P]>A&&(D[P]=A);return i=0,yA(Q,f,D[0])&&++i,yA(Q,f,D[1])&&++i,i==2?2:i==1?1:2;}return 0;}function gZ(t,e){var A,n,P,r,i,f;if(e.startsWith("M  RGP")&&(P=Q1(B1((Ct(6,9,e.length),e.substr(6,3))),P1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)n=Q1(B1((Ct(A,A+3,e.length),e.substr(A,A+3-A))),P1,Et)-1,i=Q1(B1((Ct(f,f+3,e.length),e.substr(f,f+3-f))),P1,Et),i>=1&&i<=20&&X0(t.j,n,SA("R"+i,2));}function rR(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(L=A[n],i=A[n+1]-L,s=c(htt,e0,175,i,0,1),D=0;D<i;D++)s[D]=new M0(),s[D].c=t[D+L],s[D].b=e[D+L],s[D].a=D+L;for(P=new N0(),o=n;o>1;o--){for(Q=0;Q<i;Q++)s[Q].c+=t[s[Q].b]<<16,s[Q].b=e[s[Q].b];for(Xi(s,0,s.length,P),r=1,f=0;f<i;f++)t[s[f].a]=r,f!=i-1&&LB(s[f],s[f+1])!=0&&++r;}}function dZ(t){var e,A,n,P,r,i;if(t.R.f==0){t.N="";return;}for(r=0,n=false,P=false,A=0;A<t.R.f;A++)r<R1(t.R,A)&&(r=R1(t.R,A)),dn(t.R,A)?n=true:P=true;if(r==0){t.N="";return;}for(i=J8(r),Z3(t,true),Ot(t,i,4),Ot(t,n?1:0,1),Ot(t,P?1:0,1),e=0;e<t.R.f;e++)Ot(t,R1(t.R,t.B[e]),i),n&&P&&Ot(t,dn(t.R,t.B[e])?1:0,1);t.N=HL(t);}function h5(t,e,A,n){var P,r,i;for(P=0;P<2;P++)if(r=t.i[A[1]][P],r!=A[0])return r==e||(i=t.k[A[1]][P],A[0]=A[1],A[1]=r,t.j[r]==1)?false:(n!=null&&(t.u[A[0]]&I0)==0&&(t.u[A[1]]&I0)==0&&(n[0]=w.Math.max(n[0],i)),t.j[r]==2&&t.o[r]==2&&t.C[r]<=7?h5(t,e,A,n):true);return  false;}function BZ(t){var e;for(t.S=c(Pt,ft,6,t.R.f,16,1),e=0;e<t.R.f;e++)if(K(t.R,e)==7){if(O(t.R,e)==4){t.S[e]=true;continue;}if(O(t.R,e)==3){if(H9(t.R,e)==3){t.S[e]=true;continue;}if(b1(t.R,e)==1){t.S[e]=true;continue;}if(EP(t.R,e,true))continue;if((t.Q&32)!=0){t.S[e]=true;continue;}if(Ss(t.R,e)){t.S[e]=true;continue;}}}}function Vs(t){var e,A,n,P,r,i;for(P8.call(this),i=t&&t.g?t.g.a.length:0,r=t&&t.f?t.f.a.length:0,e=t&&t.a?t.a.a.length:0,n=0;n<i;n++)mt(this.g,new Jr(N(t.g,n)));for(P=0;P<r;P++)mt(this.f,new Jr(N(t.f,P)));for(A=0;A<e;A++)mt(this.a,new Jr(N(t.a,A)));this.b=new us(t.b),t.e!=null&&(this.e=t.e),this.c=t.c||wQ(t);}function vZ(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(s=0,L=-1,i=0;i<t.j.f;i++){o=N(e.g,s),ut(o,1);do++L==o.f&&(L=0,o=gr(e,++s));while(o.K&&gt(V(o.B[L],re),0));We(o,L,A[i],A[i]<=P);}for(Q=0,D=-1,r=0;r<t.d.f;r++){f=N(e.f,Q),ut(f,1);do++D==f.f&&(D=0,f=T3(e,++Q));while(f.K&&gt(V(f.B[D],re),0));We(f,D,n[r],n[r]<=P);}}function iR(t){var e,A,n,P,r;if(t.l==0&&t.m==0&&t.h==0)return "0";if(t.h==y8&&t.m==0&&t.l==0)return "-9223372036854775808";if(t.h>>19!=0)return "-"+iR(Zr(t));for(A=t,n="";!(A.l==0&&A.m==0&&A.h==0);){if(P=TL(xf),A=N5(A,P,true),e=""+E7(qn),!(A.l==0&&A.m==0&&A.h==0))for(r=9-e.length;r>0;r--)e="0"+e;n=e+n;}return n;}function FZ(t,e){var A,n,P,r;if(!ol)return 0;if(Yf[e].bc(ke(new FA(t)))!=-1)return 3;for(r=new bD(1),A=new JA(),P=0;P<L9[e].a.length;P++)if(f2(new GA(false),A,N(L9[e],P)),Dn(r,t),Ln(r,A),sn(r,1,r.c)>0)return 3;for(n=0;n<s9[e].a.length;n++)if(f2(new GA(false),A,N(s9[e],n)),Dn(r,t),Ln(r,A),sn(r,1,r.c)>0)return 2;return 1;}function Q2(t,e){var A,n,P,r;return r=w.Math.sin(e),A=w.Math.cos(e),n=1-A,P=k1(Ut,[h0,ht],[15,6],15,[3,3],2),P[0][0]=t.a*t.a*n+A,P[1][1]=t.b*t.b*n+A,P[2][2]=t.c*t.c*n+A,P[0][1]=t.a*t.b*n-t.c*r,P[1][2]=t.b*t.c*n-t.a*r,P[2][0]=t.c*t.a*n-t.b*r,P[0][2]=t.a*t.c*n+t.b*r,P[1][0]=t.b*t.a*n+t.c*r,P[2][1]=t.c*t.b*n+t.a*r,P;}function fR(t,e,A){var n;if(O(t.b,e)==2)return 1;if(n=xm(t,e,A),O(t.b,e)==3)return R0(t.b,n[0])==R0(t.b,n[1])?th(t,e)?2:1:th(t,e)?1:0;if(O(t.b,e)==4){if(R0(t.b,n[0])==R0(t.b,n[1])&&R0(t.b,n[0])==R0(t.b,n[2]))return 3;if(R0(t.b,n[0])==R0(t.b,n[1])||R0(t.b,n[0])==R0(t.b,n[2])||R0(t.b,n[1])==R0(t.b,n[2]))return 1;}return 0;}function mZ(t,e){var A,n,P,r,i;return n=V(e,h1),G(t,0)>=0?(r=Cn(t,n),i=z9(t,n)):(A=DA(t,1),P=e>>>1,r=Cn(A,P),i=z9(A,P),i=x1(j1(i,1),V(t,1)),(e&1)!=0&&(G(r,i)<=0?i=l0(i,r):yg(l0(r,i),n)?(i=x1(i,l0(n,r)),r=l0(r,1)):(i=x1(i,l0(j1(n,1),r)),r=l0(r,2)))),Y(j1(i,32),V(r,h1));}function DR(t,e){var A,n,P;for(A=k1(Ut,[h0,ht],[15,6],15,[2,3],2),n=0;n<2;n++)A[n][0]=v9(e,t.f[n])-v9(e,t.f[4]),A[n][1]=F9(e,t.f[n])-F9(e,t.f[4]),A[n][2]=m9(e,t.f[n])-m9(e,t.f[4]);return P=c(Ut,ht,6,3,15,1),P[0]=A[0][1]*A[1][2]-A[0][2]*A[1][1],P[1]=A[0][2]*A[1][0]-A[0][0]*A[1][2],P[2]=A[0][0]*A[1][1]-A[0][1]*A[1][0],P;}function kZ(t){var e,A,n,P;for(t.L=true,t.$=c(E,q,6,t.R.f,15,1),t.i=c(E,q,6,t.R.g,15,1),P=n2(t,true);t.U<t.R.f&&P;){for(e=0;e<t.R.f;e++)$e(t.e[e],e),W1(t.e[e],t.c+4,Y(j1(t.f[e],4),t.db[e]<<2));for(A=0;A<t.R.g;A++)Qe(t.e[z(t.R,0,A)],t.o[A]),Qe(t.e[z(t.R,1,A)],t.o[A]);if(n=Xn(t),t.U==n)break;t.U=n,P=n2(t,true);}}function c5(t,e){var A,n,P,r,i,f;for(ut(t,e?15:1),t.q=t.f,t.r=t.g,f=c(Pt,ft,6,t.f,16,1),P=0;P<t.f;P++)t.e[P]!=t.j[P]&&(A=uf(t,P,false),f[P]=t.e[P]==t.j[P]+1&&jr(t,t.k[P][t.j[P]]),t.e[P]=t.j[P],A!=-1&&(i=uf(t,P,true),A!=i&&(r=((t.u[P]&w8)>>>27)-1,(r==-1||r<A)&&XA(t,P,A))));if(e)for(n=0;n<t.f;n++)f[n]&&ey(t,n);t.T=0;}function bZ(t,e){var A,n;return !Lv(K(t.k,e))||K(t.k,e)==6&&(!Y0(t.k,e)||b1(t.k,e)>0)||(A=Zn(t.k,e)==null||z3(t.k,e)[0]==9?0:z3(t.k,e)[0],n=Ki(t.k,e)-A,n<1)?false:K(t.k,e)==16||K(t.k,e)==34||K(t.k,e)==52?O(t.k,e)==2&&b1(t.k,e)<=0?false:n!=2:true;}function dt(t,e){if(t.K&&(t.G[e]&127)!=0){if((t.G[e]&9)!=0)return 1;if((t.G[e]&2)!=0)return 2;if((t.G[e]&4)!=0)return 3;if((t.G[e]&32)!=0)return 4;if((t.G[e]&64)!=0)return 5;if((t.G[e]&16)!=0)return 0;}switch(t.H[e]&127){case 1:case 8:return 1;case 2:return 2;case 4:return 3;case 32:return 4;case 64:return 5;default:return 0;}}function n9(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(ut(t,1),r=0;r<t.q;r++)e[r]=-1;for(Q=0,P=0;P<t.q;P++)if(e[P]==-1&&(!A||(t.u[P]&I0)!=0)){for(e[P]=Q,o=c(F,k,6,t.q,15,1),o[0]=P,D=0,L=0;D<=L;){for(f=n?t.i[o[D]].length:t.e[o[D]],s=0;s<f;s++)i=t.i[o[D]][s],e[i]==-1&&(!A||(t.u[i]&I0)!=0)&&(o[++L]=i,e[i]=Q);++D;}++Q;}return Q;}function uR(t,e,A){var n,P,r;return r=w.Math.sqrt((t.i[0].a-e)*(t.i[0].a-e)+(t.i[0].b-A)*(t.i[0].b-A)),r<8?1:(P=w.Math.sqrt((t.i[1].a-e)*(t.i[1].a-e)+(t.i[1].b-A)*(t.i[1].b-A)),P<8?2:(n=w.Math.sqrt((t.i[1].a-t.i[0].a)*(t.i[1].a-t.i[0].a)+(t.i[1].b-t.i[0].b)*(t.i[1].b-t.i[0].b)),r+P<n+5?3:0));}function w5(t,e,A){var n,P,r;for(t.f=G(e,0)==0?new WD():new zr(e),t.a=new f1(),new f1(),t.c=c(Ut,ht,6,2,15,1),t.c[0]=Ee,t.c[1]=Ee,t.e=false,P=0,r=0,n=0;n<t.d.g;n++)!_e(t.d,n)&&dt(t.d,n)==1&&Ht(t.d,z(t.d,0,n))>1&&Ht(t.d,z(t.d,1,n))>1&&(fA(t.d,n)?pr(t.d,n)>4&&++r:++P);t.b=A==-1?1<<1+P+(r/2|0):A,IR(t,w.Math.min(8,t.b));}function QR(t){var e,A,n,P,r;for(P=X1(t.R,kt(t.L,0)),A=X1(t.R,kt(t.L,0)),r=K1(t.R,pt(t.L,0)),n=K1(t.R,pt(t.L,0)),e=0;e<t.L.q;e++)P>X1(t.R,kt(t.L,e))&&(P=X1(t.R,kt(t.L,e))),A<X1(t.R,kt(t.L,e))&&(A=X1(t.R,kt(t.L,e))),r>K1(t.R,pt(t.L,e))&&(r=K1(t.R,pt(t.L,e))),n<K1(t.R,pt(t.L,e))&&(n=K1(t.R,pt(t.L,e)));return new QA(P,r,A-P,n-r);}function oR(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T;return r=e.a[A],i=e.a[P],D=D8(t.a,e,A,n),Q=D8(t.a,e,n,P),o=(L=e.a[A],s=e.a[n],y=e.a[P],l=LZ(t.a,e,A,n,P),L>y&&(L=(T=m1(y),m1(y=L),T).a),W9(B(d(F,1),k,6,15,[2,1,3,0]),B(d(F,1),k,6,15,[s,L,y,l]),t)),f=r>i||r==i&&D<Q?1:0,o>=0?j0(t.b[o][4+f]):iX(t.a.i,e,A,n,P);}function UR(){var t,e,A,n,P,r;for(r=new nn(new Bi((A=XD("/resources/druglikenessNoIndex.txt"),c0(),A))),this.a=new f1();P=Y1(r),P!=null;){if(n=P.indexOf(k0(9)),n==-1)throw At(new C1("line without TAB"));t=(Ct(0,n,P.length),P.substr(0,n)),e=oD(se((Gt(n+1,P.length+1),P.substr(n+1)))),mt(this.a,new N7(t,e));}}function LR(t,e){var A,n,P,r,i;if(t.d.q<2)return  true;for(i=new Zt(t.j);i.a<i.c.a.length;)r=$t(i),r.g=true;for(P=0;P<t.k.length;P++)t.k[P]=false;for(hZ(t,e),A=new $g(e),Js(t,e,A,0),n=0;MJ(e)&&n<3&&!(gt(t.n,0)&&(z1(),E1(M1(Date.now()),t.n)))&&Y_(t,e)!=0;n++)Js(t,e,A,2);return Js(t,e,A,3),Js(t,e,A,4),UG(e);}function RZ(t,e,A,n){var P,r,i,f,D,Q;return r=n==e.length-1?0:n+1,f=n==0?e.length-1:n-1,i=r==e.length-1?0:r+1,dt(t.f,A[n])==2&&(P=Ie(t.f,A[n]),P==1||P==2)?(VF(t,e[f],e[n],e[r])^VF(t,e[i],e[r],e[n])&&(P=P==1?2:1),P):WP(t.f,A[n])?(D=zL(xn(t.f),A[f],A[n]),Q=zL(xn(t.f),A[r],A[n]),D!=-1||Q!=-1?D==Q?2:1:2):0;}function jZ(t,e,A,n,P,r){var i,f,D,Q,o,L;for(i=e.a[A],o=B(d(F,1),k,6,15,[e.a[n],e.a[P],e.a[r]]),f=0;f<4;f++){for(L=c(F,k,6,3,15,1),Q=0;Q<3;Q++)L[Q]=t.a.g.a[o[Q]-1][f+1];if(L.sort(me(D0.prototype.gd,D0,[])),D=W9(B(d(F,1),k,6,15,[1,0,2,3]),B(d(F,1),k,6,15,[i,L[0],L[1],L[2]]),t),D>=0)return j0(t.b[D][4]);}return 0;}function pZ(t){ry();var e,A,n,P,r,i,f,D,Q,o;if(t==null||t.length==0)return null;for(i=null,t=ai(t.toLowerCase(),"-"),D=m4,Q=0,o=D.length;Q<o;++Q)for(f=D[Q],r=o8(f[0],";"),A=r,n=0,P=A.length;n<P;++n){if(e=A[n],at(ai(e.toLowerCase(),"-"),t))return e;if(ai(e.toLowerCase(),"-").startsWith(t))if(i==null)i=e;else return "";}return i;}function g5(t,e){var A,n,P,r,i,f,D,Q;if(i=false,$1(t.g,e)==0)for(r=1;r<O(t.g,e);r++)for(f=0;f<r;f++)n=W(t.g,e,r),P=W(t.g,e,f),t.G[n]>t.G[P]^n>P&&(i=!i);else for(r=0;r<O(t.g,e);r++){for(A=W(t.g,e,r),Q=0,D=c(F,k,6,3,15,1),f=0;f<O(t.g,A);f++)D[Q]=W(t.g,A,f),D[Q]!=e&&++Q;Q==2&&t.G[D[0]]>t.G[D[1]]^D[0]>D[1]&&(i=!i);}return i;}function CZ(t){var e,A,n,P,r;for(r=w.Math.max(t.D.f,t.u.f),t.a=J8(r),t.s=2,A=0;A<t.D.f;A++)t.s=w.Math.max(t.s,O(t.D,A)+qi(t.D,A));for(n=0;n<t.u.f;n++)t.s=w.Math.max(t.s,O(t.u,n)+qi(t.u,n));for(P=w.Math.max(2,(62+t.a+t.s*(t.a+5))/63|0),t.b=c(g4,F2,100,r,0,1),e=0;e<r;e++)t.b[e]=new RU(P);t.F=new EA(t.D,1),t.v=new EA(t.u,1);}function d5(t,e){var A,n,P,r,i;for(i=false,n=0;n<t.V.q;n++)if(P0(t.V,n)){i=true;break;}if(r=am(t,i),r){for(G1(t),A=0;A<t.V.q;A++)(!i||P0(t.V,A))&&(e?ve(t.V,A,2*r.a-kt(t.V,A)):xe(t.V,A,2*r.b-pt(t.V,A)));for(P=0;P<t.V.r;P++)(!i||FP(t.V,P))&&(l1(t.V,P)==257?w0(t.V,P,129):l1(t.V,P)==129&&w0(t.V,P,257));t.eb=w.Math.max(t.eb,1),e1(t.k);}}function sR(t){var e,A,n,P,r;for(n=Kj(t);n;){for(r=false,A=0;A<O(t.D,n.b);A++)t.I[W(t.D,n.b,A)]==0&&(r=true);for(P=false,e=0;e<O(t.u,n.a);e++)t.B[W(t.u,n.a,e)]==0&&(P=true);if(r&&P)break;t.I[n.b]=Ny,t.B[n.a]=Ny,n=Kj(t);}if(!n){for(A=0;A<t.I.length;A++)t.I[A]==Ny&&(t.I[A]=0);for(e=0;e<t.B.length;e++)t.B[e]==Ny&&(t.B[e]=0);}return n;}function HZ(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(o=e.p,D=e.n,Q=z0(t,o[2]),L=ar(G8(Q,z0(t,o[1]))),f=Q2(L,D==o[1]?A:-A),P=e.o,r=0,i=P.length;r<i;++r)n=P[r],n!=D&&(s=t.k[n].a-Q.a,y=t.k[n].b-Q.b,l=t.k[n].c-Q.c,AU(t,n,s*f[0][0]+y*f[0][1]+l*f[0][2]+Q.a),nU(t,n,s*f[1][0]+y*f[1][1]+l*f[1][2]+Q.b),PU(t,n,s*f[2][0]+y*f[2][1]+l*f[2][2]+Q.c));}function VP(t,e,A){var n,P,r;if(A!=null&&(A.length==0?A=null:(n=SA(A,321),(n!=0&&n==t.C[e]||at(A,"?"))&&(X0(t,e,n),A=null))),A==null){if(t.t!=null&&t.t[e]!=null)return t.t[e]=null,true;}else if(t.t==null&&(t.t=c(E,c8,10,t.M,0,2)),t.t[e]==null||!at(rn((r=t.t[e],c0(),r)),A))return t.t[e]=KA((P=A,c0(),P)),true;return  false;}function MZ(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(ut(e,1),l=t.k,T=0,h=l.length;T<h;++T)y=l[T],Q=A[y.a],o=A[y.b],L=u1(e,Q,o),L==-1?O0(e,Q,o,y.e):y.e==-1?e.H[L]=512:y.e!=-2&&w0(e,L,y.e);if(f=ni(e),t.a.length!=0)for(ut(e,7),P=t.a,r=0,i=P.length;r<i;++r)n=P[r],D=f==null?A[n]:f[A[n]],s=e.u[D]&3,we(e,D,s==1?2:1,false),ey(e,D);return f;}function VZ(t,e,A){var n,P,r,i,f;if(t.V.K){if(oe(t.V,e)||oe(t.V,A)||(n=HA(t.V,e),P=HA(t.V,A),n==null^P==null))return  false;if(n!=null){if(n.length!=P.length)return  false;for(r=0;r<n.length;r++)if(n[r]!=P[r])return  false;}if(i=gt(V(U0(t.V,e),1),0),f=gt(V(U0(t.V,A),1),0),i!=f)return  false;}return K(t.V,e)==K(t.V,A);}function yR(){yR=d1,NE=B(d(zt,1),_t,6,15,[0,60,120,180,240,300]),IE=B(d(zt,1),_t,6,15,[17,17,17,17,17,17]),xE=B(d(zt,2),ee,16,0,[B(d(zt,1),_t,6,15,[-20,20]),B(d(zt,1),_t,6,15,[40,80]),B(d(zt,1),_t,6,15,[100,140]),B(d(zt,1),_t,6,15,[160,200]),B(d(zt,1),_t,6,15,[220,260]),B(d(zt,1),_t,6,15,[280,320])]);}function B5(t,e){var A,n,P,r;return A=t.D[0][e],n=t.D[1][e],P=tA(t,A),r=tA(t,n),!P&&!r?e<t.g&&je(t.p,e)?mC:O6+dt(t,e)/10:P&&r||P&&$0(t,n)||r&&$0(t,A)?Uo:P&&om(t,n,A)||r&&om(t,A,n)?jy:P&&qF(t,n,A)||r&&qF(t,A,n)?W6:P&&n<t.f&&r0(t.p,n)||r&&A<t.f&&r0(t.p,A)?1.9500000476837158:O6;}function EZ(t){var e,A;for(t=V(t,Pr),A=0;A<(Y5(),Ti).length;A++)if(n0(t,Ti[A]))return KV[A];return e=new vn("R"),gt(V(t,U8),0)&&(e.a+="0"),gt(V(t,rr),0)&&(e.a+="3"),gt(V(t,ir),0)&&(e.a+="4"),gt(V(t,fr),0)&&(e.a+="5"),gt(V(t,Dr),0)&&(e.a+="6"),gt(V(t,ur),0)&&(e.a+="7"),gt(V(t,Rf),0)&&(e.a+="8"),e.a;}function SZ(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(L=vj(t.D),f=vj(t.u),i=c(HE,h0,44,8,0,1),y=vb(t.D,L),Q=vb(t.u,f),o=0;o<=7;o++)for(i[o]=new Oi(new _2()),r=(n=new x8(new q8(new w9(y[o]).a).b),new g9(n));C9(r.a.a);)P=(A=dr(r.a),A.dd()),s=Te(y[o],P),D=Te(Q[o],P),D!=null&&(e=c(F,f0,7,2,0,2),e[0]=s,e[1]=D,Ye(i[o],P,e));return i;}function qZ(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(A=e.a,s=e.i,i=1;i<A.length;i++)if(A[i]!=null){for(f=0;f<i;f++)if(A[i][f]!=0){for(o=t.f[i][f],L=new $F(s,o,A[i][f],t.C),D=false,Q=null,n=_8(t.i,e.d).c,r=new Zt(n);r.a<r.c.a.length;){if(P=$t(r),Lz(P,L)){D=true;break;}Uz(P,L)&&(!Q&&(Q=new f1()),Q.a.push(P));}D||(Q&&es(n,Q),n.a.push(L));}}}function v5(t,e){var A,n,P,r;if(t.o[e]==2&&t.j[e]==2&&t.n[e][0]==2){for(P=0;P<2;P++)if(A=ym(t,e,t.i[e][P]),A!=-1)for(r=0;r<t.j[A];r++)n=t.k[A][r],(t.H[n]==257||t.H[n]==129)&&t.D[0][n]==A&&(t.H[t.k[A][r]]=1);return;}if(t.o[e]==0||t.C[e]>=15)for(P=0;P<t.e[e];P++)n=t.k[e][P],(t.H[n]==257||t.H[n]==129)&&t.D[0][n]==e&&t.D[0][n]==e&&(t.H[n]=1);}function lR(t,e,A){var n,P,r,i,f;if(t.b){for(t.C=c(Pt,ft,6,e.length,16,1),P=new Zt(t.b);P.a<P.c.a.length;)if(n=$t(P),t.f==null||A==-1&&t.f[n.a]==-1&&t.f[n.b]==-1||A!=-1&&(t.f[n.a]==A||t.f[n.b]==A)){if(f=c(F,k,6,n.c+2,15,1),r=s2(t.H,f,t.G[n.a],t.G[n.b],n.c+1,e,null)-1,r<n.d||r>n.c)return  false;for(i=1;i<=r;i++)t.C[f[i]]=true;}}return  true;}function IZ(t){var e,A,n,P,r,i;if(t.L.K){for(i=t.W,Z1(t,-7),e=0;e<t.L.f;e++)oe(t.L,e)&&t.ub(X1(t.R,kt(t.L,e))-i,K1(t.R,pt(t.L,e))-i,2*i);for(t.Ab(2*t.W),r=new s1(),P=0;P<t.L.r;P++)A=z(t.L,0,P),n=z(t.L,1,P),gt(V(V(U0(t.L,A),U0(t.L,n)),re),0)&&(r.a=X1(t.R,kt(t.L,A)),r.c=K1(t.R,pt(t.L,A)),r.b=X1(t.R,kt(t.L,n)),r.d=K1(t.R,pt(t.L,n)),t.qb(r));}}function xZ(t,e){var A,n,P,r,i,f,D,Q,o;for(o=new f1(),A=0;A<e.q;A++)for(i=0;i<e.e[A];i++)for(n=e.i[A][i],f=0;f<e.e[n];f++)if(P=e.i[n][f],A!=P)for(D=0;D<e.e[P];D++)r=e.i[P][D],!(n==r||A==r)&&r>A&&(Q=new Qm(t,e,A,n,P,r),(w.Math.abs(Q.e)>.001||w.Math.abs(Q.f)>.001||w.Math.abs(Q.g)>.001)&&o.a.push(Q));return o;}function TR(t){var e,A,n,P,r,i,f,D,Q;for(Q=0,ut(t,7),n=0;n<t.g;n++)if(dt(t,n)==1&&(t.F[n]&64)==0){for(f=true,i=0;i<2;i++){if(e=t.D[i][n],t.j[e]==1){f=false;break;}if(t.C[e]==7&&!(e<t.f&&r0(t.p,e))){for(A=t.D[1-i][n],D=0;D<t.j[A];D++)if(P=t.i[A][D],r=t.k[A][D],r!=n&&dt(t,r)>1&&!(P<t.f&&r0(t.p,P))&&tA(t,P)){f=false;break;}}}f&&!_b(t,n)&&++Q;}return Q;}function hA(t,e,A,n,P,r){var i,f,D,Q;if(A=w.Math.max(0,A),n=w.Math.min(r.lc(),n),i=(n-A)/2|0,D=A,f=n,r.kc(D,t)>e||r.kc(f-1,t)<e)return  -1;for(;n>=A;){if(i=A+((n-A)/2|0),Q=r.kc(i,t),Q==e){if(P&&i>D&&r.kc(i-1,t)==e)n=i;else if(!P&&i<f-1&&r.kc(i+1,t)==e)A=i;else return i;}else Q>e?n=i:Q<e&&(A=i);if(n-A==1&&r.kc(A,t)<e&&r.kc(n,t)>e)break;}return  -1;}function hR(t,e,A){var n,P,r,i;if(O(t.c,e)==2)return 1;if(n=zJ(t,e,A),O(t.c,e)==3)return R0(t.c,n[0])==R0(t.c,n[1])?$1(t.c,e)==1&&K(t.c,e)<10||Bn(t.c,e)||EP(t.c,e,true)?2:1:$1(t.c,e)==1&&K(t.c,e)<10||Bn(t.c,e)||EP(t.c,e,true)?1:0;if(O(t.c,e)==4){for(P=0;P<n.length;P++)for(i=R0(t.c,n[P]),r=P+1;r<n.length;r++)if(i==R0(t.c,n[r]))return 1;}return 0;}function F5(t,e,A,n){var P,r,i,f,D;for(r=new CP(t.f,e.e.length+A.e.length-n,e.i|A.i),P=0,f=0;f<e.e.length;f++)r.e[P]=e.e[f],r.k[P]=e.k[f],r.a[P]=e.a[f],r.b[P++]=e.b[f];for(i=0;i<A.e.length;i++)D=r8(e,A.e[i]),D==-1?(r.e[P]=A.e[i],r.k[P]=A.k[i],r.a[P]=A.a[i],r.b[P++]=A.b[i]):r.k[D]<A.k[i]&&(r.k[D]=A.k[i],r.a[D]=A.a[i],r.b[D]=A.b[i]);return r;}function m5(t,e,A,n){var P,r,i,f;if(f=new s1(),!(e.a==e.b&&e.c==e.d)){for(f.a=e.a,f.c=e.c,f.b=e.b,f.d=e.d,i=ok(f),P=0;P<t.$.a.length;P++)if(r=N(t.$,P),!(r.c>i.c+i.b||r.d>i.d+i.a||i.c>r.c+r.b||i.d>r.d+r.a)){if(YD(t,f.a,f.c,P)){if(YD(t,f.b,f.d,P))return;qs(t,f,0,P),m5(t,f,A,n);return;}if(YD(t,f.b,f.d,P)){qs(t,f,1,P),m5(t,f,A,n);return;}}dW(t,f,A,n);}}function NZ(t){var e,A,n,P,r,i,f,D,Q;for(D=c(F,k,6,t.j.q,15,1),n=0;n<t.j.r;n++)if(l1(t.j,n)==8)for(i=0;i<2;i++)D[z(t.j,i,n)]=1;for(P=0;P<t.j.r;P++)for(Q=dt(t.j,P),r=0;r<2;r++)D[z(t.j,r,P)]+=Q;for(A=0;A<t.j.r;A++)if(dt(t.j,A)==1){for(r=0;r<2;r++)if(f=z(t.j,1-r,A),$0(t.j,f)&&(e=z(t.j,r,A),tA(t.j,e)&&D[e]>UT(t.j,e))){w0(t.j,A,16);continue;}}}function ut(t,e){var A,n,P,r;if(qj(t,e),(e&~t.T)!=0){for((t.T&15)!=0&&t.q>1&&Ds(t.J[0],t.J[1])&&er(new Y8(0),t),t.c&&(e|=128),A=0;A<t.q;A++)t.u[A]&=-67223560;for(n=0;n<t.g;n++)t.F[n]&=-64;P=0,r=0,(e&32)!=0?(P=32,r=1):(e&64)!=0&&(P=64,r=3),(e&128)!=0&&(P|=128,r|=32),t.d=new EA(t,r),K5(t.d),$x(t.d),kJ(t.d),h_(t)&&(t.d=new EA(t,r)),t.T|=24|P;}}function OZ(t,e,A){var n,P,r,i,f,D,Q;for(f3(t.p),t.o[0]=e,t.p[e]=true,r=0,i=0;r<=i;){for(f=0;f<t.j[t.o[r]].length;f++){if(P=t.j[t.o[r]][f],P==A){for(n=1,D=r;D!=0;)++n,D=t.q[D];for(Q=c(F,k,6,n,15,1),Q[0]=t.k[t.o[r]][f],n=1;r!=0;)Q[n++]=t.n[r],r=t.q[r];return Q;}t.p[P]||(t.p[P]=true,++i,t.o[i]=P,t.n[i]=t.k[t.o[r]][f],t.q[i]=r);}++r;}return null;}function GZ(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T;for(L=e.b-e.a,l=e.d-e.c,D=w.Math.sqrt(L*L+l*l),Q=2*Jt(M1(w.Math.round(D/(4*t.Y)))),s=L/(Q-1),T=l/(Q-1),vr(t.L,u1(t.L,A,n))?(P=-3,r=-3):(P=t.p[A],r=t.p[n]),o=e.a-t.Y/2,y=e.c-t.Y/2,Z1(t,P),f=0;f<(Q/2|0);f++)t.ub(o,y,t.Y),o+=s,y+=T;for(Z1(t,r),i=0;i<(Q/2|0);i++)t.ub(o,y,t.Y),o+=s,y+=T;Z1(t,t.Q);}function JZ(t){for((t.Q&1)!=0&&(t.Q&2)==0&&(t.g=kn(t.f,t.R.f)),(t.Q&q1)==0&&(t.W=c(Pt,ft,6,t.R.f,16,1),t.V=c(Pt,ft,6,t.R.g,16,1),t.U<t.R.f&&(BX(t),(t.Q&q1)==0&&(U2(t),t.P&&D2(t.P,t.f)))),t.g==null&&(t.Q&1)!=0&&(t.Q&2)!=0&&(t.g=kn(t.f,t.R.f));t.U<t.R.f;)ZK(t),(t.Q&q1)==0&&(U2(t),t.P&&D2(t.P,t.f));(t.Q&q1)==0&&(U2(t),Ia(t),D$(t));}function zZ(t,e,A,n,P){var r,i,f,D,Q,o,L,s;if(u1(t,e,A)==-1||u1(t,A,n)==-1||u1(t,n,P)==-1)return 0;if(u1(t,P,e)>=0)return 4;for(L=(ut(t,7),t.p),s=new DD(),aP(s,m1(e)),aP(s,m1(A)),aP(s,m1(n)),aP(s,m1(P)),Q=0;Q<L.j.a.length;Q++)if(N(L.k,Q).length==5){for(o=new DD(),i=N(L.j,Q),f=0,D=i.length;f<D;++f)r=i[f],aP(o,m1(r));if(nQ(o,s))return 5;}return 0;}function YZ(t,e,A){var n,P,r,i,f,D,Q,o,L;for(o=c(Pt,ft,6,A.q,16,1),o[t[0]]=true,i=0,f=0;i<=f&&A.o[t[i]]<2;){for(Q=0;Q<A.j[t[i]];Q++)n=A.i[t[i]][Q],P=A.k[t[i]][Q],e[P]&&(o[n]||(t[++f]=n,o[n]=true),e[P]=false);++i;}for(D=f;D>=0;D--)if(A.C[t[D]]<=8)for(L=0;L<A.e[t[D]];L++)r=A.i[t[D]][L],!o[r]&&A.n[t[D]][L]!=0&&(t[++f]=r,o[r]=true);return f+1;}function KZ(t,e){var A,n,P,r,i,f,D,Q;for(r=t,n=e.i[r][0];e.e[r]!=1&&e.o[r]==2&&(Q=n,n=r,r=e.i[r][0]==Q?e.i[r][1]:e.i[r][0],r!=t););for(D=r,i=n,P=2;e.e[i]!=1&&e.o[i]==2&&(Q=D,D=i,i=e.i[i][0]==Q?e.i[i][1]:e.i[i][0],++P,i!=r););for(A=c(F,k,6,P,15,1),A[0]=r,A[1]=n,f=2;f<P;f++)A[f]=e.i[A[f-1]][0]==A[f-2]?e.i[A[f-1]][1]:e.i[A[f-1]][0];return A;}function XZ(t){var e,A;if(t.indexOf("[")>=0){if(e=t.indexOf(" NOT["),A=t.indexOf("]",e),e>=0&&A>0)return -(A+1);if(e=t.indexOf(" ["),A=t.indexOf("]",e),e>=0&&A>0)return A+1;if(e=t.indexOf(" 'NOT["),A=t.indexOf("]'",e),e>=0&&A>0)return -(A+2);if(e=t.indexOf(" '["),A=t.indexOf("]'",e),e>=0&&A>0)return A+2;z1();}return 0;}function ZZ(t,e){var A,n,P,r,i,f,D,Q;if(i=xA[0]*t[0]+xA[1]*t[1]+xA[2]*t[2],i==0){t[0]=0,t[1]=0,t[2]=0;return;}for(A=e/i,Q=0,D=0,P=0;P<3;P++)t[P]*=A,t[P]<1?D+=xA[P]:(Q+=(t[P]-1)*xA[P],t[P]=1);if(Q!=0){for(f=0,r=0;r<3;r++)t[r]<1&&(t[r]+=Q/D,t[r]>1&&(f+=(t[r]-1)*xA[r],t[r]=1));if(f!=0)for(n=0;n<3;n++)t[n]<1&&(t[n]+=f/xA[n],t[n]>1&&(t[n]=1));}}function Es(t,e,A,n){var P,r,i,f,D,Q,o,L;for(P=0;P<t.f;P++)if(t.C[P]==A&&t.s[P]==0&&It(t,P)>0)for(f=false,Q=0;Q<t.j[P];Q++){if(t.n[P][Q]==1&&(r=t.i[P][Q],t.C[r]==n)){for(L=false,D=false,o=0;o<t.j[r];o++){if(i=t.i[r][o],t.s[i]<0){D=true;break;}i!=P&&t.C[i]==8&&t.n[r][o]==2&&(L=true);}if(!D&&L){if(t.s[P]=-1,t.T=0,--e,e==0)return 0;f=true;}}if(f)break;}return e;}function WZ(t,e,A,n,P){var r,i,f,D;if((e.u[A]&3)!=0&&(e.u[A]&4)==0&&n0(V(e.B[A],h8),0)&&(f=w.Math.abs(e.w[A]),f!=0)){for(i=0;i<t.c.g.a.length;i++)for(r=gr(t.c,i),D=0;D<r.f;D++)if(w.Math.abs(r.w[D])==f)return !!(e.j[A]==n.j[P]||gt(V(r.B[D],de),0)||(r.u[D]&F1)>>18!=(e.u[A]&F1)>>18);}return  false;}function _Z(t,e){var A,n,P,r,i,f,D;if(e.startsWith("M  ALS")&&(n=Q1(B1((Ct(7,10,e.length),e.substr(7,3))),P1,Et)-1,n>=0)){for(i=Q1(B1((Ct(10,13,e.length),e.substr(10,3))),P1,Et),P=(Gt(14,e.length),e.charCodeAt(14)==84),D=c(F,k,6,i,15,1),A=16,r=0;r<i;++r,A+=4)f=B1((Ct(A,A+4,e.length),e.substr(A,A+4-A))),D[r]=SA(f,1);X0(t.j,n,6),yf(t.j,n,D,P);}}function EQ(t,e,A,n){var P,r,i,f,D;f=(e.b-e.a)/10,D=(e.d-e.c)/10,P=new s1(),vr(t.L,u1(t.L,A,n))?(r=-3,i=-3):(r=t.p[A],i=t.p[n]),Z1(t,r),P.a=e.a,P.c=e.c,P.b=e.a+f*2,P.d=e.c+D*2,t.qb(P),P.a=e.a+f*4,P.c=e.c+D*4,P.b=e.a+f*5,P.d=e.c+D*5,t.qb(P),Z1(t,i),P.a=e.a+f*5,P.c=e.c+D*5,P.b=e.a+f*6,P.d=e.c+D*6,t.qb(P),P.a=e.a+f*8,P.c=e.c+D*8,P.b=e.b,P.d=e.d,t.qb(P),Z1(t,t.Q);}function k5(t,e,A,n,P){var r,i,f,D,Q,o,L,s;if((t.p&&e<t.f?iA(t.p,e):0)>24||(r=t.e[e],P==null&&(P=c(F,k,6,r,15,1)),!cW(t,e,A,n,P)))return 3;for(D=-1,Q=0;Q<r;Q++)if((P[Q]&1)==1){if(i=t.H[t.k[e][A[Q]]],D!=-1&&D!=i)return 3;D=i;}return o=w.Math.abs(P[0]-P[1])==2?1:0,f=P[o]-P[o+1],s=w.Math.abs(f)==3^P[o]<P[o+1],L=r==3||(P[3]&1)==1,s^L^D==129?1:2;}function o2(t,e,A,n){var P,r,i,f;if(t.L.q==0)return null;for(i=t.Db(A,n),ut(t.L,(t.G&256)!=0?63:(t.G&512)!=0?95:31),Dm(t),t.U.a.length=0,t.$.a.length=0,t.B=e,nk(t),t.Cb(t.X),t.K=true,r=0;r<t.L.q;r++)YQ(t,r,null);return t.K=false,P=t.R.c*M8(t.L),pm(t,P),T5(t,A,P,n),!A||eN(A,t.v)?i:(f=new Zs(t.v,A,P,n),Vu(f,t.R),Nu(f,t.v),jd(f,t.w),i?(Vu(f,i),i):f);}function $Z(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y;for(P=c(F,k,6,n,15,1),r=0,i=0;i<e.e.length;i++)for(f=0;f<A.e.length;f++)e.e[i]==A.e[f]&&(P[r++]=e.e[i]);D=n==1?(Q=r8(e,P[0]),o=r8(A,P[0]),rv(A,e.a[Q]-A.a[o],e.b[Q]-A.b[o]),L=dj(t,e,P[0]),s=dj(t,A,P[0]),y=0,SL(t,e,P[0])==1&&SL(t,A,P[0])==1&&(y=AA),Uf(A,A.a[o],A.b[o],L-s+y+U1),F5(t,e,A,1)):Ra(t,e,A,P,n),wF(t,e,A,D);}function aZ(t,e){var A,n,P,r,i,f;if((t.o[e]==1||t.o[e]==2)&&!WP(t.R,e)){i=false;try{for(r=0;r<2;r++)if(A=z(t.R,r,e),O(t.R,A)==3){for(n=c(F,k,6,2,15,1),P=0,f=0;f<O(t.R,A);f++)xt(t.R,A,f)!=e&&(n[P++]=W(t.R,A,f));t.f[n[0]]>t.f[n[1]]^t6(t,A,n[0],n[1])&&(i=!i);}}catch(D){if(D=a1(D),Xt(D,19)){t.i[e]=3;return;}else throw At(D);}t.o[e]==1^i?t.i[e]=1:t.i[e]=2;}}function tW(t){var e,A,n;for(this.c=new f1(),n=0,e=0;e<t.f;e++)n+=It(t,e);if(n>0)throw At(new p8("molecule needs explicit hydrogen atoms for force field calculations"));for(this.g=t,this.d=3*t.q,this.e=c(Ut,ht,6,this.d,15,1),this.i=c(Ut,ht,6,this.d,15,1),this.f=false,this.j=20,A=0;A<t.q;A++)this.i[3*A]=t.J[A].a,this.i[3*A+1]=t.J[A].b,this.i[3*A+2]=t.J[A].c;}function cR(t){var e,A,n,P,r,i,f,D,Q,o;for(this.a=new UP(),e=0;e<t.q;e++)for(Sr(this.a,new xi(e,e),(Y9(),O4)),A=0;A<t.e[e];A++)for(D=t.i[e][A],f=new xi(e,D),Sr(this.a,f,J4),n=0;n<t.e[D];n++)for(Q=t.i[D][n],i=new xi(e,Q),(!Cu(this.a,i)||O1(Er(this.a,i))===O1(yi))&&Sr(this.a,i,G4),P=0;P<t.e[Q];P++)o=t.i[Q][P],r=new xi(e,o),Cu(this.a,r)||Sr(this.a,r,yi);}function eW(t){at(t,u4)&&!nE?(bi(),J3(u4,new ks("/resources/forcefield/mmff94/outofplane.csv","/resources/forcefield/mmff94/torsion.csv")),nE=true):at(t,Q4)&&!PE?(bi(),J3(Q4,new ks(hV,"/resources/forcefield/mmff94/94s/torsion.csv")),PE=true):at(t,Ey)&&!rE&&(bi(),J3(Ey,new ks(hV,"/resources/forcefield/mmff94/94s/torsionPlus.csv")),rE=true);}function AW(t,e){return !e&&(e={keepAbsoluteCoordinates:false,mode:3}),e=Object.assign({},e),e.keepAbsoluteCoordinates=!!e.keepAbsoluteCoordinates,"sortByIDCode"in e?(e.sortByIDCode=!!e.sortByIDCode,pI(t,e.keepAbsoluteCoordinates,e.sortByIDCode)):(typeof e.mode!==Ar&&(e.mode=3),e.mode=Math.trunc(e.mode),DI(t,e.keepAbsoluteCoordinates,e.mode));}function cf(t,e,A,n){var P,r,i,f;for(this.e=t,this.g=A,this.a=n,i=-1,f=0;f<Ht(this.e,this.a);f++){if(P=W(this.e,this.a,f),r=xt(this.e,this.a,f),P==this.g){l1(this.e,r)==386&&(this.j=-1);continue;}Or(this.e,r,this.a)&&(this.i&&(t.u[n]|=u0),this.i=true),i==e[P]?(this.d=P,this.f=true,this.c=fA(this.e,r)):i<e[P]?(i=e[P],this.d=this.b,this.b=P):this.d=P;}}function nW(t,e){var A,n,P,r,i,f;if(e.startsWith("M  RAD")&&(P=Q1(B1((Ct(6,9,e.length),e.substr(6,3))),P1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)switch(n=Q1(B1((Ct(A,A+3,e.length),e.substr(A,A+3-A))),P1,Et)-1,i=Q1(B1((Ct(f,f+3,e.length),e.substr(f,f+3-f))),P1,Et),i){case 1:Oe(t.j,n,16);break;case 2:Oe(t.j,n,32);break;case 3:Oe(t.j,n,48);}}function wR(t){var e,A,n,P,r,i,f,D;for(t.t=new f1(),n=1,r=0,A=0;A<t.u.f;A++)R1(t.u,A)!=0&&!dn(t.u,A)&&(r=w.Math.max(r,R1(t.u,A)));if(r!=0){for(P=c(F,k,6,r+1,15,1),e=0;e<t.u.f;e++)R1(t.u,e)!=0&&!dn(t.u,e)&&(P[R1(t.u,e)]=e+1);for(f=0;f<t.D.f;f++)D=R1(t.D,f),D!=0&&D<=r&&!dn(t.D,f)&&P[D]!=0&&(i=P[D]-1,t.I[f]=n,t.B[i]=n++,mt(t.t,new cD(f,i)));}return t.t.a.length;}function be(){be=d1;var t;for(I2=new kA(1,1),qo=new kA(1,10),new kA(1,2),y9=new kA(0,0),fc=new kA(-1,1),vE=B(d(gi,1),Ke,23,0,[y9,I2,new kA(1,2),new kA(1,3),new kA(1,4),new kA(1,5),new kA(1,6),new kA(1,7),new kA(1,8),new kA(1,9),qo]),Io=c(gi,Ke,23,32,0,1),t=0;t<Io.length;t++)Io[t]=hu(j1(1,t),0)?ge(j1(1,t)):vP(ge(p0(j1(1,t))));}function gR(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T;if(r=e.e,r==0)throw At(new j8(gV));return P=e.d,n=e.a,P==1?xW(t,n[0],r):(y=t.a,l=t.d,A=l!=P?l>P?1:-1:iQ(y,n,l),A<0?B(d(gi,1),Ke,23,0,[y9,t]):(T=t.e,f=l-P+1,o=P,D=T==r?1:-1,i=c(F,k,6,f,15,1),Q=Sj(i,f,y,l,n,P),L=new Ue(D,f,i),s=new Ue(T,o,Q),bn(L),bn(s),B(d(gi,1),Ke,23,0,[L,s])));}function b5(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g;if(Uj(t,e,A,n),rd(t.p))return null;if(t.k!=null)for(s=t.k,y=0,l=s.length;y<l;++y)L=s[y],I3(t.p,L);if(t.g)for(h=new Zt(t.g);h.a<h.c.a.length;)T=$t(h),dI(t.p,T);if(t.e!=null)for(i=t.e,D=0,o=i.length;D<o;++D)P=i[D],fU(P.R);if(t.b!=null)for(r=t.b,f=0,Q=r.length;f<Q;++f)P=r[f],fU(P.R);return g=t.p,t.p=new Au(),g;}function u8(t,e,A){var n,P,r,i,f;return r=false,i=t.H[e],A==511?r=V_(t,e):VO(t,e,A)&&(A==257||A==129?(n=nR(t,e,t.D[0][e]),P=nR(t,e,t.D[1][e]),A==i?(n==P||P)&&(f=t.D[0][e],t.D[0][e]=t.D[1][e],t.D[1][e]=f,r=true):(!n&&P&&(f=t.D[0][e],t.D[0][e]=t.D[1][e],t.D[1][e]=f),t.H[e]=A,r=true)):(t.H[e]=A,r=true)),r&&(t.T=(i&127)==(A&127)?t.T&7:0,t.G[e]=0),r;}function PW(t){var e,A,n,P,r,i,f,D;if(f=null,A=t.indexOf("["),n=t.indexOf("]",A),A>=0&&n>0){for(e=c(F,k,6,16,15,1),D=(Ct(A+1,n,t.length),t.substr(A+1,n-(A+1))),P=0,i=true;i&&P<16;)A=D.indexOf(","),r=null,A==-1?(r=D,i=false):(r=(Ct(0,A,D.length),D.substr(0,A)),D=(Gt(A+1,D.length+1),D.substr(A+1))),e[P++]=SA(r,1);f=c(F,k,6,P,15,1),sA(e,0,f,0,P);}return f;}function dR(t){var e,A,n,P;for(UU.call(this),e=0;e!=-1&&(A=t.indexOf('="',e),A!=-1);)n=(Ct(e+1,A,t.length),t.substr(e+1,A-(e+1))),e=t.indexOf('"',A+2),P=e==-1?(Gt(A+1,t.length+1),t.substr(A+1)):(Ct(A+1,e,t.length),t.substr(A+1,e-(A+1))),at(n,"text")?this.e=qW(P):at(n,"x")?bO(this,P):at(n,"y")?RO(this,P):at(n,"size")?tO(this,P):at(n,"style")&&jO(this,P);}function rW(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(y=e.length,D=y,Gt(0,e.length),e.charCodeAt(0)==45?(L=-1,s=1,--y):(L=1,s=0),r=(Is(),mE)[10],P=y/r|0,h=y%r,h!=0&&++P,f=c(F,k,6,P,15,1),A=FE[8],i=0,l=s+(h==0?r:h),T=s;T<D;T=l,l=T+r)n=Q1((Ct(T,l,e.length),e.substr(T,l-T)),P1,Et),Q=(P9(),Qs(f,f,i,A)),Q+=NJ(f,i,n),f[i++]=Q;o=i,t.e=L,t.d=o,t.a=f,bn(t);}function BR(t){var e;switch(ut(t,31),e=t.I&c1,t.I&qP){case u0:return null;case I0:return e==1?"meso":""+e+" meso diastereomers";case 0:return "unknown chirality";case yy:return "both enantiomers";case l8:return "this enantiomer";case 327680:return "this or other enantiomer";case Li:return "two epimers";default:return e==1?"one stereo isomer":""+e+" stereo isomers";}}function vR(t){var e;for(t.T=0,t.C=c(F,k,6,t.M,15,1),t.s=c(F,k,6,t.M,15,1),t.w=c(F,k,6,t.M,15,1),t.J=c(M2,m2,29,t.M,0,1),e=0;e<t.M;e++)t.J[e]=new J0();t.A=c(F,k,6,t.M,15,1),t.u=c(F,k,6,t.M,15,1),t.B=c(NA,te,6,t.M,14,1),t.v=null,t.t=null,t.D=k1(F,[f0,k],[7,6],15,[2,t.N],2),t.H=c(F,k,6,t.N,15,1),t.F=c(F,k,6,t.N,15,1),t.G=c(F,k,6,t.N,15,1);}function iW(t,e,A,n,P,r,i){var f,D,Q,o,L;if(O(t.j,A)==3&&(d0(t.j,A)==1||d0(t.j,A)==2)&&O(t.d,r)==3&&(d0(t.d,r)==1||d0(t.d,r)==2)){for(L=e>n,Q=-1,D=0;D<O(t.j,A);D++)if(Q=W(t.j,A,D),Q!=e&&Q!=n){(Q>n&&Q<e||Q<n&&Q>e)&&(L=!L);break;}for(o=P>i,f=0;f<O(t.d,r);f++)if(Q=W(t.d,r,f),Q!=P&&Q!=i){(Q>i&&Q<P||Q<i&&Q>P)&&(o=!o);break;}return L==o==(d0(t.j,A)==d0(t.d,r));}return  true;}function R5(t,e){var A,n,P,r,i,f;for(i=(t.U&4)!=0,f=false,P=false,r=false,A=null,n=0;n<t.V.q;n++)if(P0(t.V,n))if(f){if(r!=RQ(A,kt(t.V,n),pt(t.V,n))){P=true;break;}}else {if(f=true,!i)break;A=N(t.I,0),r=RQ(A,kt(t.V,n),pt(t.V,n));}return e?i?P?(Rm(t,true),true):f?(Nv(t,true),false):(Rm(t,false),true):(Nv(t,f),false):i&&(P||!f);}function fW(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h;for(f=0,s=0;s<A.c.length;s++)for(P=A.e[A.c[s]],h=xD(K(t.k,P)),y=0;y<n.c.length;y++)r=n.e[n.c[y]],l=h+xD(K(t.k,r)),Q=w.Math.abs(e.k[P].a-e.k[r].a),Q<l&&(o=w.Math.abs(e.k[P].b-e.k[r].b),o<l&&(L=w.Math.abs(e.k[P].c-e.k[r].c),L<l&&(D=w.Math.sqrt(Q*Q+o*o+L*L),D<l&&(T=(l-D)/l,i=T*T,f+=i))));return 20*f;}function DW(t){var e,A,n,P,r;for(t.a=t.d.f,t.b=c(Pt,ft,6,t.k.f,16,1),t.c=c(Pt,ft,6,t.k.g,16,1),t.g=new f1(),e=jk(t);e!=-1;){if(A=t.g.a.length,qv(t,new bT(e,-1,-1,false,false),A),O(t.k,e)!=0)for(gk(t,A,false);A<t.g.a.length-1;){for(;tG(t,N(t.g,A).a);)gk(t,A,true);++A;}e=jk(t);}for(t.q=c(F,k,6,t.k.f,15,1),n=0,r=new Zt(t.g);r.a<r.c.a.length;)P=$t(r),t.q[P.a]=n++;}function FR(t,e,A,n,P){var r,i,f,D,Q,o;if(n&&N1(t,e)>1||!n&&N1(t,e)>2)return  false;for(i=0,r=c(Ut,ht,6,4,15,1),D=0;D<t.r;D++){for(Q=0;Q<2;Q++)if(t.D[Q][D]==e){if(i==2){i=3;break;}r[i++]=K0(t,e,t.D[1-Q][D]);}if(i==3)break;}return i==3?false:(o=i==1?r[0]+U1:w.Math.abs(r[0]-r[1])>U1?(r[0]+r[1])/2:(r[0]+r[1])/2+U1,f=U1*(A-2)/A,O5(t,e,A,e,n,o-f/2,U1-f,P),t.T=0,true);}function j5(t){var e,A,n,P,r;if(P=new p7(new R8()),r=new Z7(),t.k!=null)for(n=0;n<t.k.length;n++)for(e=0;e<t.k[n].r;e++)ls(P,t.e[n].R.c*sh(t.k[n],e)),ls(r,zT(P)),P.b.a.length<r.b.a.length&&ls(P,zT(r));return A=P.b.a.length+r.b.a.length,A==0?LW(t):t.p.c*(A%2==0?(oD(P.b.a.length==0?null:N(P.b,0))+oD(r.b.a.length==0?null:N(r.b,0)))/2:oD(P.b.a.length==0?null:N(P.b,0)));}function mR(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;for(L=false,s=0,Q=0;Q<A;Q++)t.H[Q]!=16&&(t.G[Q]&s8)==0&&++s;if(s==0){for(o=0;o<A;o++)(t.G[o]&s8)==0&&++s;L=true;}if(s==0){if(e<2)return n;for(l=Ee,r=1;r<e;r++)for(i=0;i<r;i++)y=eh(P[r],P[i]),y>0&&y<l&&(l=y);return l!=Ee?.6*l:n;}for(f=0,D=0;D<A;D++)(L||t.H[D]!=16)&&(t.G[D]&s8)==0&&(f+=eh(P[t.D[1][D]],P[t.D[0][D]]));return f/s;}function kR(t,e){var A,n,P,r,i,f,D,Q;for(t.p=new oU(t,e),n=c(F,k,6,t.f,15,1),P=0;P<t.g;P++)sP(t.p,P)!=0&&(t.F[P]|=64,++n[t.D[0][P]],++n[t.D[1][P]]);for(A=0;A<t.f;A++)n[A]==2?t.u[A]|=ie:n[A]==3?t.u[A]|=q1:n[A]>3&&(t.u[A]|=hn);for(Q=0;Q<t.p.j.a.length;Q++)for(i=y3(t.p,Q),D=V7(t.p,Q),f=i.length,r=0;r<f;r++)t.u[i[r]]|=8,t.F[D[r]]|=128,t.H[D[r]]==386&&(t.H[D[r]]=2);}function bR(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(o=-1,L=-1,s=-1,r=c(Pt,ft,6,O(t.c,e),16,1),D=0;D<O(t.c,e);D++)if(!r[D]&&(P=W(t.c,e,D),P!=A&&(i=R0(t.c,P),L<i))){for(f=false,Q=D+1;Q<O(t.c,e);Q++)if(n=W(t.c,e,Q),n!=A&&R0(t.c,n)==i){if(r[Q]=true,f)return P;f=true;}f?s=P:(L=i,o=P);}return o==-1&&($1(t.c,e)==1&&K(t.c,e)<10||Bn(t.c,e)||EP(t.c,e,true))?s:o;}function uW(t){var e,A,n,P,r,i,f,D,Q,o,L;for(n=J8(t.f.f),D=2,A=0;A<t.f.f;A++)D=w.Math.max(D,Ht(t.f,A));for(r=(62+2*n+D*(n+1))/63|0,P=c(g4,F2,100,t.f.q,0,1),e=0;e<t.f.q;e++)P[e]=new RU(r),$e(P[e],e);for(L=c(F,k,6,t.f.q,15,1),i=0;i<t.f.g;i++)f=Ie(t.f,i),(f==1||f==2)&&(Qe(P[z(t.f,0,i)],f),Qe(P[z(t.f,1,i)],f));Q=km(P,L);do o=Q,_X(t,P,L,n,D),Q=km(P,L);while(o!=Q);return L;}function RR(t,e,A,n){kQ();var P,r,i,f,D,Q;if(i=0,Q=0,P=0,n==null&&(n=c(Se,PA,6,3,15,1)),D=w.Math.min(t,w.Math.min(e,A)),f=w.Math.max(t,w.Math.max(e,A)),P=f,r=f-D,r==0)return P=D,i=0,n[0]=i,n[1]=Q,n[2]=P,n;if(f!=0)Q=r/f;else return Q=0,i=0,n[0]=i,n[1]=Q,n[2]=P,n;return t==f?i=(e-A)/r:e==f?i=2+(A-t)/r:i=4+(t-e)/r,i*=60,i<0&&(i+=360),n[0]=i/360,n[1]=Q,n[2]=P,n;}function QW(t,e,A,n,P,r){var i,f,D,Q,o,L,s;for(Q=SF(e)-SF(t),i=Kk(e,Q),D=S0(0,0,0);Q>=0&&(f=Nz(t,i),!(f&&(Q<22?D.l|=1<<Q:Q<44?D.m|=1<<Q-22:D.h|=1<<Q-44,t.l==0&&t.m==0&&t.h==0)));)o=i.m,L=i.h,s=i.l,i.h=L>>>1,i.m=o>>>1|(L&1)<<21,i.l=s>>>1|(o&1)<<21,--Q;return A&&WL(D),r&&(n?(qn=Zr(t),P&&(qn=MF(qn,(Kr(),a4)))):qn=S0(t.l,t.m,t.h)),D;}function Q1(t,e,A){var n,P,r,i,f;if(t==null)throw At(new YP(nr));for(r=t.length,i=r>0&&(Gt(0,t.length),t.charCodeAt(0)==45||(Gt(0,t.length),t.charCodeAt(0)==43))?1:0,n=i;n<r;n++)if(ZJ((Gt(n,t.length),t.charCodeAt(n)))==-1)throw At(new YP(c2+t+'"'));if(f=parseInt(t,10),P=f<e,isNaN(f))throw At(new YP(c2+t+'"'));if(P||f>A)throw At(new YP(c2+t+'"'));return f;}function oW(t,e){var A,n,P,r;if(e>0&&(e=ns(t,e,9)),e>0&&(e=ns(t,e,17)),e>0&&(e=ns(t,e,35)),e>0&&(e=ns(t,e,53)),e>0){for(A=0;A<t.f;A++)if(t.s[A]>0){for(P=false,r=0;r<t.j[A];r++)if(n=t.i[A][r],t.s[n]==0&&tA(t,n)&&It(t,n)>0){if(t.s[n]=-1,t.T=0,--e,e==0)return 0;P=true;break;}if(P)continue;}}return e>0&&(e=Es(t,e,8,16)),e>0&&(e=Es(t,e,8,15)),e>0&&(e=Es(t,e,8,6)),e>0&&(e=Es(t,e,7,16)),e;}function jR(t,e){var A,n,P,r,i,f,D,Q;for(P=0;P<t.g.g;P++)if((Ae(t.g,P)&T8)!=0){if(r=Ie(t.g,P),r==0)continue;if(A=z(t.g,0,P),n=z(t.g,1,P),t.f==null||e==-1&&t.f[A]==-1&&t.f[n]==-1||e!=-1&&(t.f[A]==e||t.f[n]==e)){if(i=t.G[A],f=t.G[n],D=u1(t.H,i,f),Q=Ie(t.H,D),Q==0&&(WP(t.H,D)&&(Q=wZ(t,D)),Q==0)||r==3||Q==3)continue;if(GX(t,P)==(r==Q))return  false;}}return  true;}function UW(t,e,A){var n,P,r,i,f,D;f=M1(wi[A]),i=l0(M1(t.e),A),D=M1(t.f),r=Cn(D,f),P=z9(D,f),G(P,0)!=0&&(n=Ci(j1(G(P,0)<0?p0(P):P,1),f)?-1:E1(j1(G(P,0)<0?p0(P):P,1),f)?1:0,r=x1(r,SQ(Jt(r)&1,(G(P,0)==0?0:G(P,0)<0?-1:1)*(5+n),e.b)),w.Math.log10(Gr(G(r,0)<0?p0(r):r))>=e.a&&(r=Cn(r,10),i=l0(i,1))),t.e=Bm(Gr(i)),t.d=e.a,t.f=Gr(r),t.a=Ah(r),t.c=null;}function pR(t,e,A,n){var P,r,i,f,D,Q,o;for(Q=0,r=V(n,h1),f=A-1;f>=0;f--)o=Y(j1(Q,32),V(e[f],h1)),G(o,0)>=0?(D=Cn(o,r),Q=z9(o,r)):(P=DA(o,1),i=n>>>1,D=Cn(P,i),Q=z9(P,i),Q=x1(j1(Q,1),V(o,1)),(n&1)!=0&&(G(D,Q)<=0?Q=l0(Q,D):yg(l0(D,Q),r)?(Q=x1(Q,l0(r,D)),D=l0(D,1)):(Q=x1(Q,l0(j1(r,1),D)),D=l0(D,2)))),t[f]=Jt(V(D,h1));return Jt(Q);}function LW(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T;if(L=Ee,s=F6,l=Ee,T=F6,P=0,t.k!=null)for(f=0;f<t.k.length;f++)for(A=0;A<t.k[f].q;A++)o=X1(t.e[f].R,Q7(t.k[f],A).a),y=K1(t.e[f].R,Q7(t.k[f],A).b),L=w.Math.min(L,o),s=w.Math.max(s,o),l=w.Math.min(l,y),T=w.Math.max(T,y),++P;return P<=1?t.d:(r=s-L,i=T-l,D=(r+i)/2,Q=3*P,e=r*i,n=D/(1-Q),w.Math.sqrt(n*n-e/(1-Q))-n);}function sW(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;for(Q=t.i.M,o=0,r=0;r<A;r++)Q>e[r]&&(Q=e[r],o=r);for(T=c(F,k,6,A,15,1),D=o>0?o-1:A-1,L=o<A-1?o+1:0,i=e[D]<e[L],P=0;P<A;P++)T[P]=e[o],i?--o<0&&(o=A-1):++o==A&&(o=0);for(l=new Zt(t.j);l.a<l.c.a.length;)if(y=$t(l),y.length==A){for(n=true,f=0;f<A;f++)if(y[f]!=T[f]){n=false;break;}if(n)return;}mt(t.j,T),s=Ok(t,T),mt(t.k,s),wb(t,T,s);}function yW(t,e,A,n,P,r,i){return !(K(t.j,A)==8&&$1(t.j,A)==0&&eQ(t.j,e)&&eQ(t.d,n)&&r!=q1||K(t.j,A)==8&&O(t.j,A)==2&&eQ(t.j,EO(t.j,e,A))&&r<768||K(t.j,e)==8&&(eQ(t.j,A)||eQ(t.d,P))&&r<512||!i&&(K(t.j,A)!=6||!_O(t.j,e))||K(t.j,A)==8&&K(t.j,e)!=6&&r!=q1||K(t.j,e)==5&&K(t.j,A)==6&&r<768);}function p5(t,e,A){var n,P;return P=rp(t,e,(A&16)==0),P==null?null:(n=new vn(P[0]),A!=0&&(n.a+="#",(A&1)!=0&&P.length>1&&P[1]!=null&&(n.a+=""+P[1])),A&=-2,A!=0&&(n.a+="#",(A&2)!=0&&P.length>2&&P[2]!=null&&(n.a+=""+P[2])),A&=-3,A!=0&&(n.a+="#",(A&4)!=0&&P.length>3&&P[3]!=null&&(n.a+=""+P[3])),A&=-5,A!=0&&(n.a+="#",(A&8)!=0&&P.length>4&&P[4]!=null&&(n.a+=""+P[4])),n.a);}function P9(){P9=d1;var t,e;for(sr=c(gi,Ke,23,32,0,1),Xf=c(gi,Ke,23,32,0,1),Dc=B(d(F,1),k,6,15,[1,10,100,1e3,eP,Ry,1e6,1e7,1e8,xf]),t=1,e=0;e<=18;e++)sr[e]=(be(),G(t,0)>=0?ge(t):vP(ge(p0(t)))),Xf[e]=hu(j1(t,e),0)?ge(j1(t,e)):vP(ge(p0(j1(t,e)))),t=on(t,5);for(;e<Xf.length;e++)sr[e]=kP(sr[e-1],sr[1]),Xf[e]=kP(Xf[e-1],(be(),qo));}function CR(t,e,A){var n,P,r,i,f;for(r=0;r<e;r++){for(n=0,f=r+1;f<e;f++)n=x1(x1(on(V(t[r],h1),V(t[f],h1)),V(A[r+f],h1)),V(Jt(n),h1)),A[r+f]=Jt(n),n=DA(n,32);A[r+e]=Jt(n);}for(DF(A,A,e<<1),n=0,P=0,i=0;P<e;++P,i++)n=x1(x1(on(V(t[P],h1),V(t[P],h1)),V(A[i],h1)),V(Jt(n),h1)),A[i]=Jt(n),n=DA(n,32),++i,n=x1(n,V(A[i],h1)),A[i]=Jt(n),n=DA(n,32);return A;}function HR(t){var e,A,n,P,r,i,f,D,Q,o;i=I5(t),D=t.q;do--D;while(D>=0&&i[D]);for(e=0;e<D;e++)if(i[e]){V5(t,e,D),o=i[e],i[e]=i[D],i[D]=o;do--D;while(i[D]);}if(t.f=D+1,t.q==t.f){t.g=t.r;return;}for(f=c(Pt,ft,6,t.r,16,1),r=0;r<t.r;r++)A=t.D[0][r],n=t.D[1][r],(i[A]||i[n])&&(f[r]=true);Q=t.r;do--Q;while(Q>=0&&f[Q]);for(P=0;P<Q;P++)if(f[P]){$h(t,P,Q),f[P]=false;do--Q;while(f[Q]);}t.g=Q+1;}function lW(t,e,A){var n,P,r,i,f,D,Q;for(D=c(F,k,6,t.g,15,1),i=c(F,k,6,t.g,15,1),Q=c(Pt,ft,6,t.i.f,16,1),n=z(t.i,0,e),P=z(t.i,1,e),D[0]=n,D[1]=P,i[1]=-1,Q[P]=true,f=1;f>=1;){if(++i[f],i[f]==O(t.i,D[f])){Q[D[f]]=false,--f;continue;}if(r=W(t.i,D[f],i[f]),!(Q[r]||A[r])){if(r==n&&f>1){if(sW(t,D,f+1),t.j.a.length>=ie)return;continue;}f+1<t.g&&(++f,D[f]=r,Q[r]=true,i[f]=-1);}}}function TW(t,e){var A,n,P,r,i,f,D,Q,o,L;if(o=Qd(t.f)!=1?1:pb(e,t.p[1],t.k[0]),L=Qd(t.g)!=1?1:pb(e,t.p[2],t.k[1]),!(o==1&&L==1)){for(i=360/w.Math.max(o,L)|0,A=0,n=0,r=0;r<t.d.length&&t.d[r]<i;r++)n+=t.c[r],++A;if(A!=0){for(Q=c(zt,_t,6,A,15,1),f=c(zt,_t,6,A,15,1),D=c(zt,ee,16,A,0,2),P=0;P<A;P++)Q[P]=t.d[P],f[P]=(t.c[P]*100/n|0)<<16>>16,D[P]=t.e[P];t.d=Q,t.c=f,t.e=D;}}}function MR(t,e){var A,n,P,r,i,f,D,Q,o,L;if(f=c(F,k,6,t.q,15,1),i=n9(t,f,false,e),i<=1)return null;for(D=c(F,k,6,i,15,1),n=0;n<t.f;n++)++D[f[n]];for(o=0,L=D[0],Q=1;Q<i;Q++)L<D[Q]&&(L=D[Q],o=Q);for(A=0;A<t.q;A++)f[A]!=o&&(t.C[A]=-1);for(r=0;r<t.r;r++)(!e&&t.H[r]==16||f[t.D[0][r]]!=o)&&(t.H[r]=512);P=vf(t),t.T=0;try{Pp(t,!0,!0);}catch(s){if(s=a1(s),!Xt(s,19))throw At(s);}return P;}function hW(t){for(var e,A,n,P,r,i,f;;){for(r=null,e=0;e<t.f.q;e++){for(f=0,P=0;P<Ht(t.f,e);P++)t.c[xt(t.f,e,P)]||++f;f==1&&(i=KW(t,e),(!r||i.a.length>r.a.length)&&(r=i));}if(!r)break;for(A=new CP(t.f,r.a.length,false),n=0;n<r.a.length;n++)t.b[r.a[n]]=true,n<r.a.length-1&&(t.c[r.b[n]]=true),A.e[n]=r.a[n],A.a[n]=w.Math.cos(v2)*n,A.b[n]=(n&1)==1?0:.5,A.k[n]=128+r.a.length;jP(t.d,A);}}function cW(t,e,A,n,P){var r,i,f,D;if(i=t.e[e],t.o[e]!=0||e<t.f&&r0(t.p,e)||t.j[e]<3||i>4)return  false;for(D=c(Pt,ft,6,4,16,1),f=0;f<i;f++){if(r=3.9269908169872414-n[f],w.Math.abs(k6-r%RA)>.0872664675116539||(P[f]=3&vt(r/RA),D[P[f]]))return  false;if(D[P[f]]=true,(P[f]&1)==0){if(t.H[t.k[e][A[f]]]!=1)return  false;}else if(!Or(t,t.k[e][A[f]],e))return  false;}return D[0]&&D[2];}function wW(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y;for(s=c(F,k,6,t.f,15,1),y=NK(t,e,s),i=false,r=false,L=new f1(),P=0;P<y;P++)(t.u[s[P]]&4)!=0&&(Q=C5(t,s[P],n),(Q==1||Q==2)&&(f=A.u[n[s[P]]]&3,(f==1||f==2)&&(Q==f?i=true:r=true)),D=c(F,k,6,2,15,1),D[0]=s[P],D[1]=Q,L.a.push(D));if(!i||!r)for(o=new Zt(L);o.a<o.c.a.length;)Q=$t(o),D=Q[1],(D==1||D==2)&&r&&(D=D==1?2:1),we(A,n[Q[0]],D,true);}function SQ(t,e,A){var n;switch(n=0,A.b){case 7:if(e!=0)throw At(new j8("Rounding necessary"));break;case 0:n=e==0?0:e<0?-1:1;break;case 2:n=w.Math.max(e==0?0:e<0?-1:1,0);break;case 3:n=w.Math.min(e==0?0:e<0?-1:1,0);break;case 4:w.Math.abs(e)>=5&&(n=e==0?0:e<0?-1:1);break;case 5:w.Math.abs(e)>5&&(n=e==0?0:e<0?-1:1);break;case 6:w.Math.abs(e)+t>5&&(n=e==0?0:e<0?-1:1);}return n;}function gW(t,e){var A,n;if(A=eh(z0(e,t.f[1]),z0(e,t.f[0])),t.a.length==2){if(A<1.02*t.a[0])return TJ(t,e.o,A);if(A>t.a[1])return d7((A-t.a[1])/A);}else if(n=t.c==10?Bq(w.Math.abs(t.a[0]-A)/w.Math.max(t.a[0],A)):t.c==5?Vq(w.Math.abs(t.a[0]-A)/w.Math.max(t.a[0],A)):d7(w.Math.abs(t.a[0]-A)/w.Math.max(t.a[0],A)),w.Math.abs(n)>.009999999776482582)return n;return 0;}function Ss(t,e){var A,n,P,r,i;if(e<t.f&&r0(t.p,e)||t.o[e]!=0||gt(V(t.B[e],Qr),0)||(n=t.u[e]&hn,(n==0?0:n==ie?2:n==q1?3:4)<3)||(i=t.p&&e<t.f?iA(t.p,e):0,i>7))return  false;for(r=0;r<t.p.j.a.length&&!(q3(t.p,r)==i&&yA(t.p,r,e));)++r;if(r>=ie&&r==t.p.j.a.length)return  false;for(P=0;P<t.j[e];P++)if(A=t.k[e][P],!tf(t.p,r,A)&&Aa(t,e,r,t.i[e][P],A))return  true;return  false;}function dW(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g;D=(e.c-e.d)/9,y=(e.b-e.a)/9,Q=e.b+D,l=e.d+y,o=e.b-D,T=e.d-y,L=(e.a+Q)/2,h=(e.c+l)/2,s=(e.a+o)/2,g=(e.c+T)/2,i=new GD(3),f=new GD(4),He(i,e.a,e.c),He(i,L,h),He(i,s,g),He(f,s,g),He(f,L,h),He(f,Q,l),He(f,o,T),vr(t.L,u1(t.L,A,n))?(P=-3,r=-3):(P=t.p[A],r=t.p[n],t.L.O!=1&&(r=Yh(t,A),P==Uu(t.L,A)&&(P=r))),Z1(t,P),t.sb(i),Z1(t,r),t.sb(f),Z1(t,t.Q);}function BW(t){var e,A,n,P,r,i,f,D;ut(t.i,1),f=t.i.f;do--f;while(f>=0&&K(t.i,f)==1);for(e=0;e<f;e++)if(K(t.i,e)==1){V5(t.i,e,f);do--f;while(K(t.i,f)==1);}if(f!=t.i.f-1){for(i=c(Pt,ft,6,t.i.g,16,1),r=0;r<t.i.g;r++)A=z(t.i,0,r),n=z(t.i,1,r),(K(t.i,A)==1||K(t.i,n)==1)&&(i[r]=true);D=t.i.g;do--D;while(D>=0&&i[D]);for(P=0;P<D;P++)if(i[P]){$h(t.i,P,D),i[P]=false;do--D;while(i[D]);}}}function vW(t,e,A){var n,P,r,i,f,D;for(f=new V0(),n=ZY(t,e),f.a+=" rb:",D=f.a.length,r=0;r<n.length;r++)n[r]!=-1&&(f.a.length!=D&&(f.a+=","),f.a+=r);for(f.a+=" ti:",D=f.a.length,i=0;i<n.length;i++)n[i]!=-1&&(f.a.length!=D&&(f.a+=","),f.a+=n[i]);for(f.a+=" (",D=f.a.length,P=0;P<n.length;P++)n[P]!=-1&&(f.a.length!=D&&(f.a+=","),h3(f,A.i[P][n[P]]));return J(f,(J9(),") "+a9(e.a,3))),f.a;}function qs(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;A==0?(L=e.a,y=e.c,s=e.b,l=e.d):(L=e.b,y=e.d,s=e.a,l=e.c),o=N(t.$,n),D=s>L?o.c+o.b:o.c,Q=l>y?o.d+o.a:o.d,P=s-L,r=l-y,w.Math.abs(P)>w.Math.abs(r)?y==l?(i=D,f=y):(i=L+P*(Q-y)/r,s>L==D>i?f=Q:(i=D,f=y+r*(D-L)/P)):L==s?(i=L,f=Q):(f=y+r*(D-L)/P,l>y==Q>f?i=D:(i=L+P*(Q-y)/r,f=Q)),A==0?(e.a=i,e.c=f):(e.b=i,e.d=f);}function C5(t,e,A){var n,P,r,i,f,D,Q,o,L;if(L=t.u[e]&3,L==1||L==2){if(f=false,t.o[e]==2&&t.j[e]==2&&t.n[e][0]==2&&t.n[e][1]==2&&t.C[e]<=7)for(i=0;i<t.j[e];i++){for(n=t.i[e][i],o=0,Q=c(F,k,6,3,15,1),D=0;D<t.j[n];D++)Q[o]=t.i[n][D],Q[o]!=e&&++o;o==2&&Q[0]<Q[1]^A[Q[0]]<A[Q[1]]&&(f=!f);}else for(i=1;i<t.j[e];i++)for(D=0;D<i;D++)P=t.i[e][i],r=t.i[e][D],P<r^A[P]<A[r]&&(f=!f);f&&(L=L==1?2:1);}return L;}function FW(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(t.u=c(Pt,h0,12,t.k.q,0,2),A=1;A<t.k.q;A++)t.u[A]=c(Pt,ft,6,A,16,1);for(o=t.q,L=0,s=o.length;L<s;++L)for(Q=o[L],i=1;i<Q.d.length;i++)for(D=0;D<i;D++)lB(t,Q.e[Q.d[i]],Q.e[Q.d[D]]);for(e=0;e<t.k.f;e++)for(r=1;r<Ht(t.k,e);r++)for(f=0;f<r;f++)lB(t,W(t.k,e,r),W(t.k,e,f));if(t.e!=null)for(n=1;n<t.k.q;n++)for(P=0;P<n;P++)t.e[n]!=t.e[P]&&(t.u[n][P]=true);}function mW(t){var e,A,n,P,r,i,f,D;if(!t.k||t.k.q==0)return "";for(ut(t.k,15),t.d=new EA(t.k,129),P=t.d.T,t.o=c(Pt,ft,6,P+1,16,1),t.n=c(Pt,ft,6,P+1,16,1),t.i=k1(F,[f0,k],[7,6],15,[2,32],2),e=0;e<t.k.f;e++)D=ne(t.k,e)-1,D!=-1&&++t.i[D][VA(t.k,e)];for(DW(t),h$(t),Ea(t),n=new V0(),A=new V0(),r=true,f=new Zt(t.g);f.a<f.c.a.length;)i=$t(f),i.g==-1&&(r?r=false:n.a+="."),da(t,i,n,A);return n.a;}function VR(t,e){var A,n,P,r;for(Fi(t.V),t.L=c(U9,or,26,e.g.a.length+e.f.a.length,0,1),t.Y=e.g.a.length,P=0;P<e.g.a.length+e.f.a.length;P++)t.L[P]=P<e.g.a.length?N(e.g,P):N(e.f,P-e.g.a.length),kD(t.V,t.L[P]);for(pe(t.V,e.c||wQ(e)),G1(t),t.M=c(F,k,6,t.V.q,15,1),A=0,n=0;n<t.L.length;n++)for(r=0;r<t.L[n].q;r++)t.M[A++]=n;t.I=new eU(),t.U=5,t.eb=w.Math.max(t.eb,5),e1(t.k),I1(t,new S1(t,1,false));}function kW(t){var e,A,n,P,r,i;if(t.L.K){for(Z1(t,320),e=0;e<t.L.f;e++)P=U0(t.L,e),G(P,0)!=0&&((t.G&8)!=0||gt(V(P,{l:de,m:896,h:1048448}),0))&&t.ub(X1(t.R,kt(t.L,e))-t.Z/2,K1(t.R,pt(t.L,e))-t.Z/2,t.Z);for(r=0;r<t.L.g;r++)i=Ae(t.L,r),i!=0&&((t.G&8)!=0||(i&-8388481)!=0)&&(A=z(t.L,0,r),n=z(t.L,1,r),t.ub((X1(t.R,kt(t.L,A))+X1(t.R,kt(t.L,n))-t.Z)/2,(K1(t.R,pt(t.L,A))+K1(t.R,pt(t.L,n))-t.Z)/2,t.Z));}}function ER(t){t.r&&(R5(t,false),null.vd(),null.vd(),(t.U&4)!=0&&(null.vd(),null.vd()),(t.U&4)!=0&&null.vd()),(t.U&4)!=0&&t.w==19&&(null.vd(),null.vd(),null.vd(),null.vd(),null.vd(),null.vd()),t.w==18&&(null.vd(),null.vd(),null.vd()),t.g&&t.t!=-1&&(Uu(t.V,t.t),null.vd(),null.vd(),null.vd(),null.vd(),null.vd(),null.vd(),null.vd(),null.vd(),null.vd(),null.vd()),null.vd();}function qQ(t,e,A,n,P,r){var i,f,D,Q,o;for(ut(t,1),P&&(NL(P),P.d=null,P.K=false),D=c(F,k,6,t.q,15,1),n==null?n=c(Pt,ft,6,t.q,16,1):Mu(n,n.length),D[0]=e,D[1]=A,n[e]=true,n[A]=true,f=1,Q=1;f<=Q;){for(o=0;o<t.e[D[f]];o++){if(i=t.i[D[f]][o],i==e&&f!=1)return  -1;n[i]||(n[i]=true,D[++Q]=i);}++f;}return P&&(r==null&&(r=c(F,k,6,n.length,15,1)),fi(t,P,n,false,r),gf(P,r[e],0,0,-1,0)),n[e]=false,Q;}function bW(t){var e,A,n,P,r,i,f,D;for(A=0;A<t.j.g;A++)if(t.e[A])for(P=0;P<2;P++){for(f=z(t.j,P,A),e=false,i=0;i<O(t.j,f);i++)if(A!=xt(t.j,f,i)&&t.e[xt(t.j,f,i)]){e=true;break;}if(!e){for(D=A,n=z(t.j,1-P,A);D!=-1;)for(t.d[f]=false,t.e[D]=false,--t.c,w0(t.j,D,8),D=-1,f=n,r=0;r<O(t.j,f);r++)if(t.e[xt(t.j,f,r)])if(D==-1)D=xt(t.j,f,r),n=W(t.j,f,r);else {f=-1,D=-1;break;}f!=-1&&(t.d[n]=false);break;}}}function RW(t,e,A){var n,P,r,i,f,D,Q,o;for(r=t.g[e],P=1,D=0;D<r.length;D++)if(n=r[D],t.f[n]&&t.k[n]==2){P=2;break;}for(i=c(F,f0,7,32,0,2),Q=0;Q<r.length;Q++)n=r[Q],t.f[n]&&t.k[n]==P&&(i[t.j[n]]=nf(i[t.j[n]],(A[n]<<16)+n));for(o=0;o<32;o++)i[o]!=null&&i[o].sort(me(D0.prototype.gd,D0,[]));if(cu(i,new qe()),r5(i[0],i[1])==0)return  false;for(f=0;f<i[0].length;f++)n=i[0][f]&c1,t.k[n]=0,t.j[n]=-1;return  true;}function jW(t){var e,A,n,P,r,i,f,D,Q,o,L;for(n=c(F,k,6,t.O,15,1),e=0;e<t.R.f;e++){for(o=O(t.R,e)+qi(t.R,e),Q=0,r=0;r<ue(t.R,e);r++)if(r<O(t.R,e)||r>=Ht(t.R,e)){for(L=2*t.f[W(t.R,e,r)],A=xt(t.R,e,r),dt(t.R,A)==2&&(_e(t.R,A)||++L),f=0;f<Q&&!(L<n[f]);f++);for(D=Q;D>f;D--)n[D]=n[D-1];n[f]=L,++Q;}for($e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),i=o;i<t.O;i++)W1(t.e[e],t.c+1,0);for(P=0;P<o;P++)W1(t.e[e],t.c+1,n[P]);}}function pW(t,e){var A,n,P,r,i,f,D,Q;if(e.startsWith("M  SUB")&&(r=Q1(B1((Ct(6,9,e.length),e.substr(6,3))),P1,Et),r>0)){for(A=10,Q=14,i=1;i<=r;++i,A+=8,Q+=8)if(n=Q1(B1((Ct(A,A+3,e.length),e.substr(A,A+3-A))),P1,Et)-1,f=Q1(B1((Ct(Q,Q+3,e.length),e.substr(Q,Q+3-Q))),P1,Et),f==-2)T1(t.j,n,q1,true);else if(f>0){for(D=0,P=0;P<t.j.r;P++)(z(t.j,0,P)==n||z(t.j,1,P)==n)&&++D;f>D&&T1(t.j,n,C0,true);}}}function SR(t,e){var A,n,P,r,i,f;return P=UF(t),f=UF(e),P==f?t.e==e.e&&t.a<54&&e.a<54?t.f<e.f?-1:t.f>e.f?1:0:(n=t.e-e.e,A=(t.d>0?t.d:w.Math.floor((t.a-1)*co)+1)-(e.d>0?e.d:w.Math.floor((e.a-1)*co)+1),A>n+1?P:A<n-1?-P:(r=(!t.c&&(t.c=mP(M1(t.f))),t.c),i=(!e.c&&(e.c=mP(M1(e.f))),e.c),n<0?r=kP(r,Pi(-n)):n>0&&(i=kP(i,Pi(n))),rs(r,i))):P<f?-1:1;}function CW(t){var e,A,n,P,r,i,f,D,Q,o,L;for(t.b=c(F,k,6,t.i.f,15,1),f=c(F,k,6,t.i.f,15,1),n=c(Pt,ft,6,t.i.g,16,1),L=0,A=0;A<t.i.g;A++)if(!n[A]&&t.g[A])for(++L,t.b[z(t.i,0,A)]=L,t.b[z(t.i,1,A)]=L,n[A]=true,Q=0;Q<2;Q++)for(e=z(t.i,Q,A),t.b[e]=L,i=0,D=0,f[0]=e;i<=D;){for(o=0;o<O(t.i,f[i]);o++)r=xt(t.i,f[i],o),!n[r]&&t.g[r]&&(n[r]=true,P=W(t.i,f[i],o),t.b[P]==0&&(t.b[P]=L,f[++D]=P));++i;}t.j=L;}function HW(t,e,A,n,P){var r,i;if(r=x1(V(e[0],h1),V(n[0],h1)),t[0]=Jt(r),r=q0(r,32),A>=P){for(i=1;i<P;i++)r=x1(r,x1(V(e[i],h1),V(n[i],h1))),t[i]=Jt(r),r=q0(r,32);for(;i<A;i++)r=x1(r,V(e[i],h1)),t[i]=Jt(r),r=q0(r,32);}else {for(i=1;i<A;i++)r=x1(r,x1(V(e[i],h1),V(n[i],h1))),t[i]=Jt(r),r=q0(r,32);for(;i<P;i++)r=x1(r,V(n[i],h1)),t[i]=Jt(r),r=q0(r,32);}G(r,0)!=0&&(t[i]=Jt(r));}function H5(t,e,A,n,P){i8();var r,i,f,D,Q,o,L,s,y,l,T;for(D=0;D<e.length;D++)Hr(A,t.k[e[D]]);for(wd(A,1/e.length),Q=0;Q<e.length;Q++)P[Q][0]=t.k[e[Q]].a-A.a,P[Q][1]=t.k[e[Q]].b-A.b,P[Q][2]=t.k[e[Q]].c-A.c;for(l=k1(Ut,[h0,ht],[15,6],15,[3,3],2),o=0;o<e.length;o++)for(L=0;L<3;L++)for(s=0;s<3;s++)l[L][s]+=P[o][L]*P[o][s];for(T=new Py(l),r=T.e,y=0,f=1;f<3;f++)r[f]<r[y]&&(y=f);i=T.a,n.a=i[0][y],n.b=i[1][y],n.c=i[2][y];}function MW(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;if(o=c(Pt,ft,6,e.q,16,1),s=qQ(e,t.k[0],t.p[1],o,null,null),P=0,t.k[0]!=t.p[2]&&(P=Q5(e,t.k[0],t.p[2])),Q=false,s>n-P-s&&(s=n-P-s,Q=true),Q&&P!=0){for(l=t.k[0],i=t.p[1];e.o[l]==2&&e.j[l]==2&&e.C[l]<10;)for(o[l]=true,L=0;L<2;L++)if(f=e.i[l][L],f!=i){i=l,l=f;break;}}for(y=0,D=A[t.p[1]],t.o=c(F,k,6,s,15,1),r=0;r<e.q;r++)A[r]==D&&o[r]^Q&&(t.o[y++]=r);t.n=t.p[Q?2:1];}function qR(t,e){Ag();var A,n,P,r;n=new Vs(t);try{for(r=new P3(),rA(r,"$RXN"+Gf),Vi(r.a,e??""),rA(r,Gf+(""+Gf)),rA(r,Sy+p5(t,!0,27)),rA(r,Gf),rA(r,"  "+n.g.a.length+"  "+n.f.a.length+Gf),P=wX(n),A=0;A<n.g.a.length+n.f.a.length;A++)rA(r,"$MOL"+Gf),sq(new r6(A<n.g.a.length?N(n.g,A):N(n.f,A-n.g.a.length),P,null),r);this.a=r.a;}catch(i){if(i=a1(i),Xt(i,19))z1();else throw At(i);}}function VW(t){var e,A,n,P,r,i,f,D,Q,o;for(r=cP(t,t.q,t.r,wn),i=r*r/16,n=1;n<t.q;n++)for(P=0;P<n;P++)if(D=t.J[P].a-t.J[n].a,Q=t.J[P].b-t.J[n].b,o=t.J[P].c-t.J[n].c,D*D+Q*Q+o*o<i)throw At(new C1("The distance between two atoms is too close."));for(ut(t,1),e=0,A=0;A<t.f;A++){if(N1(t,A)>(f=pn(t,A),f+WA(t,A,f,t.C[A])))throw At(new C1("atom valence exceeded"));e+=t.s[A];}if(e!=0)throw At(new C1("unbalanced atom charge"));}function IQ(t,e){var A,n,P,r,i,f,D,Q,o;return A=t.J[e[0]],n=t.J[e[1]],P=t.J[e[2]],r=t.J[e[3]],D=new Ne(n.a-A.a,n.b-A.b,n.c-A.c),Q=new Ne(P.a-n.a,P.b-n.b,P.c-n.c),o=new Ne(r.a-P.a,r.b-P.b,r.c-P.c),i=new Ne(D.b*Q.c-D.c*Q.b,-(D.a*Q.c-D.c*Q.a),D.a*Q.b-D.b*Q.a),f=new Ne(Q.b*o.c-Q.c*o.b,-(Q.a*o.c-Q.c*o.a),Q.a*o.b-Q.b*o.a),-w.Math.atan2(w.Math.sqrt(Q.a*Q.a+Q.b*Q.b+Q.c*Q.c)*(D.a*f.a+D.b*f.b+D.c*f.c),i.a*f.a+i.b*f.b+i.c*f.c);}function xQ(t,e){var A,n,P,r,i,f,D,Q,o;return A=z0(t,e[0]),n=z0(t,e[1]),P=z0(t,e[2]),r=z0(t,e[3]),D=new Ne(n.a-A.a,n.b-A.b,n.c-A.c),Q=new Ne(P.a-n.a,P.b-n.b,P.c-n.c),o=new Ne(r.a-P.a,r.b-P.b,r.c-P.c),i=new Ne(D.b*Q.c-D.c*Q.b,-(D.a*Q.c-D.c*Q.a),D.a*Q.b-D.b*Q.a),f=new Ne(Q.b*o.c-Q.c*o.b,-(Q.a*o.c-Q.c*o.a),Q.a*o.b-Q.b*o.a),-w.Math.atan2(w.Math.sqrt(Q.a*Q.a+Q.b*Q.b+Q.c*Q.c)*(D.a*f.a+D.b*f.b+D.c*f.c),i.a*f.a+i.b*f.b+i.c*f.c);}function IR(t,e){var A,n,P,r,i,f;for(P=null,r=t.a.a.length+e,f=e*12,n=new f1(),i=0;i<f&&t.a.a.length<r&&!(gt(t.n,0)&&(z1(),E1(M1(Date.now()),t.n)));i++)!P&&(P=new ku(t.d)),LR(t,P)?GR(t,P,t.a,0)&&(P=null):GR(t,P,n,1)&&(P=null);t.a.a.length==0&&n.a.length!=0&&(A=Pf(n,c(zE,mV,96,0,0,1)),cu(A,new kw()),RP(t.a,new qD(new iU(A),0,w.Math.min(e,A.length))),t.e=true),(t.a.a.length<r||t.a.a.length==t.b)&&(t.e=true);}function wf(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(s=-1,l=cP(t,t.q,t.r,wn),y=Ee,n=0;n<t.r;n++)T=t.J[t.D[0][n]].a,g=t.J[t.D[0][n]].b,h=t.J[t.D[1][n]].a,m=t.J[t.D[1][n]].b,o=h-T,L=m-g,P=w.Math.sqrt(o*o+L*L),r=(T+h)/2,i=(g+m)/2,o=e-r,L=A-i,!(w.Math.sqrt(o*o+L*L)>P/2)&&(h==T?Q=w.Math.abs(T-e):(f=(m-g)/(T-h),D=-f*T-g,Q=w.Math.abs((f*e+A+D)/w.Math.sqrt(f*f+1))),Q<l&&Q<y&&(y=Q,s=n));return s;}function EW(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(P=z(t.i,0,e),r=z(t.i,1,e),D=c(F,k,6,t.i.f,15,1),Q=c(F,k,6,t.i.f,15,1),o=c(F,k,6,t.i.f,15,1),D[0]=P,D[1]=r,Q[P]=1,Q[r]=2,o[P]=-1,o[r]=P,f=1,L=1;f<=L;){for(s=0;s<O(t.i,D[f]);s++){if(i=W(t.i,D[f],s),f>1&&i==P){for(l=c(F,k,6,Q[D[f]],15,1),n=D[f],y=0;y<l.length;y++)l[y]=n,n=o[n];return l;}Q[i]==0&&!A[i]&&(D[++L]=i,Q[i]=Q[D[f]]+1,o[i]=D[f]);}++f;}return null;}function SW(t,e){var A,n,P,r,i,f,D,Q,o,L;for(o=Et,D=-1,L=-1,Q=-1,n=0;n<t.j.i.f;n++)if(PT(t.j,n)&&t.j.k[n]!=0)for(f=0;f<e.length;f++)P=e[f]<t.a?e[f]:e[f]<t.b?e[f]-t.a:-1,r=e[f]<t.a?1:e[f]<t.b?2:0,t.j.k[n]==r&&t.j.j[n]==P&&o>t.j.a[n]+(r==1?u0:0)&&(o=t.j.a[n]+(r==1?u0:0),D=P,L=r,Q=e[f]);for(A=0;A<t.j.i.f;A++)PT(t.j,A)&&t.j.k[A]==L&&t.j.j[A]==D&&(t.j.k[A]=0,t.j.j[A]=-1);for(i=0;i<t.j.g.length;i++)t.e[Q][i]=false;}function qW(t){var e,A,n,P,r;if(A=t.indexOf(k0(38)),A==-1)return t;for(P=0,r=new yD();A!=-1;)Vi(r,(Ct(P,A,t.length),t.substr(P,A-P))),Gt(A+1,t.length),t.charCodeAt(A+1)==38?(r.a+="&",P=A+2):(e=(Gt(A+1,t.length),t.charCodeAt(A+1)),e=e-(e<65?48:e<97?65:97),n=(Gt(A+2,t.length),t.charCodeAt(A+2)),n=n-(n<65?48:n<97?65:97),PB(r,16*e+n&c1),P=A+3),A=t.indexOf(k0(38),P);return Vi(r,(Gt(P,t.length+1),t.substr(P))),r.a;}function IW(t){var e,A,n,P,r,i;for(t.L=true,r=n2(t,false);t.U<t.R.f&&r;){for(e=0;e<t.R.f;e++)$e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),i=t.db[e]<<7,(t.db[e]==1||t.db[e]==2)&&t.bb[e]!=0&&(i|=t.bb[e]<<5,i|=t.ab[e]),W1(t.e[e],18,j1(i,9));for(A=0;A<t.R.g;A++)n=t.o[A]<<7,(t.o[A]==1||t.o[A]==2)&&l1(t.R,A)==1&&t.n[A]!=0&&(n|=t.n[A]<<5,n|=t.k[A]),Qe(t.e[z(t.R,0,A)],n),Qe(t.e[z(t.R,1,A)],n);if(P=Xn(t),t.U==P)break;t.U=P,r=n2(t,false);}}function gf(t,e,A,n,P,r){var i;return (A==1||A==151||A==152)&&N1(t,e)>1?false:(i=t.K&&gt(V(t.B[e],-2),0),t.B[e]=V(t.B[e],-2),t.v!=null&&t.v[e]!=null&&(t.v[e]=null,i=true),t.t!=null&&t.t[e]!=null&&(t.t[e]=null,i=true),A==t.C[e]&&n==t.A[e]&&P==((t.u[e]&w8)>>>27)-1&&r==(t.u[e]&48)?i:((A==151||A==152)&&(n=A-149,A=1),t.u[e]&=960,t.C[e]=A,t.A[e]=n,t.s[e]=0,t.B[e]=0,XA(t,e,P),Oe(t,e,r),$u(t,t.w[e]),t.T=0,true));}function xW(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;return y=t.a,l=t.d,T=t.e,l==1?(n=V(y[0],h1),P=V(e,h1),r=Cn(n,P),Q=z9(n,P),T!=A&&(r=p0(r)),T<0&&(Q=p0(Q)),B(d(gi,1),Ke,23,0,[(be(),G(r,0)>=0?ge(r):vP(ge(p0(r)))),G(Q,0)>=0?ge(Q):vP(ge(p0(Q)))])):(f=l,D=T==A?1:-1,i=c(F,k,6,f,15,1),o=B(d(F,1),k,6,15,[pR(i,y,l,e)]),L=new Ue(D,f,i),s=new Ue(T,1,o),bn(L),bn(s),B(d(gi,1),Ke,23,0,[L,s]));}function EA(t,e){this.R=t,this.Q=e,ut(this.R,7),this.c=J8(this.R.f),(this.Q&q1)==0&&BZ(this),this.jb=(e&64)!=0||NT(this.R),this.b=qO(this.R)==0,(this.Q&q1)==0&&(this.db=c(E,q,6,this.R.f,15,1),this.fb=c(Pt,ft,6,this.R.f,16,1),this.ib=c(Pt,ft,6,this.R.f,16,1),this.o=c(E,q,6,this.R.g,15,1),this.q=c(Pt,ft,6,this.R.g,16,1),this.p=c(Pt,ft,6,this.R.g,16,1)),this.d=false,Ka(this),(this.Q&q1)==0&&y$(this),JZ(this);}function NW(t,e,A,n,P){var r,i,f,D,Q,o;for(D=null,r=null,o=0;o<t.g[e].length;o++)i=t.g[e][o],t.f[i]&&(t.o[i]==1||t.o[i]==2)&&(t.k[i]==0?r=nf(r,(P[i]<<16)+i):t.k[i]==n&&t.j[i]==A&&(D=nf(D,(P[i]<<16)+i)));if(f=r5(D,r),f==0)return  false;if(f<0)for(Q=0;Q<t.g[e].length;Q++)i=t.g[e][Q],t.f[i]&&(t.o[i]==1||t.o[i]==2)&&(t.k[i]==0?(t.k[i]=n<<24>>24,t.j[i]=A<<24>>24):t.k[i]==n&&t.j[i]==A&&(t.k[i]=0,t.j[i]=-1));return  true;}function OW(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(f=c(F,k,6,t.f.q,15,1),D=c(F,k,6,t.f.q,15,1),Q=c(F,k,6,t.f.q,15,1),o=c(F,k,6,t.f.q,15,1),f[0]=A,Q[A]=1,o[0]=-1,i=0,L=0;i<=L;){for(s=0;s<Ht(t.f,f[i]);s++){if(P=W(t.f,f[i],s),l=xt(t.f,f[i],s),P==e){for(r=Q[f[i]],n=c(F,k,6,r,15,1),n[0]=l,y=1;y<r;y++)n[y]=D[i],i=o[i];return n;}Q[P]==0&&(f[++L]=P,D[L]=l,Q[P]=Q[f[i]]+1,o[L]=i);}if(i==L)return null;++i;}return null;}function GW(t,e,A){var n,P,r,i,f;return !ri(t.R,e)||(n=z(t.R,0,e),P=z(t.R,1,e),i=new cf(t.R,t.f,n,P),i.f&&A==1)||(f=new cf(t.R,t.f,P,n),f.f&&A==1)||i.f&&f.f?false:(A==3&&(i.f&&(t.V[e]=Bb(t,P)),f.f&&(t.V[e]=Bb(t,n))),r=t.jb?fY(t,i,f):iz(i,f),A==1?t.o[e]=r:A==2&&(i.f&&(r==2?Qe(t.e[i.b],t.f[P]):Qe(t.e[i.d],t.f[P])),f.f&&(r==2?Qe(t.e[f.b],t.f[n]):Qe(t.e[f.d],t.f[n]))),true);}function JW(t){t=t||{};var e=0;return t.createSymmetryRank&&(e|=1),t.considerStereoheterotopicity&&(e|=2),t.encodeAtomCustomLabels&&(e|=8),t.encodeAtomSelection&&(e|=16),t.assignParitiesToTetrahedralN&&(e|=32),t.coordsAre3d&&(e|=64),t.createPseudoStereoGroups&&(e|=128),t.distinguishRacemicOrGroups&&(e|=256),t.tieBreakFreeValenceAtoms&&(e|=512),t.encodeAtomCustomLabelsWithoutRanking&&(e|=ie),t.neglectAnyStereoInformation&&(e|=q1),e;}function xR(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,T,h,g;for(L=i;L>1;L--){for(T=r[L]-r[L-1],g=c(Ttt,e0,174,T,0,1),f=r[L],l=0;l<T;l++){for(h=r[L-1]+l,s=f;s<r[L+1]&&n[s]==h;)++s;for(g[l]=new A0(),g[l].c=h,g[l].d=A[h],g[l].b=e[h]?0:od(t.R,P[h]),g[l].a=c(F,k,6,s-f,15,1),o=f;o<s;o++)g[l].a[o-f]=A[o];g[l].a.sort(me(D0.prototype.gd,D0,[])),f=s;}for(D=new o1(),Xi(g,0,g.length,D),Q=1,y=0;y<T;y++)A[g[y].c]=Q,y!=T-1&&mb(g[y],g[y+1])!=0&&++Q;}}function zW(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(r=0;r<t.f.r;r++)if(n=z(t.f,0,r),P=z(t.f,1,r),!(fA(t.f,r)||dt(t.f,r)!=1||Ht(t.f,n)==1||Ht(t.f,P)==1)&&!((t.e&4)!=0&&Y0(t.f,n)&&Y0(t.f,P))){for(L=false,Q=0;Q<2;Q++)if(i=z(t.f,Q,r),Ht(t.f,i)>2){for(s=true,D=-1,o=0;o<Ht(t.f,i);o++)f=W(t.f,i,o),f!=z(t.f,1-Q,r)&&(D==-1?D=A[f]:D!=A[f]&&(s=false));if(s){L=true;break;}}L||((t.e&8)!=0&&Y0(t.f,n)&&Y0(t.f,P)?e[r]=1:e[r]=2);}}function U2(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(f=false,D=0;D<t.hb.a.length;D++){for(i=N(t.hb,D),e=true,y=-1,Q=false,L=0;L<i.length;L++){if(A=i[L],t.db[A]==0){e=false;break;}if(t.db[A]!=3){for(o=true,s=0;s<i.length;s++)if(s!=L&&t.f[A]==t.f[i[s]]){o=false;break;}o&&y<t.f[A]&&(y=t.f[A],Q=t.db[A]==1);}}if(e&&y!=-1){for(n=i,P=0,r=n.length;P<r;++P)A=n[P],(t.db[A]==1||t.db[A]==2)&&(t.eb[A]=Q),t.gb[A]=false;X8(t.hb,i),f=true,--D;}}return f;}function NR(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(ut(e,1),n==null&&(n=c(F,k,6,e.q,15,1)),f=a0(t,1),D=a0(t,2),s=c(Pt,ft,6,e.q,16,1),Q=c(F,k,6,e.q,15,1),Q[0]=A,s[A]=true,n[A]=Vn(e,t,A,f,D),i=0,o=0;i<=o;){for(L=0;L<e.e[Q[i]];L++)r=e.i[Q[i]][L],s[r]||(Q[++o]=r,s[r]=true,n[r]=Vn(e,t,r,f,D));++i;}for(P=0;P<e.r;P++)s[e.D[0][P]]&&tr(e,t,P,f,D,n==null?e.D[0][P]:n[e.D[0][P]],n==null?e.D[1][P]:n[e.D[1][P]],false);a0(t,1),a0(t,2),t.T=0;}function M5(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(ut(t,7),r=c(Pt,ft,6,t.g,16,1),L=c(Pt,ft,6,t.g,16,1),l=c(F,k,6,t.f,15,1),i=0,f=1;f<t.j[e];f++)if(n=t.k[e][f],(t.F[n]&64)!=0){for(Q=0;Q<f;Q++)if(P=t.k[e][Q],(t.F[P]&64)!=0&&(L[n]=true,L[P]=true,y=s2(t,l,t.i[e][f],t.i[e][Q],A-2,null,L),L[n]=false,L[P]=false,y!=-1)){for(D=false,s=c(F,k,6,y,15,1),Hm(t,l,s,y),o=0;o<y;o++)r[s[o]]||(r[s[o]]=true,D=true);D&&++i;}}return i;}function OR(t,e,A,n,P,r){var i,f,D,Q;switch(Q=1,f=false,P){case 1:Q=257;break;case 3:Q=386;break;case 4:Q=257,f=true;break;case 6:Q=129;break;default:switch(n){case 1:Q=1;break;case 2:Q=2;break;case 3:Q=4;break;case 4:Q=8;break;case 9:Q=16;}}if(i=O0(t.j,e,A,Q),D=0,f&&Ve(t.j,e,1,-1),n>4)switch(n){case 5:D|=3;break;case 6:D|=9;break;case 7:D|=10;break;case 8:Q!=16&&(D|=127);}return r==1&&(D|=256),r==2&&(D|=128),D!=0&&Je(t.j,i,D,true),i;}function L2(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;return o=_d(t.a,e,u1(e,A,n)),i=e.a[A],Q=e.a[n],i>Q&&(i=(h=m1(Q),m1(Q=i),h).a),l=W9(B(d(F,1),k,6,15,[1,2,0]),B(d(F,1),k,6,15,[i,Q,o]),t),l>=0?j0(t.b[l][4]):(r=e.C[A],D=e.C[n],r>D&&(r=(T=m1(D),m1(D=r),T).a),P=Od(r,t.a.f),f=Od(D,t.a.f),g=kg(t.a.f,P),m=kg(t.a.f,f),s=mg(t.a.f,P),y=mg(t.a.f,f),L=r==1||D==1?.05:.085,g+m-L*w.Math.pow(w.Math.abs(s-y),1.4));}function It(t,e){var A,n,P,r,i,f,D;if(t.K&&n0(V(t.B[e],q1),0)||!aL(t,e))return 0;if(t.C[e]==0||at("*",t.t==null||t.t[e]==null?null:rn((r=t.t[e],c0(),r))))return t.e[e]==0?1:0;for(ut(t,1),f=0,P=0;P<t.e[e];P++)f+=t.n[e][P];if(t.K){for(A=1,n=0;n<t.j[e];n++)t.H[t.k[e][n]]==8&&++A;f+=A>>1;}if(f-=WA(t,e,f,t.C[e]),i=((t.u[e]&w8)>>>27)-1,i==-1)for(D=Ku(t.C[e]),i=D[0],n=1;i<f&&n<D.length;n++)i=D[n];return w.Math.max(0,i-f);}function GR(t,e,A,n){var P,r,i,f;if(t.g==null&&(t.g=Ik(t.d)),i=w.Math.max(t.c[n]+2.72,t.c[n]*2),e.e>i)return  false;for(BI(e,t.g),r=A.a.length-1;r>=0;r--)if(f=(Fe(r,A.a.length),A.a[r]),fF(e,f),EJ(e.q,f.q))return f.e>e.e?(Fe(r,A.a.length),A.a.splice(r,1),A.a.push(e),t.c[n]>e.e&&(t.c[n]=e.e),true):false;if(A.a.push(e),t.c[n]>e.e)for(t.c[n]=e.e,P=A.a.length-1;P>=0;P--)f=(Fe(P,A.a.length),A.a[P]),f.e>i&&LA(A,P);return  true;}function WA(t,e,A,n){var P,r;return n>=171&&n<=190?0:(r=0,(t.u[e]&48)==32&&(r-=1),((t.u[e]&48)==16||(t.u[e]&48)==48)&&(r-=2),P=t.s[e],P==0&&t.K&&(n0(V(t.B[e],i9),pf)&&(P=-1),n0(V(t.B[e],i9),jf)&&(P=1)),n==7||n==8||n==9?r+=P:n==6||n==14||n==32?r-=w.Math.abs(P):n==15||n==33?A-r-P<=3?r+=P:r-=P:n==16||n==34||n==52?A-r-P<=4?r+=P:r-=w.Math.abs(P):n==17||n==35||n==53?A-r-P<=5?r+=P:r-=w.Math.abs(P):r-=P,r);}function YW(t,e){var A,n,P,r,i,f;if((e.startsWith("M  RBC")||e.startsWith("M  RBD"))&&(P=Q1(B1((Ct(6,9,e.length),e.substr(6,3))),P1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)switch(n=Q1(B1((Ct(A,A+3,e.length),e.substr(A,A+3-A))),P1,Et)-1,i=Q1(B1((Ct(f,f+3,e.length),e.substr(f,f+3-f))),P1,Et),i){case 3:case  -1:T1(t.j,n,112,true);break;case 1:T1(t.j,n,8,true);break;case 2:T1(t.j,n,104,true);break;case 4:T1(t.j,n,56,true);}}function KW(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(P=c(F,k,6,t.f.q,15,1),r=c(F,k,6,t.f.q,15,1),i=c(F,k,6,t.f.q,15,1),f=c(F,k,6,t.f.q,15,1),P[0]=e,i[e]=1,f[0]=-1,n=0,D=0;n<=D;){if(n==0||!t.b[P[n]])for(Q=0;Q<Ht(t.f,P[n]);Q++)A=W(t.f,P[n],Q),s=xt(t.f,P[n],Q),i[A]==0&&!t.c[s]&&(P[++D]=A,r[D]=s,i[A]=i[P[n]]+1,f[D]=n);if(n==D){for(y=new RT(i[P[n]]),o=n,L=0;L<y.a.length;L++)y.a[L]=P[o],y.b[L]=r[o],o=f[o];return y;}++n;}return null;}function XW(t,e,A,n){var P,r,i,f,D,Q,o;return o=A>n?1:-1,Q=A>n?n:A,D=A>n?A:n,r=Gd(t,Q,t.a.length,true),P=Gd(t,Q,t.a.length,false),r==-1||P==-1||(f=hA(2,D,r,P+1,true,new Wo(t)),i=hA(2,D,r,P+1,false,new Wo(t)),f==-1||i==-1)?j0(t.b[A-1][1])-j0(t.b[n-1][1]):e==0&&Jn(t.a[f][0])==0?o*j0(t.a[f][3]):e==1&&Jn(t.a[i][0])==1?o*j0(t.a[i][3]):j0(t.b[A-1][1])-j0(t.b[n-1][1]);}function ZW(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(r=c(F,k,6,n,15,1),s=c(F,k,6,4,15,1),s[0]=W(t,A,t.i[A][0]==e?1:0),s[1]=A,s[2]=e,s[3]=W(t,e,t.i[e][0]==A?1:0),D=0,Q=0;Q<t.e[e];Q++)i=t.i[e][Q],i!=A&&(r[D++]=i);L=c(zt,_t,6,3,15,1),f=c(zt,_t,6,3,15,1),o=k1(zt,[ee,_t],[16,6],15,[3,2],2),L[0]=60,L[1]=180,L[2]=300,f[0]=33,f[1]=33,f[2]=33,o[0][0]=45,o[0][1]=75,o[1][0]=165,o[1][1]=195,o[2][0]=285,o[2][1]=315,mt(P,new IL(L,f,o,s,r,1));}function V5(t,e,A){var n,P,r,i,f,D;for(i=t.C[e],t.C[e]=t.C[A],t.C[A]=i,i=t.s[e],t.s[e]=t.s[A],t.s[A]=i,i=t.A[e],t.A[e]=t.A[A],t.A[A]=i,i=t.u[e],t.u[e]=t.u[A],t.u[A]=i,D=t.B[e],t.B[e]=t.B[A],t.B[A]=D,i=t.w[e],t.w[e]=t.w[A],t.w[A]=i,r=t.J[e],t.J[e]=t.J[A],t.J[A]=r,t.v!=null&&(f=t.v[e],t.v[e]=t.v[A],t.v[A]=f),t.t!=null&&(f=t.t[e],t.t[e]=t.t[A],t.t[A]=f),n=0;n<t.r;n++)for(P=0;P<2;P++)t.D[P][n]==e?t.D[P][n]=A:t.D[P][n]==A&&(t.D[P][n]=e);t.T=0;}function s2(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,T;if(A==n)return e[0]=A,0;for(t.$b(1),o=c(F,k,6,t.q,15,1),Q=c(F,k,6,t.q,15,1),T=c(F,k,6,t.q,15,1),Q[0]=A,o[A]=1,D=0,L=0;D<=L&&o[Q[D]]<=P;){for(l=Q[D],s=0;s<t.e[l];s++)if(i==null||i.length<=t.k[l][s]||!i[t.k[l][s]]){if(f=t.i[l][s],f==n){for(y=o[l],e[y]=f,e[--y]=l;y>0;)e[y-1]=T[e[y]],--y;return o[l];}o[f]==0&&(r==null||r.length<=f||!r[f])&&(Q[++L]=f,o[f]=o[l]+1,T[f]=l);}++D;}return  -1;}function WW(t,e){var A,n,P,r,i,f;for(r=0;r<2;r++){for(A=z(e,r,t.a),f=z(e,1-r,t.a);e.o[A]==2&&e.j[A]==2&&e.C[A]<10;)for(i=0;i<2;i++)if(n=e.i[A][i],n!=f){f=A,A=n;break;}t.p[r+1]=A,t.k[r]=f;}if($1(e,t.p[1])==0&&O(e,t.p[1])==3)t.p[0]=-1;else for(P=0;P<O(e,t.p[1]);P++)if(n=W(e,t.p[1],P),n!=t.p[2]){t.p[0]=n;break;}if($1(e,t.p[2])==0&&O(e,t.p[2])==3)t.p[3]=-1;else for(P=0;P<O(e,t.p[2]);P++)if(n=W(e,t.p[2],P),n!=t.p[1]){t.p[3]=n;break;}}function _W(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;for(f=Sa(e),i=c(Ut,ht,6,f.length,15,1),n=0;n<f.length;n++){if(h=e.a[n],y=f[n],g=wI(t.e,h),A=Fn(t.b,h),l=0,T=0,w.Math.abs(g)<so)for(Q=0;Q<e.e[n];Q++)L=e.i[n][Q],f[L]<0&&(y+=f[L]/(2*e.e[L]));if(h==62)for(o=0;o<e.e[n];o++)L=e.i[n][o],f[L]>0&&(y-=f[L]/2);for(D=0;D<e.e[n];D++)L=e.i[n][D],P=u1(e,n,L),s=e.a[L],r=D8(t,e,e.D[0][P],e.D[1][P]),T+=XW(t.e,r,h,s),l+=f[L];i[n]=(1-A*g)*y+g*l+T;}return i;}function E5(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(L=e.f,s=e.g,P=e.a,g=0,r=z(t.o,0,P),i=z(t.o,1,P),y=0;y<L.c.length;y++)if(A=L.e[L.c[y]],A!=r&&A!=i)for(m=xD(K(t.o,A)),l=0;l<s.c.length;l++)n=s.e[s.c[l]],n!=r&&n!=i&&(T=m+xD(K(t.o,n)),D=w.Math.abs(t.k[A].a-t.k[n].a),D<T&&(Q=w.Math.abs(t.k[A].b-t.k[n].b),Q<T&&(o=w.Math.abs(t.k[A].c-t.k[n].c),o<T&&(f=w.Math.sqrt(D*D+Q*Q+o*o),f<T&&(h=(T-f)/T,g+=h*h)))));return g;}function $W(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h;if(L=e[n==0?4:n-1],h=e[n==4?0:n+1],O(t.j,L)==3&&O(t.j,h)==3){for(y=c(F,k,6,t.j.f,15,1),s=c(Pt,ft,6,t.j.g,16,1),r=A,i=0,f=r.length;i<f;++i)D=r[i],s[D]=true;for(P=0;P<t.j.g;P++)t.e[P]||(s[P]=true);if(l=s2(t.j,y,L,h,14,null,s),l==14){for(T=true,o=2;o<=12;o++)if((o&3)!=1^H9(t.j,y[o])==5){T=false;break;}if(T)for(Af(t,y[7]),Q=1;Q<=5;Q+=2)t2(t,u1(t.j,y[Q],y[Q+1])),t2(t,u1(t.j,y[Q+7],y[Q+8]));}}}function JR(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T;for(D=new zA(t.f,t.g),o=new i7(),y=0,s=0,i=c(Pt,ft,6,t.f,16,1),r=c(F,k,6,t.f,15,1),T=0;T<A&&s<t.f;T++){if(s==0)r[0]=e,i[e]=true,s=1;else {for(l=s,Q=y;Q<s;Q++)for(P=r[Q],L=0;L<t.j[P];L++)if(f=t.i[P][L],!i[f])switch(n){case 0:i[f]=true,r[l++]=f;break;case 1:Am(t,P)&&Am(t,f)||(i[f]=true,r[l++]=f);}y=s,s=l;}fi(t,D,i,true,null),_7(o,ke(new EA(D,8)));}return $7(o,c(it,Dt,2,o.a.a.length,6,1));}function zR(t,e){var A,n,P,r;if(!e||e.q==0)return  false;if(e.r!=0)for(n=Pn(t.V,24*t.ab),EF(new du(e),new a2(tB(t.k)),new QA(0,0,CD(t.k),Vr(t.k)),u0+vt(n));sK(t,e,.2*n);)CL(e,.5*n,.5*n);if(G1(t),xd(e),$d(e),P=t.V.K,t.V.q==0)ff(e,t.V),t.a||pe(t.V,P),t.eb=w.Math.max(t.eb,4),e1(t.k),I1(t,new S1(t,1,true));else {for(r=t.V.q,kD(t.V,e),t.a||pe(t.V,P),A=0;A<t.V.q;A++)gP(t.V,A,A>=r);t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));}return  true;}function YR(t,e,A,n){this.V=t,this.U=e,this._=A,this.k=n,this.S=new f1(),this.w=5,this.t=-1,this.u=-1,this.v=null,this.e=-1,this.F=6,this.B=0,this.D=-1,this.C=0,this.A=null,this.b=true,this.a=false,this.X=0,this.s=11,this.i=new V0(),this.c=331,this.$=1,this.ab=(Be==-1&&(Be=globalThis.devicePixelRatio||1),Be),this.T=vt(w.Math.round((Be==-1&&(Be=globalThis.devicePixelRatio||1),Be*24))),(this.U&6)!=0&&(this.U|=1),(this.U&12)!=0&&(this.I=new eU()),this.eb=4;}function KR(t){var e,A,n,P,r,i,f,D,Q,o;if(t.e.a.c==1)return t.i;for(Q=Yn(t.i),pe(Q,true),ut(Q,7),P=0;P<Q.g;P++)t.g[P]&&(Q.H[P]=1,Q.T=0,Je(Q,P,3,true));for(A=0;A<Q.f;A++)t.b[A]!=0&&t0(t.i,A)<4&&(v5(Q,A),Q.u[A]&=gy,Q.T&=7,Ve(Q,A,0,-1));for(f=c(F,k,6,t.j,15,1),D=c(F,k,6,t.j,15,1),n=new FA(Q).f,e=0;e<Q.f;e++)t.b[e]!=0&&(o=t.b[e]-1,D[o]<n[e]&&(D[o]=n[e],f[o]=e));for(r=0;r<t.j;r++)i=""+t.n[r]+"|"+t.k[r]+"|"+t.o[r],VP(Q,f[r],i);return Q;}function aW(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(i=c(F,k,6,t.j.q,15,1),A=0;A<t.j.q;A++)i[A]=-b1(t.j,A);for(Bf(new hr(t.j),null,true),n=0;n<t.j.q;n++)i[n]+=b1(t.j,n);for(e=0;e<t.j.q;e++)if(i[e]!=0)for(f=-i[e],P=0;P<t.j.r;P++)for(Q=0;Q<2;Q++)f>0&&l1(t.j,P)==16&&z(t.j,1-Q,P)==e&&(L=z(t.j,Q,P),$0(t.j,L)&&(o=(s=K(t.j,L),y=s<(J1(),B4).length?B4[s]:null,y==null?0:y[y.length-1]),r=b1(t.j,L),r<o&&(D=w.Math.min(f,o-r),E0(t.j,L,r+D),f-=D)));}function XR(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;if(T=fb(e,t.I),T==null||(l=fb(A,t.B),l==null))return null;if(T.length==1&&l.length==1)return new cD(T[0],l[0]);if(y=AX(t,T,l),y.length==1)return new cD(T[0],l[0]);for(o=Jx(t.i,y.length),s=-1,r=T,f=0,Q=r.length;f<Q;++f)if(n=r[f],t.J[n]==y[o][0]){s=n;break;}for(L=-1,P=l,i=0,D=P.length;i<D;++i)if(n=P[i],t.C[n]==y[o][1]){L=n;break;}return t.o=ub(t,t.D,t.J,s,t.o),t.n=ub(t,t.u,t.C,L,t.n),new cD(s,L);}function tr(t,e,A,n,P,r,i,f){var D,Q,o,L;return Q=e.r,Q>=e.N&&AQ(e,e.N*2),L=(t.F[A]&768)>>8,o=-1,L==1&&(n==-1?o=a0(e,L):o=w.Math.min(32,n+((t.F[A]&768)>>8!=1&&(t.F[A]&768)>>8!=2?-1:(t.F[A]&ln)>>10))),L==2&&(P==-1?o=a0(e,L):o=w.Math.min(32,P+((t.F[A]&768)>>8!=1&&(t.F[A]&768)>>8!=2?-1:(t.F[A]&ln)>>10))),e.D[0][Q]=r,e.D[1][Q]=i,D=f&&t.Zb(A)?8:t.H[A],e.H[Q]=D,e.F[Q]=t.F[A],e.G[Q]=e.K?t.G[A]:0,o!=-1&&(e.F[Q]&=-31745,e.F[Q]|=o<<10),++e.r,e.T=0,Q;}function Pi(t){P9();var e,A,n,P;if(e=vt(t),t<Xf.length)return Xf[e];if(t<=50)return r2((be(),qo),e);if(t<=1e3)return I9(r2(sr[1],e),e);if(t>1e6)throw At(new j8("power of ten too big"));if(t<=Et)return I9(r2(sr[1],e),e);for(n=r2(sr[1],Et),P=n,A=M1(t-Et),e=vt(t%Et);G(A,Et)>0;)P=kP(P,n),A=l0(A,Et);for(P=kP(P,r2(sr[1],e)),P=I9(P,Et),A=M1(t-Et);G(A,Et)>0;)P=I9(P,Et),A=l0(A,Et);return P=I9(P,e),P;}function r9(t){var e,A,n,P,r,i;if(t.j!=0)return t.j;if(t.i&&K(t.e,t.a)!=15&&K(t.e,t.a)!=16){for(i=0;i<Ht(t.e,t.a);i++)if(r=xt(t.e,t.a,i),Or(t.e,r,t.a))return W(t.e,t.a,i)==t.b?t.j=l1(t.e,r)==257?3:1:t.j=l1(t.e,r)==257?1:3,t.j;}return e=K0(t.e,t.a,t.g),n=K0(t.e,t.a,t.b),n<e&&(n+=F0),Ht(t.e,t.a)==2?(A=n-e,A>3.0915926535897933&&A<3.191592653589793?(t.j=-1,t.j):(t.j=A<U1?4:2,t.j)):(P=K0(t.e,t.a,t.d),P<e&&(P+=F0),t.j=P<n?2:4,t.j);}function t_(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;for(L=k1(F,[f0,k],[7,6],15,[A,(t.U&6)!=0?2:1],2),D=0;D<A;D++)L[D][0]=D;if(o=xK(t,e,A),(t.U&4)!=0)for(t.Y=0,n=(t.U&4)!=0?N(t.I,0):null,Q=0;Q<A;Q++)L[Q][1]=RQ(n,o[Q].a,o[Q].b)?1:0,L[Q][1]==0&&++t.Y;else if((t.U&2)!=0)for(t.Y=A,P=0;P<t.V.q;P++)K(t.V,P)==0&&L[e[P]][1]==0&&(L[e[P]][1]=1,--t.Y);for(i=o,cu(L,new z7(t,i)),s=c(F,k,6,A,15,1),f=0;f<A;f++)y=L[f][0],s[y]=f;for(r=0;r<t.V.q;r++)e[r]=s[e[r]];}function e_(t){var e,A,n,P,r,i,f,D,Q,o,L,s;if(!t.A){for(t.A=new f1(),o=0,L=c(F,k,6,t.R.f,15,1),i=c(F,k,6,t.R.f,15,1),D=c(F,k,6,t.R.g,15,1),e=0;e<t.R.f;e++)if(L[e]==0&&(Ei(t.R,e)||$1(t.R,e)==1)){for(i[0]=e,f=1,Q=0,L[e]=++o,A=c(Pt,ft,6,t.R.g,16,1),r=0;r<f;r++)for(s=0;s<O(t.R,i[r]);s++)P=xt(t.R,i[r],s),(fA(t.R,P)||dt(t.R,P)==2||ri(t.R,P))&&(n=W(t.R,i[r],s),A[P]||(D[Q++]=P,A[P]=true),L[n]==0&&(i[f++]=n,L[n]=o));mt(t.A,new aF(i,f,D,Q));}}}function A_(t,e){i8();var A,n,P,r,i,f,D,Q,o,L;for(A=0;A<e.f;A++)if(e.e[A]>=3&&(o=e.u[A]&3,(o==1||o==2)&&!(e.o[A]==2&&e.j[A]==2&&e.n[A][0]==2&&e.n[A][1]==2&&e.C[A]<=7))){for(n=c(F,k,6,5,15,1),P=c(F,k,6,4,15,1),f=0;f<e.e[A];f++){for(r=e.i[A][f],i=e.k[A][f],D=0;D<f&&r>n[D];)++D;for(Q=f-1;Q>=D;Q--)n[Q+1]=n[Q],P[Q+1]=P[Q];n[D]=r,P[D]=i;}e.e[A]==3&&(n[3]=-1,P[3]=-1),n[4]=A,o==1&&(L=n[1],n[1]=n[0],n[0]=L,L=P[1],P[1]=P[0],P[0]=L),mt(t,new Wd(e,n,P));}}function n_(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(l=0;l<e.j.a.length;l++)if(N(e.k,l).length!=6&&t.i[l]){for(L=true,h=N(e.k,l),o=0;o<h.length;o++)if(!t.e[h[o]]){L=false;break;}if(L){for(f=-1,D=0,T=N(e.j,l),Q=0;Q<T.length;Q++)n=T[Q],y=t.g[n]?tj(t,n,false):pk(t,n,false),D<y&&(D=y,f=Q);if(f!=-1){if(s=T[f],A){for(P=T,r=0,i=P.length;r<i;++r)n=P[r],n!=s&&Lf(t,n,true);t.g[s]?tj(t,s,true):pk(t,s,true);}return Af(t,s),t.g[s]&&$W(t,T,h,f),true;}}}return  false;}function ZR(t,e,A,n){var P,r,i,f,D;if(e[A+1]!=40)throw At(new C1("SmilesParser: '$' for recursive SMARTS must be followed by '('. position:"+A));for(f=1,r=A+2;r<e.length&&f>0;)e[r]==40?++f:e[r]==41&&--f,++r;if(f>0)throw At(new C1("SmilesParser: Missing closing ')' for recursive SMARTS. '('-position:"+(A+1)));if(i=new zA(16,16),D=new sQ(t.k),VS(D,t.n.f),i6(D,i,e,A+2,r-1,true,true),pe(i,true),n.a.push(i),e[A-1]==33)for(P=0;P<i.q;P++)T1(i,P,re,true);return r-A;}function S5(t){var e,A;for(this.j=t.j,this.i=t.i,this.e=c(F,k,6,t.e.length,15,1),this.k=c(F,k,6,t.e.length,15,1),this.a=c(Ut,ht,6,t.e.length,15,1),this.b=c(Ut,ht,6,t.e.length,15,1),A=0;A<t.e.length;A++)this.e[A]=t.e[A],this.k[A]=t.k[A],this.a[A]=t.a[A],this.b[A]=t.b[A];if(t.f!=null)for(this.f=c(F,k,6,t.f.length,15,1),e=0;e<t.f.length;e++)this.f[e]=t.f[e];if(t.g!=null)for(this.g=c(F,k,6,t.g.length,15,1),e=0;e<t.g.length;e++)this.g[e]=t.g[e];}function cA(t,e){var A,n,P,r,i,f;if(e.a==e.b&&e.c==e.d){for(i=new Zt(t.$);i.a<i.c.a.length;)if(r=$t(i),xr(r,e.a,e.c))return  false;return  true;}for(f=ok(e),A=false,e.a>e.b&&(Iu(e),A=true),n=0;n<t.$.a.length;n++)if(r=N(t.$,n),!(r.c>f.c+f.b||r.d>f.d+f.a||f.c>r.c+r.b||f.d>r.d+r.a)){if(YD(t,e.a,e.c,n))return YD(t,e.b,e.d,n)?(A&&Iu(e),false):(qs(t,e,0,n),P=cA(t,e),A&&Iu(e),P);if(YD(t,e.b,e.d,n))return qs(t,e,1,n),P=cA(t,e),A&&Iu(e),P;}return A&&Iu(e),true;}function P_(t,e){var A,n,P,r,i,f,D;if(t.C[e]!=8||t.s[e]!=0||t.j[e]!=1||t.n[e][0]!=1)return  false;if(A=t.i[e][0],t.C[A]==6){for(i=t.j[A],n=0;n<i;n++)if(P=t.i[A][n],P!=e&&t.C[P]==8&&(r=u1(t,A,P),t.H[r]==2))return  true;}else if(t.C[A]==7){if(t.s[A]==1)return  true;}else if(t.C[A]==16){for(f=t.j[A],D=0,n=0;n<f;n++)P=t.i[A][n],P!=e&&t.C[P]==8&&(r=u1(t,A,P),t.H[r]==2&&++D);if(D==2)return  true;}else if(KK(t,e))return  true;return  false;}function r_(t,e,A){var n,P,r,i,f,D,Q,o;if(t.o[e]=A,t.n=null,P=gr(t.c,e),K7(t.s,P,t.o[e]),D=8+(t.a?0:1),sn(t.s,5,D)==0)return t.g[e]=new f1(),t.q=0,false;for(t.g[e]=t.s.F,i=t.g[e].a.length-1;i>=0;i--)for(Q=N(t.g[e],i),f=0;f<Q.length;f++)if(Q[f]!=-1&&(n=0,t.a&&P.s[f]==0&&b1(t.o[e],Q[f])!=0&&(o=pn(t.o[e],Q[f]),n=mu(t.o[e],Q[f],o)),t.k[e][f]>0&&t.k[e][f]>Ki(t.o[e],Q[f])-n)){LA(t.g[e],i);break;}for(t.q=1,r=0;r<t.o.length;r++)t.q*=t.g[r]?t.g[r].a.length:0;return  true;}function i_(t){t=t||{};var e=0;if(t.maxAVBL){if(!Number.isInteger(t.maxAVBL)||t.maxAVBL<0||t.maxAVBL>c1)throw new Error("maxAVBL must be an integer between 0 and 65535");e|=t.maxAVBL;}return (t.inflateToMaxAVBL===true||t.inflateToMaxAVBL===void 0&&t.inflateToHighResAVBL!==true)&&(e|=u0),t.inflateToHighResAVBL&&(e|=I0),t.chiralTextBelowMolecule!==false&&(e|=0),t.chiralTextAboveMolecule&&(e|=l8),t.chiralTextOnFrameTop&&(e|=y8),t.chiralTextOnFrameBottom&&(e|=F1),e;}function f_(t,e,A,n){var P,r,i,f,D,Q,o,L;for(L=c(F,k,6,t.g,15,1),D=c(Pt,ft,6,t.g,16,1),i=0;i<t.g;i++)L[i]=t.H[i],e[i]&&(D[i]=true,t.H[i]=1,t.T=0);for(P=0;P<t.f;P++)if(P!=n&&t.o[P]==0&&D[t.k[n][0]])for(o=0;o<t.j[P];o++)f=t.k[P][o],t.H[f]=1,t.T=0,D[f]=false;for(Q=0;Q<t.j[A];Q++)f=t.k[A][Q],t.H[f]=1,t.T=0,D[f]=false;if(Bf(new hr(t),D,false))return t.s[A]=0,t.T=0,t.j[n]!=t.e[n]&&gQ(t,W(t,n,t.e[n]-1)),ut(t,7),true;for(r=0;r<t.g;r++)w0(t,r,L[r]);return  false;}function df(t,e,A){var n,P,r,i,f;if(t.a=false,t.d=e,Kn(t.e[e]&c1)){for(f=xL(t),t.c=t.b=f,n=e-1;n>1&&LN(t.e[n-1]);)--n;for(;t.e[t.d]==44;){for(i=true,r=e-n,P=0;P<r;P++)if(t.e[n+P]!==t.e[t.d+1+P]){i=false;break;}if(!i)break;t.d+=1+r,f=xL(t),t.c>f?t.c=f:t.b<f&&(t.b=f);}return t.d-e;}return t.e[e]==123&&Kn(t.e[e+1]&c1)?(++t.d,t.c=xL(t),t.e[t.d++]!=45||!Kn(t.e[t.d]&c1)||(t.b=xL(t),t.e[t.d++]!=125)?0:t.d-e):(t.c=1,t.b=A,t.a=true,0);}function WR(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;if(dt(t,A)!=2&&!(A<t.g&&je(t.p,A))||(y=t.F[A]&3,y!=1&&y!=2))return  -1;for(D=0;D<2;D++){for(n=t.D[D][A],P=t.D[1-D][A],s=-1,i=false,o=0;o<t.j[n];o++)r=t.i[n][o],r!=P&&(r==e?i=true:s=r);if(i){for(L=-1,f=-1,Q=0;Q<t.j[P];Q++)r=t.i[P][Q],r!=n&&(L==-1?L=r:r>L?f=r:(f=L,L=r));return t.j[n]==2?t.j[P]==2?y==2?L:-1:y==2?L:f:t.j[P]==2?y==2^e<s?-1:L:y==2^e<s?f:L;}}return  -1;}function q5(t,e){var A,n,P,r,i,f,D,Q,o,L;if(e.e==0)throw At(new j8(gV));return P=e.e,e.d==1&&e.a[0]==1?e.e>0||t.e==0?t:new Ue(-t.e,t.d,t.a):(o=t.e,Q=t.d,n=e.d,Q+n==2?(L=Cn(V(t.a[0],h1),V(e.a[0],h1)),o!=P&&(L=p0(L)),G(L,0)>=0?ge(L):vP(ge(p0(L)))):(A=Q!=n?Q>n?1:-1:iQ(t.a,e.a,Q),A==0?o==P?I2:fc:A==-1?y9:(i=Q-n+1,r=c(F,k,6,i,15,1),f=o==P?1:-1,n==1?pR(r,t.a,Q,e.a[0]):Sj(r,i,t.a,Q,e.a,n),D=new Ue(f,i,r),bn(D),D)));}function _R(t){var e,A,n,P,r;for(t.a=k1(F,[f0,k],[7,6],15,[t.d.length,4],2),t.c=k1(F,[f0,k],[7,6],15,[t.d.length,2],2),t.e=c(F,k,6,t.d.length,15,1),e=c(F,k,6,2,15,1),P=0;P<t.d.length;P++){for(r=0;r<2;r++)e[0]=z(t.b,1-r,t.d[P]),e[1]=z(t.b,r,t.d[P]),ZU(t.b,e[1])&&h5(t.b,e[0],e,null),t.a[P][1+r]=e[1],t.c[P][r]=e[0];A=fR(t,t.a[P][1],t.c[P][0]),n=fR(t,t.a[P][2],t.c[P][1]),t.e[P]=EV[A][n],t.a[P][0]=Gb(t,t.a[P][1],t.c[P][0],A),t.a[P][3]=Gb(t,t.a[P][2],t.c[P][1],n);}}function D_(t){var e,A,n,P,r,i;for(VW(t),ut(t,31),n=0;n<t.f;n++){if(((t.u[n]&F1)>>18==1||(t.u[n]&F1)>>18==2)&&((t.u[n]&Tn)==0||(t.u[n]&3)==3))throw At(new C1(M6));if((t.u[n]&u0)!=0)throw At(new C1(V6));if(((t.u[n]&3)==1||(t.u[n]&3)==2)&&t.o[n]==0){for(e=c(Ut,ht,6,t.j[n],15,1),r=0;r<t.j[n];r++)e[r]=K0(t,n,t.i[n][r]);for(P=1;P<t.j[n];P++)if(!Or(t,t.k[n][P],n)){for(i=0;i<P;i++)if(!Or(t,t.k[n][i],n)&&(A=w.Math.abs(ze(e[P],e[i])),A<.08||A>Rp))throw At(new C1(E6));}}}}function u_(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(n=c(F,k,6,t.f,15,1),L=c(Pt,ft,6,t.f,16,1),L[A]=true,L[e]=true,n[0]=e,i=0,f=1;i<=f;){for(Q=0;Q<t.j[n[i]];Q++)_e(t,t.k[n[i]][Q])&&(r=t.i[n[i]][Q],L[r]||(n[++f]=r,L[r]=true));++i;}for(o=0;o<=f;o++)for(s=0;s<t.j[n[o]];s++)r=t.i[n[o]][s],!L[r]&&!fA(t,t.k[n[o]][s])&&qQ(t,n[o],r,L,null,null);for(L[A]=false,D=0;D<=f;D++)L[n[D]]=false;for(P=0;P<L.length;P++)L[P]&&(n[++f]=P);return n8(f+1),bP(n,c(F,k,6,f+1,15,1),0,f+1);}function Is(){Is=d1,FE=B(d(F,1),k,6,15,[P1,1162261467,cn,1220703125,362797056,1977326743,cn,387420489,xf,214358881,429981696,815730721,1475789056,170859375,Qr,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,cn,1291467969,1544804416,1838265625,60466176]),mE=B(d(F,1),k,6,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);}function Q_(t,e){var A,n,P,r,i;if(t.i!=0&&t.k!=null){for(n=j5(t)/t.p.c,ae(e,t.i),eL(e,vt(1.6*n),true,false),r=0;r<t.k.length;r++)if(t.k[r].q!=0){for(P=new M7(),A=0;A<t.k[r].q;A++)P.a=vt(P.a+kt(t.k[r],A)),P.b=vt(P.b+pt(t.k[r],A));P.a=P.a/t.k[r].q|0,P.b=P.b/t.k[r].q|0,P.a=vt(X1(t.e[r].R,P.a)),P.b=vt(K1(t.e[r].R,P.b)),i=t.c==0?""+(r+1):t.c==2?r<t.j?""+String.fromCharCode(65+r&c1):"R"+(r+1-t.j):t.c==1?r<t.n?""+String.fromCharCode(65+r&c1):"P"+(r+1-t.n):"?"+(r+1),kT(e,P.a,P.b,i);}}}function o_(t){var e,A,n,P,r,i,f,D,Q,o;for(r=0,A=0;A<t.R.f;A++)t.bb[A]!=0&&(t.bb[A]!=2||(t.Q&256)==0)&&++r;if(r!=0){for(o=c(F,k,6,r,15,1),r=0,n=0;n<t.R.f;n++)t.bb[n]!=0&&(t.bb[n]!=2||(t.Q&256)==0)&&(o[r]=t.bb[n]<<29|t.ab[n]<<24|t.f[n]<<12|n,++r);for(o.sort(me(D0.prototype.gd,D0,[])),i=0,Q=0,f=o[0]&Sn;;)if(++Q,Q==o.length||f!=(o[Q]&Sn)){for(P=c(F,k,6,Q-i,15,1),D=i;D<Q;D++)e=o[D]&4095,P[D-i]=e,t.gb[e]=true;if(mt(t.hb,P),Q==o.length)break;f=o[Q]&Sn,i=Q;}}}function $R(t){var e,A,n,P;if(t.length==0||(Gt(0,t.length),t.charCodeAt(0)!=62))return null;for(n=1,P=0,e=0;n<t.length;){if(Gt(n,t.length),t.charCodeAt(n)==60){if(P!=0)return null;P=n;}else if(Gt(n,t.length),t.charCodeAt(n)==62){if(e!=0)return null;e=n;}++n;}if(P!=0&&P<e)return Ct(P+1,e,t.length),t.substr(P+1,e-(P+1));if(n=t.indexOf("DT",1),n==-1)return null;for(A=n+2;t.length>A&&Kn((Gt(A,t.length),t.charCodeAt(A)));)++A;return A==n+2?null:(Ct(n,A,t.length),t.substr(n,A-n));}function U_(t,e,A,n,P,r,i,f,D,Q){var o,L,s,y,l,T,h,g,m,v;t!=e&&(o=O9(t,e),!(D[o[0]][o[1]]&&D[o[0]][o[1]].a.length==1)&&(s=f.a[i]-f.a[A]*w.Math.cos(P)-f.a[n]*w.Math.cos(r),m=f.a[A]*w.Math.sin(P),v=f.a[n]*w.Math.sin(r),y=m+v,l=m-v,h=w.Math.sqrt(s*s+l*l),T=w.Math.sqrt(s*s+y*y),g=c(F,k,6,2,15,1),g[0]=Q.D[0][i],g[1]=Q.D[1][i],L=D[o[0]][o[1]],L?(L.a[0]=w.Math.min(L.a[0],h),L.a[1]=w.Math.min(L.a[1],T)):D[o[0]][o[1]]=new _L(o,g,h,T,3)));}function L_(t,e,A,n,P){if(e[A-1]==42)t.d=6,t.c=Y(t.c,1);else if(e[A-1]==63)t.d=0;else if((e[A-1]==65||e[A-1]==97)&&P)t.d=6,t.c=Y(t.c,1),t.c=Y(t.c,e[A-1]==65?4:2),t.r=true;else switch(String.fromCharCode(e[A-1]).toUpperCase().charCodeAt(0)){case 66:A<n&&e[A]==114?(t.d=35,++A):t.d=5;break;case 67:A<n&&e[A]==108?(t.d=17,++A):t.d=6;break;case 70:t.d=9;break;case 73:t.d=53;break;case 78:t.d=7;break;case 79:t.d=8;break;case 80:t.d=15;break;case 83:t.d=16;}return A;}function s_(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(n=c(Ut,ht,6,2,15,1),y=MY(t,A),D=0;D<2;D++)if(A[3*D]!=-1){for(r=2-D,l=3-3*D,Q=0,s=0;s<3;s++)i=t.i[A[r]][s],i!=y[1-D]&&t.C[i]!=1&&(A[l]=i,e?n[Q++]=xQ(e,A):n[Q++]=IQ(t,A));return A[l]=-1,ih(n);}for(P=c(Ut,ht,6,2,15,1),o=0,f=0;f<3;f++)if(T=t.i[A[1]][f],T!=y[0]&&t.C[T]!=1){for(A[0]=T,L=0,s=0;s<3;s++)h=t.i[A[2]][s],h!=y[1]&&t.C[h]!=1&&(A[3]=h,e?P[L++]=xQ(e,A):P[L++]=IQ(t,A));n[o++]=ih(P);}return A[0]=-1,A[3]=-1,ih(n);}function aR(t,e){Uv();var A,n,P,r,i,f,D,Q,o,L,s,y;for(this.e=e,this.a=c(F,k,6,e.length+t.length,15,1),this.b=c(F,k,6,e.length+t.length,15,1),this.d=c(F,k,6,e.length+t.length,15,1),A=0,r=0,P=0,f=e,D=0,Q=f.length;D<Q;++D)i=f[D],n=HB(i.d.length),A+n<=64?(this.b[P]=A,A+=n):(++r,this.b[P]=0,A=0),this.a[P]=n,this.d[P]=r,++P;for(L=t,s=0,y=L.length;s<y;++s)o=L[s],n=HB(o.b.length),A+n<=64?(this.b[P]=A,A+=n):(++r,this.b[P]=0,A=0),this.a[P]=n,this.d[P]=r,++P;this.c=r+1;}function y_(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(Q=c(F,k,6,t.k.f,15,1),f=c(F,k,6,t.k.f,15,1),D=c(F,k,6,t.k.f,15,1),o=c(F,k,6,t.k.f,15,1),A=z(t.k,0,e),n=z(t.k,1,e),f[0]=A,f[1]=n,D[0]=-1,D[1]=e,Q[A]=1,Q[n]=2,o[A]=-1,o[n]=A,i=1,L=1;i<=L&&Q[f[i]]<15;){for(l=f[i],s=0;s<O(t.k,l);s++)if(P=W(t.k,l,s),P!=o[l]){if(r=xt(t.k,l,s),P==A){for(D[0]=r,y=0;y<=L;y++)t.g[D[s]]||(t.g[D[s]]=true,++t.c);return;}Y0(t.k,P)&&Q[P]==0&&(++L,f[L]=P,D[L]=r,Q[P]=Q[l]+1,o[P]=l);}++i;}}function xs(t,e){var A,n,P,r,i,f,D,Q,o,L;if(i=t.e,D=e.e,D==0)return t;if(i==0)return e.e==0?e:new Ue(-e.e,e.d,e.a);if(r=t.d,f=e.d,r+f==2)return A=V(t.a[0],h1),n=V(e.a[0],h1),i<0&&(A=p0(A)),D<0&&(n=p0(n)),be(),hu(l0(A,n),0)?ge(l0(A,n)):vP(ge(p0(l0(A,n))));if(P=r!=f?r>f?1:-1:iQ(t.a,e.a,r),P==-1)L=-D,o=i==D?wL(e.a,f,t.a,r):FL(e.a,f,t.a,r);else if(L=i,i==D){if(P==0)return be(),y9;o=wL(t.a,r,e.a,f);}else o=FL(t.a,r,e.a,f);return Q=new Ue(L,o.length,o),bn(Q),Q;}function l_(){var t,e,A,n,P,r,i;if(!p4)try{for(t=A2("bondLengthData.txt"),A=Y1(t),e=A==null?0:Q1(A,P1,Et),vo=c(F,k,6,e,15,1),R4=c(Se,PA,6,e,15,1),j4=c(Se,PA,6,e,15,1),VV=c(F,k,6,e,15,1),P=0;P<e;P++)if(i=Y1(t),i!=null&&(r=o8(i,"\\t"),r.length==4))try{vo[P]=Q1(r[0],P1,Et),R4[P]=Qn(r[1]),j4[P]=Qn(r[2]),VV[P]=Q1(r[3],P1,Et);}catch(f){if(f=a1(f),Xt(f,40))break;throw At(f);}p4=!0;}catch(f){if(f=a1(f),Xt(f,75))n=f,X9(n,(z1(),ci));else throw At(f);}}function T_(t,e){var A,n;return n={},A=t.G[e],n.single=E1(V(A,1),0),n.double=E1(V(A,2),0),n.triple=E1(V(A,4),0),n.delocalized=E1(V(A,8),0),n.metalLigand=E1(V(A,16),0),n.quadruple=E1(V(A,32),0),n.quintuple=E1(V(A,64),0),n.notRing=E1(V(A,128),0),n.ring=E1(V(A,256),0),n.aromatic=E1(V(A,qA),0),n.nonAromatic=E1(V(A,rP),0),n.ringSize=Jt(V(A,SP))>>17,n.brigdeMin=Jt(V(A,7680))>>9,n.brigdeSpan=Jt(V(A,cy))>>13,n;}function tj(t,e,A){if(t.f[e])return 0;if(K(t.j,e)==7){if(Ht(t.j,e)==3)return 6;if(O(t.j,e)==2)return t.a?0:4;}else {if(K(t.j,e)==8)return 10;if(K(t.j,e)==15||K(t.j,e)==33){if(O(t.j,e)==3)return 8;}else if(K(t.j,e)==16||K(t.j,e)==34||K(t.j,e)==52){if(O(t.j,e)==2)return 11;if(O(t.j,e)==3)return b1(t.j,e)==1?12:(A&&E0(t.j,e,1),5);}else if(K(t.j,e)==6)return b1(t.j,e)==-1?Ht(t.j,e)==3?16:ue(t.j,e)==3?15:14:(A&&E0(t.j,e,-1),Ht(t.j,e)!=ue(t.j,e)?2:3);}return 0;}function h_(t){var e,A,n,P,r,i,f;for(f=false,A=0;A<t.f;A++)((t.u[A]&Tn)==0||(t.u[A]&3)==3)&&(t.u[A]&=dy);for(r=0;r<t.g;r++)(dt(t,r)!=1||(t.F[r]&3)==0||(t.F[r]&3)==3)&&(t.F[r]&=-32513);if(t.L){if((t.I&qP)!=I0){for(i=c(Pt,ft,6,t.f,16,1),n=0;n<t.f;n++)(t.u[n]&Tn)!=0&&(t.u[n]&3)!=3&&(t.u[n]&F1)>>18==1&&(i[n]=true);for(P=0;P<t.f;P++)(t.u[P]&Tn)!=0&&(t.u[P]&3)!=3&&(Ve(t,P,1,0),f=true);for(e=0;e<t.f;e++)i[e]&&(we(t,e,1,false),Ve(t,e,1,-1),f=true);}t.L=false;}return a0(t,1),a0(t,2),f;}function c_(t){var e,A,n;if(t.a==0)return  true;if(t.d.length==1&&t.c.length==1)return (t.e.i==null||t.e.i[t.d[0]]==null||!t.e.i[t.d[0]][t.c[0]])&&(++t.e.b,t.e.f[t.d[0]]=t.e.b,t.e.d[t.c[0]]=t.e.b),true;if(Ck(t.d,t.e.e)||Ck(t.c,t.e.c)){for(e=w.Math.min(t.d.length,t.c.length),n=0;e!=0&&n<t.d.length;n++)for(A=0;A<t.c.length;A++)if(t.e.d[t.c[A]]==0&&(t.e.i==null||t.e.i[t.d[n]]==null||!t.e.i[t.d[n]][t.c[A]])){--e,++t.e.b,t.e.f[t.d[n]]=t.e.b,t.e.d[t.c[A]]=t.e.b;break;}return  true;}return  false;}function ej(t,e,A,n,P,r,i){yR();var f,D;this.a=e,this.p=c(F,k,6,4,15,1),this.k=c(F,k,6,2,15,1),f=new vh(),CF(t,e,this.p,f)!=null?(this.k[0]=f.e[0],this.k[1]=f.e[1]):WW(this,t),this.i=A[this.p[1]],this.j=A[this.p[2]],this.f=r[this.i],this.g=r[this.j],this.b=A[t.D[0][e]]==this.i,i?(this.d=NE,this.c=IE,this.e=xE):(this.d=Fx(f.d),this.d==null?(D=new P6(t,this.p),this.d=D.b,this.c=D.a,this.e=D.c):(this.c=Bx(f.d),this.e=vx(f.d))),p_(this,t),TW(this,t),MW(this,t,n,P);}function w_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;for(D=n+1;D<t.j.g.length;D++)if(D!=n&&t.e[e][D]&&t.e[A][D])return i=c(F,k,6,2,15,1),i[0]=A,i[1]=e,i;for(l=c(F,k,6,t.b,15,1),o=c(F,k,6,t.b,15,1),Q=c(F,k,6,t.b,15,1),r=0,L=0,Q[0]=e,o[e]=1;r<=L;){for(s=0;s<t.d[Q[r]].length;s++){if(P=t.d[Q[r]][s],P==A){if(r==0)continue;for(f=o[Q[r]]+1,i=c(F,k,6,f,15,1),i[0]=P,i[1]=Q[r],y=2;y<f;y++)i[y]=l[i[y-1]];return i;}o[P]==0&&t.c[P]!=-3&&(o[P]=o[Q[r]]+1,Q[++L]=P,l[P]=Q[r]);}++r;}return null;}function g_(t){var e,A,n,P;if(t.g.a.length+t.f.a.length<=1)return  false;for(e=ib(t),P=c(cl,e0,35,t.g.a.length+t.f.a.length,0,1),A=0;A<t.g.a.length+t.f.a.length;A++)if(P[A]=qb(A<t.g.a.length?N(t.g,A):N(t.f,A-t.g.a.length),null),P[A]){for(n=0;n<A;n++)if(P[n]&&(P[A].c+P[A].b>=P[n].c&&P[A].c<=P[n].c+P[n].b||P[A].d+P[A].a>=P[n].d&&P[A].d<=P[n].d+P[n].a))return  true;if(A!=0&&P[A-1]&&(P[A].c-P[A-1].c-P[A].b>5*e||P[A].d-P[A-1].d-P[A].a>5*e))return  true;}return  false;}function Ve(t,e,A,n){var P,r,i;if(A==0)t.u[e]&=dy,t.u[e]|=A<<18;else {if(n>=32)return;if(n==-1){for(i=-1,r=0;r<t.q;r++)r!=e&&A==(t.u[r]&F1)>>18&&i<((t.u[r]&F1)>>18!=1&&(t.u[r]&F1)>>18!=2?-1:(t.u[r]&jA)>>20)&&(i=(t.u[r]&F1)>>18!=1&&(t.u[r]&F1)>>18!=2?-1:(t.u[r]&jA)>>20);for(P=0;P<t.r;P++)A==(t.F[P]&768)>>8&&i<((t.F[P]&768)>>8!=1&&(t.F[P]&768)>>8!=2?-1:(t.F[P]&ln)>>10)&&(i=(t.F[P]&768)>>8!=1&&(t.F[P]&768)>>8!=2?-1:(t.F[P]&ln)>>10);if(n=i+1,n>=32)return;}t.u[e]&=dy,t.u[e]|=A<<18|n<<20;}t.T&=7;}function Q8(t,e,A,n){var P,r,i;if(A==0)t.F[e]&=-32513,t.F[e]|=A<<8;else {if(n>=32)return;if(n==-1){for(i=-1,r=0;r<t.q;r++)A==(t.u[r]&F1)>>18&&i<((t.u[r]&F1)>>18!=1&&(t.u[r]&F1)>>18!=2?-1:(t.u[r]&jA)>>20)&&(i=(t.u[r]&F1)>>18!=1&&(t.u[r]&F1)>>18!=2?-1:(t.u[r]&jA)>>20);for(P=0;P<t.r;P++)P!=e&&A==(t.F[P]&768)>>8&&i<((t.F[P]&768)>>8!=1&&(t.F[P]&768)>>8!=2?-1:(t.F[P]&ln)>>10)&&(i=(t.F[P]&768)>>8!=1&&(t.F[P]&768)>>8!=2?-1:(t.F[P]&ln)>>10);if(n=i+1,n>=32)return;}t.F[e]&=-32513,t.F[e]|=A<<8|n<<10;}t.T&=7;}function d_(t,e){var A,n,P,r,i,f,D;if(r=e.a,!((t.d>0?t.d:w.Math.floor((t.a-1)*co)+1)-r<0||r==0)&&(n=Ub(t)-r,!(n<=0))){if(t.a<54){UW(t,e,n);return;}f=Pi(n),P=gR((!t.c&&(t.c=mP(M1(t.f))),t.c),f),i=t.e-n,P[1].e!=0&&(A=rs(Um(P[1].e<0?P[1].e==0?P[1]:new Ue(-P[1].e,P[1].d,P[1].a):P[1]),f),A=SQ(jQ(P[0],0)?1:0,P[1].e*(5+A),e.b),A!=0&&(P[0]=y2(P[0],(be(),G(A,0)>=0?ge(A):vP(ge(p0(A)))))),D=new X7(P[0]),Ub(D)>r&&(P[0]=q5(P[0],(be(),qo)),--i)),t.e=Bm(i),t.d=r,Uh(t,P[0]);}}function Aj(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;for(h=c(U9,or,26,A,0,1),i=c(F,k,6,A,15,1),Q=c(F,k,6,A,15,1),r=c(F,k,6,t.q,15,1),P=0;P<t.q;P++)e[P]!=-1&&(r[P]=i[e[P]]++);for(D=0;D<t.r;D++)l=e[t.D[0][D]],T=e[t.D[1][D]],l==T&&l!=-1&&++Q[l];for(g=0;g<A;g++)h[g]=new zA(i[g],Q[g]),kU(t,h[g]);for(n=0;n<t.q;n++)e[n]!=-1&&Vn(t,h[e[n]],n,0,0);for(f=0;f<t.r;f++)l=e[t.D[0][f]],T=e[t.D[1][f]],l==T&&l!=-1&&uQ(t,h[l],f,0,0,r,false);for(L=h,s=0,y=L.length;s<y;++s)o=L[s],a0(o,1),a0(o,2);return h;}function B_(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(A=z(t.f,0,e),n=z(t.f,1,e),i=c(F,k,6,t.f.q,15,1),f=c(F,k,6,t.f.q,15,1),D=c(F,k,6,t.f.q,15,1),Q=c(F,k,6,t.f.q,15,1),i[0]=A,i[1]=n,f[1]=e,D[A]=1,D[n]=2,Q[0]=-1,Q[1]=0,r=1,o=1;r<=o;){for(L=0;L<O(t.f,i[r]);L++){if(P=W(t.f,i[r],L),r>1&&P==A){for(l=new RT(D[i[r]]),f[0]=xt(t.f,i[r],L),s=r,y=0;y<l.a.length;y++)l.a[y]=i[s],l.b[y]=f[s],s=Q[s];return l;}D[P]==0&&Ei(t.f,P)&&(i[++o]=P,f[o]=xt(t.f,i[r],L),D[P]=D[i[r]]+1,Q[o]=r);}++r;}return null;}function v_(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(A=0;A<t.k.f;A++)if(Y0(t.k,A))for(D=c(F,k,6,t.k.f,15,1),f=c(F,k,6,t.k.f,15,1),Q=c(F,k,6,t.k.f,15,1),f[0]=A,D[A]=1,Q[A]=-1,i=0,o=0;i<=o;){for(P=(D[f[i]]&1)==1?1:2,L=0;L<O(t.k,f[i]);L++)if(n=xt(t.k,f[i],L),dt(t.k,n)==P&&e[n]&&(r=W(t.k,f[i],L),D[r]==0)){if(P==1&&Y0(t.k,r)){for(s=f[i];s!=-1;)w0(t.k,u1(t.k,r,s),P==1?2:1),P=3-P,r=s,s=Q[s];return Gn(t.k,A,false),Gn(t.k,r,false),t.b-=2,true;}f[++o]=r,Q[r]=f[i],D[r]=D[f[i]]+1;}++i;}return  false;}function nj(t,e,A,n,P,r){var i,f,D,Q,o,L;for(t.j=e,t.d=A,t.n=c(F,k,6,n.length,15,1),t.f=c(F,k,6,P.length,15,1),t.k=as(t.j,false),t.p=as(t.j,true),t.e=as(t.d,false),t.i=as(t.d,true),t.o=Yk(t.j),t.g=Yk(t.d),t.q=Iy,Q=new oj(e,A,t.n,t.f,r),t.a=0;DK(Q);){for(++t.a,t.c=Q.q,f=Q.r,D=sR(Q);D;)ga(t,D),D=sR(Q);t.b=t.c,t.c<f?(i=new fj(t.j,t.d,t.n,t.f,t.c,r),o=ha(i),t.c+=i.b-i.g):(L=new LU(t.j,t.d),o=Ys(L,_h(L,t.n,t.f))),t.q<o&&(t.q=o,sA(t.n,0,n,0,n.length),sA(t.f,0,P,0,P.length));}return t.q!=Iy;}function F_(t,e){var A,n,P,r,i,f,D,Q,o,L;for(r=null,D=null,i=null,ut(t.g,t.N),t.o=c(F,k,6,t.g.f,15,1),n=0;n<t.g.f;n++)t.o[n]=O(t.g,n);if(t.p!=0){for(Q=new zA(t.g.q,t.g.r),L=c(Pt,ft,6,t.g.q,16,1),P=0;P<t.g.q;P++)L[P]=!t.D[P];for(fi(t.g,Q,L,true,null),ut(Q,t.N),Oj(t,Q,e),r=t.j,D=t.n,i=t.k,o=0,A=0;A<t.g.f;A++)t.D[A]||(t.o[A]=O(Q,o++));}if(Oj(t,t.g,e),t.p!=0){for(o=0,A=0;A<t.g.q;A++)t.D[A]||(t.j[A]=r[o],t.k[A]=i[o++]);for(o=0,f=0;f<t.g.r;f++)!t.D[z(t.g,0,f)]&&!t.D[z(t.g,1,f)]&&(t.n[f]=D[o++]);}}function m_(t,e){var A,n,P,r,i,f,D,Q,o;if(A=new fD(),!ul)return mt(A.a,new Ze(aM,2)),-999;for(mt(A.a,new Ze("Found sub-structure fragments and their contributions:",2)),mt(A.a,new Ze("(yellow atoms carry at least one more substituent)",2)),Q=0,D=0,r=0,o=new bD(1),P=new JA(),i=0;i<li.a.a.length;i++)f2(new GA(false),P,d3(li,i)),Dn(o,e),Ln(o,P),sn(o,1,o.c)>0&&(f=a7(li,i),f<-1?Q+=f:(D+=f,++r),ZP(A,d3(li,i),1),mt(A.a,new Ze(""+f,3)));return r==0?-1:(n=Q+D/w.Math.sqrt(r),n=n+.0625*(r-40),t.a=A,n);}function Pj(t){J1();var e,A,n,P,r;for(Jr.call(this,t),sb(this,I5(this)),r=(ut(this,7),this.p),this.b=c(xV,k,6,r.j.a.length,15,1),Hq(this.b),e=false,A=true;!e&&A;)for(e=true,A=false,P=0;P<r.j.a.length;P++)this.b[P]==2&&(this.b[P]=k$(this,P),this.b[P]!=2&&(A=true)),this.b[P]==2&&(e=false);if(!e)throw At(new t7());for(this.a=c(F,k,6,this.q,15,1),n=0;n<this.a.length;n++)if(this.a[n]=-1,this.a[n]=eO(this,n),this.a[n]==0)throw At(new s7("Couldn't assign an atom type to atom "+n+" ("+Z0[this.C[n]]+")"));}function k_(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(r=k1(F,[f0,k],[7,6],15,[2,32],2),i=0;i<2;i++){for(A=c(F,f0,7,32,0,2),s=0,P=0;P<32;P++)if(e[i][P]!=null){for(o=e[i][P].length,A[P]=c(F,k,6,o,15,1),f=0;f<o;f++)A[P][f]=t.f[e[i][P][f]];A[P].sort(me(D0.prototype.gd,D0,[])),++s;}for(L=s;L>0;L--){for(Q=0,D=null,n=0;n<32;n++)if(A[n]!=null){if(D==null||D.length<A[n].length)D=A[n],Q=n;else if(D.length==A[n].length){for(f=D.length-1;f>=0;f--)if(D[f]<A[n][f]){D=A[n],Q=n;break;}}}r[i][Q]=L,A[Q]=null;}}return r;}function b_(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(r=0,A=0;A<t.V.q;A++)P0(t.V,A)&&++r;for(y=t.V.q,l=t.V.r,t.gb=VD(t.gb,t.gb.length+r),t.jb=VD(t.jb,t.jb.length+r),i=c(F,k,6,t.V.q,15,1),D=a0(t.V,1),Q=a0(t.V,2),n=0;n<y;n++)P0(t.V,n)&&(L=t.V.q,t.gb[L]=t.gb[n],t.jb[L]=t.jb[n],i[n]=L,Vn(t.V,t.V,n,D,Q));for(f=0;f<l;f++)FP(t.V,f)&&uQ(t.V,t.V,f,D,Q,i,false);for(P=0;P<y;P++)gP(t.V,P,false);for(e=y;e<t.V.q;e++)We(t.V,e,0,false);if(t.I)for(o=t.I.a.length-1;o>=0;o--)s=N(t.I,o),s.g&&!Xt(s,62)&&mt(t.I,s.Gb());}function R_(t){var e,A,n,P,r,i,f,D;if(t.g!=null)for(i=new Dp(t),t.b=new f1(),P=0;P<t.g.length;P++)n=lO(i,P),n==0?(xb(i,P),f=Zm(t,P,2),e=Zm(t,P,1),A=Om(t,P),f==1&&e==1&&!A&&(ZG(t,P,i.a+i.f++),mt(t.b,new zi(P,1,-1,-1))),f>0?(A&&(Fh(t,P,i.i+i.g++,2),++f),mt(t.b,new zi(P,1,-1,-1))):e>0?(A&&Fh(t,P,i.a+i.f++,1),mt(t.b,new zi(P,1,-1,-1))):A&&(Fh(t,P,i.a+i.f++,1),mt(t.b,new zi(P,1,-1,-1)))):n==1&&(Om(t,P)?(r=VG(i,P),D=hG(i,P),mt(t.b,new zi(P,2,r,D))):(xb(i,P),mt(t.b,new zi(P,1,-1,-1))));}function NQ(t){jT(),this.d=t,ut(this.d,15),this.j=new f1(),this.k=c(Pt,ft,6,(i8(),Fl).length,16,1),this.i=c(F,k,6,Fl.length,15,1),rtt(this.j,t),this.i[0]=this.j.a.length,this.i[1]=-this.j.a.length,ma(this.j,t),this.i[1]+=this.j.a.length,this.i[2]=-this.j.a.length,WY(this.j,t),this.i[2]+=this.j.a.length,this.i[4]=-this.j.a.length,A_(this.j,t),this.i[4]+=this.j.a.length,this.i[5]=-this.j.a.length,F$(this.j,t),this.i[5]+=this.j.a.length,this.i[3]=-this.j.a.length,a$(this.j,t),this.i[3]+=this.j.a.length;}function j_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;for(i=c(F,k,6,A.q,15,1),o=c(F,k,6,A.q,15,1),Q=c(Ut,ht,6,A.q,15,1),o[0]=e,D=0,L=0;D<=L;){for(l=o[D],s=0;s<A.e[l];s++)f=A.i[l][s],i[f]==0&&f!=e&&(o[++L]=f,i[f]=i[l]+1,i[f]==2?Q[f]=f<e?t[e][f].a[0]:t[f][e].a[0]:i[f]>2&&(Q[f]=Q[l]+B9(n,A.k[l][s]),f<e&&!t[e][f]&&(i[f]==3?t[e][f]=new Pg():(y=c(F,k,6,2,15,1),y[0]=o[1],y[1]=l,t[e][f]=new _L(O9(e,f),y,(r=A.C[e],(r<(T2(),IA).length?IA[r]:2)+(P=A.C[f],P<IA.length?IA[P]:2)),Q[f],0)))));++D;}}function o8(t,e){var A,n,P,r,i,f,D,Q;for(A=new RegExp(e,"g"),D=c(it,Dt,2,0,6,1),n=0,Q=t,r=null;;)if(f=A.exec(Q),f==null||Q==""){D[n]=Q;break;}else {if(i=f.index,r==null&&i==0&&f[0].length==0){Q=oA(Q,i+f[0].length,Q.length),A.lastIndex=0,r=Q;continue;}D[n]=(Ct(0,i,Q.length),Q.substr(0,i)),Q=oA(Q,i+f[0].length,Q.length),A.lastIndex=0,r==Q&&(D[n]=(Ct(0,1,Q.length),Q.substr(0,1)),Q=(Gt(1,Q.length+1),Q.substr(1))),r=Q,++n;}if(t.length>0){for(P=D.length;P>0&&D[P-1]=="";)--P;P<D.length&&(D.length=P);}return D;}function Ns(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(n=t.e[e],P=c(Ut,ht,6,n,15,1),y=0;y<n;y++)P[y]=K0(t,e,t.i[e][y]);for(l=1;l<n;l++)for(T=0;T<l;T++)if(r=w.Math.abs(ze(P[l],P[T])),r<.08||r>Rp){for(i=0,f=0,h=0;h<n;h++)h!=l&&h!=T&&(i+=w.Math.abs(tv(P[l],P[h])),f+=w.Math.abs(tv(P[T],P[h])));if(Q=i<f?t.k[e][l]:t.k[e][T],dt(t,Q)==1&&(!A||!(t.H[Q]==257||t.H[Q]==129)))return Q;}for(g=-1,D=0,s=0;s<n;s++)o=t.i[e][s],L=t.k[e][s],m=HQ(t,L,o),D<m&&(!A||!(t.H[L]==257||t.H[L]==129))&&(D=m,g=L);return g;}function p_(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T;if(dt(e,t.a)==1&&(Ie(e,t.a)==1||Ie(e,t.a)==2)){for(Q=false,f=0;f<2;f++)for(n=t.p[3*f],A=t.p[1+f],T=t.p[2-f],o=0;o<e.j[A];o++)if(l=e.i[A][o],l!=T&&l!=n){l<n&&(Q=!Q);break;}for(Ie(e,t.a)==1&&(Q=!Q),P=0,r=0,D=0;D<t.d.length;D++)t.d[D]<180^Q&&(r+=t.c[D],++P);if(P<t.d.length){for(y=c(zt,_t,6,P,15,1),L=c(zt,_t,6,P,15,1),s=c(zt,ee,16,P,0,2),P=0,i=0;i<t.d.length;i++)t.d[i]<180^Q&&(y[P]=t.d[i],L[P]=(t.c[i]*100/r|0)<<16>>16,s[P]=t.e[i],++P);t.d=y,t.c=L,t.e=s;}}}function C_(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(i=c(F,k,6,t.s,15,1),P=0;P<e.f;P++){for(y=e.j[P]+(e.i[P].length-e.e[P]),s=0,D=0;D<e.i[P].length;D++)if(D<e.j[P]||D>=e.e[P]){for(l=2*A[e.i[P][D]],r=e.k[P][D],dt(e,r)==2&&(r<e.g&&je(e.p,r)||++l),o=0;o<s&&!(l<i[o]);o++);for(L=s;L>o;L--)i[L]=i[L-1];i[o]=l,++s;}for($e(t.b[P],P),W1(t.b[P],t.a,A[P]),Q=y;Q<t.s;Q++)W1(t.b[P],t.a+1,0);for(f=0;f<y;f++)W1(t.b[P],t.a+1,i[f]);}for(n=e.f;n<t.b.length;n++)for($e(t.b[n],n),W1(t.b[n],t.a,e.f+1),f=0;f<t.s;f++)W1(t.b[n],t.a+1,0);}function rj(t){var e,A,n,P,r,i,f,D,Q,o;switch(e=null,o=t.c.length,t.e){case 1:for(e=c(zt,_t,6,2*o,15,1),n=0;n<o;n++)e[n]=t.c[n],e[o+n]=t.c[n];return e;case 2:for(P=t.a[0]==0?1:0,r=t.a[o-1]==180?o-1:o,Q=r-P,e=c(zt,_t,6,o+Q,15,1),i=0;i<o;i++)e[i]=t.c[i];for(f=P;f<r;f++)e[e.length-1-f+P]=t.c[f];return e;case 3:for(P=t.a[0]==0?1:0,r=t.a[o-1]==90?o-1:o,Q=r-P,e=c(zt,_t,6,2*o+2*Q,15,1),D=0;D<o;D++)e[D]=t.c[D],e[o+Q+D]=t.c[D];for(A=P;A<r;A++)e[o+Q-1-A+P]=t.c[A],e[e.length-1-A+P]=t.c[A];return e;default:return t.c;}}function Ln(t,e){var A,n,P,r,i;if(!e||e.q==0||!e.K){t.g=null;return;}for(t.g=e,t.r=false,ut(t.g,1),t.N=7,n=0;n<t.g.f;n++)gt(V(U0(t.g,n),{l:de,m:0,h:3}),0)&&(t.N=15);for(i=0;i<t.g.g;i++)(Ae(t.g,i)&T8)!=0&&(t.N=15);for(t.L&&t.N!=7&&ut(t.H,t.N),t.p=0,t.q=0,t.D=c(Pt,ft,6,t.g.f,16,1),P=0;P<t.g.f;P++)t.D[P]=oe(t.g,P),t.D[P]&&++t.p;if(t.d=0,t.f=null,t.i=null,t.p!=0){for(r=0;r<t.g.g;r++)(t.D[z(t.g,0,r)]||t.D[z(t.g,1,r)])&&++t.q;for(A=0;A<t.g.q;A++)Gn(t.g,A,t.D[A]);t.f=c(F,k,6,t.g.q,15,1),t.d=n9(t.g,t.f,true,false);}}function ij(t,e){ng();var A,n,P,r,i,f;r=new Vs(t);try{if(f=new P3(),rA(f,nH+d8),Vi(f.a,e??""),rA(f,d8+(""+d8)),rA(f,Sy+p5(t,!0,11)),rA(f,d8),P=r.g.a.length,n=r.f.a.length,rA(f,pp+P+" "+n+d8),i=gX(r),P>0){for(rA(f,iH+d8),A=0;A<r.g.a.length;A++)rA(f,uv(N(r.g,A),i));rA(f,"M  V30 END REACTANT"+d8);}if(n>0){for(rA(f,DH+d8),A=0;A<r.f.a.length;A++)rA(f,uv(N(r.f,A),i));rA(f,"M  V30 END PRODUCT"+d8);}rA(f,D9+d8),this.a=f.a;}catch(D){if(D=a1(D),Xt(D,19))z1();else throw At(D);}}function H_(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(D=null,l=xn(t.R),L=0;L<l.j.a.length;L++)if(l.f[L]){for(r=0,s=N(l.j,L),A=s,n=0,P=A.length;n<P;++n)e=A[n],ys(t,e)&&++r;if(r!=0)if(y=N(l.k,L),D==null&&(D=c(Pt,ft,6,t.R.g,16,1)),r==s.length){for(Q=-1,o=Et,i=0;i<s.length;i++)o>t.B[y[i]]&&(o=t.B[y[i]],Q=i);for(;r>0;)D[y[Q]]=true,Q=uU(Q+2,s.length),r-=2;}else {for(f=0;ys(t,s[f]);)++f;for(;!ys(t,s[f]);)f=uU(f+1,s.length);for(;r>0;)for(D[y[f]]=true,f=uU(f+2,s.length),r-=2;!ys(t,s[f]);)f=uU(f+1,s.length);}}return D;}function M_(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(t.b=UA(t.c),r=ZV,f=0,Q=r.length;f<Q;++f)n=r[f],Nt(t.b,n);for(s=t.b.Ec(),s.setEditable(true),Xx(t.b,""+vt(t.e.c)),t.a=UA(t.c),P=WV,i=0,D=P.length;i<D;++i)n=P[i],Nt(t.a,n);for(o=0,A=0;A<hl.length;A++)if(t.e.d==hl[A]){o=A;break;}Wt(t.a,o),e=B(d(F,1),k,6,15,[8,-2,4,-2,8]),L=B(d(F,1),k,6,15,[8,-2,4,-2,8,-2,8]),WU(t.c,e,L),i0(t.c,Le(t.c,"Text size:"),1,1),i0(t.c,t.b,3,1),i0(t.c,Le(t.c,"Text style:"),1,3),i0(t.c,t.a,3,3),t.d=zu(t.c,20,3),N8(t.d,t.e.e),ce(t.c,t.d,1,5,3,5);}function V_(t,e){var A,n,P;return n=vk(t,e),A=$0(t,t.D[0][e])||$0(t,t.D[1][e]),P=A?16:1,t.H[e]==64?(t.H[e]=P,t.T=0,true):t.H[e]==32?(t.H[e]=n>4?64:P,t.T=0,true):t.H[e]==4?(t.H[e]=n>3?32:P,t.T=0,true):t.H[e]==2&&(t.H[e]=386,t.T&=7,(t.F[e]&128)==0)?true:t.H[e]==386?(n>2?t.H[e]=4:t.H[e]=P,t.T=0,true):(384&t.H[e])!=0?(t.H[e]=1,t.T&=7,true):!A&&n<2?false:t.H[e]==1?(t.H[e]=2,t.T=0,true):n<1?false:t.H[e]==16?(t.H[e]=1,t.T=0,true):false;}function E_(t,e){var A,n;if(e.j==1){if(A=zh(t,e),!(A>=0&&A<34&&(A!=t.b||A==20||A==33)&&(A!=19||(t.a.U&4)!=0)&&(A!=21||(t.a.U&8)!=0)))return;A==20&&A==t.b&&(t.d=++t.d%3),t.k=A,pD(t.n);}else if(e.j==2){if(t.k==-1)return;if(n=zh(t,e),n!=t.k||t.k==19&&(t.a.U&4)==0||t.k==21&&(t.a.U&8)==0){t.k=-1,pD(t.n);return;}if(t.k=-1,n==0||n==1||n==17){pD(t.n),UK(t.a,n);return;}t.b=n,pD(t.n),t.b==20?tQ(t.a,t.d==0?101:t.d==1?103:102):t.b==33?tm(t.a,-1,new Y7(t,n)):tQ(t.a,n);}else (e.j==6||e.j==5)&&(A=zh(t,e),A==t.k&&(A=-1),A!=t.f&&(t.f=A,pD(t.n)));}function ri(t,e){var A,n,P,r,i,f;return t.H[e]!=1||e<t.g&&je(t.p,e)||(t.F[e]&64)!=0&&(t.p&&e<t.g?sP(t.p,e):0)<7||(A=t.D[0][e],!(A<t.f&&r0(t.p,A))||(t.p&&A<t.f?iA(t.p,A):0)<5)||(n=t.D[1][e],!(n<t.f&&r0(t.p,n))||(t.p&&n<t.f?iA(t.p,n):0)<5)?false:(P=uF(t,A,n),r=uF(t,n,A),(t.p&&A<t.f?iA(t.p,A):0)>5&&(t.p&&n<t.f?iA(t.p,n):0)>5?P+r>2:(i=Mk(t,A,n),f=Mk(t,n,A),P==2&&f>=1||r==2&&i>=1||i==2&&(r>=1||f>=1)||f==2&&(P>=1||i>=1)));}function S_(t){var e,A,n,P,r,i,f;for(t.L=true,n=Nh(t),t.P&&D2(t.P,t.f)&&(n=Nh(t)),n2(t,false)&&U2(t),i=true;t.U<t.R.f&&i;){for(P=k_(t,n),e=0;e<t.R.f;e++)$e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),W1(t.e[e],20,0),!t.cb[e]&&t.bb[e]!=0&&Qe(t.e[e],x1(t.bb[e]<<18,j1(P[t.bb[e]==1?0:1][t.ab[e]],8))),f=t.db[e],t.eb[e]&&(f==1?f=2:f==2&&(f=1)),Qe(t.e[e],f<<4);for(A=0;A<t.R.g;A++)Qe(t.e[z(t.R,0,A)],t.o[A]),Qe(t.e[z(t.R,1,A)],t.o[A]);if(r=Xn(t),t.U==r)break;t.U=r,i=false,t.P&&D2(t.P,t.f)&&(i=true,n=Nh(t)),n2(t,false)&&(i=true,U2(t));}}function q_(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(e=0;e<t.j.f;e++)if(t.d[e])for(i=false,f=c(F,k,6,t.j.f,15,1),l=c(F,k,6,t.j.f,15,1),D=c(F,k,6,t.j.f,15,1),f[0]=e,l[e]=-1,D[e]=1,P=0,Q=0;P<=Q&&!i;){for(r=f[P],o=0;o<O(t.j,r)&&!i;o++)if(L=(D[r]&1)==1^dt(t.j,xt(t.j,r,o))>1,n=W(t.j,r,o),D[n]==0&&L)if(t.d[n]){if((D[r]&1)==1){for(t.d[e]=false,t.d[n]=false,t.k+=2,y=r,s=0;s<D[r];s++)A=u1(t.j,n,y),t.e[A]&&(t.e[A]=false,--t.c),iT(t.j,A,dt(t.j,A)==1?2:dt(t.j,A)-1),n=y,y=l[n];i=true;}}else f[++Q]=n,l[n]=r,D[n]=D[r]+1;++P;}}function SA(t,e){J1();var A,n,P,r,i;if((e&256)!=0&&at(t,"?"))return 0;for(n=1;n<=128;n++)if(!at(t,_1)&&K9(t,Z0[n]))return n;if((e&2)!=0){for(P=129;P<=144;P++)if(K9(t,Z0[P]))return P;}if((e&4)!=0){for(r=146;r<=148;r++)if(K9(t,Z0[r]))return r;}if((e&1)!=0){for(i=151;i<=152;i++)if(K9(t,Z0[i]))return i;}if((e&32)!=0&&K9(t,Z0[153]))return 153;if((e&8)!=0&&K9(t,Z0[154]))return 154;if((e&16)!=0&&K9(t,Z0[145]))return 145;if((e&128)!=0&&K9(t,Z0[159]))return 159;if((e&64)!=0){for(A=171;A<=190;A++)if(K9(t,Z0[A]))return A;}return 0;}function I_(t,e){var A,n,P,r,i,f,D;if(t.db[e]==1||t.db[e]==2){if(f=false,$1(t.R,e)==2&&O(t.R,e)==2)try{for(i=0;i<2;i++)if(A=W(t.R,e,i),O(t.R,A)==3){for(P=c(F,k,6,2,15,1),r=0,D=0;D<O(t.R,A);D++)pA(t.R,A,D)==1&&(P[r++]=W(t.R,A,D));t.f[P[0]]>t.f[P[1]]^t6(t,A,P[0],P[1])&&(f=!f);}}catch(Q){if(Q=a1(Q),Xt(Q,19)){t.$[e]=3;return;}else throw At(Q);}else {try{n=MK(t,e);}catch(Q){if(Q=a1(Q),Xt(Q,19)){t.$[e]=3;return;}else throw At(Q);}for(i=1;i<n.length;i++)for(D=0;D<i;D++)t.f[n[i]]<t.f[n[D]]&&(f=!f);}t.db[e]==1^f?t.$[e]=1:t.$[e]=2;}}function x_(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T;for(L=-1,o=0;o<t.j[A];o++)t.n[A][o]==2&&(L=t.i[A][o]);for(r=c(F,k,6,n,15,1),T=c(F,k,6,4,15,1),T[0]=L,T[1]=A,T[2]=e,D=0,Q=0;Q<t.e[e];Q++)i=t.i[e][Q],t.C[i]==1&&(D==0&&(T[3]=i),r[D++]=i);y=!(A<t.f&&r0(t.p,A))&&n==1?1:2,l=c(zt,_t,6,y,15,1),f=c(zt,_t,6,y,15,1),s=k1(zt,[ee,_t],[16,6],15,[y,2],2),!(A<t.f&&r0(t.p,A))&&n==1?(l[0]=0,f[0]=100,s[0][0]=-15,s[0][1]=15):(l[0]=0,l[1]=180,f[0]=50,f[1]=50,s[0][0]=-15,s[0][1]=15,s[1][0]=165,s[1][1]=195),mt(P,new IL(l,f,s,T,r,1));}function Re(t){var e,A,n,P,r;return t.g!=null?t.g:t.a<32?(t.g=Qa(M1(t.f),vt(t.e)),t.g):(P=$5((!t.c&&(t.c=mP(M1(t.f))),t.c),0),t.e==0?P:(e=(!t.c&&(t.c=mP(M1(t.f))),t.c).e<0?2:1,A=P.length,n=-t.e+A-e,r=new V0(),r.a+=""+P,t.e>0&&n>=-6?n>=0?FD(r,A-vt(t.e),"."):(hF(r,e-1,e-1,"0."),FD(r,e+1,$n(Eo,0,-vt(n)-1))):(A-e>=1&&(FD(r,e,"."),++A),FD(r,A,"E"),n>0&&FD(r,++A,"+"),FD(r,++A,""+he(M1(n)))),t.g=r.a,t.g));}function N_(t){var e,A,n,P,r,i,f;if(n=new fD(),mt(n.a,new Ze("Solubility values are estimated applying an atom-type based increment system.",2)),mt(n.a,new Ze($M,2)),mt(n.a,new Ze(t4,2)),mt(n.a,new Ze("Base value = -0.530",2)),A=c(F,k,6,zf.length,15,1),t)for(Di(t),ut(t,7),e=0;e<t.f;e++){f=-1;try{f=Ay(t,e,2144);}catch(D){if(D=a1(D),!Xt(D,19))throw At(D);}for(i=0;i<zf.length;i++)if(n0(Ql[i],f)){++A[i];break;}}for(P=new Pu("#0.000"),r=0;r<zf.length;r++)A[r]!=0&&ZP(n,""+A[r]+" * "+ig(P,zf[r])+"   AtomType: 0x"+Ih(Ql[r]),2);return n;}function I5(t){var e,A,n,P,r,i,f,D;for(f=c(Pt,ft,6,t.q,16,1),A=0;A<t.q;A++)f[A]=t.C[A]==1&&t.A[A]==0&&t.s[A]==0&&(t.u[A]&w8)==0&&(t.t==null||t.t[A]==null);for(D=c(Pt,ft,6,t.q,16,1),i=0;i<t.r;i++){if(n=t.D[0][i],P=t.D[1][i],dt(t,i)!=1){f[n]=false,f[P]=false;continue;}D[n]&&(f[n]=false),D[P]&&(f[P]=false),f[n]&&$0(t,P)&&t.C[P]!=13&&(f[n]=false),f[P]&&$0(t,n)&&t.C[n]!=13&&(f[P]=false),D[n]=true,D[P]=true;}for(r=0;r<t.r;r++)f[t.D[0][r]]&&f[t.D[1][r]]&&(f[t.D[0][r]]=false,f[t.D[1][r]]=false);for(e=0;e<t.q;e++)D[e]||(f[e]=false);return f;}function O_(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;for(g=0;g<t.e.length;g++)if(t.e[g]){for(h=false,n=N(t.j,g),r=0,f=n.length;r<f;++r)e=n[r],t.a[e]|=u0,tK(t,e)&&(h=true);for(o=N(t.k,g),s=0,T=o.length;s<T;++s)D=o[s],t.c[D]|=u0;if(t.f[g]){for(A=N(t.j,g),P=0,i=A.length;P<i;++P)e=A[P],t.a[e]|=I0;for(Q=N(t.k,g),L=0,l=Q.length;L<l;++L)D=Q[L],t.c[D]|=I0;}if(h){for(A=N(t.j,g),P=0,i=A.length;P<i;++P)e=A[P],t.a[e]|=l8;for(Q=N(t.k,g),L=0,l=Q.length;L<l;++L)D=Q[L],t.c[D]|=l8;}}for(y=new Zt(t.b);y.a<y.c.a.length;)D=$t(y).a,t.c[D]=0;}function tP(t){var e,A,n,P,r,i,f,D,Q;e=null;try{for(e=new nn(new Bi((P=XD(t),c0(),P))),D=Q1(B1(Y1(e)),P1,Et),n=o8(B1(Y1(e)),","),Q=k1(fP,[nA,e0],[8,1],5,[D,n.length],2),i=0;(r=Y1(e))!=null&&i<D;i++)for(f=o8(B1(r),","),A=0;A<n.length;A++)switch(Ji(n[A],0)){case 105:Q[i][A]=m1(Q1(B1(f[A]),P1,Et));break;case 102:Q[i][A]=se(B1(f[A]));break;case 99:Q[i][A]=mG(Ji(ai(ai(B1(f[A]),"'"),'"'),0));}return Q;}catch(o){if(o=a1(o),Xt(o,75))z1();else throw At(o);}return k1(fP,[nA,e0],[8,1],5,[1,1],2);}function G_(t,e,A,n,P){var r,i;return !(K(t.j,A)==6&&w.Math.abs(O(t.j,A)-O(t.d,P))>1||K(t.j,A)==8&&O(t.j,A)==2&&Xr(t.j,e,8)>Xr(t.d,n,8)||K(t.d,P)==8&&O(t.d,P)==2&&Xr(t.j,e,8)<Xr(t.d,n,8)||K(t.j,A)==8&&O(t.j,A)==2&&O(t.d,P)==2&&(i=W(t.j,A,0)==e?0:1,r=W(t.d,P,0)==n?0:1,cs(t.p[A][i][3],t.i[P][r][3])!=0)||K(t.j,A)==7&&Xr(t.j,e,7)<Xr(t.d,n,7)||K(t.d,P)==7&&Xr(t.j,e,7)>Xr(t.d,n,7)||pr(t.j,u1(t.j,e,A))==3^pr(t.d,u1(t.d,n,P))==3);}function Os(t,e){Wr();var A,n,P,r,i,f,D,Q,o,L,s;return A=(xA[0]*((e&PP)>>16)+xA[1]*((e&AP)>>8)+xA[2]*(e&255))/255,i=(xA[0]*((t&PP)>>16)+xA[1]*((t&AP)>>8)+xA[2]*(t&255))/255,P=w.Math.abs(A-i),P>bf||(f=(kQ(),RR(((e&PP)>>16)/255,((e&AP)>>8)/255,(e&255)/255,null)),D=RR(((t&PP)>>16)/255,((t&AP)>>8)/255,(t&255)/255,null),Q=w.Math.abs(D[0]-f[0]),Q>.5&&(Q=1-Q),s=1-w.Math.max(D[1],f[1]),n=w.Math.abs(i+A-1),o=w.Math.cos(U1*Q*3),L=bf*w.Math.max(s,w.Math.max(n,o)),P>L)?t:(r=i>A?i+L>1:i-L>0,e5(t,r?A-L:A+L));}function Bf(t,e,A){var n,P,r,i;if(ut(t.j,1),i=new oU(t.j,1),w$(t,e,i),t.c==0)return  true;if(A)for(P=0;P<t.j.f;P++)t.d[P]&&K(t.j,P)==7&&(t.f[P]||O(t.j,P)==3&&!t.g[P])&&E0(t.j,P,1);for(t.a=false,Gz(t,A),t.j.K&&bW(t),ka(t,i),FG(t,i),RY(t),A&&na(t),pQ(t);U$(t,i,A);)pQ(t);for(;XX(t,i,A);)pQ(t);for(;n_(t,i,A);)pQ(t);for(;t.c!=0;)for(r=0;r<t.j.g;r++)t.e[r]&&(t2(t,r),pQ(t));for(A&&W_(t,A),t.b-t.k>=2&&q_(t),n=0;n<t.j.f;n++)t.d[n]&&It(t.j,n)!=0&&(A&&(b1(t.j,n)==1&&tA(t.j,n)||b1(t.j,n)==-1&&K(t.j,n)==5)?E0(t.j,n,0):Oe(t.j,n,32),++t.k);return t.b==t.k;}function fj(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y;for(this.e=t,this.c=e,this.f=A,this.d=n,this.g=P,this.b=P,this.i=r,Q=new yP(),f=0;f<t.f;f++)A[f]==0&&(D=t.C[f]+(t.A[f]<<16),s=Te(Q,m1(D)),s||(s=new qT(this),Ye(Q,m1(D),s)),s.d=ZF(f,s.d),s.d.length<=s.c.length&&(s.a=s.d.length));for(i=0;i<e.f;i++)n[i]==0&&(D=e.C[i]+(e.A[i]<<16),s=Te(Q,m1(D)),s||(s=new qT(this),Ye(Q,m1(D),s)),s.c=ZF(i,s.c),s.c.length<=s.d.length&&(s.a=s.c.length));for(this.a=new f1(),y=(L=new rD(Q).a.$c().Tb(),new iD(L));y.a.ad();)s=(o=y.a.bd(),o.ed()),c_(s)||mt(this.a,s);}function Dj(t,e){var A,n,P,r,i;r=0,YA(t.d)?(P=B0(t.p),A=B0(t.o),r|=P<<9,r|=A<<13,r&=-128,w0(t.u,e,1)):(YA(t.k)&&(r|=1),YA(t.c)&&(r|=2),YA(t.n)&&(r|=4),YA(t.i)&&(r|=32),YA(t.j)&&(r|=64),YA(t.b)&&(r|=8),YA(t.g)&&(r|=16),B0(t.q)!=0&&(B0(t.q)==1?fA(t.u,e)||(r|=128):B0(t.q)==2?fA(t.u,e)||(r|=256):B0(t.q)==3?_e(t.u,e)||(r|=4194560):B0(t.q)==4?_e(t.u,e)||(r|=qA):B0(t.q)==5&&(_e(t.u,e)||(r|=rP))),B0(t.r)!=0&&(i=B0(t.r)+2,i>7&&(i-=7),n=pr(t.u,e),(i<=2||i!=n)&&(r|=i<<17)),YA(t.e)&&(r|=Mf),YA(t.f)&&(r|=T8)),Je(t.u,e,Qi,false),Je(t.u,e,r,true),Cs(t.u,e);}function Gs(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;for(P=c(F,k,6,e.q,15,1),D=a0(t,1),Q=a0(t,2),n=0;n<e.q;n++)if(e.C[n]!=0||(e.t==null||e.t[n]==null?null:rn((y=e.t[n],c0(),y)))!=null)P[n]=Vn(e,t,n,D,Q);else if(P[n]=A,(e.T&8)!=0){for(f=0;f<e.r;f++)for(o=0;o<2;o++)if(e.D[o][f]==n){if(l=e.D[1-o][f],T=e.u[l]&3,L=false,T==1||T==2){for(r=0;r<e.r;r++)if(r!=f)for(s=0;s<2;s++)e.D[s][r]==l&&e.D[1-s][r]<n&&(L=!L);}L&&we(e,l,T==1?2:1,(e.u[l]&4)!=0);}}for(i=0;i<e.r;i++)tr(e,t,i,D,Q,P[e.D[0][i]],P[e.D[1][i]],false);return t.L=t.L&&e.L,t.I=0,t.T=0,P;}function uj(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g;this.g=e,this.b=e.a[A],this.d=e.a[n],this.a=A,this.c=n,P=(i=GF(t.p,this.b),f=GF(t.p,this.d),D=PL(t.p,this.b),Q=PL(t.p,this.d),o=(i-f)/(i+f),.5*(i+f)*(1+(D==68||Q==68?0:.2*(1-w.Math.exp(-12*o*o))))),r=(L=VB(t.p,this.b),s=VB(t.p,this.d),y=MB(t.p,this.b),l=MB(t.p,this.d),T=EB(t.p,this.b),h=EB(t.p,this.d),g=P*P,181.16*L*s*y*l/((w.Math.sqrt(y/T)+w.Math.sqrt(l/h))*g*g*g)),this.e=PL(t.p,this.b),this.f=PL(t.p,this.d),(this.e==68&&this.f==65||this.e==65&&this.f==68)&&(P=P*.8,r*=.5),this.i=P,this.j=r;}function J_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T;return o=_d(t.a,e,u1(e,A,n)),r=e.a[A],f=e.a[n],r>f&&(r=(l=m1(f),m1(f=r),l).a),s=W9(B(d(F,1),k,6,15,[1,2,0]),B(d(F,1),k,6,15,[r,f,o]),t),s>=0?j0(t.b[s][3]):(P=e.C[A],i=e.C[n],P>i&&(P=(y=m1(i),m1(i=P),y).a),T=L2(t,e,A,n),Q=W9(B(d(F,1),k,6,15,[0,1]),B(d(F,1),k,6,15,[P,i]),t.a.c),Q>=0?(L=w.Math.pow(oI(t.a.c,Q)/T,6),QI(t.a.c,Q)*L):(D=W9(B(d(F,1),k,6,15,[0,1]),B(d(F,1),k,6,15,[yk(P),yk(i)]),t.a.j),w.Math.pow(10,-(T-Ig(t.a.j,D,2))/Ig(t.a.j,D,3))));}function z_(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M;return A=t.l&8191,n=t.l>>13|(t.m&15)<<9,P=t.m>>4&8191,r=t.m>>17|(t.h&255)<<5,i=(t.h&1048320)>>8,f=e.l&8191,D=e.l>>13|(e.m&15)<<9,Q=e.m>>4&8191,o=e.m>>17|(e.h&255)<<5,L=(e.h&1048320)>>8,S=A*f,I=n*f,x=P*f,tt=r*f,M=i*f,D!=0&&(I+=A*D,x+=n*D,tt+=P*D,M+=r*D),Q!=0&&(x+=A*Q,tt+=n*Q,M+=P*Q),o!=0&&(tt+=A*o,M+=n*o),L!=0&&(M+=A*L),y=S&x0,l=(I&511)<<13,s=y+l,h=S>>22,g=I>>9,m=(x&262143)<<4,v=(tt&31)<<17,T=h+g+m+v,R=x>>18,j=tt>>5,p=(M&4095)<<8,b=R+j+p,T+=s>>22,s&=x0,b+=T>>22,T&=x0,b&=aA,S0(s,T,b);}function Y_(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(i5(e,t.j),r=0,n=0;n<t.d.q;n++)i=e.a==null?NaN:e.a[n],i>1e3&&bX(t,e,n)&&++r;if(r==0){for(s=16,P=0;P<t.d.q;P++)s>Ht(t.d,P)&&(e.a==null?NaN:e.a[P])>(o=w.Math.min(4,Ht(t.d,P)),400+o*2e3/5)&&(s=Ht(t.d,P));if(s!=16)for(A=0;A<t.d.q;A++)s==Ht(t.d,A)&&(e.a==null?NaN:e.a[A])>(Q=w.Math.min(4,Ht(t.d,A)),400+Q*2e3/5)&&(f=e.k[A],Ht(t.d,A)==1?(D=z0(e,W(t.d,A,0)),I8(f,2*(D.a-f.a),2*(D.b-f.b),2*(D.c-f.c))):(L=Ht(t.d,A)==0?16:8,I8(f,L*Rn(t.f)-L/2,L*Rn(t.f)-L/2,L*Rn(t.f)-L/2)),++r);}return r!=0&&CU(e),r;}function Qj(t){var e,A,n,P,r,i,f;for(i=c(F,k,6,t.U+1,15,1),A=0;A<t.R.f;A++)ne(t.R,A)==0&&(t.db[A]==1?++i[t.f[A]]:t.db[A]==2&&--i[t.f[A]]);for(P=0;P<t.R.g;P++)dt(t.R,P)==1&&hP(t.R,P)==0&&(t.o[P]==1?(++i[t.f[z(t.R,0,P)]],++i[t.f[z(t.R,1,P)]]):t.o[P]==2&&(--i[t.f[z(t.R,0,P)]],--i[t.f[z(t.R,1,P)]]));for(f=1;f<=t.U;f++)if(i[f]!=0){if(r=i[f]<0,r){for(e=0;e<t.R.f;e++)ne(t.R,e)==0&&(t.db[e]==1?t.db[e]=2:t.db[e]==2&&(t.db[e]=1));for(n=0;n<t.R.g;n++)dt(t.R,n)==1&&hP(t.R,n)==0&&(t.o[n]==1?t.o[n]=2:t.o[n]==2&&(t.o[n]=1));}return r;}return  false;}function K_(t,e){var A,n,P,r,i,f,D,Q,o,L;for(t.j=0,P=0;P<e.g.a.length+e.f.a.length;P++)for(D=nv(t.c,P),A=0;A<D.f;A++)gt(V(D.B[A],re),0)?D.w[A]=0:t.j<w.Math.abs(D.w[A])&&(t.j=w.Math.abs(D.w[A]));for(L=c(Pt,ft,6,t.j+1,16,1),r=0;r<e.g.a.length;r++)for(o=N(e.g,r),A=0;A<o.f;A++)f=w.Math.abs(o.w[A]),f!=0&&(L[f]=true);for(i=0;i<e.f.a.length;i++)for(Q=N(e.f,i),A=0;A<Q.f;A++)f=w.Math.abs(Q.w[A]),f!=0&&(L[f]?L[f]=false:Q.w[A]=0);for(n=0;n<e.g.a.length;n++)for(o=N(e.g,n),A=0;A<o.f;A++)f=w.Math.abs(o.w[A]),f!=0&&L[f]&&(o.w[A]=0);}function X_(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(l=null,l=new Ii(),Dn(l,t.f),i=c(Pt,ft,6,t.f.f,16,1),h=e.Tb();h.ad();)if(T=h.bd(),y=null,m=T.b,Ln(l,m),sn(l,4,8)!=0&&(y=l.F),y)for(s=new Zt(y);s.a<s.c.a.length;){for(L=$t(s),g=0,n=L,P=0,r=n.length;P<r;++P)A=n[P],i[A]&&++g;if(g<=1){for(D=T.c,t.a?D=false:t.a=true,Q=new CP(t.f,L.length,D),o=0;o<L.length;o++)A=L[o],D&&Gn(t.f,A,true),Q.k[o]=256,Q.e[o]=A,Q.a[o]=kt(T.b,o)/T.a,Q.b[o]=pt(T.b,o)/T.a,i[A]=true,t.b[A]=true;for(f=0;f<m.g;f++)t.c[u1(t.f,L[m.D[0][f]],L[m.D[1][f]])]=true;jP(t.d,Q);}}return i;}function oj(t,e,A,n,P){var r,i,f,D,Q;for(this.D=t,this.u=e,this.I=A,this.B=n,this.L=P,CZ(this),Pb(this),this.k=SZ(this),this.j=VK(this.k),this.r=0,Q=(f=new x8(new q8(new w9(this.k[0]).a).b),new g9(f));C9(Q.a.a);)D=(i=dr(Q.a),i.dd()),r=Te(this.k[0],D),this.r+=w.Math.min(r[0].length,r[1].length);this.p=this.r==this.D.f&&this.D.f==this.u.f,this.G=c(F,k,6,this.D.f,15,1),this.w=c(F,k,6,this.u.f,15,1),this.H=c(Pt,ft,6,n9(this.D,this.G,false,false),16,1),this.A=c(Pt,ft,6,n9(this.u,this.w,false,false),16,1),this.q=wR(this),this.g=7,this.K=0;}function Uj(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h;if(t.o&&Z$(t,e),r=null,t.e!=null)for(f=t.e,Q=0,L=f.length;Q<L;++Q)i=f[Q],o2(i,e,null,0),r=r?BQ(r,i.v):i.v;if(t.b!=null)for(f=t.b,Q=0,L=f.length;Q<L;++Q)i=f[Q],o2(i,e,null,0),r=r?BQ(r,i.v):i.v;if(t.g)for(l=new Zt(t.g);l.a<l.c.a.length;)y=$t(l),T=y.Jb(e),Nu(t.p,T),r=r?BQ(r,T):T;if(!r)return null;if(P=j5(t),h=new Zs(r,A,P,n),!(h.c==1&&h.a==0&&h.b==0)){if(Vu(h,t.p),t.e!=null)for(D=t.e,o=0,s=D.length;o<s;++o)i=D[o],EU(i,h);if(t.b!=null)for(f=t.b,Q=0,L=f.length;Q<L;++Q)i=f[Q],EU(i,h);return h;}return null;}function Js(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(D=GE[n],f=1,y=n==4?w.Math.exp(w.Math.log(.01)/D):1,P=t.d.q*t.d.q,s=c(Ut,ht,6,10,15,1),L=0,o=0;o<D&&!(gt(t.n,0)&&(z1(),E1(M1(Date.now()),t.n)));o++){for(n!=0&&o%10==0&&La(t,e),Q=0;Q<P&&!(gt(t.n,0)&&(z1(),E1(M1(Date.now()),t.n)));Q++)l=null,l=N(t.j,vt(Rn(t.f)*t.j.a.length)),l.g&&!t.k[l.rd()]&&(i=l.qd(e,f),i&&CU(e));if(i5(e,t.j),s[L++]=e.e,L==10&&(L=0),o>10){for(r=0,h=s,g=0,m=h.length;g<m;++g)T=h[g],r+=T;if(r/=10,e.e>r)break;}A.e>e.e&&(KD(A,e),Lh(A,e)),f*=y;}e.e>A.e&&(KD(e,A),Lh(e,A));}function Lj(){Lj=d1,wE=B(d(Ut,1),ht,6,15,[5.55,15,15,15,15,15,15,15,15,wA,wA,wA,wA,wA,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,wA,wA,7.1,fe,fe,17.78,Q9,3.82,6.66,6.66,7.78,11.68,wA,6.66,wA,wA,fe,fe,fe,fe,fe,fe,fe,fe,fe,fe,wA,wA,11.68,11.68,11.68,fe,20.3,Q9,Q9,Nf,Nf,Q9,12.22,15.56,Nf,wA,10,Q9,fe,16.66,Nf,15.56,Q9,15.56,Nf,Q9,12.22,Nf,Q9,18.88,Q9,Q9,12.22,wA,wA,wA,9.38,fe,6.66,fe,fe,10,fe,fe,wA,fe,fe,4.44,4.44,10,4.44,16.66,fe,fe,fe,fe,6.66,10,wA,fe,10,Nf,10,10,10,6.68,5.2,6.68,11.68,10.5]);}function Z_(t,e){var A,n,P,r,i,f,D,Q,o,L;if(sN(t.C[e]))return 0;if(t.C[e]==1)return t.j[e]==0?0:ti(t.C[t.i[e][0]])?-1:1;if(L=t.s[e],D=t.e[e]-t0(t,e)+It(t,e),t.C[e]!=1&&t.C[e]!=15&&(ti(t.C[e])?L+=D:L-=D),t.j[e]==0)return L;for(o=0;o<t.j[e];o++)r=t.i[e][o],A=O8(t,t.k[e][o])?1:t.n[e][o],ti(t.C[e])?ti(t.C[r])||(L+=A):ti(t.C[r])?L-=A:t.C[e]!=t.C[r]&&(UB(t.C[e]).a<UB(t.C[r]).a?L+=A:L-=A);if(e<t.f&&yI(t.p,e)){for(n=0,P=0,f=0,Q=0;Q<t.j[e];Q++)O8(t,t.k[e][Q])&&(i=t.C[t.i[e][Q]],i==6?++P:$r(i)?++f:++n);t.C[e]==6?n>1?--L:f>1&&++L:tA(t,e)?n+P>1&&--L:f+P>1&&++L;}return L;}function x5(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(l=c(F,k,6,16,15,1),A=c(Ut,ht,6,16,15,1),r=c(Ut,ht,6,2,15,1),n=0,o=0;o<2;o++)for(P=t.D[o][e],L=0;L<t.j[P];L++)if(D=t.k[P][L],D!=e){if(n==4)return 0;f=t.i[P][L],l[n]=16,t.o[f]!=0&&(l[n]+=(t.u[f]&hn)!=0?1:4),(t.F[e]&64)!=0&&(t.F[D]&64)!=0&&(s=zL(t.p,e,D),s!=-1&&(l[n]+=i3(t.p,s)?64:6)),A[n++]=bA(t.J[P].a,t.J[P].b,t.J[f].a,t.J[f].b);}for(r[0]=K0(t,t.D[0][e],t.D[1][e]),r[0]<0?(r[1]=r[0]+U1,i=false):(r[1]=r[0],r[0]=r[1]-U1,i=true),y=0,Q=0;Q<n;Q++)A[Q]>r[0]&&A[Q]<r[1]?y-=l[Q]:y+=l[Q];return i?-y:y;}function sj(t){var e;if(this.e=t.e,t.a!=null)for(this.a=c(zt,_t,6,t.a.length,15,1),e=0;e<this.a.length;e++)this.a[e]=360-t.a[this.a.length-e-1]<<16>>16;if(t.d!=null)for(this.d=k1(zt,[ee,_t],[16,6],15,[t.d.length,2],2),e=0;e<this.d.length;e++)this.d[e][0]=360-t.d[this.a.length-e-1][1]<<16>>16,this.d[e][1]=360-t.d[this.a.length-e-1][0]<<16>>16;if(t.c!=null)for(this.c=c(zt,_t,6,t.c.length,15,1),e=0;e<this.c.length;e++)this.c[e]=t.c[this.c.length-e-1];if(t.b!=null)for(this.b=c(E,q,6,t.b.length,15,1),e=0;e<this.b.length;e++)this.b[e]=t.b[this.b.length-e-1];}function W_(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T;for(A=0;A<t.j.f;A++)if(ut(t.j,1),K(t.j,A)==7&&b1(t.j,A)==1&&$1(t.j,A)==1&&!kz(t,A,e))for(f=false,D=c(F,k,6,t.j.f,15,1),T=c(F,k,6,t.j.f,15,1),Q=c(F,k,6,t.j.f,15,1),D[0]=A,T[A]=-1,Q[A]=1,r=0,o=0;r<=o&&!f;){for(i=D[r],L=0;L<O(t.j,i)&&!f;L++)if(s=(Q[i]&1)==0^dt(t.j,xt(t.j,i,L))>1,P=W(t.j,i,L),Q[P]==0&&s)if(K(t.j,P)==7&&$1(t.j,P)==0&&O(t.j,P)==2){if((Q[i]&1)==0){for(E0(t.j,A,0),l=i,y=0;y<Q[i];y++)n=u1(t.j,P,l),iT(t.j,n,dt(t.j,n)==1?2:dt(t.j,n)-1),P=l,l=T[P];f=true;}}else D[++o]=P,T[P]=i,Q[P]=Q[i]+1;++r;}}function __(t,e){if(e<128)t.push((e&127)<<24>>24);else if(e<q1)t.push((e>>6&31|192)<<24>>24),t.push((e&63|128)<<24>>24);else if(e<u0)t.push((e>>12&15|224)<<24>>24),t.push((e>>6&63|128)<<24>>24),t.push((e&63|128)<<24>>24);else if(e<qA)t.push((e>>18&7|240)<<24>>24),t.push((e>>12&63|128)<<24>>24),t.push((e>>6&63|128)<<24>>24),t.push((e&63|128)<<24>>24);else if(e<Tn)t.push((e>>24&3|248)<<24>>24),t.push((e>>18&63|128)<<24>>24),t.push((e>>12&63|128)<<24>>24),t.push((e>>6&63|128)<<24>>24),t.push((e&63|128)<<24>>24);else throw At(new p8("Character out of range: "+e));}function $_(t,e,A){var n,P,r,i,f;return K(t.R,e)!=6&&K(t.R,e)!=7||(P=W(t.R,e,0),r=W(t.R,e,1),$1(t.R,P)!=1||$1(t.R,r)!=1)||O(t.R,P)==1||O(t.R,r)==1||Ht(t.R,P)>3||Ht(t.R,r)>3||(i=new cf(t.R,t.f,e,P),i.f&&A==1)||(f=new cf(t.R,t.f,e,r),f.f&&A==1)||i.f&&f.f?false:(A==3&&(i.f&&i.c&&(t.W[e]=true),f.f&&f.c&&(t.W[e]=true)),n=t.jb?iY(t,i,f):rz(i,f),A==1?t.db[e]=n:A==2&&(i.f&&(n==1?Qe(t.e[i.b],t.f[P]):Qe(t.e[i.d],t.f[P])),f.f&&(n==2?Qe(t.e[f.b],t.f[r]):Qe(t.e[f.d],t.f[r]))),true);}function zs(t,e,A){var n,P,r,i,f,D,Q,o,L,s;if(Q=t.K[e],i=t.n[A],(Ae(t.g,A)&Mf)!=0){if(D=Lu(t.H,e),P=Lu(t.g,A),r=Ae(t.g,A)&127,D!=P&&!(D==1&&(r&1)!=0)&&!(D==2&&(r&2)!=0)&&!(D==4&&(r&4)!=0)&&!(D==32&&(r&32)!=0)&&!(D==64&&(r&64)!=0)&&!(D==16&&(r&16)!=0)&&!(D==8&&(r&8)!=0))return  false;Q&=-128,i&=-128;}if((Q&~i)!=0)return  false;if(s=(Ae(t.g,A)&SP)>>17,s!=0){if(t.H.K&&s==(Ae(t.H,A)&SP)>>17)return  true;if(s<=2)return o=pr(t.H,e),s==1?o>=8&&o<=12:o>=12;for(n=false,L=xn(t.H),f=0;f<L.j.a.length;f++)if(N(L.k,f).length==s&&tf(L,f,e)){n=true;break;}if(!n)return  false;}return  true;}function a_(t,e,A,n,P,r,i,f,D,Q){var o,L,s,y,l,T,h,g,m,v,b,R,j,p;t!=e&&(o=O9(t,e),!(D[o[0]][o[1]]&&D[o[0]][o[1]].a.length==1)&&(p=.866,L=.5,(Q.F[i]&64)!=0&&(b=Q.p&&i<Q.g?sP(Q.p,i):0,b<6&&(p=0,L=1)),y=f.a[i]-f.a[A]*w.Math.cos(P)-f.a[n]*w.Math.cos(r),R=f.a[A]*w.Math.sin(P),j=f.a[n]*w.Math.sin(r),l=R+j,T=R-j*L,h=j*p,m=w.Math.sqrt(y*y+T*T+h*h),g=w.Math.sqrt(y*y+l*l),v=c(F,k,6,2,15,1),v[0]=Q.D[0][i],v[1]=Q.D[1][i],s=D[o[0]][o[1]],s?(s.a[0]=w.Math.min(s.a[0],m),s.a[1]=w.Math.min(s.a[1],g)):D[o[0]][o[1]]=new _L(o,v,m,g,3)));}function er(t,e){var A,n,P,r,i,f,D;for(f=(e.T&15)!=0,D=e.T&248,!t.g&&(t.g=new WD()),(t.e&2)!=0&&c5(e,false),t.f=e,ut(t.f,7),t.d=new aw(),t.b=c(Pt,ft,6,t.f.q,16,1),t.c=c(Pt,ft,6,t.f.r,16,1),t.i=c(F,k,6,t.f.q,15,1),A=0;A<t.f.q;A++)t.i[A]=b1(t.f,A);for((t.e&12)!=0&&b$(t),(t.e&1)==0&&bo&&X_(t,bo),ntt(t),gj(t),hW(t),gj(t),r=new Zt(t.d);r.a<r.c.a.length;)n=$t(r),NX(n);for(l$(t),J$(t),jz(t),pN(t),ax(t),tN(t),P=new Zt(t.d);P.a<P.c.a.length;)for(n=$t(P),i=0;i<n.e.length;i++)ve(t.f,n.e[i],n.a[i]),xe(t.f,n.e[i],n.b[i]),TP(t.f,n.e[i],0);f&&(UD(t.f,D),of(t.f)),t.a&&tT(t.f);}function Ys(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(L=0,i=c(Pt,ft,6,t.a.f,16,1),n=e,P=0,r=n.length;P<r;++P)A=n[P],A!=-1&&(i[A]=true);for(s=c(Pt,ft,6,t.a.g,16,1),h=0;h<t.b.g;h++)if(l=z(t.b,0,h),T=z(t.b,1,h),!(t.b.K&&(oe(t.b,l)||oe(t.b,T)))){if(f=e[l],D=e[T],mN(t.b,h),f==-1||D==-1){(f!=-1||D!=-1)&&(L+=B5(t.b,h));continue;}if(o=u1(t.a,f,D),o==-1){L+=B5(t.b,h);continue;}s[o]=true,L+=Fv(t.b,h)==Fv(t.a,o)?0:1;}for(Q=0;Q<t.a.g;Q++)t.a.K&&(oe(t.a,z(t.a,0,Q))||oe(t.a,z(t.a,1,Q)))||s[Q]||(L+=B5(t.a,Q));for(y=0;y<t.b.f;y++)d0(t.b,y)!=0&&(L+=mY(t,y,e));return -L;}function t$(t){if(!t)return 0;var e=0;return t.noTabus&&(e|=1),t.showAtomNumber&&(e|=2),t.showBondNumber&&(e|=4),t.highlightQueryFeatures&&(e|=8),t.showMapping&&(e|=16),t.suppressChiralText&&(e|=32),t.suppressCIPParity&&(e|=64),t.suppressESR&&(e|=128),t.noCarbonLabelWithCustomLabel&&(e|=L8),t.noAtomCustomLabels&&(e|=u0),t.showSymmetryAny&&(e|=768),t.showSymmetrySimple&&(e|=256),t.showSymmetryStereoHeterotopicity&&(e|=512),t.noImplicitAtomLabelColors&&(e|=ie),t.noStereoProblem&&(e|=q1),t.noColorOnESRAndCIP&&(e|=C0),t.noImplicitHydrogen&&(e|=de),t.drawBondsInGray&&(e|=En),e;}function ii(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;for(s=false,P.a=0,P.b=0,n>0?r=L6:r=s6,l=K0(t.L,e,A),o=0;o<O(t.L,e);o++)i=xt(t.L,e,o),f=l,z(t.L,0,i)==e?L=z(t.L,1,i):L=z(t.L,0,i),L!=A&&(y=K0(t.L,e,L),f<y&&(f+=F0),D=f-y,n>0?(D<U1&&(s=true),D>L6&&(D=L6),D<.523598776&&(D=.523598776),D<=r&&(r=D,Q=t.T*w.Math.tan(r-RA)/2,P.a=-(Q*w.Math.sin(f)),P.b=-(Q*w.Math.cos(f)))):(D>=U1&&(s=true),D<s6&&(D=s6),D>5.759586531&&(D=5.759586531),D>=r&&(r=D,Q=t.T*w.Math.tan(4.712388981-r)/2,P.a=-(Q*w.Math.sin(f)),P.b=-(Q*w.Math.cos(f)))));return s;}function e$(t,e,A){var n,P,r,i,f,D;for(n=c(F,k,6,4,15,1),f=0;f<Ht(t.R,e);f++)n[f]=W(t.R,e,A[f]);for(Ht(t.R,e)==3&&(n[3]=e),P=k1(Ut,[h0,ht],[15,6],15,[3,3],2),i=0;i<3;i++)P[i][0]=kt(t.R,n[i+1])-kt(t.R,n[0]),P[i][1]=pt(t.R,n[i+1])-pt(t.R,n[0]),P[i][2]=vA(t.R,n[i+1])-vA(t.R,n[0]);return D=c(Ut,ht,6,3,15,1),D[0]=P[0][1]*P[1][2]-P[0][2]*P[1][1],D[1]=P[0][2]*P[1][0]-P[0][0]*P[1][2],D[2]=P[0][0]*P[1][1]-P[0][1]*P[1][0],r=(P[2][0]*D[0]+P[2][1]*D[1]+P[2][2]*D[2])/(w.Math.sqrt(P[2][0]*P[2][0]+P[2][1]*P[2][1]+P[2][2]*P[2][2])*w.Math.sqrt(D[0]*D[0]+D[1]*D[1]+D[2]*D[2])),r>0?1:2;}function yj(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(ut(t,7),ut(e,7),this.c=t,this.d=new Ri(),n=0;n<t.g;n++)K8(this.d,new D5(t,n));for(A=0;A<e.g;A++)o=new D5(e,A),D=(f=$9(this.d,o),f<0?-1:f),D==-1?(o.i=(t9(),sl),K8(this.d,o)):HX(mr(this.d,D),o);for(i=this.d.d.a.length-1;i>=0;i--)o=mr(this.d,i),o.i!=(t9(),ll)?mr(this.d,i).i==jo&&tU(this.d,i):o.i=yl;for(this.b=c(F,k,6,t.f,15,1),r=0;r<t.f;r++)for(Q=0;Q<e.f;Q++)if(w.Math.abs(e.w[Q])==w.Math.abs(t.w[r])){P=(s=pn(t,r),s+WA(t,r,s,t.C[r])-N1(t,r)-(L=pn(e,Q),L+WA(e,Q,L,e.C[Q])-N1(e,Q))),this.b[r]=P>0?P:0;break;}this.e=new Ii();}function lj(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T;for(f=0;f<A;f++)if(n[f]!=-1&&t.e[f]>3&&(t.u[f]&Tn)!=0){for(T=0,s=-1,L=-1,o=0;o<t.e[f];o++)P[t.k[f][o]]!=-1?++T:t.n[f][o]==1&&jr(t,t.k[f][o])&&t.D[0][t.k[f][o]]==f&&(s=t.k[f][o],L=t.i[f][o]);if(s!=-1&&T>=3){for(r=bA(t.J[f].a,t.J[f].b,t.J[L].a,t.J[L].b),y=10,l=-1,Q=0;Q<t.e[f];Q++)t.n[f][Q]==1&&(!jr(t,t.k[f][Q])||t.D[0][t.k[f][Q]]==f)&&P[t.k[f][Q]]!=-1&&(i=w.Math.abs(ze(r,K0(t,f,t.i[f][Q]))),y>i&&(y=i,l=t.k[f][Q]));l!=-1&&(D=P[l],w0(e,D,t.H[l]==257?129:257),t.D[0][l]!=f&&(gD(e,1,D,n[t.D[0][l]]),gD(e,0,D,n[f])));}}}function Tj(t){var e,A,n,P;for(JD.call(this),e=0;e!=-1&&(A=t.indexOf('="',e),A!=-1);)if(n=(Ct(e+1,A,t.length),t.substr(e+1,A-(e+1))),e=t.indexOf('"',A+2),P=e==-1?(Gt(A+1,t.length+1),t.substr(A+1)):(Ct(A+1,e,t.length),t.substr(A+1,e-(A+1))),at(n,"x1"))try{this.i[0].a=Qn(P);}catch(r){if(r=a1(r),!Xt(r,40))throw At(r);}else if(at(n,"y1"))try{this.i[0].b=Qn(P);}catch(r){if(r=a1(r),!Xt(r,40))throw At(r);}else if(at(n,"x2"))try{this.i[1].a=Qn(P);}catch(r){if(r=a1(r),!Xt(r,40))throw At(r);}else if(at(n,"y2"))try{this.i[1].b=Qn(P);}catch(r){if(r=a1(r),!Xt(r,40))throw At(r);}}function N5(t,e,A){var n,P,r,i,f,D;if(e.l==0&&e.m==0&&e.h==0)throw At(new j8("divide by zero"));if(t.l==0&&t.m==0&&t.h==0)return A&&(qn=S0(0,0,0)),S0(0,0,0);if(e.h==y8&&e.m==0&&e.l==0)return GJ(t,A);if(D=false,e.h>>19!=0&&(e=Zr(e),D=!D),i=kX(e),r=false,P=false,n=false,t.h==y8&&t.m==0&&t.l==0){if(P=true,r=true,i==-1)t=cg((Kr(),$4)),n=true,D=!D;else return f=f5(t,i),D&&WL(f),A&&(qn=S0(0,0,0)),f;}else t.h>>19!=0&&(r=true,t=Zr(t),n=true,D=!D);return i!=-1?OG(t,i,D,r,A):bh(t,e)<0?(A&&(r?qn=Zr(t):qn=S0(t.l,t.m,t.h)),S0(0,0,0)):QW(n?t:S0(t.l,t.m,t.h),e,D,r,P,A);}function y2(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;if(i=t.e,D=e.e,i==0)return e;if(D==0)return t;if(r=t.d,f=e.d,r+f==2)return A=V(t.a[0],h1),n=V(e.a[0],h1),i==D?(o=x1(A,n),l=Jt(o),y=Jt(DA(o,32)),y==0?new kA(i,l):new Ue(i,2,B(d(F,1),k,6,15,[l,y]))):(be(),hu(i<0?l0(n,A):l0(A,n),0)?ge(i<0?l0(n,A):l0(A,n)):vP(ge(p0(i<0?l0(n,A):l0(A,n)))));if(i==D)s=i,L=r>=f?FL(t.a,r,e.a,f):FL(e.a,f,t.a,r);else {if(P=r!=f?r>f?1:-1:iQ(t.a,e.a,r),P==0)return be(),y9;P==1?(s=i,L=wL(t.a,r,e.a,f)):(s=D,L=wL(e.a,f,t.a,r));}return Q=new Ue(s,L.length,L),bn(Q),Q;}function OQ(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(t.D.d.a.length==t.t)return null;L=c(F,k,6,t.v.length,15,1),n=c(F,k,6,t.u.length,15,1),P=0;do{if(P++==64)return null;if(e&&t.D.d.a.length==0){for(o=0;o<t.u.length;o++)n[o]=uG(t.u[o]);for(A=_8(t.i,n),Q=0;Q<t.v.length;Q++)L[Q]=A.a[Q];}else if(t.b){for(D=P/64,o=0;o<t.u.length;o++)n[o]=xJ(t.u[o],Rn(t.c),D);for(A=_8(t.i,n),Q=0;Q<t.v.length;Q++)L[Q]=sz(A,Q,Rn(t.c),D);}else {for(f=0;f<t.u.length;f++)n[f]=lQ(t.c,t.u[f].b.length);for(i=0;i<t.v.length;i++)L[i]=lQ(t.c,t.v[i].d.length);}s=Ou(t,L,n);}while(r=$9(t.D,s),(r<0?-1:r)!=-1);return s;}function Ks(t,e,A){var n,P,r,i,f;if(e==A||t.a[e]!=t.a[A]||t.o[e]!=0&&(t.o[e]==3||t.o[A]==3||t.p[e]^t.o[e]!==t.o[A]||t.k[e]!==t.k[A]||t.j[e]!==t.j[A])||(n=u1(t.i,e,A),n!=-1&&(dt(t.i,n)==1&&t.c[n]!=0||dt(t.i,n)==2&&t.c[n]==1)))return  false;if($1(t.i,e)==1&&!Bn(t.i,e)){for(P=-1,f=0;f<O(t.i,e);f++)if(W(t.i,e,f)!=A&&pA(t.i,e,f)==2){P=xt(t.i,e,f);break;}for(r=-1,i=0;i<O(t.i,A);i++)if(W(t.i,A,i)!=e&&pA(t.i,A,i)==2){r=xt(t.i,A,i);break;}if(P!=-1&&t.c[P]!=0&&t.d[P]^t.c[P]===t.c[r])return  false;}return  true;}function A$(t){var e,A,n,P,r,i,f;r=Ae(t.u,t.a),n=l1(t.u,t.a)==8||O8(t.u,t.a)?6:dt(t.u,t.a),((r&1)!=0||n==1)&&uA(t.k,true),((r&2)!=0||n==2)&&uA(t.c,true),((r&4)!=0||n==3)&&uA(t.n,true),((r&32)!=0||n==4)&&uA(t.i,true),((r&64)!=0||n==5)&&uA(t.j,true),((r&8)!=0||n==6)&&uA(t.b,true),((r&16)!=0||n==0)&&uA(t.g,true),(r&Mf)!=0&&uA(t.e,true),(r&T8)!=0&&uA(t.f,true),f=r&384,e=r&no,f==128?Wt(t.q,1):e==qA?Wt(t.q,4):f==256?Wt(t.q,e==0?2:3):Wt(t.q,e==0?0:5),i=(r&SP)>>17,Wt(t.r,i==0?0:i<=2?i+5:i-2),(r&s8)!=0?(uA(t.d,true),P=(r&7680)>>9,A=(r&cy)>>13,Wt(t.p,P),aT(t,P),Wt(t.o,A)):Wt(t.o,0),lb(t);}function hj(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(_F.call(this,t),this.f=P,this.g=A,this.i=c(zt,ee,16,A.length,0,2),this.d=c(zt,ee,16,A.length,0,2),this.e=c(Ut,h0,15,A.length,0,2),f=c(zt,nA,37,A.length,0,3),i=0;i<A.length;i++)s=A[i].d,this.i[i]=fL(s,s.length),D=A[i].c,this.d[i]=fL(D,D.length),this.e[i]=c(Ut,ht,6,this.i[i].length,15,1),f[i]=A[i].e;for(this.a=c(F,k,6,A.length,15,1),o=c(Pt,ft,6,e.length,16,1),r=0;r<A.length;r++)$a(this,A[r],r,o,n,f[r]);for(Q=0;Q<e.length;Q++)if(!o[Q])for(L=0;L<e[Q].c.length;L++)sD(this,e[Q].e[e[Q].c[L]],z0(e[Q].b[n[Q]],e[Q].c[L]));this.c=new f1();}function Xs(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T,h;for(r=c(F,f0,7,t.j.a.length,0,2),Q=0;Q<t.j.a.length;Q++)for(r[Q]=c(F,k,6,N(t.j,Q).length,15,1),o=0;o<N(t.j,Q).length;o++)r[Q][o]=-1;for(T=c(F,k,6,t.i.g,15,1),y=0;y<t.k.a.length;y++)if(l=N(t.k,y),l.length==3||l.length>=5&&l.length<=7)for(D=0;D<l.length;D++)f=l[D],O(t.i,z(t.i,0,f))==3&&O(t.i,z(t.i,1,f))==3&&(T[f]>0?(r[T[f]>>>16][T[f]&32767]=y,r[y][D]=T[f]>>>16):T[f]=(y<<16)+L8+D);for(i=c(Pt,ft,6,t.j.a.length,16,1),h=0,L=-1;h>L;)for(L=h,s=0;s<t.j.a.length;s++)i[s]||xa(t,s,r,i,e,A,n,P)&&(i[s]=true,++h);}function n$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;if(A<2)return A;for(R=c(Pt,h0,12,A,0,2),l=1;l<A;l++)R[l]=c(Pt,ft,6,l,16,1);for(i=Pn(t.V,24*t.ab),P=1;P<t.V.q;P++)for(r=0;r<P;r++)D=kt(t.V,r)-kt(t.V,P),Q=pt(t.V,r)-pt(t.V,P),f=w.Math.sqrt(D*D+Q*Q),f<Uo*i&&(L=e[P],s=e[r],L!=s&&(L>s?R[L][s]=true:R[s][L]=true));for(p=c(F,k,6,A,15,1),o=0;o<A;o++)p[o]=o;for(b=0,y=1;y<A;y++)for(g=0;g<y;g++)if(R[y][g]&&(T=p[y],h=p[g],T!=h))for(++b,j=w.Math.min(T,h),v=w.Math.max(T,h),m=0;m<A;m++)p[m]==v?p[m]=j:p[m]>v&&--p[m];for(n=0;n<t.V.q;n++)e[n]=p[e[n]];return A-b;}function GQ(t,e,A){var n,P,r,i,f,D,Q,o,L;return t==null?null:(D=t,o=null,Q=null,L=null,f=null,n=t.indexOf(k0(35)),n==-1?D=t:(D=(Ct(0,n,t.length),t.substr(0,n)),P=t.indexOf(k0(35),n+1),P==-1?o=(Gt(n+1,t.length+1),t.substr(n+1)):(o=(Ct(n+1,P,t.length),t.substr(n+1,P-(n+1))),r=t.indexOf(k0(35),P+1),r==-1?Q=(Gt(P+1,t.length+1),t.substr(P+1)):(Q=(Ct(P+1,r,t.length),t.substr(P+1,r-(P+1))),i=t.indexOf(k0(35),r+1),i==-1?L=(Gt(r+1,t.length+1),t.substr(r+1)):(L=(Ct(r+1,i,t.length),t.substr(r+1,i-(r+1))),f=(Gt(i+1,t.length+1),t.substr(i+1)))))),ep(D,o,Q,L,f,e,A));}function O5(t,e,A,n,P,r,i,f){var D,Q,o,L,s,y,l,T,h,g;for(e!=n&&(h=t.J[e].a-t.J[n].a,g=t.J[e].b-t.J[n].b,f=w.Math.sqrt(h*h+g*g)),D=e,o=au(t,e)!=3,T=1;T<A;T++){for(s=t.J[D].a+f*w.Math.sin(r),y=t.J[D].b+f*w.Math.cos(r),l=-1,L=0;L<t.q;L++)if(w.Math.abs(s-t.J[L].a)<4&&w.Math.abs(y-t.J[L].b)<4){l=L;break;}l==-1&&(l=_0(t,s,y,0),t.J[l].a=s,t.J[l].b=y,t.J[l].c=0),Q=Im(t,D,l),Q==-1&&(Q=O0(t,D,l,$0(t,D)||$0(t,l)?16:1),P&&(o&&au(t,t.D[0][Q])<4&&au(t,t.D[1][Q])<3&&(t.H[Q]=2),o=!o)),D=l,r+=i;}Q=Im(t,D,n),Q==-1&&(Q=O0(t,D,n,$0(t,D)||$0(t,n)?16:1)),P&&o&&au(t,t.D[0][Q])<4&&au(t,t.D[1][Q])<4&&(t.H[Q]=2);}function cj(t){var e,A,n,P,r,i,f,D,Q,o;Ak();var L,s;for(ut(t,7),this.a=c(Se,PA,6,t.r,15,1),this.b=c(Se,PA,6,t.r,15,1),L=0;L<t.r;L++)s=(e=t.D[0][L],A=t.D[1][L],n=t.C[e],P=t.C[A],r=t.j[e],i=t.j[A],Cz(dt(t,L),L<t.g&&je(t.p,L),L<t.g&&(E8(t.p,L)||t.H[L]==8),n,P,dF(t,e),dF(t,A),r,i)),s==-1?(this.a[L]=(f=K(t,t.D[0][L]),D=K(t,t.D[1][L]),(f<(T2(),Of).length?Of[f]:f<IA.length?uo*IA[f]:jy)+(D<Of.length?Of[D]:D<IA.length?uo*IA[D]:jy)),this.b[L]=(Q=K(t,t.D[0][L]),o=K(t,t.D[1][L]),(Q<Of.length?I6:.125)+(o<Of.length?I6:.125))):(this.a[L]=s==-1?2.000499963760376:R4[s],this.b[L]=s==-1?1:j4[s]);}function Zs(t,e,A,n){var P,r,i,f;fU(this),e?(n&yy)==0?xr(e,t.c,t.d)&&xr(e,t.c+t.b,t.d+t.a)||((t.b>e.b||t.a>e.a)&&(r=e.b/t.b,f=e.a/t.a,this.c=w.Math.min(r,f)),t.c*this.c<e.c?this.a=e.c-t.c*this.c:(t.c+t.b)*this.c>e.c+e.b&&(this.a=e.c+e.b-(t.c+t.b)*this.c),t.d*this.c<e.d?this.b=e.d-t.d*this.c:(t.d+t.a)*this.c>e.d+e.a&&(this.b=e.d+e.a-(t.d+t.a)*this.c)):(r=e.b/t.b,f=e.a/t.a,i=n&c1,i==0?i=24:(n&I0)!=0&&(i/=256),P=i/A,this.c=w.Math.min(P,w.Math.min(r,f)),this.a=e.c+e.b/2-this.c*(t.c+t.b/2),this.b=e.d+e.a/2-this.c*(t.d+t.a/2)):(n&u0)!=0&&(i=(n&c1)!=0?n&c1:24,this.c=i/A);}function G5(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(L=R2,e!=-1){for(A=c(Ut,ht,6,9,15,1),i=0;i<ue(t.V,e);i++)A[i]=K0(t.V,e,W(t.V,e,i));if(ue(t.V,e)==1)A[0]<-2.6179938779914944?L=AA:A[0]<Ao?L=R2:A[0]<a6?L=AA:A[0]<0?L=R2:A[0]<v2?L=w6:A[0]<RA?L=Lo:A[0]<2.6179938779914944?L=w6:L=Lo;else {for(f=ue(t.V,e)-1;f>0;f--)for(D=0;D<f;D++)A[D]>A[D+1]&&(s=A[D],A[D]=A[D+1],A[D+1]=s);for(A[ue(t.V,e)]=A[0]+F0,o=0,Q=0,r=0;r<ue(t.V,e);r++)n=A[r+1]-A[r],Q<n&&(Q=n,o=r);L=(A[o]+A[o+1])/2;}}P=Pn(t.V,24*t.ab),t.ib=(e==-1?t.hb:kt(t.V,e))+P*w.Math.sin(L),t.lb=(e==-1?t.kb:pt(t.V,e))+P*w.Math.cos(L);}function P$(t,e){var A,n,P,r,i,f,D,Q,o;for(ui(t),Q=new zA(t.R.f,t.R.g),pe(Q,t.R.K),i=0;i<t.R.f;i++)Vn(t.R,Q,t.B[i],0,0),Ve(Q,i,t.bb[t.B[i]],t.ab[t.B[i]]);for(f=0;f<t.R.g;f++)uQ(t.R,Q,t.C[f],0,0,t.H,false),!(Q.H[f]==257||Q.H[f]==129)&&Q.D[0][f]>Q.D[1][f]&&(o=Q.D[0][f],gD(Q,0,f,Q.D[1][f]),Q.D[1][f]=o,Q.T=0),Q8(Q,f,t.n[t.C[f]],t.k[t.C[f]]);if(e)for(r=0;r<t.R.f;r++)for(A=t.B[r],D=O(t.R,A);D<Ht(t.R,A);D++)P=Vn(t.R,Q,W(t.R,A,D),0,0),tr(t.R,Q,xt(t.R,A,D),0,0,t.H[A],P,false);for(n=0;n<Q.r;n++)A=Q.D[0][n],t.eb[t.B[A]]&&(Q.H[n]==257?(Q.H[n]=129,Q.T=0):Q.H[n]==129&&(Q.H[n]=257,Q.T=0));return kU(t.R,Q),Q.T&=-9,Q;}function JQ(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T;if(Q=c(F,k,6,2,15,1),D=c(Ut,ht,6,2,15,1),Q[0]=t.D[0][e],Q[1]=t.D[1][e],N1(t,Q[0])>3||N1(t,Q[1])>3)return  false;for(i=0,r=c(Ut,ht,6,4,15,1),s=0;s<t.r;s++)if(s!=e){for(y=0;y<2;y++){for(l=0;l<2;l++)if(t.D[y][s]==Q[l]){if(i==4){i=5;break;}r[i++]=K0(t,Q[l],t.D[1-y][s]);}if(i==5)break;}if(i==5)break;}if(i==5)return  false;for(D[0]=K0(t,Q[0],Q[1]),D[0]<0?(D[1]=D[0]+U1,f=0):(D[1]=D[0],D[0]=D[1]-U1,f=1),T=0,L=0;L<i;L++)r[L]>D[0]&&r[L]<D[1]?--T:++T;return f=T>0?1-f:f,o=U1*(A-2)/A,O5(t,Q[f],A-1,Q[1-f],n,D[T>0?0:1]+U1-o,U1-o,P),t.T=0,true;}function J5(t,e){var A;Xt(e,137)?E_(t,e):Xt(e,156)&&(A=e.b,e.j==1&&(A==-9&&t.b>=17?m0(t,t.b-17):A==-10&&t.b<17?m0(t,t.b+17):A==-11&&t.b%17>0?m0(t,t.b-1):A==-12&&t.b%17<16?m0(t,t.b+1):A==122?m0(t,18):A==32?m0(t,2):A==48?m0(t,4):A==116?m0(t,21):A==49?m0(t,5):A==50?m0(t,22):A==109?m0(t,19):A==51?m0(t,7):A==52?m0(t,24):A==53?m0(t,8):A==54?m0(t,25):A==55?m0(t,9):A==97?m0(t,26):A==45?m0(t,27):A==43?m0(t,10):A==117?m0(t,6):A==100?m0(t,23):A==99?m0(t,11):A==110?m0(t,12):A==112?m0(t,29):A==111?m0(t,13):A==115?m0(t,30):A==102?m0(t,14):A==108?m0(t,31):A==98?m0(t,15):A==105?m0(t,32):A==104?m0(t,16):A==46&&m0(t,33)));}function Z1(t,e){if(!t.K&&(e==-10&&(t.C=-999,e=t.Q),e!=-2&&e!=-7&&t.N!=0&&(e=-4),e!=t.C&&!(t.C==-8&&e!=-9)))switch(e==-8&&(t.O=t.C),e==-9&&(e=t.O),t.C=e,e){case 0:t.Bb(t.F==0?Sn:t.F);break;case  -6:t.Bb(t.F);break;case  -4:t.Bb(t.N);break;case  -2:t.Bb(t.t);break;case  -3:t.Bb(t.u);break;case  -7:t.Bb(t.H);break;case  -8:t.Bb(t.I);break;case  -5:t.Bb(t.P);break;case 64:t.Bb(-14655233);break;case 128:t.Bb(qP);break;case 256:t.Bb(-4194049);break;case 192:t.Bb(-16711936);break;case 320:t.Bb(-24576);break;case 384:t.Bb(-16744448);break;case 448:t.Bb(-6291456);break;case 1:t.Bb(fy);break;default:t.Bb(Sn);}}function r$(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(o=new r3(),L=0;L<t.i.f;L++)if($1(t.i,L)<2||O(t.i,L)>2)for(i=1;i<O(t.i,L);i++)for(e=W(t.i,L,i),f=0;f<i;f++)A=W(t.i,L,f),Ks(t,e,A)&&(D=Qp(t,e,A),D&&rF(D,t.f)&&Ye(o.a,D,(k9(),go))==null);for(s=0;s<t.i.g;s++)t.c[s]!=0&&(dt(t.i,s)!=2||t.c[s]!=2)||(e=z(t.i,0,s),A=z(t.i,1,s),Ks(t,e,A)&&(D=Qp(t,e,A),D&&rF(D,t.f)&&Ye(o.a,D,(k9(),go))==null));for(t.g=c(F,f0,7,o.a.c,0,2),t.e=c(Pt,ft,6,t.i.f,16,1),r=0,Q=(P=new x8(new q8(new w9(o.a).a).b),new g9(P));C9(Q.a.a);)for(D=(n=dr(Q.a),n.dd()),t.g[r++]=D.b,i=0;i<D.b.length;i++)t.e[D.b[i]]=true;}function i$(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(dt(t,e)!=1||e<t.g&&je(t.p,e)||(t.p&&e<t.g?sP(t.p,e):0)==3)return  false;for(A=c(F,k,6,2,15,1),f=0;f<2;f++)if(A[f]=t.D[f][e],(t.u[A[f]]&I0)!=0||t0(t,A[f])<=1)return  false;if(ZU(t,A[0])||ZU(t,A[1])){for(L=c(F,k,6,1,15,1),L[0]=e,n=c(F,f0,7,2,0,2),D=0;D<2;D++)if(ZU(t,A[D])&&(n[D]=c(F,k,6,2,15,1),n[D][0]=A[1-D],n[D][1]=A[D],!h5(t,A[1-D],n[D],L)))return  false;if(e!=L[0])return  false;for(Q=0;Q<2;Q++)n[Q]!=null&&(A[Q]=n[Q][1]);}for(i=0;i<2;i++){if(r=t.j[A[i]],r==1)return  false;for(s=0,o=0;o<r;o++)P=t.i[A[i]][o],(t.u[P]&I0)!=0||++s;if(s<2)return  false;}return  true;}function wj(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(D=c(F,k,6,32,15,1),Q=0,n=0;n<t.R.f;n++)(t._[n]==1||t._[n]==2)&&t.bb[n]==e&&(f=t.ab[n],D[f]<t.f[n]&&(D[f]==0&&++Q,D[f]=t.f[n]));for(r=0;r<t.R.g;r++)(t.j[r]==1||t.j[r]==2)&&t.n[r]==e&&l1(t.R,r)==1&&(f=t.k[r],l=w.Math.max(t.f[z(t.R,0,r)],t.f[z(t.R,1,r)]),D[f]<l&&(D[f]==0&&++Q,D[f]=l));for(i=c(E,q,6,32,15,1),o=0;o<Q;o++){for(s=-1,y=0,L=0;L<32;L++)y<D[L]&&(y=D[L],s=L);D[s]=0,i[s]=o<<24>>24;}for(A=0;A<t.R.f;A++)(t._[A]==1||t._[A]==2)&&t.bb[A]==e&&(t.ab[A]=i[t.ab[A]]);for(P=0;P<t.R.g;P++)(t.j[P]==1||t.j[P]==2)&&t.n[P]==e&&l1(t.R,P)==1&&(t.k[P]=i[t.k[P]]);}function f$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(ut(t.k,7),L=false,s=c(F,k,6,2,15,1),y=c(F,k,6,2,15,1),o=c(F,k,6,2,15,1),n=0;n<t.k.g;n++)if(!WP(t.k,n)&&l1(t.k,n)==2){for(i=0;i<2;i++){for(s[i]=-1,o[i]=-1,e=z(t.k,i,n),Q=0;Q<O(t.k,e);Q++)P=xt(t.k,e,Q),P!=n&&(s[i]==-1&&(l1(t.k,P)==257||l1(t.k,P)==129)?(s[i]=W(t.k,e,Q),y[i]=P):o[i]=W(t.k,e,Q));if(s[i]==-1)break;}if(s[0]!=-1&&s[1]!=-1){for(D=l1(t.k,y[0])==l1(t.k,y[1]),f=0;f<2;f++)s[f]==z(t.k,0,y[f])&&(D=!D);for(r=0;r<2;r++)o[r]!=-1&&o[r]<s[r]&&(D=!D);A8(t.k,n,D?2:1,false),L=true;}}for(A=0;A<t.k.g;A++)(l1(t.k,A)==257||l1(t.k,A)==129)&&w0(t.k,A,1);return L;}function gj(t){for(var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;;){for(m=0,y=0,h=null,g=null,i=1;i<t.d.a.length;i++)for(n=N(t.d,i),f=0;f<i;f++){for(P=N(t.d,f),e=0,A=0,l=0,T=0,o=0;o<n.e.length;o++)for(s=0;s<P.e.length;s++)n.e[o]==P.e[s]&&(++A,e=n.e[o],l<n.k[o]&&(l=n.k[o]),T<P.k[s]&&(T=P.k[s]));if(A>0&&(r=A==1&&SL(t,n,e)==1&&SL(t,P,e)==1?0:1,l>T?D=(r<<24)+(l<<16)+(T<<8)+A:D=(r<<24)+(T<<16)+(l<<8)+A,m<D)){for(m=D,y=A,l=0,T=0,L=0;L<n.e.length;L++)l<n.k[L]&&(l=n.k[L]);for(Q=0;Q<P.e.length;Q++)T<P.k[Q]&&(T=P.k[Q]);l>T?(h=n,g=P):(h=P,g=n);}}if(m==0)break;y==h.e.length?X8(t.d,h):y==g.e.length?X8(t.d,g):$Z(t,h,g,y);}}function Ws(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;if(t.d>1){for(Q=c(Ut,ht,6,t.d,15,1),o=c(Ut,ht,6,t.d,15,1),L=c(Ut,ht,6,t.d,15,1),D=c(Ut,ht,6,t.d,15,1),i=0;i<t.d;i++)L[i]=xf,D[i]=-1e9;for(n=0;n<e.k.length;n++)Q[t.e[n]]+=e.k[n].a,o[t.e[n]]+=e.k[n].b,L[t.e[n]]>e.k[n].c&&(L[t.e[n]]=e.k[n].c),D[t.e[n]]<e.k[n].c&&(D[t.e[n]]=e.k[n].c);for(f=0;f<t.d;f++)Q[f]/=t.f[f],o[f]/=t.f[f];for(s=c(Ut,ht,6,t.d,15,1),y=c(Ut,ht,6,t.d,15,1),l=c(Ut,ht,6,t.d,15,1),r=1;r<t.d;r++)s[r]=Q[0]-Q[r],y[r]=o[0]-o[r],l[r]=l[r-1]+D[r-1]-L[r]+3;for(A=0;A<e.k.length;A++)t.e[A]!=0&&(P=e.k[A],P.a+=s[t.e[A]],P.b+=y[t.e[A]],P.c+=l[t.e[A]]);}}function vf(t){var e,A,n,P,r,i,f,D;for(i=0;i<t.r;i++)t.H[i]==512&&(A=t.D[0][i],n=t.D[1][i],t.C[A]==-1^t.C[n]==-1&&t.s[A]!=0&&t.s[n]!=0&&t.s[A]<0^t.s[n]<0&&(t.s[A]<0?(++t.s[A],--t.s[n]):(--t.s[A],++t.s[n])));for(D=c(F,k,6,t.q,15,1),P=0,e=0;e<t.q;e++){if(t.C[e]==-1){D[e]=-1;continue;}P<e&&(t.C[P]=t.C[e],t.s[P]=t.s[e],t.A[P]=t.A[e],t.u[P]=t.u[e],t.B[P]=t.B[e],t.w[P]=t.w[e],mD(t.J[P],t.J[e]),t.v!=null&&(t.v[P]=t.v[e]),t.t!=null&&(t.t[P]=t.t[e])),D[e]=P,++P;}for(t.q=P,f=0,r=0;r<t.r;r++)t.H[r]!=512&&(t.H[f]=t.H[r],t.F[f]=t.F[r],t.G[f]=t.G[r],t.D[0][f]=D[t.D[0][r]],t.D[1][f]=D[t.D[1][r]],++f);return t.r=f,D;}function dj(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v;for(P=c(Ut,ht,6,Ht(t.f,A)+1,15,1),i=c(F,k,6,Ht(t.f,A)+1,15,1),f=c(F,k,6,Ht(t.f,A)+1,15,1),h=r8(e,A),r=0,Q=0;Q<Ht(t.f,A);Q++)i[r]=W(t.f,A,Q),f[r]=xt(t.f,A,Q),L=r8(e,i[r]),L!=-1&&(P[r++]=Un(e.a[h],e.b[h],e.a[L],e.b[L]));if(r==1)return P[0]+U1;for(o=r-1;o>0;o--)for(s=0;s<o;s++)P[s]>P[s+1]&&(g=P[s],P[s]=P[s+1],P[s+1]=g,m=i[s],i[s]=i[s+1],i[s+1]=m,v=f[s],f[s]=f[s+1],f[s+1]=v);for(P[r]=P[0]+F0,i[r]=i[0],f[r]=f[0],y=-100,l=0,D=0;D<r;D++)n=P[D+1]-P[D],r>2&&fA(t.f,f[D])&&fA(t.f,f[D+1])&&(T=FX(t,i[D],A,i[D+1]),T!=0&&(n-=100-T)),y<n&&(y=n,l=D);return (P[l]+P[l+1])/2;}function D$(t){var e,A,n;for(e=0;e<t.R.f;e++)t.db[e]==3&&!Br(t.R,e)&&LP(t.R,e),(ne(t.R,e)==1||ne(t.R,e)==2)&&t.db[e]==3&&LP(t.R,e),Br(t.R,e)&&t.db[e]!=3&&!$G(t,e)&&LP(t.R,e);for(n=0;n<t.R.r;n++)jr(t.R,n)&&!aX(t,n)&&LP(t.R,z(t.R,0,n));for(A=0;A<t.R.g;A++)dt(t.R,A)==2&&(M3(t.R,A)&&(t.o[A]==1||t.o[A]==2)&&(t.o[A]=3,w0(t.R,A,386)),t.o[A]==3&&!t.p[A]&&l1(t.R,A)!=386&&(LP(t.R,z(t.R,0,A)),LP(t.R,z(t.R,1,A)))),l1(t.R,A)==1&&t.o[A]==3&&!Br(t.R,z(t.R,0,A))&&!Br(t.R,z(t.R,1,A))&&(LP(t.R,z(t.R,0,A)),LP(t.R,z(t.R,1,A))),(hP(t.R,A)==1||hP(t.R,A)==2)&&(l1(t.R,A)!=1||t.o[A]!=1&&t.o[A]!=2)&&(LP(t.R,z(t.R,0,A)),LP(t.R,z(t.R,1,A)));}function u$(t){var e,A,n,P,r,i,f,D,Q;for(A=0;A<t.R.f;A++)$e(t.e[A],A),W1(t.e[A],2*t.c+4,j1(t.f[A],t.c+4));for(D=1;D<=t.U;D++){for(P=false,n=0;n<t.R.f;n++)t.f[n]==D&&(P=P|ty(t,n,2));if(P){if(f=t.U,t.U=Xn(t),t.U!=f)return  true;for(e=0;e<t.R.f;e++)$e(t.e[e],e),W1(t.e[e],2*t.c+4,j1(t.f[e],t.c+4));}}for(Q=c(ctt,F2,173,t.R.g,0,1),i=0;i<Q.length;i++)Q[i]=new pv(t.f[z(t.R,0,i)],t.f[z(t.R,1,i)],i);for(Xi(Q,0,Q.length,null),r=0;r<Q.length;r++)if(zQ(t,Q[r].a,2)){for(;r+1<Q.length&&av(Q[r],Q[r+1])==0;)zQ(t,Q[++r].a,2);if(f=t.U,t.U=Xn(t),t.U!=f)return  true;for(e=0;e<t.R.f;e++)$e(t.e[e],e),W1(t.e[e],2*t.c+4,j1(t.f[e],t.c+4));}return  false;}function Q$(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b;for(L=t.e[e]-A,b=-1,m=NaN,l=0;l<L;l++)if(Or(t,t.k[e][l],e)){b=l,m=K0(t,e,t.i[e][l]);break;}if(v=b==-1?0:1,i=null,v<L){for(i=c(Ut,ht,6,L-v,15,1),Q=0,T=0;T<L;T++)T!=b&&(i[Q++]=K0(t,e,t.i[e][T]));i.sort(me(di.prototype.gd,di,[]));}if(f=F0/w.Math.max(A,3),g=0,i!=null)if(i.length==1&&A==1)g=i[0];else {for(D=0,T=0;T<i.length;T++)P=T==0?i[i.length-1]-F0:i[T-1],r=i[T],D<r-P&&(D=r-P,g=P);f=D/(A+1);}for(y=0;y<A;y++)g+=f,s=g,v!=0&&(o=ze(s,m),w.Math.abs(o)<f/2&&(o<0?s=m-f/2:s=m+f/2)),h=t.i[e][L+y],ve(t,h,t.J[e].a+n*w.Math.sin(s)),xe(t,h,t.J[e].b+n*w.Math.cos(s));}function Bj(t){var e,A;if(t.K)for(ut(t,7),e=0;e<t.f;e++)(t.u[e]&hn)!=0&&(n0(V(t.B[e],120),8)&&(t.B[e]=V(t.B[e],-9)),t.B[e]=V(t.B[e],-4294967297)),e<t.f&&r0(t.p,e)?t.B[e]=V(t.B[e],{l:4194297,m:x0,h:1048571}):gt(V(t.B[e],2),0)&&(t.B[e]=V(t.B[e],-5)),(gt(V(t.B[e],f9),0)||gt(V(t.B[e],Pr),0)&&n0(V(t.B[e],U8),0))&&n0(V(t.B[e],120),8)&&(t.B[e]=V(t.B[e],-9)),t.s[e]!=0&&(t.B[e]=V(t.B[e],-234881025)),N1(t,e)==(A=pn(t,e),A+WA(t,e,A,t.C[e]))&&(t.B[e]=V(t.B[e],-4063233),t.B[e]=V(t.B[e],-17042430230529),t.B[e]=V(t.B[e],-1921),t.B[e]=V(t.B[e],-114689)),gt(V(t.B[e],re),0)&&t.w[e]!=0&&$u(t,t.w[e]);}function vj(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(ut(t,7),D=new zA(t.f,t.g),f=k1(E,[xy,c8],[58,10],0,[t.f,8],2),n=c(F,k,6,t.f,15,1),P=c(Pt,ft,6,t.f,16,1),r=c(Pt,ft,6,t.g,16,1),T=0;T<t.f;T++){for(T!=0&&(Mu(P,P.length),Mu(r,r.length)),f[T][0]=c(E,q,6,2,15,1),f[T][0][0]=t.C[T]<<24>>24,f[T][0][1]=t.A[T]<<24>>24,n[0]=T,P[T]=true,y=0,s=1,t.u[T]|=512,h=1;h<=7&&s<t.f;h++){for(l=s,Q=y;Q<s;Q++)for(A=n[Q],o=0;o<t.j[A];o++)i=t.i[A][o],P[i]||(P[i]=true,n[l++]=i),r[t.k[A][o]]=true;if(l==s)break;for(y=s,s=l,Hj(t,D,r,true,null),e=0;e<D.q;e++)D.s[e]=0,D.T=0,Oe(D,e,0);f[T][h]=KA((L=ke(new EA(D,16)),c0(),L));}t.u[T]&=-513;}return f;}function o$(t){var e,A,n,P,r,i,f,D,Q;for(f=null,D=B1(Ni(t.D));D.length!=0;){if(A=D.indexOf(k0(44)),A==-1?(i=B1(D),D=""):(i=B1((Ct(0,A,D.length),D.substr(0,A))),D=B1((Gt(A+1,D.length+1),D.substr(A+1)))),at(i,"X")){D.length!=0&&(D=","),D=(L1(D),D+(L1("F,Cl,Br,I"),"F,Cl,Br,I"));continue;}if(e=(J1(),SA(i,321)),e!=0)if(e==1)RD(t.v,"'H' cannot be part of an atom list and is removed.");else if(f==null)f=c(F,k,6,1,15,1),f[0]=e;else {for(n=false,r=0;r<f.length;r++)if(e==f[r]){n=true;break;}if(!n){for(Q=c(F,k,6,f.length+1,15,1),P=0;P<f.length;P++)Q[P]=f[P];Q[f.length]=e,f=Q;}}}return f?.sort(me(D0.prototype.gd,D0,[])),f;}function l2(t,e,A){var n,P,r,i,f,D,Q,o,L;for(r=0,Q=0;Q<A;){if(++r,P=t[e+Q],(P&192)==128)throw At(new p8(T4));if((P&128)==0)++Q;else if((P&224)==192)Q+=2;else if((P&240)==224)Q+=3;else if((P&248)==240)Q+=4;else throw At(new p8(T4));if(Q>A)throw At(new wr(T4));}for(i=c(l9,te,6,r,15,1),L=0,f=0,D=0;D<A;){for(P=t[e+D++],(P&128)==0?(f=1,P&=127):(P&224)==192?(f=2,P&=31):(P&240)==224?(f=3,P&=15):(P&248)==240?(f=4,P&=7):(P&252)==248&&(f=5,P&=3);--f>0;){if(n=t[e+D++],(n&192)!=128)throw At(new p8("Invalid UTF8 sequence at "+(e+D-1)+", byte="+(o=n>>>0,o.toString(16))));P=P<<6|n&63;}L+=Fz(P,i,L);}return i;}function Fj(t){var e,A,n,P,r,i,f,D,Q,o;for(e=null,Q=null,i=0;i<t.f.g;i++)if(l1(t.f,i)==16){for(A=z(t.f,0,i),P=-1,f=0;f<t.d.a.length&&(P=r8(N(t.d,f),A),P==-1);f++);for(n=z(t.f,1,i),r=-1,D=0;D<t.d.a.length&&(r=r8(N(t.d,D),n),r==-1);D++);f!=D&&(f>D&&(o=f,f=D,D=o,o=P,P=r,r=o),Q==null&&(Q=c(qV,nA,457,t.d.a.length,0,2)),Q[D]==null&&(Q[D]=c(qV,{457:1,4:1,5:1,8:1},105,D,0,1)),Q[D][f]?(Q[D][f].c[0]+=ru(Q[D][f].b[0],P),Q[D][f].d[0]+=iu(Q[D][f].b[0],P),Q[D][f].c[1]+=ru(Q[D][f].b[1],r),Q[D][f].d[1]+=iu(Q[D][f].b[1],r),++Q[D][f].a[0],++Q[D][f].a[1]):(Q[D][f]=new VQ(N(t.d,f),N(t.d,D),P,r),!e&&(e=new f1()),e.a.push(Q[D][f])));}return e;}function U$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(m=c(F,k,6,t.j.g,15,1),T=0;T<e.j.a.length;T++){for(g=N(e.k,T),L=true,D=0;D<g.length;D++)if(!t.e[g[D]]){L=false;break;}if(L)for(f=0;f<g.length;f++)++m[g[f]];}for(P=t.c,l=0;l<e.j.a.length;l++)for(i=false,h=N(e.j,l),g=N(e.k,l),f=0;f<g.length&&!i;f++)if(m[g[f]]>1&&(r=B3(f,g.length),m[g[r]]==1)){for(Q=false,y=B3(r,g.length);m[g[y]]==1;)(!Lf(t,h[y],false)||g.length!=6&&K(t.j,h[y])!=6)&&(Q=true),y=B3(y,g.length);if(!Q&&(n=y>r?y-r:y+g.length-r,n>2&&(n&1)==1)){for(s=1;s<n;s+=2)o=r+s<g.length?r+s:r+s-g.length,A&&(Lf(t,h[o],true),Lf(t,h[o==h.length-1?0:o+1],true)),t2(t,g[o]);i=true;}}return P!=t.c;}function L$(t,e){var A,n,P,r,i,f,D,Q,o;return t==null?null:(f=t,Q=null,D=null,o=null,i=null,A=t.indexOf(k0(35)),A==-1?f=t:(f=(Ct(0,A,t.length),t.substr(0,A)),n=t.indexOf(k0(35),A+1),n==-1?Q=(Gt(A+1,t.length+1),t.substr(A+1)):(Q=(Ct(A+1,n,t.length),t.substr(A+1,n-(A+1))),P=t.indexOf(k0(35),n+1),P==-1?D=(Gt(n+1,t.length+1),t.substr(n+1)):(D=(Ct(n+1,P,t.length),t.substr(n+1,P-(n+1))),r=t.indexOf(k0(35),P+1),r==-1?o=(Gt(P+1,t.length+1),t.substr(P+1)):(o=(Ct(P+1,r,t.length),t.substr(P+1,r-(P+1))),i=(Gt(r+1,t.length+1),t.substr(r+1)))))),ep(f,(e&1)!=0?Q:null,(e&2)!=0?D:null,(e&4)!=0?o:null,(e&8)!=0?i:null,false,null));}function mj(t,e,A){var n,P,r,i,f,D,Q;if(e&&e.g&&++t.B,e&&t.r>e.b&&(t.r=e.b),t.F)return Tm(t);if(t.D.d.a.length==t.s)return null;if(e&&e.b>3){if(n=A?_8(t.i,e.d):null,i=A?n.c:null,r=A?i.a.length:0,qZ(t,e),A)for(f=r;f<i.a.length;f++)fq(Te(A.a,N3(e.c)),vW(t.C,(Fe(f,i.a.length),i.a[f]),n));e.g||(e.b<6?K8(t.w,e):(!t.e||t.e.b>e.b)&&(t.e=e)),++t.g;}for(D=t.r+3,Q=IF(t,D,e);Q&&(P=WG(Q,_8(t.i,Q.d).c),!(P<D));){if(P<6&&K8(t.A,new Ug(Q,P)),++t.g,bm(t.D,Q),t.D.d.a.length==t.s)return null;D=t.r+3,Q=IF(t,D,Q);}if(!Q){if(t.w.d.a.length!=0){for(t.F=true;t.w.d.a.length!=0&&mr(t.w,t.w.d.a.length-1).b>t.r+3;)tU(t.w,t.w.d.a.length-1);Q=Tm(t);}return Q;}return bm(t.D,Q),Q;}function s$(t,e){var A,n,P,r,i,f,D,Q;A=(Q=t.n.Ac(),Q.getBackgroundRGB()),P=(Wr(),(xA[0]*((A&PP)>>16)+xA[1]*((A&AP)>>8)+xA[2]*(A&255))/255<.5),n=P?L5(A,bf):A&Sn|vt(w.Math.round(uo*((A&PP)>>16)))<<16|vt(w.Math.round(uo*((A&AP)>>8)))<<8|vt(w.Math.round(uo*(A&255))),i=P?L5(A,.5):A&Sn|vt(w.Math.round(qf*((A&PP)>>16)))<<16|vt(w.Math.round(qf*((A&AP)>>8)))<<8|vt(w.Math.round(qf*(A&255))),D=xU(t.i),f=NU(t.i),ZL(e,t.i,0,0,D,f,B8,B8,D/t.j,f/t.j),r=AF(20),ZL(e,t.c,0,t.d*84,84,84,r[0],r[1],gn,gn),(t.a.U&4)==0&&mQ(t,e,19,-1,true),(t.a.U&8)==0&&mQ(t,e,21,-1,true),mQ(t,e,t.b,i,false),t.f!=-1&&t.f!=t.k&&mQ(t,e,t.f,n,false),t.k!=-1&&mQ(t,e,t.k,7167924,false);}function kj(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;if(!t.b)return  false;for(i=null,s=null,D=new jL(null,null),P=1,D.a[1]=t.b,L=D;L.a[P];)Q=P,f=s,s=L,L=L.a[P],n=t.a.Rb(e,L.c),P=n<0?0:1,n==0&&(!A.c||z8(L.d,A.d))&&(i=L),!(L&&L.b)&&!zP(L.a[P])&&(zP(L.a[1-P])?s=s.a[Q]=Wu(L,P):zP(L.a[1-P])||(y=s.a[1-Q],y&&(!zP(y.a[1-Q])&&!zP(y.a[Q])?(s.b=false,y.b=true,L.b=true):(r=f.a[1]==s?1:0,zP(y.a[Q])?f.a[r]=NB(s,Q):zP(y.a[1-Q])&&(f.a[r]=Wu(s,Q)),L.b=f.a[r].b=true,f.a[r].a[0].b=false,f.a[r].a[1].b=false))));return i&&(A.b=true,A.d=i.d,L!=i&&(o=new jL(L.c,L.d),xY(t,D,i,o),s==i&&(s=o)),s.a[s.a[1]==L?1:0]=L.a[L.a[0]?0:1],--t.c),t.b=D.a[1],t.b&&(t.b.b=false),A.b;}function z5(t,e,A){bi();var n,P,r,i,f;tW.call(this,t),this.a=new f1(),this.b=new Pj(t),ut(this.g,7),f=xu(Dl,e),r=$P(A.c,JC)?oD(A.c.a.get(JC)):100,n=$P(A.c,zC)?oD(A.c.a.get(zC)):1,P=$P(A.c,YC)&&MP(A.c.a.get(YC),"distance"),i=new cR(this.b),(!$P(A.c,KC)||mi(A.c.a.get(KC)))&&RP(this.a,BY(f,this.b)),(!$P(A.c,XC)||mi(A.c.a.get(XC)))&&RP(this.a,LO(f,this.b)),(!$P(A.c,ZC)||mi(A.c.a.get(ZC)))&&RP(this.a,UX(f,this.b,i,r,P,n)),(!$P(A.c,WC)||mi(A.c.a.get(WC)))&&RP(this.a,iK(f,this.b)),(!$P(A.c,_C)||mi(A.c.a.get(_C)))&&RP(this.a,UZ(f,this.b)),(!$P(A.c,$C)||mi(A.c.a.get($C)))&&RP(this.a,xZ(f,this.b)),(!$P(A.c,aC)||mi(A.c.a.get(aC)))&&RP(this.a,BK(f,this.b,i,r));}function y$(t){var e,A,n,P,r;for(r=t.U,P=kn(t.f,t.R.f),t.R.K||(kZ(t),qm(t,r,P)),t.bb=c(E,q,6,t.R.f,15,1),t.ab=c(E,q,6,t.R.f,15,1),A=0;A<t.R.f;A++)t.bb[A]=ne(t.R,A)<<24>>24,t.ab[A]=VA(t.R,A)<<24>>24;for(t.n=c(E,q,6,t.R.g,15,1),t.k=c(E,q,6,t.R.g,15,1),n=0;n<t.R.g;n++)t.n[n]=hP(t.R,n)<<24>>24,t.k[n]=Wi(t.R,n)<<24>>24;for(IW(t),t.Z=false,t.M=c(Pt,ft,6,t.R.f,16,1),e=0;e<t.R.f;e++)t.db[e]!=0&&(t.M[e]=true,t.Z=true);dz(t),t.P=null,t.cb=c(Pt,ft,6,t.R.f,16,1),t.Z&&(t.P=new Vm(t.R,P,t.M,t.db,t.o,t.bb,t.ab,t.ib,t.q,t.cb),R_(t.P)),t.eb=c(Pt,ft,6,t.R.f,16,1),t.gb=c(Pt,ft,6,t.R.f,16,1),t.hb=new f1(),t.P&&D2(t.P,t.f),o_(t),qm(t,r,P),S_(t),t.P&&(t.K=DG(t.P)),ra(t);}function l$(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(D=new Zt(t.d);D.a<D.c.a.length;)for(f=$t(D),Q=0;Q<f.f.length;Q++)if(n=f.f[Q],dt(t.f,n)==2&&(!WP(t.f,n)&&(Ie(t.f,n)==3||Ie(t.f,n)==0)&&t3(t.f,n),!fA(t.f,n)&&O(t.f,z(t.f,0,n))>1&&O(t.f,z(t.f,1,n))>1&&(Ie(t.f,n)==1||Ie(t.f,n)==2))){for(s=c(F,k,6,2,15,1),P=c(F,k,6,2,15,1),o=0;o<2;o++)for(s[o]=t.f.M,P[o]=z(t.f,o,n),L=0;L<Ht(t.f,P[o]);L++)r=W(t.f,P[o],L),r!=z(t.f,1-o,n)&&s[o]>r&&(s[o]=r);i=Un(f.a[f.g[P[0]]],f.b[f.g[P[0]]],f.a[f.g[P[1]]],f.b[f.g[P[1]]]),e=Un(f.a[f.g[s[0]]],f.b[f.g[s[0]]],f.a[f.g[P[0]]],f.b[f.g[P[0]]]),A=Un(f.a[f.g[P[1]]],f.b[f.g[P[1]]],f.a[f.g[s[1]]],f.b[f.g[s[1]]]),vL(i,e)<0^vL(i,A)<0^Ie(t.f,n)==2&&Xj(f,n);}}function T$(t,e,A){var n,P,r,i,f,D,Q,o,L;return r=gR(t,e),i=r[0],D=r[1],D.e==0?new jD(i,2):(Q=t.e*e.e,lh(e)<54?(f=(L=D.d>1?S9(D.a[0],D.a[1]):S9(D.a[0],0),D.e>0?L:p0(L)),P=(o=e.d>1?S9(e.a[0],e.a[1]):S9(e.a[0],0),e.e>0?o:p0(o)),n=Ci(j1(G(f,0)<0?p0(f):f,1),G(P,0)<0?p0(P):P)?-1:E1(j1(G(f,0)<0?p0(f):f,1),G(P,0)<0?p0(P):P)?1:0,n=SQ(jQ(i,0)?1:0,Q*(5+n),A)):(n=rs(Um(D.e<0?D.e==0?D:new Ue(-D.e,D.d,D.a):D),e.e<0?e.e==0?e:new Ue(-e.e,e.d,e.a):e),n=SQ(jQ(i,0)?1:0,Q*(5+n),A)),n!=0?lh(i)<54?QO((o=i.d>1?S9(i.a[0],i.a[1]):S9(i.a[0],0),x1(i.e>0?o:p0(o),n))):(i=y2(i,(be(),G(n,0)>=0?ge(n):vP(ge(p0(n))))),new jD(i,2)):new jD(i,2));}function bj(t){var e,A,n,P,r,i,f,D,Q;switch(e=null,t.e){case 1:for(e=c(zt,_t,6,2*t.a.length,15,1),n=0;n<t.a.length;n++)e[n]=t.a[n],e[t.a.length+n]=180+t.a[n]<<16>>16;return e;case 2:for(P=t.a[0]==0?1:0,r=t.a[t.a.length-1]==180?t.a.length-1:t.a.length,Q=r-P,e=c(zt,_t,6,t.a.length+Q,15,1),i=0;i<t.a.length;i++)e[i]=t.a[i];for(f=P;f<r;f++)e[e.length-1-f+P]=360-t.a[f]<<16>>16;return e;case 3:for(P=t.a[0]==0?1:0,r=t.a[t.a.length-1]==90?t.a.length-1:t.a.length,Q=r-P,e=c(zt,_t,6,2*t.a.length+2*Q,15,1),D=0;D<t.a.length;D++)e[D]=t.a[D],e[t.a.length+Q+D]=180+t.a[D]<<16>>16;for(A=P;A<r;A++)e[t.a.length+Q-1-A+P]=180-t.a[A]<<16>>16,e[e.length-1-A+P]=360-t.a[A]<<16>>16;return e;default:return t.a;}}function h$(t){var e,A,n,P,r,i,f,D,Q,o,L;for(L=new Zt(t.g);L.a<L.c.a.length;){for(Q=$t(L),A=0,r=0;r<O(t.k,Q.a);r++)t.c[xt(t.k,Q.a,r)]||++A;if(A!=0){for(Q.c=c(F,k,6,A,15,1),A=0,i=0;i<O(t.k,Q.a);i++)t.c[xt(t.k,Q.a,i)]||(D=W(t.k,Q.a,i),Q.c[A++]=t.q[D]<<16|D);for(Q.c.sort(me(D0.prototype.gd,D0,[])),P=0;P<Q.c.length;P++)Q.c[P]=c1&Q.c[P];}}for(n=c(Pt,ft,6,t.k.g,16,1),t.e=c(F,k,6,t.k.g,15,1),o=new Zt(t.g);o.a<o.c.a.length;)if(Q=$t(o),Q.c!=null){for(Q.d=c(Pt,ft,6,Q.c.length,16,1),P=0;P<Q.c.length;P++)for(f=0;f<O(t.k,Q.a);f++)if(Q.c[P]==W(t.k,Q.a,f))if(e=xt(t.k,Q.a,f),t.c[e])n[t.e[e]]=false;else {for(t.c[e]=true,Q.d[P]=true,t.e[e]=1;n[t.e[e]];)++t.e[e];n[t.e[e]]=true;}}}function Rj(){if(Xh(),!ol)try{Yf=c(gtt,h0,101,4,0,1),L9=c(d4,h0,20,4,0,1),s9=c(d4,h0,20,4,0,1),L9[0]=ei("/resources/toxpredictor/m1.txt"),L9[1]=ei("/resources/toxpredictor/t1.txt"),L9[2]=ei("/resources/toxpredictor/i1.txt"),L9[3]=ei("/resources/toxpredictor/r1.txt"),s9[0]=ei("/resources/toxpredictor/m2.txt"),s9[1]=ei("/resources/toxpredictor/t2.txt"),s9[2]=ei("/resources/toxpredictor/i2.txt"),s9[3]=ei("/resources/toxpredictor/r2.txt"),Yf[0]=gs("/resources/toxpredictor/m3.txt"),Yf[1]=gs("/resources/toxpredictor/t3.txt"),Yf[2]=gs("/resources/toxpredictor/i3.txt"),Yf[3]=gs("/resources/toxpredictor/r3.txt"),ol=!0;}catch(t){if(t=a1(t),Xt(t,19))z1();else throw At(t);}}function c$(t,e){var A,n,P,r,i,f,D;if(D=new fD(),!ol)return mt(D.a,new Ze("Toxicity predictor not properly initialized.",2)),D;if(i=ke(new FA(t)),Yf[e].bc(i)!=-1)return ZP(D,"This molecule is known to be "+zV[e]+":",2),mt(D.a,new Ze(i,1)),D;for(f=new bD(1),A=false,n=new JA(),r=0;r<L9[e].a.length;r++)f2(new GA(false),n,N(L9[e],r)),Dn(f,t),Ln(f,n),sn(f,1,f.c)>0&&(A||ZP(D,"High-risk fragments indicating "+Ro[e]+":",2),A=true,ZP(D,N(L9[e],r),1));for(A=false,P=0;P<s9[e].a.length;P++)f2(new GA(false),n,N(s9[e],P)),Dn(f,t),Ln(f,n),sn(f,1,f.c)>0&&(A||ZP(D,"Medium-risk fragments indicating "+Ro[e]+":",2),A=true,ZP(D,N(s9[e],P),1));return D.a.a.length==0&&ZP(D,"No indication for "+Ro[e]+" found.",2),D;}function jj(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l;for(l=B(d(Ut,1),ht,6,15,[0,0,0]),Q=B(d(Ut,1),ht,6,15,[0,0,0]),f=B(d(F,1),k,6,15,[e.C[A],e.C[n],e.C[P]]),D=1.75,o=0;o<3;o++)switch(f[o]){case 1:l[o]=1.395;break;case 6:l[o]=2.494,Q[o]=1.016;break;case 7:l[o]=2.711,Q[o]=1.113;break;case 8:l[o]=3.045,Q[o]=1.337;break;case 9:l[o]=2.847;break;case 14:l[o]=2.35,Q[o]=.811;break;case 15:l[o]=2.35,Q[o]=1.068;break;case 16:l[o]=2.98,Q[o]=1.249;break;case 17:l[o]=2.909,Q[o]=1.078;break;case 35:l[o]=3.017;break;case 53:l[o]=3.086;}return L=L2(t.a.d,e,A,n),s=L2(t.a.d,e,n,P),i=(L-s)*(L-s)/((L+s)*(L+s)),y=NC*r,u2(e,A,n,P,4)?D*=.85:u2(e,A,n,P,3)&&(D*=.05),D*l[0]*Q[1]*l[2]/((L+s)*y*y*w.Math.exp(2*i));}function w$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;if(e!=null)t.e=e;else for(t.e=c(Pt,ft,6,t.j.g,16,1),s=0;s<t.j.g;s++)l1(t.j,s)==8&&(t.e[s]=true,w0(t.j,s,1));for(y=0;y<t.j.g;y++)t.e[y]&&++t.c;for(t.d=c(Pt,ft,6,t.j.f,16,1),t.f=c(Pt,ft,6,t.j.f,16,1),f=0;f<t.j.f;f++){for(l=0,T=0;T<O(t.j,f);T++)t.e[xt(t.j,f,T)]&&++l;l>0&&(t.d[f]=true,++t.b,l==3&&(t.f[f]=true));}for(t.i=c(Pt,ft,6,A.j.a.length,16,1),g=0;g<A.j.a.length;g++)for(t.i[g]=true,Q=N(A.k,g),o=0,L=Q.length;o<L;++o)if(D=Q[o],!t.e[D]){t.i[g]=false;break;}for(t.g=c(Pt,ft,6,t.j.f,16,1),h=0;h<A.j.a.length;h++)if(t.i[h]&&N(A.k,h).length!=6)for(P=N(A.j,h),r=0,i=P.length;r<i;++r)n=P[r],N(A.k,h).length==5&&(t.g[n]=true);t.k=0;}function _s(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,T,h,g,m;for(y=0;y<e.j[A];y++)if(f=e.i[A][y],!r[f]&&(o=e.k[A][y],g=dt(e,o),n&&g>=2||!n&&g<=2)){for(r[f]=true,i.add(m1(o)),l=0;l<e.j[f];l++)if(D=e.i[f][l],!r[D]&&(L=e.k[f][l],m=dt(e,L),e.o[f]+2==g+m&&(n&&m<=2||!n&&m>=2))){if(r[D]=true,i.add(m1(L)),t.f[D]&&(K(t.i,D)==5||K(t.i,D)==6||K(t.i,D)==7||K(t.i,D)==8||K(t.i,D)==16||K(t.i,D)==34||K(t.i,D)==52)&&(!n||QQ(e,D))){for(s=new fs(t,e),T=0;T<i.a.length;T++)Q=(Fe(T,i.a.length),i.a[T]).a,h=T<2?n^(T&1)==0:P^(T&1)==0,h?hL(s,Q,dt(e,Q)==1?2:3):hL(s,Q,dt(e,Q)==2?1:2),t.g[Q]=true;Gi(t.e,s)&&uL(t.d,s);}else _s(t,e,D,n,P,r,i);LA(i,i.a.length-1),r[D]=false;}LA(i,i.a.length-1),r[f]=false;}return  false;}function a0(t,e){var A,n,P,r,i,f,D,Q,o;if(e==0)return 0;for(f=null,n=0;n<t.q;n++)(t.u[n]&F1)>>18==e&&(f==null&&(f=c(Pt,ft,6,32,16,1)),f[(t.u[n]&F1)>>18!=1&&(t.u[n]&F1)>>18!=2?-1:(t.u[n]&jA)>>20]=true);for(r=0;r<t.r;r++)(t.F[r]&768)>>8==e&&(f==null&&(f=c(Pt,ft,6,32,16,1)),f[(t.F[r]&768)>>8!=1&&(t.F[r]&768)>>8!=2?-1:(t.F[r]&ln)>>10]=true);if(o=0,f!=null){for(Q=c(F,k,6,32,15,1),D=0;D<32;D++)f[D]&&(Q[D]=o++);for(A=0;A<t.q;A++)(t.u[A]&F1)>>18==e&&(i=Q[(t.u[A]&F1)>>18!=1&&(t.u[A]&F1)>>18!=2?-1:(t.u[A]&jA)>>20],t.u[A]&=-32505857,t.u[A]|=i<<20);for(P=0;P<t.r;P++)(t.F[P]&768)>>8==e&&(i=Q[(t.F[P]&768)>>8!=1&&(t.F[P]&768)>>8!=2?-1:(t.F[P]&ln)>>10],t.F[P]&=-31745,t.F[P]|=i<<10);}return o;}function fi(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(ut(t,n?7:1),e.v=null,t.K&&pe(e,true),D=A.length,P==null&&(P=c(F,k,6,D,15,1)),e.q=0,r=0;r<D;r++)if(A[r]){if(P[r]=Vn(t,e,r,0,0),t.C[r]==1&&(s=N1(t,r),s>1)){for(L=0;L<t.e[r];L++)if(!A[t.i[r][L]]){XA(e,P[r],s);break;}}}else P[r]=-1;for(o=c(F,k,6,t.r,15,1),V9(o,o.length,-1),e.r=0,Q=0;Q<t.r;Q++)i=t.D[0][Q],f=t.D[1][Q],i<D&&f<D&&(A[i]&&A[f]?o[Q]=tr(t,e,Q,0,0,P==null?t.D[0][Q]:P[t.D[0][Q]],P==null?t.D[1][Q]:P[t.D[1][Q]],n):t.s[i]!=0&&t.s[f]!=0&&t.s[i]<0^t.s[f]<0&&(A[i]&&(e.s[P[i]]+=t.s[i]<0?1:-1),A[f]&&(e.s[P[f]]+=t.s[f]<0?1:-1)));UL(t,e),t.d&&(e.T=0),e.T=0,a0(e,1),a0(e,2),e.q!=D&&pe(e,true),lj(t,e,D,P,o),Wk(t,e,D,P),n&&Bf(new hr(e),null,false);}function g$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(D=false,$1(t.k,e)!=0&&O(t.k,e)==2&&pA(t.k,e,0)==2&&pA(t.k,e,1)==2){for(i=0;i<O(t.k,e);i++)if(n=W(t.k,e,i),n!=A&&O(t.k,n)==2){D=true;break;}for(r=0;r<O(t.k,e);r++){for(n=W(t.k,e,r),l=0,y=c(F,k,6,3,15,1),o=0;o<O(t.k,n);o++)y[l]=W(t.k,n,o),y[l]!=e&&++l;l==2&&t.q[y[0]]<t.q[y[1]]^y[0]<y[1]&&(D=!D);}}else {for(L=c(F,k,6,4,15,1),s=c(F,k,6,4,15,1),f=0,A!=-1&&(L[f]=A,s[f++]=8*t.q[A]),(It(t.k,e)!=0||O(t.k,e)==3)&&(L[f]=Et,s[f++]=8*t.q[e]),r=0;r<O(t.k,e);r++)n=W(t.k,e,r),n!=A&&(L[f]=n,s[f++]=QY(t,e,r));D=uJ(L,s);}return Q=d0(t.k,e)==1^D,Mi(t.k,e)&&(P=Tq(t.d,e),t.n[P]||(t.n[P]=true,t.o[P]=Q),t.o[P]&&(Q=!Q)),Q?"@@":"@";}function d$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(ut(t.H,t.N),o=t.H.f,t.J=c(F,k,6,o,15,1),t.I=c(NA,te,6,o,14,1),i=0;i<o;i++)t.I[i]=Nr(V(Y(up(t.H,i),U0(t.H,i)),j6),Vp),t.J[i]=K(t.H,i),(e&1)!=0&&(t.J[i]+=b1(t.H,i)+16<<8),(e&2)!=0&&(t.J[i]+=le(t.H,i)<<16);for(t.M=c(NA,te,6,o,14,1),s=xn(t.H),Q=0;Q<s.j.a.length;Q++)for(y=N(s.k,Q).length,n=N(s.j,Q),P=0,r=n.length;P<r;++P)f=n[P],y==3?t.M[f]=Y(t.M[f],rr):y==4?t.M[f]=Y(t.M[f],ir):y==5?t.M[f]=Y(t.M[f],fr):y==6?t.M[f]=Y(t.M[f],Dr):y==7&&(t.M[f]=Y(t.M[f],ur));for(A=0;A<o;A++)y=H9(t.H,A),y==0?t.M[A]=Y(t.M[A],U8):y>7&&(t.M[A]=Y(t.M[A],Rf));for(L=t.H.g,t.K=c(F,k,6,L,15,1),D=0;D<L;D++)t.K[D]=(Nb(t.H,D)|Ae(t.H,D))&6422527^6291840;}function $s(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;if(un(t.i,0),n=SA(e,t.c),n!=0){if(G1(t),L=n==1^K(t.V,t.t)==1,gf(t.V,t.t,n,0,-1,0)){L&&(t.t=-1,I1(t,new S1(t,4,true))),t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));return;}t.eb=w.Math.max(t.eb,0),e1(t.k);}if(t.j!=null&&t.j.length!=0&&(e=t.j),y=(ry(),o=(!rl&&qY(),Te(rl,ai(e.toLowerCase(),"-"))),o==null?null:Zi(new GA(false),o)),y){for(G1(t),D=new JA(),NR(D,t.V,t.t,null),s=Pn(D,t.ab*24),i=D.q,A=0;A<D.q;A++)D.u[A]|=I0;for(Gs(D,y,0),er(new Y8(4),D),P=kt(t.V,t.t)-s*D.J[0].a,r=pt(t.V,t.t)-s*D.J[0].b,f=t.V.q,Gs(t.V,y,t.t),l=t.V.q-f,Q=0;Q<l;Q++)ve(t.V,f+Q,s*D.J[i+Q].a+P),xe(t.V,f+Q,s*D.J[i+Q].b+r);of(t.V),t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));}}function pj(t,e,A){if(b1(t.j,e)!=0)return 0;if(t.a){if(K(t.j,e)==5)return N1(t.j,e)!=2?0:(A&&E0(t.j,e,1),1);if(K(t.j,e)==7)return N1(t.j,e)!=2?0:(A&&E0(t.j,e,-1),$i(t,e)?6:3);if(K(t.j,e)==8)return N1(t.j,e)!=1?0:(A&&E0(t.j,e,-1),$i(t,e)?7:4);if(K(t.j,e)==16)return N1(t.j,e)!=1?0:(A&&E0(t.j,e,-1),$i(t,e)?5:2);if(K(t.j,e)==34)return N1(t.j,e)!=1?0:(A&&E0(t.j,e,-1),$i(t,e)?4:1);}else {if(K(t.j,e)==5)return N1(t.j,e)>2?0:(A&&E0(t.j,e,1),1);if(K(t.j,e)==7)return N1(t.j,e)>2?0:(A&&E0(t.j,e,-1),$i(t,e)?5:3);if(K(t.j,e)==8)return N1(t.j,e)>1?0:(A&&E0(t.j,e,-1),$i(t,e)?7:4);if(K(t.j,e)==16)return N1(t.j,e)>1?0:(A&&E0(t.j,e,-1),$i(t,e)?5:2);}return 0;}function Cj(t){var e,A;if(t.s==null&&!t.t)return null;if(t.t)return A=vQ(t.t),A?(Ws(t,A),++t.p,bw(A,"SO#"+ ++t.a),A):null;if(t.j)return null;for(t.b.c==0&&_8(t,c(F,k,6,t.q.length,15,1)),t.A=mj(t.B,t.A,t.c);t.A&&!(gt(t.v,0)&&(z1(),E1(M1(Date.now()),t.v)));){if(e=_8(t,t.A.d),t.A.c||(Nx(t.A,AJ(e,t.A.i,"#"+ ++t.a)),t.i&&CI(t.c,t.A)),t.A.b==0&&(Mj(t,t.A,t.A.c),t.A.b!=0&&fa(t,t.A),t.i&&(gz(Si(t.c,t.A),e,t.A.c),Si(t.c,t.A))),t.A.b>t.B.r+3){if(t.A=mj(t.B,t.A,t.c),t.A||t.p!=0)continue;if(t.C&&(t.t=new NQ(t.k),ao(t.t,t.v),w5(t.t,t.o,-1),A=vQ(t.t),A))return Ws(t,A),++t.p,bw(A,"SO#"+ ++t.a),A;t.A=t.B.e,t.j=true;}if(t.A)return Ws(t,t.A.c),t.A.g=true,++t.p,t.i&&Si(t.c,t.A),t.A.c;}return null;}function B$(t,e,A,n){var P,r,i,f,D,Q;if(P=Z9(e,t.d),E0(e,P,t.e),We(e,P,t.o,false),XA(e,P,t.a),gt(t.c,0)&&(gt(V(t.c,2),0)?(t.c=V(t.c,-3),e.u[P]|=I0):e.u[P]&=wy,T1(e,P,t.c,true)),t.b){for(Q=c(F,k,6,t.b.d.a.length,15,1),D=0;D<t.b.d.a.length;D++)Q[D]=mr(t.b,D).a;oh(e,P,Q),t.b.d.a.length=0;}else if(String.fromCharCode(A).toLowerCase().charCodeAt(0)==A&&BB(A)){if(t.d!=5&&t.d!=6&&t.d!=7&&t.d!=8&&t.d!=15&&t.d!=16&&t.d!=33&&t.d!=34)throw At(new C1("SmilesParser: atomicNo "+t.d+" must not be aromatic. Position:"+(n-1)));e.u[P]|=I0;}else e.u[P]&=wy;if(t.f)for(f=new Zt(t.f);f.a<f.c.a.length;)i=$t(f),t.r=true,X0(i,0,0),pe(e,true),Gs(e,i,P);return t.g!=-1&&t.d!=1&&(r=c(E,q,6,1,15,1),r[0]=t.g<<24>>24,fz(e,P,r)),P;}function v$(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(e==2||e==5)mt(t.F,_i(t.G,t.G.length)),t.b&&mt(t.a,JL(t.C,t.C.length));else if(e==4)s=Rb(_i(t.G,t.G.length)),TU(t.O,s)||(Gi(t.O,s),mt(t.F,_i(t.G,t.G.length)),t.b&&mt(t.a,JL(t.C,t.C.length)));else if(e==3){if(s=Rb(_i(t.G,t.G.length)),!TU(t.O,s)){for(L=false,Q=(f=new x8(new q8(new w9(t.O.a).a).b),new g9(f));C9(Q.a.a);){for(D=(i=dr(Q.a),i.dd()),o=0,n=s,P=0,r=n.length;P<r;++P){for(A=n[P];o<D.length&&D[o]<A;)++o;if(o<D.length&&A==D[o]){L=true;break;}}if(L)break;}L||(Gi(t.O,s),mt(t.F,_i(t.G,t.G.length)),t.b&&mt(t.a,JL(t.C,t.C.length)));}}else e==6&&(s=CX(t,_i(t.G,t.G.length)),TU(t.O,s)||(Gi(t.O,s),mt(t.F,_i(t.G,t.G.length)),t.b&&mt(t.a,JL(t.C,t.C.length))));}function Vn(t,e,A,n,P){var r,i,f;return r=e.q,r>=e.M&&bQ(e,e.M*2),f=(t.u[A]&F1)>>18,i=-1,f==1?n==-1?i=a0(e,f):i=w.Math.min(31,n+((t.u[A]&F1)>>18!=1&&(t.u[A]&F1)>>18!=2?-1:(t.u[A]&jA)>>20)):f==2&&(P==-1?i=a0(e,f):i=w.Math.min(31,P+((t.u[A]&F1)>>18!=1&&(t.u[A]&F1)>>18!=2?-1:(t.u[A]&jA)>>20))),e.C[r]=t.C[A],e.s[r]=t.s[A],e.A[r]=t.A[A],e.u[r]=t.u[A],e.B[r]=e.K?t.B[A]:0,mD(e.J[r],t.J[A]),e.w[r]=t.w[A],e.v!=null&&(e.v[r]=null),t.v!=null&&t.v[A]!=null&&e.K&&(e.v==null&&(e.v=c(F,f0,7,e.C.length,0,2)),e.v[r]=kn(t.v[A],t.v[A].length)),e.t!=null&&(e.t[r]=null),t.t!=null&&t.t[A]!=null&&(e.t==null&&(e.t=c(E,c8,10,e.C.length,0,2)),e.t[r]=oN(t.t[A],t.t[A].length)),i!=-1&&(e.u[r]&=-32505857,e.u[r]|=i<<20),++e.q,e.T=0,r;}function Y5(){Y5=d1,KV=B(d(it,1),Dt,2,6,["","r0","r","r3","r3-4","r3-5","r3-6","r3-7","r4","r4-5","r4-6","r4-7","r>3","r5","r5-6","r5-7","r>4","r6","r6-7","r>5","r7","r>6","r>7"]),YV=B(d(it,1),Dt,2,6,[g8,fV,"is in any ring","3 members","3-4 members","3-5 members","3-6 members","3-7 members","4 members","4-5 members","4-6 members","4-7 members","> 3 members","5 members","5-6 members","5-7 members","> 4 members","6 members","6-7 members","> 5 members","7 members","> 6 members","> 7 members"]),Ti=B(d(NA,1),te,6,14,[0,U8,jp,rr,25769803776,60129542144,128849018880,266287972352,ir,51539607552,120259084288,257698037760,532575944704,fr,103079215104,240518168576,515396075520,Dr,206158430208,481036337152,ur,412316860416,Rf]);}function F$(t,e){i8();var A,n,P,r,i,f,D,Q,o,L,s;for(r=0;r<e.f;r++)if(e.o[r]==2&&e.j[r]==2&&e.n[r][0]==2&&e.n[r][1]==2&&e.C[r]<=7&&(o=e.u[r]&3,o==1||o==2)){for(n=c(F,k,6,4,15,1),s=c(F,k,6,2,15,1),f=0;f<e.j[r];f++){for(A=e.i[r][f],Q=Et,D=0;D<e.j[A];D++)i=e.i[A][D],i!=r&&Q>i&&(Q=i);n[3*f]=Q,n[1+f]=A,s[f]=r;}if(n[0]==Et||n[3]==Et){z1(),""+ke(new FA(e));break;}mt(t,new ST(e,n,s,(e.u[r]&hn)!=0,o==1));}for(P=0;P<e.g;P++)if(o=e.F[P]&3,(o==1||o==2)&&dt(e,P)!=2){for(n=c(F,k,6,4,15,1),s=c(F,k,6,2,15,1),f=0;f<2;f++){for(A=e.D[f][P],L=e.D[1-f][P],Q=Et,D=0;D<e.j[A];D++)i=e.i[A][D],i!=L&&Q>i&&(Q=i);n[3*f]=Q,n[1+f]=A,s[f]=e.D[1-f][P];}mt(t,new ST(e,n,s,(e.F[P]&64)!=0,o==2));}}function m$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(f=ms(t),i=c(Pt,ft,6,f+1,16,1),l=new Zt(t.g);l.a<l.c.a.length;)for(s=$t(l),A=0;A<s.q;A++)if(P=w.Math.abs(s.w[A]),P!=0){if(i[P])throw At(new C1("Duplicate mapping no in reactants: "+P));i[P]=true;}for(r=c(Pt,ft,6,f+1,16,1),L=new Zt(t.f);L.a<L.c.a.length;)for(Q=$t(L),A=0;A<Q.q;A++)if(P=w.Math.abs(Q.w[A]),P!=0){if(r[P])throw At(new C1("Duplicate mapping no in products: "+P));r[P]=true;}for(D=c(F,k,6,f+1,15,1),n=0,e=1;e<=f;e++)i[e]&&r[e]&&(D[e]=++n);if(n!=f){for(y=new Zt(t.g);y.a<y.c.a.length;)for(s=$t(y),A=0;A<s.q;A++)We(s,A,D[w.Math.abs(s.w[A])],s.w[A]<0);for(o=new Zt(t.f);o.a<o.c.a.length;)for(Q=$t(o),A=0;A<Q.q;A++)We(Q,A,D[w.Math.abs(Q.w[A])],Q.w[A]<0);}}function k$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;if(g=(ut(t,7),t.p),!g.e[e])return 1;if(N(g.k,e).length==6){for(n=N(g.j,e),P=0,r=n.length;P<r;++P)if(A=n[P],N1(t,A)+It(t,A)!=t.e[A]+It(t,A)+1)return 1;for(D=N(g.k,e),Q=0,o=D.length;Q<o;++Q)if(f=D[Q],L=B(d(F,1),k,6,15,[-1,-1]),dt(t,f)==1){for(y=0;y<=1;y++)for(i=t.D[y][f],s=0;s<t.e[i];s++)if(l=t.i[i][s],!yA(g,e,l)&&dt(t,u1(t,i,l))==2){L[y]=l;break;}if(L[0]>-1&&L[1]>-1)for(h=0;h<g.j.a.length;h++){if(yA(g,h,L[0])&&yA(g,h,L[1])&&t.b[h]==2)return 2;if(yA(g,h,L[0])&&yA(g,h,L[1])&&t.b[h]!=0)return 1;}}}if(N(g.k,e).length==5)for(T=1,n=N(g.j,e),P=0,r=n.length;P<r;++P){if(A=n[P],N1(t,A)+It(t,A)==t.e[A]+It(t,A)&&T>0){--T;continue;}if(N1(t,A)+It(t,A)!=t.e[A]+It(t,A)+1)return 1;}return 0;}function K5(t){var e,A,n,P,r,i,f,D,Q,o,L;for(e=0;e<t.R.f;e++)if(t.db[e]==1||t.db[e]==2){if(D=false,YT(t.R,e))for(f=0;f<O(t.R,e);f++){for(P=W(t.R,e,f),L=0,o=c(F,k,6,3,15,1),Q=0;Q<O(t.R,P);Q++)o[L]=W(t.R,P,Q),o[L]!=e&&++L;L==2&&t.f[o[0]]>t.f[o[1]]^o[0]<o[1]&&(D=!D);}else for(f=1;f<O(t.R,e);f++)for(Q=0;Q<f;Q++)r=W(t.R,e,f),i=W(t.R,e,Q),t.f[r]>t.f[i]&&(D=!D),r<i&&(D=!D);we(t.R,e,t.db[e]==1^D?1:2,t.fb[e]);}else we(t.R,e,t.db[e],t.fb[e]);for(A=0;A<t.R.g;A++)if(t.o[A]==1||t.o[A]==2){for(D=false,f=0;f<2;f++)if(n=z(t.R,f,A),O(t.R,n)==3){for(o=c(F,k,6,2,15,1),L=0,Q=0;Q<3;Q++)W(t.R,n,Q)!=z(t.R,1-f,A)&&(o[L++]=W(t.R,n,Q));t.f[o[0]]>t.f[o[1]]&&(D=!D),o[0]<o[1]&&(D=!D);}A8(t.R,A,t.o[A]==1^D?1:2,t.p[A]);}else A8(t.R,A,t.o[A],t.p[A]);}function Hj(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(ut(t,n?7:1),e.v=null,t.K&&pe(e,true),P==null&&(P=c(F,k,6,t.q,15,1)),e.q=0,r=0;r<t.q;r++)for(P[r]=-1,o=0;o<t.j[r];o++)if(A[t.k[r][o]]){if(P[r]=Vn(t,e,r,0,0),t.C[r]==1&&(s=N1(t,r),s>1)){for(L=0;L<t.e[r];L++)if(!A[t.k[r][L]]){XA(e,P[r],s);break;}}break;}for(Q=c(F,k,6,t.r,15,1),e.r=0,D=0;D<t.r;D++)A[D]?Q[D]=tr(t,e,D,0,0,P==null?t.D[0][D]:P[t.D[0][D]],P==null?t.D[1][D]:P[t.D[1][D]],n):(Q[D]=-1,i=t.D[0][D],f=t.D[1][D],P[i]==-1^P[f]==-1&&t.s[i]!=0&&t.s[f]!=0&&t.s[i]<0^t.s[f]<0&&(P[i]!=-1&&(e.s[P[i]]+=t.s[i]<0?1:-1),P[f]!=-1&&(e.s[P[f]]+=t.s[f]<0?1:-1)));return UL(t,e),t.d&&(e.T=0),e.T=0,a0(e,1),a0(e,2),e.q!=t.q&&pe(e,true),lj(t,e,t.q,P,Q),Wk(t,e,t.q,P),n&&Bf(new hr(e),null,false),P;}function b$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;for(f=0,A=0;A<t.f.q;A++)Y0(t.f,A)&&++f;if(!(f<2)){for(L=0,Q=0,o=0;o<t.f.r;o++)n=z(t.f,0,o),P=z(t.f,1,o),Y0(t.f,n)&&Y0(t.f,P)&&(t.c[o]=true,t.b[n]=true,t.b[P]=true,Q+=sh(t.f,o),++L);for(L!=0&&Q!=0?Q/=L:Q=M8(t.f),r=0;r<t.f.q;r++)Y0(t.f,r)&&!t.b[r]&&--f;if(!(f<2)){for(v=c(F,k,6,t.f.q,15,1),s=n9(t.f,v,true,true),m=c(F,k,6,s,15,1),i=0;i<t.f.q;i++)v[i]!=-1&&++m[v[i]];for(g=c(N4,e0,48,s,0,1),l=0;l<s;l++)g[l]=new CP(t.f,m[l],true);for(D=c(F,k,6,s,15,1),e=0;e<t.f.q;e++)T=v[e],T!=-1&&(g[T].k[D[T]]=ie,g[T].e[D[T]]=e,g[T].a[D[T]]=kt(t.f,e)/Q,g[T].b[D[T]]=pt(t.f,e)/Q,++D[T]);for(b=-1,R=0,h=0;h<s;h++)R<m[h]&&(R=m[h],b=h);for(jP(t.d,g[b]),y=0;y<s;y++)y!=b&&jP(t.d,g[y]);}}}function R$(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(n=0;n<t.e[e];n++)switch(o=t.i[e][n],t.C[o]){case 6:return 5;case 7:switch(f6(t,o)){case 8:case 39:case 62:case 67:case 68:return 23;case 34:case 54:case 55:case 56:case 58:case 81:return 36;case 9:return 27;default:return 28;}case 8:switch(f6(t,o)){case 49:return 50;case 51:return 52;case 70:return 31;case 6:for(P=false,r=false,i=false,f=false,D=0;D<t.e[o];D++){if(L=t.i[o][D],t.C[L]==6)for(Q=0;Q<t.e[L];Q++)s=t.i[L][Q],s!=o&&(A=u1(t,L,s),(t.C[s]==6||t.C[s]==7)&&(dt(t,A)==2||A<t.g&&je(t.p,A))&&(P=true),t.C[s]==8&&dt(t,A)==2&&(r=true));t.C[L]==15&&(i=true),t.C[L]==16&&(f=true);}if(r||i)return 24;if(P)return 29;if(f)return 33;default:return 21;}case 14:return 5;case 16:case 15:return 71;}return 0;}function j$(t){var e,A,n,P,r,i,f,D,Q,o,L;if(t.n==null){if(t.b)for(n=t.j+1,t.p=c(F,nA,28,t.o.length,0,3),r=0;r<t.o.length;r++){for(t.p[r]=c(F,f0,7,t.g[r].a.length,0,2),f=0;f<t.g[r].a.length;f++)t.p[r][f]=QK(t,r,N(t.g[r],f),n);for(n+=t.o[r].f,P=gr(t.c,r),e=0;e<P.f;e++)gt(V(P.B[e],re),0)||--n;}if(t.n=k1(U9,[nA,or],[74,26],0,[t.q,t.c.f.a.length],2),t.d=k1(it,[nA,Dt],[13,2],6,[t.q,t.c.f.a.length],2),t.e=c(Pt,ft,6,t.q,16,1),L=new nu(),o=new V0(),i=0,A=0,t.q!=0){D=c(F,k,6,t.o.length,15,1);do{for(Q=o.a.length,0<Q?o.a=oA(o.a,0,0):0>Q&&(o.a+=S8(c(l9,te,6,-Q,15,1))),r=0;r<t.c.f.a.length;r++)t.n[i][r]=ftt(t,t.g,D,r),t.d[i][r]=ke(new FA(t.n[i][r])),J(o,t.d[i][r]);t.e[i]=js(L,o.a)==-1,(!t.t||!t.e[i])&&++A,++i;}while(nJ(t,D)&&A<t.i);}}}function Mj(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(t.i&&(Si(t.c,e).a=null),D=0,f=null,h=A.o,n=1;n<h.q;n++)for(m=xD(h.C[n]),P=0;P<n;P++)t.u[n][P]||(T=m+xD(h.C[P]),o=w.Math.abs(A.k[n].a-A.k[P].a),o<T&&(L=w.Math.abs(A.k[n].b-A.k[P].b),L<T&&(s=w.Math.abs(A.k[n].c-A.k[P].c),s<T&&(Q=w.Math.sqrt(o*o+L*L+s*s),Q<T&&(g=(T-Q)/T,i=20*g*g,D+=i,t.i&&(hN(Si(t.c,e),"a1:"+n+" f1:"+t.g[n]+" a2:"+P+" f2:"+t.g[P]+FV+(J9(),a9(Q,5))+" min:"+a9(T,5)),Si(t.c,e).a==null&&(r=c(F,k,6,2,15,1),r[0]=n,r[1]=P,OS(Si(t.c,e),r))),f==null&&(f=c(Ut,h0,15,t.q.length,0,2)),y=t.g[n],l=t.g[P],y<l?(f[l]==null&&(f[l]=c(Ut,ht,6,l,15,1)),f[l][y]+=i):(f[y]==null&&(f[y]=c(Ut,ht,6,y,15,1)),f[y][l]+=i))))));return $B(e,D,f),D!=0;}function p$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(Q=B1(Y1(e)),Q.length==0||(t.e=Q),Y1(e),n=Y1(e),n.startsWith(Sy)&&(P=(Gt(13,n.length+1),n.substr(13)),GQ(P,true,t)))return  true;if(l=Y1(e),i=new tu(),l!=null&&l.startsWith("M  V30 COUNTS")){if(y=B1((Gt(13,l.length+1),l.substr(13))),o=o8(y," "),s=Q1(o[0],P1,Et),L=Q1(o[1],P1,Et),s>0){if(l=Y1(e),at(iH,l))for(r=0;r<s;r++){f=new JA(),D=new fu(),D.a+=fH;do l=Y1(e),D.a+=""+l,D.a+=$A;while(l!=null&&!l.startsWith(b6));mU(i,f,new nn(new R9(D.a))),mt(t.g,f),t.d=-1;}l=Y1(e);}if(L>0&&(l=Y1(e),at(DH,l))){for(r=0;r<L;r++){f=new JA(),D=new fu(),D.a+=fH;do l=Y1(e),D.a+=""+l,D.a+=$A;while(l!=null&&!l.startsWith(b6));mU(i,f,new nn(new R9(D.a))),mt(t.f,f),t.d=-1;}l=Y1(e);}return  true;}return  false;}function Vj(t){var e,A,n,P,r,i,f;return i="",t.length==0?new uT(L4,s4):(f=B1(t),f.startsWith("at ")&&(f=(Gt(3,f.length+1),f.substr(3))),f=f.replace(/\[.*?\]/g,""),P=f.indexOf("("),P==-1?(P=f.indexOf("@"),P==-1?(i=f,f=""):(i=B1((Gt(P+1,f.length+1),f.substr(P+1))),f=B1((Ct(0,P,f.length),f.substr(0,P))))):(e=f.indexOf(")",P),i=(Ct(P+1,e,f.length),f.substr(P+1,e-(P+1))),f=B1((Ct(0,P,f.length),f.substr(0,P)))),P=f.indexOf(k0(46)),P!=-1&&(f=(Gt(P+1,f.length+1),f.substr(P+1))),(f.length==0||at(f,"Anonymous function"))&&(f=L4),r=i.lastIndexOf(k0(58)),A=mx(i,k0(58),r-1),n=s4,r!=-1&&A!=-1&&(n=(Ct(0,A,i.length),i.substr(0,A)),Tg((Ct(A+1,r,i.length),i.substr(A+1,r-(A+1)))),Tg((Gt(r+1,i.length+1),i.substr(r+1)))),new uT(f,n));}function Ej(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(l=false,n=0;n<t.L.g;n++)Q=null,Bu(t.L,n)?(L=S3(t.L,n),o=yT(t.L,n),Q=L==o?"["+L+"]":"["+L+":"+o+"]"):(Ae(t.L,n)&no)!=0?Q=(Ae(t.L,n)&no)==qA?"a":(Ae(t.L,n)&384)==256?"!ar":"!a":(Ae(t.L,n)&384)!=0&&(Q=(Ae(t.L,n)&384)==256?"r":"!r"),s=(Ae(t.L,n)&SP)>>17,s!=0&&(y=s==1?"8-11":s==2?">11":""+s,Q=(Q==null?"":Q.endsWith("r")?Q:Q+"r")+y),Q!=null&&(e=z(t.L,0,n),A=z(t.L,1,n),l||(t.Cb((t.X*2+1)/3|0),l=true),T=(X1(t.R,kt(t.L,e))+X1(t.R,kt(t.L,A)))/2,h=(K1(t.R,pt(t.L,e))+K1(t.R,pt(t.L,A)))/2,r=X1(t.R,kt(t.L,A))-X1(t.R,kt(t.L,e)),i=K1(t.R,pt(t.L,A))-K1(t.R,pt(t.L,e)),P=w.Math.sqrt(r*r+i*i),D=.6*t.vb(Q),f=.55*t.wb(),P!=0&&(r>0?HP(t,T+D*i/P,h-f*r/P,Q,true):HP(t,T-D*i/P,h+f*r/P,Q,true)));l&&t.Cb(t.X);}function Di(t){var e,A,n,P,r,i,f,D,Q,o,L;for(ut(t,1),oG(t),Q=false,A=0;A<t.f;A++)if(t.C[A]==7&&t.s[A]==0){if(L=N1(t,A),L==4){for(o=0;o<t.j[A];o++)if(f=t.i[A][o],t.n[A][o]==1&&t.C[f]==8&&t.j[f]==1&&t.s[f]==0){Q=true,++t.s[A],--t.s[f];break;}}else if(L==5)for(o=0;o<t.j[A];o++){if(f=t.i[A][o],D=t.k[A][o],t.n[A][o]==2&&t.C[f]==8){Q=true,++t.s[A],--t.s[f],t.H[D]=1;break;}if(t.n[A][o]==3&&t.C[f]==7){Q=true,++t.s[A],--t.s[f],t.H[D]=2;break;}}}for(i=false,r=0;r<t.g;r++)for(o=0;o<2;o++)if(tA(t,t.D[o][r])){e=t.D[1-o][r],P=t.C[e],(P==3||P==11||P==19||P==37||P==55||P==87||(n=t.C[e],n==4||n==12||n==20||n==38||n==56||n==88))&&(dt(t,r)==1?(++t.s[e],--t.s[t.D[o][r]],t.H[r]=512,i=true):t.H[r]==16&&(t.H[r]=512,i=true));break;}return i&&(vf(t),Q=true),Q&&(t.T=0),Q;}function X5(t,e){var A,n,P,r,i,f;if(t.L.q!=0){for(ut(t.L,(t.G&256)!=0?63:(t.G&512)!=0?95:31),t.B=e,nk(t),P=C$(t.L),r=false,t.p=c(F,k,6,t.L.q,15,1),A=0;A<t.L.q;A++)t.p[A]=Uu(t.L,A),t.p[A]!=0&&(r=true),P0(t.L,A)&&(t.p[A]=128),Vg(t.L,A)&&(t.G&q1)==0&&(t.p[A]=256);for(Z1(t,-10),IZ(t),FK(t),kW(t),eK(t),t.Cb(t.X),t.Ab(t.Y),Z1(t,t.Q),Dm(t),t.U.a.length=0,t.$.a.length=0,(t.G&1)!=0&&(np(t,P),HF(t),Ej(t)),i=0;i<t.L.q;i++)UQ(t,i)?(Z1(t,-3),YQ(t,i,P),Z1(t,t.Q)):t.p[i]!=0?(Z1(t,t.p[i]),YQ(t,i,P),Z1(t,t.Q)):!r&&t.L.O!=1&&K(t.L,i)!=1&&K(t.L,i)!=6&&(t.G&ie)==0&&HA(t.L,i)==null&&K(t.L,i)<nl.length&&nl[K(t.L,i)]!=0?(f=nl[K(t.L,i)],kO(t,(n=t.M!=0?t.M:t.D!=0?t.D:-1,Os(f,n))),YQ(t,i,P),Z1(t,t.Q)):YQ(t,i,P);(t.G&1)==0&&(HF(t),Ej(t),np(t,P));}}function Sj(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;for(h=c(F,k,6,n+1,15,1),g=c(F,k,6,r+1,15,1),m=r,D=_9(P[r-1]),D!=0?(Eh(g,P,0,D),Eh(h,A,0,D)):(sA(A,0,h,0,n),sA(P,0,g,0,r)),Q=g[m-1],L=e-1,s=n;L>=0;){if(o=0,h[s]==Q)o=-1;else if(v=x1(j1(V(h[s],h1),32),V(h[s-1],h1)),j=mZ(v,Q),o=Jt(j),R=Jt(q0(j,32)),o!=0){l=0,p=0,b=false,++o;do{if(--o,b)break;l=on(V(o,h1),V(g[m-2],h1)),p=x1(j1(R,32),V(h[s-2],h1)),T=x1(V(R,h1),V(Q,h1)),_9(Jt(DA(T,32)))<32?b=true:R=Jt(T);}while(E1(Nr(l,dV),Nr(p,dV)));}if(o!=0&&(i=vX(h,s-m,g,m,o),i!=0))for(--o,f=0,y=0;y<m;y++)f=x1(f,x1(V(h[s-m+y],h1),V(g[y],h1))),h[s-m+y]=Jt(f),f=DA(f,32);t[L]=o,--s,--L;}return D!=0?(_k(g,m,h,0,D),g):(sA(h,0,g,0,r),h);}function C$(t){var e,A,n,P,r,i,f;for(ut(t,15),i=c(F,k,6,3,15,1),A=0;A<t.f;A++)(t.u[A]&Tn)!=0&&(f=(t.u[A]&F1)>>18,f!=0&&(i[f]=w.Math.max(i[f],(t.u[A]&F1)>>18!=1&&(t.u[A]&F1)>>18!=2?-1:(t.u[A]&jA)>>20)));for(P=0;P<t.g;P++)((t.F[P]&3)==1||(t.F[P]&3)==2)&&t.H[P]==1&&(f=(t.F[P]&768)>>8,f!=0&&(i[f]=w.Math.max(i[f],(t.F[P]&768)>>8!=1&&(t.F[P]&768)>>8!=2?-1:(t.F[P]&ln)>>10)));for(r=c(F,f0,7,3,0,2),r[1]=c(F,k,6,1+i[1],15,1),r[2]=c(F,k,6,1+i[2],15,1),e=0;e<t.f;e++)(t.u[e]&Tn)!=0&&(f=(t.u[e]&F1)>>18,f!=0&&++r[f][(t.u[e]&F1)>>18!=1&&(t.u[e]&F1)>>18!=2?-1:(t.u[e]&jA)>>20]);for(n=0;n<t.g;n++)((t.F[n]&3)==1||(t.F[n]&3)==2)&&t.H[n]==1&&(f=(t.F[n]&768)>>8,f!=0&&++r[f][(t.F[n]&768)>>8!=1&&(t.F[n]&768)>>8!=2?-1:(t.F[n]&ln)>>10]);return r;}function H$(t,e){var A,n,P,r;for(t.b&&ki(t.b),t.c&&ki(t.c),P=0,n=Y1(e);n!=null&&n.startsWith(io);){for(n=B1((Gt(7,n.length+1),n.substr(7)));n.endsWith("-");){if(A=Y1(e),!A.startsWith(io))return  false;n=B1(ju(oA(n,0,n.length-1),(Gt(7,A.length+1),A.substr(7))));}if(n.startsWith("BEGIN")){if(r=B1((Gt(6,n.length+1),n.substr(6))),r.startsWith("CTAB"))P=1;else if(r.startsWith("ATOM"))P=2;else if(r.startsWith("BOND"))P=3;else if(r.startsWith("SGROUP"))P=4;else if(r.startsWith("COLLECTION"))P=5;else return  false;}else if(n.startsWith("END"))P=0;else if(P==1)Wz(t,n);else if(P==2)Wa(t,n);else if(P==3)_$(t,n);else if(P==4)Pa(t,n);else if(P==5)M$(t,n);else return  false;n=Y1(e);}for(;n!=null&&!(n.startsWith(D9)||at(n,ro));)n=Y1(e);return  true;}function M$(t,e){var A,n,P,r,i,f;if(f=kG(e),f!=null){if(i=KX(e,f),e.startsWith("MDLV30/STEABS")){if(at(f,k2))for(r=0;r<i.length;r++)Ve(t.j,ID(t,i[r]),0,-1);else for(P=0;P<i.length;P++)Q8(t.j,sL(t,i[P]),0,-1);}else if(e.startsWith("MDLV30/STERAC")){if(n=Q1(oA(e,13,Pe(e,13)),P1,Et),at(f,k2))for(r=0;r<i.length;r++)Ve(t.j,ID(t,i[r]),1,n-1);else for(P=0;P<i.length;P++)Q8(t.j,sL(t,i[P]),1,n-1);}else if(e.startsWith("MDLV30/STEREL")){if(n=Q1(oA(e,13,Pe(e,13)),P1,Et),at(f,k2))for(r=0;r<i.length;r++)Ve(t.j,ID(t,i[r]),2,n-1);else for(P=0;P<i.length;P++)Q8(t.j,sL(t,i[P]),2,n-1);}else if(e.startsWith("MDLV30/HILITE"))if(at(f,k2))for(P=0;P<i.length;P++)vD(t.j,ID(t,i[P]),448);else for(P=0;P<i.length;P++)A=sL(t,i[P]),vD(t.j,z(t.j,0,A),448),vD(t.j,z(t.j,1,A),448);}}function V$(t){var e,A,n,P,r,i,f,D,Q;if(!t.i)return  false;un(t.g,0),un(t.b,0),t.f=null,Q=false,A=-1,n=null,t.c=t.d==null?null:c(it,Dt,2,t.d.length,6,1),t.e=-1;do{try{if(D=Y1(t.i),D==null)return un(t.g,0),!1;}catch(o){if(o=a1(o),Xt(o,75))return un(t.g,0),false;throw At(o);}if(Q)J(t.b,D),Ge(t.b,10);else if(D.startsWith(">"))Q=true,J(t.g,D9),Ge(t.g,10),J(t.b,D),Ge(t.b,10);else {J(t.g,D),Ge(t.g,10),D.startsWith(D9)&&(Q=true);continue;}if(t.d!=null)if(D.length==0)A=-1;else if(A==-1){if(n=$R(D),n!=null){for(A=-1,e=0;e<t.d.length;e++)if(at(n,t.d[e])){A=e;break;}if(t.e==-1){for(r=OV,i=0,f=r.length;i<f;++i)if(P=r[i],at(n,P)){t.e=A;break;}}}}else t.c[A]==null?t.c[A]=D:t.c[A]=ju(ju(t.c[A],$A),D);}while(!D.startsWith(ro));return  true;}function E$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(A=0;A<t.q;A++)y=pn(t,A),y+WA(t,A,y,t.C[A])-N1(t,A)<=0&&!(t.s[A]==0&&(t.C[A]==5||(P=t.C[A],P==7||P==15||P==33)||(n=t.C[A],n==8||n==16||n==34||n==52||n==84)))&&(t.B[A]=V(t.B[A],-6145));if(t.S)return  false;for(i=false,e=0;e<t.f;e++)if(f=t.e[e]-t.j[e],f>0)for(n0(V(t.B[e],q1),0)&&(o=n0(V(t.B[e],nP),896)?3:n0(V(t.B[e],nP),384)?2:n0(V(t.B[e],128),128)?1:0,D=(y=pn(t,e),y+WA(t,e,y,t.C[e])-N1(t,e)),t.s[e]==0&&n0(V(t.B[e],i9),0)&&t.C[e]!=6&&++D,L=f,L>3-o&&(L=3-o),L>D+f-o&&(L=D+f-o),L>0&&(s=o==0?0:j1(V(t.B[e],nP),L),s=Y(s,(L==3?7:f==2?3:1)<<7),t.B[e]=V(t.B[e],-1921),t.B[e]=Y(t.B[e],V(nP,s)))),Q=t.j[e];Q<t.e[e];Q++)r=t.k[e][Q],t.H[r]==1&&(t.C[t.i[e][Q]]=-1,t.H[r]=512,i=true);return i&&vf(t),i;}function qj(t,e){var A,n,P,r,i,f,D,Q,o,L;if((e&~t.T)!=0&&((t.T&1)==0&&(HR(t),tp(t),t.T|=1,t.K&&!NT(t)&&E$(t)&&(HR(t),tp(t),t.T|=1)),(e&~t.T)!=0)){if((t.T&-7)!=0){for(n=0;n<t.f;n++)t.u[n]&=-15369;for(r=0;r<t.g;r++)t.F[r]&=-705;if((e&4)==0){kR(t,1),t.T|=2;return;}for(kR(t,7),P=0;P<t.f;P++)for(o=0;o<t.j[P];o++)if(D=t.k[P][o],!(D<t.g&&je(t.p,D)))for(f=t.i[P][o],L=0;L<t.j[f];L++)t.k[f][L]!=D&&t.n[f][L]>1&&(t.C[t.i[f][L]]==6?t.u[P]|=C0:!_e(t,t.k[f][L])&&tA(t,t.i[f][L])&&(t.u[P]|=de));for(;;){for(Q=false,A=0;A<t.f;A++)if(t.o[A]>0&&(t.u[A]&de)!=0&&!r0(t.p,A)){for(o=0;o<t.j[A];o++)if(t.n[A][o]>1)for(f=t.i[A][o],D=t.k[A][o],L=0;L<t.j[f];L++)t.k[f][L]!=D&&(i=t.i[f][L],(t.u[i]&de)==0&&(t.u[i]|=de,Q=true));}if(!Q)break;}}t.T|=6;}}function Ij(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;for(ut(t,7),Q=0,P=0;P<t.g;P++)dt(t,P)==1&&!(P<t.g&&je(t.p,P))&&t0(t,t.D[0][P])>1&&t0(t,t.D[1][P])>1&&(t.F[P]&64)==0&&!((t.F[P]&128)!=0&&(t.p&&P<t.g?sP(t.p,P):0)<=5)&&(e[P]=true,++Q);for(i=c(F,k,6,2,15,1),y=c(F,k,6,2,15,1),r=null,n=0;n<t.g;n++)if(e[n]&&(r==null||!r[n])){for(A=0,L=0;L<2;L++)for(i[L]=t.D[L][n],y[L]=t.D[1-L][n],T=y[L];t.o[i[L]]==2&&t0(t,i[L])==2&&t.C[i[L]]<10;){for(s=0;s<2;s++)if(f=t.i[i[L]][s],f!=y[L]){D=t.k[i[L]][s],e[D]&&dt(t,D)==1&&(e[D]=false,--Q),y[L]=i[L],i[L]=f,++A;break;}if(i[L]==T){A=0;break;}}A!=0&&(e[n]=false,--Q,t0(t,i[0])>1&&t0(t,i[1])>1&&(h=o5(t,y[0],i[0]),g=o5(t,y[1],i[1]),o=h<g?0:1,l=u1(t,y[o],i[o]),r==null&&(r=c(Pt,ft,6,t.g,16,1)),r[l]=true,e[l]=true,++Q));}return Q;}function zQ(t,e,A){var n,P,r,i,f,D,Q,o;if(t.o[e]!=0)return  false;if(t.R.K){for(Q=0;Q<2;Q++)for(n=z(t.R,Q,e),o=0;o<Ht(t.R,n);o++)if(oe(t.R,W(t.R,n,o)))return  false;}return dt(t.R,e)==1?GW(t,e,A):dt(t.R,e)!=2||_e(t.R,e)||(r=z(t.R,0,e),i=z(t.R,1,e),O(t.R,r)==1||O(t.R,i)==1)||O(t.R,r)>3||O(t.R,i)>3||$1(t.R,r)==2||$1(t.R,i)==2||(f=new cf(t.R,t.f,i,r),f.f&&A==1)||(D=new cf(t.R,t.f,r,i),D.f&&A==1)||f.f&&D.f?false:(A==3&&(f.f&&f.c&&(t.V[e]=true),D.f&&D.c&&(t.V[e]=true)),P=M3(t.R,e)?3:t.jb?ta(t,f,D):IG(f,D),A==1?t.o[e]=P:A==2&&(f.f&&(P==1?Qe(t.e[f.b],t.f[r]):P==2&&Qe(t.e[f.d],t.f[r])),D.f&&(P==1?Qe(t.e[D.b],t.f[i]):P==2&&Qe(t.e[D.d],t.f[i]))),true);}function S$(t){var e,A,n,P,r,i,f,D,Q,o,L;for(A=0,L=new Zt(t.g);L.a<L.c.a.length;)if(Q=$t(L),ut(Q,1),Q.K){for(e=0;e<Q.f;e++)if(gt(V(Q.B[e],re),0)){if(w.Math.abs(Q.w[e])!=0)return  false;}else ++A;}else A+=Q.f;for(D=new Zt(t.f);D.a<D.c.a.length;)if(i=$t(D),ut(i,1),i.K){for(e=0;e<i.f;e++)if(gt(V(i.B[e],re),0)){if(w.Math.abs(i.w[e])!=0)return  false;}else --A;}else A-=i.f;if(A!=0)return  false;for(r=ms(t),n=c(Pt,ft,6,r+1,16,1),o=new Zt(t.g);o.a<o.c.a.length;)for(Q=$t(o),e=0;e<Q.f;e++)if(!Q.K||n0(V(Q.B[e],re),0)){if(P=w.Math.abs(Q.w[e]),n[P])return  false;n[P]=true;}for(f=new Zt(t.f);f.a<f.c.a.length;)for(i=$t(f),ut(i,1),e=0;e<i.f;e++)if(!i.K||n0(V(i.B[e],re),0)){if(P=w.Math.abs(i.w[e]),P>=r||!n[P])return  false;n[P]=false;}return  true;}function q$(t,e,A,n){var P,r,i,f,D,Q,o,L;for(f=t.e[n],D=f+1;D<t.A&&t.f[t.s[D]]==n;)++D;for(o=f;o<D;o++)A[o]=-1;for(i=f;;){if(L=t.u[i]==-1?t.H.f:ue(t.H,t.G[t.u[i]]),++A[i],A[i]==L){if(A[i]=-1,i==f)break;--i,t.t[i]||(e[t.G[t.s[i]]]=false,t.G[t.s[i]]=-1);continue;}if(t.u[i]==-1)e[A[i]]||ny(t,A[i],t.s[i])&&(t.G[t.s[i]]=A[i],e[A[i]]=true,++i);else {if(W(t.H,t.G[t.u[i]],A[i])>=t.H.f)continue;r=W(t.H,t.G[t.u[i]],A[i]),t.t[i]?r==t.G[t.s[i]]&&zs(t,xt(t.H,t.G[t.u[i]],A[i]),t.v[i])&&++i:e[r]||ny(t,r,t.s[i])&&zs(t,xt(t.H,t.G[t.u[i]],A[i]),t.v[i])&&(e[r]=true,t.G[t.s[i]]=r,++i);}if(i==D){if(zj(t,n)&&jR(t,n)&&lR(t,e,n)){for(Q=f;Q<D;Q++)t.t[Q]||(P=t.s[Q],e[t.G[P]]=false,t.G[P]=-1);return  true;}--i,t.t[i]||(e[t.G[t.s[i]]]=false,t.G[t.s[i]]=-1);}}return  false;}function I$(t){var e,A,n,P,r,i,f;if(i=Ni(t.o),A=null,i.length!=0&&(n=i.indexOf(k0(64)),n!=-1&&(A=(Ct(0,n,i.length),i.substr(0,n)),i=(Gt(n+1,i.length+1),i.substr(n+1)))),i.length!=0&&(e=SA(i,t.d.c),e!=0||at(i,"?"))){if(P=0,Ni(t.p).length!=0)try{if(P=Q1(Ni(t.p),P1,Et),P<(J1(),o9)[e]-18||P>o9[e]+12){RD(t.c,"Your mass is out of range!");return;}}catch(D){if(D=a1(D),Xt(D,40)){RD(t.c,"Your mass is not a number!");return;}else throw At(D);}if(f=-1,Ni(t.q).length!=0)try{if(f=Q1(Ni(t.q),P1,Et),f<0||f>15){RD(t.c,"Your valence is out of range!");return;}}catch(D){if(D=a1(D),Xt(D,40)){RD(t.c,"Your valence is not a number!");return;}else throw At(D);}r=B0(t.b)==1?32:B0(t.b)==2?48:B0(t.b)==3?16:0,Sx(t.d,e,P,f,r,A),t.a!=-1&&(gf(t.e,t.a,e,P,f,r),VP(t.e,t.a,A)),t.f=true,Rr(t.c);}}function x$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;if(A&&t.eb==6)for(h=c(F,k,6,t.L.length,15,1),r=0;r<t.V.q;r++)s=t.M[r],Gn(t.L[s],h[s],!P0(t.V,r)),++h[s];for(f=c(cl,e0,35,t.L.length,0,1),y=0;y<t.L.length;y++)t.eb==6&&(er(new Y8(A?4:0),t.L[y]),of(t.L[y])),D=new du(t.L[y]),EF(D,e,null,u0|t.T),f[y]=D.v;for(m=1.8000000715255737*t.T,i=Pn(t.V,24*t.ab),n=(t.U&4)==0?0:t.eb==5?WM*CD(t.k):Ph(N(t.I,0))*t.T/i,g=.5*m,l=0;l<=t.L.length&&((t.U&4)!=0&&l==t.Y&&(vT(N(t.I,0),g-m/2,Vr(t.k)/2,g-m/2+n,Vr(t.k)/2),g+=n),l!=t.L.length);l++)Q=g-f[l].c,o=.5*(Vr(t.k)-f[l].a)-f[l].d,CL(t.L[l],Q,o),g+=m+f[l].b;for(b5(t.G,e,new QA(0,0,CD(t.k),Vr(t.k)),u0|t.T),T=c(F,k,6,t.L.length,15,1),P=0;P<t.V.q;P++)L=t.M[P],ve(t.V,P,kt(t.L[L],T[L])),xe(t.V,P,pt(t.L[L],T[L])),++T[L];of(t.V);}function N$(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(f=new f1(),ut(e,1),Q=c(Pt,ft,6,e.f,16,1),A=0;A<e.f;A++)if(t.f[A]&&(K(t.i,A)==7||K(t.i,A)==8||K(t.i,A)==16||K(t.i,A)==34||K(t.i,A)==52)){for(Q[A]=true,D=0;D<e.j[A];D++)if(n=e.i[A][D],r=e.k[A][D],L=e.n[A][D],e.o[n]!=0&&e.o[A]<L){for(Q[n]=true,mt(f,m1(r)),o=0;o<e.j[n];o++)P=e.i[n][o],Q[P]||(Q[P]=true,i=e.k[n][o],s=e.n[n][o],e.o[n]+2==L+s&&(mt(f,m1(i)),L>=s&&(e.o[P]<s?QQ(e,P)&&_s(t,e,P,true,false,Q,f):_s(t,e,P,true,true,Q,f)),s>=L&&QQ(e,A)&&_s(t,e,P,false,false,Q,f),t.f[P]&&(K(t.i,P)==5||K(t.i,P)==6||K(t.i,P)==7||K(t.i,P)==8||K(t.i,P)==16||K(t.i,P)==34||K(t.i,P)==52)&&e.o[P]<s&&(L<=2&&s>=2&&QQ(e,A)&&_m(t,e,r,i),L>=2&&s<=2&&QQ(e,P)&&_m(t,e,i,r)),LA(f,f.a.length-1)),Q[P]=false);LA(f,f.a.length-1),Q[n]=false;}Q[A]=false;}}function O$(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt;for(v=-1,p=0,j=0,I=0,h=0,g=0,m=0,x=0,tt=0,p=0,o=0;o<t.d;o++)p+=n[o]*n[o];if(p=w.Math.sqrt(p),p>r)for(L=0;L<t.d;L++)n[L]*=r/p;for(j=0,s=0;s<t.d;s++)j+=n[s]*t.e[s];if(j>=0)return v;for(I=0,y=0;y<t.d;y++)S=w.Math.abs(n[y])/w.Math.max(w.Math.abs(e[y]),1),S>I&&(I=S);for(m=1e-7/I,h=1,T=0;T<1e3;){if(h<m){v=1;break;}for(l=0;l<t.d;l++)P[l]=e[l]+h*n[l];if(t.k=is(t,P),t.k-A<=so*h*j)return 0;T==0?x=-j/(2*(t.k-A-j)):(b=t.k-A-h*j,R=tt-A-g*j,i=(b/(h*h)-R/(g*g))/(h-g),f=(-g*b/(h*h)+h*R/(g*g))/(h-g),i==0?x=-j/(2*f):(D=f*f-3*i*j,D<0?x=.5*h:f<=0?x=(-f+w.Math.sqrt(D))/(3*i):x=-j/(f+w.Math.sqrt(D))),x>.5*h&&(x=.5*h)),g=h,tt=t.k,h=w.Math.max(x,.1*h),++T;}for(Q=0;Q<t.d;Q++)P[Q]=e[Q];return v;}function G$(t){var e,A,n,P,r,i,f,D,Q,o,L;for(t._=c(E,q,6,t.R.f,15,1),e=0;e<t.R.f;e++)if(t.db[e]==1||t.db[e]==2){if(D=t.eb[e],YT(t.R,e))for(f=0;f<O(t.R,e);f++){for(P=W(t.R,e,f),L=0,o=c(F,k,6,3,15,1),Q=0;Q<O(t.R,P);Q++)o[L]=W(t.R,P,Q),o[L]!=e&&++L;L==2&&t.f[o[0]]>t.f[o[1]]^t.H[o[0]]<t.H[o[1]]&&(D=!D);}else for(f=1;f<O(t.R,e);f++)for(Q=0;Q<f;Q++)r=W(t.R,e,f),i=W(t.R,e,Q),t.f[r]>t.f[i]&&(D=!D),t.H[r]<t.H[i]&&(D=!D);t._[e]=t.db[e]==1^D?1:2;}else t._[e]=t.db[e];for(t.j=c(E,q,6,t.R.g,15,1),A=0;A<t.R.g;A++)if(t.o[A]==1||t.o[A]==2){for(D=false,f=0;f<2;f++)if(n=z(t.R,f,A),O(t.R,n)==3){for(o=c(F,k,6,2,15,1),L=0,Q=0;Q<3;Q++)W(t.R,n,Q)!=z(t.R,1-f,A)&&(o[L++]=W(t.R,n,Q));t.f[o[0]]>t.f[o[1]]&&(D=!D),t.H[o[0]]<t.H[o[1]]&&(D=!D);}t.j[A]=t.o[A]==1^D?1:2;}else t.j[A]=t.o[A];}function J$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b;for(e=uW(t),r=c(E,q,6,t.f.r,15,1),zW(t,r,e),P=0;P<t.f.r;P++)r[P]==2&&(Ei(t.f,z(t.f,0,P))||Ei(t.f,z(t.f,1,P)))&&(r[P]=3);for(y=0;y<t.d.a.length;y++){for(L=N(t.d,y),D=Jb(L),g=L.c,h=new S5(L),T=-1,s=0;s<224&&D.a.length!=0;s++){if(Q=lQ(t.g,D.a.length),f=(Fe(Q,D.a.length),D.a[Q]),i=OW(t,f[0],f[1]),A=c(F,k,6,i.length,15,1),n=0,s<32)for(l=1;l<i.length-1;l++)r[i[l]]==3&&(A[n++]=i[l]);else if(s<96)for(l=1;l<i.length-1;l++)r[i[l]]>=2&&(A[n++]=i[l]);else for(l=1;l<i.length-1;l++)r[i[l]]>=1&&(A[n++]=i[l]);if(n!=0){if(v=A[0],n>1)do v=A[lQ(t.g,n)];while(v==T);v!=T&&(T=v,Xj(L,v),D=Jb(L),g>L.c&&(g=L.c,h=new S5(L)));}}q9(t.d,y,h),L=h,o=1;do{for(m=9999,l=0;l<L.e.length;l++)b=e[L.e[l]],b==o?sa(L,l):b>o&&b<m&&(m=b);o=m;}while(m!=9999);}}function xj(t,e,A,n,P){var r,i;if(P.d=true,P.c=true,e[A]==35){for(++A,t.r=true,P.a=0,P.b=1;A<n&&Kn(e[A]&c1);)P.a=10*P.a+e[A]-48,++P.b,++A;if(P.a==0||P.a>=(J1(),Z0).length)throw At(new C1("SmilesParser: Atomic number out of range. position:"+(A-1)));return  true;}if(e[A]>=65&&e[A]<=90){if(P.b=e[A+1]>=97&&e[A+1]<=122?2:1,P.a=(J1(),SA(S8(l2(e,A,(i=P.b,c0(),i))),321)),P.b==2&&P.a==0&&(P.b=1,P.a=SA(S8(l2(e,A,(r=P.b,r))),321)),P.d=false,P.a==0)throw At(new C1("SmilesParser: Unknown atom label. position:"+(A-1)));return  true;}return e[A]==97&&e[A+1]==115||e[A]==115&&e[A+1]==101?(P.b=2,P.a=(J1(),SA(S8(l2(e,A,(r=P.b,c0(),r))),321)),P.c=false,true):e[A]==99||e[A]==110||e[A]==111||e[A]==112||e[A]==115?(P.b=1,P.a=(J1(),SA(S8(l2(e,A,(r=P.b,c0(),r))),321)),P.c=false,true):false;}function z$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(A=-1,Q=false,y=Ee,e=_8(t.i,t.c),T=0;T<t.d.length;T++)t.d[T]<t.v[T].d.length-1&&(s=F3(e,T,t.d[T])/F3(e,T,t.d[T]+1),y>s&&(y=s,A=T));for(h=0;h<t.c.length;h++)t.c[h]<t.u[h].b.length-1&&(s=u3(t.u[h],t.c[h])/u3(t.u[h],t.c[h]+1),y>s&&(y=s,A=h,Q=true));if(A==-1){t.a=null;return;}for(r=1,f=0;f<t.d.length;f++)(Q||f!=A)&&(r*=t.d[f]+1);for(D=0;D<t.c.length;D++)(!Q||D!=A)&&(r*=t.c[D]+1);for(t.a=c(OE,F2,165,r,0,1),Q?++t.c[A]:++t.d[A],i=0;i<r;i++){for(l=i,m=c(F,k,6,t.d.length,15,1),L=0;L<t.d.length;L++)(Q||L!=A)&&(g=t.d[L]+1,g!=1&&(m[L]=l%g,l=l/g|0));for(P=c(F,k,6,t.c.length,15,1),o=0;o<t.c.length;o++)(!Q||o!=A)&&(n=t.c[o]+1,n!=1&&(P[o]=l%n,l=l/n|0));Q?P[A]=t.c[A]:m[A]=t.d[A],t.a[i]=Ou(t,m,P);}cu(t.a,new mw()),t.b=-1;}function Nj(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;if(!((t.F[e]&3)==0||(t.F[e]&3)==3||!ri(t,e))){for(R=-1,v=-1,b=-1,m=-1,P=0,L=0;L<2;L++)for(n=t.D[L][e],l=0;l<t.e[n];l++)f=t.k[n][l],f!=e&&dt(t,f)==1&&(i=t.i[n][l],j=HQ(t,f,i),P<j&&(P=j,v=i,R=f,b=n,m=t.D[1-L][e]));if(v!=-1){for(s=0;s<2;s++)for(l=0;l<t.e[t.D[s][e]];l++)f=t.k[t.D[s][e]][l],f!=e&&dt(t,f)==1&&(t.H[f]=1);for(t.D[1][R]!=v&&(t.D[0][R]=t.D[1][R],t.D[1][R]=v),D=Et,y=0;y<t.j[b];y++)i=t.i[b][y],t.k[b][y]!=e&&D>i&&(D=i);for(h=c(F,k,6,2,15,1),g=0,o=0;o<t.j[m];o++)t.k[m][o]!=e&&(h[g++]=t.i[m][o]);r=bA(t.J[b].a,t.J[b].b,t.J[m].a,t.J[m].b),A=0,g==2?(h[0]>h[1]&&(p=h[0],h[0]=h[1],h[1]=p),Q=ze(r,K0(t,m,h[0])),T=ze(r,K0(t,m,h[1])),A=Q-T):A=ze(r,K0(t,m,h[0])),A<0^(t.F[e]&3)==2^D==v?t.H[R]=257:t.H[R]=129;}}}function Y$(t){var e,A,n;if(null.vd()||null.vd())R5(t,true);else if(null.vd())t.r&&cv();else if(null.vd())YI(t,null.vd());else if(null.vd())yv(t);else if(!null.vd())if(null.vd())cQ(t),gL(t,w.Math.max(t.eb,1));else if(null.vd())qh(t,true,true);else if(null.vd())qh(t,false,true);else if(null.vd())qh(t,true,false);else if(null.vd())xz(t);else if(null.vd())Co=!Co,Co&&cQ(t);else if(null.vd())d5(t,true);else if(null.vd())d5(t,false);else if(null.vd())OK(t);else if(null.vd())cT(t._,LV,sV);else if(null.vd()){if(null.vd(),e=Q1(null.vd(),P1,Et),A=Q1(null.vd(),P1,Et),P0(t.V,e))for(n=0;n<t.V.f;n++)P0(t.V,n)&&vD(t.V,n,A);else vD(t.V,e,A);}else null.vd()?(t.H=6,t.eb=w.Math.max(t.eb,1),e1(t.k)):null.vd()?(t.H=256,t.eb=w.Math.max(t.eb,1),e1(t.k)):null.vd()&&zx(t,t.w==19?16:0);}function K$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T;if(P=new fD(),mt(P.a,new Ze("cLogP Values are estimated applying an atom-type based increment system.",2)),mt(P.a,new Ze($M,2)),mt(P.a,new Ze(t4,2)),t){for(Di(t),ut(t,7),f=0,n=new yP(),D=new Pu("#0.000"),e=0;e<t.f;e++)try{A=Ay(t,e,6241),T=Te(n,LQ(A)),T?Ye(n,LQ(A),m1(T.a+1)):Ye(n,LQ(A),m1(1));}catch(h){if(h=a1(h),Xt(h,19))++f;else throw At(h);}for(f!=0&&mt(P.a,new Ze("Warning: "+f+" atom type(s) could not be determined.",2)),l=(i=new x8(new q8(new w9(n).a).b),new g9(i));C9(l.a.a);)y=(r=dr(l.a),r.dd()),o=$9(Jf,y),(o<0?-1:o)!=-1?ZP(P,(s=y,XP(G9(n,s))+" * "+ig(D,z4[Q=$9(Jf,y),Q<0?-1:Q])+" AtomType: 0x"+Ih(y.a)),2):ZP(P,"Warning: For atom type 0x"+Ih(y.a)+" ("+(L=y,XP(G9(n,L)))+" times found) is no increment available.",2);}return P;}function Oj(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(T=e.f,t.j=c(NA,te,6,e.f,14,1),t.k=c(F,k,6,e.f,15,1),f=0;f<T;f++)t.j[f]=Nr(V(Y(up(e,f),e.B[f]),j6),Vp),t.k[f]=e.C[f],(A&1)!=0&&(t.k[f]+=e.s[f]+16<<8),(A&2)!=0&&(t.k[f]+=e.A[f]<<16);for(t.B=c(NA,te,6,e.f,14,1),g=(ut(e,7),e.p),l=0;l<g.j.a.length;l++){for(y=false,Q=N(g.k,l),o=0,L=Q.length;o<L;++o)if(s=Q[o],(e.G[s]&s8)!=0){y=true;break;}if(!y)for(m=N(g.k,l).length,P=N(g.j,l),r=0,i=P.length;r<i;++r)n=P[r],m==3?t.B[n]=Y(t.B[n],rr):m==4?t.B[n]=Y(t.B[n],ir):m==5?t.B[n]=Y(t.B[n],fr):m==6?t.B[n]=Y(t.B[n],Dr):m==7&&(t.B[n]=Y(t.B[n],ur));}for(h=e.g,t.n=c(F,k,6,e.g,15,1),D=0;D<h;D++)t.n[D]=(Nb(e,D)|e.G[D])&6291967^6291840,(A&4)!=0?(t.n[D]&2)!=0&&(t.n[D]|=8):(A&8)!=0&&(t.n[D]&2)!=0&&D<e.g&&je(e.p,D)&&(t.n[D]|=8);}function X$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(f=-1,P=bs(t,e),i=P==-1?YL(t,e):-1,A!=0){for(y=-1,o=0;o<t.V.f;o++)o!=P&&ne(t.V,o)==A&&(!FP(t.V,e)||!P0(t.V,o))&&(D=VA(t.V,o),y<D&&(y=D));for(L=0;L<t.V.g;L++)L!=i&&hP(t.V,L)==A&&(!FP(t.V,e)||!FP(t.V,L))&&(D=Wi(t.V,L),y<D&&(y=D));if((P==-1?hP(t.V,i):ne(t.V,P))!=A)f=w.Math.min(y+1,31);else if(f=P==-1?Wi(t.V,i):VA(t.V,P),FP(t.V,e)){for(l=true,s=0;s<t.V.f;s++)if(s!=P&&P0(t.V,s)&&ne(t.V,s)==A&&VA(t.V,s)!=f){l=false;break;}for(Q=0;Q<t.V.g;Q++)if(Q!=i&&FP(t.V,Q)&&hP(t.V,Q)==A&&Wi(t.V,Q)!=f){l=false;break;}l&&(f<=y?(++f,f==32&&(f=0)):f=0);}else f<=y?(++f,f==32&&(f=0)):f=0;}if(FP(t.V,e))for(Q=0;Q<t.V.g;Q++)FP(t.V,Q)&&jr(t.V,Q)&&(n=bs(t,Q),r=YL(t,Q),n!=-1?Ve(t.V,n,A,f):r!=-1&&Q8(t.V,r,A,f));else P!=-1?Ve(t.V,P,A,f):i!=-1&&Q8(t.V,i,A,f);}function Z$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;for(P=c(cl,e0,35,t.k.length,0,1),R=0,b=0,y=0;y<t.k.length;y++)o2(t.e[y],e,null,u0),P[y]=t.e[y].v,R+=P[y].b,b=w.Math.max(b,P[y].a);for(f=c(cl,e0,35,t.a.length,0,1),v=0,m=0,l=0;l<t.a.length;l++)o2(t.b[l],e,null,65552),f[l]=t.b[l].v,v=w.Math.max(v,f[l].b),m+=f[l].a+12;if(n=w.Math.max(48,v+24),b=w.Math.max(b,24+2*m),A=-1,!t.g)t.g=new eU(),mt(t.g,new JD()),A=0;else {for(T=0;T<t.g.a.length;T++)if(Xt(N(t.g,T),62)){A=T;break;}A==-1&&(A=t.g.a.length,mt(t.g,new JD()));}for(g=18,s=0;s<t.k.length;s++){if(s==t.n){for(vT(N(t.g,A),g-18,b/2,g-18+n,b/2),r=g+-6,i=.5*(b-12)-m,h=0;h<t.a.length;h++)Q=r+.5*(v-f[h].b)-f[h].c,L=i-f[h].d,EU(t.b[h],new O3(Q,L)),i+=12+f[h].a;g+=n;}D=g-P[s].c,o=.5*(b-P[s].a)-P[s].d,EU(t.e[s],new O3(D,o)),g+=36+P[s].b;}t.o=false;}function W$(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(ut(t.g,t.N),D=w.Math.max(t.g.f,t.g.g)+16,t.s=c(F,k,6,D,15,1),t.u=c(F,k,6,D,15,1),t.v=c(F,k,6,D,15,1),t.t=c(Pt,ft,6,D+1,16,1),i=c(Pt,ft,6,t.g.f,16,1),f=c(Pt,ft,6,t.g.g,16,1),n=0,A=0;A<t.g.f;A++)if(!t.D[A]&&!i[A])for(t.s[n]=A,t.v[n]=-1,t.u[n]=-1,Q=n;n<=Q;){for(o=0;o<ue(t.g,t.s[n]);o++)Q=t5(t,n,Q,o,i,f,-1);for(;t.t[++n];);}if(t.w=n,t.p!=0){for(Q=t.w-1,r=0;r<t.d;r++)for(n=0;n<=Q;){for(L=0;L<ue(t.g,t.s[n]);L++)Q=t5(t,n,Q,L,i,f,r);for(;t.t[++n];);}for(e=0;e<t.g.f;e++)if(t.D[e]&&!i[e])for(t.s[n]=e,t.v[n]=-1,t.u[n]=-1,Q=n;n<=Q;){for(L=0;L<ue(t.g,t.s[n]);L++)W(t.g,t.s[n],L)<t.g.f&&(Q=t5(t,n,Q,L,i,f,t.f[e]));for(;t.t[++n];);}for(t.e=c(F,k,6,t.d,15,1),s=0;s<t.d;s++)t.e[s]=-1;for(o=t.w;o<n;o++)P=t.f[t.s[o]],t.e[P]==-1&&(t.e[P]=o);}t.A=n;}function _$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v;for(l=0,T=(D=Pe(e,l),D==-1?e.length:D),r=Q1((Ct(l,T,e.length),e.substr(l,T-l)),P1,Et),l=lA(e,T),T=(Q=Pe(e,l),Q==-1?e.length:Q),i=Q1((Ct(l,T,e.length),e.substr(l,T-l)),P1,Et),l=lA(e,T),T=(o=Pe(e,l),o==-1?e.length:o),A=ID(t,Q1((Ct(l,T,e.length),e.substr(l,T-l)),P1,Et)),l=lA(e,T),T=(L=Pe(e,l),L==-1?e.length:L),n=ID(t,Q1((Ct(l,T,e.length),e.substr(l,T-l)),P1,Et)),g=0,m=0;(l=lA(e,T))!=-1;)if(T=(f=Pe(e,l),f==-1?e.length:f),h=(Ct(l,T,e.length),e.substr(l,T-l)),y=h.indexOf(k0(61)),s=(Ct(0,y,h.length),h.substr(0,y)),v=Q1((Gt(y+1,h.length+1),h.substr(y+1)),P1,Et),at(s,"CFG"))switch(v){case 1:g=1;break;case 2:g=i==2?3:4;break;case 3:g=6;}else at(s,"TOPO")&&(m=v);P=OR(t,A,n,i,g,m),P+1!=r&&(!t.c&&(t.c=new yP()),Ye(t.c,m1(r),m1(P)));}function $$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(Q=B1(Y1(e)),Q.length==0||(t.e=Q),Y1(e),n=Y1(e),n.startsWith(Sy)&&(P=(Gt(13,n.length+1),n.substr(13)),GQ(P,true,t)))return  true;for(l=Y1(e),y=Q1(B1((Ct(0,3,l.length),l.substr(0,3))),P1,Et),L=Q1(B1((Ct(3,6,l.length),l.substr(3,3))),P1,Et),f=new tu(),i=0;i<y;i++){if(l=Y1(e),l==null||!l.startsWith("$MOL"))throw At(new C1(PH));s=new JA(),D=new fu();do l=Y1(e),D.a+=""+l,D.a+=$A;while(l!=null&&!l.startsWith(D9));if(l==null)throw At(new C1(rH));mU(f,s,new nn(new R9(D.a))),mt(t.g,s),t.d=-1;}for(r=0;r<L;r++){if(l=Y1(e),l==null||!l.startsWith("$MOL"))throw At(new C1(PH));o=new JA(),D=new fu();do l=Y1(e),D.a+=""+l,D.a+=$A;while(l!=null&&!l.startsWith(D9));if(l==null)throw At(new C1(rH));mU(f,o,new nn(new R9(D.a))),mt(t.f,o),t.d=-1;}return  true;}function a$(t,e){i8();var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x;for(Gm(),l=c(Pt,ft,6,e.r,16,1),Ij(e,l),i=0;i<e.g;i++)if(l[i]&&(S=c(F,k,6,4,15,1),I=new vh(),x=CF(e,i,S,I),x!=null&&!JX(S,t)&&(p=(R=i2(DP,x),R?bj(R):null),Q=(j=i2(DP,x),j?rj(j):null),g=(b=i2(DP,x),b?Zj(b):null),p==null&&(h=new P6(e,S),p=h.b,Q=h.a,g=h.c),p!=null))){if(n=null,v=0,(e.F[i]&64)==0){for(y=k1(Pt,[h0,ft],[12,6],16,[2,e.q],2),D=c(F,k,6,2,15,1),L=0;L<2;L++)D[L]=qQ(e,I.e[L],I.b[L],y[L],null,null);for(v=D[0]<D[1]?0:1,n=c(F,k,6,D[v],15,1),s=0,A=0;A<e.q;A++)y[v][A]&&(n[s++]=A);}mt(t,new IL(p,Q,g,S,n,v));}for(r=0;r<e.g;r++)if(e.H[r]==1&&(e.F[r]&64)==0){for(L=0;L<2;L++)if(f=e.D[L][r],T=t0(e,f),o=e.e[f]-T,T==1&&o!=0){m=e.D[1-L][r],P=e.C[f],P>6&&e.o[m]==1?x_(e,f,m,o,t):e.o[m]!=2&&e.e[m]>1&&ZW(e,f,m,o,t);break;}}}function ta(t,e,A){var n,P,r,i,f,D,Q;return r=c(Ut,ht,6,3,15,1),r[0]=kt(t.R,A.a)-kt(t.R,e.a),r[1]=pt(t.R,A.a)-pt(t.R,e.a),r[2]=vA(t.R,A.a)-vA(t.R,e.a),D=c(Ut,ht,6,3,15,1),D[0]=kt(t.R,e.b)-kt(t.R,e.a),D[1]=pt(t.R,e.b)-pt(t.R,e.a),D[2]=vA(t.R,e.b)-vA(t.R,e.a),Q=c(Ut,ht,6,3,15,1),Q[0]=kt(t.R,A.b)-kt(t.R,A.a),Q[1]=pt(t.R,A.b)-pt(t.R,A.a),Q[2]=vA(t.R,A.b)-vA(t.R,A.a),i=c(Ut,ht,6,3,15,1),i[0]=r[1]*D[2]-r[2]*D[1],i[1]=r[2]*D[0]-r[0]*D[2],i[2]=r[0]*D[1]-r[1]*D[0],f=c(Ut,ht,6,3,15,1),f[0]=r[1]*i[2]-r[2]*i[1],f[1]=r[2]*i[0]-r[0]*i[2],f[2]=r[0]*i[1]-r[1]*i[0],n=(D[0]*f[0]+D[1]*f[1]+D[2]*f[2])/(w.Math.sqrt(D[0]*D[0]+D[1]*D[1]+D[2]*D[2])*w.Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2])),P=(Q[0]*f[0]+Q[1]*f[1]+Q[2]*f[2])/(w.Math.sqrt(Q[0]*Q[0]+Q[1]*Q[1]+Q[2]*Q[2])*w.Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2])),n<0^P<0?1:2;}function Gj(t,e,A,n){var P,r,i,f,D;D=n.a.length,t.f[e]!=0&&Ge(n,t.f[e]==1?47:92),t.j==1&&(P=Ae(t.k,e)&127,P!=0&&((P&1)!=0&&t.f[e]==0&&(n.a+="-"),(P&2)!=0&&(n.a.length!=D&&(n.a+=","),n.a+="="),(P&4)!=0&&(n.a.length!=D&&(n.a+=","),n.a+="#"),(P&32)!=0&&(n.a.length!=D&&(n.a+=","),n.a+="$"),(P&64)!=0&&(n.a.length!=D&&(n.a+=","),n.a+="$"),(P&8)!=0&&(n.a.length!=D&&(n.a+=","),n.a+=":"),(P&16)!=0&&(n.a.length!=D&&(n.a+=","),J(n,$0(t.k,A)?"<-":"->")))),D==n.a.length&&(!_e(t.k,e)||(t.j&4)!=0)&&(r=l1(t.k,e)&127,r==1?Bn(t.k,z(t.k,0,e))&&Bn(t.k,z(t.k,1,e))&&(t.j&4)==0&&t.f[e]==0&&(n.a+="-"):r==2?n.a+="=":r==4?n.a+="#":r==32||r==64?n.a+="$":r==8?n.a+=":":r==16&&J(n,$0(t.k,A)?"<-":"->")),t.j==1&&(i=D==n.a.length?"":";",f=Ae(t.k,e)&384,f==256?n.a+=i+"@":f==128&&(n.a+=i+"!@"));}function ea(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h;if(t.R.f==0){t.s="";return;}for(L=t.jb&t.b,h=t.jb?16:8,Z3(t,true),Ge(t.u,L?35:33),Ot(t,t.jb?1:0,1),Ot(t,e?1:0,1),Ot(t,h>>1,4),l=0,D=1;D<t.R.f;D++)l=tR(t,t.B[D],t.F[D]==-1?-1:t.B[t.F[D]],l,A);if(L)for(Q=0;Q<t.R.f;Q++)for(n=t.B[Q],y=O(t.R,n);y<Ht(t.R,n);y++)l=tR(t,W(t.R,n,y),n,l,A);if(t.R.f>1&&l==0){t.s="";return;}for(i=1<<h,s=l/((i>>1)-1),T=l+.5*s,o=1;o<t.R.f;o++)Fb(t,t.B[o],t.F[o]==-1?-1:t.B[t.F[o]],T,s,h,A);if(L)for(f=0;f<t.R.f;f++)for(n=t.B[f],y=O(t.R,n);y<Ht(t.R,n);y++)Fb(t,W(t.R,n,y),n,T,s,h,A);e&&(r=t.jb?1.5:(J1(),J1(),wn),P=mR(t.R,L?t.R.q:t.R.f,L?t.R.r:t.R.g,r,A),Ot(t,w.Math.min(i-1,w.Math.max(0,vt(.5+w.Math.log10(P/.1)/w.Math.log10(2e3)*(i-1)))),h),Ot(t,Bh(A[t.B[0]].a/P,i),h),Ot(t,Bh(A[t.B[0]].b/P,i),h),t.jb&&Ot(t,Bh(A[t.B[0]].c/P,i),h)),t.s=HL(t);}function Z5(t,e){var A,n,P,r,i,f,D,Q,o,L;for(P=Ju(e,0);P>0&&e[P-1]==45;)P=Ju(e,P+1);for(r=P==-1?-1:Ju(e,P+1);r>0&&e[r-1]==45;)r=Ju(e,r+1);if(r==-1)throw At(new C1("Missing one or both separators ('>')."));if(Ju(e,r+1)!=-1)throw At(new C1("Found more than 2 separators ('>')."));for(L=new P8(),o=0,n=0;n<e.length;){for(;n<e.length&&e[n]==46;)++n;if(n==e.length)break;for(Q=n,D=-1,i=0,A=n;A<e.length;A++){if(e[A]==40){++i;continue;}if(e[A]==41){if(--i<0)throw At(new C1("Found closing bracket without matching opening one."));continue;}if(i==0&&(e[A]==46&&(t.o||A+1<e.length&&e[A+1]==46)||e[A]==62&&(A==0||e[A-1]!=45))){D=A;break;}}if(D==-1&&(D=e.length),Q<D){if(f=new JA(),i6(t,f,e,Q,D,true,true),t.q==1&&t.p)return Z5(new sQ(t.j|2),e);o==0?(mt(L.g,f),L.d=-1):o==1?mt(L.a,f):(mt(L.f,f),L.d=-1);}for(n=D;n<e.length&&e[n]==62;)++n,++o;}return L;}function W5(){W5=d1;var t,e,A;for(new ef(1,0),new ef(10,0),new ef(0,0),dE=c(BE,Ke,31,11,0,1),Eo=c(l9,te,6,100,15,1),Pc=B(d(Ut,1),ht,6,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,0x878678326eac9]),rc=c(F,k,6,Pc.length,15,1),wi=B(d(Ut,1),ht,6,15,[1,10,100,1e3,eP,Ry,1e6,1e7,1e8,xf,1e10,1e11,1e12,1e13,1e14,1e15,1e16]),gl=c(F,k,6,wi.length,15,1),So=c(BE,Ke,31,11,0,1),t=0;t<So.length;t++)dE[t]=new ef(t,0),So[t]=new ef(0,t),Eo[t]=48;for(;t<Eo.length;t++)Eo[t]=48;for(A=0;A<rc.length;A++)rc[A]=vs(Pc[A]);for(e=0;e<gl.length;e++)gl[e]=vs(wi[e]);P9();}function Jj(t){var e,A,n,P,r,i;if(r='<svg id="'+lf(t.g!=null?t.g:"mol"+S2)+H0+'xmlns="http://www.w3.org/2000/svg" version="1.1" width="'+t.n+'px" height="'+t.f+'px" viewBox="0 0 '+t.n+" "+t.f+`">
`,i=t.i?"<style> #"+lf(t.g!=null?t.g:"mol"+S2)+" { pointer-events:none; } #"+lf(t.g!=null?t.g:"mol"+S2)+` .event  { pointer-events:all; } line { stroke-linecap:round; } polygon { stroke-linejoin:round; } </style>
`:'<g style="font-size:'+t.k+'px; fill-opacity:1; stroke-opacity:1; fill:black; stroke:black; font-weight:normal; text-rendering:optimizeLegibility; font-family:sans-serif; stroke-linejoin:round; stroke-linecap:round; stroke-dashoffset:0;">',r+="  ",r+=i,t.i){for(P=new Zt(t.b);P.a<P.c.a.length;)n=$t(P),Mr(t,n);for(A=new Zt(t.a);A.a<A.c.a.length;)e=$t(A),Mr(t,e);}return t.i||Mr(t,"</g>"),r+t.c.a+"</svg>";}function Aa(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T,h,g,m;if(s=c(Pt,ft,6,t.g,16,1),s[P]=true,y=c(F,k,6,11,15,1),l=s2(t,y,n,e,10,null,s),l==-1)return  false;for(i=1;!yA(t.p,A,y[i]);)++i;if(r=l-i,f=y[i],m=q3(t.p,A),m==6&&r==2&&i==3&&pT(t,y[1])>=3){for(g=y3(t.p,A),L=0;L<6;L++)if(e==g[L]){if(h=KT(t.p,A,f==g[KT(t.p,A,L+2)]?L-2:L+2),T=g[h],o=t.u[T]&hn,(o==0?0:o==ie?2:o==q1?3:4)>=3&&eR(t,y[1],T,2,null)==2)return  true;break;}}if(D=t.o[f]==1||f<t.f&&r0(t.p,f)||EP(t,f,false),Q=!D&&t.C[f]==7&&t.s[f]!=1,r==1)return !D&&!Q&&m<=4&&i<=3;switch(m){case 4:if(!D&&!Q&&i<=4)return  true;break;case 5:if(Q){if(i<=3)return  true;}else if(!D&&i<=4)return  true;break;case 6:if(r==2){if(D){if(i<=4)return  true;}else if(!Q&&i<=3)return  true;}else if(r==3){if(D){if(i<=6)return  true;}else if(i<=4)return  true;}break;case 7:if(r==3&&i<=3)return  true;}return  false;}function na(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;for(e=0;e<t.j.f;e++){for(i=0,f=false,Q=false,s=0;s<O(t.j,e)&&!f;s++)if(P=xt(t.j,e,s),t.e[P]){for(++i,n=W(t.j,e,s),tA(t.j,n)&&(Q=true),T=0;T<O(t.j,n);T++)if(h=W(t.j,n,T),g=xt(t.j,n,T),h!=e&&t.e[g]){f=true;break;}}if(i>=2&&!f){for(r=c(F,k,6,i,15,1),o=dQ(t.j,e),o==0&&(o=2),l=0,y=0;y<O(t.j,e);y++)P=xt(t.j,e,y),t.e[P]&&(n=W(t.j,e,y),r[l++]=(A=K(t.j,n),((A==8?14+(O(t.j,n)==1?1:0):A==7?12+(O(t.j,n)==1?1:0):A==16?10+(O(t.j,n)==1?1:0):A==34?8+(O(t.j,n)==1?1:0):A==15?6+(O(t.j,n)==1?1:0):A==33?4+(O(t.j,n)==1?1:0):A==6?2+(O(t.j,n)==1?0:1):O(t.j,n)==1?0:1)<<16)+y));for(r.sort(me(D0.prototype.gd,D0,[])),t.b-=1+i,t.d[e]=false,D=w.Math.min(i-1,o),L=0;L<r.length;L++)n=W(t.j,e,r[L]&c1),P=xt(t.j,e,r[L]&c1),t.d[n]=false,t.e[P]=false,--t.c,L<r.length-D?E0(t.j,n,Q?-1:1):w0(t.j,P,2);}}}function zj(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T;for(i=0,D=0;D<t.g.f;D++)if((t.f==null||t.f[D]==e)&&gt(V(U0(t.g,D),de),0)){if(s=t.G[D],L=d0(t.g,D),l=d0(t.H,s),L==0||L==3)continue;if(l==0||l==3)return  false;if(ne(t.g,D)==1){++i;continue;}if(ne(t.H,s)==1)return  false;if(ne(t.g,D)==2){++i;continue;}if(ne(t.H,s)==2||g5(t,D)==(L==l))return  false;}if(i!=0){for(P=c(F,k,6,i,15,1),r=0,Q=0;Q<t.g.f;Q++)(t.f==null||t.f[Q]==e)&&gt(V(U0(t.g,Q),de),0)&&(L=d0(t.g,Q),L!=0&&L!=3&&(P[r++]=VA(t.g,Q)<<24|ne(t.g,Q)<<22|Q));for(P.sort(me(D0.prototype.gd,D0,[])),r=0;r<P.length;)for(o=P[r]&x0,y=t.G[o],A=P[r]&-4194304,n=g5(t,o)^d0(t.g,o)==d0(t.H,y),++r;r<P.length&&(P[r]&-4194304)==A;r++)if(f=P[r]&x0,s=t.G[f],ne(t.H,s)!=ne(t.H,y)||VA(t.H,s)!=VA(t.H,y)||(T=g5(t,f)^d0(t.g,f)==d0(t.H,s),T!=n))return  false;}return  true;}function Pa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v;if(s=0,y=(r=Pe(e,s),r==-1?e.length:r),v=(Ct(s,y,e.length),e.substr(s,y-s)),at("DEFAULT",v)&&(s=lA(e,y),y=(i=Pe(e,s),i==-1?e.length:i),v=(Ct(s,y,e.length),e.substr(s,y-s)),v.startsWith("CLASS")&&(s=lA(e,y),y=(f=Pe(e,s),f==-1?e.length:f),v=(Ct(s,y,e.length),e.substr(s,y-s)),at("-",v)&&(s=lA(e,y),y=(D=Pe(e,s),D==-1?e.length:D),v=(Ct(s,y,e.length),e.substr(s,y-s))))),Q1(v,P1,Et),s=lA(e,y),y=(Q=Pe(e,s),Q==-1?e.length:Q),m=(Ct(s,y,e.length),e.substr(s,y-s)),!!at("DAT",m)){for(s=lA(e,y),y=(P=Pe(e,s),P==-1?e.length:P),Q1((Ct(s,y,e.length),e.substr(s,y-s)),P1,Et),g=new yP(),s=lA(e,y);s!=-1;)s=DZ(g,e,s);n=(T=k2,XP(G9(g,T))),L=(h="FIELDNAME",XP(G9(g,h))),o=(l="FIELDDATA",XP(G9(g,l))),!(!at(ky,L)||n==null||o==null)&&(A=o8(n," "),A.length==2&&VP(t.j,Q1(A[1],P1,Et)-1,o));}}function Yj(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X;if(v=t.f.k,P=N(t.e,A),X=P.a,L=e[t.a],h=It(v,X)>0&&v.j[X]==v.e[X],T=CO(t.f.a,t.f.t[X]),!h&&!T)return i=v.i[X][2],v.C[i]==1&&(i=t.f.t[i],(A==0?i>X:t.f.t[v.i[X][1]]>i)&&(n=!n)),n;if(h&&(r=v.i[X][A],i=t.f.t[r],i>X&&(n=!n,v.C[r]==1&&(n=!n))),T){for(b=v.e[X],y=c(F,k,6,b-1,15,1),l=c(F,k,6,b-1,15,1),R=0,g=0,p=0;g<b;g++)i=v.i[X][g],i!=L&&(y[p]=i,Q=u1(v,X,i),x=xu(t.f.s,t.f.t[X]+"_"+t.f.t[i]),l[p++]=x==null?-1:Q,x!=null&&++R);if(h)y[0]<X&&(n=!n);else switch(R){case 1:if(It(v,X)>0)break;m=l[0]>=0,s=y[m?0:1],j=y[m?1:0],j>X?s>X&&v.C[j]!=1&&(n=!n):s<X&&(n=!n);break;case 2:f=Pv(t,l[0],X),D=Pv(t,l[1],X),tt=xu(t.f.s,X+"_"+t.f.t[f]),M=xu(t.f.s,X+"_"+t.f.t[D]),o=t.b,A==0?(S=tt[1]<o?tt[1]:tt[0],I=M[1]<o?M[1]:M[0]):(S=tt[0]<o?tt[1]:tt[0],I=M[0]<o?M[1]:M[0]),S<I!=f<D&&(n=!n);}}return n;}function ra(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(r=0,o=0,i=0,f=0,D=0,Q=0,L=0,s=false,e=c(Pt,ft,6,32,16,1),A=0;A<t.R.f;A++)t.db[A]!=0&&(++r,t.db[A]==3?++o:t.bb[A]==0?(++i,t.P&&uD(t.P,A)&&++f):t.bb[A]==2?t.ab[A]==0&&++Q:t.bb[A]==1&&(P=t.ab[A],e[P]||(++L,e[P]=true),t.ab[A]==0&&++D,t.P&&uD(t.P,A)&&(s=true)));for(n=0;n<t.R.g;n++)t.o[n]!=0&&l1(t.R,n)==1&&(++r,t.o[n]==3?++o:t.n[n]==0?(++i,t.P&&uD(t.P,z(t.R,0,n))&&uD(t.P,z(t.R,1,n))&&++f):t.n[n]==2?t.k[n]==0&&++Q:t.n[n]==1&&(P=t.k[n],e[P]||(++L,e[P]=true),t.k[n]==0&&++D,t.P&&uD(t.P,z(t.R,0,n))&&uD(t.P,z(t.R,1,n))&&(s=true)));if(r==0){t.R.I=u0;return;}if(o!=0){t.R.I=0;return;}if(t.K){xl(t.R,I0+(1<<L));return;}D+f==r&&!s?t.R.I=yy:i==r?t.R.I=l8:Q==r?t.R.I=327680:i==r-1&&D==1?t.R.I=Li:xl(t.R,458752+(1<<L));}function ia(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;if(t.j[e]!=2||t.n[e][0]!=2||t.n[e][1]!=2||t.j[t.i[e][0]]<2||t.j[t.i[e][1]]<2||t.o[t.i[e][0]]!=1||t.o[t.i[e][1]]!=1){we(t,e,0,false);return;}for(R=-1,b=-1,v=-1,h=-1,r=0,L=0;L<2;L++)for(n=t.i[e][L],l=0;l<t.e[n];l++)i=t.i[n][l],i!=e&&(f=t.k[n][l],j=HQ(t,f,i),r<j&&(r=j,b=i,R=f,v=n,h=t.i[e][1-L]));if(b!=-1){for(s=0;s<2;s++)for(n=t.i[e][s],l=0;l<t.e[n];l++)i=t.i[n][l],f=t.k[n][l],i!=e&&t.D[0][f]==n&&(t.H[f]=1);for(t.D[1][R]!=b&&(t.D[0][R]=t.D[1][R],t.D[1][R]=b),D=Et,y=0;y<t.j[v];y++)i=t.i[v][y],i!=e&&D>i&&(D=i);for(g=c(F,k,6,2,15,1),m=0,o=0;o<t.j[h];o++)i=t.i[h][o],i!=e&&(g[m++]=i);A=bA(t.J[e].a,t.J[e].b,t.J[h].a,t.J[h].b),P=0,m==2?(g[0]>g[1]&&(p=g[0],g[0]=g[1],g[1]=p),Q=ze(A,K0(t,h,g[0])),T=ze(A,K0(t,h,g[1])),P=Q-T):P=ze(A,K0(t,h,g[0])),P<0^(t.u[e]&3)==1^D==b?t.H[R]=257:t.H[R]=129;}}function fa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;if(gt(t.v,0)&&(z1(),E1(M1(Date.now()),t.v)))return  false;for(y=e.a,m=0,i=1;i<y.length;i++)if(y[i]!=null)for(D=0;D<i;D++)y[i][D]!=0&&v3(t.B,i,D).length!=2&&(m+=y[i][D]);if(m>6)return  false;for(P=null,s=null,Q=null,A=Ee,l=e.b,r=1;r<y.length;r++)if(y[r]!=null){for(f=0;f<r;f++)if(y[r][f]>1&&v3(t.B,r,f).length==2){for(g=v3(t.B,r,f),b=c(F,k,6,2,15,1),L=0;L<2;L++)v=t.s[g[L]],b[L]=Pd(e.c,v.a);for(p=c(F,k,6,2,15,1),T=-1;T<=1;T+=2)for(p[0]=T*8,h=-1;h<=1;h+=2){for(p[1]=h*8,n=y[r][f],R=1;R<=3;R++){for(P?KD(P,e.c):P=new TD(e.c),o=0;o<2;o++)Rk(P,t.s[g[o]],b[o]+R*p[o]<<16>>16);if(j=fW(t,P,t.q[r],t.q[f]),j<n-1){if(n=j,s?KD(s,P):s=new TD(P),n<1)break;}else break;}n<y[r][f]&&n<A&&(A=n,Q?KD(Q,s):Q=new TD(s));}}}return Q?(Mj(t,e,Q),e.b>=l?($B(e,l,y),false):(KD(e.c,Q),true)):false;}function Da(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M;if(t.e.length==1)return 0;for(I=P+w.Math.sqrt(n),o=c(Ut,ht,6,36,15,1),l=0;l<t.e.length;l++)r=Un(e,A,t.a[l],t.b[l]),f=II(Jt(M1(w.Math.round(r*36/F0)))),L=e-t.a[l],s=A-t.b[l],tt=L*L+s*s,o[f]<tt&&(o[f]=tt);for(R=-1,b=-1,T=0;T<36;T++)o[T]=w.Math.sqrt(o[T]),R<o[T]&&(R=o[T],b=T);for(x=b-18<0?b-18+36:b-18>=36?b-18-36:b-18,h=0;h<=18;h++)o[x+h<0?x+h+36:x+h>=36?x+h-36:x+h]+=.01*h,o[x-h<0?x-h+36:x-h>=36?x-h-36:x-h]+=.01*h;for(M=c(Ut,ht,6,9,15,1),D=c(Ut,ht,6,9,15,1),g=1;g<9;g++)M[g]=w.Math.sin(g*OC),D[g]=w.Math.cos(g*OC);for(p=Ee,j=-1,i=0;i<36;i++)if(!(o[i]>=p)){for(v=o[i],y=1;y<9;y++){for(m=-1;m<=1&&(S=i+m*y<0?i+m*y+36:i+m*y>=36?i+m*y-36:i+m*y,!(!(o[S]*D[y]<=v)&&(Q=D[y]*w.Math.min(o[S],I/M[y]),v<Q&&(v=Q,p<=v))));m+=2);if(p<=v)break;}p>v&&(p=v,j=i);}return F0*j/36;}function Kj(t){for(var e,A,n,P,r;t.t.a.length!=0;)if(n=LA(t.t,0),t.I[n.b]==0&&t.B[n.a]==0)return n;for(;t.g>=0;){for(;t.g>=2&&t.c<t.j[t.g].length;){if(A=t.j[t.g][t.c],e=Te(t.k[t.g],A),K(t.D,e[0][0])==6&&(n=XR(t,e[0],e[1]),n))return n;++t.c;}for(;t.g>=2&&t.d<t.j[t.g].length;){if(A=t.j[t.g][t.d],e=Te(t.k[t.g],A),K(t.D,e[0][0])!=6&&(n=XR(t,e[0],e[1]),n))return n;++t.d;}for(;t.p&&t.g==0&&t.e<t.j[0].length;)if(A=t.j[0][t.e++],e=Te(t.k[t.g],A),e[0].length==1&&e[1].length==1&&(n=Gk(t,e[0][0],e[1][0]),n))return n;for(;t.g==0&&t.f<t.j[t.g].length;)if(A=t.j[t.g][t.f++],e=Te(t.k[t.g],A),e[0].length>=e[1].length&&$b(e[0],t.I,t.G,t.H,t.J)||e[1].length>=e[0].length&&$b(e[1],t.B,t.w,t.A,t.C)){for(r=0,P=0;r<e[0].length&&t.I[e[0][r]]!=0;)++r;for(;P<e[1].length&&t.B[e[1][P]]!=0;)++P;if(r<e[0].length&&P<e[1].length&&(n=Gk(t,e[0][r],e[1][P]),n))return n;}--t.g,t.c=0,t.d=0,t.e=0,t.f=0;}return null;}function EP(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;if(t.C[e]!=7||t.j[e]==4)return  false;if(e<t.f&&r0(t.p,e)||t.o[e]!=0||gt(V(t.B[e],Qr),0))return  true;if(t.s[e]==1)return  false;for(D=0;D<t.j[e];D++)if(pr(t,t.k[e][D])==3)return  false;for(i=0,Q=0;Q<t.j[e];Q++)t.n[e][Q]==1&&(n=t.C[t.i[e][Q]],(n==8||n==9||n==17)&&++i);if(i==0){for(f=0;f<t.j[e];f++)if(P=t.i[e][f],t.o[P]!=0){if(P<t.f&&r0(t.p,P)){if((t.p&&P<t.f?iA(t.p,P):0)>=5){for(T=0,s=0;s<t.j[P];s++)l=t.i[P][s],l!=e&&t0(t,l)>=3&&++T;if(y=t0(t,e),T==2&&y>=2||T==1&&y==3)continue;}return !A||!Ss(t,e);}for(L=0;L<t.j[P];L++)if(t.n[P][L]==2||_e(t,t.k[P][L]))return !A||!Ss(t,e);}}if(i<2)for(f=0;f<t.j[e];f++){for(P=t.i[e][f],o=false,r=false,L=0;L<t.j[P];L++)t.i[P][L]!=e&&(t.n[P][L]!=1&&(t.C[t.i[P][L]]==7||t.C[t.i[P][L]]==8||t.C[t.i[P][L]]==16)&&(o=true),t.n[P][L]==1&&t.C[t.i[P][L]]==7&&(r=true));if(o&&(!r||i==0))return !A||!Ss(t,e);}return  false;}function ua(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j;for(n=c(Ut,ht,6,2,15,1),Q=0;Q<2;Q++)t.c[Q]/=t.a[Q],t.d[Q]/=t.a[Q],n[Q]=Da(t.b[Q],t.c[Q],t.d[Q],t.b[1-Q].e.length,e);for(Uf(t.b[0],t.c[0],t.d[0],RA-n[0]),Uf(t.b[1],t.c[1],t.d[1],4.71238898038469-n[1]),j=Ee,R=F6,i=t.d[0]-t.d[1],o=0;o<t.b[1].b.length;o++)t.b[1].b[o]+=i,j>t.b[1].b[o]&&(j=t.b[1].b[o]),R<t.b[1].b[o]&&(R=t.b[1].b[o]);for(v=R-j+2*e,P=vt(w.Math.ceil(v)),j+=(v-P)/2-e,g=c(Ut,ht,6,P,15,1),L=0;L<P;L++)g[L]=t.c[1]+e;for(s=0;s<t.b[1].b.length;s++)for(b=t.b[1].b[s]-j,m=vt(b-e),f=w.Math.min(vt(b+e),P-1),h=m;h<=f;h++)g[h]>t.b[1].a[s]&&(g[h]=t.b[1].a[s]);for(y=0;y<P;y++)g[y]-=e;for(r=t.c[0]-t.c[1],l=0;l<t.b[0].a.length;l++)T=vt(t.b[0].b[l]-j),T>=0&&T<g.length&&r<t.b[0].a[l]-g[T]&&(r=t.b[0].a[l]-g[T]);for(D=0;D<t.b[1].a.length;D++)t.b[1].a[D]+=r;A&&(Uf(t.b[0],t.c[0],t.d[0],n[0]-RA),Uf(t.b[1],t.c[0],t.d[0],n[0]-RA));}function Xj(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j;if(t.d==null&&(t.d=c(F,f0,7,t.j.r,0,2)),t.d[e]==null){for(y=c(F,k,6,t.e.length,15,1),v=c(Pt,ft,6,t.j.q,16,1),P=z(t.j,0,e),r=z(t.j,1,e),y[0]=P,v[P]=true,o=0,l=0;o<=l;){for(h=0;h<Ht(t.j,y[o]);h++)i=W(t.j,y[o],h),!v[i]&&i!=r&&(y[++l]=i,v[i]=true);if(o==l)break;++o;}if(s=l+1>(t.e.length/2|0),t.i){for(D=false,f=false,h=0;h<t.e.length;h++)n=t.e[h],Y0(t.j,n)&&n!=P&&n!=r&&(v[t.e[h]]?D=true:f=true);D!=f&&(s=D);}for(Q=2,t.d[e]=c(F,k,6,s?t.e.length-l:l+2,15,1),g=0;g<t.e.length;g++)t.e[g]==P?t.d[e][s?0:1]=g:t.e[g]==r?t.d[e][s?1:0]=g:s^v[t.e[g]]&&(t.d[e][Q++]=g);}for(R=t.a[t.d[e][0]],j=t.b[t.d[e][0]],b=Un(R,j,t.a[t.d[e][1]],t.b[t.d[e][1]]),T=2;T<t.d[e].length;T++)m=t.d[e][T],L=w.Math.sqrt((t.a[m]-R)*(t.a[m]-R)+(t.b[m]-j)*(t.b[m]-j)),A=2*b-Un(R,j,t.a[m],t.b[m]),t.a[m]=R+L*w.Math.sin(A),t.b[m]=j+L*w.Math.cos(A);}function Zj(t){var e,A,n,P,r,i,f,D,Q,o;switch(e=null,o=t.d.length,t.e){case 1:for(e=k1(zt,[ee,_t],[16,6],15,[2*o,2],2),n=0;n<o;n++)e[n][0]=t.d[n][0],e[n][1]=t.d[n][1],e[o+n][0]=180+t.d[n][0]<<16>>16,e[o+n][1]=180+t.d[n][1]<<16>>16;return e;case 2:for(P=t.a[0]==0?1:0,r=t.a[o-1]==180?o-1:o,Q=r-P,e=k1(zt,[ee,_t],[16,6],15,[o+Q,2],2),i=0;i<o;i++)e[i][0]=t.d[i][0],e[i][1]=t.d[i][1];for(f=P;f<r;f++)e[e.length-1-f+P][0]=360-t.d[f][1]<<16>>16,e[e.length-1-f+P][1]=360-t.d[f][0]<<16>>16;return e;case 3:for(P=t.a[0]==0?1:0,r=t.a[o-1]==90?o-1:o,Q=r-P,e=k1(zt,[ee,_t],[16,6],15,[2*o+2*Q,2],2),D=0;D<o;D++)e[D][0]=t.d[D][0],e[D][1]=t.d[D][1],e[o+Q+D][0]=180+t.d[D][0]<<16>>16,e[o+Q+D][1]=180+t.d[D][1]<<16>>16;for(A=P;A<r;A++)e[o+Q-1-A+P][0]=180-t.d[A][1]<<16>>16,e[o+Q-1-A+P][1]=180-t.d[A][0]<<16>>16,e[e.length-1-A+P][0]=360-t.d[A][1]<<16>>16,e[e.length-1-A+P][1]=360-t.d[A][0]<<16>>16;return e;default:return t.d;}}function Wj(t,e,A,n){var P,r,i,f,D,Q;if(i=ZA(t.V,e,A),f=-1,n&&t.X==8&&i!=-1&&(!VZ(t,t.e,i)||R1(t.V,t.e)!=0&&R1(t.V,t.e)==R1(t.V,i)&&!dn(t.V,t.e)||LG(t,t.e,i))&&(i=-1),i!=-1&&(t.w==101||t.w==103||t.w==102?(f=CQ(t.V,i),i=-1):t.w==19&&i>=t.V.f&&(i=-1)),f==-1&&i==-1&&t.w!=22&&t.w!=19&&t.w!=3&&t.w!=10&&t.w!=27&&t.w!=16&&t.w!=11&&t.w!=12&&t.w!=13&&t.w!=28&&t.w!=29&&t.w!=30&&t.w!=14&&t.w!=31&&t.w!=15&&t.w!=32&&t.w!=33&&(f=wf(t.V,e,A)),f!=-1&&(t.w==101||t.w==103||t.w==102)&&!(jr(t.V,f)&&(bs(t,f)!=-1||YL(t,f)!=-1))&&(f=-1),P=t.v,!n&&t.I&&(P=null,i==-1&&f==-1&&(t.w==2||t.w==4||t.w==21))){for(Q=new Zt(t.I);Q.a<Q.c.a.length;)if(D=$t(Q),(t.w==2||t.w==4&&!Xt(D,62)||t.w==21&&Xt(D,93))&&D.Eb(e,A)){P=D,t.v&&t.v!=D&&t.v.Fb();break;}}return r=t.t!=i||t.u!=f||t.v!=P||!!P,t.t!=i&&(t.t!=-1&&t.i.a.length!=0?$s(t,t.i.a):(t.t=i,un(t.i,0),I1(t,new S1(t,4,true)))),t.u!=f&&(t.u=f,I1(t,new S1(t,8,true))),t.v=P,r;}function as(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b;for(ut(t,7),o=new zA(t.f,t.g),Q=k1(E,[nA,xy],[204,58],0,[t.f,8],2),n=c(F,k,6,t.f,15,1),P=c(F,k,6,t.f,15,1),r=c(Pt,ft,6,t.f,16,1),v=0;v<t.f;v++)if(Q[v]=k1(E,[xy,c8],[58,10],0,[t.j[v],8],2),!(e&&t.C[v]!=6))for(D=0;D<t.j[v];D++){for(L=t.i[v][D],Mu(r,r.length),g=1,h=2,t.u[L]|=512,b=0;b<8&&h<t.f;b++){if(b==0)n[0]=L,r[L]=true,n[1]=v,r[v]=true;else {for(m=h,y=g;y<h;y++)for(A=n[y],l=0;l<t.j[A];l++)f=t.i[A][l],!r[f]&&(!e||t.C[f]==6)&&(r[f]=true,n[m++]=f);if(m==h){if(!e)for(s=b;s<8;s++)Q[v][D][s]=Q[v][D][s-1];break;}g=h,h=m;}if(b==0)Q[v][D][b]=c(E,q,6,2,15,1),Q[v][D][b][0]=t.C[v]<<24>>24,Q[v][D][b][1]=t.A[v]<<24>>24;else {for(fi(t,o,r,true,P),E0(o,P[L],0),Oe(o,P[L],0),A=0;A<t.f;A++)P[A]!=-1&&t.j[A]>o.j[P[A]]&&T1(o,P[A],C0,true);if(e)for(i=0;i<o.g;i++)o.H[i]=1,o.T=0;Q[v][D][b]=KA((T=ke(new EA(o,16)),c0(),T));}}t.u[L]&=-513;}return Q;}function Qa(t,e){Is();var A,n,P,r,i,f,D,Q,o,L,s,y,l,T;if(D=G(t,0)<0,D&&(t=p0(t)),G(t,0)==0)switch(e){case 0:return "0";case 1:return "0.0";case 2:return "0.00";case 3:return "0.000";case 4:return my;case 5:return "0.00000";case 6:return "0.000000";default:return y=new V0(),e<0?y.a+="0E+":y.a+="0E",y.a+=e==P1?"2147483648":""+-e,y.a;}o=18,L=c(l9,te,6,o+1,15,1),A=o,T=t;do Q=T,T=Cn(T,10),L[--A]=Jt(x1(48,l0(Q,on(T,10))))&c1;while(G(T,0)!=0);if(P=l0(l0(l0(o,A),e),1),e==0)return D&&(L[--A]=45),$n(L,A,o-A);if(e>0&&G(P,-6)>=0){if(G(P,0)>=0){for(r=A+Jt(P),f=o-1;f>=r;f--)L[f+1]=L[f];return L[++r]=46,D&&(L[--A]=45),$n(L,A,o-A+1);}for(i=2;Ci(i,x1(p0(P),1));i++)L[--A]=48;return L[--A]=46,L[--A]=48,D&&(L[--A]=45),$n(L,A,o-A);}return l=A+1,n=o,s=new b9(),D&&(s.a+="-"),n-l>=1?(Ge(s,L[A]),s.a+=".",s.a+=$n(L,A+1,o-A-1)):s.a+=$n(L,A,o-A),s.a+="E",G(P,0)>0&&(s.a+="+"),s.a+=""+he(P),s.a;}function oa(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;if(e==0||(e&A)!=0){hQ(t);return;}for(h=-1,g=0,r=1<<t.e.length-2,P=1<<t.e.length-1,f=1,i=2,Q=0;Q<t.e.length;Q++)(A&(P|f))==0&&(e&(P|f))!=0&&(e&r)==0&&(l=0,(A&r)!=0&&(l+=4),(e&P)!=0&&(l+=2),(e&f)!=0&&(l+=1),g<l&&(g=l,h=Q)),r=P,P=f,f=i,i=1<<(Q+2<t.e.length?Q+2:Q+2-t.e.length);if(h==-1){hQ(t);return;}for(s=0,s|=1<<h,y=2;y<t.e.length-1;){if(L=h+y<t.e.length?h+y:h+y-t.e.length,P=1<<(L==0?t.e.length-1:L-1),(A&P)!=0){++y;continue;}if(f=1<<L,(e&P)!=0){if((A&f)!=0){hQ(t);return;}s|=f,y+=2;continue;}if(i=1<<(L+1<t.e.length?L+1:L+1-t.e.length),(e&f)!=0&&(A&i)!=0){s|=f,y+=3;continue;}++y;}if(s==0){hQ(t);return;}for(n=U1-U1*(t.e.length-2)/t.e.length,o=1;o<t.e.length;o++)t.a[o]=t.a[o-1]+w.Math.sin(n*(o-1)),t.b[o]=t.b[o-1]+w.Math.cos(n*(o-1));for(f=1,T=2*w.Math.sin(n/2),D=0;D<t.e.length;D++)(s&f)!=0&&(t.a[D]+=T*w.Math.cos(n*(D-.5)),t.b[D]-=T*w.Math.sin(n*(D-.5))),f<<=1;}function _j(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;for(t.v=n0(t.w,0)?0:(z1(),x1(M1(Date.now()),t.w)),GS(t.r,t.v),t.t=null,ut(e,1),P=0;P<e.f;P++)if(N1(e,P)>(T=pn(e,P),T+WA(e,P,T,e.C[P])))return  false;if(WX(e),e.S=true,i=null,o=null,f=null,L=null,(e.T&8)!=0){for(i=c(F,k,6,e.f,15,1),f=c(Pt,ft,6,e.f,16,1),r=0;r<e.f;r++)i[r]=e.u[r]&3,f[r]=(e.u[r]&4)!=0;for(o=c(F,k,6,e.g,15,1),L=c(Pt,ft,6,e.g,16,1),Q=0;Q<e.g;Q++)o[Q]=e.F[Q]&3,L[Q]=(e.F[Q]&4)!=0;}if(ut(e,63),i!=null){for(r=0;r<e.f;r++)we(e,r,i[r],f[r]);for(Q=0;Q<e.g;Q++)A8(e,Q,o[Q],L[Q]);}for(t.k=e,t.a=0,t.p=0,t.A=null,t.s=null,t.e=c(F,k,6,e.q,15,1),t.d=n9(e,t.e,false,true),t.f=c(F,k,6,t.d,15,1),n=0;n<e.q;n++)++t.f[t.e[n]];if(y=c(Pt,ft,6,e.r,16,1),s=Ij(e,y),s==0)return  true;if(!LY(t,y))return  false;for(t.s=c(pPt,e0,176,s,0,1),l=0,D=0;D<e.g;D++)y[D]&&(t.s[l++]=new ej(e,D,t.g,t.e,t.f[t.e[e.D[0][D]]],t.q,A));return cu(t.s,new vw()),t.i&&(t.c=new D7()),FW(t),true;}function Ua(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt;for(Dz(),D=new Xo(),TK(D,e),h=D.j,L=D.d,ut(h,1),ut(L,1),b=new Ii(),T=new Ii(),Dn(b,h),Dn(T,L),t.c=P1,i=null,r=null,P=0,I=0,t.a=new V0(),A=new JA(),j=Tl,p=0,S=j.length;p<S&&(R=j[p],I++!=t.b);++p)if(Ln(b,R.g),MS(b,R.i),sn(b,6,8)!=0&&(Ln(T,R.f),sn(T,2,8)!=0&&b.F.a.length<=512)){for(f=-1e4,l=N(T.F,0),v=new Zt(b.F);v.a<v.c.a.length&&(m=$t(v),!(I++>=t.b));)ff(h,A),Q=MZ(R,A,m),tt=lX(R,h.f,m,L.f,l),ut(A,1),n=c(F,k,6,A.f,15,1),y=c(F,k,6,L.f,15,1),nj(D,A,L,n,y,tt)&&(x=D.q-R.e,f<x&&(f=x),t.c<x&&(t.c=x,i=LK(n,y,Q,h.f),r=y,P=D.b));o=D.a<=1?"":iV+D.a+")",J(t.a,R.d+(R.b?"_S":R.j.length==0?"_L":R.n.a.length==0?"_I":"_U")+(J9(),a9(f,5))+o+$A);}return g=c(F,k,6,h.f,15,1),s=c(F,k,6,L.f,15,1),nj(D,h,L,g,s,null)&&(x=D.q,t.c<=x&&(t.c=x,i=g,r=s,P=D.b),o=D.a<=1?"":iV+D.a+")",J(t.a,(J9(),"no rule:"+a9(x,5)+o+$A))),t.c==P1?false:(vZ(D,e,i,r,P),true);}function La(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x;for(r=false,S=xn(t.d),m=0;m<S.j.a.length;m++)if(p=N(S.j,m),p.length==6&&!S.f[m]){for(y=true,b=N(S.k,m),R=0,j=b.length;R<j;++R)if(v=b[R],dt(t.d,v)!=1||O8(t.d,v)){y=false;break;}if(y){for(i=new J0(),T=new J0(),D=k1(Ut,[h0,ht],[15,6],15,[6,3],2),H5(e,p,i,T,D),Q=c(Ut,ht,6,p.length,15,1),I=0,L=0;L<p.length;L++)Q[L]=-(T.a*D[L][0]+T.b*D[L][1]+T.c*D[L][2]),Q[L]<0^(L&1)==1&&++I;if(I!=0&&I!=6){for(o=0;o<p.length;o++)if(Q[o]<0^(o&1)==1^I>=3){if(h=c(F,k,6,2,15,1),h[0]=p[o==0?5:o-1],h[1]=p[o==5?0:o+1],g=e.k[p[o]],n=ar(TO(G8(e.k[p[o]],i),T)),A=.6+w.Math.asin(w.Math.abs(Q[o])/w.Math.sqrt((i.a-g.a)*(i.a-g.a)+(i.b-g.b)*(i.b-g.b)+(i.c-g.c)*(i.c-g.c))),x=Q[o]<0?A:-A,P=YN(new vu(g),i),s=false,O(t.d,p[o])>2){for(l=0;l<O(t.d,p[o]);l++)if(f=W(t.d,p[o],l),f!=h[0]&&f!=h[1]&&fA(t.d,xt(t.d,p[o],l))){s=true;break;}}s||uZ(e,p[o],h,P,n,x);}r=true;}}}return r&&(CU(e),i5(e,t.j)),r;}function sa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;for(l=t.a[e],m=t.b[e],r=c(si,e0,41,4,0,1),o=0,L=0;L<t.f.length&&!(o>=4);L++)if(!(e==t.g[z(t.j,0,t.f[L])]||e==t.g[z(t.j,1,t.f[L])])){if(T=t.a[t.g[z(t.j,0,t.f[L])]],v=t.b[t.g[z(t.j,0,t.f[L])]],h=t.a[t.g[z(t.j,1,t.f[L])]],b=t.b[t.g[z(t.j,1,t.f[L])]],f=w.Math.sqrt((T-l)*(T-l)+(v-m)*(v-m)),D=w.Math.sqrt((h-l)*(h-l)+(b-m)*(b-m)),P=w.Math.sqrt((h-T)*(h-T)+(b-v)*(b-v)),f<P&&D<P){T==h?(i=w.Math.abs(l-T),i<.5&&(r[o++]=new KP(Un(T,m,l,m),(.5-i)/2))):v==b?(i=w.Math.abs(m-v),i<.5&&(r[o++]=new KP(Un(l,v,l,m),(.5-i)/2))):(s=(b-v)/(h-T),y=-1/s,A=v-s*T,n=m-y*l,g=(n-A)/(s-y),R=s*g+A,i=w.Math.sqrt((g-l)*(g-l)+(R-m)*(R-m)),i<.5&&(r[o++]=new KP(Un(g,R,l,m),(.5-i)/2)));continue;}if(f<.5){r[o++]=new KP(Un(T,v,l,m),(.5-f)/2);continue;}if(D<.5){r[o++]=new KP(Un(h,b,l,m),(.5-D)/2);continue;}}o>0&&(Q=P2(r,o),t.a[e]+=Q.b*w.Math.sin(Q.a),t.b[e]+=Q.b*w.Math.cos(Q.a));}function $j(t){var e,A,n,P,r,i,f,D,Q;for(A=B(d(F,1),k,6,15,[8,-2,8,-2,8]),Q=B(d(F,1),k,6,15,[8,-2,4,-2,12,-2,4,-2,12,-2,4,-2,12,-2,8]),WU(t.c,A,Q),t.o=zu(t.c,1,1),JP(t.o,t),i0(t.c,Le(t.c,"Atom Label:"),1,1),i0(t.c,t.o,3,1),ce(t.c,Le(t.c,"(examples: 'D', 'Li', 'Cys', 'R12', 'R3@C')"),1,3,3,3),t.p=zu(t.c,1,1),JP(t.p,t),i0(t.c,Le(t.c,"Atom Mass:"),1,5),i0(t.c,t.p,3,5),ce(t.c,Le(t.c,"(empty for natural abundance)"),1,7,3,7),t.q=zu(t.c,1,1),JP(t.q,t),i0(t.c,Le(t.c,"Abnormal Valence:"),1,9),i0(t.c,t.q,3,9),ce(t.c,Le(t.c,"(empty for default valence)"),1,11,3,11),t.a==-1?(n=(J1(),Z0)[t.k],N8(t.o,t.n==null?n:t.n+"@"+n),t.g!=0&&N8(t.p,""+t.g),t.j!=-1&&N8(t.q,""+t.j)):(n=ji(t.e,t.a),e=Zn(t.e,t.a),N8(t.o,e==null?n:e+"@"+n),le(t.e,t.a)!=0&&N8(t.p,""+le(t.e,t.a)),kr(t.e,t.a)!=-1&&N8(t.q,""+kr(t.e,t.a))),t.b=UA(t.c),r=XV,i=0,f=r.length;i<f;++i)P=r[i],Nt(t.b,P);D=t.a==-1?t.i:mA(t.e,t.a),Wt(t.b,D==32?1:D==48?2:D==16?3:0),i0(t.c,Le(t.c,"Radical State:"),1,13),i0(t.c,t.b,3,13);}function ya(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(s=B(d(F,2),f0,7,0,[B(d(F,1),k,6,15,[2,1,2,1]),B(d(F,1),k,6,15,[1,2,2,1]),B(d(F,1),k,6,15,[1,1,2,2]),B(d(F,1),k,6,15,[2,1,1,2]),B(d(F,1),k,6,15,[2,2,1,1]),B(d(F,1),k,6,15,[1,2,1,2])]),n=c(Ut,ht,6,Ht(t.R,e),15,1),i=0;i<Ht(t.R,e);i++)n[i]=K0(t.R,W(t.R,e,A[i]),e);if(Q=k5(t.R,e,A,n,null)<<24>>24,Q!=3)return Q;for(o=0,L=0,f=0;f<Ht(t.R,e);f++)P=xt(t.R,e,A[f]),z(t.R,0,P)==e&&(l1(t.R,P)==129&&(L!=0&&LP(t.R,e),o=f,L=1),l1(t.R,P)==257&&(L!=0&&LP(t.R,e),o=f,L=2));if(L==0)return 3;for(r=1;r<Ht(t.R,e);r++)n[r]<n[0]&&(n[r]+=F0);if(Ht(t.R,e)==3){switch(o){case 0:(n[1]<n[2]&&n[2]-n[1]<U1||n[1]>n[2]&&n[1]-n[2]>U1)&&(L=3-L);break;case 1:n[2]-n[0]>U1&&(L=3-L);break;case 2:n[1]-n[0]<U1&&(L=3-L);}return L==1?2:1;}return D=0,n[1]<=n[2]&&n[2]<=n[3]?D=0:n[1]<=n[3]&&n[3]<=n[2]?D=1:n[2]<=n[1]&&n[1]<=n[3]?D=2:n[2]<=n[3]&&n[3]<=n[1]?D=3:n[3]<=n[1]&&n[1]<=n[2]?D=4:n[3]<=n[2]&&n[2]<=n[1]&&(D=5),s[D][o]==L?2:1;}function la(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v;if(t.g.a.length==0||t.f.a.length==0||(s=ms(t),s==0))return null;for(L=c(F,f0,7,t.f.a.length,0,2),r=0;r<t.f.a.length;r++)for(T=N(t.f,r),ut(T,15),L[r]=c(F,k,6,s+1,15,1),wU(L[r],-1),e=0;e<T.q;e++){if(o=w.Math.abs(T.w[e]),o!=0&&L[r][o]!=-1)return null;L[r][o]=e;}for(i=c(Pt,ft,6,s+1,16,1),P=0;P<t.g.a.length;P++)for(v=N(t.g,P),ut(v,15),g=0;g<v.q;g++)if(o=w.Math.abs(v.w[g]),o!=0&&!i[o]){for(f=0;f<t.f.a.length;f++)if(y=L[f][o],y!=-1){if(T=N(t.f,f),v.j[g]!=T.j[y]){i[o]=true;break;}if((v.u[g]&3)!=(T.u[y]&3)){i[o]=true;break;}for(D=0;D<v.j[g];D++)if(A=R1(v,v.i[g][D]),A==0)i[o]=true;else {for(m=v.k[g][D],n=false,Q=0;Q<T.j[y];Q++){if(h=R1(T,T.i[y][Q]),h==0){i[o]=true;break;}if(h==A){if(n=true,l=T.k[y][Q],(m<v.g&&(E8(v.p,m)||v.H[m]==8))^(l<T.g&&(E8(T.p,l)||T.H[l]==8))||!(m<v.g&&(E8(v.p,m)||v.H[m]==8))&&(dt(v,m)!=dt(T,l)||(v.F[m]&3)!=(T.F[l]&3))){i[o]=true,i[A]=true;break;}break;}}n||(i[o]=true);}}}return i;}function Ta(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(this.r=true,this.b=false,this.t=true,this.a=false,this.i=Et,this.c=t,this.o=c(U9,or,26,t.g.a.length,0,1),n=0;n<t.g.a.length;n++)pe(N(t.g,n),true),ut(N(t.g,n),15);for(P=0;P<t.f.a.length;P++)ut(N(t.f,P),15);for(K_(this,t),this.k=c(F,f0,7,t.g.a.length,0,2),r=0;r<t.g.a.length;r++)for(L=N(t.g,r),this.k[r]=c(F,k,6,L.f,15,1),i=0;i<L.f;i++)if(Q=w.Math.abs(L.w[i]),Q!=0)for(f=0;f<t.f.a.length;f++)for(o=N(t.f,f),D=0;D<o.f;D++)w.Math.abs(o.w[D])==Q&&(e=(y=pn(L,i),y+WA(L,i,y,L.C[i])-N1(L,i)-(s=pn(o,D),s+WA(o,D,s,o.C[D])-N1(o,D))),this.k[r][i]=w.Math.max(e,0));for(this.f=c(Pt,h0,12,t.f.a.length,0,2),A=0;A<t.f.a.length;A++)for(o=N(t.f,A),this.f[A]=c(Pt,ft,6,o.f,16,1),i=0;i<o.f;i++)if(Q=w.Math.abs(o.w[i]),Q!=0)for(f=0;f<t.g.a.length;f++)for(L=N(t.g,f),D=0;D<L.f;D++)w.Math.abs(L.w[D])==Q&&(hs(eb(o,i),eb(L,D))!=0||hs(Nk(o,i),Nk(L,D))!=0)&&(this.f[A][i]=true);this.s=new Ii(),this.g=c(d4,h0,20,this.o.length,0,1);}function ha(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;if(g=new LU(t.e,t.c),T=_h(g,t.f,t.d),t.a.a.length==0)return Ys(g,T);for(m=1,b=new Zt(t.a);b.a<b.c.a.length;)v=$t(b),m*=HG(v);if(m>4e6)return z1(),-m;for(e=0,i=c(F,k,6,t.a.a.length,15,1),y=c(F,k,6,t.a.a.length,15,1),D=0;D<t.a.a.length;D++)v=N(t.a,D),y[D]=(v.b=new f1(),j=c(F,k,6,v.a,15,1),p=c(Pt,ft,6,w.Math.max(v.d.length,v.c.length),16,1),tk(v,0,p,j),v.b.a.length),i[D]=e,e+=v.a;for(r=Iy,P=null,n=null,l=c(F,k,6,t.a.a.length,15,1),s=t.a.a.length!=0;s;){if(R=false,t.i!=null){for(Q=0;Q<t.a.a.length;Q++)if(SK(N(t.a,Q),l[Q],t.i)){R=true;break;}}if(!R){for(Q=0;Q<t.a.a.length;Q++)fK(N(t.a,Q),l[Q],T);if(h=Ys(g,T),r<h)for(r=h,P=c(F,k,6,e,15,1),n=c(F,k,6,e,15,1),A=0,o=0;o<t.a.a.length;o++)v=N(t.a,o),nz(v,l[o],P,A),Az(v,l[o],n,A),A+=v.a;}for(s=false,f=0;f<l.length;f++){if(++l[f],l[f]<y[f]){s=true;break;}l[f]=0;}}if(r!=Iy)for(L=t.b,f=0;f<e;f++)++L,t.f[P[f]]=L,t.d[n[f]]=L;return r;}function aj(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;for(s=new f1(),g=new f1(),n=new f1(),r=new Zt(t.d);r.a<r.c.a.length;){for(P=$t(r),i=0,n.a.length=0,f=0;f<P.e.length;f++)e=P.e[f],A=t.i[e],A!=0&&(mt(n,new Y3(P,f,A)),i+=A);if(i!=0)for(k3(n,new Z2()),Q=new Zt(n);Q.a<Q.c.a.length&&(D=$t(Q),!(i*D.b>0&&(A=w.Math.abs(i)>=w.Math.abs(D.b)?D.b:i,i-=A,mt(A<0?s:g,new Y3(P,D.a,A)),i==0))););}if(s.a.length==0||g.a.length==0)return null;for(k3(g,new K2()),k3(s,new X2()),T=new Zt(g);T.a<T.c.a.length;)for(y=$t(T),L=new Zt(s);L.a<L.c.a.length;)if(o=$t(L),y.b==-o.b)return t.i[QD(y.c,y.a)]-=y.b,t.i[QD(o.c,o.a)]-=o.b,new VQ(y.c,o.c,y.a,o.a);for(h=new Zt(g);h.a<h.c.a.length;)for(y=$t(h),L=new Zt(s);L.a<L.c.a.length;)if(o=$t(L),y.b>-o.b)return t.i[QD(y.c,y.a)]+=o.b,t.i[QD(o.c,o.a)]-=o.b,new VQ(y.c,o.c,y.a,o.a);for(l=new Zt(g);l.a<l.c.a.length;)for(y=$t(l),L=new Zt(s);L.a<L.c.a.length;)if(o=$t(L),y.b<-o.b)return t.i[QD(y.c,y.a)]-=y.b,t.i[QD(o.c,o.a)]+=y.b,new VQ(y.c,o.c,y.a,o.a);return null;}function sn(t,e,A){var n,P,r,i,f,D,Q;if(t.P=false,t.F=new f1(),t.a=new f1(),ki(t.O.a),!t.H||!t.g||t.g.f-t.p>t.H.f||t.g.g-t.q>t.H.g||t.g.f==0)return 0;for(e==6&&(t.N=63),yO(t,A),n=c(Pt,ft,6,t.H.f,16,1),t.G=c(F,k,6,t.g.f,15,1),wU(t.G,-1),f=c(F,k,6,t.A,15,1),V9(f,f.length,-1),r=0;!t.P;){if(t.w!=0){if(Q=t.u[r]==-1?t.H.f:ue(t.H,t.G[t.u[r]]),++f[r],f[r]==Q){if(f[r]=-1,r==0)break;--r,t.t[r]||(n[t.G[t.s[r]]]=false);continue;}if(t.u[r]==-1)n[f[r]]||ny(t,f[r],t.s[r])&&(t.G[t.s[r]]=f[r],n[f[r]]=true,++r);else {if(W(t.H,t.G[t.u[r]],f[r])>=t.H.f)continue;P=W(t.H,t.G[t.u[r]],f[r]),t.t[r]?P==t.G[t.s[r]]&&zs(t,xt(t.H,t.G[t.u[r]],f[r]),t.v[r])&&++r:n[P]||ny(t,P,t.s[r])&&zs(t,xt(t.H,t.G[t.u[r]],f[r]),t.v[r])&&(n[P]=true,t.G[t.s[r]]=P,++r);}}if(r==t.w){if(zj(t,-1)&&jR(t,-1)&&lR(t,n,-1)){for(D=false,i=0;i<t.d;i++)if(q$(t,n,f,i)){D=true;break;}if(e==1&&!D||!D&&(v$(t,e),e==2))return 1;}if(r==0)break;--r,t.t[r]||(n[t.G[t.s[r]]]=false);}}return lZ(t),t.F.a.length;}function ca(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt;for($=xn(t.e),a=N($.k,e).length,et=N($.j,e),_=N($.k,e),I=true,g=1;g<a;g++)if(B9(t.b,_[g])!=B9(t.b,_[0])){I=false;break;}if(I){for(r=(a-2)*b2/a,m=0;m<a;m++)Sh(t,et[m],_[m],_[m==0?a-1:m-1],r);return;}for(M=c(Se,PA,6,a,15,1),P=0,v=0;v<a;v++)M[v]=$1(t.e,et[v])==0?1.9106119386631804:$1(t.e,et[v])==1?2.094499897810209:b2,P+=M[v];for(n=((a-2)*b2-P)/a,b=0;b<a;b++)M[b]+=n;for(o=c(Se,PA,6,a,15,1),R=1;R<a;R++)o[R]=o[R-1]+b2-M[R];for(f=c(Se,PA,6,a,15,1),i=0;i<100;i++){for(st=0,Tt=0,m=0;m<a;m++)st+=B9(t.b,_[m])*w.Math.sin(o[m]),Tt+=B9(t.b,_[m])*w.Math.cos(o[m]);for(y=bA(0,0,st,Tt),T=w.Math.sqrt(st*st+Tt*Tt),tt=-1,x=0,j=0;j<a;j++)p=j==0?a-1:j-1,S=j+1==a?0:j+1,D=ze(o[j],o[p]),Q=ze(o[S],o[j]),X=ze(M[j],M[S]),f[j]=2*D-2*Q+2*X,l=w.Math.cos(o[j]-S6-y),s=T*l-Yp*f[j],w.Math.abs(s)>w.Math.abs(x)&&(x=s,tt=j);L=w.Math.exp(-5*i/100),o[tt]+=L*x;}for(h=0;h<a;h++)p=h==0?a-1:h-1,A=o[p]+b2-o[h],A>F0&&(A-=F0),Sh(t,et[h],_[p],_[h],A);}function tp(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(t.j=c(F,k,6,t.q,15,1),t.e=c(F,k,6,t.q,15,1),t.i=c(F,f0,7,t.q,0,2),t.k=c(F,f0,7,t.q,0,2),t.n=c(F,f0,7,t.q,0,2),t.o=c(F,k,6,t.f,15,1),o=c(F,k,6,t.q,15,1),i=0;i<t.r;i++)++o[t.D[0][i]],++o[t.D[1][i]];for(n=0;n<t.q;n++)t.i[n]=c(F,k,6,o[n],15,1),t.k[n]=c(F,k,6,o[n],15,1),t.n[n]=c(F,k,6,o[n],15,1);for(s=false,Q=0;Q<t.g;Q++){if(y=dt(t,Q),y==0){s=true;continue;}for(L=0;L<2;L++)A=t.D[L][Q],e=t.e[A],t.n[A][e]=y,t.i[A][e]=t.D[1-L][Q],t.k[A][e]=Q,++t.e[A],++t.j[A],A<t.f&&y>1&&(t.o[A]+=y-1);}for(D=0;D<t.g;D++)if(t.H[D]==8)for(L=0;L<2;L++)A=t.D[L][D],A<t.f&&t.o[A]==0&&(t.o[A]=1);for(f=t.g;f<t.r;f++){if(y=dt(t,f),y==0){s=true;continue;}for(L=0;L<2;L++)A=t.D[L][f],e=t.e[A],t.n[A][e]=y,t.i[A][e]=t.D[1-L][f],t.k[A][e]=f,++t.e[A],t.D[1-L][f]<t.f&&++t.j[A];}if(s){for(e=c(F,k,6,t.q,15,1),P=0;P<t.q;P++)e[P]=t.e[P];for(r=0;r<t.r;r++)if(y=dt(t,r),y==0)for(L=0;L<2;L++)A=t.D[L][r],t.n[A][e[A]]=y,t.i[A][e[A]]=t.D[1-L][r],t.k[A][e[A]]=r,++e[A];}}function wa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T;t.b|=e;try{for(l=A2("torsionID.txt"),n=(e&1)==0?null:A2("torsionAngle.txt"),s=(e&1)==0?null:A2("torsionRange.txt"),f=(e&1)==0?null:A2("torsionFrequency.txt"),r=(e&2)==0?null:A2("torsionBins.txt"),T=Y1(l);T!=null;){if(y=Te(t.c,T),y||(y=new jw(T.endsWith("<")||T.endsWith(">")?0:T.endsWith("-")||T.endsWith("+")?1:T.endsWith("=")?3:2),Ye(t.c,T,y)),n)for(A=o8(Y1(n),","),y.a=c(zt,_t,6,A.length,15,1),Q=0;Q<A.length;Q++)y.a[Q]=Q1(A[Q],sy,32767)<<16>>16;if(s)for(L=o8(Y1(s),","),y.d=k1(zt,[ee,_t],[16,6],15,[L.length,2],2),Q=0;Q<L.length;Q++)o=L[Q].indexOf(k0(45),1),y.d[Q][0]=Q1(oA(L[Q],0,o),sy,32767)<<16>>16,y.d[Q][1]=Q1(HD(L[Q],o+1),sy,32767)<<16>>16;if(f)for(D=o8(Y1(f),","),y.c=c(zt,_t,6,D.length,15,1),Q=0;Q<D.length;Q++)y.c[Q]=Q1(D[Q],-128,127)<<24>>24;if(r)for(P=o8(Y1(r),","),y.b=c(E,q,6,P.length,15,1),Q=0;Q<P.length;Q++)y.b[Q]=Q1(P[Q],-128,127)<<24>>24;T=Y1(l);}}catch(h){if(h=a1(h),Xt(h,75))i=h,X9(i,(z1(),ci));else throw At(h);}}function ui(t){var e,A,n,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;if(t.R.f!=0&&!t.G){for(t.I=0,R=0,A=1;A<t.R.f;A++)t.f[A]>t.f[R]&&(R=A);for(n=c(Pt,ft,6,t.R.f,16,1),i=c(Pt,ft,6,t.R.g,16,1),t.H=c(F,k,6,t.R.f,15,1),t.B=c(F,k,6,t.R.f,15,1),t.F=c(F,k,6,t.R.f,15,1),t.C=c(F,k,6,t.R.g,15,1),t.B[0]=R,t.H[R]=0,n[R]=true,D=0,Q=1,o=0;D<t.R.f;)if(D<Q){for(;;){for(l=0,T=0,s=-1,e=t.B[D],h=0;h<ue(t.R,e);h++)(h<O(t.R,e)||h>=Ht(t.R,e))&&(f=W(t.R,e,h),!n[f]&&t.f[f]>s&&(l=f,T=xt(t.R,e,h),s=t.f[f]));if(s==-1)break;t.H[l]=Q,t.F[Q]=D,t.B[Q++]=l,t.C[o++]=T,n[l]=true,i[T]=true;}++D;}else {for(y=0,s=-1,e=0;e<t.R.f;e++)!n[e]&&t.f[e]>s&&(y=e,s=t.f[e]);t.H[y]=Q,t.F[Q]=-1,t.B[Q++]=y,n[y]=true;}for(t.D=c(F,k,6,2*(t.R.g-o),15,1);;){for(m=t.R.M,v=t.R.M,b=-1,r=0;r<t.R.g;r++)i[r]||(t.H[z(t.R,0,r)]<t.H[z(t.R,1,r)]?(g=t.H[z(t.R,0,r)],L=t.H[z(t.R,1,r)]):(g=t.H[z(t.R,1,r)],L=t.H[z(t.R,0,r)]),(g<m||g==m&&L<v)&&(m=g,v=L,b=r));if(b==-1)break;i[b]=true,t.C[o++]=b,t.D[2*t.I]=m,t.D[2*t.I+1]=v,++t.I;}t.G=true;}}function ep(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j;if(t==null||t.length==0||(j=t.indexOf(k0(33)),j==-1))return null;for(l=false,L=j!=0?0:t.length==1?-1:1,v=0,D=0,i?ev(i):i=new P8();L!=-1;)L>j&&(l=true),Q=t.indexOf(k0(32),L),j>L&&(Q>j||Q==-1)&&(Q=j),o=Q==-1?(Gt(L,t.length+1),t.substr(L)):(Ct(L,Q,t.length),t.substr(L,Q-L)),L=Q==-1||Q==t.length-1?-1:Q+1,m=null,e!=null&&e.length!=0&&(Q=e.indexOf(k0(32),v),Q==-1?m=(Gt(v,e.length+1),e.substr(v)):(m=(Ct(v,Q,e.length),e.substr(v,Q-v)),v=Q+1)),f=null,A!=null&&A.length!=0&&(Q=A.indexOf(k0(32),D),Q==-1?f=(Gt(D,A.length+1),A.substr(D)):(f=(Ct(D,Q,A.length),A.substr(D,Q-D)),D=Q+1)),R=new GA(r),b=o==null?null:Ls(R,KA((h=o,c0(),h)),f==null?null:KA((g=f,g)),0),m!=null&&jY(R,KA((T=m,c0(),T))),l?(mt(i.f,b),i.d=-1):(mt(i.g,b),i.d=-1);if(n!=null&&n.length!=0&&SS(i,new $k(n)),P!=null&&P.length!=0){for(R=new GA(r),s=0,y=P.indexOf(k0(43));y!=-1;)Wl(i,Zi(R,(Ct(s,y,P.length),P.substr(s,y-s)))),s=y+1,y=P.indexOf(k0(43),s);Wl(i,Zi(R,(Gt(s,P.length+1),P.substr(s))));}return i;}function ga(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S;for(Q=c(F,k,6,t.j.f,15,1),g=c(F,k,6,t.d.f,15,1),o=c(F,k,6,t.j.f,15,1),v=c(F,k,6,t.d.f,15,1),Q[0]=e.b,o[e.b]=e.b,g[0]=e.a,v[e.a]=e.a,t.n[e.b]==0&&(++t.c,t.n[e.b]=t.c,t.f[e.a]=t.c),f=0,L=0;f<=L;){for(j=Q[f],b=g[f],h=k1(F,[f0,k],[7,6],15,[O(t.j,j),O(t.d,b)],2),y=0;y<O(t.j,j);y++)if(R=W(t.j,j,y),t.n[R]==0)for(r=mv(t.j,xt(t.j,j,y)),T=0;T<O(t.d,b);T++)m=W(t.d,b,T),t.f[m]==0&&K(t.j,R)==K(t.d,m)&&(i=xt(t.d,b,T),S=LX(t,j,R,b,m),r==mv(t.d,i)||S!=0?G_(t,j,R,b,m)&&(D=hb(t,j,R,b,m),p=w.Math.max(S,D),p!=0&&(l=iW(t,o[j],j,R,v[b],b,m),yW(t,j,R,b,m,p,l)&&(h[y][T]=p,l&&(h[y][T]+=64),Md(o[j],j,R,t.o)==Md(v[b],b,m,t.g)&&(h[y][T]+=128),Gv(t.j,R)==Gv(t.d,m)&&(h[y][T]+=1)))):hb(t,j,R,b,m)==q1&&(h[y][T]=768));for(;;){for(A=0,P=-1,n=-1,s=0;s<h.length;s++)if(R=W(t.j,j,s),t.n[R]==0)for(T=0;T<h[s].length;T++)m=W(t.d,b,T),t.f[m]==0&&A<h[s][T]&&(A=h[s][T],P=R,n=m);if(A==0)break;++L,Q[L]=P,o[P]=Q[f],g[L]=n,v[n]=g[f],++t.c,t.n[P]=t.c,t.f[n]=t.c;}++f;}return L+1;}function Ap(){Ap=d1,Bo=B(d(zt,1),_t,6,15,[-1,-1,-1,0,0,1,2,3,4,5,-1,0,0,0,6,7,8,9,-1,0,0,10,10,10,10,10,10,10,10,10,10,1,11,11,12,13,-1,0,0,10,10,10,10,10,10,10,10,10,10,0,0,0,11,14,-1,0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,10,10,10,10,10,10,10,10,1,1,1,1,-1,-1,-1,-1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]),w4=B(d(zt,1),_t,6,15,[-1,-1,-1,0,0,0,2,5,5,5,-1,0,0,0,0,9,9,9,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);}function da(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g;P=e.a,y=e.g,Q=gt(V(U0(t.k,P),1),0),r=HA(t.k,P),L=r!=null?sX(t,P,r,n):Q?"*":ji(t.k,P),!Q&&r==null&&Bn(t.k,P)&&(t.j&4)==0&&($1(t.k,P)!=0||kr(t.k,P)==-1&&mA(t.k,P)==0)&&(L=L.toLowerCase()),e.f&&(A.a+="("),y!=-1&&Gj(t,u1(t.k,e.a,e.g),e.g,A),i=b1(t.k,P),i==0&&(t.j&1)!=0&&(f=V(U0(t.k,P),i9),G(f,pf)==0?i=-1:G(f,jf)==0&&(i=1)),o=le(t.k,P),s=(t.j&2)!=0?R1(t.k,P):0,l=(t.j&1)!=0?za(t,P,n):null,g=!Q&&!PN(K(t.k,P))||r!=null||(d0(t.k,P)==1||d0(t.k,P)==2)&&(h=ne(t.k,P)-1,!(h!=-1&&t.i[h][VA(t.k,P)]<=1))&&(K(t.k,P)!=7||b1(t.k,P)>0)||Bn(t.k,P)&&$1(t.k,P)==0&&(t.j&4)==0||i!=0||o!=0||s!=0||kr(t.k,P)!=-1||mA(t.k,P)!=0||l!=null,g&&(A.a+="["),o!=0&&(A.a+=o),A.a+=""+L,(d0(t.k,P)==1||d0(t.k,P)==2)&&(T=ne(t.k,P)-1,!(T!=-1&&t.i[T][VA(t.k,P)]<=1))&&(K(t.k,P)!=7||b1(t.k,P)>0)&&J(A,g$(t,P,y)),(t.j&1)==0&&g&&(D=od(t.k,P),D==1?A.a+="H":D>1&&(A.a+="H"+D)),i!=0&&(A.a+=String.fromCharCode(i>0?43:45),w.Math.abs(i)>1&&h3(A,w.Math.abs(i))),l!=null&&(A.a+=""+l),s!=0&&(A.a+=":",A.a+=s),g&&(A.a+="]"),aY(t,e,A),e.e&&(A.a+=")");}function Ba(t,e,A,n){var P,r,i,f,Q;if(i=1,G(t,0)==0)return "0";if(G(t,0)!=0){for(;n0(z9(t,10),0);)t=Cn(t,10),++e;for(i=0,f=t;G(f,0)!=0;f=Cn(f,10))++i;}return r=new V0(),G(t,0)<0&&(r.a+="-"),w.Math.max(0,A-i),P=""+he(G(t,0)<0?p0(t):t),e==0?(r.a+=P,false):e>0?(Q=e>4,Q?(i==1?(r.a+=P,A>1&&(r.a+=".",r.a+="0")):(J(r,(Ct(0,1,P.length),P.substr(0,1))),r.a+=".",J(r,(Gt(1,P.length+1),P.substr(1))),false),r.a+="e",r.a+=""+(e+i-1)):(r.a+=P,J(r,pP(e)),false)):-e<i?(J(r,(Ct(0,i+e,P.length),P.substr(0,i+e))),r.a+=".",J(r,(Gt(i+e,P.length+1),P.substr(i+e))),false):-e==i?(r.a+="0.",r.a+=P,false):e+i<-2?(i==1?(r.a+=P,A>1&&(r.a+=".",r.a+="0")):(Ge(r,(Gt(0,P.length),P.charCodeAt(0))),r.a+=".",J(r,(Gt(1,P.length+1),P.substr(1))),false),r.a+="e-",r.a+=""+(1-e-i)):(r.a+="0.",J(r,pP(-e-i)),r.a+=P,false),r.a;}function va(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;if(r=ZA(t.V,e,A),i=wf(t.V,e,A),t.w==2){if(t.V.K){if(r!=-1)nF(t,r);else if(i!=-1)Qv(t,i);else if(t.v){if(!t.Z){for(s=0;s<t.V.q;s++)gP(t.V,s,false);for(P=new Zt(t.I);P.a<P.c.a.length;)n=$t(P),n.g=false;}t.v.g=true,t.eb=w.Math.max(t.eb,1),e1(t.k);}}else if(g=-1,r!=-1?g=r:i!=-1&&(g=z(t.V,0,i)),g!=-1||t.v){if(!t.Z){for(s=0;s<t.V.q;s++)gP(t.V,s,false);if(t.I)for(Q=new Zt(t.I);Q.a<Q.c.a.length;)D=$t(Q),D.g=false;}if(g!=-1){if((t.U&1)!=0)for(o=t.M[g],s=0;s<t.V.q;s++)t.M[s]==o&&gP(t.V,s,true);else for(L=Wm(t.V,g,false),s=0;s<L.length;s++)gP(t.V,L[s],true);}else t.v.g=true;t.eb=w.Math.max(t.eb,1),e1(t.k);}}else if(t.w==18&&(o=-2,(t.U&1)!=0&&(o=zz(t)),o!=-1)){for(h=Et,T=P1,y=0;y<t.V.q;y++)(o==-2||t.M[y]==o)&&(h>kt(t.V,y)&&(h=kt(t.V,y)),T<kt(t.V,y)&&(T=kt(t.V,y)));if(T>h){for(f=(T+h)/2,l=0;l<t.V.q;l++)(o==-2||t.M[l]==o)&&ve(t.V,l,2*f-kt(t.V,l));for(s=0;s<t.V.r;s++)if(o==-2||t.M[z(t.V,0,s)]==o)switch(l1(t.V,s)){case 257:w0(t.V,s,129);break;case 129:w0(t.V,s,257);}}t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true));}}function np(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(o=t.Q,L=t.F,(t.G&En)!=0&&(t.Q=-6,t.F=fy,Z1(t,1)),t.o=c(Y4,e0,56,t.L.q,0,1),D=0;D<t.L.r;D++)(l1(t.L,D)==2||l1(t.L,D)==386||l1(t.L,D)==8)&&Lp(t,D);for(Q=0;Q<t.L.r;Q++)l1(t.L,Q)!=2&&l1(t.L,Q)!=386&&l1(t.L,Q)!=8&&Lp(t,Q);if((t.G&64)==0)for(f=0;f<t.L.r;f++)wu(t.L,f)!=0&&(P=null,wu(t.L,f)==1||wu(t.L,f)==2?(dt(t.L,f)==2||hP(t.L,f)==0||e[hP(t.L,f)][Wi(t.L,f)]>1)&&(wu(t.L,f)==1?P=dt(t.L,f)==2?"E":gU(t.L,f)?"p":"P":P=dt(t.L,f)==2?"Z":gU(t.L,f)?"m":"M"):P="?",P!=null&&(t.Cb((t.X*2+1)/3|0),Z1(t,vr(t.L,f)?-3:t.L.O==1||(t.G&C0)!=0?t.Q:448),A=z(t.L,0,f),n=z(t.L,1,f),y=(X1(t.R,kt(t.L,A))+X1(t.R,kt(t.L,n)))/2,l=(K1(t.R,pt(t.L,A))+K1(t.R,pt(t.L,n)))/2,r=(X1(t.R,kt(t.L,A))-X1(t.R,kt(t.L,n)))/3,i=(K1(t.R,pt(t.L,A))-K1(t.R,pt(t.L,n)))/3,HP(t,y+i,l-r,P,true),Z1(t,t.Q),t.Cb(t.X)));if((t.G&4)!=0){for(t.Cb((t.X*2+1)/3|0),Z1(t,384),f=0;f<t.L.r;f++)A=z(t.L,0,f),n=z(t.L,1,f),s=O8(t.L,f)?"d":_e(t.L,f)?"a":"",y=(X1(t.R,kt(t.L,A))+X1(t.R,kt(t.L,n)))/2,l=(K1(t.R,pt(t.L,A))+K1(t.R,pt(t.L,n)))/2,HP(t,y,l,s+(""+f),true);Z1(t,t.Q),t.Cb(t.X);}(t.G&En)!=0&&(t.Q=o,t.F=L);}function Pp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j;for(ut(t,1),A&&(e=true),D=0;D<t.r;D++)if(Q=dt(t,D),Q==1||Q==2){if(t.s[t.D[0][D]]>0&&t.s[t.D[1][D]]<0)r=t.D[0][D],i=t.D[1][D];else if(t.s[t.D[0][D]]<0&&t.s[t.D[1][D]]>0)r=t.D[1][D],i=t.D[0][D];else continue;if($0(t,r)||$0(t,i)||t.C[r]<9&&N1(t,r)>3||t.C[i]<9&&N1(t,i)>3)continue;L=It(t,r)!=0,t.s[r]-=1,t.s[i]+=1,L||(m=t.H[D],Q==1?t.H[D]=2:t.H[D]=4,(m==129||m==257)&&(j=t.D[0][D],g=Ns(t,j,false),t.D[0][g]!=j&&(t.D[1][g]=t.D[0][g],t.D[0][g]=j))),t.T=0;}for(v=0,T=0,y=0,P=0;P<t.q;P++)v+=t.s[P],t.s[P]<0&&!Wv(t,P)&&(++T,tA(t,P)&&(y-=t.s[P]));if(!e&&v!=0)throw At(new C1("molecule's overall charges are not balanced"));for(ut(t,1),b=0,R=A?v+y:y,f=0;f<t.q;f++)t.s[f]>0&&!IO(t,f)&&tA(t,f)&&(o=w.Math.min(It(t,f),t.s[f]),o!=0&&R>=o&&(v-=o,b-=o,R-=o,t.s[f]-=o,t.T&=1));if(h=A?v:b,h<0){for(l=c(F,k,6,T,15,1),T=0,r=0;r<t.q;r++)t.s[r]<0&&!Wv(t,r)&&(l[T++]=(t.C[r]<<22)+r);for(l.sort(me(D0.prototype.gd,D0,[])),s=l.length-1;h<0&&s>=l.length-T;s--)n=l[s]&x0,tA(t,n)&&(o=w.Math.min(-h,-t.s[n]),v+=o,h+=o,t.s[n]+=o,t.T&=1);}return v;}function rp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;for(o=c(it,Dt,2,t.g.a.length+t.f.a.length,6,1),l=c(it,Dt,2,t.g.a.length+t.f.a.length,6,1),r=c(it,Dt,2,t.g.a.length+t.f.a.length,6,1),D=0;D<t.g.a.length+t.f.a.length;D++){if(g=D<t.g.a.length?N(t.g,D):N(t.f,D-t.g.a.length),g.K&&D<t.g.a.length)for(n=0;n<g.q;n++)T1(g,n,h8,false);if(P=new FA(g),o[D]=ke(P),o[D]==null)return null;l[D]=zd(P),r[D]=qu(P,e);}for(L=new V0(),i=new V0(),T=new V0(),Q=0;Q<t.g.a.length;Q++){if(s=Q,A)for(h="",s=-1,y=0;y<t.g.a.length;y++)Yr(h,o[y])<0&&(h=o[y],s=y);Q>0&&(L.a+=" ",T.a+=" ",i.a+=" "),L.a+=""+o[s],T.a+=""+l[s],i.a+=""+r[s],o[s]="";}for(L.a+="!",t.f.a.length!=0&&t.g.a.length!=0&&(T.a+=" ",i.a+=" "),f=t.g.a.length;f<t.g.a.length+t.f.a.length;f++){if(s=f,A)for(h="",s=-1,y=t.g.a.length;y<t.g.a.length+t.f.a.length;y++)Yr(h,o[y])<0&&(h=o[y],s=y);f>t.g.a.length&&(L.a+=" ",T.a+=" ",i.a+=" "),L.a+=""+o[s],T.a+=""+l[s],i.a+=""+r[s],o[s]="";}return m=c(it,Dt,2,5,6,1),m[0]=L.a,T.a.length>t.g.a.length+t.f.a.length-1&&(m[1]=T.a),i.a.length>t.g.a.length+t.f.a.length-1&&(m[2]=i.a),t.b&&(m[3]=Mm(t.b)),t.a.a.length!=0&&(m[4]=lY(t,e)),m;}function ip(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;for(this.i=t,this.v=t.s,this.u=t.q,this.C=new aR(this.u,this.v),r=0,o=this.v,y=0,h=o.length;y<h;++y)D=o[y],r=w.Math.max(r,w.Math.max(1+D.i,1+D.j));for(e=c(F,k,6,r,15,1),L=this.v,l=0,g=L.length;l<g;++l)D=L[l],++e[D.i],++e[D.j];for(this.j=c(F,f0,7,e.length,0,2),this.k=c(F,f0,7,e.length,0,2),f=0;f<e.length;f++)this.j[f]=c(F,k,6,e[f],15,1),this.k[f]=c(F,k,6,e[f],15,1);for(V9(e,e.length,0),i=0;i<this.v.length;i++)n=gg(this.v[i],0),P=gg(this.v[i],1),this.j[n][e[n]]=P,this.j[P][e[P]]=n,this.k[n][e[n]]=i,this.k[P][e[P]]=i,++e[n],++e[P];for(this.o=c(F,k,6,r,15,1),this.n=c(F,k,6,r,15,1),this.q=c(F,k,6,r,15,1),this.p=c(Pt,ft,6,r,16,1),this.f=c(F,nA,28,r,0,3),A=1;A<r;A++)for(this.f[A]=c(F,f0,7,A,0,2),P=0;P<A;P++)this.f[A][P]=OZ(this,A,P);for(this.t=1,Q=this.v,s=0,T=Q.length;s<T;++s)D=Q[s],this.t*=D.d.length;for(v=this.u,b=0,R=v.length;b<R;++b)m=v[b],this.t*=m.b.length;this.t<=0&&(this.t=Et),this.D=new Yg(),this.w=new j3((L1(new Fw()),new cw())),this.A=new Ri(),this.g=0,this.B=0,this.r=3,this.F=false,this.s=w.Math.min(eP,this.t);}function Fa(t,e){var A,n;return n={},A=t.B[e],n.aromatic=E1(V(A,2),0),n.notAromatic=E1(V(A,4),0),n.notChain=E1(V(A,8),0),n.not2RingBonds=E1(V(A,16),0),n.not3RingBonds=E1(V(A,32),0),n.not4RingBonds=E1(V(A,64),0),n.noMoreNeighbours=E1(V(A,q1),0),n.moreNeighbours=E1(V(A,C0),0),n.matchStereo=E1(V(A,de),0),n.not0PiElectrons=E1(V(A,En),0),n.not1PiElectron=E1(V(A,L8),0),n.not2PiElectrons=E1(V(A,u0),0),n.not0Hydrogen=E1(V(A,128),0),n.not1Hydrogen=E1(V(A,256),0),n.not2Hydrogen=E1(V(A,512),0),n.not3Hydrogen=E1(V(A,ie),0),n.not0Neighbours=E1(V(A,I0),0),n.not1Neighbour=E1(V(A,l8),0),n.not2Neighbours=E1(V(A,y8),0),n.not3Neighbours=E1(V(A,T8),0),n.not4Neighbours=E1(V(A,qA),0),n.notChargeNeg=E1(V(A,Po),0),n.notCharge0=E1(V(A,Tn),0),n.noChargePos=E1(V(A,134217728),0),n.ringSize0=E1(V(A,U8),0),n.ringSize3=E1(V(A,rr),0),n.ringSize4=E1(V(A,ir),0),n.ringSize5=E1(V(A,fr),0),n.ringSize6=E1(V(A,Dr),0),n.ringSize7=E1(V(A,ur),0),n.ringSizeLarge=E1(V(A,Rf),0),n;}function ma(t,e){i8();var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;for(g=c(Pt,ft,6,e.g,16,1),R=(ut(e,7),e.p),h=c(Pt,ft,6,R.j.a.length,16,1),Xs(R,h,c(Pt,ft,6,R.j.a.length,16,1),c(F,k,6,R.j.a.length,15,1),true),b=0;b<R.j.a.length;b++)if(h[b])for(T=0;T<N(R.k,b).length;T++)g[N(R.k,b)[T]]=true;for(P=c(F,k,6,2,15,1),i=0;i<e.g;i++)if(D=e.D[0][i],Q=e.D[1][i],P[0]=e.C[D],P[1]=e.C[Q],g[i]=g[i]|(i<e.g&&je(e.p,i)||dt(e,i)==2&&P[0]<=8&&P[1]<=8&&e.o[D]==1&&e.o[Q]==1&&e.e[D]>1&&e.e[Q]>1),!g[i]&&dt(e,i)==1){for(l=0;l<2;l++)if((P[l]==7||P[l]==8)&&P[1-l]==6){for(o=e.D[1-l][i],v=0;v<e.j[o];v++)if(e.n[o][v]==2&&(L=e.i[o][v],e.C[L]==7||e.C[L]==8||e.C[L]==16)){g[i]=true;break;}}}for(m=c(Pt,ft,6,e.f,16,1),f=0;f<e.g;f++)g[f]&&(m[e.D[0][f]]=true,m[e.D[1][f]]=true);for(y=c(F,k,6,e.q,15,1),r=0;r<e.g;r++)if(g[r]){for(y[0]=e.D[0][r],s=YZ(y,g,e),n=c(F,k,6,s,15,1),l=0;l<s;l++)n[l]=y[l];mt(t,new Gh(n,e));}for(A=0;A<e.f;A++)if(!m[A]&&(e.C[A]==5&&e.s[A]==0&&e.e[A]<=3||e.C[A]<=8&&e.o[A]==1&&e.e[A]>1||EP(e,A,true)&&e.o[A]!=2&&e.e[A]>1)){for(n=c(F,k,6,1+e.e[A],15,1),l=0;l<e.e[A];l++)n[l]=e.i[A][l];n[e.e[A]]=A,mt(t,new Gh(n,e));}}function ka(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M;for(v=c(Pt,ft,6,t.j.f,16,1),I=0;I<e.j.a.length;I++)if(x=N(e.k,I).length,(x==3||x==5||x==6||x==7)&&t.i[I])for(n=N(e.j,I),P=0,r=n.length;P<r;++P)A=n[P],v[A]=true;for(s=c(F,k,6,t.j.f,15,1),l=c(Pt,ft,6,t.j.f,16,1),Q=0;Q<t.j.g;Q++)i=z(t.j,0,Q),f=z(t.j,1,Q),!v[i]&&!v[f]&&(t.e[Q]&&(++s[i],++s[f]),l1(t.j,Q)==16&&(l[i]=true,l[f]=true));for(S=c(F,k,6,t.j.f,15,1),y=c(F,k,6,t.j.f,15,1),M=0;M<t.j.f;M++)if(s[M]==1)for(y[0]=M,L=0,T=0;L<=T;){for(h=0;h<O(t.j,y[L]);h++)if(t.e[xt(t.j,y[L],h)]&&(o=W(t.j,y[L],h),(L==0||o!=y[L-1])&&s[o]!=0)){if(y[++T]=o,(s[o]&1)!=0){for(R=1;R<T;R+=2)S[y[R]]=-1;T=0;}break;}++L;}for(D=c(Pt,ft,6,t.j.f,16,1),tt=0;tt<t.j.f;tt++)if(!D[tt]&&s[tt]!=0){for(y[0]=tt,D[tt]=true,L=0,T=0;L<=T;){for(h=0;h<O(t.j,y[L]);h++)t.e[xt(t.j,y[L],h)]&&(o=W(t.j,y[L],h),D[o]||(y[++T]=o,D[o]=true));++L;}if((T&1)==0){for(g=0;g<=T;g++)S[y[g]]==0&&(S[y[g]]=pj(t,y[g],false));for(b=true,m=0;m<=T;m++)if(S[y[m]]<=0&&!Lf(t,y[m],false)){b=false;break;}if(b){for(p=0,j=-1,h=0;h<=T;h++)p<S[y[h]]&&(p=S[y[h]],j=y[h]);p>0&&(pj(t,j,true),Af(t,j));}}}}function fp(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T;P=new s1(),D=new s1(),o=new c9(),Q=new c9(),i=z(t.L,0,A),f=z(t.L,1,A),n&&(s=e.a,e.a=e.b,e.b=s,s=e.c,e.c=e.d,e.d=s,y=i,i=f,f=y),cA(t,e)&&(fA(t.L,A)?(P.a=e.a,P.c=e.c,P.b=e.b,P.d=e.d,L=n?-x5(t.L,A):x5(t.L,A),L==0&&(L=1),Df(t,e.b-e.a,e.d-e.c,o),L>0?(D.a=e.a+o.a,D.c=e.c+o.b,D.b=e.b+o.a,D.d=e.d+o.b,(ii(t,i,f,1,Q)||O(t.L,i)>1)&&(D.a+=Q.a+o.b,D.c+=Q.b-o.a)):(D.a=e.a-o.a,D.c=e.c-o.b,D.b=e.b-o.a,D.d=e.d-o.b,(ii(t,i,f,-1,Q)||O(t.L,i)>1)&&(D.a+=Q.a+o.b,D.c+=Q.b-o.a)),l1(t.L,A)==386&&iL(P,D),cA(t,P)&&Hn(t,P,i,f),l1(t.L,A)==8?cA(t,D)&&EQ(t,D,i,f):cA(t,D)&&Hn(t,D,i,f)):(Df(t,e.b-e.a,e.d-e.c,o),l=o.a/2,T=o.b/2,r=false,P.a=e.a+l,P.c=e.c+T,P.b=e.b+l,P.d=e.d+T,O(t.L,i)>1&&(ii(t,i,f,1,Q)?(P.a+=Q.a,P.c+=Q.b,O(t.L,i)==2&&(Q.a!=0||Q.b!=0)&&(P.a+=o.b,P.c-=o.a)):t.o[i]=new w3(P.a,P.c)),D.a=e.a-l,D.c=e.c-T,D.b=e.b-l,D.d=e.d-T,O(t.L,i)>1&&(ii(t,i,f,0,Q)?(D.a+=Q.a,D.c+=Q.b,O(t.L,i)==2&&(Q.a!=0||Q.b!=0)&&(D.a+=o.b,D.c-=o.a)):(t.o[i]=new w3(D.a,D.c),r=true)),l1(t.L,A)==386&&iL(P,D),l1(t.L,A)==8?r?(EQ(t,P,i,f),Hn(t,D,i,f)):(Hn(t,P,i,f),EQ(t,D,i,f)):(Hn(t,P,i,f),Hn(t,D,i,f))));}function ba(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;this.i=t,this.g=7,this.j=new f1(),this.k=new f1(),this.b=new f1(),this.a=c(F,k,6,this.i.f,15,1),this.c=c(F,k,6,this.i.g,15,1),this.i.$b(1),s=c(Pt,ft,6,this.i.f,16,1),y=c(Pt,ft,6,this.i.g,16,1);do for(i=false,A=0;A<this.i.f;A++)if(!s[A]){for(h=0,L=0;L<O(this.i,A);L++)s[W(this.i,A,L)]||++h;if(h<2){for(s[A]=true,o=0;o<O(this.i,A);o++)y[xt(this.i,A,o)]=true;i=true;}}while(i);for(m=0;m<this.i.f&&s[m];)++m;if(m!=this.i.f){for(D=c(F,k,6,this.i.f,15,1),D[0]=m,T=c(F,k,6,this.i.f,15,1),T[0]=-1,f=c(F,k,6,this.i.f,15,1),f[m]=1,r=0,Q=0,l=1;r<=Q;){for(o=0;o<O(this.i,D[r]);o++)if(P=W(this.i,D[r],o),P!=T[D[r]]){if(f[P]!=0){lW(this,xt(this.i,D[r],o),s);continue;}s[P]||(f[P]=l,T[P]=D[r],D[++Q]=P);}if(++r,r>Q){for(A=0;A<this.i.f;A++)if(f[A]==0&&!s[A]){f[A]=++l,D[++Q]=A,T[A]=-1;break;}}}if((e&4)!=0&&(this.e=c(Pt,ft,6,this.j.a.length,16,1),this.f=c(Pt,ft,6,this.j.a.length,16,1),this.d=c(F,k,6,this.j.a.length,15,1),Xs(this,this.e,this.f,this.d,(e&8)!=0),O_(this)),(e&2)!=0)for(n=0;n<this.i.g;n++)!y[n]&&dt(this.i,n)!=0&&(g=EW(this,n,s),g!=null&&wb(this,g,Ok(this,g)));}}function Ra(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a;for(v=c(F,k,6,P,15,1),b=c(F,k,6,P,15,1),T=0;T<P;T++)v[T]=r8(e,n[T]),b[T]=r8(A,n[T]);for(tt=0,X=0,M=0,et=0,h=0;h<P;h++)tt+=e.a[v[h]],X+=e.b[v[h]],M+=A.a[b[h]],et+=A.b[b[h]];for(tt/=P,X/=P,M/=P,et/=P,rv(A,tt-M,X-et),Q=c(si,e0,41,P,0,1),L=c(si,e0,41,P,0,1),r=c(si,e0,41,P,0,1),i=c(si,e0,41,P,0,1),g=0;g<P;g++)Q[g]=new _u(tt,X,e.a[v[g]],e.b[v[g]]),L[g]=new _u(tt,X,A.a[b[g]],A.b[b[g]]),r[g]=new KP(Q[g].a-L[g].a,Q[g].b*L[g].b),i[g]=new KP(Q[g].a+L[g].a,Q[g].b*L[g].b);for(j=P2(r,P),p=P2(i,P),$=0,a=0,m=0;m<P;m++)for(R=0;R<Ht(t.f,n[m]);R++)f=W(t.f,n[m],R),N9(e,f)&&!N9(A,f)&&++$,!N9(e,f)&&N9(A,f)&&++a;for(o=c(si,e0,41,$,0,1),s=c(si,e0,41,a,0,1),y=c(si,e0,41,a,0,1),$=0,a=0,l=0;l<P;l++)for(R=0;R<Ht(t.f,n[l]);R++)f=W(t.f,n[l],R),N9(e,f)&&!N9(A,f)&&(D=r8(e,f),o[$]=new _u(e.a[v[l]],e.b[v[l]],e.a[D],e.b[D]),++$),!N9(e,f)&&N9(A,f)&&(D=r8(A,f),_=new _u(A.a[b[l]],A.b[b[l]],A.a[D],A.b[D]),s[a]=new KP(j.a+_.a,_.b),y[a]=new KP(p.a-_.a,_.b),++a);return S=P2(o,$),I=P2(s,a),x=P2(y,a),w.Math.abs(vL(S.a,I.a))>w.Math.abs(vL(S.a,x.a))?Uf(A,tt,X,j.a):(_Y(A,tt,X),Uf(A,tt,X,p.a)),F5(t,e,A,P);}function ja(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I;for(ut(t,7),S=0,y=c(Pt,ft,6,t.f,16,1),I=c(F,k,6,t.f,15,1),r=0;r<t.g;r++)A=t.D[0][r],n=t.D[1][r],i=t.s[A],f=t.s[n],i!=0&&f!=0&&i<0^f<0&&(y[A]=true,y[n]=true),I[A]+=dt(t,r),I[n]+=dt(t,r);for(D=0;D<t.f;D++)if(S+=t.s[D],t.s[D]==1){if(t.C[D]==7&&!y[D]){if(I[D]<=3)S-=1,t.s[D]=0,t.T=0,t.j[D]!=t.e[D]&&(gQ(t,W(t,D,t.e[D]-1)),ut(t,7));else if(D<t.f&&r0(t.p,D)){for(g=c(Pt,ft,6,t.f,16,1),m=c(Pt,ft,6,t.g,16,1),AR(t,D,true,g,m),o=0;o<t.f;o++)if(g[o]&&t.C[o]==7&&t.s[o]==0&&I[o]==2&&f_(t,m,D,o)){S-=1;break;}}}}else if(t.s[D]<0&&(t.C[D]==6||t.C[D]==7||t.C[D]==8||t.C[D]==16))if(y[D]){for(R=c(F,k,6,16,15,1),R[0]=D,p=1,j=0;j<p;){for(P=0;P<t.r;P++)if(e=-1,t.D[0][P]==R[j]?e=t.D[1][P]:t.D[1][P]==R[j]&&(e=t.D[0][P]),e!=-1&&t.s[e]!=0){for(L=false,T=0;T<p;T++)if(e==R[T]){L=true;break;}L||(p==R.length&&(Q=c(F,k,6,2*R.length,15,1),sA(R,0,Q,0,R.length),R=Q),R[p++]=e);}++j;}for(s=0,h=0;h<p;h++)s+=t.s[R[h]];if(s<0){for(v=-1,b=99,l=0;l<p;l++)t.s[R[l]]<0&&b>yb(t.C[R[l]])&&(b=yb(t.C[R[l]]),v=R[l]);v!=-1&&(S-=t.s[v],t.s[v]=0,t.T=0);}}else S-=t.s[D],t.s[D]=0,t.T=0;return S>0&&(S=oW(t,S)),S;}function _5(){_5=d1,nl=B(d(F,1),k,6,15,[0,Qi,14286847,13402367,12779264,16758197,9474192,3166456,16715021,9494608,11789301,11230450,9109248,12560038,1578e4,16744448,16777008,2093087,8442339,9388244,4062976,15132390,12567239,10921643,9083335,10255047,14706227,15765664,5296208,13140019,8224944,12750735,6721423,12419299,16752896,10889513,6076625,7351984,AP,9764863,9756896,7586505,5551541,3907230,2396047,687500,27013,12632256,16767375,10909043,6717568,10380213,13924864,9699476,4366e3,5707663,51456,7394559,16777159,14286791,13107143,10747847,9437127,6422471,4587463,3211207,2097095,65436,58997,54354,48952,43812,5096191,5089023,2200790,2522539,2516630,1528967,13684960,16765219,12105936,10900557,5724513,10375093,11230208,7688005,4358806,4325478,32e3,7384058,47871,41471,36863,33023,27647,5528818,7888099,9064419,10565332,11739092,11739066,11734438,12389767,13041766,13369433,13697103,14221381,14680120,15073326,15400998,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13158600,1334015,56540,15075850,15132160,56540,15075850,15461355,8553170,1016335,1016335,1334015,15132160,3289770,14456450,16422400,16422400,11819700,3289770,1016335]);}function ty(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;if(t.db[e]!=0||K(t.R,e)!=5&&K(t.R,e)!=6&&K(t.R,e)!=7&&K(t.R,e)!=14&&K(t.R,e)!=15&&K(t.R,e)!=16||(t.Q&C0)!=0&&K(t.R,e)>=14)return  false;if($1(t.R,e)!=0){if(YT(t.R,e))return $_(t,e,A);if(K(t.R,e)!=15&&K(t.R,e)!=16)return  false;}if(O(t.R,e)<3||Ht(t.R,e)>4||b1(t.R,e)>0&&K(t.R,e)==6||K(t.R,e)==5&&Ht(t.R,e)!=4)return  false;if(t.R.K){if(oe(t.R,e))return  false;for(f=0;f<Ht(t.R,e);f++)if(oe(t.R,W(t.R,e,f)))return  false;}if(K(t.R,e)==7&&!t.S[e])return  false;for(l=c(F,k,6,4,15,1),T=c(F,k,6,4,15,1),o=c(Pt,ft,6,4,16,1),D=0;D<Ht(t.R,e);D++){for(r=-1,P=0,Q=0;Q<Ht(t.R,e);Q++)o[Q]||r<t.f[W(t.R,e,Q)]&&(r=t.f[W(t.R,e,Q)],P=Q);l[D]=P,T[D]=r,o[P]=true;}if(Ht(t.R,e)==4&&T[0]==T[1]&&T[2]==T[3]||Ht(t.R,e)==4&&(T[0]==T[2]||T[1]==T[3])||Ht(t.R,e)==3&&T[0]==T[2])return  false;for(L=0,s=0,y=false,i=1;i<Ht(t.R,e);i++)if(T[i-1]==T[i]){if(A==1||T[i]==0)return  false;L=W(t.R,e,l[i-1]),s=W(t.R,e,l[i]),A==3&&fA(t.R,xt(t.R,e,l[i]))&&(t.W[e]=true),y=true;}return A!=1&&!y?false:(n=t.jb?e$(t,e,l):ya(t,e,l),A==1?t.db[e]=n:A==2&&(n==1?Qe(t.e[L],t.f[e]):n==2&&Qe(t.e[s],t.f[e])),true);}function ey(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h;if(v5(t,e),!((t.u[e]&3)==0||(t.u[e]&3)==3)){if(t.o[e]==2&&t.j[e]==2){ia(t,e);return;}if(t.j[e]<3||t.j[e]>4){we(t,e,0,false);return;}for(A=t.e[e],l=false,i=0;i<A;i++)if(dt(t,t.k[e][i])==1){l=true;break;}if(l){for(T=yY(t,e),n=c(Ut,ht,6,A,15,1),f=0;f<A;f++)n[f]=K0(t,t.i[e][T[f]],e);for(D=0;D<A;D++)t.D[0][t.k[e][D]]==e&&dt(t,t.k[e][D])==1&&(t.H[t.k[e][D]]=1);if(!((t.p&&e<t.f?iA(t.p,e):0)<=24&&nX(t,e,T,n))&&(s=Ns(t,e,true),s!=-1)){for(t.D[0][s]!=e&&(t.D[1][s]=t.D[0][s],t.D[0][s]=e),y=-1,Q=0;Q<A;Q++)if(s==t.k[e][T[Q]]){y=Q;break;}for(h=B(d(F,2),f0,7,0,[B(d(F,1),k,6,15,[2,1,2,1]),B(d(F,1),k,6,15,[1,2,2,1]),B(d(F,1),k,6,15,[1,1,2,2]),B(d(F,1),k,6,15,[2,1,1,2]),B(d(F,1),k,6,15,[2,2,1,1]),B(d(F,1),k,6,15,[1,2,1,2])]),r=1;r<A;r++)n[r]<n[0]&&(n[r]+=F0);if(A==3){switch(o=false,y){case 0:o=n[1]<n[2]&&n[2]-n[1]<U1||n[1]>n[2]&&n[1]-n[2]>U1;break;case 1:o=n[2]-n[0]>U1;break;case 2:o=n[1]-n[0]<U1;}P=(t.u[e]&3)==1^o?257:129;}else L=0,n[1]<=n[2]&&n[2]<=n[3]?L=0:n[1]<=n[3]&&n[3]<=n[2]?L=1:n[2]<=n[1]&&n[1]<=n[3]?L=2:n[2]<=n[3]&&n[3]<=n[1]?L=3:n[3]<=n[1]&&n[1]<=n[2]?L=4:n[3]<=n[2]&&n[2]<=n[1]&&(L=5),P=(t.u[e]&3)==1^h[L][y]==1?129:257;t.H[s]=P;}}}}function Ay(t,e,A){Ap();var n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(ut(t,7),y=c(NA,te,6,t.j[e],14,1),s=0,D=0;D<t.j[e];D++)if(P=t.i[e][D],t.C[P]!=1){if(i=0,(A&32)!=0&&(r=t.n[e][D],A==32190?G(r,3)<0&&O8(t,t.k[e][D])&&t.o[e]==1&&(r=0):G(r,3)<0&&_e(t,t.k[e][D])&&(r=0),i=Y(i,j1(r,4))),(A&128)!=0){if(Bo[t.C[P]]==-1)throw At(new C1(B6+t.C[P]));i=x1(i,Bo[t.C[P]]);}else if((A&64)!=0){if(w4[t.C[P]]==-1)throw At(new C1(B6+t.C[P]));i=x1(i,w4[t.C[P]]);}for((A&256)!=0&&(l=t.j[P]-1,l>3&&(l=3),(A&512)==0&&l>1&&(l=1),i=Y(i,l<<6)),(A&ie)!=0&&(t.u[P]&8)!=0&&(i=Y(i,256)),(A&q1)!=0&&P<t.f&&r0(t.p,P)&&(i=Y(i,512)),(A&En)!=0&&(t.u[P]&de)!=0&&(i=Y(i,ie)),o=0;G(i,y[o])<0;)++o;for(L=D;L>o;L--)y[L]=y[L-1];y[o]=i,++s;}for(s>4&&(s=4),n=0,Q=0;Q<s;Q++)n=j1(n,11),n=Y(n,y[Q]);if(n=j1(n,15),Bo[t.C[e]]==-1)throw At(new C1(B6+t.C[e]));if(n=Y(n,Bo[t.C[e]]),(A&2)!=0?(h=t.p&&e<t.f?iA(t.p,e):0,h>9&&(h=9),h>2&&(h-=2),n=Y(n,h<<4)):(A&1)!=0&&(t.u[e]&8)!=0&&(n=Y(n,64)),(A&4)!=0&&e<t.f&&r0(t.p,e)&&(n=Y(n,ie)),(A&8)!=0&&(t.u[e]&C0)!=0&&(n=Y(n,q1)),(A&16)!=0&&(t.u[e]&de)!=0&&(n=Y(n,C0)),(A&C0)!=0&&(jK(t,e)&&(n=Y(n,de)),Ya(t,e))){for(f=0;f<t.f;f++)if(P_(t,f)){n=Y(n,En);break;}}return (A&de)!=0&&(T=M5(t,e,10),n=Y(n,j1(T,7))),n;}function $5(t,e){Is();var A,n,P,f,D,Q,L,y,l,T,h,g,m,v,b,j,p,S,x,tt,M,X;if(S=t.e,l=t.d,P=t.a,S==0)switch(e){case 0:return "0";case 1:return "0.0";case 2:return "0.00";case 3:return "0.000";case 4:return my;case 5:return "0.00000";case 6:return "0.000000";default:return j=new V0(),j.a+="0E",j.a+=-e,j.a;}if(v=l*10+1+7,b=c(l9,te,6,v+1,15,1),A=v,l==1){if(f=P[0],f<0){X=V(f,h1);do T=X,X=Cn(X,10),b[--A]=48+Jt(l0(T,on(X,10)))&c1;while(G(X,0)!=0);}else {X=f;do T=X,X=X/10|0,b[--A]=48+(T-X*10)&c1;while(X!=0);}}else {x=c(F,k,6,l,15,1),M=l,sA(P,0,x,0,M);t:for(;;){for(p=0,Q=M-1;Q>=0;Q--)tt=x1(j1(p,32),V(x[Q],h1)),g=kY(tt),x[Q]=Jt(g),p=Jt(q0(g,32));m=Jt(p),h=A;do b[--A]=48+m%10&c1;while((m=m/10|0)!=0&&A!=0);for(n=9-h+A,D=0;D<n&&A>0;D++)b[--A]=48;for(L=M-1;x[L]==0;L--)if(L==0)break t;M=L+1;}for(;b[A]==48;)++A;}if(y=S<0,e==0)return y&&(b[--A]=45),$n(b,A,v-A);}function ny(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;if(f=O(t.H,e),n=t.o[A],n>f)return  false;if(Q=U0(t.H,e),r=U0(t.g,A),P=HA(t.g,A),D=HA(t.H,e),gt(V(r,1),0)){if(P!=null){if(gt(V(Q,1),0)){if(D==null||!$m(P,D))return  false;}else if(D!=null){if(jJ(D,P))return  false;}else if(Ev(K(t.H,e),P))return  false;}}else {if(gt(V(Q,1),0))return  false;if(P!=null){if(D!=null){if(!$m(D,P))return  false;}else if(!Ev(K(t.H,e),P))return  false;}else if(D!=null||t.J[e]!=t.k[A])return  false;}if(gt(Y(Q,r),0)){if(gt(V(r,q1),0)){if(t.H.K&&n0(V(Q,q1),0))return  false;if(n!=f)return  false;}if(gt(V(r,C0),0)&&n>=f&&n0(V(Q,C0),0))return  false;}if(gt(V(t.I[e],On(t.j[A])),0)||gt(V(t.B[A],On(t.M[e])),0))return  false;if(i=V(r,Pr),t.H.K){if(o=V(r,Pr),G(o,0)!=0&&(G(i,0)==0||gt(V(i,On(o)),0)))return  false;}else if(G(i,0)!=0&&n0(V(i,t.M[e]),0))return  false;return b1(t.g,A)!=0&&b1(t.g,A)!=b1(t.H,e)||le(t.g,A)!=0&&le(t.g,A)!=le(t.H,e)||mA(t.g,A)!=0&&mA(t.g,A)!=mA(t.H,e)||(L=V(r,B2),G(L,0)!=0&&Z_(t.H,e)!=Jt(q0(L,47))-7)?false:(s=V(r,f9),G(s,0)!=0?(s=q0(s,22),t.H.K?(y=Jt(q0(V(U0(t.H,e),f9),22)),Jt(s)==y):H9(t.H,e)==Jt(s)):true);}function pa(t,e){var A,n,P,r,i,f,D,Q;if(A=0,i=0,r=e.length,f=null,Q=new b9(),i<r&&(Gt(i,e.length),e.charCodeAt(i)==43)&&(++i,++A,i<r&&(Gt(i,e.length),e.charCodeAt(i)==43||(Gt(i,e.length),e.charCodeAt(i)==45))))throw At(new YP(c2+e+'"'));for(;i<r&&(Gt(i,e.length),e.charCodeAt(i)!=46)&&(Gt(i,e.length),e.charCodeAt(i)!=101)&&(Gt(i,e.length),e.charCodeAt(i)!=69);)++i;if(Q.a+=""+(Ct(A,i,(e??nr).length),(e??nr).substr(A,i-A)),i<r&&(Gt(i,e.length),e.charCodeAt(i)==46)){for(++i,A=i;i<r&&(Gt(i,e.length),e.charCodeAt(i)!=101)&&(Gt(i,e.length),e.charCodeAt(i)!=69);)++i;t.e=i-A,Q.a+=""+(Ct(A,i,(e??nr).length),(e??nr).substr(A,i-A));}else t.e=0;if(i<r&&(Gt(i,e.length),e.charCodeAt(i)==101||(Gt(i,e.length),e.charCodeAt(i)==69))&&(++i,A=i,i<r&&(Gt(i,e.length),e.charCodeAt(i)==43)&&(++i,i<r&&(Gt(i,e.length),e.charCodeAt(i)!=45)&&++A),f=(Ct(A,r,e.length),e.substr(A,r-A)),t.e=t.e-Q1(f,P1,Et),t.e!=vt(t.e)))throw At(new YP("Scale out of range."));if(D=Q.a,D.length<16){if(t.f=(ic==null&&(ic=new RegExp("^[+-]?\\d*$","i")),ic.test(D)?parseInt(D,10):NaN),isNaN(t.f))throw At(new YP(c2+e+'"'));t.a=vs(t.f);}else Uh(t,new jg(D));for(t.d=Q.a.length,P=0;P<Q.a.length&&(n=Ji(Q.a,P),!(n!=45&&n!=48));++P)--t.d;t.d==0&&(t.d=1);}function Dp(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(this.j=t,n=0;n<t.i.f;n++)t.f[n]&&(t.o[n]==1||t.o[n]==2)&&(t.k[n]==1?this.a<=t.j[n]&&(this.a=1+t.j[n]):t.k[n]==2&&this.i<=t.j[n]&&(this.i=1+t.j[n]));for(this.b=this.a+this.i,this.e=k1(Pt,[h0,ft],[12,6],16,[this.b+1,t.g.length+1],2),P=0;P<t.i.f;P++)t.f[P]&&(t.o[P]==1||t.o[P]==2)&&!t.e[P]&&(this.e[hv(this,P)][t.g.length]=true);for(D=0;D<t.g.length;D++)for(h=0;h<t.g[D].length;h++)A=t.g[D][h],t.f[A]&&(t.o[A]==1||t.o[A]==2)&&(this.e[hv(this,A)][D]=true);for(this.d=c(F,f0,7,this.b,0,2),Q=0;Q<t.g.length;Q++)for(y=1;y<this.b;y++)if(this.e[y][Q])for(l=0;l<y;l++)this.e[l][Q]&&(this.d[y]=nf(this.d[y],l),this.d[l]=nf(this.d[l],y));for(this.c=c(F,k,6,this.b+1,15,1),s=0;s<this.b;s++)this.e[s][t.g.length]?this.c[s]=-1:this.c[s]=-2;for(o=0;o<t.g.length;o++)if(this.e[this.b][o])for(L=0;L<this.b;L++)this.e[L][o]&&this.c[L]!=o&&(this.c[L]==-2?this.c[L]=o:this.c[L]=-3);for(e=0;e<this.b;e++)if(this.c[e]>=-1&&(r=c(F,k,6,this.b,15,1),JK(this,r,e)))for(L=0;L<this.b;L++)r[L]!=0&&(this.c[L]=-3);for(f=0;f<t.g.length-1;f++)for(y=1;y<this.b;y++)if(this.e[y][f]&&this.c[y]!=-3){for(l=0;l<y;l++)if(this.e[l][f]&&this.c[l]!=-3&&(i=w_(this,y,l,f),i!=null)){for(T=0;T<i.length;T++)this.c[i[T]]=-3;SW(this,i);break;}}}function Ca(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt;for(t.e=c(Ut,ht,6,t.d,15,1),n=c(Ut,ht,6,t.d,15,1),Q=c(Ut,ht,6,t.d,15,1),S=c(Ut,ht,6,t.d,15,1),wt=c(Ut,ht,6,t.d,15,1),m=c(Ut,ht,6,t.d*t.d,15,1),L=0;L<t.d;L++)S[L]=t.i[L];for(f=is(t,t.i),Hb(t),x=0,s=0;s<t.d;s++)m[s*t.d+s]=1,wt[s]=-t.e[s],x+=t.i[s]*t.i[s];for(p=100*w.Math.max(w.Math.sqrt(x),t.d),X=(z1(),M1(Date.now())),b=1;b<=e&&!t.f;b++){if(I=O$(t,t.i,f,wt,S,p),I<0)return 2;for(f=t.k,a=0,y=0;y<t.d;y++)wt[y]=S[y]-t.i[y],t.i[y]=S[y],_=w.Math.abs(wt[y])/w.Math.max(w.Math.abs(t.i[y]),1),_>a&&(a=_),n[y]=t.e[y];if(a<12e-8)return 0;for(D=Hb(t),a=0,$=w.Math.max(t.k*D,1),l=0;l<t.d;l++)Tt=w.Math.abs(t.e[l])*w.Math.max(w.Math.abs(t.i[l]),1),a=w.Math.max(a,Tt),n[l]=t.e[l]-n[l];if(a/=$,a<A)return 0;for(P=0,i=0,tt=0,M=0,T=0;T<t.d;T++){for(v=T*t.d,Q[T]=0,R=0;R<t.d;R++)Q[T]+=m[v+R]*n[R];P+=n[T]*wt[T],i+=n[T]*Q[T],tt+=n[T]*n[T],M+=wt[T]*wt[T];}if(P>w.Math.sqrt(3e-8*tt*M)){for(P=1/P,r=1/i,h=0;h<t.d;h++)n[h]=P*wt[h]-r*Q[h];for(g=0;g<t.d;g++)for(v=g*t.d,R=g;R<t.d;R++)m[v+R]+=P*wt[g]*wt[R]-r*Q[g]*Q[R]+i*n[g]*n[R],m[R*t.d+g]=m[v+R];}for(o=0;o<t.d;o++)for(v=o*t.d,wt[o]=0,R=0;R<t.d;R++)wt[o]-=m[v+R]*t.e[R];if(et=M1(Date.now()),st=l0(et,X),hu(st,t.j)){for(j=new Zt(t.c);j.a<j.c.a.length;)$t(j),null.vd();X=et;}}return 1;}function Ha(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(e=0;t.a.length!=0;){if(t.a.length==1){if(t.e==1||t.e==0)break;if(t.e==2&&(t.a[0]==0||t.a[0]==180))break;if(t.e==3&&(t.a[0]==0||t.a[0]==90))break;}for(s=t.a[0]!=0&&(t.e==2||t.e==3)?-1:0,L=-1,o=Et,i=s;i<t.a.length;i++)D=i+1,A=i>=0?t.a[i]:-t.a[0],n=D<t.a.length?t.a[D]:t.e==1?t.a[0]+180:t.e==2?360-t.a[t.a[i]==180?i-1:i]:t.e==3?180-t.a[t.a[i]==90?i-1:i]:t.a[0]+360,o>n-A&&(o=n-A,L=i);if(o>15)break;r=L,f=r+1,r==-1?(e+=t.c[0],t.a[0]=0,t.c[0]=t.c[0]*2<<16>>16,t.d[0][0]=-t.d[0][1]):f<t.a.length?(Q=Zu(t,r,f,t.a[f]),Tf(t,Q,r,f,t.d[r][0],t.d[f][1])):t.e==1?(f=0,Q=Zu(t,r,f,t.a[f]+180),Q<=180?Tf(t,Q,r,f,t.d[r][0],t.d[f][1]+180):Tf(t,Q-180,f,r,t.d[f][0],t.d[r][1]-180)):t.e==2?(f=t.a[r]==180?r-1:r,t.a[r]<180?(e+=t.c[r],t.a[r]=180,t.c[r]=t.c[r]*2<<16>>16,t.d[r][1]=360-t.d[r][0]<<16>>16):(z1(),Q=Zu(t,r,f,t.a[f]),Tf(t,Q,f,r,t.d[f][0],t.d[r][1]))):t.e==3?(f=t.a[r]==90?r-1:r,t.a[r]<90?(e+=t.c[r],t.a[r]=90,t.c[r]=t.c[r]*2<<16>>16,t.d[r][1]=180-t.d[r][0]<<16>>16):(z1(),Q=Zu(t,r,f,t.a[f]),Tf(t,Q,f,r,t.d[f][0],t.d[r][1]))):(f=0,Q=Zu(t,r,f,t.a[f]+360),Q<=360?Tf(t,Q,r,f,t.d[r][0],t.d[f][1]+360):Tf(t,Q-360,f,r,t.d[f][0],t.d[r][1]-360));}if(e!=0)for(P=0;P<t.c.length;P++)t.c[P]=vt(w.Math.round(100*t.c[P]/(100+e)))<<16>>16;}function up(t,e){var A,n,P,r,i,f,D,Q;if(D=0,t.K){switch(e<t.f&&V3(t.p,e)?D=Y(D,R6):e<t.f&&r0(t.p,e)&&(D=Y(D,2)),Q=(P=t.u[e]&hn,P==0?0:P==ie?2:P==q1?3:4),Q!=0&&(D=Y(D,8),Q>2&&(D=Y(D,16)),Q>3&&(D=Y(D,32))),A=t.s[e],A<0?D=Y(D,pf):A>0&&(D=Y(D,jf)),i=t.j[e],i){case 0:break;case 1:D=Y(D,I0);break;case 2:D=Y(D,Li);break;case 3:D=Y(D,SP);break;default:D=Y(D,Cf);}switch(n=$T(t,e),n){case 0:break;case 1:D=Y(D,d2);break;case 2:D=Y(D,Uy);break;case 3:D=Y(D,Ly);break;default:D=Y(D,eo);}f=t.o[e],f>0&&(D=Y(D,En)),f>1&&(D=Y(D,L8));}else {switch(e<t.f&&V3(t.p,e)?D=Y(D,R6):e<t.f&&r0(t.p,e)?D=Y(D,2):D=Y(D,4),(t.u[e]&Tn)!=0?D=Y(D,XQ):D=Y(D,ZQ),Q=(P=t.u[e]&hn,P==0?0:P==ie?2:P==q1?3:4),Q==0?D=Y(D,112):Q==2?D=Y(D,104):Q==3?D=Y(D,88):D=Y(D,56),A=t.s[e],A==0?D=Y(D,_Q):A<0?D=Y(D,pf):D=Y(D,jf),r=t.e[e]-t0(t,e)+It(t,e),r){case 0:D=Y(D,1792);break;case 1:D=Y(D,1664);break;case 2:D=Y(D,1408);break;default:D=Y(D,896);}switch(i=t.j[e],i){case 0:D=Y(D,3932160);break;case 1:D=Y(D,$Q);break;case 2:D=Y(D,w2);break;case 3:D=Y(D,g2);break;default:D=Y(D,Cf);}switch(n=$T(t,e),n){case 0:D=Y(D,Dy);break;case 1:D=Y(D,uy);break;case 2:D=Y(D,Qy);break;case 3:D=Y(D,oy);break;default:D=Y(D,eo);}switch(f=t.o[e],f){case 0:D=Y(D,98304);break;case 1:D=Y(D,81920);break;default:D=Y(D,49152);}}return D;}function Qp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;for(D=c(F,k,6,t.i.f,15,1),g=c(F,k,6,t.i.f,15,1),l=c(Pt,ft,6,t.i.f,16,1),Q=c(Pt,ft,6,t.i.f,16,1),m=new ag(t.i.f),D[0]=e,g[e]=A,g[A]=-2,m.a[e]=true,m.a[A]=true,r=0,o=0;r<=o;){if(i=D[r],g[i]==i){for(L=0;L<O(t.i,i);L++)if(n=W(t.i,i,L),!m.a[n]){if(pA(t.i,i,L)==2&&K(t.i,n)<10)D[++o]=n,g[n]=n,Q[n]=Q[i]||$1(t.i,n)==2,l[n]=Q[i]&&!l[i],m.a[n]=true;else if(Q[i]&&l[i]){if(v=Vb(t,n,g[i],m.a),v==-1)return null;D[++o]=n,g[n]=v,g[v]=-2,Q[n]=false,m.a[n]=true,m.a[v]=true;}else if(fA(t.i,xt(t.i,i,L))&&(D[++o]=n,g[n]=n,Q[n]=false,m.a[n]=true,(K(t.i,n)==6&&$1(t.i,n)==0||K(t.i,n)==7&&b1(t.i,n)==1||K(t.i,n)==14||K(t.i,n)==15&&O(t.i,n)>2||K(t.i,n)==16&&O(t.i,n)>2)&&O(t.i,n)>2)){for(f=false,T=1;T<O(t.i,n);T++)if(b=W(t.i,n,T),!m.a[b])for(h=0;h<T;h++)R=W(t.i,n,h),m.a[R]||Ks(t,b,R)&&(D[++o]=b,g[b]=R,g[R]=-2,Q[b]=false,m.a[b]=true,m.a[R]=true,f=true);if(!f)return null;}}}else {for(P=c(Pt,ft,6,O(t.i,i),16,1),s=0;s<O(t.i,i);s++)if(n=W(t.i,i,s),m.a[n])P[s]=g[n]==n;else for(T=0;T<O(t.i,n);T++)if(W(t.i,n,T)==g[i]){P[s]=true;break;}for(y=0;y<O(t.i,i);y++)if(P[y])if(n=W(t.i,i,y),m.a[n]){if(u1(t.i,n,g[i])==-1)return null;}else D[++o]=n,g[n]=n,l[n]=false,Q[n]=true,m.a[n]=true;for(L=0;L<O(t.i,i);L++)if(!P[L]&&(n=W(t.i,i,L),!m.a[n])){if(v=Vb(t,n,g[i],m.a),v==-1)return null;D[++o]=n,g[n]=v,g[v]=-2,Q[n]=false,m.a[n]=true,m.a[v]=true;}}++r;}return m;}function Ma(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T;switch(s=t.X,t.X=0,s){case 1:if(l=ZA(t.V,t.ib,t.lb),l!=-1&&ue(t.V,l)==8)return;G1(t),t.e==-1&&(t.e=_0(t.V,t.hb,t.kb,0)),l==-1&&(l=_0(t.V,t.ib,t.lb,0)),t.e!=-1&&l!=-1&&(P=$0(t.V,t.e)||$0(t.V,l)?16:1,t.w==6&&(P=257),t.w==23&&(P=129),cb(t.V,t.e,l,P)),t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));break;case 2:if(G1(t),t.q>0&&(t.e==-1&&(t.e=_0(t.V,t.hb,t.kb,0)),t.n[0]==-1&&(t.n[0]=_0(t.V,t.o[0],t.p[0],0)),t.n[0]!=-1&&aU(t.V,t.e,t.n[0])),t.q>1)for(f=1;f<t.q;f++)t.n[f]==-1&&(t.n[f]=_0(t.V,t.o[f],t.p[f],0)),t.n[f]!=-1&&aU(t.V,t.n[f-1],t.n[f]);t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));break;case 3:case 4:case 7:t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));break;case 10:t.eb=w.Math.max(t.eb,3),e1(t.k);break;case 5:case 6:for(y=false,i=0;i<t.V.q;i++)if(t.P[i]!=P0(t.V,i)){y=true;break;}e1(t.k),y&&I1(t,new S1(t,2,true));break;case 8:if(L=false,n=t.t,n!=-1&&t.V.K&&oe(t.V,n)&&(n=-1),Q=R1(t.V,t.e),n==-1){if(G1(t),Q!=0){for(L=true,T=false,e=0;e<t.V.f;e++)R1(t.V,e)==Q&&(T=T|dn(t.V,e),We(t.V,e,0,false));Co&&!T&&cQ(t);}}else {if(G1(t),L=true,T=false,t.e==n)for(D=R1(t.V,t.e),e=0;e<t.V.f;e++)R1(t.V,e)==D&&(T=T|dn(t.V,e),We(t.V,e,0,false));else {for(o=R1(t.V,n),A=0;A<t.V.f;A++)(R1(t.V,A)==Q||R1(t.V,A)==o)&&We(t.V,A,0,false);for(r=1,e=0;e<t.V.f;e++)R1(t.V,e)==r&&(++r,e=-1);We(t.V,t.e,r,false),We(t.V,n,r,false);}Co&&!T&&cQ(t);}L&&gL(t,w.Math.max(t.eb,1)),e1(t.k);}}function Va(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b;if(v=bA(t.hb,t.kb,t.ib,t.lb),g=t.ib-t.hb,m=t.lb-t.kb,L=t.q,s=0,l=0,y=0,T=0,L>0&&(s=Jt(M1(w.Math.round(t.o[0]))),l=Jt(M1(w.Math.round(t.p[0])))),L>1&&(y=Jt(M1(w.Math.round(t.o[1]))),T=Jt(M1(w.Math.round(t.p[1])))),D=0,t.e==-1||ue(t.V,t.e)==0)D=AA*Gr(M1(w.Math.round(v*3/U1)));else if(ue(t.V,t.e)==1)A=K0(t.V,W(t.V,t.e,0),t.e),n=A-AA,P=A+AA,D=w.Math.abs(ze(v,n))<w.Math.abs(ze(v,P))?n:P;else {for(r=c(Ut,ht,6,ue(t.V,t.e),15,1),o=0;o<ue(t.V,t.e);o++)r[o]=K0(t.V,t.e,W(t.V,t.e,o));for(r.sort(me(di.prototype.gd,di,[])),Q=0;Q<r.length;Q++){if(h=Q==0?r[r.length-1]-F0:r[Q-1],h<v&&v<r[Q]){D=(r[Q]+h)/2;break;}if(h<v-F0&&v-F0<r[Q]){D=(r[Q]+h)/2;break;}}}if(e=Pn(t.V,24*t.ab),t.q=w.Math.abs(ze(v,D))>AA?0:vt(w.Math.sqrt(g*g+m*m)/e),t.q>0){for((t.o==null||t.o.length<t.q)&&(t.o=c(Ut,ht,6,t.q,15,1),t.p=c(Ut,ht,6,t.q,15,1)),i=c(Ut,ht,6,2,15,1),f=c(Ut,ht,6,2,15,1),b=ze(v,D)<0?D-AA:D+AA,i[0]=e*w.Math.sin(D),f[0]=e*w.Math.cos(D),i[1]=e*w.Math.sin(b),f[1]=e*w.Math.cos(b),o=0;o<t.q;o++)t.o[o]=(o==0?t.hb:t.o[o-1])+i[o&1],t.p[o]=(o==0?t.kb:t.p[o-1])+f[o&1];for(t.n=c(F,k,6,t.q,15,1),Q=0;Q<t.q;Q++)t.n[Q]=ZA(t.V,t.o[Q],t.p[Q]),t.n[Q]!=-1&&(t.o[Q]=kt(t.V,t.n[Q]),t.p[Q]=pt(t.V,t.n[Q]));}return L!=t.q||t.q!=0&&(s!=Jt(M1(w.Math.round(t.o[0])))||l!=Jt(M1(w.Math.round(t.p[0]))))||t.q>1&&(y!=Jt(M1(w.Math.round(t.o[1])))||T!=Jt(M1(w.Math.round(t.p[1]))));}function Ea(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt;for(st=new f1(),g=new Zt(t.g);g.a<g.c.a.length;)if(h=$t(g),h.g!=-1&&(v=u1(t.k,h.a,h.g),!ri(t.k,v)&&!WP(t.k,v)&&(Ie(t.k,v)==1||Ie(t.k,v)==2))){if($=N(t.g,t.q[h.g]),A=c(F,k,6,O(t.k,h.a)+O(t.k,$.a)-2,15,1),S=0,a=false,$.g!=-1)A[S++]=$.b;else {for(b=-1,Tt=-1,R=Et,x=0;x<O(t.k,$.a);x++)L=W(t.k,$.a,x),L!=h.a&&(b==-1?(b=x,R=t.q[L]):R<t.q[L]?Tt=x:(Tt=b,b=x));Tt==-1?(X=W(t.k,$.a,b),et=xt(t.k,$.a,b),A[S++]=et|(oQ(t,$.a,X)?cn:0)):(s=W(t.k,$.a,b),l=xt(t.k,$.a,b),y=W(t.k,$.a,Tt),T=xt(t.k,$.a,Tt),A[S++]=l|(oQ(t,$.a,s)?cn:0),A[S++]=T|(oQ(t,$.a,y)?0:cn));}if(O(t.k,$.a)==3&&$.g!=-1){for(x=0;x<O(t.k,$.a);x++)if(L=W(t.k,$.a,x),L!=$.g&&L!=h.a){n=xt(t.k,$.a,x),A[S++]=n|(oQ(t,$.a,L)?cn:0),L<$.g&&(a=!a);break;}}for(Ie(t.k,v)==2&&(a=!a),I=0;I<O(t.k,h.a);I++)if(D=W(t.k,h.a,I),D!=h.g){if(p=a,O(t.k,h.a)==3){for(M=0;M<O(t.k,h.a);M++)if(L=W(t.k,h.a,M),L!=h.g&&L!=D){L<D&&(p=!p);break;}}gU(t.k,v)&&(j=lq(t.d,v),t.n[j]||(t.n[j]=true,t.o[j]=p),t.o[j]&&(p=!p)),Q=u1(t.k,h.a,D),A[S++]=Q|(p^oQ(t,h.a,D)?0:cn);}st.a.push(A);}for(t.f=c(F,k,6,t.k.g,15,1),st.a.length!=0&&rh(t,LA(st,0),false);st.a.length!=0;){for(wt=st.a.length,I=st.a.length-1;I>=0;I--){for(A=(Fe(I,st.a.length),st.a[I]),_=0,tt=false,o=false,r=A,i=0,f=r.length;i<f;++i)P=r[i],e=P&1073741823,t.f[e]!=0&&(m=(P&cn)!=0^t.f[e]==2,_==0?tt=m:tt!=m&&(o=true),++_);_!=0&&(A=LA(st,I),o||rh(t,A,tt));}wt==st.a.length&&rh(t,LA(st,0),false);}}function op(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I;for(this.d=t,I=GQ(e,false,null),(I.g.a.length!=1||I.f.a.length!=1)&&z1(),I.c||wQ(I)||z1(),this.g=N(I.g,0),this.f=N(I.f,0),ut(this.g,1),ut(this.f,63),Q=new Ri(),this.c=c(F,k,6,this.g.f+1,15,1),this.c[0]=-1,n=0;n<this.g.f;n++)R1(this.g,n)!=0&&(this.c[R1(this.g,n)]=n);for(aK(this,this.c),j=c(Pt,ft,6,this.g.g,16,1),g=0;g<this.f.g;g++)T=z(this.f,0,g),h=z(this.f,1,g),s=R1(this.f,T),y=R1(this.f,h),s!=0&&y!=0&&(P=this.c[s],r=this.c[y],m=Lu(this.f,g),R=u1(this.g,P,r),R==-1?K8(Q,new As(P,r,s,y,m)):((Ae(this.g,R)&31)==0&&(p=Lu(this.g,R),p!=m&&K8(Q,new As(P,r,s,y,m))),j[R]=true));for(D=0;D<this.g.g;D++)j[D]||(P=z(this.g,0,D),r=z(this.g,1,D),!oe(this.g,P)&&!oe(this.g,r)&&(s=R1(this.g,P),y=R1(this.g,r),(s!=0||y!=0)&&K8(Q,new As(P,r,s,y,-1))));for(this.k=Gq(Q,c(mtt,{471:1,4:1,5:1,11:1,8:1},148,0,0,1)),o=0,i=0;i<this.g.f;i++)R1(this.g,i)==0&&!oe(this.g,i)&&++o;for(this.j=c(F,k,6,o,15,1),o=0,f=0;f<this.g.f;f++)R1(this.g,f)==0&&!oe(this.g,f)&&(this.j[o++]=f);for(this.n=new f1(),L=c(Pt,ft,6,this.f.f,16,1),A=0;A<this.f.f;A++)R1(this.f,A)==0&&!oe(this.f,A)&&!L[A]&&mt(this.n,new jb(this.f,A,L));for(this.b=this.j.length==0&&this.n.a.length==0,this.a=c(F,k,6,0,15,1),l=0;l<this.f.f;l++)v=d0(this.f,l),(v==1||v==2)&&(b=this.c[R1(this.f,l)],b!=-1&&(S=d0(this.g,b),GY(this,l,this.c)==(S==v)&&(this.a=kn(this.a,this.a.length+1),this.a[this.a.length-1]=b)));this.e=XY(this);}function a5(){a5=d1,JV=B(d(it,1),Dt,2,6,["[N](-*)(-*)-*","[N](-*)=*","[N]#*","[N](-*)(=*)=* as in nitro","[N](=*)#* middle atom of azide","[N]1(-*)-*-*-1 3-membered ring","[NH](-*)-*","[NH]1-*-*-1 3-membered ring","[NH]=*","[NH2]-*","[N+](-*)(-*)(-*)-*","[N+](-*)(-*)=*","[N+](-*)#* N in isocyano","[NH+](-*)(-*)-*","[NH+](-*)=*","[NH2+](-*)-*","[NH2+]=*","[NH3+]-*","[n](:*):*","[n](:*)(:*):*","[n](-*)(:*):*","[n](=*)(:*):* as in pyridine-N-oxid","[nH](:*):*","[n+](:*)(:*):*","[n+](-*)(:*):*","[nH+](:*):*","[O](-*)-*","[O]1-*-*-1 3-membered ring","[O]=*","[OH]-*","[O-]-*","[o](:*):*","[S](-*)-*","[S]=*","[S](-*)(-*)=*","[S](-*)(-*)(=*)=*","[SH]-*","[s](:*):*","[s](=*)(:*):*","[P](-*)(-*)-*","[P](-*)=*","[P](-*)(-*)(-*)=*","[PH](-*)(-*)=*"]),xP=B(d(Se,1),PA,6,15,[3.240000009536743,12.359999656677246,23.790000915527344,11.680000305175781,13.600000381469727,tV,12.029999732971191,21.940000534057617,23.850000381469727,26.020000457763672,0,tV,4.360000133514404,4.440000057220459,13.970000267028809,16.610000610351562,25.59000015258789,27.639999389648438,12.890000343322754,4.409999847412109,4.929999828338623,8.390000343322754,15.789999961853027,4.099999904632568,3.880000114440918,14.140000343322754,9.229999542236328,12.529999732971191,17.06999969482422,20.229999542236328,23.059999465942383,13.140000343322754,25.299999237060547,32.09000015258789,19.209999084472656,8.380000114440918,38.79999923706055,28.239999771118164,21.700000762939453,13.59000015258789,34.13999938964844,9.8100004196167,23.469999313354492]);}function Up(){Up=d1,IV=B(d(it,1),Dt,2,6,["gkvt@@@@LddTTTrbTRTRTRRRRRRRRRRRRRrVRrIh\\IAaQxlY@gRHdJCJcRXlv_CfJx|A\\hRHejiLaQjTje^kSjtFcIhvXmVKMjt{lN{Kavy\\^wGjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjh@@vo@HBC@PhLN@bPhtFKCcpDbILaRhtzCIbsX\\nOO`JDbqDjSKdJeJmQjtz}Ahr[LVkMnpz\\nwGj{PBhBdBlBBBjBfBnBaBiBeBmBcBkBgBoB`bhbdblbbbjbfbnbabibebmbcbkbgbob`RhRdRlRbRjRfRnRaRiReRmRcRkRgRoR`rhrdrlrbrjrfrnrarirermrcrkrgror`JhJdJlJbJjJfJnJaJiJeJmJcJkJgJoJ`jhjdjljbjjjfjnjajijej` !BnkjyVwsVr|iQn|Q|goTZWPIJwbudnRkVYBez]siZymNJZUqNFBqZWxS~iCXVU]SeRjwrtSPAjkvXLpBAZauDPzq]PfMlecrMnkv|@\\SFD`m|mWiEoCXp`SIe_J[l|[XCbloTV`[Gc@FJGopyyoOlFQfUy^w\\Bgz|","gcrt@@@@LdbbbbTRbRbRbRRRRRRRRRRRRVRrVQIA`HtRGAaIxZAHfShTjCIbqylQGKgqdBaXeQJeruBiPitZmFoPZLFSYbvZlVGMnsZ]vWSmr{]UUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@[G`DAA`HTFG@QHTZCEaqxBQDfPiTZ]AdqYlNWGgpEBQXbUIerEReVhuZ]^`tYMfKUfwX]NW[jkPBhBdBlBbBjBfBnBaBiBeBmBcBkBgBoB`bhbdblbbbjbfbnbabibebmbcbkbgbob`RhRdRlRbRjRfRnRaRiReRmRcRkRgRoR`rhrdrlrbrjrfrnrarirermrcrkrgror`JhJdJlJbJjJfJnJaJiJeJmJcJkJgJoJ`jhjdjljbjjjfjnjajij` !B^cR]`]Fm]QkfljE\\p?UVfgOmFXsQe_gXPyXis_wF|vUUX_XbxpzU]HUFgYViwFo~@uemc@}~T?IEPioYVwr]JnM~[ZEC\\g}~o_pUfdo~irsklTLiyVJshnw^iVAsZ`_~}PYkckURH{FYMImFaRaccUlCZSHMfP","dml@@Dje^VGiyZjjjh@vtHSBinFU@ !BPTCTy[skMzUPF`AJbBixEZHS[Il","dml@@DjYVvGiyZjjjh@vtHSBinFU@ !BwLo~BJ~UquhXBinZ\\ykA@F_eMrT","dml@@LdfbbQX^fUZjjj`C[PaLJfxYT !BzxIHVc{OiJVRpprePho~]}y?wLl","deL@@DjUYkfEijjjj@MeBDpj[ad !B?aA?MVr[AvkKzm_jKvVbD{sk","dil@@LddTQRl[NX^Fjjjj@MiBDpj[a@ !BPfL@?ox@M~T@?ox@?`C~@@","daL@@DjYtKJqjynjjjj@MaBDpj[` !B`bL@_gx@@Gy~@Gx@_`@"]);}function Sa(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I;i=c(Ut,ht,6,t.q,15,1);t:for(r=0;r<i.length;r++){switch(I=t.a[r],i[r]=0,I){case 32:case 72:for(Q=0;Q<t.e[r];Q++){for(g=t.i[r][Q],b=t.a[g],T=0,h=0,L=0;L<t.e[g];L++)m=t.i[g][L],t.C[m]==7&&t.e[m]+It(t,m)==2&&!(m<t.f&&r0(t.p,m))&&++T,(t.C[m]==8||t.C[m]==16)&&t.e[m]+It(t,m)==1&&++h;if(t.C[g]==16&&h==2&&T==1&&(T=0),t.C[g]==6&&h>0){i[r]=h==1?-1:-(h-1)/h;continue t;}if(b==45&&h==3){i[r]=-0.3333333333333333;continue t;}if(b==25&&h>0){i[r]=h==1?0:-(h-1)/h;continue t;}if(b==18&&h>0){i[r]=T+h==2?0:-(T+h-2)/h;continue t;}if(b==73&&h>0){i[r]=h==1?0:-(h-1)/h;continue t;}if(b==77&&h>0){i[r]=-1/h;continue t;}}break;case 76:for(p=0,S=(ut(t,7),t.p),j=0;j<S.j.a.length;j++)if(yA(S,j,r)){p=j;break;}if(p<S.j.a.length){for(l=0,A=N(S.j,p),n=0,P=A.length;n<P;++n)e=A[n],e>-1&&t.a[e]==76&&++l;if(l>0){i[r]=-1/l;continue t;}}break;case 55:case 56:case 81:for(i[r]=t.s[r],y=1,R=0,f=c(Pt,ft,6,t.q,16,1),f[r]=true;y>R;)for(R=y,o=0;o<t.q;o++)if(f[o]){for(L=0;L<t.e[o];L++)if(g=t.i[o][L],b=t.a[g],!(b!=57&&b!=80))for(s=0;s<t.e[g];s++)m=t.i[g][s],v=t.a[m],!(v!=55&&v!=56&&v!=81)&&(f[m]||(f[m]=true,i[r]+=t.s[m],++y));}i[r]/=y;continue t;case 61:for(D=0;D<t.e[r];D++)if(g=t.i[r][D],t.a[g]==42){i[r]=1;continue t;}continue t;case 34:case 49:case 51:case 54:case 58:case 92:case 93:case 94:case 97:i[r]=1;continue t;case 87:case 95:case 96:case 98:case 99:i[r]=2;continue t;case 88:i[r]=3;continue t;case 35:case 62:case 89:case 90:case 91:i[r]=-1;continue t;}i[r]=0;}return i;}function qa(t,e,A){var n,P,r,i;for(t.u=e,t.a=A,n=vt(w.Math.round((Be==-1&&(Be=globalThis.devicePixelRatio||1),Be*8))),P=B(d(F,1),k,6,15,[n,-1,-2,-2,n]),i=B(d(F,1),k,6,15,[n,-2,n,-2,-2,-2,-2,-2,-2,-2,n,-2,n,-2,n,-2,n,-2,2*n,-2,n/2|0,-2,n/2|0,-2,2*n]),WU(t.s,P,i),ce(t.s,Le(t.s,"Desired Bond type(s):"),1,1,3,1),t.k=fn(t.s,"Single"),ce(t.s,t.k,1,3,3,3),t.c=fn(t.s,"Double"),ce(t.s,t.c,1,4,3,4),t.n=fn(t.s,"Triple"),ce(t.s,t.n,1,5,3,5),t.i=fn(t.s,"Quadruple"),ce(t.s,t.i,1,6,3,6),t.j=fn(t.s,"Quintuple"),ce(t.s,t.j,1,7,3,7),t.b=fn(t.s,"Delocalized"),ce(t.s,t.b,1,8,3,8),t.g=fn(t.s,"Coordinate (0-order)"),ce(t.s,t.g,1,9,3,9),t.q=UA(t.s),Nt(t.q,"any ring state"),Nt(t.q,fV),Nt(t.q,"is any ring bond"),Nt(t.q,"is non-aromatic ring bond"),Nt(t.q,"is aromatic bond"),Nt(t.q,"is any non-aromatic bond"),JP(t.q,t),ce(t.s,t.q,1,11,3,11),t.r=UA(t.s),Nt(t.r,"any ring size"),Nt(t.r,"is in 3-membered ring"),Nt(t.r,"is in 4-membered ring"),Nt(t.r,"is in 5-membered ring"),Nt(t.r,"is in 6-membered ring"),Nt(t.r,"is in 7-membered ring"),Nt(t.r,"smallest ring 8 to 11"),Nt(t.r,"smallest ring >= 12"),ce(t.s,t.r,1,13,3,13),t.e=fn(t.s,"Match formal bond order"),uA(t.e,(e.G[A]&Mf)!=0),JP(t.e,t),ce(t.s,t.e,1,15,3,15),t.f=fn(t.s,"Match Stereo Configuration"),uA(t.f,(e.G[A]&T8)!=0),JP(t.f,t),ce(t.s,t.f,1,17,3,17),t.d=fn(t.s,"Is atom bridge between"),JP(t.d,t),ce(t.s,t.d,1,19,3,19),t.p=UA(t.s),r=0;r<16;r++)Nt(t.p,""+r);i0(t.s,t.p,2,21),i0(t.s,Le(t.s," and"),3,21),JP(t.p,t),t.o=UA(t.s),aT(t,0),i0(t.s,t.o,2,23),i0(t.s,Le(t.s," atoms"),3,23),ut(t.u,7),A$(t);}function Ia(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S;for(m=c(Pt,ft,6,t.R.f,16,1),v=c(Pt,ft,6,t.R.g,16,1),e=0,R=false,(t.Q&128)!=0&&(t.Y=c(F,k,6,t.R.f,15,1),t.X=c(F,k,6,t.R.g,15,1)),n=0;n<t.R.f;n++)t.W[n]&&(t.fb[n]||ty(t,n,1)&&(t.fb[n]=true,m[n]=true,++e));for(r=0;r<t.R.g;r++)t.V[r]&&(t.p[r]||zQ(t,r,1)&&(t.p[r]=true,v[r]=true,++e));if(e==1){for(A=0;A<t.R.f;A++)if(m[A]){t.db[A]=0;break;}for(P=0;P<t.R.g;P++)if(v[P]){t.o[P]=0;break;}}else if(e>1)for(e_(t),t.T=0,f=new Zt(t.A);f.a<f.c.a.length;){for(i=$t(f),b=0,j=0,o=0,Q=0,L=-1,D=-1,l=0;l<i.a.length;l++)m[i.a[l]]&&(++b,(t.db[i.a[l]]==1||t.db[i.a[l]]==2)&&(++j,R=true,L<t.f[i.a[l]]&&(L=t.f[i.a[l]],o=i.a[l])));for(T=0;T<i.b.length;T++)v[i.b[T]]&&(++b,p=t.f[z(t.R,0,i.b[T])],S=t.f[z(t.R,1,i.b[T])],s=p>S?(p<<16)+S:(S<<16)+p,(t.o[i.b[T]]==1||t.o[i.b[T]]==2)&&(++j,R=true,D<s&&(D=s,Q=i.b[T])));if(b!=0)if(b==1){for(h=0;h<i.a.length;h++)m[i.a[h]]&&(t.db[i.a[h]]=0);for(y=0;y<i.b.length;y++)v[i.b[y]]&&(t.o[i.b[y]]=0);}else if(j==1){for(h=0;h<i.a.length;h++)m[i.a[h]]&&(t.db[i.a[h]]=3);for(y=0;y<i.b.length;y++)v[i.b[y]]&&(t.o[i.b[y]]=3);}else {if((t.Q&128)!=0){for(++t.T,h=0;h<i.a.length;h++)m[i.a[h]]&&(t.Y[i.a[h]]=t.T);for(y=0;y<i.b.length;y++)v[i.b[y]]&&(t.X[i.b[y]]=t.T);}if(g=false,L!=-1?t.db[o]==2&&(g=true):t.o[Q]==2&&(g=true),g){for(h=0;h<i.a.length;h++)if(m[i.a[h]])switch(t.db[i.a[h]]){case 1:t.db[i.a[h]]=2;break;case 2:t.db[i.a[h]]=1;}for(y=0;y<i.b.length;y++)if(v[i.b[y]])switch(t.o[i.b[y]]){case 1:t.o[i.b[y]]=2;break;case 2:t.o[i.b[y]]=1;}}}}return R;}function xa(t,e,A,n,P,r,i,f){var D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt;for(et=N(t.j,e),L=et,s=0,y=L.length;s<y;++s)if(o=L[s],!fX(t,o))return  true;for(_=N(t.k,e),$=_.length,T=0,Q=0,rt=false,p=0;p<$;p++)T<<=1,Q<<=1,dt(t.i,_[p])>1||l1(t.i,_[p])==8?T|=1:f&&ps(t,_[p])?(T|=1,Q|=1):(D=A[e][p],D!=-1&&(n[D]?P[D]&&(T|=1,r[D]||(Q|=1)):rt=true));switch(R=false,$){case 3:for(h=B(d(F,1),k,6,15,[2,1,4]),R=true,b=0;b<3;b++)(T&h[b])==h[b]&&(K(t.i,et[b])==6&&b1(t.i,et[b])==1||K(t.i,et[b])==5&&b1(t.i,et[b])==0)&&(P[e]=true,i[e]=b,(Q&h[b])==0&&(R=false));break;case 5:for(g=B(d(F,1),k,6,15,[10,5,18,9,20]),R=true,X=0;X<5;X++)if((T&g[X])==g[X])switch(K(t.i,et[X])){case 6:b1(t.i,et[X])==-1&&(P[e]=true,i[e]=X,(Q&g[X])==0&&(R=false));break;case 7:b1(t.i,et[X])<=0&&(P[e]=true,i[e]=X);break;case 8:P[e]=true,i[e]=X;break;case 16:case 34:case 52:O(t.i,et[X])==2&&(P[e]=true,i[e]=X);}break;case 6:R=true,(T&21)==21&&(P[e]=true,(Q&21)==0&&(R=false)),(T&42)==42&&(P[e]=true,(Q&42)==0&&(R=false));break;case 7:for(m=B(d(F,1),k,6,15,[42,21,74,37,82,41,84]),R=true,v=0;v<7;v++)if((T&m[v])==m[v]){if(K(t.i,et[v])==6&&(b1(t.i,et[v])==1||f&&PJ(t,et[v]))||K(t.i,et[v])==5&&b1(t.i,et[v])==0)P[e]=true,i[e]=v,(Q&m[v])==0&&(R=false);else for(j=0;j<2;j++)if(st=(v+6+j)%7,a=_[st],Tt=A[e][st],Tt!=-1&&!P[Tt]&&N(t.k,Tt).length==5){for(wt=N(t.k,Tt),S=0;wt[S]!=a;)++S;for(I=false,M=0,x=1;x<=4;x++){if(l=wt[(S+x)%5],tt=dt(t.i,l)>1||l1(t.i,l)==8||f&&ps(t,l),tt&&I){M=0;break;}I=tt,I&&++M;}if(M==2){P[e]=true,P[Tt]=true,r[e]=true,r[Tt]=true,mt(t.b,m1(a));break;}}}}return P[e]&&!R&&(r[e]=true),P[e]?true:!rt;}function Na(t){var e,A,n,P,r,i,f,D,Q,o,L;for(ut(t,1),P=c(F,k,6,191,15,1),A=0;A<t.q;A++)switch(t.C[A]){case 171:P[1]+=5,P[6]+=3,P[7]+=1,P[8]+=1;break;case 172:P[1]+=12,P[6]+=6,P[7]+=4,P[8]+=1;break;case 173:P[1]+=6,P[6]+=4,P[7]+=2,P[8]+=2;break;case 174:P[1]+=5,P[6]+=4,P[7]+=1,P[8]+=3;break;case 175:P[1]+=5,P[6]+=3,P[7]+=1,P[8]+=1,P[16]+=1;break;case 176:P[1]+=8,P[6]+=5,P[7]+=2,P[8]+=2;break;case 177:P[1]+=7,P[6]+=5,P[7]+=1,P[8]+=3;break;case 178:P[1]+=3,P[6]+=2,P[7]+=1,P[8]+=1;break;case 179:P[1]+=7,P[6]+=6,P[7]+=3,P[8]+=1;break;case 181:case 180:P[1]+=11,P[6]+=6,P[7]+=1,P[8]+=1;break;case 182:P[1]+=12,P[6]+=6,P[7]+=2,P[8]+=1;break;case 183:P[1]+=9,P[6]+=5,P[7]+=1,P[8]+=1,P[16]+=1;break;case 184:P[1]+=9,P[6]+=9,P[7]+=1,P[8]+=1;break;case 185:P[1]+=7,P[6]+=5,P[7]+=1,P[8]+=1;break;case 186:P[1]+=5,P[6]+=3,P[7]+=1,P[8]+=2;break;case 187:P[1]+=7,P[6]+=4,P[7]+=1,P[8]+=2;break;case 188:P[1]+=10,P[6]+=11,P[7]+=2,P[8]+=1;break;case 189:P[1]+=9,P[6]+=9,P[7]+=1,P[8]+=2;break;case 190:P[1]+=9,P[6]+=5,P[7]+=1,P[8]+=1;break;case 1:switch(t.A[A]){case 0:case 1:++P[1];break;case 2:++P[151];break;case 3:++P[152];}break;default:++P[t.C[A]];}for(n=0;n<t.q;n++)t.C[n]>=171&&t.C[n]<=190?P[1]+=2-N1(t,n):P[1]+=It(t,n);for(f=0,Q=1;Q<=190;Q++)P[Q]!=0&&++f;for(this.b=c(F,k,6,f,15,1),this.c=c(F,k,6,f,15,1),f=0,D=0;D<V2.length;D++)P[V2[D]]!=0&&(this.b[f]=P[V2[D]],this.c[f]=V2[D],++f,P[V2[D]]=0);for(;;){for(L="zzz",o=-1,i=1;i<=190;i++)P[i]>0&&Yr(L,(J1(),Z0)[i])>0&&(L=(J1(),Z0)[i],o=i);if(o==-1)break;this.b[f]=P[o],this.c[f]=o,++f,P[o]=0;}for(this.a=0,this.d=0,e=0;e<t.f;e++)t.C[e]!=1&&t.A[e]!=0&&(i=t.C[e],r=t.A[e],this.a+=xF(i,r)-v4[i],this.d+=xF(i,r)-F4[i]);}function Oa(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0;for(y0=A[4],Yt=A[3]==-1?3:4,l=c(F,k,6,e.q,15,1),St=c(Pt,ft,6,e.r,16,1),g=0;g<Yt;g++)St[n[g]]=true;for(y=Zb(e,l,St,false),T=c(F,k,6,y,15,1),Q=l,o=0,L=Q.length;o<L;++o)s=Q[o],++T[s];for(Qt=0,p=c(Pt,ft,6,y,16,1),m=0;m<Yt;m++)s=l[A[m]],p[s]||(p[s]=true,++Qt);for(bt=c(F,k,6,Qt,15,1),yt=c(F,k,6,Qt,15,1),t1=c(F,k,6,Qt,15,1),j=0,D=0;D<y;D++)if(p[D]){for(bt[j]=D,yt[j]=T[D],v=0;v<Yt;v++)D==l[A[v]]&&++t1[j];++j;}if(S=c(Pt,ft,6,e.q,16,1),r1=0,H1=2,Qt==Yt)for(Kt=-1,v=0;v<Yt-2;v++){for(Lt=-1,jt=Et,x=0;x<Qt;x++)x!=Kt&&yt[x]<jt&&(Lt=x,jt=yt[x]);for(P=0;P<e.q;P++)l[P]==bt[Lt]&&(S[P]=true,++r1);Kt=Lt;}else for(v=0;v<bt.length;v++){if(t1[v]==1&&Yt==3){for(I=2*yt[v]<e.q,I||(H1=1),P=0;P<e.q;P++)P!=y0&&l[P]==bt[v]==I&&(S[P]=true,++r1);break;}if(t1[v]==2&&Yt==4){for(I=2*yt[v]<e.q,P=0;P<e.q;P++)P!=y0&&l[P]==bt[v]==I&&(S[P]=true,++r1);break;}}if(r1==0){for(v=0;v<bt.length;v++)if(t1[v]==1){for(P=0;P<e.q;P++)l[P]==bt[v]&&(S[P]=true,++r1);break;}for(V1=Yt-2-(r1==0?0:1),b=0;b<V1;b++)for(x=0;x<Yt;x++)if(!S[A[x]]){S[A[x]]=true,++r1;break;}}for(j=0,t.a=c(F,k,6,r1,15,1),R=0;R<S.length;R++)S[R]&&(t.a[j++]=R);for(Q0=0,D1=0,t.c=c(F,k,6,H1,15,1),t.b=c(F,k,6,Yt-H1,15,1),h=0;h<Yt;h++)if(S[A[h]]){if(D1>=t.b.length){for(z1(),""+new b3(e).a.a,M=A,$=0,wt=M.length;$<wt;++$);for(X=n,a=0,rt=X.length;a<rt;++a);for(et=l,st=0,ct=et.length;st<ct;++st);for(tt=p,_=0,Tt=tt.length;_<Tt;++_);for(r=S,i=0,f=r.length;i<f;++i);}t.b[D1++]=A[h];}else t.c[Q0++]=A[h];}function Ga(t,e){var A;switch(t.C[e]){case 7:if(e<t.f&&r0(t.p,e)){if(t.s[e]==0){if(t.e[e]-t0(t,e)+It(t,e)==0){if(t0(t,e)==2)return 18;for(A=0;A<t0(t,e);A++)if(!_e(t,t.k[e][A]))return 20;return 19;}else return 22;}else if(t.s[e]==1)if(t.e[e]-t0(t,e)+It(t,e)==0){for(A=0;A<t0(t,e);A++)if(!_e(t,t.k[e][A]))return b1(t,t.i[e][A])<0?21:24;return 23;}else return 25;}else if(t.s[e]==0)switch(t.e[e]-t0(t,e)+It(t,e)){case 0:switch(t.o[e]){case 0:return (t.p&&e<t.f?iA(t.p,e):0)==3?5:0;case 1:return 1;case 2:return 2;}break;case 1:switch(t.o[e]){case 0:return (t.p&&e<t.f?iA(t.p,e):0)==3?7:6;case 1:return 8;}break;case 2:return 9;}else if(t.s[e]==1)switch(t.e[e]-t0(t,e)+It(t,e)){case 0:switch(t.o[e]){case 0:return 10;case 1:return eF(t,e)?3:11;case 2:return t.n[e][0]==2?eF(t,e)?4:xP.length+1:12;}break;case 1:switch(t.o[e]){case 0:return 13;case 1:return 14;}break;case 2:return t.o[e]==0?15:16;case 3:return 17;}return xP.length+1;case 8:if(e<t.f&&r0(t.p,e)){if(t.s[e]==0)return 31;}else {if(t.s[e]==0)return t.o[e]>0?28:t0(t,e)==1?29:(t.p&&e<t.f?iA(t.p,e):0)==3?27:26;if(t.s[e]==-1)return t0(t,e)==1&&b1(t,t.i[e][0])>0?28:30;}return xP.length+1;case 15:if(t.s[e]==0){if(t.e[e]-t0(t,e)+It(t,e)==0){if(t0(t,e)==3&&t.o[e]==0)return 39;if(t0(t,e)==2&&t.o[e]==1)return 40;if(t0(t,e)==4&&t.o[e]==1)return 41;}else if(t.e[e]-t0(t,e)+It(t,e)==1&&t0(t,e)==3&&t.o[e]==1)return 42;}return xP.length+1;case 16:if(t.s[e]==0){if(e<t.f&&r0(t.p,e))return t0(t,e)==2?37:38;if(t.e[e]-t0(t,e)+It(t,e)==0){if(t0(t,e)==2&&t.o[e]==0)return 32;if(t0(t,e)==1&&t.o[e]==1)return 33;if(t0(t,e)==3&&t.o[e]==1)return 34;if(t0(t,e)==4&&t.o[e]==2)return 35;}else if(t.e[e]-t0(t,e)+It(t,e)==1&&t0(t,e)==1)return 36;}return xP.length+1;}return xP.length;}function Ja(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt;for(ut(t.k,1),t.g=c(Pt,ft,6,t.k.g,16,1),t.c=0,L=0;L<t.k.g;L++)l1(t.k,L)==8&&(w0(t.k,L,1),t.g[L]=true,++t.c);for(v=c(Pt,ft,6,t.k.f,16,1),Qt=new oU(t.k,3),m=c(Pt,ft,6,Qt.j.a.length,16,1),ct=0;ct<Qt.j.a.length;ct++){for(St=N(Qt.j,ct),m[ct]=true,p=St,x=0,X=p.length;x<X;++x)if(R=p[x],!Y0(t.k,R)){m[ct]=false;break;}if(m[ct]){for(S=St,tt=0,et=S.length;tt<et;++tt)R=S[tt],v[R]=true;for(t1=N(Qt.k,ct),j=t1,I=0,M=j.length;I<M;++I)R=j[I],t.g[R]||(t.g[R]=true,++t.c);}}for(s=0;s<t.k.g;s++)!t.g[s]&&(Qt.c[s]&c1)!=0&&Y0(t.k,z(t.k,0,s))&&Y0(t.k,z(t.k,1,s))&&y_(t,s);for(y=0;y<t.k.g;y++)t.g[y]||(r=z(t.k,0,y),i=z(t.k,1,y),!v[r]&&!v[i]&&Y0(t.k,r)&&Y0(t.k,i)&&(t.g[y]=true,++t.c));for(ut(t.k,7),(t.q==2||t.q==1&&t.p)&&RX(t),g=c(Pt,ft,6,t.k.g,16,1),t.k.g>=0&&sA(t.g,0,g,0,t.k.g),Kt=0;Kt<Qt.j.a.length;Kt++)if(m[Kt]){for(St=N(Qt.j,Kt),$=St,a=0,st=$.length;a<st;++a)if(_=$[a],!bZ(t,_))for(Y0(t.k,_)&&(Gn(t.k,_,false),--t.b),R=0;R<O(t.k,_);R++)T=xt(t.k,_,R),t.g[T]&&(t.g[T]=false,--t.c);}for(u5(t),rt=0;rt<Qt.j.a.length;rt++)if(m[rt]&&N(Qt.k,rt).length==6){for(t1=N(Qt.k,rt),b=true,D=t1,Q=0,o=D.length;Q<o;++Q)if(f=D[Q],!t.g[f]){b=false;break;}b&&(FQ(t,t1[0]),FQ(t,t1[2]),FQ(t,t1[4]),u5(t));}for(wt=5;wt>=4;wt--)do for(Tt=false,f=0;f<t.k.g;f++)if(t.g[f]){for(n=0,h=0;h<2;h++)for(l=z(t.k,h,f),R=0;R<O(t.k,l);R++)t.g[xt(t.k,l,R)]&&++n;if(n==wt){FQ(t,f),u5(t),Tt=true;break;}}while(Tt);for(;t.b>=2&&v_(t,g););if(e){if(t.b!=0)for(P=0;P<t.k.f;P++)Y0(t.k,P)&&(Gn(t.k,P,false),T1(t.k,P,2,true),--t.b,A=true);if(t.c!=0)for(f=0;f<t.k.g;f++)t.g[f]&&(t.g[f]=false,w0(t.k,f,8),--t.c,A=true);}else for(P=0;P<t.k.f;P++)Y0(t.k,P)&&It(t.k,P)!=0&&(Gn(t.k,P,false),Oe(t.k,P,32),--t.b);if(t.q==0||t.q==1&&!A){if(t.b!=0)throw At(new C1(Gp));if(t.c!=0)throw At(new C1(Gp));}}function T2(){T2=d1,IA=B(d(Se,1),PA,6,15,[1,Qo,x6,2.119999885559082,1.9800000190734863,1.909999966621399,1.7699999809265137,Cy,1.5,N6,1.5800000429153442,2.5,2.509999990463257,2.25,2.190000057220459,O6,1.8899999856948853,eC,1.8300000429153442,2.7300000190734863,2.619999885559082,2.5799999237060547,AC,nC,Hy,Hy,G6,PC,PC,2.380000114440918,2.390000104904175,J6,z6,1.8799999952316284,eC,rC,2.25,3.2100000381469727,2.8399999141693115,2.75,2.5199999809265137,2.559999942779541,Hy,G6,AC,G6,2.1500000953674316,iC,fC,2.430000066757202,nC,DC,1.9900000095367432,2.0399999618530273,2.059999942779541,3.4800000190734863,3.0299999713897705,2.9800000190734863,uC,QC,2.950000047683716,QC,2.9000000953674316,oC,Y6,UC,oC,LC,Y6,UC,sC,2.740000009536743,2.630000114440918,iC,2.569999933242798,fC,2.4800000190734863,2.4100000858306885,z6,J6,Hy,DC,2.5999999046325684,2.5399999618530273,2.5,2.5,2.5,2.5,2.5,sC,2.930000066757202,uC,2.7100000381469727,2.819999933242798,LC,Y6,yC,3.4000000953674316,yC,2.700000047683716]),Of=B(d(Se,1),PA,6,15,[.25,K6,.46000000834465027,lC,1.0199999809265137,oo,.75,.7099999785423279,.6299999952316284,.6399999856948853,.9599999785423279,TC,hC,1.2599999904632568,X6,cC,1.0299999713897705,.9900000095367432,wC,gC,dC,1.4800000190734863,Z6,BC,vC,1.190000057220459,X6,cC,1.100000023841858,Qo,Qo,FC,My,My,X6,1.1399999856948853,My,mC,W6,_6,1.5399999618530273,kC,1.3799999952316284,bC,1.25,1.25,Qo,hC,RC,N6,Do,Do,Z6,lC,1.350000023841858,J6,gC,jy,_6,jC,1.7400000095367432,pC,CC,Vy,HC,Vy,MC,Cy,$6,1.6399999856948853,Uo,VC,1.5199999809265137,N6,EC,1.309999942779541,SC,vC,1.2300000190734863,FC,1.4199999570846558,1.5,RC,1.5099999904632568,qC,kC,qC,2.2300000190734863,2.009999990463257,rC,1.75,HC,Uo,dC,CC,Cy,Cy,Vy,Vy,$6,MC,pC,jC,1.6100000143051147,IC,1.4900000095367432,x6,1.409999966621399,BC,SC,bC,My,EC,Z6,x6,VC,1.75,$6,IC]);}function za(t,e,A){var n,P,r,i,f,D,Q,o;switch(f=A.a.length,0<f?A.a=oA(A.a,0,0):0>f&&(A.a+=S8(c(l9,te,6,-f,15,1))),D=U0(t.k,e),P=Jt(q0(V(D,i9),3)),P){case 20971520:A.a+="+0";break;case 25165824:b1(t.k,e)==0&&(A.a+="-");break;case 12582912:b1(t.k,e)==0&&(A.a+="+");}return n=V(D,ly),G(n,2)==0?A.a+=";a":G(n,4)==0&&(A.a+=";A"),r=V(D,nP),G(r,0)!=0&&(G(r,1792)==0?A.a+=";H0":G(r,1664)==0?A.a+=";H1":G(r,1408)==0?A.a+=";H2":G(r,896)==0?A.a+=";H3":G(r,128)==0?A.a+=";!H0":G(r,384)==0?A.a+=";!H0;!H1":G(r,1536)==0?A.a+=";!H2;!H3":G(r,ie)==0&&(A.a+=";!H3")),o=V(D,120),G(o,8)==0?A.a+=";!R0":G(o,16)==0?A.a+=";!R1":G(o,32)==0?A.a+=";!R2":G(o,64)==0?A.a+=";!R3":G(o,112)==0?A.a+=";R0":G(o,104)==0?A.a+=";R1":G(o,88)==0?A.a+=";R2":G(o,56)==0&&(A.a+=";R3"),Q=V(D,Pr),G(Q,U8)==0?A.a+=";!r"+he(Q):G(Q,jp)==0?A.a+=";r"+he(Q):G(Q,0)!=0&&(gt(V(Q,Rf),0)?(n0(V(Q,U8),0)&&(A.a+=";!r0"+he(Q)),n0(V(Q,rr),0)&&(A.a+=";!r3"+he(Q)),n0(V(Q,ir),0)&&(A.a+=";!r4"+he(Q)),n0(V(Q,fr),0)&&(A.a+=";!r5"+he(Q)),n0(V(Q,Dr),0)&&(A.a+=";!r6"+he(Q)),n0(V(Q,ur),0)&&(A.a+=";!r7"+he(Q))):(A.a+=";",gt(V(Q,U8),0)&&(A.a+="r0,"+he(Q)),gt(V(Q,rr),0)&&(A.a+="r3,"+he(Q)),gt(V(Q,ir),0)&&(A.a+="r4,"+he(Q)),gt(V(Q,fr),0)&&(A.a+="r5,"+he(Q)),gt(V(Q,Dr),0)&&(A.a+="r6,"+he(Q)),gt(V(Q,ur),0)&&(A.a+="r7,"+he(Q)),un(A,A.a.length-1))),G(Q,0)==0&&(Q=q0(V(D,f9),22),G(Q,0)!=0&&(A.a+=";r"+he(Q))),i=V(D,Ui),G(i,$Q)==0&&(A.a+=";D1"),G(i,w2)==0&&(A.a+=";D2"),G(i,g2)==0&&(A.a+=";D3"),G(i,aQ)==0&&(A.a+=";!D3;!D4"),G(i,qA)==0&&(A.a+=";!D4"),G(i,Li)==0&&(A.a+=";!D0;!D1"),G(i,SP)==0&&(A.a+=";!D0;!D1;!D2"),G(i,Cf)==0&&(A.a+=";!D0;!D1;!D2;!D3"),gt(V(D,q1),0)&&J(A,";D"+O(t.k,e)),gt(V(D,C0),0)&&J(A,";!D"+O(t.k,e)),A.a.length==0?null:A.a;}function Ya(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;if(t.C[e]!=7||t.s[e]!=0||t.j[e]+t.o[e]>3)return  false;if(e<t.f&&r0(t.p,e)){if(t.o[e]!=1||M5(t,e,7)!=1)return  false;for(b=(ut(t,7),t.p),m=0;m<b.j.a.length;m++)if(yA(b,m,e)){if(N(b.k,m).length==5||N(b.k,m).length==6){for(R=N(b.j,m),h=-1,D=0;D<R.length;D++)if(R[D]==e){h=D;break;}for(P=0,g=null,T=null,R.length==5&&(g=c(F,k,6,2,15,1),g[0]=R[h-1<0?h+4:h-1],g[1]=R[h-4<0?h+1:h-4],T=c(F,k,6,2,15,1),T[0]=R[h-2<0?h+3:h-2],T[1]=R[h-3<0?h+2:h-3]),R.length==6&&(g=c(F,k,6,3,15,1),g[0]=R[h-1<0?h+5:h-1],g[1]=R[h-3<0?h+3:h-3],g[2]=R[h-5<0?h+1:h-5],T=c(F,k,6,2,15,1),T[0]=R[h-2<0?h+4:h-2],T[1]=R[h-4<0?h+2:h-4]),Q=0;Q<R.length;Q++)e!=R[Q]&&t.C[R[Q]]==7&&t.o[R[Q]]==1&&--P;for(o=0;o<g.length;o++){for(r=-1,i=-1,l=0;l<t.j[g[o]];l++)if(!_e(t,t.k[g[o]][l])){r=t.i[g[o]][l],i=t.k[g[o]][l];break;}if(r!=-1){if(t.C[r]==7&&t.o[r]==0&&t.j[r]+t.o[r]<=3&&!ah(t,r,false)){++P;continue;}if(t.C[r]==8&&t.j[r]==1){P+=2;continue;}if(i<t.g&&je(t.p,i)){for(j=0;j<b.j.a.length;j++)if(b.e[j]&&yA(b,j,r)){for(v=N(b.j,j),y=0;y<v.length;y++)if(t.C[v[y]]==7&&t.o[v[y]]==1){--P;break;}break;}}}}for(L=0;L<T.length;L++){for(r=-1,y=0;y<t.j[T[L]];y++)_e(t,t.k[T[L]][y])||(r=t.i[T[L]][y]);t.C[T[L]]==6?r!=-1&&rf(t,r)!=0&&--P:t.C[T[L]]==7&&t.o[T[L]]==0&&(r==-1||!(r<t.f&&r0(t.p,r))&&rf(t,r)==0)&&++P;}return P>0;}break;}return  false;}if(t.o[e]>1)return  false;if(t.o[e]==1){for(s=-1,p=0,D=0;D<t.j[e];D++){if(n=t.i[e][D],t.n[e][D]==2){if(t.C[n]!=6)return  false;s=n;continue;}if(t.C[n]==8)return  false;if(t.C[n]==7){--p,ah(t,n,false)&&--p;continue;}n<t.f&&r0(t.p,n)&&--p;}if(s==-1)return  false;for(A=0,Q=0;Q<t.j[s];Q++)if(t.n[s][Q]==1){if(n=t.i[s][Q],rf(t,n)!=0)return  false;n<t.f&&r0(t.p,n)&&++A,t.C[n]==7&&!ah(t,n,true)&&++p,(t.C[n]==8||t.C[n]==16)&&--p;}return A==2&&--p,p>=0;}for(f=0;f<t.j[e];f++)if(n=t.i[e][f],n<t.f&&r0(t.p,n)||t.C[n]!=6||rf(t,n)!=0||t.o[n]!=0&&Yz(t,n))return  false;return  true;}function t6(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st;if(K(t.R,A)!=K(t.R,n))return K(t.R,A)>K(t.R,n);if(le(t.R,A)!=le(t.R,n))return X=Qu(t.R,A)?(J1(),o9)[K(t.R,A)]:le(t.R,A),et=Qu(t.R,n)?(J1(),o9)[K(t.R,n)]:le(t.R,n),X>et;for(j=t.R.f,m=c(F,k,6,j,15,1),b=c(F,k,6,j,15,1),R=c(F,k,6,j,15,1),v=c(Pt,ft,6,j,16,1),D=c(Pt,ft,6,t.R.q,16,1),m[0]=e,m[1]=A,m[2]=n,b[0]=-1,b[1]=0,b[2]=0,D[e]=true,D[A]=true,D[n]=true,s=1,p=2,M=c(F,k,6,64,15,1),M[1]=1,M[2]=3,l=2;s<=p;){for(;s<M[l];){if(y=m[s],!v[s]){for(T=0,h=0,I=0;I<O(t.R,y);I++){if(o=W(t.R,y,I),p+pA(t.R,y,I)+1>=j&&(j+=t.R.f,m=BL(m,j),b=BL(b,j),R=BL(R,j),v=(st=c(Pt,ft,6,j,16,1),sA(v,0,st,0,v.length),st)),O8(t.R,xt(t.R,y,I)))++T,h+=K(t.R,o);else if(o!=e)for(tt=1;tt<pA(t.R,y,I);tt++)++p,m[p]=o,b[p]=s,v[p]=true;if($=b[s],o!=m[$]){if(f=false,D[o])for(_=b[$];_!=-1;){if(o==m[_]){f=true;break;}_=b[_];}f?(++p,m[p]=o,b[p]=s,v[p]=true):(++p,m[p]=o,b[p]=s,D[o]=true);}}T!=0&&(++p,R[p]=(h<<2)/T|0,b[p]=s,v[p]=true);}if(++s,s==eP)throw At(new C1("Emergency break in while loop."));}for(M.length==l+1&&(M=BL(M,M.length+64)),M[l+1]=p+1,S=M[l];S<M[l+1];S++)R[S]==0&&(R[S]=(K(t.R,m[S])==151||K(t.R,m[S])==152?1:K(t.R,m[S]))<<2),R[S]+=R[b[S]]<<16;if(xR(t,v,R,b,m,M,l),R[1]!=R[2])return R[1]>R[2];l>1&&rR(R,b,M,l),++l;}for(L=c(F,k,6,t.R.f,15,1),x=false,r=0;r<t.R.f;r++)if(D[r]&&!Qu(t.R,r)){x=true;break;}if(x){for(i=0;i<t.R.f;i++)L[i]=Qu(t.R,i)?(J1(),o9)[K(t.R,i)]:le(t.R,i);if(Hh(t,v,R,b,m,L,M,l))return R[1]>R[2];}for(V9(L,L.length,0),g=false,Q=0;Q<t.R.g;Q++)(D[z(t.R,0,Q)]||D[z(t.R,1,Q)])&&(t.i[Q]==1?(L[z(t.R,0,Q)]=1,L[z(t.R,1,Q)]=1,g=true):t.i[Q]==2&&(L[z(t.R,0,Q)]=2,L[z(t.R,1,Q)]=2,g=true));if(g&&Hh(t,v,R,b,m,L,M,l))return R[1]>R[2];for(V9(L,L.length,0),a=false,P=0;P<t.R.f;P++)D[P]&&(t.$[P]==2?(L[P]=1,a=true):t.$[P]==1&&(L[P]=2,a=true));if(a&&Hh(t,v,R,b,m,L,M,l))return R[1]>R[2];throw t.d=true,At(new C1("no distinction applying CIP rules"));}function e6(){e6=d1,Kf=B(d(F,2),f0,7,0,[B(d(F,1),k,6,15,[-1432180054,-1434146134,-1441453406,-1471067516,-1589095916,-2060839854,1420461386,1454022954,1454024874]),B(d(F,1),k,6,15,[-1431677611,-1431764987,-1432092655,-1433403327,-1438646015,-1459616762,-1543499750,-1879031702,1431634346,1073809066,1073814186,1073834666,1431677610]),B(d(F,1),k,6,15,[-1431737686,-1453057622,-1542187926,-1542188954,-1459351471,-1459351487,f4,1094713345,1077936134,-1879048186,-1543503866,-1543503846,-1459617766,D4,j2,j2]),B(d(F,1),k,6,15,[-1431737686,-1453057622,-1542187926,-1542188954,-1459351471,-1459351487,f4,1094713345,1077952518,-1879031802,-1543154682,-1543487462,-1459601382,D4,j2,j2]),B(d(F,1),k,6,15,[Wy,Wy,-1431741782,-1437330070,-1459351462,-1459351482,f4,-1858076671,-1874853882,-1879048186,-1543503866,-1543503846,-1459617766,D4,j2,j2]),B(d(F,1),k,6,15,[Wy,-1432005270,-1454374890,-1543503871,-1879048191,1073741825,1073741846,1073743210,-1795073366,1079421610,1147841194,-1783977302,_y,_y,-1498764630]),B(d(F,1),k,6,15,[Wy,-1432005270,-1454374890,-1543438335,-1878982655,1075138561,1073807382,1073808746,-1795073366,1079421610,1147841194,-1783977302,_y,_y,-1498764630]),B(d(F,1),k,6,15,[1431655786,u9,If,u9,If,u9,If,u9,If,u9,If,u9,1145324650]),B(d(F,1),k,6,15,[1431655786,u9,If,u9,If,u9,1073758314,1073758250,1074091114,1073758250,1073758314,u9,1145324650]),B(d(F,1),k,6,15,[-1432003926,-1437248086,1767548266,1437248090,1437248086,1433053846,1433037477,-1431672155,-1432004955,1433037477,1433037462,1437248086,1437248090,1767548266,-1437248086,-1432003926]),null]),_V=B(d(F,1),k,6,15,[1,7,7,5,8,7,8,7,8,7,2,14,2,14,0,0,0,0,8,8,0,0]),$V=B(d(F,1),k,6,15,[4,20,10,29,18,18,18,18,18,18,16,11,16,11,4,5,4,5,16,16,16,16,0,0,0,0,12,2]),aV=B(d(it,1),Dt,2,6,["chain.png","eraser.png","hand.png","handPlus.png","fist.png","lasso.png","lassoPlus.png","rect.png","rectPlus.png","zoom.png","invisible.png",null,null,"pointingHand.png"]);}function Ka(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v;if(L=false,t.R.K){for(Q=0;Q<t.R.g;Q++)if(Ae(t.R,Q)!=0){L=true;break;}}for(t.O=2,A=0;A<t.R.f;A++)t.O=w.Math.max(t.O,O(t.R,A)+qi(t.R,A));for(D=w.Math.max(2,L?(62+t.c+t.O*(t.c+23))/63|0:(62+t.c+t.O*(t.c+5))/63|0),t.f=c(F,k,6,t.R.q,15,1),t.e=c(g4,F2,100,t.R.f,0,1),n=0;n<t.R.f;n++)t.e[n]=new RU(D);for(f=false,P=0;P<t.R.f;P++)$e(t.e[P],P),gt(V(U0(t.R,P),1),0)||HA(t.R,P)!=null?W1(t.e[P],8,6):W1(t.e[P],8,K(t.R,P)),W1(t.e[P],8,le(t.R,P)),W1(t.e[P],2,$1(t.R,P)),W1(t.e[P],4,O(t.R,P)+qi(t.R,P)),gt(V(U0(t.R,P),1),0)?W1(t.e[P],4,8):W1(t.e[P],4,8+b1(t.R,P)),W1(t.e[P],5,w.Math.min(31,H9(t.R,P))),W1(t.e[P],4,cX(t,P)+1),W1(t.e[P],2,mA(t.R,P)>>4),t.R.K&&(W1(t.e[P],51,U0(t.R,P)),HA(t.R,P)!=null&&(f=true));if(t.U=Xn(t),t.U<t.R.f){for(e=0;e<t.R.f;e++){for($e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),s=c(F,k,6,O(t.R,e),15,1),l=0;l<O(t.R,e);l++)s[l]=t.f[W(t.R,e,l)]<<5,s[l]|=w.Math.min(31,pr(t.R,xt(t.R,e,l)));for(s.sort(me(D0.prototype.gd,D0,[])),T=t.O;T>s.length;T--)W1(t.e[e],t.c+5,0);for(y=s.length-1;y>=0;y--)W1(t.e[e],t.c+5,s[y]);}t.U=Xn(t);}if(f&&t.U<t.R.f){for(e=0;e<t.R.f;e++){for($e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),i=HA(t.R,e),m=i==null?0:w.Math.min(12,i.length),l=12;l>m;l--)W1(t.e[e],8,0);for(y=m-1;y>=0;y--)W1(t.e[e],8,i[y]);}t.U=Xn(t);}if(L&&t.U<t.R.f){for(e=0;e<t.R.f;e++){for($e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),o=c(NA,te,6,O(t.R,e)+qi(t.R,e),14,1),h=0,l=0;l<ue(t.R,e);l++)(l<O(t.R,e)||l>=Ht(t.R,e))&&(o[h]=t.f[W(t.R,e,l)],o[h]=j1(o[h],23),o[h]=Y(o[h],Ae(t.R,xt(t.R,e,l))),++h);for(o.sort(me(ql.prototype.hd,ql,[])),T=t.O;T>o.length;T--)W1(t.e[e],t.c+23,0);for(y=o.length-1;y>=0;y--)W1(t.e[e],t.c+23,o[y]);}t.U=Xn(t);}if((t.Q&8)!=0&&t.U<t.R.f){for(g=new nu(),r=0;r<t.R.f;r++)Zn(t.R,r)!=null&&js(g,Zn(t.R,r));for(e=0;e<t.R.f;e++)v=Zn(t.R,e)==null?0:1+Wh(g,Zn(t.R,e)),$e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),W1(t.e[e],t.c,v);t.U=Xn(t);}if((t.Q&16)!=0&&t.U<t.R.f){for(e=0;e<t.R.f;e++)$e(t.e[e],e),W1(t.e[e],t.c,t.f[e]),W1(t.e[e],1,P0(t.R,e)?1:0);t.U=Xn(t);}(t.Q&512)!=0&&t.R.K&&OX(t);}function Xa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m;if(e.j==1){if(t.t!=-1&&t.i.a.length!=0&&$s(t,t.i.a),un(t.i,0),e.e){ER(t);return;}if(e.b==1){if(e.c==2)return;t.W=true,A9(t),Dtt(t,e);}}if(e.j==2){if(e.e){ER(t);return;}e.b==1&&(t.W=false,A9(t),Ma(t));}if(e.j==3&&e.b==1&&e.c==2){va(t,e.g,e.i);return;}if(e.j==4&&(pd(t._),A9(t)),e.j==6&&(t.W=false,g=e.g,m=e.i,Wj(t,g,m,false)&&e1(t.k),A9(t)),e.j==7){switch(t.W=true,t.ib=e.g,t.lb=e.i,s=Wj(t,t.ib,t.lb,true),t.X){case 2:Va(t)&&(s=true);break;case 1:(t.ib-t.hb)*(t.ib-t.hb)+(t.lb-t.kb)*(t.lb-t.kb)<100&&G5(t,t.e),s=true;break;case 3:ve(t.V,t.e,t.gb[t.e]+t.ib-t.hb),xe(t.V,t.e,t.jb[t.e]+t.lb-t.kb),t.f!=-1&&(ve(t.V,t.f,t.gb[t.f]+t.ib-t.hb),xe(t.V,t.f,t.jb[t.f]+t.lb-t.kb)),t.eb=w.Math.max(t.eb,2),e1(t.k);break;case 9:b_(t),t.X=4;case 4:if(t.I)for(r=new Zt(t.I);r.a<r.c.a.length;)P=$t(r),P.g&&P.Ob(t.ib,t.lb);for(f=0;f<t.V.q;f++)P0(t.V,f)&&(ve(t.V,f,t.gb[f]+t.ib-t.hb),xe(t.V,f,t.jb[f]+t.lb-t.kb));t.eb=w.Math.max(t.eb,2),e1(t.k);break;case 11:mt(t.I,t.v.Gb()),t.X=10;case 10:t.v.Ob(t.ib,t.lb),t.eb=w.Math.max(t.eb,2),e1(t.k);break;case 7:for(y=false,n=0;n<t.V.q&&!y;n++)y=P0(t.V,n);if(l=false,t.I)for(D=0;D<t.I.a.length&&!l;D++)l=N(t.I,D).g;if(o=w.Math.abs(t.lb-t.kb)<20?1:w.Math.exp((t.lb-t.kb)/100),A=w.Math.abs(t.ib-t.hb)<20?0:(t.ib-t.hb)/50,T=y||l,t.I&&(!T||l)){for(D=0;D<t.I.a.length;D++)(!T||N(t.I,D).g)&&N(t.I,D).Pb(o,A);t.eb=w.Math.max(t.eb,2),e1(t.k);}(!T||y)&&(bk(t.V,o,A,T),t.eb=w.Math.max(t.eb,2),e1(t.k));break;case 5:case 6:if(h=null,t.X==5){if(w.Math.abs(t.ib-o7(t.R,t.R.a-1))<3&&w.Math.abs(t.lb-U7(t.R,t.R.a-1))<3)break;Pq(t.R),He(t.R,t.ib,t.lb),He(t.R,t.hb,t.kb),h=t.R;}else h=new QA(w.Math.min(t.hb,t.ib),w.Math.min(t.kb,t.lb),w.Math.abs(t.ib-t.hb),w.Math.abs(t.lb-t.kb));if(t.I)for(D=0;D<t.I.a.length;D++)L=N(t.I,D),Q=pJ(L,h),(!t.O||!t.Q[D])&&Q!=L.g&&(L.g=Q,t.eb=w.Math.max(t.eb,1));for(i=0;i<t.V.q;i++)Q=h.Hb(vt(kt(t.V,i)),vt(pt(t.V,i))),(!t.O||!t.P[i])&&Q!=P0(t.V,i)&&(gP(t.V,i,Q),t.eb=w.Math.max(t.eb,1));s=true;break;case 8:s=true;}s&&e1(t.k);}}function Za(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I;if(o=B(d(Ut,2),h0,15,0,[B(d(Ut,1),ht,6,15,[20]),null,null,B(d(Ut,1),ht,6,15,[0,10]),null,null,B(d(Ut,1),ht,6,15,[-4,12]),B(d(Ut,1),ht,6,15,[0,0,-7.5]),null,null,null,null,B(d(Ut,1),ht,6,15,[8.571428571428571,-8.571428571428571]),null,null,null,B(d(Ut,1),ht,6,15,[-2.4])]),L=B(d(F,2),f0,7,0,[B(d(F,1),k,6,15,[146]),B(d(F,1),k,6,15,[627]),null,B(d(F,1),k,6,15,[2457,1170]),null,B(d(F,1),k,6,15,[2451,8643,2519]),B(d(F,1),k,6,15,[9362,14798]),B(d(F,1),k,6,15,[34377,-2147448999,26214]),null,B(d(F,1),k,6,15,[37449,137313,95703,34371,37815,54891,132867,-2147309741,54857,55129,-2147449005,-2147449065]),null,B(d(F,1),k,6,15,[530697,531819,899169,137289,694617,-2146951863,-2146952797,-2146939175,-2146929547,-2146929564,-2146625111,-2146931799,-2146940503,-2146931935]),B(d(F,1),k,6,15,[1007293,610915]),B(d(F,1),k,6,15,[542985,137283,2122017,530691,2206773,-2144711351,219209,2840841,137555,-2146871031,-2147264167,613705,-2145360543,-2146625271,694611,2454837,-2145356703,-2147345133,-2146928951,-2146931805,-2144641719,-2146951869,-2146625237,-2146624183,2841963,1074905,-2146625117,2799955,-2144723645,138583,859225,-2145264843,-2145216253,-2146624149,-2144700727,-2146928917,-2143905527,-2144045771,-2146789097,2288547,544407,2104323,-2146911977,-2144479405,3633737,-2146870089,-2146952169]),null,B(d(F,1),k,6,15,[8487297,2172633,2116611,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8829813]),B(d(F,1),k,6,15,[14071213])]),m=1<<e.e.length,i=0,D=0,e.e.length>7)for(y=0;y<e.e.length;y++)f=RZ(t,A,n,y),f==1?i+=m:f==2&&(D+=m),i>>>=1,D>>>=1;if(R=e.e.length-9,e.e.length>=9&&e.e.length<=25&&L[R]!=null)for(I=0;I<L[R].length;I++)for(g=(P1&L[R][I])==0,Q=Et&L[R][I],T=false;!T;T=!T){if(T){if(g)break;for(v=0,P=1;P!=m;P<<=1)v<<=1,(Q&P)!=0&&(v|=1);Q=v;}for(j=0;j<e.e.length;j++){if((Q&i)==0&&(~Q&D)==0){for(r=0,s=NC*(o[R]==null?0:o[R][I]),b=0,p=Q,h=true,l=0;l<e.e.length;l++)h&&++b,(p&1)==0&&(h=!h),p>>>=1;for(S=b>(e.e.length/2|0),y=1;y<e.e.length;y++)e.a[y]=e.a[y-1]+w.Math.sin(r),e.b[y]=e.b[y-1]+w.Math.cos(r),(Q&1)==0&&(S=!S),r+=s+(S?AA:Lo),Q>>>=1;return;}(Q&1)!=0&&(Q|=m),Q>>>=1;}}oa(e,i,D);}function Wa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M;for(T=0,h=(f=Pe(e,T),f==-1?e.length:f),n=Q1((Ct(T,h,e.length),e.substr(T,h-T)),P1,Et),T=lA(e,h),h=(D=Pe(e,T),D==-1?e.length:D),m=(Ct(T,h,e.length),e.substr(T,h-T)),S=null,P=false,g=XZ(e),g!=0&&(S=PW(e),g<0&&(P=true),h=w.Math.abs(g)),T=lA(e,h),h=(Q=Pe(e,T),Q==-1?e.length:Q),x=Qn((Ct(T,h,e.length),e.substr(T,h-T))),T=lA(e,h),h=(o=Pe(e,T),o==-1?e.length:o),tt=Qn((Ct(T,h,e.length),e.substr(T,h-T))),T=lA(e,h),h=(L=Pe(e,T),L==-1?e.length:L),M=Qn((Ct(T,h,e.length),e.substr(T,h-T))),T=lA(e,h),h=(s=Pe(e,T),s==-1?e.length:s),b=Q1((Ct(T,h,e.length),e.substr(T,h-T)),P1,Et),A=_0(t.j,x,-tt,-M),A+1!=n&&(!t.b&&(t.b=new yP()),Ye(t.b,m1(n),m1(A))),S!=null&&(X0(t.j,A,6),yf(t.j,A,S,P)),b!=0&&We(t.j,A,b,false),at(m,"A")||at(m,"*")?T1(t.j,A,1,true):at(m,"Q")?(v=c(F,k,6,1,15,1),v[0]=6,yf(t.j,A,v,true)):X0(t.j,A,SA(m,67));(T=lA(e,h))!=-1;)if(h=(i=Pe(e,T),i==-1?e.length:i),j=(Ct(T,h,e.length),e.substr(T,h-T)),l=j.indexOf(k0(61)),y=(Ct(0,l,j.length),j.substr(0,l)),at(y,"CHG"))I=Q1((Gt(l+1,j.length+1),j.substr(l+1)),P1,Et),E0(t.j,A,I);else if(at(y,"RAD"))switch(I=Q1((Gt(l+1,j.length+1),j.substr(l+1)),P1,Et),I){case 1:Oe(t.j,A,16);break;case 2:Oe(t.j,A,32);break;case 3:Oe(t.j,A,48);}else if(!at(y,"CFG"))if(at(y,"MASS"))I=Q1((Gt(l+1,j.length+1),j.substr(l+1)),P1,Et),br(t.j,A,I);else if(at(y,"VAL"))I=Q1((Gt(l+1,j.length+1),j.substr(l+1)),P1,Et),XA(t.j,A,I==-1?0:I==0?-1:I);else if(at(y,"HCOUNT"))switch(I=Q1((Gt(l+1,j.length+1),j.substr(l+1)),P1,Et),I){case 0:break;case  -1:T1(t.j,A,1792,true);break;case 1:T1(t.j,A,128,true);break;case 2:T1(t.j,A,384,true);break;default:T1(t.j,A,896,true);}else if(at(y,"SUBST")){if(I=Q1((Gt(l+1,j.length+1),j.substr(l+1)),P1,Et),I==-1)T1(t.j,A,q1,true);else if(I>0){for(p=0,r=0;r<t.j.r;r++)(z(t.j,0,r)==A||z(t.j,1,r)==A)&&++p;I>p&&T1(t.j,A,C0,true);}}else if(at(y,"RBCNT"))switch(I=Q1((Gt(l+1,j.length+1),j.substr(l+1)),P1,Et),I){case 3:case  -1:T1(t.j,A,112,true);break;case 1:T1(t.j,A,8,true);break;case 2:T1(t.j,A,104,true);break;case 4:T1(t.j,A,56,true);}else at(y,"RGROUPS")&&(Wq("unimplemented"),null.vd(),null.vd()&&(R="R"+null.vd(),VP(t.j,A,R)));}function _a(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h;for(o=U0(t.A,t.a),gt(V(o,1),0)?(uA(t.b,true),JU(t.w,e4)):JU(t.w,oV),N8(t.D,HA(t.A,t.a)==null?"":Jh(t.A,t.a)),e=V(o,ly),gt(V(e,WQ),0)?Wt(t.g,2):G(e,2)==0?Wt(t.g,1):G(e,4)==0?Wt(t.g,3):Wt(t.g,0),y=V(o,120),G(y,112)==0?Wt(t.s,1):G(y,96)==0?Wt(t.s,2):G(y,8)==0?Wt(t.s,3):G(y,104)==0?Wt(t.s,4):G(y,88)==0?Wt(t.s,5):G(y,56)==0?Wt(t.s,6):Wt(t.s,0),T=Jt(q0(V(o,f9),22)),Wt(t.t,T==0?0:T-2),s=V(o,Pr),f=-1,i=0;i<Ti.length;i++)if(n0(s,Ti[i])){f=i;break;}f!=-1?Wt(t.r,f):(n=new vn("Custom:"),gt(V(s,U8),0)&&(n.a+=" 0"),gt(V(s,rr),0)&&(n.a+=" 3"),gt(V(s,ir),0)&&(n.a+=" 4"),gt(V(s,fr),0)&&(n.a+=" 5"),gt(V(s,Dr),0)&&(n.a+=" 6"),gt(V(s,ur),0)&&(n.a+=" 7"),gt(V(s,Rf),0)&&(n.a+=" >=8"),t.C=s,Nt(t.r,n.a),Wt(t.r,Ti.length)),D=V(o,Ui),G(D,$Q)==0?Wt(t.n,1):G(D,w2)==0?Wt(t.n,2):G(D,g2)==0?Wt(t.n,3):G(D,aQ)==0?Wt(t.n,4):G(D,qA)==0?Wt(t.n,5):G(D,I0)==0?Wt(t.n,6):G(D,Li)==0?Wt(t.n,7):G(D,SP)==0?Wt(t.n,8):G(D,Cf)==0?Wt(t.n,9):G(D,3276800)==0?Wt(t.n,10):G(D,2228224)==0?Wt(t.n,11):G(D,2490368)==0?Wt(t.n,12):Wt(t.n,0),P=V(o,Hf),G(P,Dy)==0?Wt(t.j,1):G(P,uy)==0?Wt(t.j,2):G(P,Qy)==0?Wt(t.j,3):G(P,oy)==0?Wt(t.j,4):G(P,y6)==0?Wt(t.j,5):G(P,l6)==0?Wt(t.j,6):G(P,to)==0?Wt(t.j,7):G(P,d2)==0?Wt(t.j,8):G(P,Uy)==0?Wt(t.j,9):G(P,Ly)==0?Wt(t.j,10):G(P,eo)==0?Wt(t.j,11):G(P,T6)==0?Wt(t.j,12):G(P,h6)==0?Wt(t.j,13):G(P,c6)==0?Wt(t.j,14):Wt(t.j,0),A=V(o,i9),G(A,_Q)==0?Wt(t.i,1):G(A,pf)==0?Wt(t.i,2):G(A,jf)==0?Wt(t.i,3):Wt(t.i,0),r=V(o,nP),G(r,1792)==0?Wt(t.k,1):G(r,1664)==0?Wt(t.k,2):G(r,1408)==0?Wt(t.k,3):G(r,128)==0?Wt(t.k,4):G(r,384)==0?Wt(t.k,5):G(r,896)==0?Wt(t.k,6):G(r,1536)==0?Wt(t.k,7):G(r,ie)==0?Wt(t.k,8):G(r,1152)==0?Wt(t.k,9):Wt(t.k,0),Q=V(o,oi),G(Q,98304)==0?Wt(t.p,1):G(Q,81920)==0?Wt(t.p,2):G(Q,49152)==0?Wt(t.p,3):G(Q,En)==0?Wt(t.p,4):Wt(t.p,0),L=q0(V(o,B2),47),Wt(t.o,Jt(L)),gt(V(o,q1),0)&&uA(t.c,true),gt(V(o,C0),0)&&uA(t.f,true),h=V(o,v6),n0(h,XQ)?Wt(t.u,1):n0(h,ZQ)?Wt(t.u,2):Wt(t.u,0),gt(V(o,de),0)&&uA(t.e,true),gt(V(o,re),0)&&uA(t.d,true),t.q&&(l=V(o,h8),G(l,cn)==0?Wt(t.q,1):G(l,To)==0?Wt(t.q,2):G(l,h8)==0?Wt(t.q,3):Wt(t.q,0));}function Lp(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;if(v=new s1(),A=new s1(),i=new s1(),h=new c9(),T=new c9(),P=z(t.L,0,e),r=z(t.L,1,e),t.zb(e,X1(t.R,kt(t.L,P)),K1(t.R,pt(t.L,P)),X1(t.R,kt(t.L,r)),K1(t.R,pt(t.L,r))),!P0(t.L,P)&&!P0(t.L,r)&&gt(V(Y(U0(t.L,P),U0(t.L,r)),re),0)&&Z1(t,-8),t.o[P]?(v.a=t.o[P].a,v.c=t.o[P].b):(v.a=X1(t.R,kt(t.L,P)),v.c=K1(t.R,pt(t.L,P))),t.o[r]?(v.b=t.o[r].a,v.d=t.o[r].b):(v.b=X1(t.R,kt(t.L,r)),v.d=K1(t.R,pt(t.L,r))),(Ae(t.L,e)&s8)!=0){cA(t,v)&&t.rb(v),Z1(t,-9);return;}switch(f=l1(t.L,e)==8?0:l1(t.L,e)==16?1:dt(t.L,e),f){case 1:if(D=l1(t.L,e),(t.G&128)!=0&&(D==257||D==129)&&(m=z(t.L,0,e),y=ne(t.L,m),y!=0)){for(s=VA(t.L,m),L=0,n=0;n<t.L.f;n++)ne(t.L,n)==y&&VA(t.L,n)==s&&++L;L==1&&(D=1);}switch(D){case 1:cA(t,v)&&Hn(t,v,P,r);break;case 257:m5(t,v,P,r);break;case 129:for(b=v.b-v.a,R=v.d-v.c,vr(t.L,u1(t.L,P,r))?(Q=-3,o=-3):(Q=t.p[P],o=Yh(t,P),Q==Uu(t.L,P)&&(Q=o)),l=2;l<17;l+=2)A.a=v.a+l*b/17-l*R/128,A.c=v.c+l*R/17+l*b/128,A.b=v.a+l*b/17+l*R/128,A.d=v.c+l*R/17-l*b/128,cA(t,A)&&(Z1(t,l<9?Q:o),t.qb(A),Z1(t,t.Q));break;case 16:cA(t,v)&&GZ(t,v,P,r);}break;case 0:case 2:if((t.s[P]||$1(t.L,P)==2)&&(t.s[r]||$1(t.L,r)==2)&&!fA(t.L,e)&&f==2){if(!cA(t,v))break;Df(t,v.b-v.a,v.d-v.c,h),b=h.a/2,R=h.b/2,A.a=v.a+b,A.c=v.c+R,A.b=v.b+b,A.d=v.d+R,i.a=v.a-b,i.c=v.c-R,i.b=v.b-b,i.d=v.d-R,l1(t.L,e)==386&&iL(A,i),Hn(t,A,P,r),f==2?Hn(t,i,P,r):EQ(t,i,P,r);}else (t.s[r]||$1(t.L,r)==2)&&f==2?fp(t,v,e,false):(t.s[P]||$1(t.L,P)==2)&&f==2?fp(t,v,e,true):(g=x5(t.L,e),g==0&&(g=1),A.a=v.a,A.c=v.c,A.b=v.b,A.d=v.d,Df(t,v.b-v.a,v.d-v.c,h),g>0?(i.a=v.a+h.a,i.c=v.c+h.b,i.b=v.b+h.a,i.d=v.d+h.b,(ii(t,P,r,1,T)||O(t.L,P)>1)&&(i.a+=T.a+h.b,i.c+=T.b-h.a),(ii(t,r,P,-1,T)||O(t.L,r)>1)&&(i.b+=T.a-h.b,i.d+=T.b+h.a)):(i.a=v.a-h.a,i.c=v.c-h.b,i.b=v.b-h.a,i.d=v.d-h.b,(ii(t,P,r,-1,T)||O(t.L,P)>1)&&(i.a+=T.a+h.b,i.c+=T.b-h.a),(ii(t,r,P,1,T)||O(t.L,r)>1)&&(i.b+=T.a-h.b,i.d+=T.b+h.a)),l1(t.L,e)==386&&iL(A,i),cA(t,A)&&Hn(t,A,P,r),f==2?cA(t,i)&&Hn(t,i,P,r):cA(t,i)&&EQ(t,i,P,r));break;case 3:cA(t,v)&&(Hn(t,v,P,r),Df(t,v.b-v.a,v.d-v.c,h),Z8(t,v,P,r,h.a,h.b,A),Z8(t,v,P,r,-h.a,-h.b,A));break;case 4:cA(t,v)&&(Df(t,v.b-v.a,v.d-v.c,h),Z8(t,v,P,r,1.5*h.a,1.5*h.b,A),Z8(t,v,P,r,.5*h.a,.5*h.b,A),Z8(t,v,P,r,-0.5*h.a,-0.5*h.b,A),Z8(t,v,P,r,-1.5*h.a,-1.5*h.b,A));break;case 5:cA(t,v)&&(Hn(t,v,P,r),Df(t,v.b-v.a,v.d-v.c,h),Z8(t,v,P,r,2*h.a,2*h.b,A),Z8(t,v,P,r,h.a,h.b,A),Z8(t,v,P,r,-h.a,-h.b,A),Z8(t,v,P,r,-2*h.a,-2*h.b,A));}t.C==-8&&Z1(t,-9);}function $a(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0,v1;if(M=e.i,X=e.j,p=e.f,S=e.g,!n[M]&&!n[X])for(Tt=p.c.length>S.c.length?p:S,wt=p.c.length>S.c.length?M:X,n[wt]=true,x=P==null?0:P[wt],a=0;a<Tt.d.length;a++)D=Tt.e[Tt.d[a]],sD(t,D,z0(Tt.b[x],Tt.d[a]));if(n[M]?(tt=X,j=S,s=e.b?1:0):(tt=M,j=p,s=e.b?0:1),L=e.a,bt=z(t.o,s,L),St=z(t.o,1-s,L),I=P==null?0:P[tt],b=j.f[bt],v=j.f[St],et=z0(j.b[I],j.d[b]),Qt=t.k[bt],_=ar(G8(et,z0(j.b[I],j.d[v]))),v1=ar(G8(Qt,t.k[St])),i=ob(_,v1),R=c(M2,m2,29,j.d.length,0,1),i<.0010000000474974513)for(a=0;a<j.d.length;a++)D=j.e[j.d[a]],D!=bt&&D!=St&&(R[a]=i>RA?G8(et,z0(j.b[I],j.d[a])):G8(z0(j.b[I],j.d[a]),et));else for(i<3.1405926535422957?yt=new Ne(v1.b*_.c-v1.c*_.b,-(v1.a*_.c-v1.c*_.a),v1.a*_.b-v1.b*_.a):w.Math.abs(v1.a)>=w.Math.abs(v1.b)&&w.Math.abs(v1.a)>=w.Math.abs(v1.c)?yt=new Ne(-(v1.b+v1.c)/v1.a,1,1):w.Math.abs(v1.b)>=w.Math.abs(v1.a)&&w.Math.abs(v1.b)>=w.Math.abs(v1.c)?yt=new Ne(1,-(v1.a+v1.c)/v1.b,1):yt=new Ne(1,1,-(v1.a+v1.b)/v1.c),rt=Q2(ar(yt),i),a=0;a<j.d.length;a++)D=j.e[j.d[a]],D!=bt&&D!=St&&(R[a]=TQ(G8(z0(j.b[I],j.d[a]),et),rt));for(n[tt]=true,st=0;st<O(t.o,bt);st++)T=W(t.o,bt,st),T!=St&&(m=j.f[T],tq(t,T,new Ne(R[m].a+Qt.a,R[m].b+Qt.b,R[m].c+Qt.c)));for(Yt=lL(t,e.p),h=-1,Q=0,o=0,D1=0;D1<t.i[A].length;D1++){for(h=t.i[A][D1],rt=Q2(v1,U1*h/180-Yt),a=0;a<j.d.length;a++)D=j.e[j.d[a]],D!=bt&&D!=St&&(sD(t,D,R[a]),Hr(TQ(t.k[D],rt),Qt));if(y=E5(t,e),y0=y,jt=0,y<I6)t1=y/h4,t.e[A][D1]=t.d[A][D1]*(1-t1*t1);else {for(l=t.i[A][D1],H1=Ee,ct=0;ct<2;ct++)if(h=r[D1][ct],h!=l){for(rt=Q2(v1,U1*h/180-Yt),$=0;$<j.d.length;$++)D=j.e[j.d[$]],D!=bt&&D!=St&&(sD(t,D,R[$]),Hr(TQ(t.k[D],rt),Qt));Kt=E5(t,e),Kt<y*qf&&Kt<H1&&(t.i[A][D1]=r[D1][ct],t1=Kt/.16000000476837162,t.e[A][D1]=t.d[A][D1]*(1-t1*t1),y0=Kt,jt=ct+1,H1=Kt);}H1==Ee&&y<h4&&(t1=y/h4,t.e[A][D1]=t.d[A][D1]*(1-t1*t1));}t.e[A][t.a[A]]<t.e[A][D1]&&(t.a[A]=D1,Q=jt,o=y0);}for(Q0=0,Lt=0;Lt<t.i[A].length;Lt++)t.e[A][Lt]>0&&(Q0+=t.e[A][Lt]);if(t.e[A][t.a[A]]<=0)for(t.e[A][t.a[A]]=1,f=Q==1?-8:Q==2?8:Rn(t.f)<.5?-8:8,V1=1;V1<=4;V1++){for(h=t.i[A][t.a[A]]+f*V1<<16>>16,rt=Q2(v1,U1*h/180-Yt),$=0;$<j.d.length;$++)D=j.e[j.d[$]],D!=bt&&D!=St&&(sD(t,D,R[$]),Hr(TQ(t.k[D],rt),Qt));if(g=E5(t,e),o-g<.05)break;t.i[A][t.a[A]]=h;}else for(r1=0;r1<t.i[A].length;r1++)t.e[A][r1]/=Q0;if(h!=t.i[A][t.a[A]])for(rt=Q2(v1,U1*t.i[A][t.a[A]]/180-Yt),$=0;$<j.d.length;$++)D=j.e[j.d[$]],D!=bt&&D!=St&&(sD(t,D,R[$]),Hr(TQ(t.k[D],rt),Qt));Jm(t,L,t.i[A][t.a[A]]);}function sp(){sp=d1,F4=B(d(Ut,1),ht,6,15,[0,1.00794,4.0026,6.941,9.0122,10.811,12.011,14.007,15.999,18.998,20.18,22.99,24.305,26.982,28.086,30.974,32.066,35.453,39.948,39.098,40.078,44.956,47.867,50.942,51.996,54.938,55.845,58.933,58.693,63.546,65.39,69.723,72.61,74.922,78.96,79.904,83.8,85.468,87.62,88.906,91.224,92.906,95.94,98.906,101.07,102.91,106.42,107.87,112.41,114.82,118.71,121.76,127.6,126.9,131.29,132.91,137.33,138.91,140.12,140.91,144.24,146.92,150.36,151.96,157.25,158.93,162.5,164.93,167.26,168.93,173.04,174.97,178.49,180.95,183.84,186.21,190.23,192.22,195.08,196.97,200.59,204.38,207.2,208.98,209.98,209.99,222.02,223.02,226.03,227.03,232.04,231.04,238.03,237.05,239.05,241.06,244.06,249.08,252.08,252.08,257.1,258.1,259.1,262.11,267.12,268.13,271.13,270.13,277.15,276.15,By,By,283.17,285.18,vy,vy,293.2,Fy,Fy,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0141,3.016,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71.0787,156.18828,114.10364,115.0877,103.1447,128.13052,129.11458,57.05182,137.14158,113.15934,113.15934,128.17428,131.19846,147.17646,97.11658,87.0777,101.10458,186.2134,163.17546,99.13246]),v4=B(d(Ut,1),ht,6,15,[0,1.007825,4.0026,7.016003,9.012182,11.009305,12,14.003074,15.994915,18.998403,19.992435,22.989767,23.985042,26.98153,27.976927,30.973762,31.97207,34.968852,39.962384,38.963707,39.962591,44.95591,47.947947,50.943962,51.940509,54.938047,55.934939,58.933198,57.935346,62.939598,63.929145,68.92558,73.921177,74.921594,79.91652,78.918336,83.911507,84.911794,87.905619,88.905849,89.904703,92.906377,97.905406,89.92381,101.904348,102.9055,105.903478,106.905092,113.903357,114.90388,119.9022,120.903821,129.906229,126.904473,131.904144,132.905429,137.905232,138.906346,139.905433,140.907647,141.907719,135.92398,151.919729,152.921225,157.924099,158.925342,163.929171,164.930319,165.93029,168.934212,173.938859,174.94077,179.946545,180.947992,183.950928,186.955744,191.961467,192.962917,194.964766,196.966543,201.970617,204.974401,207.976627,208.980374,193.98818,195.99573,199.9957,201.00411,206.0038,210.00923,232.038054,216.01896,238.050784,229.03623,232.041169,237.05005,238.05302,242.06194,240.06228,243.06947,243.07446,248.08275,251.08887,253.09515,257.10295,257.10777,271.13,270.13,277.15,276.15,By,By,283.17,285.18,vy,vy,291.2,Fy,Fy,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.014,3.01605,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),V2=B(d(F,1),k,6,15,[6,1,7,8]);}function aa(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0,v1,g1,T0,G0,OA,b0,w1,De,Xe,gA;for(X=0,Q=0,st=0,Yt=c(Pt,ft,6,e.q,16,1),Lt=c(Pt,ft,6,e.q,16,1),D1=c(Pt,ft,6,e.q,16,1),r=0;r<e.q;r++)A[r]==n&&(D1[r]=true,Yt[r]=true,++Q,++X);for(i=0;i<e.q;i++)if(D1[i])for(St=0;St<e.j[i];St++)p=e.i[i][St],Yt[p]||(Yt[p]=true,++Q,++st);for(f=0;f<e.q;f++)if(Yt[f]&&!D1[f]&&!Lt[f])for(St=0;St<e.e[f];St++)p=e.i[f][St],Yt[p]||(Lt[p]=true,Yt[p]=true,++Q);for(y=0,s=0;s<e.r;s++)Yt[e.D[0][s]]&&Yt[e.D[1][s]]&&++y;for(wt=new zA(Q,y),fi(e,wt,Yt,false,null),pe(wt,true),et=c(F,k,6,X,15,1),ct=c(F,k,6,Q,15,1),Tt=c(F,k,6,X+st,15,1),T0=c(F,k,6,e.q,15,1),M=0,rt=0,a=0,D=0;D<e.q;D++)Yt[D]&&(EP(e,D,true)&&T1(wt,rt,Qr,true),D1[D]||(wt.u[rt]|=I0),(D1[D]||!Lt[D])&&(Tt[a]=rt,T0[D]=a,++a),D1[D]&&(et[M]=rt,++M),ct[rt]=D,wt.C[rt]==1&&(wt.A[rt]=2,wt.T&=wt.C[rt]==1?0:7),++rt);if(j=null,H1=null,h=null,Q0=null,r1=false,De=!!t.a&&Ux(t.a)&&Q<=32,De){for(h=new EA(wt,512),P=0;P<wt.f;P++)if(h.db[P]==3){De=false;break;}for(L=0;L<wt.g;L++)if(h.o[L]==3){De=false;break;}De&&K5(h);}if(t.a&&!De&&++t.a.d,wt.T|=8,De&&(r1=Qj(h),Q0=ke(h),T=WB(t.a,Q0),T)){for(Kt=(ui(h),h.H),j=new f1(),I=T.a,x=0,tt=I.length;x<tt;++x){for(S=I[x],jt=0;jt<wt.q;jt++)l=S[Kt[jt]],ve(wt,jt,l.a),xe(wt,jt,l.b),TP(wt,jt,r1?-l.c:l.c);mt(j,new ku(wt));}H1=T.c;}if(!j){for(b0=new NQ(wt),ao(b0,t.d),w5(b0,t.c,16),j=new f1(),o=vQ(b0),j.a.push(o),R=vQ(b0);R;)j.a.push(R),R=vQ(b0);for(g1=Ee,v=new Zt(j);v.a<v.c.a.length;)g=$t(v),g1=w.Math.min(g1,g.e);for(w1=2*g1,t1=j.a.length-1;t1>=0;t1--)(Fe(t1,j.a.length),j.a[t1]).e>w1&&LA(j,t1);for(H1=c(Ut,ht,6,j.a.length,15,1),y0=0,V1=0,Qt=0;Qt<j.a.length;Qt++)g=(Fe(Qt,j.a.length),j.a[Qt]),H1[Qt]=w.Math.pow(10,(g1-g.e)/13.600000000000001),y0+=H1[Qt];for(bt=0;bt<j.a.length;bt++)H1[bt]/=y0;if(t.b){for(Xe=0,v1=Ee,b=new Zt(j);b.a<b.c.a.length;)g=$t(b),_=NY(ts(g,g.o)),g.n=_,isNaN(_)||(v1=w.Math.min(v1,_),++Xe),_x(g,wt);for($=v1+2.72,m=new Zt(j);m.a<m.c.a.length;)g=$t(m),!isNaN(g.n)&&g.n>$&&(g.n=NaN,--Xe);if(Xe!=0){for(G0=c(Ut,ht,6,Xe,15,1),OA=0,V1=0,yt=j.a.length-1;yt>=0;yt--)g=(Fe(yt,j.a.length),j.a[yt]),isNaN(g.n)?LA(j,yt):(G0[V1]=w.Math.pow(10,(v1-g.n)/1.36),OA+=G0[V1],++V1);for(H1=c(Ut,ht,6,Xe,15,1),St=0;St<Xe;St++)H1[St]=G0[St]/OA;}}if(De){for(Kt=(ui(h),h.H),S=k1(M2,[nA,m2],[128,29],0,[j.a.length,Kt.length],2),St=0;St<S.length;St++)for(jt=0;jt<Kt.length;jt++)gA=z0((Fe(St,j.a.length),j.a[St]),jt),S[St][Kt[jt]]=new Ne(gA.a,gA.b,r1?-gA.c:gA.c);_B(t.a,Q0,new Dg(S,H1));}}return new Cv(et,ct,Tt,T0,Pf(j,c(zE,mV,96,0,0,1)),H1);}function yp(t,e){Hs();var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_;switch(p=It(t,e),et=t.J[e].a,_=t.J[e].b,p){case 1:{if(I=t.j[e],I==0?(o=VL(t,true),y=0):(o=et-kt(t,t.i[e][0]),y=_-pt(t,t.i[e][0])),I==1)v=_0(t,et+E4*o+x4*y,_-x4*o+E4*y,0);else if(I==2)o=et-.5*(kt(t,t.i[e][0])+kt(t,t.i[e][1])),y=_-.5*(pt(t,t.i[e][0])+pt(t,t.i[e][1])),v=_0(t,et+o,_+y,0);else if(I==3){for(tt=t.i[e][0],g=1;g<3;g++)f=t.k[e][g],(t.H[f]==129||t.H[f]==257)&&(tt=t.i[e][g]);if(A=w.Math.abs(ze(bA(t.J[e].a,t.J[e].b,kt(t,t.i[e][0]),pt(t,t.i[e][0])),bA(t.J[e].a,t.J[e].b,kt(t,t.i[e][1]),pt(t,t.i[e][1])))),n=w.Math.abs(ze(bA(t.J[e].a,t.J[e].b,kt(t,t.i[e][0]),pt(t,t.i[e][0])),bA(t.J[e].a,t.J[e].b,kt(t,t.i[e][2]),pt(t,t.i[e][2])))),P=w.Math.abs(ze(bA(t.J[e].a,t.J[e].b,kt(t,t.i[e][1]),pt(t,t.i[e][1])),bA(t.J[e].a,t.J[e].b,kt(t,t.i[e][2]),pt(t,t.i[e][2])))),x=true,A>n&&A>P?n+P<U1&&(x=false,o=et-.5*(kt(t,t.i[e][0])+kt(t,t.i[e][1])),y=_-.5*(pt(t,t.i[e][0])+pt(t,t.i[e][1]))):n>A&&n>P?A+P<U1&&(x=false,o=et-.5*(kt(t,t.i[e][0])+kt(t,t.i[e][2])),y=_-.5*(pt(t,t.i[e][0])+pt(t,t.i[e][2]))):A+n<U1&&(x=false,o=et-.5*(kt(t,t.i[e][1])+kt(t,t.i[e][2])),y=_-.5*(pt(t,t.i[e][1])+pt(t,t.i[e][2]))),x){for(M=t.i[e][0],Q=Ee,h=0;h<3;h++)r=t.i[e][h],r!=tt&&(D=w.Math.pow(t.J[e].a-t.J[r].a,2)+w.Math.pow(t.J[e].b-t.J[r].b,2),D<Q&&(M=r,Q=D,z1()));v=_0(t,(t.J[tt].a+t.J[M].a)/2,(t.J[tt].b+t.J[M].b)/2,0);}else v=_0(t,et+o,_+y,0);}else v=_0(t,et+o,_+y,0);X0(t,v,1),O0(t,e,v,1);}break;case 2:if(S=t.j[e],S==1)o=et-kt(t,t.i[e][0]),y=_-pt(t,t.i[e][0]),v=_0(t,et+(mo*o-ko*y)*.7,_+(ko*o+mo*y)*.7,0),X0(t,v,1),O0(t,e,v,1),v=_0(t,et+(M4*o-q4*y)*.7,_+(q4*o+M4*y)*.7,0),X0(t,v,1),O0(t,e,v,1);else if(S==2)L=et-kt(t,t.i[e][0]),l=_-pt(t,t.i[e][0]),s=et-kt(t,t.i[e][1]),T=_-pt(t,t.i[e][1]),R=w.Math.sqrt(L*L+l*l)*.7,j=w.Math.sqrt(s*s+T*T)*.7,o=L+s,y=l+T,b=w.Math.sqrt(o*o+y*y),i=(R+j)/2,o=o/b*i,y=y/b*i,X=CQ(t,e),v=_0(t,et+H4*o-S4*y,_+S4*o+H4*y,0),X0(t,v,1),X>-1?O0(t,e,v,1):O0(t,e,v,257),v=_0(t,et+V4*o-I4*y,_+I4*o+V4*y,0),X0(t,v,1),O0(t,e,v,1);else for(m=0;m<p;m++)v=_0(t,et,_,0),X0(t,v,1),O0(t,e,v,1);break;case 3:t.i[e][0]>0?(o=(et-kt(t,t.i[e][0]))*.7,y=(_-pt(t,t.i[e][0]))*.7,v=_0(t,et+o,_+y,0),X0(t,v,1),O0(t,e,v,1),v=_0(t,et-y,_+o,0),X0(t,v,1),O0(t,e,v,1),v=_0(t,et+y,_-o,0),X0(t,v,1),O0(t,e,v,1)):(o=VL(t,true),y=VL(t,true),v=_0(t,et+o,_+y,0),X0(t,v,1),O0(t,e,v,1),v=_0(t,et-y*mo,_+o*ko,0),X0(t,v,1),O0(t,e,v,1),v=_0(t,et-y*mo,_-o*ko,0),X0(t,v,1),O0(t,e,v,1));break;default:{for(m=0;m<p;m++)v=_0(t,et,_,0),X0(t,v,1),O0(t,e,v,1);break;}}}function ttt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct;if((t.fb!=CD(t.k)||t.N!=Vr(t.k))&&(t.fb=CD(t.k),t.N=Vr(t.k),t.eb<3&&(t.eb=3)),P=fT(e),f=iB(e),ae(e,P),mT(e,0,0,t.fb,t.N),(t.U&4)!=0&&t.I.a.length==0&&(y=.5*t.fb,l=.5*t.N,r=.03999999910593033*t.fb,A=new JD(),vT(A,y-r,l,y+r,l),A.j=true,mt(t.I,A)),o=false,t.eb!=0){switch((t.U&1)!=0&&t.eb!=5&&Cm(t),t.G=(t.U&4)!=0?new PR(new wh(t.L,t.Y),t.I):(t.U&2)!=0?new pB(t.L,t.Y,t.I):(t.U&1)!=0?new Yd(t.L,t.I):new $v(t.V,t.I),rY(t.G,f,P),pS(t.G,t.T),HS(t.G,(t.U&1)==0?0:(L=Yy,L.startsWith(Ky)||L.startsWith(Xy)||L.startsWith(Zy)?L5(P,oo):(Wr(),P&Sn|vt(w.Math.round(oo*((P&PP)>>16)))<<16|vt(w.Math.round(oo*((P&AP)>>8)))<<8|vt(w.Math.round(oo*(P&255)))))),OO(t.G,t.$),CS(t.G,t.H|8|(t.w==19?80:0)),t.eb){case 6:case 4:case 5:hJ(t,e);break;case 3:R=b5(t.G,e,new QA(0,0,t.fb,t.N),0),R&&(t.U&1)!=0&&I3(R,t.V);break;case 2:j=Uj(t.G,e,new QA(0,0,t.fb,t.N),0),o=!!j&&!(j.c==1&&j.a==0&&j.b==0);}t.eb=0;}switch(t.G&&Q_(t.G,e),o||YK(t,e),t.G&&(YY(t.G,e),PG(t.G,e)),t.t!=-1&&t.i.a.length!=0&&(I=vt(kt(t.V,t.t)),_=vt(pt(t.V,t.t)),h=t.i.a,p=KG(t,h),ae(e,p==1?f:p==2?-16776961:fy),p==1?h=(J1(),Z0)[SA(h,t.c)]:p==2&&(h=oA(t.j,0,h.length)),i=3*(rt=e.Jc(),rt.getFontSize())/2|0,eL(e,i,false,false),hT(e,I,_,h),p==4&&(ae(e,qP),kT(e,I+GL(e,h).b/2,_+i,"<unknown>")),p==2&&(ae(e,fy),hT(e,I+GL(e,h).b,_,HD(t.j,h.length)))),ae(e,f),t.X){case 1:switch(x=vt(t.hb),$=vt(t.kb),t.t==-1||t.t==t.e?(tt=vt(t.ib),a=vt(t.lb)):(tt=vt(kt(t.V,t.t)),a=vt(pt(t.V,t.t))),t.w){case 5:Ir(e,x,$,tt,a);break;case 6:M=($-a)/9|0,st=(tt-x)/9|0,T=new GD(3),He(T,x,$),He(T,tt+M,a+st),He(T,tt-M,a-st),YU(e,new nD(T));break;case 23:for(M=tt-x,st=a-$,Q=2;Q<17;Q+=2)X=x+(Q*M/17|0)-(Q*st/128|0),Tt=$+(Q*st/17|0)+(Q*M/128|0),et=x+(Q*M/17|0)+(Q*st/128|0),wt=$+(Q*st/17|0)-(Q*M/128|0),Ir(e,X,Tt,et,wt);}break;case 2:if(t.q>0&&Ir(e,vt(t.hb),vt(t.kb),vt(t.o[0]),vt(t.p[0])),t.q>1)for(Q=1;Q<t.q;Q++)Ir(e,vt(t.o[Q-1]),vt(t.p[Q-1]),vt(t.o[Q]),vt(t.p[Q]));break;case 5:ae(e,(m=(v=SD(e),v!=0?v:zy),e5(m,(s=Yy,s.startsWith(Ky)||s.startsWith(Xy)||s.startsWith(Zy)?yV:lV)))),Hx(e,new nD(t.R)),ae(e,f);break;case 6:I=t.hb<t.ib?vt(t.hb):vt(t.ib),_=t.kb<t.lb?vt(t.kb):vt(t.lb),S=vt(w.Math.abs(t.ib-t.hb)),D=vt(w.Math.abs(t.lb-t.kb)),ae(e,(b=(g=SD(e),g!=0?g:zy),e5(b,(L=Yy,L.startsWith(Ky)||L.startsWith(Xy)||L.startsWith(Zy)?yV:lV)))),ct=e.Jc(),ct.drawRectangle(I,_,S,D),ae(e,f);break;case 8:x=vt(t.hb),$=vt(t.kb),t.t==-1||t.t==t.e?(tt=vt(t.ib),a=vt(t.lb)):(tt=vt(kt(t.V,t.t)),a=vt(pt(t.V,t.t))),ae(e,(n=fT(e),Os(-8388608,n))),Ir(e,x,$,tt,a),ae(e,f);}}function lp(t,e,A){var n,P,r,i,f,D;for(r=0,YA(t.b)?(r=Y(r,1),yf(t.A,e,A,true)):yf(t.A,e,A,false),B0(t.g)==2?cI(t.A,e)||(r=Y(r,R6)):Bn(t.A,e)||(B0(t.g)==1?r=Y(r,2):B0(t.g)==3&&(r=Y(r,4))),f=0,P=0;P<O(t.A,e);P++)gt(V(U0(t.A,W(t.A,e,P)),re),0)&&fA(t.A,xt(t.A,e,P))&&++f;switch(B0(t.s)){case 1:f==0&&(r=Y(r,112));break;case 2:f<=2&&(r=Y(r,96));break;case 3:r=Y(r,8);break;case 4:f<3&&(r=Y(r,104));break;case 5:f<4&&(r=Y(r,88));break;case 6:r=Y(r,56);}switch(B0(t.t)!=0&&(r=Y(r,j1(B0(t.t)+2,22))),D=B0(t.r),D==Ti.length?r=Y(r,t.C):D!=0&&(r=Y(r,Ti[D])),B0(t.i)){case 1:r=Y(r,_Q);break;case 2:r=Y(r,pf);break;case 3:r=Y(r,jf);}switch(i=uI(t.A,e),B0(t.n)){case 1:i==1?r=Y(r,q1):i<1&&(r=Y(r,$Q));break;case 2:i==2?r=Y(r,q1):i<2&&(r=Y(r,w2));break;case 3:i==3?r=Y(r,q1):i<3&&(r=Y(r,g2));break;case 4:i==2?r=Y(r,q1):i<2&&(r=Y(r,aQ));break;case 5:i==3?r=Y(r,q1):i<3&&(r=Y(r,qA));break;case 6:i==0&&(r=Y(r,C0));break;case 7:i==1?r=Y(r,C0):i<1&&(r=Y(r,Li));break;case 8:i==2?r=Y(r,C0):i<2&&(r=Y(r,SP));break;case 9:i==3?r=Y(r,C0):i<3&&(r=Y(r,Cf));break;case 10:i==0?r=Y(r,3276800):r=Y(r,aQ);break;case 11:i==0?r=Y(r,2228224):r=Y(r,qA);break;case 12:i<=1?r=Y(r,1099513856e3):i<=3&&(r=Y(r,qA));}switch(n=$T(t.A,e),B0(t.j)){case 1:n==0&&(r=Y(r,Dy));break;case 2:n<=1&&(r=Y(r,uy));break;case 3:n<=2&&(r=Y(r,Qy));break;case 4:n<=3&&(r=Y(r,oy));break;case 5:n<2&&(r=Y(r,y6));break;case 6:n<3&&(r=Y(r,l6));break;case 7:n<4&&(r=Y(r,to));break;case 8:n==0&&(r=Y(r,d2));break;case 9:n<2&&(r=Y(r,Uy));break;case 10:n<3&&(r=Y(r,Ly));break;case 11:n<4&&(r=Y(r,eo));break;case 12:n<2&&(r=Y(r,T6));break;case 13:n<3&&(r=Y(r,h6));break;case 14:n<3&&(r=Y(r,c6));}switch(B0(t.k)){case 1:r=Y(r,1792);break;case 2:r=Y(r,1664);break;case 3:r=Y(r,1408);break;case 4:r=Y(r,128);break;case 5:r=Y(r,384);break;case 6:r=Y(r,896);break;case 7:r=Y(r,1536);break;case 8:r=Y(r,ie);break;case 9:r=Y(r,1152);}switch(B0(t.p)){case 1:r=Y(r,98304);break;case 2:r=Y(r,81920);break;case 3:r=Y(r,49152);break;case 4:r=Y(r,En);}switch(B0(t.o)!=0&&(r=Y(r,j1(B0(t.o),47))),YA(t.c)&&(Ki(t.A,e)>0||b1(t.A,e)==0&&(K(t.A,e)==5||oT(t.A,e)||CT(t.A,e)))&&(r=Y(r,q1)),YA(t.f)&&(Ki(t.A,e)>0||b1(t.A,e)==0&&(K(t.A,e)==5||oT(t.A,e)||CT(t.A,e)))&&(r=Y(r,C0)),B0(t.u)){case 1:r=Y(r,XQ);break;case 2:r=Y(r,ZQ);}if(YA(t.e)&&(r=Y(r,de)),YA(t.d)&&(r=Y(r,re)),t.q)switch(B0(t.q)){case 1:r=Y(r,cn);break;case 2:r=Y(r,To);break;case 3:r=Y(r,h8);}T1(t.A,e,-1,false),T1(t.A,e,r,true);}function ett(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a;for(o=e.a[A],L=e.a[n],s=e.a[P],y=e.a[r],_=MX(t.a,e,A,n,P,r),$=_>10?_/10|0:_,a=_>10?_-$*10:0,S=-1,I=0,p=0,x=0,R=$,X=5;(I<X&&(S==-1||X==4)||I==4&&$==5&&a>0)&&(X==5&&I==4&&(X=4,I=0,R=a),I==1?(p=1,x=3):I==2?(p=3,x=1):(p=I,x=I),g=t.a.g.a[o-1][w.Math.min(p+1,4)],m=L,v=s,b=t.a.g.a[y-1][w.Math.min(x+1,4)],m>v?(v=(M=m1(m),m1(m=v),M).a,b=(tt=m1(g),m1(g=b),tt).a):m==v&&g>b&&(b=(tt=m1(g),m1(g=b),tt).a),S=W9(B(d(F,1),k,6,15,[2,3,1,4,0]),B(d(F,1),k,6,15,[m,v,g,b,R]),t),!(S!=-1&&X==4));)++I;if(S>=0)return new Iv(t,S);for(h=u1(e,n,P),f=B(d(Ut,1),ht,6,15,[0,0]),D=B(d(Ut,1),ht,6,15,[0,0]),Q=B(d(Ut,1),ht,6,15,[0,0]),l=B(d(F,1),k,6,15,[e.C[n],e.C[P]]),i=(Fn(t.a.b,L)-1)*(Fn(t.a.b,s)-1),j=0;j<2;j++)switch(l[j]){case 6:f[j]=2,D[j]=2.12;break;case 7:f[j]=2,D[j]=1.5;break;case 8:f[j]=2,D[j]=.2,Q[j]=2;break;case 14:f[j]=1.25,D[j]=1.22;break;case 15:f[j]=1.25,D[j]=2.4;break;case 16:f[j]=1.25,D[j]=.49,Q[j]=8;}return OD(t.a.b,L)||OD(t.a.b,s)?new Nn(0,0):nL(t.a.b,L)&&nL(t.a.b,s)&&h<e.g&&je(e.p,h)?(T=e8(t.a.b,L)==3&&e8(t.a.b,s)==4||e8(t.a.b,L)==4&&e8(t.a.b,s)==3?3:6,et=qr(t.a.b,L)==0&&qr(t.a.b,s)==0?.5:.3,new Nn(T*et*w.Math.sqrt(f[0]*f[1]),0)):dt(e,h)==2?(et=MA(t.a.b,L)==2&&MA(t.a.b,s)==2?1:.4,new Nn(6*et*w.Math.sqrt(f[0]*f[1]),0)):Fn(t.a.b,L)==4&&Fn(t.a.b,s)==4?new Nn(0,w.Math.sqrt(D[0]*D[1])/i):Fn(t.a.b,L)==4&&Fn(t.a.b,s)!=4?Fn(t.a.b,s)==3&&(e8(t.a.b,s)==4||e8(t.a.b,s)==34||MA(t.a.b,s)>0)||Fn(t.a.b,s)==2&&(e8(t.a.b,s)==3||MA(t.a.b,s)>0)?new bU():new Nn(0,w.Math.sqrt(D[0]*D[1])/i):Fn(t.a.b,s)==4&&Fn(t.a.b,L)!=4?Fn(t.a.b,L)==3&&(e8(t.a.b,L)==4||e8(t.a.b,L)==34||MA(t.a.b,L)>0)||Fn(t.a.b,L)==2&&(e8(t.a.b,L)==3||MA(t.a.b,L)>0)?new bU():new Nn(0,w.Math.sqrt(D[0]*D[1])/i):dt(e,h)==1&&MA(t.a.b,L)>0&&MA(t.a.b,s)>0||MA(t.a.b,L)>0&&qr(t.a.b,s)>0||qr(t.a.b,L)>0&&MA(t.a.b,s)>0?qr(t.a.b,L)>0&&qr(t.a.b,s)>0?new bU():qr(t.a.b,L)>0&&MA(t.a.b,s)>0?(et=0,MA(t.a.b,L)==1?et=.5:_n(l[0])==2&&_n(l[1])==2?et=.3:(_n(l[0])!=2||_n(l[1])!=2)&&(et=.15),new Nn(6*et*w.Math.sqrt(f[0]*f[1]),0)):qr(t.a.b,s)>0&&MA(t.a.b,L)>0?(et=0,MA(t.a.b,s)==1?et=.5:_n(l[0])==2&&_n(l[1])==2?et=.3:(_n(l[0])!=2||_n(l[1])!=2)&&(et=.15),new Nn(6*et*w.Math.sqrt(f[0]*f[1]),0)):(MA(t.a.b,L)==1||MA(t.a.b,s)==1)&&(l[0]!=6||l[1]!=6)?new Nn(2.4000000000000004*w.Math.sqrt(f[0]*f[1]),0):new Nn(.8999999999999999*w.Math.sqrt(f[0]*f[1]),0):(l[0]==8||l[0]==16)&&(l[1]==8||l[1]==16)?new Nn(-w.Math.sqrt(Q[0]*Q[1]),0):new Nn(0,w.Math.sqrt(D[0]*D[1])/i);}function Att(t,e){var A,n,P,r,i,f,D,Q,o,L;if(!t.W){if(Q=e.b,e.j==1)if(Q==-3)t.Z=true,A9(t);else if(Q==-2)t.d=true,A9(t);else if(Q==-1)A9(t);else if(e.a)Q==122?(Dv(t),t.eb=w.Math.max(t.eb,2),e1(t.k),I1(t,new S1(t,1,true))):Q==99?R5(t,true):Q==118&&((t.U&4)!=0&&t.r&&cv(),yv(t));else if(Q==-4)t.w!=19&&(G1(t),TZ(t)||PQ(t.V)&&(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true))));else if(Q==-6||t.t==-1&&Q==63){cT(t._,LV,sV);return;}else if(Q==-8)t.i.a.length!=0&&($s(t,t.i.a),un(t.i,0));else if(t.u!=-1)Q==113&&t.V.K?Qv(t,t.u):Q==118?JQ(t.V,t.u,3,false,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true))):Q>=52&&Q<=55?JQ(t.V,t.u,Q-48,false,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true))):Q==97||Q==98?JQ(t.V,t.u,6,true,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true))):(P=Q==48?(G1(t),u8(t.V,t.u,16)):Q==49?(G1(t),u8(t.V,t.u,1)):Q==50?(G1(t),u8(t.V,t.u,2)):Q==51?(G1(t),u8(t.V,t.u,4)):Q==117?(G1(t),u8(t.V,t.u,257)):Q==100?(G1(t),u8(t.V,t.u,129)):Q==99?(G1(t),u8(t.V,t.u,386)):Q==109&&(G1(t),u8(t.V,t.u,16)),P&&(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true))));else if(t.t!=-1){if(D=t.i.a.length==0,D?t.K=Q:(t.K==108&&(un(t.i,0),Ge(t.i,76)),t.K=-1),D&&Q==108)J(t.i,"Cl"),t.eb=w.Math.max(t.eb,1),e1(t.k);else if(D&&(Q==43||Q==45))G1(t),uh(t.V,t.t,Q==43)&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));else if(D&&Q==46)G1(t),L=mA(t.V,t.t)==32?0:32,Oe(t.V,t.t,L),t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));else if(D&&Q==58)G1(t),L=mA(t.V,t.t)==48?16:mA(t.V,t.t)==16?0:48,Oe(t.V,t.t,L),t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));else if(D&&Q==113&&t.V.K)nF(t,t.t);else if(D&&t.V.K&&(Q==120||Q==88))o=B(d(F,1),k,6,15,[9,17,35,53]),oh(t.V,t.t,o),t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));else if(D&&Q==63)G1(t),gf(t.V,t.t,0,0,-1,0)&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));else if(D&&Q>48&&Q<=57){if(Ki(t.V,t.t)>0){for(G1(t),r=Q-47,A=t.t,i=t.V.q-t.V.f,f=1;f<r&&(G5(t,A),n=_0(t.V,t.ib,t.lb,0),n!=-1);f++)aU(t.V,A,n),A=n-i,ut(t.V,1);t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true));}}else !D&&Q==-7?(un(t.i,0),t.eb=w.Math.max(t.eb,1),e1(t.k)):!D&&Q==-5?(un(t.i,t.i.a.length-1),t.eb=w.Math.max(t.eb,1),e1(t.k)):Q>=65&&Q<=90||Q>=97&&Q<=122||Q>=48&&Q<=57||Q==45?(Ge(t.i,Q&c1),t.eb=w.Math.max(t.eb,1),e1(t.k)):(Q==10||Q==13)&&$s(t,t.i.a);}else Q==104||Q==118?(t.U&7)==0&&d5(t,Q==104):t.db&&J5(t.db,e);e.j==2&&(Q==-3?(t.Z=false,A9(t)):Q==-2?(t.d=false,A9(t)):Q==-1?A9(t):t.db&&J5(t.db,e));}}function ntt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st;for(n=0;n<t.f.f;n++)if(Ht(t.f,n)>4){for(s=new CP(t.f,1+Ht(t.f,n),false),s.a[Ht(t.f,n)]=0,s.b[Ht(t.f,n)]=0,s.k[Ht(t.f,n)]=32,s.e[Ht(t.f,n)]=n,t.b[n]=true,l=0;l<Ht(t.f,n);l++)Q=W(t.f,n,l),s.a[l]=w.Math.sin(AA*l-R2),s.b[l]=w.Math.cos(AA*l-R2),s.k[l]=32,s.e[l]=Q,t.b[Q]=true,t.c[xt(t.f,n,l)]=true;jP(t.d,s);}for(et=xn(t.f),X=0;X<et.j.a.length;X++){if(_=N(et.k,X).length,tt=N(et.j,X),$=false,(t.e&12)!=0){for($=true,l=0;l<_;l++)if(!Y0(t.f,tt[l])){$=false;break;}}if(!$){for(g=false,T=0;T<_;T++)if(H9(t.f,tt[T])==_){g=true;break;}if(g)for(M=N(et.k,X),uk(t,tt,M),l=0;l<_;l++)t.b[tt[l]]=true,t.c[M[l]]=true;}}for(f=0;f<t.f.g;f++)if(fA(t.f,f)&&!t.c[f])for(st=B_(t,f),tt=st.a,M=st.b,uk(t,tt,M),l=0;l<st.a.length;l++)t.b[tt[l]]=true,t.c[M[l]]=true;for(D=0;D<t.f.r;D++)if(!t.c[D]&&dt(t.f,D)==3&&(P=z(t.f,0,D),r=z(t.f,1,D),j=Ht(t.f,P)+Ht(t.f,r),j>2)){for(s=new CP(t.f,j,false),o=0,T=0;T<Ht(t.f,P);T++)Q=W(t.f,P,T),Q!=r&&(s.e[o++]=Q,t.b[Q]=true,t.c[xt(t.f,P,T)]=true);for(s.e[o++]=P,s.e[o++]=r,h=0;h<Ht(t.f,r);h++)Q=W(t.f,r,h),Q!=P&&(s.e[o++]=Q,t.b[Q]=true,t.c[xt(t.f,r,h)]=true);for(l=0;l<j;l++)s.a[l]=l,s.b[l]=0,s.k[l]=1;t.b[P]=true,t.b[r]=true,t.c[D]=true,jP(t.d,s);}for(i=0;i<t.f.r;i++)if(!t.c[i]&&dt(t.f,i)==2){for(e=c(F,k,6,t.f.q,15,1),l=0;l<2;l++)if(e[0]=z(t.f,l,i),e[1]=z(t.f,1-l,i),$1(t.f,e[0])==1&&$1(t.f,e[1])==2&&Ht(t.f,e[1])==2){t.b[e[0]]=true,t.b[e[1]]=true,t.c[i]=true,R=1;do{if(p=W(t.f,e[R],0)==e[R-1]?1:0,e[R+1]=W(t.f,e[R],p),$1(t.f,e[R+1])==2&&Ht(t.f,e[R+1])>2)break;t.b[e[R+1]]=true,t.c[xt(t.f,e[R],p)]=true,++R;}while($1(t.f,e[R])==2&&Ht(t.f,e[R])==2);for(j=Ht(t.f,e[0])+Ht(t.f,e[R])+R-1,s=new CP(t.f,j,false),v=0;v<=R;v++)s.a[v]=v,s.b[v]=0,s.k[v]=64,s.e[v]=e[v];for(L=R+1,y=false,b=0;b<Ht(t.f,e[0]);b++)Q=W(t.f,e[0],b),Q!=e[1]&&(s.a[L]=-0.5,s.b[L]=y?w.Math.sin(AA):-w.Math.sin(AA),s.k[L]=64,s.e[L]=Q,++L,y=true);for(y=false,m=0;m<Ht(t.f,e[R]);m++)Q=W(t.f,e[R],m),Q!=e[R-1]&&(s.a[L]=R+.5,s.b[L]=y?-w.Math.sin(AA):w.Math.sin(AA),s.k[L]=64,s.e[L]=Q,++L,y=true);jP(t.d,s);}}for(A=0;A<t.f.q;A++)if(Ht(t.f,A)==4){for(S=c(F,k,6,4,15,1),I=c(F,k,6,4,15,1),x=0,T=0;T<4;T++)S[x]=W(t.f,A,T),I[x]=xt(t.f,A,T),Ht(t.f,S[x])==1&&!t.c[I[x]]&&++x;if(x==2){for(s=new CP(t.f,3,false),l=0;l<2;l++)t.b[S[l]]=true,t.c[I[l]]=true,s.e[l]=S[l],s.k[l]=32;s.a[0]=-0.5,s.b[0]=.866,s.a[1]=.5,s.b[1]=.866,s.a[2]=0,s.b[2]=0,s.k[2]=32,s.e[2]=A,jP(t.d,s);}if(x==3){for(h=0;h<2;h++)dt(t.f,I[h])==1&&(a=S[h],S[h]=S[2],S[2]=a,a=I[h],I[h]=I[2],I[2]=a);for(s=new CP(t.f,4,false),l=0;l<3;l++)t.b[S[l]]=true,t.c[I[l]]=true,s.e[l]=S[l],s.k[l]=32;s.a[0]=-1,s.b[0]=0,s.a[1]=1,s.b[1]=0,s.a[2]=0,s.b[2]=1,s.a[3]=0,s.b[3]=0,s.k[3]=32,s.e[3]=A,jP(t.d,s);}}}function Ptt(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt;if(Fi(t.c),t.d=null,ut(e,63),dt(e,A)!=1||A<e.g&&je(e.p,A)||K(e,e.D[0][A])==1||K(e,e.D[1][A])==1||(et=(e.F[A]&128)!=0,et&&(e.p&&A<e.g?sP(e.p,A):0)<6))return  false;for(P=c(Pt,ft,6,e.f,16,1),t.a=0,p=0;p<2;p++){for(t.b[p]=e.D[p][A],t.e[p]=e.D[1-p][A];$1(e,t.b[p])==2&&t0(e,t.b[p])==2&&K(e,t.b[p])<10;)for(_=0;_<O(e,t.b[p]);_++)if(i=W(e,t.b[p],_),i!=t.e[p]&&e.C[i]!=1){if(e.j[i]==1||t.a==16)return  false;P[t.b[p]]=true,t.e[p]=t.b[p],t.b[p]=i,++t.a;break;}if($=t0(e,t.b[p]),$>4||$==1)return  false;P[t.b[p]]=true;}for(S=0;S<2;S++)for(_=0;_<O(e,t.b[S]);_++)i=W(e,t.b[S],_),e.C[i]!=1&&(P[i]=true);for(t.g=c(F,k,6,e.f,15,1),fi(e,t.c,P,true,t.g),I=0;I<t.g.length;I++)t.g[I]!=-1&&(t.i[t.g[I]]=I);if(pe(t.c,true),et&&(r=u1(t.c,t.g[t.b[0]],t.g[t.b[1]]),r!=-1)){for(Je(t.c,r,256,true),Kt=(ut(e,7),e.p),ct=0;ct<Kt.j.a.length;ct++)if(tf(Kt,ct,A)){for(x=0;x<2;x++)for(_=0;_<O(e,t.b[x]);_++)if(i=W(e,t.b[x],_),i!=t.e[x]&&yA(Kt,ct,i)&&e.C[i]!=1){Je(t.c,u1(t.c,t.g[t.b[x]],t.g[i]),256,true);break;}}}for(tt=0;tt<2;tt++){for(EP(e,t.b[tt],true)&&T1(t.c,t.g[t.b[tt]],Qr,true),D=false,_=0;_<O(e,t.b[tt]);_++)i=W(e,t.b[tt],_),i!=t.e[tt]&&e.C[i]!=1&&(g=u1(t.c,t.g[t.b[tt]],t.g[i]),l1(t.c,g)==8?D=true:e.C[i]==6&&!Bn(e,t.b[tt])&&(h=i<e.f&&r0(e.p,i)?2:4,T1(t.c,t.g[i],h,true)),f=xt(e,t.b[tt],_),St=e.p&&f<e.g?sP(e.p,f):0,(St==3||St==4)&&Je(t.c,g,St<<17,true),(f<e.g&&je(e.p,f)||pA(e,t.b[tt],_)==2)&&($=t0(e,i),R=$==3,!R&&$==2&&(e.u[i]&hn)==0&&(R=WR(e,t.b[1-tt],f)!=-1),R?T1(t.c,t.g[i],g2,true):f<e.g&&je(e.p,f)&&T1(t.c,t.g[i],w2,true)),pA(e,t.b[tt],_)==1&&(t0(e,i)==4?T1(t.c,t.g[i],Cf,true):e.C[i]==6&&T1(t.c,t.g[i],qA,true)));D||(Bn(e,t.b[tt])?T1(t.c,t.g[t.b[tt]],2,true):T1(t.c,t.g[t.b[tt]],4,true));}for(ut(t.c,191),j=0;j<2;j++)if(m=t.g[t.b[j]],d0(t.c,m)==3){if(d0(e,t.b[j])==3)return  false;a=Sv(t.c,m),w0(t.c,a,257),z(t.c,0,a)!=m&&(gD(t.c,1,a,z(t.c,0,a)),gD(t.c,0,a,m)),ut(t.c,191);}if(s=t.g[t.b[0]],y=t.g[t.b[1]],wt=t.g[t.e[0]],rt=t.g[t.e[1]],Q=ne(t.c,s),o=ne(t.c,y),V8(t.c,s)&&V8(t.c,y)&&(Q!=0||o!=0)&&(Q!=o||VA(t.c,s)!=VA(t.c,y)))return  false;if(L=false,V8(t.c,s)&&Q!=0&&(Ve(t.c,s,0,-1),L=true),V8(t.c,y)&&o!=0&&(Ve(t.c,y,0,-1),L=true),L&&ut(t.c,191),st=R0(t.c,s),Tt=R0(t.c,y),st<Tt&&(bt=t.b[0],t.b[0]=t.b[1],t.b[1]=bt,bt=t.e[0],t.e[0]=t.e[1],t.e[1]=bt,bt=s,s=y,y=bt,bt=wt,wt=rt,rt=bt),X=false,(V8(t.c,s)||V8(t.c,y))&&(V8(t.c,s)?X=l3(t.c,s)==1:V8(t.c,y)&&(X=l3(t.c,y)==1),X)){for(n=0;n<t.c.q;n++)ve(t.c,n,-kt(t.c,n));ut(t.c,191);}return l=bR(t,s,wt),T=bR(t,y,rt),t.f[0]=l==-1?-1:t.i[l],t.f[1]=T==-1?-1:t.i[T],M=BF(t.c),M==null?false:(v=hR(t,s,wt),b=hR(t,y,rt),v==0&&b==0&&(t.c.I&qP)==I0?Qt=2:Qt=SV[v][b],t1=Qt==0?X?"<":">":Qt==1?X?"-":"+":Qt==3?"=":"",t.d=M+t1,true);}function rtt(t,e){var A,n,P;i8();var r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1;for(v=new cj(e),h=new Tp(e,v),r1=c(JE,nA,461,e.q,0,2),wt=1;wt<e.q;wt++)r1[wt]=c(JE,{4:1,5:1,8:1,462:1,461:1},81,wt,0,1);for(T=0;T<e.r;T++)Q=O9(e.D[0][T],e.D[1][T]),MQ(r1,Q,Q,v.a[T],10);for(s=0;s<e.f;s++)for(rt=1;rt<e.e[s];rt++)for(S=e.i[s][rt],tt=e.k[s][rt],g=v.a[tt],Qt=0;Qt<rt;Qt++)I=e.i[s][Qt],M=e.k[s][Qt],r=rt<Qt?h.a[s][Qt][rt]:h.a[s][rt][Qt],m=v.a[M],et=w.Math.sqrt(g*g+m*m-2*g*m*w.Math.cos(r)),yt=c(F,k,6,1,15,1),yt[0]=s,MQ(r1,O9(S,I),yt,et,5);for(l=0;l<e.r;l++)if(!(l<e.g&&je(e.p,l)||(e.F[l]&64)!=0&&(e.p&&l<e.g?sP(e.p,l):0)<=5)){for(Q=c(F,k,6,2,15,1),rt=0;rt<2;rt++)Q[rt]=e.D[rt][l];if(e.e[Q[0]]>1&&e.e[Q[1]]>1){if(dt(e,l)==3){for(et=v.a[l],V1=c(F,k,6,2,15,1),ct=0;ct<2;ct++)for(Qt=0;Qt<e.e[Q[ct]];Qt++)if(x=e.k[Q[ct]][Qt],x!=l){et+=v.a[x],V1[ct]=e.i[Q[ct]][Qt];break;}yt=c(F,k,6,2,15,1),yt[0]=Q[0],yt[1]=Q[1],MQ(r1,O9(V1[0],V1[1]),yt,et,3);}else if(dt(e,l)==2&&e.o[Q[0]]==1&&e.o[Q[1]]==1&&(e.F[l]&3)!=3){for(p=c(F,f0,7,2,0,2),x=c(F,f0,7,2,0,2),j=c(Ut,h0,15,2,0,2),ct=0;ct<2;ct++){for(p[ct]=c(F,k,6,e.e[Q[ct]]-1,15,1),x[ct]=c(F,k,6,e.e[Q[ct]]-1,15,1),j[ct]=c(Ut,ht,6,e.e[Q[ct]]-1,15,1),_=-1,Qt=0;Qt<e.e[Q[ct]];Qt++)if(e.i[Q[ct]][Qt]==Q[1-ct]){_=Qt;break;}for(X=0,bt=0;bt<e.e[Q[ct]];bt++)bt!=_&&(p[ct][X]=e.i[Q[ct]][bt],x[ct][X]=e.k[Q[ct]][bt],j[ct][X]=Eu(h,Q[ct],_,bt),++X);}for(Kt=0;Kt<p[0].length;Kt++)for(Qt=0;Qt<p[1].length;Qt++)St=(e.F[l]&3)==1,p[0].length==2&&p[0][Kt]>p[0][1-Kt]&&(St=!St),p[1].length==2&&p[1][Qt]>p[1][1-Qt]&&(St=!St),A=v.a[l]-v.a[x[0][Kt]]*w.Math.cos(j[0][Kt])-v.a[x[1][Qt]]*w.Math.cos(j[1][Qt]),n=v.a[x[0][Kt]]*w.Math.sin(j[0][Kt]),St?n+=v.a[x[1][Qt]]*w.Math.sin(j[1][Qt]):n-=v.a[x[1][Qt]]*w.Math.sin(j[1][Qt]),P=c(F,k,6,2,15,1),P[0]=e.D[0][l],P[1]=e.D[1][l],MQ(r1,O9(p[0][Kt],p[1][Qt]),P,w.Math.sqrt(A*A+n*n),3);}else if(dt(e,l)!=0){for(Yt=c(F,k,6,2,15,1),ct=0;ct<2;ct++)for(Qt=0;Qt<e.e[Q[ct]];Qt++)if(e.i[Q[ct]][Qt]==Q[1-ct]){Yt[ct]=Qt;break;}for(Kt=0;Kt<e.e[Q[0]];Kt++)if(Kt!=Yt[0])for(Qt=0;Qt<e.e[Q[1]];Qt++)Qt!=Yt[1]&&(e.o[Q[0]]==0&&e.o[Q[1]]==0?a_(e.i[Q[0]][Kt],e.i[Q[1]][Qt],e.k[Q[0]][Kt],e.k[Q[1]][Qt],Eu(h,Q[0],Yt[0],Kt),Eu(h,Q[1],Yt[1],Qt),l,v,r1,e):U_(e.i[Q[0]][Kt],e.i[Q[1]][Qt],e.k[Q[0]][Kt],e.k[Q[1]][Qt],Eu(h,Q[0],Yt[0],Kt),Eu(h,Q[1],Yt[1],Qt),l,v,r1,e));}}}for(y=0;y<e.f;y++)if(e.o[y]==2&&e.j[y]==2&&e.n[y][0]==2&&e.n[y][1]==2){for(o=e.i[y][0],L=e.i[y][1],rt=0;rt<e.e[o];rt++)if(b=e.i[o][rt],b!=y)for(Qt=0;Qt<e.e[L];Qt++)R=e.i[L][Qt],R!=y&&(i=Pk(h,o,y,b),f=Pk(h,L,y,R),g=B9(v,e.k[o][rt]),m=B9(v,e.k[L][Qt]),$=B9(v,e.k[y][0])+B9(v,e.k[y][1])-g*w.Math.cos(i)-m*w.Math.cos(f),a=g*w.Math.sin(i),st=m*w.Math.sin(f),yt=c(F,k,6,2,15,1),yt[0]=o,yt[1]=L,MQ(r1,O9(b,R),yt,w.Math.sqrt($*$+a*a+st*st),3));}for(D=0;D<e.q;D++)j_(r1,D,e,v);for(vY(r1,e),Tt=1;Tt<e.q;Tt++)for(t1=0;t1<Tt;t1++)r1[Tt][t1].a!=null&&t.a.push(r1[Tt][t1]);}function A6(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$;X=null,Q=null;try{if(t.f=null,t.j&&(Fi(t.j),pe(t.j,!1)),v=h=Y1(e),v==null||(h=Y1(e))==null||(h=Y1(e))==null||(t.k=h.includes("From CSD data. Using bond type 'Any'"),t.e=h.includes("From CSD data."),(h=Y1(e))==null))return !1;t.g=!1,t.d=t.a;try{b=Q1(B1((Ct(0,3,h.length),h.substr(0,3))),P1,Et),R=Q1(B1((Ct(3,6,h.length),h.substr(3,3))),P1,Et),j=M9(B1((Ct(6,9,h.length),h.substr(6,3)))),t.d=t.d|M9(B1((Ct(12,15,h.length),h.substr(12,3))))==1,t.g=h.length>=39&&h.startsWith("V3000",34);}catch(a){if(a=a1(a),Xt(a,19))return !1;throw At(a);}if(t.g)return S=H$(t,e),$2(t.j,v),S;if(!t.j&&(t.j=new zA(b,R)),$2(t.j,v),t.d||(t.j.L=!0),b==0){for(;h!=null&&!(at(h,D9)||at(h,ro)||at((Gt(1,h.length+1),h.substr(1)),"$"));)h=Y1(e);return !0;}for(y=0;y<b;y++){if((h=Y1(e))==null)return !1;A=(et=Qn(B1((Ct(0,10,h.length),h.substr(0,10)))),_=Qn(B1((Ct(10,20,h.length),h.substr(10,10)))),$=Qn(B1((Ct(20,30,h.length),h.substr(20,10)))),_0(t.j,et,-_,-$)),cK(t,A,h),m=M9(B1((Ct(34,36,h.length),h.substr(34,2)))),m!=0&&br(t.j,A,(J1(),o9)[K(t.j,A)]+m),i=M9(B1((Ct(36,39,h.length),h.substr(36,3)))),i!=0&&(i==4?Oe(t.j,A,32):E0(t.j,A,4-i)),g=h.length<63?0:M9(B1((Ct(60,63,h.length),h.substr(60,3)))),We(t.j,A,g,!1),oZ(t,A,h),M=h.length<51?0:M9(B1((Ct(48,51,h.length),h.substr(48,3)))),M!=0&&(X==null&&(X=c(F,k,6,b,15,1)),X[A]=M);}for(l=0;l<R;l++){if((h=Y1(e))==null)return !1;n=Q1(B1((Ct(0,3,h.length),h.substr(0,3))),P1,Et)-1,P=Q1(B1((Ct(3,6,h.length),h.substr(3,3))),P1,Et)-1,r=Q1(B1((Ct(6,9,h.length),h.substr(6,3))),P1,Et),x=h.length<12?0:M9(B1((Ct(9,12,h.length),h.substr(9,3)))),tt=h.length<18?0:M9(B1((Ct(15,18,h.length),h.substr(15,3)))),r==8&&(t.k||$0(t.j,n)||$0(t.j,P))&&(r=9),OR(t,n,P,r,x,tt);}for(s=0;s<j;s++)if((h=Y1(e))==null)return !1;if((h=Y1(e))==null)return (t.i&1)!=0&&(t.f=ou(t.j)),dk(t,X),t.d||ut(t.j,15),!0;for(;h!=null&&!(at(h,D9)||at(h,ro));)AZ(t,h),nZ(t,h),nW(t,h),YW(t,h),_Z(t,h),pW(t,h),gZ(t,h),(h.startsWith("M  SAL")&&h.length>=17||h.startsWith("M  SDT")&&h.length>=12||h.startsWith("M  SED")&&h.length>=12)&&(!Q&&(Q=new yP()),I=(Ct(7,10,h.length),h.substr(7,3)),f=(T=I,XP(G9(Q,T))),f||(f=new z2(),Ye(Q,I,f)),h.startsWith("M  SAL")&&h.startsWith("  1",10)?f.a=Q1(B1((Ct(13,17,h.length),h.substr(13,4))),P1,Et):h.startsWith("M  SDT")?f.b=(Gt(11,h.length+1),h.substr(11)).startsWith(ky):h.startsWith("M  SED")&&(f.c=B1((Gt(11,h.length+1),h.substr(11))))),h=Y1(e);}catch(a){if(a=a1(a),Xt(a,19))return o=a,X9(o,(z1(),ci)),false;throw At(a);}if(Q)for(D=(p=new rD(Q).a.$c().Tb(),new iD(p));D.a.ad();)f=(L=D.a.bd(),L.ed()),f.b&&f.a!=0&&f.c!=null&&VP(t.j,f.a-1,f.c);return t.e&&(NZ(t),aW(t)),(t.i&1)!=0&&(t.f=ou(t.j)),dk(t,X),ut(t.j,15),true;}function Tp(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p;for(this.b=e,this.e=t,this.a=c(Se,nA,464,this.e.f,0,3),P=0;P<this.e.f;P++)for(this.a[P]=c(Se,{464:1,4:1,9:1,5:1,8:1},46,Ht(this.e,P),0,2),D=1;D<Ht(this.e,P);D++)this.a[P][D]=c(Se,PA,6,D,15,1);for(this.c=c(F,k,6,this.e.f,15,1),this.d=c(Se,PA,6,this.e.f,15,1),this.f=c(F,k,6,this.e.g,15,1),j=xn(this.e),s=c(Pt,ft,6,j.j.a.length,16,1),Xs(j,s,c(Pt,ft,6,j.j.a.length,16,1),c(F,k,6,j.j.a.length,15,1),true),f=3;f<=7;f++)for(g=0;g<j.j.a.length;g++)p=N(j.k,g).length,p==f&&(s[g]?ca(this,g):p<=4&&IX(this,g));for(L=c(Pt,ft,6,this.e.f,16,1),h=0;h<j.j.a.length;h++)if(s[h])for(v=N(j.j,h),b=0,R=v.length;b<R;++b)m=v[b],L[m]=true;for(r=B(d(F,1),k,6,15,[0,0,1,3,6,10,15,21]),n=0;n<this.e.f;n++){if(i=Ht(this.e,n),i>4){for(D=1;D<i;D++)for(l=0;l<D;l++)this.a[n][D][l]=S6;this.c[n]=r[i];continue;}if(this.c[n]!=r[i])if(dU(this.e,n)&&(L[n]||H9(this.e,n)<=4&&$1(this.e,n)>0)){if(i>2){if(this.c[n]==1)K(this.e,n)<=14?A=(Kp-this.d[n])/2:A=Xp+(Xp-this.d[n])*.18000000715255737;else if(A=Kp-this.d[n],i>3){if(this.c[n]==2){for(y=c(Pt,ft,6,Ht(this.e,n),16,1),Q=1;Q<i;Q++)for(T=0;T<Q;T++)this.a[n][Q][T]!=0&&(y[Q]=!y[Q],y[T]=!y[T]);for(o=0;o<i;o++)if(y[o]){for(T=o+1;T<i;T++)if(y[T]){this.a[n][T][o]=A;break;}break;}}A=S6;}for(D=1;D<i;D++)for(l=0;l<D;l++)this.a[n][D][l]==0&&(this.a[n][D][l]=A);}}else if(dU(this.e,n)&&H9(this.e,n)<=4)switch(EK(this,n)){case 771:L0(this,n,0,3,2.0653998851776123),L0(this,n,0,0,1.9814722631346626);break;case 1028:L0(this,n,0,4,1.9797999858856201),L0(this,n,0,0,1.94691481878138);break;case 393987:L0(this,n,0,3,Zp),L0(this,n,0,6,Zp),L0(this,n,3,3,1.7229016938441077);break;case 459779:L0(this,n,0,3,q6),L0(this,n,0,4,q6),L0(this,n,0,7,q6),L0(this,n,3,4,1.9322539839360076);break;case 525316:L0(this,n,0,4,Wp),L0(this,n,0,8,Wp),L0(this,n,4,4,1.99944913298566);case 394758:L0(this,n,0,6,2.526099920272827);break;case 460550:L0(this,n,0,6,_p),L0(this,n,0,7,_p);break;case 526087:L0(this,n,0,7,$p),L0(this,n,0,8,$p);break;case 526344:L0(this,n,0,8,2.186300039291382);break;case 50529027:L0(this,n,3,3,2.4189000129699707);break;case 67371779:L0(this,n,3,4,2.2298998832702637);break;case 67372036:L0(this,n,4,4,2.094399929046631);break;case 101057283:L0(this,n,3,6,1.839926051241747),L0(this,n,3,3,2.9061476191098734);break;case 117834755:L0(this,n,3,4,2.812249087174905),L0(this,n,3,7,1.7910569124592968),L0(this,n,4,6,2.1224948975613245);break;case 134677507:L0(this,n,3,4,2.642428360523752),L0(this,n,3,8,2.027723514585844),L0(this,n,4,7,2.251474717631936);break;case 117900035:L0(this,n,3,7,2.109753935530918),L0(this,n,3,3,3.1052897491356646);break;case 117900292:L0(this,n,4,7,2.090729910747413),L0(this,n,4,4,2.551671293386306);break;case 134743044:L0(this,n,4,8,2.139250042271712),L0(this,n,4,4,2.3520055858942612);}else for(A=K(this.e,n)>10?ap:$1(this.e,n)==2?b2:EP(this.e,n,true)?tC:$1(this.e,n)==0?ap:tC,D=1;D<i;D++)for(l=0;l<D;l++)this.a[n][D][l]=A;}}function itt(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;for(t.A=e,t.a=A,L=vt(w.Math.round((Be==-1&&(Be=globalThis.devicePixelRatio||1),Be*8))),s=B(d(F,1),k,6,15,[L,L/2|0,L*3/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L*3/2|0,L/4|0,L/2|0,L/2|0,L/4|0]),y=B(d(F,1),k,6,15,[L*3/2|0,L/2|0]),l=B(d(F,1),k,6,15,[L,-2,L,-2,L]),R=c(F,k,6,1+2*s.length+(n?2*y.length:0),15,1),h=0,i=s,D=0,o=i.length;D<o;++D)P=i[D],R[h++]=P,R[h++]=-2;if(n)for(r=y,f=0,Q=r.length;f<Q;++f)P=r[f],R[h++]=P,R[h++]=-2;for(R[h++]=L,WU(t.v,l,R),t.b=fn(t.v,"Any atomic number"),JP(t.b,t),ce(t.v,t.b,1,1,3,1),t.w=Le(t.v,e4),t.D=zu(t.v,16,1),i0(t.v,t.w,1,3),i0(t.v,t.D,3,3),t.g=UA(t.v),Nt(t.g,g8),Nt(t.g,"is aromatic"),Nt(t.g,"is hetero-aromatic"),Nt(t.g,"is not aromatic"),i0(t.v,Le(t.v,"Aromaticity:"),1,5),i0(t.v,t.g,3,5),t.s=UA(t.v),Nt(t.s,g8),Nt(t.s,"0 (not in a ring)"),Nt(t.s,"0 or 2 (0 or 1 ring)"),Nt(t.s,">=2 (any ring count)"),Nt(t.s,"2 (in 1 ring)"),Nt(t.s,"3 (bridge head; 2 rings)"),Nt(t.s,">3 (in more than 2 rings)"),i0(t.v,Le(t.v,"Ring bonds:"),1,7),i0(t.v,t.s,3,7),t.t=UA(t.v),Nt(t.t,g8),Nt(t.t,"3 members"),Nt(t.t,"4 members"),Nt(t.t,"5 members"),Nt(t.t,"6 members"),Nt(t.t,"7 members"),i0(t.v,Le(t.v,"Smallest ring size:"),1,9),i0(t.v,t.t,3,9),t.r=UA(t.v),m=YV,v=0,b=m.length;v<b;++v)g=m[v],Nt(t.r,g);for(i0(t.v,Le(t.v,"Any ring size:"),1,11),i0(t.v,t.r,3,11),t.i=UA(t.v),Nt(t.i,g8),Nt(t.i,"not charged"),Nt(t.i,"has negative charge"),Nt(t.i,"has positive charge"),i0(t.v,Le(t.v,"Charge:"),1,13),i0(t.v,t.i,3,13),t.n=UA(t.v),Nt(t.n,g8),Nt(t.n,Oy),Nt(t.n,Gy),Nt(t.n,"exactly 3"),Nt(t.n,A4),Nt(t.n,DV),Nt(t.n,Jy),Nt(t.n,n4),Nt(t.n,P4),Nt(t.n,uV),Nt(t.n,r4),Nt(t.n,"1,2, or 3"),Nt(t.n,"2 or 3"),i0(t.v,Le(t.v,"Non-H neighbours:"),1,15),i0(t.v,t.n,3,15),t.j=UA(t.v),Nt(t.j,g8),Nt(t.j,"exactly 0"),Nt(t.j,Oy),Nt(t.j,Gy),Nt(t.j,"exactly 3"),Nt(t.j,QV),Nt(t.j,A4),Nt(t.j,DV),Nt(t.j,Jy),Nt(t.j,n4),Nt(t.j,P4),Nt(t.j,uV),Nt(t.j,r4),Nt(t.j,"1,2, or 3"),Nt(t.j,"2 or 3"),i0(t.v,Le(t.v,"Electroneg. neighbours:"),1,17),i0(t.v,t.j,3,17),t.k=UA(t.v),Nt(t.k,g8),Nt(t.k,"none"),Nt(t.k,Oy),Nt(t.k,Gy),Nt(t.k,Jy),Nt(t.k,n4),Nt(t.k,P4),Nt(t.k,QV),Nt(t.k,A4),Nt(t.k,r4),i0(t.v,Le(t.v,"Hydrogen count:"),1,19),i0(t.v,t.k,3,19),t.p=UA(t.v),Nt(t.p,g8),Nt(t.p,"none"),Nt(t.p,Oy),Nt(t.p,Gy),Nt(t.p,Jy),i0(t.v,Le(t.v,"Pi-electron count:"),1,21),i0(t.v,t.p,3,21),t.o=UA(t.v),Nt(t.o,g8),T=1;T<15;T++)Nt(t.o,""+(T-7));i0(t.v,Le(t.v,"Oxidation state:"),1,23),i0(t.v,t.o,3,23),t.c=fn(t.v,"prohibit further substitution"),JP(t.c,t),ce(t.v,t.c,1,25,3,25),t.f=fn(t.v,"require further substitution"),JP(t.f,t),ce(t.v,t.f,1,27,3,27),t.u=UA(t.v),Nt(t.u,g8),Nt(t.u,"is a stereo center"),Nt(t.u,"is not a stereo center"),i0(t.v,Le(t.v,"Stereo center:"),1,29),i0(t.v,t.u,3,29),t.e=fn(t.v,"match stereo center"),ce(t.v,t.e,1,31,3,31),t.d=fn(t.v,"is part of exclude group"),ce(t.v,t.d,1,33,3,33),n&&(ce(t.v,Le(t.v,"Stereo center hint for product:"),1,35,3,35),t.q=UA(t.v),Nt(t.q,"Copy from generic product"),Nt(t.q,"Keep reactant configuration"),Nt(t.q,"Invert reactant configuration"),Nt(t.q,"Racemise configuration"),ce(t.v,t.q,1,37,3,37)),ut(t.A,31),_a(t);}function hp(){var t,e,A,n;for(this.b=new UP(),this.c=new UP(),this.d=new UP(),k4=B(d(wtt,1),e0,18,0,[new qt(1,"Hydrogen","H",2.2),new qt(2,"Helium","He",0),new qt(3,"Lithium","Li",.98),new qt(4,"Beryllium","Be",1.57),new qt(5,"Boron","B",2.04),new qt(6,"Carbon","C",2.55),new qt(7,"Nitrogen","N",3.04),new qt(8,"Oxygen","O",3.44),new qt(9,"Fluorine","F",3.98),new qt(10,"Neon","Ne",0),new qt(11,"Sodium","Na",.93),new qt(12,"Magnesium","Mg",1.31),new qt(13,"Aluminum","Al",1.61),new qt(14,"Silicon","Si",1.9),new qt(15,"Phosphorus","P",2.19),new qt(16,"Sulfur","S",2.58),new qt(17,"Chlorine","Cl",3.16),new qt(18,"Argon","Ar",0),new qt(19,"Potassium","K",1),new qt(20,"Calcium","Ca",1.36),new qt(21,"Scandium","Sc",1.54),new qt(22,"Titanium","Ti",1.63),new qt(23,"Vanadium","V",1.66),new qt(24,"Chromium","Cr",1.55),new qt(25,"Manganese","Mn",1.83),new qt(26,"Iron","Fe",1.88),new qt(27,"Cobalt","Co",1.91),new qt(28,"Nickel","Ni",1.9),new qt(29,"Copper","Cu",1.65),new qt(30,"Zinc","Zn",1.81),new qt(31,"Gallium","Ga",2.01),new qt(32,"Germanium","Ge",0),new qt(33,"Arsenic","As",2.18),new qt(34,"Selenium","Se",2.55),new qt(35,"Bromine","Br",0),new qt(36,"Krypton","Kr",2.96),new qt(37,"Rubidium","Rb",0),new qt(38,"Strontium","Sr",.82),new qt(39,"Yttrium","Y",.95),new qt(40,"Zirconium","Zr",1.22),new qt(41,"Niobium","Nb",1.33),new qt(42,"Molybdenum","Mo",1.6),new qt(43,"Technetium","Tc",2.16),new qt(44,"Ruthenium","Ru",1.9),new qt(45,"Rhodium","Rh",2.2),new qt(46,"Palladium","Pd",2.28),new qt(47,"Silver","Ag",2.2),new qt(48,"Cadmium","Cd",1.93),new qt(49,"Indium","In",1.69),new qt(50,"Tin","Sn",1.78),new qt(51,"Antimony","Sb",1.96),new qt(52,"Tellurium","Te",0),new qt(53,"Iodine","I",2.05),new qt(54,"Xenon","Xe",2.1),new qt(55,"Cesium","Cs",2.66),new qt(56,"Barium","Ba",2.6),new qt(57,"Lanthanum","La",.79),new qt(58,"Cerium","Ce",.89),new qt(59,"Praesodymium","Pr",1.1),new qt(60,"Neodymium","Nd",1.12),new qt(61,"Promethium","Pm",1.13),new qt(62,"Samarium","Sm",1.14),new qt(63,"Europium","Eu",0),new qt(64,"Gadolinium","Gd",1.17),new qt(65,"Terbium","Tb",0),new qt(66,"Dyprosium","Dy",1.2),new qt(67,"Holmium","Ho",0),new qt(68,"Erbium","Er",1.22),new qt(69,"Thulium","Tm",1.23),new qt(70,"Ytterbium","Yb",1.24),new qt(71,"Lutetium","Lu",1.25),new qt(72,"Hafnium","Hf",0),new qt(73,"Tantalium","Ta",1.27),new qt(74,"Wolfram","W",1.3),new qt(75,"Rhenium","Re",1.5),new qt(76,"Osmium","Os",2.36),new qt(77,"Iridium","Ir",1.9),new qt(78,"Platinum","Pt",2.2),new qt(79,"Gold","Au",2.2),new qt(80,"Mercury","Hg",2.28),new qt(81,"Thallium","Tl",2.54),new qt(82,"Lead","Pb",2),new qt(83,"Bismuth","Bi",1.62),new qt(84,"Polonium","Po",2.33),new qt(85,"Astatine","At",2.02),new qt(86,"Radon","Rn",2),new qt(87,"Francium","Fr",2.2),new qt(88,"Radium","Ra",0),new qt(89,"Actinium","Ac",.7),new qt(90,"Thorium","Th",.89),new qt(91,"Protactinium","Pa",1.1),new qt(92,"Uranium","U",1.3),new qt(93,"Neptunium","Np",1.5),new qt(94,"Plutonium","Pu",1.38),new qt(95,"Americium","Am",1.36),new qt(96,"Curium","Cm",1.28),new qt(97,"Berkelium","Bk",1.3),new qt(98,"Californium","Cf",1.3),new qt(99,"Einsteinium","E",1.3),new qt(100,"Fermium","Fm",1.3),new qt(101,"Mendelevium","Mv",1.3)]),e=k4,A=0,n=e.length;A<n;++A)t=e[A],Sr(this.b,m1(t.c),t),ED(this.c,t.b,t),ED(this.d,t.d.toLowerCase(),t);this.a=c(Pt,ft,6,k4.length,16,1),this.a[3]=true,this.a[11]=true,this.a[19]=true,this.a[37]=true,this.a[55]=true,this.a[87]=true;}function ftt(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0,v1,g1,T0,G0,OA,b0,w1,De,Xe,gA,T9,v8,uP,QP,tn,h9,In,en;for(S=T3(t.c,n),w1=new JA(),T=0,h=0,In=null,Tt=0;Tt<t.o.length;Tt++){for(I=gr(t.c,Tt),ut(t.o[Tt],1),v1=N(e[Tt],A[Tt]),y0=c(F,k,6,t.o[Tt].f,15,1),v=c(Pt,ft,6,t.o[Tt].f,16,1),b=c(Pt,ft,6,t.o[Tt].g,16,1),Qt=0;Qt<I.f;Qt++)if(v1[Qt]!=-1)if(w.Math.abs(I.w[Qt])==0){for(R=v1[Qt],v[R]=true,jt=0;jt<O(t.o[Tt],R);jt++)b[xt(t.o[Tt],R,jt)]=true;for(Lt=Ht(t.o[Tt],R);Lt<ue(t.o[Tt],R);Lt++)b[xt(t.o[Tt],R,Lt)]=true;}else y0[v1[Qt]]=w.Math.abs(I.w[Qt]);for(bt=0;bt<I.g;bt++)if(L=I.D[0][bt],s=I.D[1][bt],w.Math.abs(I.w[L])!=0&&w.Math.abs(I.w[s])!=0&&(f=v1[L],D=v1[s],f!=-1&&D!=-1)){for(Lt=0;Lt<t.o[Tt].g;Lt++)if(z(t.o[Tt],0,Lt)==f&&z(t.o[Tt],1,Lt)==D||z(t.o[Tt],0,Lt)==D&&z(t.o[Tt],1,Lt)==f){b[Lt]=true;break;}}for(G0=c(F,k,6,t.o[Tt].f,15,1),yt=0;yt<t.o[Tt].f;yt++)if(!v[yt]&&(G0[yt]=Vn(t.o[Tt],w1,yt,T,h),t.b&&We(w1,G0[yt],t.p[Tt][A[Tt]][yt],false),y0[yt]!=0)){for(We(w1,G0[yt],y0[yt],false),Lt=0;Lt<S.f;Lt++)if(w.Math.abs(S.w[Lt])==y0[yt]){if(E0(w1,G0[yt],S.s[Lt]),Oe(w1,G0[yt],S.u[Lt]&48),t.f[n][Lt])if(b0=d0(t.o[Tt],yt),Xe=V(S.B[Lt],h8),G(Xe,0)==0)we(w1,G0[yt],3,false);else if(G(Xe,h8)==0)!In&&(In=new f1()),mt(In,m1(G0[yt]));else if(b0==1||b0==2){for(rt=G(Xe,To)==0,Q0=0;Q0<O(t.o[Tt],yt);Q0++)if(y=W(t.o[Tt],yt,Q0),v[y])for(H1=0;H1<O(t.o[Tt],yt);H1++)OA=W(t.o[Tt],yt,H1),!v[OA]&&OA>y&&(rt=!rt);rt&&(b0=b0==1?2:1),we(w1,G0[yt],b0,false);}else we(w1,G0[yt],0,false);break;}}for(Yt=0;Yt<t.o[Tt].g;Yt++)b[Yt]||uQ(t.o[Tt],w1,Yt,T,h,G0,true);T=a0(w1,1),h=a0(w1,2);}for(T0=c(F,k,6,S.f,15,1),V1=0;V1<S.f;V1++)if(y0=w.Math.abs(S.w[V1]),y0==0)T0[V1]=Vn(S,w1,V1,T,h);else for(Lt=0;Lt<w1.q;Lt++)if(w.Math.abs(w1.w[Lt])==y0){T0[V1]=Lt;break;}if(t.r)for(Qt=0;Qt<S.f;Qt++)Gn(w1,T0[Qt],true),ve(w1,T0[Qt],S.J[Qt].a),xe(w1,T0[Qt],S.J[Qt].b);for(x=0;x<S.g;x++)if((S.G[x]&s8)==0&&(De=tr(S,w1,x,T,h,T0[S.D[0][x]],T0[S.D[1][x]],false),gA=S.G[x]&31,gA!=0))for(p=false,Je(w1,De,31,false),tt=R1(S,S.D[0][x]),M=R1(S,S.D[1][x]),st=0;!p&&st<t.c.g.a.length;st++)for(I=gr(t.c,st),_=0;!p&&_<I.g;_++)X=I.D[0][_],et=I.D[1][_],$=w.Math.abs(I.w[X]),a=w.Math.abs(I.w[et]),$!=0&&a!=0&&($==tt&&a==M||$==M&&a==tt)&&(p=true,en=I.G[_]&31,en!=0&&(v1=N(e[st],A[st]),v8=v1[X],uP=v1[et],QP=u1(t.o[st],v8,uP),h9=l1(t.o[st],QP),tn=dt(t.o[st],QP),en&=7,gA&=7,en==3&&gA==6?(w1.H[De]=tn<=1?2:4,w1.T=0):en==6&&gA==3?(w1.H[De]=tn==3?2:1,w1.T=0):(w1.H[De]=h9,w1.T=0)));for(ut(w1,1),g=false,r1=0;r1<S.f;r1++)w.Math.abs(S.w[r1])==0?(b0=C5(S,r1,T0),we(w1,T0[r1],b0,false)):t.f[n][r1]&&WZ(t,S,r1,w1,T0[r1])&&(b0=C5(S,r1,T0),we(w1,T0[r1],b0,false),(b0==1||b0==2)&&(m=(S.u[r1]&F1)>>18,l=(S.u[r1]&F1)>>18!=1&&(S.u[r1]&F1)>>18!=2?-1:(S.u[r1]&jA)>>20,m==1?l+=T:m==2&&(l+=h),Ve(w1,T0[r1],m,l),g=true));for(g&&(T=a0(w1,1),h=a0(w1,2)),T9=c(Pt,ft,6,S.q,16,1),D1=0;D1<S.f;D1++)t.f[n][D1]&&!T9[D1]&&(S.u[D1]&4)!=0&&n0(V(S.B[D1],h8),0)&&S.j[D1]==w1.j[T0[D1]]&&wW(S,D1,w1,T0);for(wt=c(Pt,ft,6,w1.q,16,1),Kt=T0,St=0,t1=Kt.length;St<t1;++St)ct=Kt[St],wt[ct]=true;for(j=true;j;)for(j=false,o=0;o<w1.r;o++)f=w1.D[0][o],D=w1.D[1][o],wt[f]&&!wt[D]?(wt[D]=true,j=true):wt[D]&&!wt[f]&&(wt[f]=true,j=true);for(i=0;i<w1.q;i++)gP(w1,i,!wt[i]);if(PQ(w1),!t.b)for(Q=0;Q<w1.q;Q++)w1.w[Q]=0;if(Bf(new hr(w1),null,false),w1.T|=8,g1=2|(t.r?8:0),er(new Y8(g1),w1),In)for(ut(w1,15),r=new Zt(In);r.a<r.c.a.length;)P=$t(r).a,(w1.u[P]&Tn)!=0&&(we(w1,P,1,false),Ve(w1,P,1,T++));return w1;}function Dtt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;switch(t.hb=e.g,t.kb=e.i,t.w){case 18:if(y=t.hb,l=t.kb,t.e=ZA(t.V,t.hb,t.kb),t.e!=-1&&(t.hb=kt(t.V,t.e),t.kb=pt(t.V,t.e)),tb(t.V,y,l),t.I)for(f=new Zt(t.I);f.a<f.c.a.length;)i=$t(f),i.Qb(y,l);G1(t),t.X=7;break;case 2:if(t.X=0,t.e=ZA(t.V,t.hb,t.kb),t.e!=-1&&(t.f=-1,t.hb=kt(t.V,t.e),t.kb=pt(t.V,t.e),P0(t.V,t.e)?t.X=t.Z?9:4:t.X=3),t.X==0&&(P=wf(t.V,t.hb,t.kb),P!=-1&&(t.e=z(t.V,0,P),t.f=z(t.V,1,P),FP(t.V,P)?t.X=t.Z?9:4:t.X=3)),t.X==0&&t.v&&(t.v.g?t.X=t.Z?9:4:t.X=t.Z&&!Xt(t.v,62)?11:10),t.X!=0){for(t.gb=c(Ut,ht,6,t.V.q,15,1),t.jb=c(Ut,ht,6,t.V.q,15,1),D=0;D<t.V.q;D++)t.gb[D]=kt(t.V,D),t.jb[D]=pt(t.V,D);if(t.I)for(f=new Zt(t.I);f.a<f.c.a.length;)i=$t(f),PY(i,t.hb,t.kb);G1(t);break;}if(e.a?t.X=6:(t.R=new jv(),He(t.R,t.hb,t.kb),He(t.R,t.hb,t.kb),t.X=5),t.P=c(Pt,ft,6,t.V.q,16,1),t.I&&(t.Q=c(Pt,ft,6,t.I.a.length,16,1)),t.O=e.f,t.O){for(Q=0;Q<t.V.q;Q++)t.P[Q]=P0(t.V,Q);if(t.I)for(D=0;D<t.I.a.length;D++)t.Q[D]=N(t.I,D).g;}else {for(L=false,Q=0;Q<t.V.q;Q++)P0(t.V,Q)&&(gP(t.V,Q,false),L=true);if(t.I)for(D=0;D<t.I.a.length;D++)N(t.I,D).g&&(N(t.I,D).g=false,L=true);L&&(t.eb=1,e1(t.k));}break;case 4:G1(t),yK(t,t.hb,t.kb);break;case 3:s=ZA(t.V,t.hb,t.kb),s!=-1&&(G1(t),XU(t.V,s,!Br(t.V,s)),t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)));break;case 101:case 103:case 102:t.u!=-1&&fN(t,t.u)&&(G1(t),X$(t,t.u,t.w==101?0:t.w==103?1:2),t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)));break;case 5:case 6:case 23:if(t.e=ZA(t.V,t.hb,t.kb),t.e==-1){if(n=wf(t.V,t.hb,t.kb),n!=-1){G1(t),r=511,t.w==6?r=257:t.w==23&&(r=129),u8(t.V,n,r)&&(t.eb=w.Math.max(t.eb,1),e1(t.k),I1(t,new S1(t,1,true)));break;}}else {if(ue(t.V,t.e)==8)return;t.hb=kt(t.V,t.e),t.kb=pt(t.V,t.e);}t.X=1,G5(t,t.e),e1(t.k);break;case 22:if(t.e=ZA(t.V,t.hb,t.kb),t.e!=-1){if(ue(t.V,t.e)==8)return;t.hb=kt(t.V,t.e),t.kb=pt(t.V,t.e);}t.X=2,t.q=0;break;case 7:G1(t),sf(t.V,t.hb,t.kb,3,false,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 24:G1(t),sf(t.V,t.hb,t.kb,4,false,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 8:G1(t),sf(t.V,t.hb,t.kb,5,false,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 25:G1(t),sf(t.V,t.hb,t.kb,6,false,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 9:G1(t),sf(t.V,t.hb,t.kb,7,false,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 26:G1(t),sf(t.V,t.hb,t.kb,6,true,Pn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 10:G1(t),mB(t.V,t.hb,t.kb,true)&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 27:G1(t),mB(t.V,t.hb,t.kb,false)&&(t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true)));break;case 16:f8(t,1);break;case 11:f8(t,6);break;case 12:f8(t,7);break;case 13:f8(t,8);break;case 28:f8(t,14);break;case 29:f8(t,15);break;case 30:f8(t,16);break;case 14:f8(t,9);break;case 31:f8(t,17);break;case 15:f8(t,35);break;case 32:f8(t,53);break;case 33:e.d||e.a?(A=ZA(t.V,t.hb,t.kb),A!=-1&&tm(t,A,new W2())):(G1(t),Oh(t.V,t.hb,t.kb,t.F,t.B,t.D,t.C,t.A)&&(t.t=-1,t.eb=w.Math.max(t.eb,3),e1(t.k),I1(t,new S1(t,1,true))));break;case 19:t.e=ZA(t.V,t.hb,t.kb),t.e!=-1&&t.e<t.V.f&&(!t.V.K||!oe(t.V,t.e))&&(t.hb=kt(t.V,t.e),t.kb=pt(t.V,t.e),t.X=8);break;case 21:o=null,t.v?Xt(t.v,93)&&(o=t.v):(o=new UU(),xg(o,t.hb,t.kb),mt(t.I,o)),sx(t,o,new Hw(t));}}function Py(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct;for(this.c=t.length,this.d=t[0].length,M=w.Math.min(this.c,this.d),this.e=c(Ut,ht,6,w.Math.min(this.c+1,this.d),15,1),this.a=k1(Ut,[h0,ht],[15,6],15,[this.c,M],2),this.b=k1(Ut,[h0,ht],[15,6],15,[this.d,this.d],2),P=c(Ut,ht,6,this.d,15,1),ct=c(Ut,ht,6,this.c,15,1),x=w.Math.min(this.c-1,this.d),tt=w.Math.max(0,w.Math.min(this.d-2,this.c)),R=0;R<w.Math.max(x,tt);R++){if(R<x){for(this.e[R]=0,L=R;L<this.c;L++)this.e[R]=e2(this.e[R],t[L][R]);if(this.e[R]!=0){for(t[R][R]<0&&(this.e[R]=-this.e[R]),o=R;o<this.c;o++)t[o][R]/=this.e[R];t[R][R]+=1;}this.e[R]=-this.e[R];}for(h=R+1;h<this.d;h++){if(R<x&this.e[R]!=0){for(rt=0,L=R;L<this.c;L++)rt+=t[L][R]*t[L][h];for(rt=-rt/t[R][R],o=R;o<this.c;o++)t[o][h]+=rt*t[o][R];}P[h]=t[R][h];}if(true&R<x)for(o=R;o<this.c;o++)this.a[o][R]=t[o][R];if(R<tt){for(P[R]=0,L=R+1;L<this.d;L++)P[R]=e2(P[R],P[L]);if(P[R]!=0){for(P[R+1]<0&&(P[R]=-P[R]),s=R+1;s<this.d;s++)P[s]/=P[R];P[R+1]+=1;}if(P[R]=-P[R],R+1<this.c&P[R]!=0){for(s=R+1;s<this.c;s++)ct[s]=0;for(g=R+1;g<this.d;g++)for(y=R+1;y<this.c;y++)ct[y]+=P[g]*t[y][g];for(m=R+1;m<this.d;m++)for(rt=-P[m]/P[R+1],y=R+1;y<this.c;y++)t[y][m]+=rt*ct[y];}for(o=R+1;o<this.d;o++)this.b[o][R]=P[o];}}for(X=w.Math.min(this.d,this.c+1),x<this.d&&(this.e[x]=t[x][x]),this.c<X&&(this.e[X-1]=0),tt+1<X&&(P[tt]=t[tt][X-1]),P[X-1]=0,v=x;v<M;v++){for(o=0;o<this.c;o++)this.a[o][v]=0;this.a[v][v]=1;}for(j=x-1;j>=0;j--)if(this.e[j]!=0){for(T=j+1;T<M;T++){for(rt=0,L=j;L<this.c;L++)rt+=this.a[L][j]*this.a[L][T];for(rt=-rt/this.a[j][j],s=j;s<this.c;s++)this.a[s][T]+=rt*this.a[s][j];}for(y=j;y<this.c;y++)this.a[y][j]=-this.a[y][j];for(this.a[j][j]=1+this.a[j][j],o=0;o<j-1;o++)this.a[o][j]=0;}else {for(o=0;o<this.c;o++)this.a[o][j]=0;this.a[j][j]=1;}for(p=this.d-1;p>=0;p--){if(p<tt&P[p]!=0)for(T=p+1;T<M;T++){for(rt=0,L=p+1;L<this.d;L++)rt+=this.b[L][p]*this.b[L][T];for(rt=-rt/this.b[p+1][p],s=p+1;s<this.d;s++)this.b[s][T]+=rt*this.b[s][p];}for(o=0;o<this.d;o++)this.b[o][p]=0;this.b[p][p]=1;}for(et=X-1,f=w.Math.pow(2,-52);X>0;){for(b=X-2;b>=-1&&b!=-1;b--)if(w.Math.abs(P[b])<=f*(w.Math.abs(this.e[b])+w.Math.abs(this.e[b+1]))){P[b]=0;break;}if(b==X-2)S=4;else {for(I=X-1;I>=b&&I!=b;I--)if(rt=(I!=X?w.Math.abs(P[I]):0)+(I!=b+1?w.Math.abs(P[I-1]):0),w.Math.abs(this.e[I])<=f*rt){this.e[I]=0;break;}I==b?S=3:I==X-1?S=1:(S=2,b=I);}switch(++b,S){case 1:for(D=P[X-2],P[X-2]=0,T=X-2;T>=b;T--)for(rt=e2(this.e[T],D),n=this.e[T]/rt,st=D/rt,this.e[T]=rt,T!=b&&(D=-st*P[T-1],P[T-1]=n*P[T-1]),o=0;o<this.d;o++)rt=n*this.b[o][T]+st*this.b[o][X-1],this.b[o][X-1]=-st*this.b[o][T]+n*this.b[o][X-1],this.b[o][T]=rt;break;case 2:for(D=P[b-1],P[b-1]=0,T=b;T<X;T++)for(rt=e2(this.e[T],D),n=this.e[T]/rt,st=D/rt,this.e[T]=rt,D=-st*P[T],P[T]=n*P[T],o=0;o<this.c;o++)rt=n*this.a[o][T]+st*this.a[o][b-1],this.a[o][b-1]=-st*this.a[o][T]+n*this.a[o][b-1],this.a[o][T]=rt;break;case 3:{for(_=w.Math.max(w.Math.max(w.Math.max(w.Math.max(w.Math.abs(this.e[X-1]),w.Math.abs(this.e[X-2])),w.Math.abs(P[X-2])),w.Math.abs(this.e[b])),w.Math.abs(P[b])),Tt=this.e[X-1]/_,wt=this.e[X-2]/_,i=P[X-2]/_,a=this.e[b]/_,r=P[b]/_,e=((wt+Tt)*(wt-Tt)+i*i)/2,A=Tt*i*(Tt*i),$=0,e!=0|A!=0&&($=w.Math.sqrt(e*e+A),e<0&&($=-$),$=A/(e+$)),D=(a+Tt)*(a-Tt)+$,Q=a*r,T=b;T<X-1;T++){for(rt=e2(D,Q),n=D/rt,st=Q/rt,T!=b&&(P[T-1]=rt),D=n*this.e[T]+st*P[T],P[T]=n*P[T]-st*this.e[T],Q=st*this.e[T+1],this.e[T+1]=n*this.e[T+1],L=0;L<this.d;L++)rt=n*this.b[L][T]+st*this.b[L][T+1],this.b[L][T+1]=-st*this.b[L][T]+n*this.b[L][T+1],this.b[L][T]=rt;if(rt=e2(D,Q),n=D/rt,st=Q/rt,this.e[T]=rt,D=n*P[T]+st*this.e[T+1],this.e[T+1]=-st*P[T]+n*this.e[T+1],Q=st*P[T+1],P[T+1]=n*P[T+1],T<this.c-1)for(o=0;o<this.c;o++)rt=n*this.a[o][T]+st*this.a[o][T+1],this.a[o][T+1]=-st*this.a[o][T]+n*this.a[o][T+1],this.a[o][T]=rt;}P[X-2]=D;}break;case 4:{if(this.e[b]<=0)for(this.e[b]=this.e[b]<0?-this.e[b]:0,o=0;o<=et;o++)this.b[o][b]=-this.b[o][b];for(;b<et&&!(this.e[b]>=this.e[b+1]);){if(rt=this.e[b],this.e[b]=this.e[b+1],this.e[b+1]=rt,b<this.d-1)for(o=0;o<this.d;o++)rt=this.b[o][b+1],this.b[o][b+1]=this.b[o][b],this.b[o][b]=rt;if(b<this.c-1)for(o=0;o<this.c;o++)rt=this.a[o][b+1],this.a[o][b+1]=this.a[o][b],this.a[o][b]=rt;++b;}--X;}}}}function ry(){ry=d1,m4=B(d(it,2),nA,13,0,[B(d(it,1),Dt,2,6,["Acyl","gCaHA`AIf`@"]),B(d(it,1),Dt,2,6,["Alloc","gNph@l@ILzuR@@"]),B(d(it,1),Dt,2,6,["Allyl","Al"]),B(d(it,1),Dt,2,6,["Benzyl;Bn","daD@`F@DjUZxHH@@"]),B(d(it,1),Dt,2,6,["Boc","daxD`@S@AIgijj@@"]),B(d(it,1),Dt,2,6,["BOM;BzOM","deTH`@H@Re[TYj`@@@"]),B(d(it,1),Dt,2,6,["Bs","dmtDpAdLS`aPAIe]jf`@e`@@"]),B(d(it,1),Dt,2,6,["Bt","dew@`@aJ@DiY]paej`@@@"]),B(d(it,1),Dt,2,6,["Btm","did@P@BJ@Die_ahH@@@"]),B(d(it,1),Dt,2,6,["Butyl;nButyl","gJPHB@IRuP@"]),B(d(it,1),Dt,2,6,["Benzoyl;Bz","didH`@p@RYm^Eh@@@@"]),B(d(it,1),Dt,2,6,["Bzh","dg|@`N@LdbRbtJUB]aAP@@@@"]),B(d(it,1),Dt,2,6,["Cbz","dmtD`@S@AIgYVUZh@@@@"]),B(d(it,1),Dt,2,6,["cButyl","gKPHL@IThuT@@"]),B(d(it,1),Dt,2,6,["cHeptyl","daD@`L@DjWVzjj`@"]),B(d(it,1),Dt,2,6,["cHexyl","gOpHL@IToWUU@@"]),B(d(it,1),Dt,2,6,["cOctyl","did@`L@DjWWajjj@@"]),B(d(it,1),Dt,2,6,["cPentyl","gFpHL@ITimUP@"]),B(d(it,1),Dt,2,6,["cPropyl","gBPHL@Qxjh@"]),B(d(it,1),Dt,2,6,["COOH","gC`h@l@ILt@@ !Bb@K~@Hc}"]),B(d(it,1),Dt,2,6,["DEAE","daz@`@x@RiUjj`@"]),B(d(it,1),Dt,2,6,["DEIPS","diD@P@\\B@DjfVjj`@"]),B(d(it,1),Dt,2,6,["DMIPS","gNpD@xD@RjZjh@"]),B(d(it,1),Dt,2,6,["DMPM","dcLD`@kPCIEMDdcttDDT@@"]),B(d(it,1),Dt,2,6,["DMPS","deT@P@\\B@LddTjPsU@@@@"]),B(d(it,1),Dt,2,6,["DMTr","fak@b@@Mt@ISZ{SMjo{NQKfm@AU@@@E@@@@"]),B(d(it,1),Dt,2,6,["DNP","dkmB`hdDt~@HeNfS{HihheCAUhBHX@@"]),B(d(it,1),Dt,2,6,["DNS;Dan","fhi`a@KPP@HH@YIHYheEhYKQgKP@@QP@@@"]),B(d(it,1),Dt,2,6,["DPIPS","fdyAA@H@\\B@FRRIQSQIHzp_Qjh@h@@@@@"]),B(d(it,1),Dt,2,6,["DPTBS","fleAA@H@\\B@FRRIQSRIIWNbEMU@EP@@@@@"]),B(d(it,1),Dt,2,6,["DTBMS","dmT@P@\\B@Djffjjjh@@"]),B(d(it,1),Dt,2,6,["Ethyl","eMBD@ch@"]),B(d(it,1),Dt,2,6,["Fmoc","fde@b@@Hp@IL{LrjxeVCzKUT@@@P@@@"]),B(d(it,1),Dt,2,6,["iAmyl","gGPHJ@YIDZj@@"]),B(d(it,1),Dt,2,6,["iButyl","gJPHB@ITuP@"]),B(d(it,1),Dt,2,6,["Im","gFtHAj@IRnKSP@"]),B(d(it,1),Dt,2,6,["iPropyl","gC`HL@Qz`@"]),B(d(it,1),Dt,2,6,["MDIPS","diD@P@\\B@DjfZjj`@"]),B(d(it,1),Dt,2,6,["MDPS","foA@A@@NA@CIIEEBdeeVLzj@@@@@@"]),B(d(it,1),Dt,2,6,["Methyl","eFBH@c@@"]),B(d(it,1),Dt,2,6,["MEM","gNphAR@IRoUT@@"]),B(d(it,1),Dt,2,6,["Mes","deT@`J@DjY{[`bB`@@"]),B(d(it,1),Dt,2,6,["MMTr","ffcAB@@Z@Dim]ifuWYrI\\uh@Jh@@@@@@"]),B(d(it,1),Dt,2,6,["MOM","gCaHA`AJZ`@"]),B(d(it,1),Dt,2,6,["MPM;PMB","deTH`@d@Rfuunh@J@@"]),B(d(it,1),Dt,2,6,["Ms","gJPdH`DD@cuh@"]),B(d(it,1),Dt,2,6,["MTM","gC`D@DX@Rfh@"]),B(d(it,1),Dt,2,6,["mTolyl","daD@`N@DjWjXHB@@"]),B(d(it,1),Dt,2,6,["N3","gClHaE`@RnReX@"]),B(d(it,1),Dt,2,6,["nAmyl;Amyl","gGPHJ@IRmU@@"]),B(d(it,1),Dt,2,6,["neoAm","gGPHJ@IUMU@@"]),B(d(it,1),Dt,2,6,["NO2,Nitro","gChhhE`BRnRYh@"]),B(d(it,1),Dt,2,6,["Np","deVDaHAI@HeNR[e_aZ@B@@"]),B(d(it,1),Dt,2,6,["nPropyl;Propyl","gC`HL@IST@@"]),B(d(it,1),Dt,2,6,["oTolyl","daD@`J@DjYvxH`@@"]),B(d(it,1),Dt,2,6,["Phenyl","gOpHL@IToVD@@@"]),B(d(it,1),Dt,2,6,["Pht","dcLL`@RU@Dfyed]ZBA`@@"]),B(d(it,1),Dt,2,6,["Piv;Pv","gNqHA`AIffj`@"]),B(d(it,1),Dt,2,6,["PMBM","dcLD`@T`AJUm]FZh@J@@"]),B(d(it,1),Dt,2,6,["PNB","dcNLaHAEt@bTyInUvxV`@f@@"]),B(d(it,1),Dt,2,6,["Poc","didD`@S@AIgexVjj`@"]),B(d(it,1),Dt,2,6,["PPi","diDFsHSB[`|J|A@Lxn{lddqdZih@@"]),B(d(it,1),Dt,2,6,["pTolyl","daD@`N@DjWzXHB@@"]),B(d(it,1),Dt,2,6,["sAmyl","gGPHL@YIDZj@@"]),B(d(it,1),Dt,2,6,["sButyl","gJPHL@ITuP@"]),B(d(it,1),Dt,2,6,["SEM","diDHPFApD@rRQUJjj`@"]),B(d(it,1),Dt,2,6,["SES","dedDpHP@``AgCIICeHmUT@@"]),B(d(it,1),Dt,2,6,["SO3H","gJQdHl@``D^m@@"]),B(d(it,1),Dt,2,6,["tAmyl","gGPHB@IUMU@@"]),B(d(it,1),Dt,2,6,["TBDMS;TBS","dax@P@\\B@Djfjjh@@"]),B(d(it,1),Dt,2,6,["TBDPS","fdy@A@@NA@CIIEEEIde]XOhuPAT@@@@@"]),B(d(it,1),Dt,2,6,["TBMPS","dg\\HPHApH@rRQJJPjg]UAT@@@"]),B(d(it,1),Dt,2,6,["tButyl,tBu","gJPHB@Q}T@@"]),B(d(it,1),Dt,2,6,["TDS","ded@P@\\B@LddTeeUUP@@"]),B(d(it,1),Dt,2,6,["Tf","daxDhHP@``BiAiCiCIICHmU@@"]),B(d(it,1),Dt,2,6,["TFA","gNqBJIARFdF@YEHYUL@@"]),B(d(it,1),Dt,2,6,["Thexyl","gNpHB@IUMUT@@"]),B(d(it,1),Dt,2,6,["THF","gFqH@PAJYujj@@"]),B(d(it,1),Dt,2,6,["THP","gOqH@PAJYZzjh@"]),B(d(it,1),Dt,2,6,["TIPS","dmT@P@\\B@DjfYjjjh@@"]),B(d(it,1),Dt,2,6,["TMS","gJPD@xD@czh@"]),B(d(it,1),Dt,2,6,["Tosyl;Ts","dmtDPHP@``CIICLeaeZ@B@@"]),B(d(it,1),Dt,2,6,["Troc","diDDHJxHaHcH`PCHiBeJjf@@"]),B(d(it,1),Dt,2,6,["Trt","fbm@B@A@FRQIRKQPiIZdoIcdHJ`@@@@@@"]),B(d(it,1),Dt,2,6,["Xyl","did@`J@DjYynBHH@@"])]);}function n6(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j;if(e[A-1]==36){if(t.r=true,t.q=new f1(),A+=ZR(t,e,A-1,t.q)-1,e[A++]!=93){if(!r)throw At(new C1("SmilesParser: A positive recursive SMARTS followed by another one or by atom query features is not supported. Position:"+(A-1)));(t.k&128)==0&&(A=JY(e,A));}return A;}if(e[A-1]==42)t.d=6,t.c=Y(t.c,1);else if(e[A-1]==63)t.d=0;else if(Q=e[A-1]==33,Q&&(t.r=true,t.c=Y(t.c,1),++A),e[A-1]==82&&P&&(Kn(e[A]&c1)||t.j&&e[A]==123))t.d=6,t.c=Y(t.c,1),--A,Q&&--A;else {if(o=new Ow(),!xj(t,e,A-1,n,o))throw At(new C1("SmilesParser: Unexpected character in atom definition:'"+String.fromCharCode(e[A-1]&c1)+qp+(A-1)));if(t.d=o.a,A+=o.b-1,(t.k&3)!=2&&(t.g=9),P&&(e[A]==44||Q)){for(y=o.d,s=o.c,v=A-o.b;v<n;){if(!xj(t,e,v,n,o)){if(!Q)throw At(new C1("SmilesParser: Unexpected character in atom list:'"+String.fromCharCode(e[v]&c1)+Ip+v));break;}if(o.a==1){if(!Q)throw At(new C1("SmilesParser: Hydrogen is not supported in positive atom lists:'"+UN((IU(v<=n,v+" > "+n),j=e.length,XF(v,v,j),bP(e,c(E,q,6,n-v,15,1),v,n)))+Ip+v));}else Lx(t,o.a),y=y|o.d,s=s|o.c;if(v+=o.b,Q&&e[v]!=59&&e[v]!=38||!Q&&e[v]!=44||Q&&e[v+1]!=33)break;++v,e[v]==33&&++v;}t.b&&t.b.d.a.length>1&&(t.g=-1,s?y||(t.c=Y(t.c,4)):t.c=Y(t.c,2)),A=v;}}for(T=new Rw(e),g=c(F,k,6,1,15,1),m=true;m;){if(e[A]==64){++A,e[A]==64&&(t.i=true,++A),t.p=true;continue;}if(e[A]==58){for(++A;Kn(e[A]&c1);)t.o=10*t.o+e[A]-48,++A;continue;}if(e[A]==91)throw At(new C1("SmilesParser: nested square brackets found. Position:"+A));if(e[A]==93){++A,m=false;continue;}if(t.e=Vk(e,A,g),g[0]!=0){A+=g[0],t.e==0&&(t.c=Y(t.c,_Q));continue;}if(D=e[A]==33,D&&++A,e[A]==72){++A,A+=df(T,A,1),i=0,T.c<=0&&T.b>=0&&(i=Y(i,128)),T.c<=1&&T.b>=1&&(i=Y(i,256)),T.c<=2&&T.b>=2&&(i=Y(i,512)),T.c<=3&&T.b>=3&&(i=Y(i,ie)),D?(t.c=Y(t.c,i),t.g=-1):T.b==T.c?t.g=T.c:(t.c=Y(t.c,V(nP,On(i))),t.g=-1);continue;}if(e[A]==68||e[A]==100){++A,A+=df(T,A,1),i=0,T.c<=0&&T.b>=0&&(i=Y(i,I0)),T.c<=1&&T.b>=1&&(i=Y(i,l8)),T.c<=2&&T.b>=2&&(i=Y(i,y8)),T.c<=3&&T.b>=3&&(i=Y(i,T8)),T.c<=4&&T.b>=4&&(i=Y(i,qA)),G(i,0)!=0&&(D?t.c=Y(t.c,i):gt(V(t.c,Ui),0)?t.c=V(t.c,On(i)):(i=Nr(i,Ui),t.c=Y(t.c,i)));continue;}if(e[A]==122&&t.j){++A,A+=df(T,A,4),i=0,T.c<=0&&T.b>=0&&(i=Y(i,d2)),T.c<=1&&T.b>=1&&(i=Y(i,xp)),T.c<=2&&T.b>=2&&(i=Y(i,Np)),T.c<=3&&T.b>=3&&(i=Y(i,Op)),T.c<=4&&T.b>=4&&(i=Y(i,to)),G(i,0)!=0&&(D?t.c=Y(t.c,i):gt(V(t.c,Hf),0)?t.c=V(t.c,On(i)):(i=Nr(i,Hf),t.c=Y(t.c,i)));continue;}if(e[A]==88){if(++A,A+=df(T,A,1),R=(J1(),Ur)[t.d],R==null)continue;b=R[0],L=Vk(e,A,g),g[0]!=0&&($r(t.d)?b+=L:t.d==6?b-=w.Math.abs(L):b-=L),i=0,b-T.c<=0&&b-T.b>=0&&(i=Y(i,En)),b-T.c<=1&&b-T.b>=1&&(i=Y(i,L8)),b-T.c<=2&&b-T.b>=2&&(i=Y(i,u0)),G(i,0)!=0&&(D?t.c=Y(t.c,i):gt(V(t.c,oi),0)?t.c=V(t.c,On(i)):(i=Nr(i,oi),t.c=Y(t.c,i)));continue;}if(e[A]==65||e[A]==97){t.c=Y(t.c,D^e[A]==65?4:2),++A;continue;}if(e[A]==82){++A,A+=df(T,A,3),i=0,T.c<=0&&T.b>=0&&(i=Y(i,8)),T.c<=1&&T.b>=1&&(i=Y(i,16)),T.c<=2&&T.b>=2&&(i=Y(i,32)),T.c<=3&&T.b>=3&&(i=Y(i,64)),T.b>3&&Gu(t.n,(D?"!R":"R")+T.b),G(i,0)!=0&&(D?t.c=Y(t.c,i):gt(V(t.c,120),0)?t.c=V(t.c,On(i)):(i=Nr(i,120),t.c=Y(t.c,i)));continue;}if(e[A]==114){if(++A,A+=df(T,A,1),T.a){D?t.c=Y(t.c,384):t.c=Y(t.c,8);continue;}h=T.c,T.b>T.c&&Gu(t.n,(D?"!r":"r")+("{"+T.c+"-"+T.b+"}")),!D&&h>=3&&h<=7?t.c=Y(t.c,h<<22):T.b>T.c||Gu(t.n,(D?"!r":"r")+h);continue;}if(e[A]==118){++A,A+=df(T,A,1),b=T.c,T.b>T.c&&Gu(t.n,(D?"!v":"v")+("{"+T.c+"-"+T.b+"}")),!D&&b<=14?t.a=b:T.b>T.c||Gu(t.n,(D?"!v":"v")+b);continue;}if(e[A]==94){if(++A,f=e[A++]-48,f<1||f>3)throw At(new C1("SmilesParser: Unsupported hybridization. Position:"+A));l=f==1?u0:f==2?L8:En,D||(l=V(oi,On(l))),t.c=Y(t.c,l);continue;}if(e[A]==36){if(!D)throw At(new C1("SmilesParser: non-negated recursive SMARTS relating to preceding atom are not supported yet. Position:"+A));!t.f&&(t.f=new f1()),t.r=true,A+=ZR(t,e,A,t.f);continue;}if(P&&(e[A]==59||e[A]==38)){t.r=true,++A;continue;}if(P&&e[A]==44&&tZ(e,A,g)){t.r=true,A+=g[0]+1;continue;}if(P&&e[A]==44&&(t.k&128)!=0){t.r=true,A+=1;break;}throw e[A]==44?At(new C1("SmilesParser: alternative atom definitions not supported. (Tip: enumerate SMARTS): '"+String.fromCharCode(e[A]&c1)+H6+A)):At(new C1("SmilesParser: unexpected character inside brackets: '"+String.fromCharCode(e[A]&c1)+H6+A));}return A;}function P6(t,e){var A,n,P,r;A=e[1],n=e[2],P=t.j[A]-1,r=t.j[n]-1,P>3||r>3?(this.b=c(zt,_t,6,4,15,1),this.b[0]=45,this.b[1]=135,this.b[2]=225,this.b[2]=315,this.c=k1(zt,[ee,_t],[16,6],15,[4,2],2),this.c[0][0]=30,this.c[0][1]=60,this.c[1][0]=120,this.c[1][1]=150,this.c[2][0]=210,this.c[2][1]=240,this.c[2][0]=300,this.c[2][1]=330,this.a=c(zt,_t,6,4,15,1),this.a[0]=25,this.a[1]=25,this.a[2]=25,this.a[3]=25):(t.o[A]==0||t.C[A]>9)&&(t.o[n]==0||t.C[n]>9)?P==3&&r==3||P==3&&r==2||P==3&&r==1||P==2&&r==3||P==1&&r==3||P==2&&r==2&&(e[0]!=-1||e[3]!=-1)?(this.b=c(zt,_t,6,3,15,1),this.b[0]=60,this.b[1]=180,this.b[2]=300,this.c=k1(zt,[ee,_t],[16,6],15,[3,2],2),this.c[0][0]=45,this.c[0][1]=75,this.c[1][0]=165,this.c[1][1]=195,this.c[2][0]=285,this.c[2][1]=315,this.a=c(zt,_t,6,3,15,1),this.a[0]=33,this.a[1]=33,this.a[2]=33):P==1&&r==2&&e[3]==-1||P==2&&r==1&&e[0]==-1?(this.b=c(zt,_t,6,3,15,1),this.b[0]=60,this.b[1]=180,this.b[2]=300,this.c=k1(zt,[ee,_t],[16,6],15,[3,2],2),this.c[0][0]=45,this.c[0][1]=75,this.c[1][0]=165,this.c[1][1]=195,this.c[2][0]=285,this.c[2][1]=315,this.a=c(zt,_t,6,3,15,1),this.a[0]=40,this.a[1]=20,this.a[2]=40):(P==1&&r==1||P==1&&r==2&&e[3]!=-1||P==2&&r==1&&e[0]!=-1||P==2&&r==2&&e[0]==-1&&e[3]==-1)&&(this.b=c(zt,_t,6,3,15,1),this.b[0]=60,this.b[1]=180,this.b[2]=300,this.c=k1(zt,[ee,_t],[16,6],15,[3,2],2),this.c[0][0]=45,this.c[0][1]=75,this.c[1][0]=165,this.c[1][1]=195,this.c[2][0]=285,this.c[2][1]=315,this.a=c(zt,_t,6,3,15,1),this.a[0]=25,this.a[1]=50,this.a[2]=25):(t.o[A]==0||t.C[A]>9)&&t.o[n]==1||(t.o[n]==0||t.C[n]>9)&&t.o[A]==1?P==3||r==3?(this.b=c(zt,_t,6,6,15,1),this.b[0]=0,this.b[1]=60,this.b[2]=120,this.b[3]=180,this.b[4]=240,this.b[5]=300,this.c=k1(zt,[ee,_t],[16,6],15,[6,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=45,this.c[1][1]=75,this.c[2][0]=105,this.c[2][1]=135,this.c[3][0]=165,this.c[3][1]=195,this.c[4][0]=225,this.c[4][1]=255,this.c[5][0]=285,this.c[5][1]=315,this.a=c(zt,_t,6,6,15,1),this.a[0]=16,this.a[1]=16,this.a[2]=16,this.a[3]=16,this.a[4]=16,this.a[5]=16):P==1&&r==1?(this.b=c(zt,_t,6,2,15,1),this.b[0]=120,this.b[1]=240,this.c=k1(zt,[ee,_t],[16,6],15,[2,2],2),this.c[0][0]=105,this.c[0][1]=135,this.c[1][0]=225,this.c[1][1]=255,this.a=c(zt,_t,6,2,15,1),this.a[0]=50,this.a[1]=50):t.o[A]==1&&P==2&&r==1||t.o[n]==1&&r==2&&P==1?(this.b=c(zt,_t,6,2,15,1),this.b[0]=90,this.b[1]=270,this.c=k1(zt,[ee,_t],[16,6],15,[2,2],2),this.c[0][0]=75,this.c[0][1]=105,this.c[1][0]=255,this.c[1][1]=285,this.a=c(zt,_t,6,2,15,1),this.a[0]=50,this.a[1]=50):t.o[A]==1&&P==1&&r==2&&e[3]==-1||t.o[n]==1&&r==1&&P==2&&e[0]==-1?(this.b=c(zt,_t,6,3,15,1),this.b[0]=0,this.b[1]=120,this.b[2]=240,this.c=k1(zt,[ee,_t],[16,6],15,[3,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=105,this.c[1][1]=135,this.c[2][0]=225,this.c[2][1]=255,this.a=c(zt,_t,6,3,15,1),this.a[0]=60,this.a[1]=20,this.a[2]=20):t.o[A]==1&&P==1&&r==2&&e[3]!=-1||t.o[n]==1&&r==1&&P==2&&e[0]!=-1?(this.b=c(zt,_t,6,3,15,1),this.b[0]=0,this.b[1]=120,this.b[2]=240,this.c=k1(zt,[ee,_t],[16,6],15,[3,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=105,this.c[1][1]=135,this.c[2][0]=225,this.c[2][1]=255,this.a=c(zt,_t,6,3,15,1),this.a[0]=20,this.a[1]=40,this.a[2]=40):P==2&&r==2&&(e[0]==-1||e[3]==-1?(this.b=c(zt,_t,6,2,15,1),this.b[0]=0,this.b[1]=180,this.c=k1(zt,[ee,_t],[16,6],15,[2,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=165,this.c[1][1]=195,this.a=c(zt,_t,6,2,15,1),this.a[0]=50,this.a[1]=50):(this.b=c(zt,_t,6,2,15,1),this.b[0]=90,this.b[1]=270,this.c=k1(zt,[ee,_t],[16,6],15,[2,2],2),this.c[0][0]=75,this.c[0][1]=105,this.c[1][0]=255,this.c[1][1]=285,this.a=c(zt,_t,6,2,15,1),this.a[0]=50,this.a[1]=50)):t.o[A]==1&&t.o[n]==1?P==1&&r==1?(this.b=c(zt,_t,6,2,15,1),this.b[0]=0,this.b[1]=180,this.c=k1(zt,[ee,_t],[16,6],15,[2,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=165,this.c[1][1]=195,this.a=c(zt,_t,6,2,15,1),this.a[0]=10,this.a[1]=90):(this.b=c(zt,_t,6,6,15,1),this.b[0]=0,this.b[1]=50,this.b[2]=130,this.b[3]=180,this.b[4]=230,this.b[5]=310,this.c=k1(zt,[ee,_t],[16,6],15,[6,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=35,this.c[1][1]=65,this.c[2][0]=115,this.c[2][1]=145,this.c[3][0]=165,this.c[3][1]=195,this.c[4][0]=215,this.c[4][1]=245,this.c[5][0]=295,this.c[5][1]=325,this.a=c(zt,_t,6,6,15,1),this.a[0]=40,this.a[1]=5,this.a[2]=5,this.a[3]=40,this.a[4]=5,this.a[5]=5):(this.b=c(zt,_t,6,1,15,1),this.b[0]=180,this.c=k1(zt,[ee,_t],[16,6],15,[1,2],2),this.c[0][0]=165,this.c[0][1]=195,this.a=c(zt,_t,6,1,15,1),this.a[0]=100);}function cp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct;for(x=(z1(),$A),J(t.b,"M  V30 BEGIN CTAB"+x),J(t.b,pp+e.q+" "+e.r+" 0 0 0"+x),J(t.b,"M  V30 BEGIN ATOM"+x),D=0;D<e.q;D++){if(J(t.b,io+(D+1)),(e.v==null?null:e.v[D])!=null){for(s=e.v==null?null:e.v[D],tt=gt(V(e.B[D],1),0),J(t.b,tt?" NOT[":" ["),j=0;j<s.length;j++)switch(j>0&&J(t.b,","),p=(J1(),Z0)[s[j]],p.length){case 2:case 3:case 1:J(t.b,p);break;default:J(t.b,"?");}J(t.b,"]");}else gt(V(e.B[D],1),0)?J(t.b," A"):e.C[D]>=129&&e.C[D]<=144||e.C[D]==154?J(t.b," R#"):J(t.b," "+(J1(),Z0)[e.C[D]]);if(A?(J(t.b," "+vt(eP*t.c*e.J[D].a)/eP),J(t.b," "+vt(eP*t.c*-e.J[D].b)/eP),J(t.b," "+vt(eP*t.c*-e.J[D].c)/eP)):J(t.b," 0 0 0"),J(t.b," "+w.Math.abs(e.w[D])),e.s[D]!=0&&J(t.b," CHG="+e.s[D]),(e.u[D]&48)!=0)switch(J(t.b," RAD="),e.u[D]&48){case 16:J(t.b,"1");break;case 32:J(t.b,"2");break;case 48:J(t.b,"3");}((e.u[D]&3)==1||(e.u[D]&3)==2)&&(J(t.b," CFG="),(e.u[D]&3)==1?J(t.b,"1"):J(t.b,"2")),e.A[D]!=0&&J(t.b," MASS="+e.A[D]),ct=((e.u[D]&w8)>>>27)-1,ct!=-1&&J(t.b," VAL="+(ct==0?"-1":m1(ct))),y=e.C[D],(y>=129&&y<=144||y==154)&&J(t.b," RGROUPS=(1 "+(y==154?0:y>=142?y-141:y-125)+")"),R=V(nP,e.B[D]),G(R,384)==0?J(t.b," HCOUNT=2"):G(R,128)==0?J(t.b," HCOUNT=1"):G(R,1792)==0?J(t.b," HCOUNT=-1"):G(R,1664)==0&&J(t.b," HCOUNT=1"),Tt=V(e.B[D],6144),G(Tt,0)!=0&&(gt(V(Tt,C0),0)?J(t.b," SUBST="+(e.e[D]+1)):J(t.b," SUBST=-1")),$=V(e.B[D],120),G($,0)!=0&&(G($,112)==0?J(t.b," RBCNT=-1"):G($,8)==0||G($,104)==0?J(t.b," RBCNT=2"):G($,88)==0?J(t.b," RBCNT=3"):G($,56)==0&&J(t.b," RBCNT=4")),J(t.b,x);}for(J(t.b,"M  V30 END ATOM"+x),J(t.b,"M  V30 BEGIN BOND"+x),T=0;T<e.r;T++){switch(J(t.b,io+(T+1)),e.H[T]){case 1:et=1,st=0;break;case 2:et=2,st=0;break;case 4:et=3,st=0;break;case 129:et=1,st=3;break;case 257:et=1,st=1;break;case 386:et=2,st=2;break;case 8:et=4,st=0;break;case 16:et=9,st=0;break;default:et=1,st=0;}g=e.G[T]&31,g!=0&&(g==8?et=4:g==3?et=5:g==9?et=6:g==10?et=7:et=8),J(t.b," "+et+" "+(e.D[0][T]+1)+" "+(e.D[1][T]+1)),st!=0&&J(t.b," CFG="+st),a=e.G[T]&384,wt=a==0?0:a==256?1:2,wt!=0&&J(t.b," TOPO="+wt),J(t.b,x);}for(J(t.b,"M  V30 END BOND"+x),v=false,Q=0;Q<e.q;Q++)if((e.t==null||e.t[Q]==null?null:rn((S=e.t[Q],c0(),S)))!=null){v=true;break;}if(v){for(J(t.b,"M  V30 BEGIN SGROUP"+x),m=0,o=0;o<e.q;o++)(e.t==null||e.t[o]==null?null:rn((I=e.t[o],c0(),I)))!=null&&(++m,J(t.b,io+m+" DAT "+m+" ATOMS=(1 "+(o+1)+') FIELDNAME="'+ky+'" -'+x),J(t.b,'M  V30 FIELDDISP="'),Ov(t,A?t.c*e.J[o].a:0),Ov(t,A?t.c*e.J[o].b:0),J(t.b,'    DA    ALL  1       5" FIELDDATA="'+(e.t==null||e.t[o]==null?null:rn((S=e.t[o],c0(),S)))+'"'+x));J(t.b,"M  V30 END SGROUP"+x);}for(_=false,n=0,M=c(F,k,6,32,15,1),r=c(F,k,6,32,15,1),L=0;L<e.f;L++)((e.u[L]&3)==1||(e.u[L]&3)==2)&&(_=true,rt=(e.u[L]&F1)>>18,rt==1?++r[(e.u[L]&F1)>>18!=1&&(e.u[L]&F1)>>18!=2?-1:(e.u[L]&jA)>>20]:rt==2?++M[(e.u[L]&F1)>>18!=1&&(e.u[L]&F1)>>18!=2?-1:(e.u[L]&jA)>>20]:++n);for(P=0,X=c(F,k,6,32,15,1),i=c(F,k,6,32,15,1),h=0;h<e.g;h++)dt(e,h)!=2&&((e.F[h]&3)==1||(e.F[h]&3)==2)&&(_=true,rt=(e.F[h]&768)>>8,rt==1?++i[(e.F[h]&768)>>8!=1&&(e.F[h]&768)>>8!=2?-1:(e.F[h]&ln)>>10]:rt==2?++X[(e.F[h]&768)>>8!=1&&(e.F[h]&768)>>8!=2?-1:(e.F[h]&ln)>>10]:++P);if(_){if(J(t.b,"M  V30 BEGIN COLLECTION"+x),n!=0){for(J(t.b,"M  V30 MDLV30/STEABS ATOMS=("+n),f=0;f<e.f;f++)((e.u[f]&3)==1||(e.u[f]&3)==2)&&(e.u[f]&F1)>>18==0&&J(t.b," "+(f+1));J(t.b,")"+x);}if(P!=0){for(J(t.b,"M  V30 MDLV30/STEABS BONDS=("+P),l=0;l<e.g;l++)dt(e,l)!=2&&((e.F[l]&3)==1||(e.F[l]&3)==2)&&(e.F[l]&768)>>8==0&&J(t.b," "+(l+1));J(t.b,")"+x);}for(b=0;b<32;b++){if(M[b]!=0){for(J(t.b,Cp+(b+1)+" ATOMS=("+M[b]),f=0;f<e.f;f++)((e.u[f]&3)==1||(e.u[f]&3)==2)&&(e.u[f]&F1)>>18==2&&((e.u[f]&F1)>>18!=1&&(e.u[f]&F1)>>18!=2?-1:(e.u[f]&jA)>>20)==b&&J(t.b," "+(f+1));J(t.b,")"+x);}if(r[b]!=0){for(J(t.b,Hp+(b+1)+" ATOMS=("+r[b]),f=0;f<e.f;f++)((e.u[f]&3)==1||(e.u[f]&3)==2)&&(e.u[f]&F1)>>18==1&&((e.u[f]&F1)>>18!=1&&(e.u[f]&F1)>>18!=2?-1:(e.u[f]&jA)>>20)==b&&J(t.b," "+(f+1));J(t.b,")"+x);}if(X[b]!=0){for(J(t.b,Cp+(b+1)+" BONDS=("+X[b]),l=0;l<e.g;l++)dt(e,l)!=2&&((e.F[l]&3)==1||(e.F[l]&3)==2)&&(e.F[l]&768)>>8==2&&((e.F[l]&768)>>8!=1&&(e.F[l]&768)>>8!=2?-1:(e.F[l]&ln)>>10)==b&&J(t.b," "+(l+1));J(t.b,")"+x);}if(i[b]!=0){for(J(t.b,Hp+(b+1)+" BONDS=("+i[b]),l=0;l<e.g;l++)dt(e,l)!=2&&((e.F[l]&3)==1||(e.F[l]&3)==2)&&(e.F[l]&768)>>8==1&&((e.F[l]&768)>>8!=1&&(e.F[l]&768)>>8!=2?-1:(e.F[l]&ln)>>10)==b&&J(t.b," "+(l+1));J(t.b,")"+x);}}J(t.b,"M  V30 END COLLECTION"+x);}J(t.b,b6+x);}function utt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0,v1;if(Z3(t,false),Ot(t,9,4),jt=w.Math.max(J8(t.R.f),J8(t.R.g)),Ot(t,jt,4),jt==0){Ot(t,t.R.K?1:0,1),Ot(t,0,1),t.J=HL(t);return;}for(Q0=y0=H1=X=0,D=0;D<t.R.f;D++)if(n0(V(U0(t.R,D),1),0)){switch(K(t.R,D)){case 6:break;case 7:++Q0;break;case 8:++y0;break;default:++H1;}b1(t.R,D)!=0&&++X;}for(Ot(t,t.R.f,jt),Ot(t,t.R.g,jt),Ot(t,Q0,jt),Ot(t,y0,jt),Ot(t,H1,jt),Ot(t,X,jt),Q=0;Q<t.R.f;Q++)K(t.R,t.B[Q])==7&&n0(V(U0(t.R,t.B[Q]),1),0)&&Ot(t,Q,jt);for(s=0;s<t.R.f;s++)K(t.R,t.B[s])==8&&n0(V(U0(t.R,t.B[s]),1),0)&&Ot(t,s,jt);for(y=0;y<t.R.f;y++)K(t.R,t.B[y])!=6&&K(t.R,t.B[y])!=7&&K(t.R,t.B[y])!=8&&n0(V(U0(t.R,t.B[y]),1),0)&&(Ot(t,y,jt),Ot(t,K(t.R,t.B[y]),8));for(l=0;l<t.R.f;l++)b1(t.R,t.B[l])!=0&&n0(V(U0(t.R,t.B[l]),1),0)&&(Ot(t,l,jt),Ot(t,8+b1(t.R,t.B[l]),4));for(D1=0,R=0,T=1;T<t.R.f;T++)t.F[T]==-1?st=0:(st=1+t.F[T]-R,R=t.F[T]),D1<st&&(D1=st);for(a=J8(D1),Ot(t,a,4),R=0,h=1;h<t.R.f;h++)t.F[h]==-1?st=0:(st=1+t.F[h]-R,R=t.F[h]),Ot(t,st,a);for(St=0;St<2*t.I;St++)Ot(t,t.D[St],jt);for(p=0;p<t.R.g;p++)M=(Ae(t.R,t.C[p])&s8)!=0||l1(t.R,t.C[p])==16?1:O8(t.R,t.C[p])?0:w.Math.min(3,dt(t.R,t.C[p])),Ot(t,M,2);if(A=0,(t.Q&q1)==0)for(g=0;g<t.R.f;g++)t._[t.B[g]]!=0&&t._[t.B[g]]!=3&&++A;if(Ot(t,A,jt),(t.Q&q1)==0)for(g=0;g<t.R.f;g++)t._[t.B[g]]!=0&&t._[t.B[g]]!=3&&(Ot(t,g,jt),t.bb[t.B[g]]==0?Ot(t,t._[t.B[g]],3):(v1=t._[t.B[g]]==1?t.bb[t.B[g]]==1?4:6:t.bb[t.B[g]]==1?5:7,Ot(t,v1,3),Ot(t,t.ab[t.B[g]],3)));if(e=0,(t.Q&q1)==0)for(S=0;S<t.R.g;S++)t.j[t.C[S]]!=0&&t.j[t.C[S]]!=3&&(!WP(t.R,t.C[S])||l1(t.R,t.C[S])==1)&&++e;if(Ot(t,e,jt),(t.Q&q1)==0)for(S=0;S<t.R.g;S++)t.j[t.C[S]]!=0&&t.j[t.C[S]]!=3&&(!WP(t.R,t.C[S])||l1(t.R,t.C[S])==1)&&(Ot(t,S,jt),l1(t.R,t.C[S])==1?t.n[t.C[S]]==0?Ot(t,t.j[t.C[S]],3):(v1=t.j[t.C[S]]==1?t.n[t.C[S]]==1?4:6:t.n[t.C[S]]==1?5:7,Ot(t,v1,3),Ot(t,t.k[t.C[S]],3)):Ot(t,t.j[t.C[S]],2));for(Ot(t,t.R.K?1:0,1),$=0,m=0;m<t.R.f;m++)le(t.R,t.B[m])!=0&&++$;if($!=0)for(an(t,1),Ot(t,$,jt),g=0;g<t.R.f;g++)le(t.R,t.B[g])!=0&&(Ot(t,g,jt),Ot(t,le(t.R,t.B[g]),8));if(t.w=0,t.R.K){for(TA(t,0,jt,q1,1,-1),TA(t,3,jt,C0,1,-1),TA(t,4,jt,120,4,3),TA(t,5,jt,ly,2,1),TA(t,6,jt,1,1,-1),TA(t,7,jt,nP,4,7),$=0,g=0;g<t.R.f;g++)HA(t.R,t.B[g])!=null&&++$;if($>0){for(an(t,8),Ot(t,$,jt),v=0;v<t.R.f;v++)if(b=HA(t.R,t.B[v]),b!=null)for(Ot(t,v,jt),Ot(t,b.length,4),P=b,r=0,i=P.length;r<i;++r)n=P[r],Ot(t,n,8);}Ai(t,9,jt,384,2,7),Ai(t,10,jt,31,5,0),TA(t,11,jt,de,1,-1),Ai(t,12,jt,s8,8,9),TA(t,13,jt,oi,3,14),TA(t,14,jt,Ui,5,17),TA(t,16,jt,f9,3,22);}for($=0,o=0;o<t.R.f;o++)t.a!=null&&t.a[t.B[o]]!=-1&&++$;if($!=0)for(an(t,17),Ot(t,$,jt),g=0;g<t.R.f;g++)t.a!=null&&t.a[t.B[g]]!=-1&&(Ot(t,g,jt),Ot(t,t.a[t.B[g]],4));if(rt=0,wt=0,Tt=0,(t.Q&8)!=0||(t.Q&ie)!=0){for($=0,r1=0,g=0;g<t.R.f;g++)if(bt=Zn(t.R,t.B[g]),bt!=null){if(V1=ch(bt),bt.length>15||V1>127){rt<bt.length&&(rt=w.Math.min(63,bt.length)),wt<V1&&(wt=V1),++Tt;continue;}++$,r1=w.Math.max(r1,bt.length);}if($!=0){for(yt=J8(r1),an(t,18),Ot(t,$,jt),Ot(t,yt,4),v=0;v<t.R.f;v++)if(bt=Zn(t.R,t.B[v]),bt!=null&&bt.length<=15&&ch(bt)<=127)for(Ot(t,v,jt),Ot(t,bt.length,yt),Kt=0;Kt<bt.length;Kt++)Ot(t,(Gt(Kt,bt.length),bt.charCodeAt(Kt)),7);}}for(t.R.K&&(TA(t,19,jt,i9,3,25),Ai(t,20,jt,SP,3,17)),$=0,L=0;L<t.R.f;L++)mA(t.R,t.B[L])!=0&&++$;if($!=0)for(an(t,21),Ot(t,$,jt),f=0;f<t.R.f;f++)mA(t.R,t.B[f])!=0&&(Ot(t,f,jt),Ot(t,mA(t.R,t.B[f])>>4,2));if(t.R.K&&(TA(t,22,jt,Qr,1,-1),Ai(t,23,jt,T8,1,-1),Ai(t,24,jt,no,2,21)),(t.Q&16)!=0){for(f=0;f<t.R.f;f++)if(P0(t.R,t.B[f])){for(an(t,25),n=0;n<t.R.f;n++)Ot(t,P0(t.R,t.B[n])?1:0,1);break;}}if(t1=H_(t),t1!=null){for($=0,S=0;S<t.R.g;S++)t1[t.C[S]]&&++$;for(an(t,26),Ot(t,$,jt),I=0;I<t.R.g;I++)t1[t.C[I]]&&Ot(t,I,jt);}for(t.R.K&&TA(t,27,jt,re,1,-1),$=0,x=0;x<t.R.g;x++)l1(t.R,t.C[x])==16&&++$;if($!=0)for(an(t,28),Ot(t,$,jt),S=0;S<t.R.g;S++)l1(t.R,t.C[S])==16&&Ot(t,S,jt);for(t.R.K&&(TA(t,29,jt,h8,2,30),TA(t,30,jt,Pr,7,32),TA(t,32,jt,v6,2,44),TA(t,33,jt,Hf,5,39),TA(t,34,jt,WQ,1,-1),Ai(t,35,jt,Mf,1,-1),Ai(t,36,jt,96,2,5)),$=0,tt=0;tt<t.R.g;tt++)(l1(t.R,t.C[tt])==32||l1(t.R,t.C[tt])==64)&&++$;if($!=0)for(an(t,37),Ot(t,$,jt),j=0;j<t.R.g;j++)(l1(t.R,t.C[j])==32||l1(t.R,t.C[j])==64)&&(Ot(t,j,jt),Ot(t,l1(t.R,t.C[j])==32?0:1,1));if(t.b&&(t.Q&16)!=0){for($=0,et=0,g=0;g<t.R.f;g++){for(_=0,Qt=O(t.R,t.B[g]);Qt<Ht(t.R,t.B[g]);Qt++)P0(t.R,W(t.R,t.B[g],Qt))&&(ct=Qt-O(t.R,t.B[g]),_|=1<<ct,et=w.Math.max(et,ct+1));_!=0&&++$;}if($!=0)for(an(t,38),Ot(t,$,jt),Ot(t,et,3),f=0;f<t.R.f;f++){for(_=0,Qt=O(t.R,t.B[f]);Qt<Ht(t.R,t.B[f]);Qt++)P0(t.R,W(t.R,t.B[f],Qt))&&(ct=Qt-O(t.R,t.B[f]),_|=1<<ct);_!=0&&(Ot(t,f,jt),Ot(t,_,et));}}if(t.R.K&&TA(t,39,jt,B2,4,47),Tt!=0){for(yt=J8(rt),Lt=J8(wt),an(t,40),Ot(t,Tt,jt),Ot(t,yt,6),Ot(t,Lt,16),f=0;f<t.R.f;f++)if(bt=Zn(t.R,t.B[f]),bt!=null&&(bt.length>15||ch(bt)>127))for(Ot(t,f,jt),Yt=w.Math.min(63,bt.length),Ot(t,Yt,yt),Kt=0;Kt<Yt;Kt++)Ot(t,(Gt(Kt,bt.length),bt.charCodeAt(Kt)),Lt);}Ot(t,0,1),t.J=HL(t);}function r6(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1;for(this.b=new U3((rt=my,rt)),bt=(z1(),$A),ut(t,15),st=true,P=0;P<t.f;P++)if((t.u[P]&3)!=0&&(t.u[P]&3)!=3&&(t.u[P]&F1)>>18!=1){st=false;break;}if(Kt=-1,st){for(M=c(F,k,6,32,15,1),St=0,r=0;r<t.f;r++)if((t.u[r]&3)!=0&&(t.u[r]&3)!=3&&(t.u[r]&F1)>>18==1){et=(t.u[r]&F1)>>18!=1&&(t.u[r]&F1)>>18!=2?-1:(t.u[r]&jA)>>20,++M[et],St<M[et]&&(St=M[et],Kt=et);break;}}for(this.a=A||new V0(),Qt=t.P!=null?t.P:"",J(this.a,Qt+bt),J(this.a,"Actelion Java MolfileCreator 1.0"+bt+bt),g0(this,t.q),g0(this,t.r),J(this.a,"  0  0"),g0(this,st?0:1),J(this.a,"  0  0  0  0  0999 V2000"+bt),_=t.q==1,Q=1;Q<t.q;Q++)if(t.J[Q].a!=t.J[0].a||t.J[Q].b!=t.J[0].b||t.J[Q].c!=t.J[0].c){_=true;break;}if(X=1,_)if(e!=0)X=e;else if(v=cP(t,t.q,t.r,(J1(),wn)),v!=0)(v<1||v>3)&&(X=1.5/v);else {for(t1=Ee,r=1;r<t.q;r++)for(D=0;D<r;D++)I=t.J[D].a-t.J[r].a,x=t.J[D].b-t.J[r].b,tt=t.J[D].c-t.J[r].c,S=I*I+x*x+tt*tt,t1>S&&(t1=S);X=3/t1;}for(o=0;o<t.q;o++)_?(Yu(this,X*t.J[o].a),Yu(this,X*-t.J[o].b),Yu(this,X*-t.J[o].c)):J(this.a,"    0.0000    0.0000    0.0000"),(t.v==null?null:t.v[o])!=null?J(this.a," L  "):gt(V(t.B[o],1),0)?J(this.a," A  "):t.C[o]>=129&&t.C[o]<=144||t.C[o]==154?J(this.a," R# "):(h=(J1(),Z0)[t.C[o]],J(this.a," "+h),h.length==1?J(this.a,"  "):h.length==2&&J(this.a," ")),J(this.a," 0  0  0"),$=V(nP,t.B[o]),G($,0)==0?J(this.a,"  0"):G($,384)==0?J(this.a,"  3"):G($,128)==0?J(this.a,"  2"):G($,1792)==0?J(this.a,"  1"):G($,1664)==0&&J(this.a,"  2"),J(this.a,gt(V(t.B[o],de),0)?"  1":"  0"),H1=((t.u[o]&w8)>>>27)-1,H1==-1?J(this.a,"  0"):H1==0?J(this.a," 15"):g0(this,H1),J(this.a,"  0  0  0"),g0(this,w.Math.abs(t.w[o])),J(this.a,"  0  0"+bt);for(b=0;b<t.r;b++){switch(t.H[b]){case 1:Yt=1,Lt=0;break;case 2:Yt=2,Lt=0;break;case 4:Yt=3,Lt=0;break;case 129:Yt=1,Lt=6;break;case 257:Yt=1,Lt=1;break;case 386:Yt=2,Lt=3;break;case 8:Yt=4,Lt=0;break;case 16:Yt=8,Lt=0;break;default:Yt=1,Lt=0;}st&&(Lt==1||Lt==6)&&(r=t.D[0][b],(t.u[r]&F1)>>18==2?Lt=0:(t.u[r]&F1)>>18==1&&((t.u[r]&F1)>>18!=1&&(t.u[r]&F1)>>18!=2?-1:(t.u[r]&jA)>>20)!=Kt&&(Lt=4)),R=t.G[b]&31,R!=0&&(R==8?Yt=4:R==3?Yt=5:R==9?Yt=6:R==10?Yt=7:Yt=8),r1=t.G[b]&384,Q0=r1==0?0:r1==256?1:2,g0(this,1+t.D[0][b]),g0(this,1+t.D[1][b]),g0(this,Yt),g0(this,Lt),J(this.a,"  0"),g0(this,Q0),J(this.a,"  0"+bt);}for(yt=0,L=0;L<t.q;L++)t.s[L]!=0&&++yt;if(yt!=0)for(p=0,r=0;r<t.q;r++)t.s[r]!=0&&(p==0&&(J(this.a,"M  CHG"),g0(this,w.Math.min(8,yt))),J(this.a," "),g0(this,r+1),j=t.s[r],j<0?(J(this.a,"  -"),j=-j):J(this.a,"   "),Ge(this.a,48+j&c1),--yt,(++p==8||yt==0)&&(p=0,J(this.a,bt)));for(yt=0,s=0;s<t.q;s++)t.A[s]==0||++yt;if(yt!=0)for(p=0,r=0;r<t.q;r++)t.A[r]!=0&&(p==0&&(J(this.a,"M  ISO"),g0(this,w.Math.min(8,yt))),J(this.a," "),g0(this,r+1),J(this.a," "),g0(this,t.A[r]),--yt,(++p==8||yt==0)&&(p=0,J(this.a,bt)));for(yt=0,y=0;y<t.q;y++)(t.u[y]&48)!=0&&++yt;if(yt!=0){for(p=0,r=0;r<t.q;r++)if((t.u[r]&48)!=0){switch(p==0&&(J(this.a,"M  RAD"),g0(this,w.Math.min(8,yt))),J(this.a," "),g0(this,r+1),t.u[r]&48){case 16:J(this.a,"   1");break;case 32:J(this.a,"   2");break;case 48:J(this.a,"   3");}--yt,(++p==8||yt==0)&&(p=0,J(this.a,bt));}}for(yt=0,l=0;l<t.q;l++)(t.C[l]>=129&&t.C[l]<=144||t.C[l]==154)&&++yt;if(yt!=0)for(p=0,r=0;r<t.q;r++)m=t.C[r],(m>=129&&m<=144||m==154)&&(p==0&&(J(this.a,"M  RGP"),g0(this,w.Math.min(8,yt))),J(this.a," "),g0(this,r+1),J(this.a," "),g0(this,m==154?0:m>=142?m-141:m-125),--yt,(++p==8||yt==0)&&(p=0,J(this.a,bt)));if(t.K){for(yt=0,r=0;r<t.q;r++)gt(V(t.B[r],120),0)&&++yt;if(yt!=0)for(p=0,D=0;D<t.q;D++)V1=V(t.B[D],120),G(V1,0)!=0&&(p==0&&(J(this.a,"M  RBC"),g0(this,w.Math.min(8,yt))),J(this.a," "),g0(this,D+1),G(V1,112)==0?J(this.a,"  -1"):G(V1,8)==0?J(this.a,"   1"):G(V1,104)==0?J(this.a,"   2"):G(V1,88)==0?J(this.a,"   3"):G(V1,56)==0&&J(this.a,"   4"),--yt,(++p==8||yt==0)&&(p=0,J(this.a,bt)));for(T=0;T<t.q;T++)if(g=t.v==null?null:t.v[T],g!=null){for(J(this.a,"M  ALS "),g0(this,T+1),g0(this,g.length),J(this.a,gt(V(t.B[T],1),0)?" T ":" F "),a=0;a<g.length;a++)switch(Tt=(J1(),Z0)[g[a]],Tt.length){case 1:J(this.a,Tt+"   ");break;case 2:J(this.a,Tt+"  ");break;case 3:J(this.a,Tt+" ");break;default:J(this.a,"   ?");}J(this.a,bt);}for(yt=0,i=0;i<t.q;i++)gt(V(t.B[i],6144),0)&&++yt;if(yt!=0)for(p=0,D=0;D<t.q;D++)jt=V(t.B[D],6144),G(jt,0)!=0&&(p==0&&(J(this.a,"M  SUB"),g0(this,w.Math.min(8,yt))),J(this.a," "),g0(this,D+1),gt(V(jt,C0),0)?J(this.a,"   "+(t.e[D]+1)):J(this.a,"  -2"),--yt,(++p==8||yt==0)&&(p=0,J(this.a,bt)));}for(yt=0,f=0;f<t.q;f++)(t.t==null||t.t[f]==null?null:rn((ct=t.t[f],c0(),ct)))!=null&&++yt;if(yt!=0)for(D1=0,n=0;n<t.q;n++)Tt=t.t==null||t.t[n]==null?null:rn((wt=t.t[n],c0(),wt)),Tt!=null&&(++D1,J(this.a,"M  STY  1 "),g0(this,D1),J(this.a," DAT"),J(this.a,bt),J(this.a,"M  SLB  1 "),g0(this,D1),J(this.a," "),g0(this,D1),J(this.a,bt),J(this.a,"M  SAL "),g0(this,D1),J(this.a,"  1 "),g0(this,n+1),J(this.a,bt),J(this.a,"M  SDT "),g0(this,D1),J(this.a," "),J(this.a,ky),J(this.a,bt),J(this.a,"M  SDD "),g0(this,D1),J(this.a," "),Yu(this,t.J[n].a),Yu(this,t.J[n].b),J(this.a,"    DA    ALL  1       5"),J(this.a,bt),J(this.a,"M  SED "),g0(this,D1),J(this.a," "),J(this.a,Tt),J(this.a,bt));J(this.a,D9+bt);}function i6(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0,v1,g1,T0;for(t.k=e,Fi(t.k),t.s=new UP(),t.a=new Xg(),t.r&&un(t.r,0),t.b=0,t.p=false,Q=t.q!=0,bt=null,l=c(F,k,6,32,15,1),l[0]=-1,yt=c(F,k,6,16,15,1),r1=c(F,k,6,16,15,1),V1=c(F,k,6,16,15,1),Yt=c(F,k,6,16,15,1),_=0;_<16;_++)yt[_]=-1;for(s=0,I=-1,D1=false,Tt=false,M=false,v=0,g=1,h=0;A[n]<=32;)++n;for(;n<P;){if(Lt=A[n++]&c1,BB(Lt)||Lt==42||Lt==63||Lt==33&&Q&&D1||Lt==35&&Q&&D1||Lt==36&&Q&&D1){if(y=new zF(t,t.j|t.q),D1){if((t.j&128)!=0){if(j=new F7(n-1),n=n6(y,A,n,P,true,true),A[n-1]!=93){for(;A[n-1]!=93;)n=n6(y,A,n+1,P,true,true),++j.a;t.f.add(j);}}else n=n6(y,A,n,P,Q,false);}else n=L_(y,A,n,P,Q);if(D1=false,y.q&&N(y.q,0)){I=l[v],l[v]=e.q,kD(e,y.q?N(y.q,0):null),I!=-1&&g!=512&&(T=O0(t.k,I,I,g),h!=0&&(t.p=true,Je(t.k,T,h,true),Cs(t.k,T))),g=1,h=0;continue;}if(y.d==-1&&Lt!=63)throw At(new C1("SmilesParser: unknown element label found. Position:"+(n-1)));y.r&&(t.p=true),L=B$(y,t.k,Lt,n),Y0(t.k,L)&&++t.b,I=l[v],I!=-1&&g!=512&&(T=O0(t.k,I,L,g),h!=0&&(t.p=true,Je(t.k,T,h,true),Cs(t.k,T))),g=1,h=0,l[v]=L,s!=0&&(br(t.k,L,s),s=0),i&&(t1=bt?Te(bt,m1(I)):null,t1&&Xu(t1,L,(wt=n,y.d==1&&le(t.k,L)==0,wt)),y.p&&(!bt&&(bt=new yP()),X=y.g==9?0:y.g,Ye(bt,m1(L),new Tk(t,L,n-2,I,X,y.i))));continue;}if(Lt==46){l[v]=-1,g=512;continue;}if(Lt==45||Lt==61||Lt==35||Lt==36||Lt==58||Lt==47||Lt==92||Lt==60||Lt==126||Lt==33||Lt==64){if(D1)throw At(new C1("SmilesParser: unexpected bond symbol inside square brackets: '"+String.fromCharCode(Lt)+H6+(n-1)));for(p=0;Lt==45||Lt==61||Lt==35||Lt==36||Lt==58||Lt==47||Lt==92||Lt==60||Lt==126||Lt==33||Lt==64;){if(Lt==33){if(Lt=A[n++]&c1,Lt==64)h|=128;else if(Lt==45&&A[n]==62||Lt==60&&A[n]==45)p|=16,++n;else if(Lt==45)p|=1;else if(Lt==61)p|=2;else if(Lt==35)p|=4;else if(Lt==36)p|=32;else if(Lt==58)p|=8;else throw At(new C1("SmilesParser: bond symbol '"+String.fromCharCode(Lt)+"' not allowed after '!'. Position:"+(n-1)));}else if(Lt==64?h|=256:Lt==61?g=2:Lt==35?g=4:Lt==36?g=32:Lt==58?g=8:Lt==126?h|=15:Lt==47?i&&(g=257):Lt==92?i&&(g=129):(Lt==45&&A[n]==62||Lt==60&&A[n]==45)&&(g=16,++n),A[n]==44)for(h|=(g==16?62:Lt)==61?2:(g==16?62:Lt)==35?4:(g==16?62:Lt)==36?32:(g==16?62:Lt)==58?8:(g==16?62:Lt)==62?16:(g==16?62:Lt)==126?127:1;A[n]==44;)A[n+1]==60&&A[n+2]==45||A[n+1]==45&&A[n+2]==62?(h|=16,n+=3):(h|=(A[n+1]&c1)==61?2:(A[n+1]&c1)==35?4:(A[n+1]&c1)==36?32:(A[n+1]&c1)==58?8:(A[n+1]&c1)==62?16:(A[n+1]&c1)==126?127:1,n+=2);if(A[n]==59){++n,Lt=A[n++]&c1;continue;}p!=0&&(h|=127&~p);break;}continue;}if(Lt<=32){n=P;continue;}if(Kn(Lt)){if(ct=Lt-48,D1){for(;n<P&&Kn(A[n]&c1);)ct=10*ct+A[n]-48,++n;s=ct;}else {if(m=Tt?n-3:n-2,tt=A[m]==45||A[m]==47||A[m]==92||A[m]==61||A[m]==35||A[m]==36||A[m]==58||A[m]==62||A[m]==126,Tt&&n<P&&Kn(A[n]&c1)&&(ct=10*ct+A[n]-48,Tt=false,++n),ct>=yt.length){if(ct>=100)throw At(new C1("SmilesParser: ringClosureAtom number out of range: "+ct));for(Kt=yt.length,rt=yt.length;rt<=ct;)rt=w.Math.min(100,rt+16);for(yt=(n8(rt),bP(yt,c(F,k,6,rt,15,1),0,rt)),r1=(n8(rt),bP(r1,c(F,k,6,rt,15,1),0,rt)),V1=(n8(rt),bP(V1,c(F,k,6,rt,15,1),0,rt)),Yt=(n8(rt),bP(Yt,c(F,k,6,rt,15,1),0,rt)),$=Kt;$<rt;$++)yt[$]=-1;}if(yt[ct]==-1)yt[ct]=l[v],r1[ct]=n-1,V1[ct]=tt?g:-1,Yt[ct]=tt?h:0;else {if(yt[ct]==l[v])throw At(new C1("SmilesParser: ring closure to same atom"));i&&bt&&(t1=Te(bt,m1(yt[ct])),t1&&Xu(t1,l[v],r1[ct]),t1=Te(bt,m1(l[v])),t1&&Xu(t1,yt[ct],n-1)),V1[ct]!=-1?g=V1[ct]:g==257?g=129:g==129&&(g=257),f=yt[ct],D=l[v],T=(T0=O0(t.k,f,D,g),ED(t.s,f+"_"+D,B(d(F,1),k,6,15,[r1[ct],n-1])),ED(t.s,D+"_"+f,B(d(F,1),k,6,15,[r1[ct],n-1])),lv(t.a,f),lv(t.a,D),T0),Yt[ct]!=0&&(h=Yt[ct]),h!=0&&(t.p=true,Je(t.k,T,Yt[ct],true),Cs(t.k,T)),yt[ct]=-1;}g=1,h=0;}continue;}if(Lt==43)throw At(new C1("SmilesParser: '+' found outside brackets. Position:"+(n-1)));if(Lt==40){if(l[v]==-1){M=true;continue;}++v,l.length==v&&(l=kn(l,l.length+32)),l[v]=l[v-1];continue;}if(Lt==41){if(v==0){if(!M)throw At(new C1("SmilesParser: Closing ')' without opening counterpart. Position:"+(n-1)));l[0]=-1,M=false;continue;}--v;continue;}if(Lt==91){D1=true;continue;}if(Lt==93)throw At(new C1("SmilesParser: closing bracket at unexpected position:"+(n-1)));if(Lt==37){Tt=true;continue;}throw At(new C1("SmilesParser: unexpected character outside brackets: '"+String.fromCharCode(Lt)+qp+(n-1)));}if(g!=1)throw At(new C1("SmilesParser: dangling open bond; position:"+n));for(a=0;a<yt.length;a++)if(yt[a]!=-1)throw At(new C1("SmilesParser: dangling ring closure: "+a+"; position:"+n));for(x=ou(t.k),t.k.S=true,ut(t.k,1),o=0;o<t.k.q;o++)if(Zn(t.k,o)!=null){if(S=z3(t.k,o)[0],t.p||t.q==2){if(S!=9)if(t.i)for(et=0;et<S;et++)O0(t.k,o,Z9(t.k,1),1);else S==0&&T1(t.k,o,1792,true),S==1&&T1(t.k,o,1664,true),S==2&&T1(t.k,o,1408,true),S==3&&T1(t.k,o,896,true);}else {if(S==9&&(S=0),!$0(t.k,o)&&(!Y0(t.k,o)||K(t.k,o)==6&&b1(t.k,o)==0)){for(g1=Ku(K(t.k,o)),b=false,jt=N1(t.k,o),jt-=mu(t.k,o,jt),jt+=S,Y0(t.k,o)&&++jt,H1=g1,y0=0,v1=H1.length;y0<v1;++y0)if(Q0=H1[y0],jt<=Q0){b=true,Q0==jt+2?Oe(t.k,o,48):Q0==jt+1?Oe(t.k,o,32):(Q0!=jt||Q0!=g1[0])&&XA(t.k,o,jt);break;}b||XA(t.k,o,jt);}if(t.i||!aL(t.k,o))for(et=0;et<S;et++)O0(t.k,o,Z9(t.k,1),1);}}else !t.i&&(t.p||t.q==2)&&(S=m3(t.k,o),S>=1&&T1(t.k,o,128,true),S>=2&&T1(t.k,o,256,true),S>=3&&T1(t.k,o,512,true),S>=4&&T1(t.k,o,ie,true));if(!t.i&&(t.p||t.q==2)&&c5(t.k,false),ut(t.k,1),YX(t),Ja(t,Q,t.p),t.k.t=null,t.k.S=false,i&&(f$(t),bt)){for(Qt=(St=new rD(bt).a.$c().Tb(),new iD(St));Qt.a.ad();)t1=(R=Qt.a.bd(),R.ed()),we(t.k,x[t1.a],sZ(t1,x),false);UD(t.k,0);}UD(t.k,0),r&&(st=new Y8(t.d),gt(t.n,0)&&jq(st,t.n),er(st,t.k),i&&C3(t.k)),(t.p||t.q==2)&&(pe(t.k,true),Bj(t.k),Wb(t.k));}function wp(){wp=d1,po=B(d(it,2),nA,13,0,[B(d(it,1),Dt,2,6,["e","daXJ@@PjyITuiX@`!dahJ@@SJYIMMfPB#IaLJfxP IaAhl[`#!BDpAl@AL@[@Be}aL@[@@ !B|Osp?QZR?O_}}zGze`@##"]),B(d(it,1),Dt,2,6,["g","gBa`@lde@XS@!gCA`@mDPOdku`#qbq qJt#!B[G|S_qgq !BjW}q]cga##"]),B(d(it,1),Dt,2,6,["o","gGQHDDqIUjdB!gGQHHDqAeMjhB#qbqk qfQ]#!B@AL@[@@S@Fp@Dp !BFQ{~_q|ZGvUSYp##"]),B(d(it,1),Dt,2,6,["r","gOQdEjHbAFQRBrtAaJ!gNQdEbHbABCTKPFDH#qbMwX qbM~X#!BNDm`ra?UjW~YBYX@ !Ba[zw?_x@?g~H?XO~##"]),B(d(it,1),Dt,2,6,["s","gOp`ATigujj`H!gOp`ATiVKjj`H#qnyS` qY~eP#!BTLtk^sE?BOs|]pc} !BbOvw?_y??g~H?[_}##"]),B(d(it,1),Dt,2,6,["t","gOP`@dcUZdB!gNp`@tiTMjj@`#q{ir` qkLrx#!Be`Bzr_wp?OC}|Osp !B?g~w@k_}m?vw@n[a##"]),B(d(it,1),Dt,2,6,["u","daXB`Hrn@HrPEILt`D!daXB`DJn@HRUMjV@H#IxVaLJ` IylJhPP#!B[G}l@OKyDpAl@AL@[@@ !B@Fp@DpAl@AN]?`Al@AL##"]),B(d(it,1),Dt,2,6,["Sakurai","gOQH@wAINvZ@pdcFe@x@!gOQH@wAIgJi@pdcFe@x@#qreKx qrLkx#!BDpAl@IknDw|S@Fp@ !Bb@JH?_x@b@JH?Ven##"]),B(d(it,1),Dt,2,6,["Mitsunobu","gFP`ATfRhdPp`}KEYg]d@!gFP`ATfRhd`pekL{l`#qrLk qZLn#!B@hc}b@C~@h`YM` !B@hc}b@C~@h`YM`##"]),B(d(it,1),Dt,2,6,["Aldol-Addition","gOQ@AdTAcS@[Q^crJTLES`DJsL?vH!gGQ@@dsuRAcJg@HUaX#qYEbp qYub#!BxOyBzLKg`dG~xG~{ !Bb@K~@Hc}FBIA@@##"]),B(d(it,1),Dt,2,6,["Aldol-Condensation","gOQ@AdTAcS@[Q^crJTLES`DJsL?vH!gFQ@@`rrpdlHHpipBEXf@#qYEbp q^aU#!B{ZRRqA?AQfyA@L_C !B}QFw@h`B_tnH_P##"]),B(d(it,1),Dt,2,6,["Acetal-Aldol-Addition","dmdB@@serQS@sJjfd@p`Xir\\@`j\\@aUJXK@!daxL@@[df[ZjT@qQdxACdxABjTqf@#qB@`OuX qBtM{#!B_]]}rHKWw?y}uy[~GJbBu{wWqG| !BfJK~TIa]fJJghg{`pP@##"]),B(d(it,1),Dt,2,6,["Acetal-Aldol-Condensation","dmdB@@serQS@sJjfd@p`Xir\\@`j\\@aUJXK@!gNp`CTjUiV@qQS`DJg@HUVXV@#qB@`OuX qqj{`#!B?[_}b@Jw_?{}m~[~[N@Bm?vwkN| !BfsK~yzPrw}m?rzQM##"]),B(d(it,1),Dt,2,6,["Acetal-Aldol-Condensation-Cyclization","dkLB@@ZURYUvUjljh@paHpr\\@`!didD@@yIfUXXHL@CFNS`D@#IXljNPY@@@ IXljIyA#!BbOw~_x`Bm?vH?[_}b@JH?_y?b@Jw?Xc} !BbOvH?Oy??`BH?Xa}?`C~_p##"]),B(d(it,1),Dt,2,6,["Enolester-Cleavage","gOQ`@fdscT`_Qp!gOQ`@cdTASS@P#q}Kr` q}cNP#!B@k]}mpC~@k]}mqdY !Bb@K~@Hc}BfzH@hc}##"]),B(d(it,1),Dt,2,6,["propargylEnone","gCa@@dmXFD@!gCa@@dkHD#qNT qLV#!BbOw~_?y? !B@AL@[@@S##"]),B(d(it,1),Dt,2,6,["Arndt-Eistert","daiDaJYBBHj^{HhAYMpAaA@!daiD`FzLBHPVsZl@p`@#IyHHZ[@ IzDGBi`#!B?`Bw?H`Bn]{~\\g?~@Ox !B@rzH?_y?b@JH?_n~bOt##"]),B(d(it,1),Dt,2,6,["Curtius","gO]IcVaDF[s{HhCIe@`!gN]HMWADHJfm`XP@#q~Jk` qytUX#!B@O{|b@Jw\\o{~_?x@ !Bj]y??g?~?[^G_hc}##"]),B(d(it,1),Dt,2,6,["diazomethanHomologation","gFU@lQioIIs\\AyH!gFU@CPdimXD#qbM^ qbqk#!B?X`BbFZN?`C~_p !B@AL@[@@Su[x@Dp##"]),B(d(it,1),Dt,2,6,[PV,"deD@@LdbEdSTu@FqHWSDda`JFChXIa`?tdKi@!deD@@Ldb`\\SUM@FqHPsDda`JF@XXIa`?tdHY@#qTEApX qQECf@#!BQzK~}ubbW`BEgcb]?a@gg[zO !BQzK~}ubbW`Ag{VVAQzJ~c?xP##"]),B(d(it,1),Dt,2,6,[PV,"deD@@LdbEdSTu@FqHWSDda`JFChXIa`?tdKi@!gC`@DiZDE@#qPDA@p qQf#!BmpK~_x`Bm?tAs[]}?`BH_[_| !B_vp@[G|S##"]),B(d(it,1),Dt,2,6,["yne-Metathesis","daX@@LdPLWWPAlRXwQIHXLa`ZFChXO}IL[`!daX@@LdPLWWPAlRXwQIHXLa`ZFChXO}IL[`#qT@q@ qt@Q@#!BZmoi@Fjo|SFe|IkGiU@ !BZmoi@Fjo|SFe|IkGiU@##"]),B(d(it,1),Dt,2,6,["ene-yne-Metathesis","dcd@@LdPLPLWSSPAlrXwKlVRFCHXFa`zFAXXMa`?udqnWP!dcT@@LdbbplTsTt@[MeMr{Ela`jFAhXNa`VFCXXO}[J[et#qe@N@S@ qeHP@s@#!B?g?~@Oy?^gG}bOvw?H`E@PJw@hc}mp !B?`BH?[_}mpJH@oy??`AuC`Jw@hc}mp##"]),B(d(it,1),Dt,2,6,["Alkyne-Cyclisation","gG`@DcO|CFAFC`@!gFp@DiTt@@CFAFC`@#qi\\V qiSt#!B_y[qA`Biu^zV@@ !B?g~w@k_}m?vw@`##"]),B(d(it,1),Dt,2,6,["Elimination-Claisen","gNp`AldTQji@~a`!gGQ@@djmRA@#qtHUX qtSi#!Bm?vH?[\\B?g~H@hc} !B@AL@[@@S@Fp@Dp##"]),B(d(it,1),Dt,2,6,["imineFormationAzaCope","daZH@LAIMUjd@pRL@!daZH@HAAn]jd@p`@#IGfaLJ` IFDzfK@#!BDpAl@IkqDpAl@AL@[@@ !BFaFw@h`BbOw~@H`BbOt##"]),B(d(it,1),Dt,2,6,["didehydroCopeWithAromatisation","gNp@Di]ejDcjcr|wK`!gOp@DjWkB@@H#qrLkx q\\oQp#!B?g~H?K_}bGvH?H`B !Bm?w~@Hc}mpJw@ox@##"]),B(d(it,1),Dt,2,6,["symAldolNitrogenRing","dovJ@GBfttf\\v\\qjViPCADGbDodnGp!doNJ@JCSmtefWTCaYjje@H#IlZXi]]yL~C IqMVCzaIim?#!BQtl_riY?Qtl_rfuvNCQ`uZd@NCQ`uVVu}?sA]P !B?`BH@ox@bGvH@k\\Bb@JH_Xa}b@K~_rYltUr|W@##"]),B(d(it,1),Dt,2,6,["Diels-Alder","gFP@LdPLjA@!gFp@DiTujhB#qiZf qMSf#!B?_C}}?spIPFV@@ !B?g~w@k_}m?vw@`##"]),B(d(it,1),Dt,2,6,["Claisen-RA","gGQ@@eKtRA@!gGQ@@djqRA@#qMsT qM\\V#!B_qL@Dw}l@Fp@Dp !B@AL@[@@S@Fp@Dp##"]),B(d(it,1),Dt,2,6,["Cope","gGQ@DeZmRAbhcApIF@P@!gGQ@HeZmRAbhc@HIFC`@#qkNT qi\\V#!B_vp@[@@S@Fp@Dp !B_vp@[@@S@Fp@Dp##"]),B(d(it,1),Dt,2,6,["OxyCope","gNq@@dr}SHFD@!gNq@@djkUHD#qynZ` qykbp#!B?g~w?Xc}mpJH@hc} !B@Fp@DpAl@AL@[@@S##"]),B(d(it,1),Dt,2,6,["Vinylcyclopropane","gKP@DklVj@`!gKP@Di\\Vj@`#qaVh qTqh#!Bm?vH?PC~?K\\ !B?g|_Fa}eTv\\##"]),B(d(it,1),Dt,2,6,["Furan-CH2-OH-Rearrangement","gOp`@tiguif`H!gOp`@tfWMZZ`H#qZna@ qZtM@#!BTLtk^sE?BOs|]pc} !BBOuPtdy?UGm@V]Ho##"]),B(d(it,1),Dt,2,6,["rearrangement1032","gOp`ATieMji`H!gOp`ATeekZj`H#qaSnx qa]~P#!BTLtk^pc|LW?|]pc} !BBOpH?UCRSg}T^tAY##"]),B(d(it,1),Dt,2,6,["Pinacol-Rearrangement","gNp`ATffjj@pPh!gOP`@tfXZhCAA`#qb^ix qb^oH#!B@k^H@k_}@k_~@Hc} !BbOvH@oy??`BH?PFf##"]),B(d(it,1),Dt,2,6,["1,3-WaterEliminationWith12Shift","gJQ@@dmU@_SP!gKa@@`vtA}A@#qiTp qjap#!BbOvH@ox@bOt !BJdE?[@Al@AL##"]),B(d(it,1),Dt,2,6,["Epoxydation","gB``ADcdCB@!gC``AhtUPGtt@#qqb qtQ#!BjW}Y\\YX@ !B?g~w?^Va##"]),B(d(it,1),Dt,2,6,["oxydativePropargylAmine13Shift","gKi@HDEZpLHOQP!gJY@BDeVXB#qMr` qNTh#!BqiXTy{U?mW| !B@Fp@DpAl@AL##"]),B(d(it,1),Dt,2,6,["Baeyer-Villiger","gFQ`@[dTAZ`LHP!gFQ`@jdrMPGtl@#qrak qrlK#!B_?{}mwvHs^FVP@ !BbOvH@oy?bOuQzP##"]),B(d(it,1),Dt,2,6,[rV,"gGa@@dYs@XHFJIBDQbUeHPbLRl@!gFQ@@eNUPFJIBDQbUeHPbLRls@`#qbq] qfQk#!B@AOIDW}l@tD@Dp !B_qL@Dw}l_qNcDP##"]),B(d(it,1),Dt,2,6,[rV,"gBa@@d\\`XP@!gJQ@@eOU@XpdHQFIVY`P#qbq qfQ@#!B@AOIDW}l !B_qL@Dw}l_qL##"]),B(d(it,1),Dt,2,6,["Hantzsch Thiazol","daZHPDp@chaIMefh@ppDzTD~hYmC^bhbcPp]dQbUg~pp!gKXHL@aJWFe`H#qNPe@ qNj`#!BvuK[KUxv_yS[k_zhvuH !BTqa`FbpX?`@##"]),B(d(it,1),Dt,2,6,["Oxadiazole","gOX`BEdTASW@XQ@!gOu@HPeKNMKTA@#qrDMX qpULX#!BmpK~@K_}Mlx@?`C~ !BZ?`C}v|m_rYR[z?\\##"]),B(d(it,1),Dt,2,6,["Imidazole","dmeHPNg@qJqLbTtATijZ@LLJnuDmhWtSDXUFC`?rIoTAP!gOt@ATieuej`H#qDPpM_@ q~ZM`#!BqvKGg_yOqvKGg_xphrGkLcz@_sD !BTMHkACD@BOw|B@QT##"]),B(d(it,1),Dt,2,6,["1,2,3-Triazole","gB`HAbIGXFDWiM@!gF|@ADeKXmT`P#QIp Q@v#!B_vpU?g}l !BTv]`YRqg?g|XK@##"]),B(d(it,1),Dt,2,6,["1,2,4-Triazole","deFD@NALbbfASUW@FD]YJZLUCAVJ}?nES@!gO|@ABeKNLuRA@#qDB@FM q@LuP#!BY?r~@F_]jDJW`j`}Iaxx[UC] !BTv]@IPqgog|hCBT_##"])]);}function _A(){_A=d1,oE=new eD(),fE=B(d(it,1),Dt,2,6,["?","H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og",_1,_1,_1,_1,_1,_1,_1,_1,_1,_1,"R4","R5","R6","R7","R8","R9","R10","R11","R12","R13","R14","R15","R16","R1","R2","R3","A","A1","A2","A3",_1,_1,"D","T","X","R","H2","H+","Nnn","HYD","Pol",_1,_1,_1,_1,_1,_1,_1,_1,_1,_1,_1,"Ala","Arg","Asn","Asp","Cys","Gln","Glu","Gly","His","Ile","Leu","Lys","Met","Phe","Pro","Ser","Thr","Trp","Tyr","Val"]),QE=B(d(zt,1),_t,6,15,[0,1,4,7,9,11,12,14,16,19,20,23,24,27,28,31,32,35,40,39,40,45,48,51,52,55,56,59,58,63,64,69,74,75,80,79,84,85,88,89,90,93,98,0,102,103,106,107,114,115,120,121,130,127,132,133,138,139,140,141,142,0,152,153,158,159,164,165,166,169,174,175,180,181,184,187,192,193,195,197,202,205,208,209,209,210,222,223,226,227,232,231,238,237,244,243,247,247,251,252,257,258,259,262,267,268,271,270,277,276,281,281,283,285,289,289,293,294,294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,156,114,115,103,128,129,57,137,113,113,128,131,147,97,87,101,186,163,99]),DE=B(d(E,2),c8,10,0,[null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[0]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[0]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[2,4,6]),B(d(E,1),q,6,15,[1,3,5,7]),B(d(E,1),q,6,15,[0]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,null,null,null,null,null,null,null,null,B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[2,4,6]),B(d(E,1),q,6,15,[1,3,5,7]),B(d(E,1),q,6,15,[0,2]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,null,null,null,null,null,null,null,null,B(d(E,1),q,6,15,[1,2,3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[2,4,6]),B(d(E,1),q,6,15,[1,3,5,7]),B(d(E,1),q,6,15,[0,2,4,6]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2])]),uE=B(d(E,2),c8,10,0,[null,B(d(E,1),q,6,15,[1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,B(d(E,1),q,6,15,[-3]),B(d(E,1),q,6,15,[-2]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),null,B(d(E,1),q,6,15,[-3]),B(d(E,1),q,6,15,[-2]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3,4]),B(d(E,1),q,6,15,[2,3,4,5]),B(d(E,1),q,6,15,[2,3,6]),B(d(E,1),q,6,15,[2,3,4,7]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[1,2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[-3,3,5]),B(d(E,1),q,6,15,[-2]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[6]),B(d(E,1),q,6,15,[4,6,7]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[-3,3,5]),B(d(E,1),q,6,15,[-2,4,6]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[5]),B(d(E,1),q,6,15,[6]),B(d(E,1),q,6,15,[4,6,7]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[1,3]),B(d(E,1),q,6,15,[1,2]),B(d(E,1),q,6,15,[1,3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[-2,2,4]),B(d(E,1),q,6,15,[-1,1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[4,5]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[3])]),iE=B(d(it,1),Dt,2,6,[M6,V6,E6]);}function J1(){J1=d1,Z0=B(d(it,1),Dt,2,6,["?","H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og",_1,_1,_1,_1,_1,_1,_1,_1,_1,_1,"R4","R5","R6","R7","R8","R9","R10","R11","R12","R13","R14","R15","R16","R1","R2","R3","A","A1","A2","A3",_1,_1,"D","T","X","R","H2","H+","Nnn","HYD","Pol",_1,_1,_1,_1,_1,_1,_1,_1,_1,_1,_1,"Ala","Arg","Asn","Asp","Cys","Gln","Glu","Gly","His","Ile","Leu","Lys","Met","Phe","Pro","Ser","Thr","Trp","Tyr","Val"]),o9=B(d(zt,1),_t,6,15,[0,1,4,7,9,11,12,14,16,19,20,23,24,27,28,31,32,35,40,39,40,45,48,51,52,55,56,59,58,63,64,69,74,75,80,79,84,85,88,89,90,93,98,0,102,103,106,107,114,115,120,121,130,127,132,133,138,139,140,141,142,0,152,153,158,159,164,165,166,169,174,175,180,181,184,187,192,193,195,197,202,205,208,209,209,210,222,223,226,227,232,231,238,237,244,243,247,247,251,252,257,258,259,262,267,268,271,270,277,276,281,281,283,285,289,289,293,294,294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,156,114,115,103,128,129,57,137,113,113,128,131,147,97,87,101,186,163,99]),MV=B(d(E,1),q,6,15,[6]),HV=B(d(E,1),q,6,15,[2]),Ur=B(d(E,2),c8,10,0,[null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[0]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[0]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[2,4,6]),B(d(E,1),q,6,15,[1,3,5,7]),B(d(E,1),q,6,15,[0]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,null,null,null,null,null,null,null,null,B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[2,4,6]),B(d(E,1),q,6,15,[1,3,5,7]),B(d(E,1),q,6,15,[0,2]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,null,null,null,null,null,null,null,null,B(d(E,1),q,6,15,[1,2,3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[2,4,6]),B(d(E,1),q,6,15,[1,3,5,7]),B(d(E,1),q,6,15,[0,2,4,6]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[2])]),B4=B(d(E,2),c8,10,0,[null,B(d(E,1),q,6,15,[1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),null,null,B(d(E,1),q,6,15,[-3]),B(d(E,1),q,6,15,[-2]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),null,B(d(E,1),q,6,15,[-3]),B(d(E,1),q,6,15,[-2]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3,4]),B(d(E,1),q,6,15,[2,3,4,5]),B(d(E,1),q,6,15,[2,3,6]),B(d(E,1),q,6,15,[2,3,4,7]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[1,2]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[-3,3,5]),B(d(E,1),q,6,15,[-2]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[6]),B(d(E,1),q,6,15,[4,6,7]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[-3,3,5]),B(d(E,1),q,6,15,[-2,4,6]),B(d(E,1),q,6,15,[-1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[5]),B(d(E,1),q,6,15,[6]),B(d(E,1),q,6,15,[4,6,7]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[1,3]),B(d(E,1),q,6,15,[1,2]),B(d(E,1),q,6,15,[1,3]),B(d(E,1),q,6,15,[2,4]),B(d(E,1),q,6,15,[3,5]),B(d(E,1),q,6,15,[-2,2,4]),B(d(E,1),q,6,15,[-1,1]),null,B(d(E,1),q,6,15,[1]),B(d(E,1),q,6,15,[2]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[4]),B(d(E,1),q,6,15,[4,5]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3,4,5,6]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3,4]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[2,3]),B(d(E,1),q,6,15,[3])]);}function YQ(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt;if(t.K||t.yb(e,ji(t.L,e),X1(t.R,kt(t.L,e)),K1(t.R,pt(t.L,e))),Tt=null,b1(t.L,e)!=0&&(t1=w.Math.abs(b1(t.L,e))==1?"":""+w.Math.abs(b1(t.L,e)),Tt=b1(t.L,e)<0?t1+"-":t1+"+"),M=null,wt=U0(t.L,e),G(wt,0)!=0&&(gt(V(wt,XQ),0)&&(M=M==null?"*":M+",*"),gt(V(wt,ZQ),0)&&(M=M==null?"!*":M+",!*"),gt(V(wt,WQ),0)?M=M==null?"ha":M+",ha":gt(V(wt,2),0)?M=M==null?"a":M+",a":gt(V(wt,4),0)&&(M=M==null?"!a":M+",!a"),gt(V(wt,C0),0)&&(M=M==null?"s":M+",s"),gt(V(wt,nP),0)&&(j=V(wt,nP),G(j,1792)==0?M=M==null?"h0":M+",h0":G(j,1664)==0?M=M==null?"h1":M+",h1":G(j,1408)==0?M=M==null?"h2":M+",h2":G(j,128)==0?M=M==null?"h>0":M+",h>0":G(j,384)==0?M=M==null?"h>1":M+",h>1":G(j,896)==0?M=M==null?"h>2":M+",h>2":G(j,ie)==0?M=M==null?"h<3":M+",h<3":G(j,1536)==0?M=M==null?"h<2":M+",h<2":G(j,1152)==0&&(M=M==null?"h1-2":M+",h1-2")),gt(V(wt,i9),0)&&(D=V(wt,i9),G(D,_Q)==0?M=M==null?"c0":M+",c0":G(D,jf)==0?M=M==null?"c+":M+",c+":G(D,pf)==0&&(M=M==null?"c-":M+",c-")),gt(V(wt,oi),0)&&(st=V(wt,oi),G(st,98304)==0?M=M==null?"pi0":M+",pi0":G(st,81920)==0?M=M==null?"pi1":M+",pi1":G(st,49152)==0?M=M==null?"pi2":M+",pi2":G(st,En)==0&&(M=M==null?"pi>0":M+",pi>0")),gt(V(wt,Ui),0)&&(a=V(wt,Ui),G(a,$Q)==0?M=M==null?"n1":M+",n1":G(a,w2)==0?M=M==null?"n2":M+",n2":G(a,g2)==0?M=M==null?"n3":M+",n3":G(a,aQ)==0?M=M==null?"n<3":M+",n<3":G(a,qA)==0?M=M==null?"n<4":M+",n<4":G(a,Li)==0?M=M==null?"n>1":M+",n>1":G(a,SP)==0?M=M==null?"n>2":M+",n>2":G(a,Cf)==0?M=M==null?"n>3":M+",n>3":G(a,3276800)==0?M=M==null?"n1-2":M+",n1-2":G(a,2228224)==0?M=M==null?"n1-3":M+",n1-3":G(a,2490368)==0&&(M=M==null?"n2-3":M+",n2-3")),gt(V(wt,Hf),0)&&(l=V(wt,Hf),G(l,Dy)==0?M=M==null?"e0":M+",e0":G(l,uy)==0?M=M==null?"e1":M+",e1":G(l,Qy)==0?M=M==null?"e2":M+",e2":G(l,oy)==0?M=M==null?"e3":M+",e3":G(l,y6)==0?M=M==null?"e<2":M+",e<2":G(l,l6)==0?M=M==null?"e<3":M+",e<3":G(l,to)==0?M=M==null?"e<4":M+",e<4":G(l,d2)==0?M=M==null?"e>0":M+",e>0":G(l,Uy)==0?M=M==null?"e>1":M+",e>1":G(l,Ly)==0?M=M==null?"e>2":M+",e>2":G(l,eo)==0?M=M==null?"e>3":M+",e>3":G(l,T6)==0?M=M==null?"e1-2":M+",e1-2":G(l,h6)==0?M=M==null?"e1-3":M+",e1-3":G(l,c6)==0&&(M=M==null?"e2-3":M+",e2-3")),gt(V(wt,120),0)&&(rt=V(wt,120),G(rt,112)==0?M=M==null?"!r":M+",!r":G(rt,8)==0?M=M==null?"r":M+",r":G(rt,96)==0?M=M==null?"rb<3":M+",rb<3":G(rt,104)==0?M=M==null?"rb2":M+",rb2":G(rt,88)==0?M=M==null?"rb3":M+",rb3":G(rt,56)==0&&(M=M==null?"rb4":M+",rb4")),gt(V(wt,f9),0)&&(M=M==null?"r"+he(q0(V(wt,f9),22)):M+","+("r"+he(q0(V(wt,f9),22)))),gt(V(wt,Pr),0)&&(M=zU(M,EZ(wt))),gt(V(wt,B2),0)&&(M=M==null?"ox"+he(l0(q0(V(wt,B2),47),7)):M+","+("ox"+he(l0(q0(V(wt,B2),47),7)))),gt(V(wt,Qr),0)&&(M=M==null?"f":M+",f")),le(t.L,e)!=0&&(M=zU(M,""+le(t.L,e))),St=0,mA(t.L,e)!=0)switch(mA(t.L,e)){case 16:Tt=Tt==null?"|":Tt+",|";break;case 32:St=1;break;case 48:St=2;}if(L=null,(t.G&64)==0){if(Br(t.L,e))L="?";else if(pU(t.L,e)!=0&&(ne(t.L,e)==0||A==null||A[ne(t.L,e)][VA(t.L,e)]>1))if(O(t.L,e)==2)switch(pU(t.L,e)){case 2:L=Mi(t.L,e)?"p":"P";break;case 1:L=Mi(t.L,e)?"m":"M";break;default:L="*";}else switch(pU(t.L,e)){case 1:L=Mi(t.L,e)?"r":"R";break;case 2:L=Mi(t.L,e)?"s":"S";break;default:L="*";}}if((t.G&768)!=0&&(L=zU(L,""+R0(t.L,e))),_=null,(t.G&16)!=0&&R1(t.L,e)!=0&&(_=""+R1(t.L,e)),h=null,CQ(t.L,e)!=-1&&(T=Ch(t,e),T!=-1&&(h=T==0?"abs":((T&255)==1?"&":"or")+(1+(T>>8)))),p=0,(t.G&de)==0&&(t.L.K?gt(V(U0(t.L,e),q1),0)&&(p=It(t.L,e)):(K(t.L,e)!=6||le(t.L,e)!=0||!t.q[e]||mA(t.L,e)!=0)&&(p=It(t.L,e))),tt=false,x=false,r=(t.G&u0)!=0?null:Zn(t.L,e),r!=null&&r.startsWith("]")&&(tt=M==null,x=true,M=zU((Gt(1,r.length+1),r.substr(1)),M),r=null),r!=null?p=0:HA(t.L,e)!=null?(P=gt(V(U0(t.L,e),1),0)?"[!":"[",r=P+Jh(t.L,e)+"]",r.length>5&&(r=P+HA(t.L,e).length+"]"),gt(V(U0(t.L,e),q1),0)&&(p=-1)):gt(V(U0(t.L,e),1),0)?(r="?",gt(V(U0(t.L,e),q1),0)&&(p=-1)):(K(t.L,e)!=6||Tt!=null||M!=null&&(!tt||(t.G&L8)==0)||p>0||!t.q[e])&&(r=ji(t.L,e)),et=0,!P0(t.L,e)&oe(t.L,e)&&Z1(t,-8),r!=null?(et=t.vb(r),HP(t,X1(t.R,kt(t.L,e)),K1(t.R,pt(t.L,e)),r,true),t.s[e]=true):_G(t,e)&&jG(t,X1(t.R,kt(t.L,e)),K1(t.R,pt(t.L,e)),e),Tt!=null&&(t.Cb((t.X*2+1)/3|0),Qt=X1(t.R,kt(t.L,e))+((et+t.vb(Tt))/2+1),yt=K1(t.R,pt(t.L,e))-((t.wb()*4-4)/8|0),HP(t,Qt,yt,Tt,true),t.Cb(t.X)),(t.G&2)!=0&&(M=""+e),M!=null&&(x?t.Cb((t.X*5+1)/6|0):t.Cb((t.X*2+1)/3|0),Qt=X1(t.R,kt(t.L,e))-(et+t.vb(M))/2,yt=K1(t.R,pt(t.L,e))-((t.wb()*4-4)/8|0),HP(t,Qt,yt,M,true),t.Cb(t.X)),L!=null&&(t.Cb((t.X*2+1)/3|0),Qt=X1(t.R,kt(t.L,e))-(et+t.vb(L))/2,yt=K1(t.R,pt(t.L,e))+((t.wb()*4+4)/8|0),Kt=t.C,t.L.O!=1&&(t.G&C0)==0&&Z1(t,448),HP(t,Qt,yt,L,false),Z1(t,Kt),t.Cb(t.X)),_!=null&&(t.Cb((t.X*2+1)/3|0),Qt=X1(t.R,kt(t.L,e))+((et+t.vb(_))/2+1),yt=K1(t.R,pt(t.L,e))+((t.wb()*4+4)/8|0),Kt=t.C,Z1(t,dn(t.L,e)?384:448),HP(t,Qt,yt,_,true),Z1(t,Kt),t.Cb(t.X)),h!=null&&(n=eX(t,e),t.Cb((t.X*2+1)/3|0),Qt=X1(t.R,kt(t.L,e))+.7*t.wb()*w.Math.sin(n),yt=K1(t.R,pt(t.L,e))+.7*t.wb()*w.Math.cos(n),Kt=t.C,!t.K&&t.L.O!=1&&Z1(t,Yh(t,e)),HP(t,Qt,yt,h,false),Z1(t,Kt),t.Cb(t.X)),p==0&&St==0){t.C==-8&&Z1(t,-9);return;}for(b=c(Ut,ht,6,4,15,1),I=0;I<ue(t.L,e);I++)for(f=xt(t.L,e,I),X=0;X<2;X++)z(t.L,X,f)==e&&(ct=K0(t.L,z(t.L,X,f),z(t.L,1-X,f)),ct<Ao?(b[0]-=ct+RA,b[3]+=ct+U1):ct<0?(b[2]+=ct+RA,b[3]-=ct):ct<RA?(b[1]+=ct,b[2]+=RA-ct):(b[0]+=ct-RA,b[1]+=U1-ct));if(O(t.L,e)==0?tA(t.L,e)?b[3]-=.2:b[1]-=.2:b[1]-=.1,(Tt!=null||_!=null)&&(b[1]+=10),(M!=null||L!=null)&&(b[3]+=10),m="",p!=0&&(R=t.vb("H"),v=0,g=t.wb(),p==-1?(m="n",t.Cb((t.X*2+1)/3|0),v=t.vb(m)):p>1&&(m=""+p,t.Cb((t.X*2+1)/3|0),v=t.vb(m)),b[1]<.6||b[3]<.6?(o=K1(t.R,pt(t.L,e)),b[1]<=b[3]?(b[1]+=10,Q=X1(t.R,kt(t.L,e))+(et+R)/2):(b[3]+=10,Q=X1(t.R,kt(t.L,e))-(et+R)/2-v)):(Q=X1(t.R,kt(t.L,e)),b[0]<b[2]?(b[0]+=10,o=K1(t.R,pt(t.L,e))-g):(b[2]+=10,o=K1(t.R,pt(t.L,e))+g)),v>0&&(Qt=Q+(R+v)/2,yt=o+((t.wb()*4+4)/8|0),HP(t,Qt,yt,m,true),t.Cb(t.X)),HP(t,Q,o,"H",true)),i=0,St!=0){for($=50,s=0,S=0;S<4;S++)y=S>1?S-2:S+2,b[S]<$?(i=S,$=b[S],s=b[y]):b[S]==$&&b[y]>s&&(i=S,s=b[y]);switch(i){case 0:Q=X1(t.R,kt(t.L,e)),o=K1(t.R,pt(t.L,e))-t.V-et/2;break;case 1:Q=X1(t.R,kt(t.L,e))+t.V+et/2,o=K1(t.R,pt(t.L,e));break;case 2:Q=X1(t.R,kt(t.L,e)),o=K1(t.R,pt(t.L,e))+t.V+et/2;break;default:Q=X1(t.R,kt(t.L,e))-t.V-et/2,o=K1(t.R,pt(t.L,e));}if(St==1)mt(t.$,new QA(Q-t.V,o-t.V,2*t.V,2*t.V)),t.K||mt(t.U,new bu(Q,o,UQ(t,e)?-3:t.p[e]));else {switch(i){case 2:case 0:bt=2*t.V,Yt=0,Q-=t.V;break;case 1:bt=0,Yt=2*t.V,o-=t.V;break;default:bt=0,Yt=2*t.V,o-=t.V;}mt(t.$,new QA(Q-t.V,o-t.V,2*t.V,2*t.V)),t.K||mt(t.U,new bu(Q,o,UQ(t,e)?-3:t.p[e])),mt(t.$,new QA(Q+bt-t.V,o+Yt-t.V,2*t.V,2*t.V)),t.K||mt(t.U,new bu(Q+bt,o+Yt,UQ(t,e)?-3:t.p[e]));}}t.C==-8&&Z1(t,-9);}function f6(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0,v1,g1,T0,G0,OA,b0,w1,De,Xe,gA,T9,v8,uP,QP,tn,h9,In,en,yr,Zf,lt,A1,F8,Wf,_f,$f;if(e<t.f&&r0(t.p,e)){if(Qf(t,e,5)){if(T=new kL(t.q),m=new kL(t.q),l=false,x=false,tt=false,t.C[e]==6||t.C[e]==7){for(p=0;p<t.e[e];p++)if(lt=t.i[e][p],!!Qf(t,lt,5))for(ws(t,e,lt)&&(t.C[lt]==8||t.C[lt]==16||t.C[lt]==7&&t.e[lt]+It(t,lt)==3&&!$D(t,lt))&&mt(T,m1(lt)),T0=0;T0<t.e[lt];T0++)A1=t.i[lt][T0],A1!=e&&Qf(t,A1,5)&&ws(t,e,A1)&&(t.C[A1]==8||t.C[A1]==16||t.C[A1]==7&&t.e[A1]+It(t,A1)==3&&!$D(t,A1))&&mt(m,m1(A1));for(y=new Zt(T);y.a<y.c.a.length;)if(s=$t(y).a,t.C[s]==8||t.C[s]==16){x=true;break;}for(g=new Zt(m);g.a<g.c.a.length;)if(h=$t(g).a,t.C[h]==8||t.C[h]==16){tt=true;break;}for(j=0;j<T.a.length;j++)for(g1=j;g1<m.a.length;g1++)if(ws(t,(Fe(j,T.a.length),T.a[j]).a,(Fe(g1,m.a.length),m.a[g1]).a)){l=true;break;}}switch(t.C[e]){case 6:if(m.a.length==0){for(Xe=0,OA=0,w1=0,De=0,j=0;j<t.e[e];j++)lt=t.i[e][j],t.C[lt]==7&&t.e[lt]+It(t,lt)==3&&(++Xe,t.s[lt]>0&&!$D(t,lt)&&++OA,Qf(t,lt,5)&&++w1,Qf(t,lt,6)&&++De);if((Xe==2&&w1>0||Xe==3&&w1==2)&&OA>0&&De==0)return 80;}if(!(T.a.length==0^m.a.length==0)){for($f=true,_f=true,j=0;j<t.e[e];j++)lt=t.i[e][j],(t.C[lt]!=6||!Bz(t,lt))&&($f=false),ws(t,e,lt)&&!(lt<t.f&&r0(t.p,lt))&&(_f=false);if(T.a.length==0&&m.a.length==0&&!$f&&_f||T.a.length!=0&&T.a.length!=0&&(!l||!x&&!tt))return 78;}if(T.a.length!=0&&(m.a.length==0||x))return 63;if(m.a.length!=0&&(T.a.length==0||tt))return 64;break;case 7:if($D(t,e))return 82;if(T.a.length==0&&m.a.length==0)return t.e[e]+It(t,e)==3?39:76;if(t.e[e]+It(t,e)==3&&T.a.length==0^m.a.length==0)return 81;if(T.a.length!=0&&(m.a.length==0||x))return 65;if(m.a.length!=0&&(T.a.length==0||tt))return 66;if(T.a.length!=0&&m.a.length!=0)return 79;break;case 8:return 59;case 16:return 44;}}if(Qf(t,e,6))switch(t.C[e]){case 6:return 37;case 7:return $D(t,e)?69:t.e[e]+It(t,e)==3?58:38;}}switch(t.C[e]){case 3:if(t.j[e]==0)return 92;break;case 6:if(t.e[e]+It(t,e)==4)return (t.p&&e<t.f?iA(t.p,e):0)==3?22:(t.p&&e<t.f?iA(t.p,e):0)==4?20:1;if(t.e[e]+It(t,e)==3){for(gA=0,T9=0,uP=0,In=0,b=0,p=0;p<t.e[e];p++)lt=t.i[e][p],dt(t,u1(t,e,lt))==2&&(b=t.C[lt]),t.e[lt]+It(t,lt)==1?(t.C[lt]==8&&++uP,t.C[lt]==16&&++In):t.C[lt]==7&&(t.e[lt]+It(t,lt)==3?++T9:t.e[lt]+It(t,lt)==2&&dt(t,u1(t,e,lt))==2&&++gA);return T9>=2&&gA==0&&b==7?57:uP==2||In==2?41:(t.p&&e<t.f?iA(t.p,e):0)==4&&b==6?30:b==7||b==8||b==15||b==16?3:2;}if(t.e[e]+It(t,e)==2)return 4;if(t.e[e]+It(t,e)==1)return 60;break;case 7:for(yr=0,H1=false,S=0;S<t.e[e];S++)if(lt=t.i[e][S],t.C[lt]==8&&t.e[lt]+It(t,lt)==1&&++yr,N1(t,e)+It(t,e)>=3&&(t.C[lt]==15||t.C[lt]==16)){for(h9=0,g1=0;g1<t.e[lt];g1++)A1=t.i[lt][g1],t.C[A1]==8&&t.e[A1]+It(t,A1)==1&&++h9;H1||(H1=h9>=2);}if(t.e[e]+It(t,e)==4)return $D(t,e)?68:34;if(t.e[e]+It(t,e)==3){if(N1(t,e)+It(t,e)>=4){for(R=false,j=0;j<t.e[e];j++)if(lt=t.i[e][j],dt(t,u1(t,e,lt))==2&&(R=t.C[lt]==7||t.C[lt]==6,t.C[lt]==6))for(g1=0;R&&g1<t.e[lt];g1++)A1=t.i[lt][g1],A1!=e&&(R=!(t.C[A1]==7&&t.e[A1]+It(t,A1)==3));if(yr==1)return 67;if(yr>=2)return 45;if(R)return 54;}if(N1(t,e)+It(t,e)>=3){for(Tt=false,st=false,wt=false,rt=false,Qt=false,t1=false,A=0,n=0,P=0,r=0,f=0,o=0,j=0;j<t.e[e];j++)if(lt=t.i[e][j],t.C[lt]==6){for(Qt=true,lt<t.f&&r0(t.p,lt)&&(t.p&&lt<t.f?iA(t.p,lt):0)==6&&(t1=true),P=0,r=0,f=0,o=0,OA=0,I=0,g1=0;g1<t.e[lt];g1++){if(A1=t.i[lt][g1],v=u1(t,lt,A1),dt(t,v)==2&&(t.C[A1]==8||t.C[A1]==16)&&(Tt=true),(dt(t,v)==2||v<t.g&&je(t.p,v)&&(t.C[A1]==6||t.C[A1]==7&&dG(t,A1)==1))&&(A=t.C[A1]),dt(t,v)==3&&(n=t.C[A1]),t.C[A1]==7&&t.e[A1]+It(t,A1)==3){for(t.s[A1]==1&&++OA,Qf(t,lt,6)&&++I,Q=0,G0=0;G0<t.e[A1];G0++)F8=t.i[A1][G0],t.C[F8]==8&&++Q;Q<2&&++r;}t.C[A1]==7&&t.e[A1]+It(t,A1)==2&&(dt(t,v)==2||v<t.g&&je(t.p,v))&&++P,A1<t.f&&r0(t.p,A1)&&(t.C[A1]==8&&++f,t.C[A1]==16&&++o);}A==7&&(r==2&&P==0&&OA>0&&I==0&&t.e[lt]+It(t,lt)<4&&(st=true),r==3&&(wt=true));}else if(t.C[lt]==7){for(i=0,D=0,L=0,g1=0;g1<t.e[lt];g1++)if(A1=t.i[lt][g1],v=u1(t,lt,A1),dt(t,v)==2){if(t.C[A1]==6){for(G0=0;G0<t.e[A1];G0++)F8=t.i[A1][G0],F8!=e&&(t.C[F8]==7?++i:t.C[F8]==8?++D:t.C[F8]==16&&++L);i==0&&D==0&&L==0&&!t1&&(rt=true);}t.C[A1]==7&&!t1&&(rt=true);}}if(Qt){if(n==7&&(H1=true),st)return 55;if(wt)return 56;if(!Tt&&!H1&&(f==0&&o==0&&t1||A==6||A==7||A==15||n==6))return 40;}if(!H1&&(Tt||rt))return 10;}}if(t.e[e]+It(t,e)==2){if(N1(t,e)+It(t,e)==4){for($=false,j=0;!$&&j<t.e[e];j++)lt=t.i[e][j],$=dt(t,u1(t,e,lt))==3;return $?61:53;}if(N1(t,e)+It(t,e)==3){for(yt=false,_=false,j=0;j<t.e[e];j++)lt=t.i[e][j],dt(t,u1(t,e,lt))==2&&(yt=t.C[lt]==8&&yr==1,_=t.C[lt]==6||t.C[lt]==7);if(yt&&!_)return 46;if(_)return 9;}if(N1(t,e)+It(t,e)>=2){for(Kt=false,j=0;j<t.e[e];j++)if(lt=t.i[e][j],t.C[lt]==16){for(Zf=0,g1=0;g1<t.e[lt];g1++)A1=t.i[lt][g1],t.C[A1]==8&&t.e[A1]+It(t,A1)==1&&++Zf;Kt=Zf==1;}if(Kt)return 48;if(!H1)return 62;}}if(H1)return 43;if(t.e[e]+It(t,e)==1){for(St=false,a=false,j=0;!St&&!a&&j<t.e[e];j++)if(lt=t.i[e][j],St=dt(t,u1(t,e,lt))==3,t.C[lt]==7&&t.e[lt]+It(t,lt)==2)for(g1=0;!a&&g1<t.e[lt];g1++)A1=t.i[lt][g1],a=t.C[A1]==7&&t.e[A1]+It(t,A1)==2||t.C[A1]==6&&t.e[A1]+It(t,A1)==3;if(St)return 42;if(a)return 47;}return 8;case 8:if(t.e[e]+It(t,e)==3)return 49;if(t.e[e]+It(t,e)==2){if(N1(t,e)+It(t,e)==3)return 51;for(b0=0,j=0;j<t.e[e];j++)lt=t.i[e][j],t.C[lt]==1&&++b0;return b0+It(t,e)==2?70:6;}if(t.j[e]<=1){for(v8=0,tn=0,en=0,D1=t.e[e]-t.j[e]+It(t,e)>0,X=false,M=false,r1=false,Yt=false,Lt=false,ct=false,bt=false,v1=false,Q0=false,y0=false,jt=false,j=0;j<t.e[e]&&!(D1||X||M||r1||Yt||Lt||ct||bt||v1||Q0||y0||jt);j++){if(lt=t.i[e][j],t.C[lt]==6||t.C[lt]==7||t.C[lt]==16)for(g1=0;g1<t.e[lt];g1++)A1=t.i[lt][g1],t.C[A1]==7&&t.e[A1]+It(t,A1)==2&&++v8,t.C[A1]==8&&t.e[A1]+It(t,A1)==1&&++tn,t.C[A1]==16&&t.e[A1]+It(t,A1)==1&&++en;D1=t.C[lt]==1,t.C[lt]==6&&(X=tn==2,M=dt(t,u1(t,e,lt))==2,r1=dt(t,u1(t,e,lt))==1&&tn==1),t.C[lt]==7&&(Yt=dt(t,u1(t,e,lt))==2,dt(t,u1(t,e,lt))==1&&tn==1&&(Lt=t.e[lt]+It(t,lt)==2||N1(t,lt)+It(t,lt)==3,ct=N1(t,lt)+It(t,lt)==4),bt=tn>=2),t.C[lt]==16&&(v1=en==1,Q0=dt(t,u1(t,e,lt))==1||dt(t,u1(t,e,lt))==2&&tn+v8>1,y0=dt(t,u1(t,e,lt))==2&&tn+v8==1),jt=t.C[lt]==15||t.C[lt]==17;}if(r1||Lt||D1)return 35;if(X||bt||ct||v1||Q0||jt)return 32;if(M||Yt||y0)return 7;}break;case 9:if(t.j[e]==1)return 11;if(t.j[e]==0)return 89;break;case 11:if(t.j[e]==0)return 93;break;case 12:if(t.j[e]==0)return 99;break;case 14:return 19;case 15:if(t.e[e]+It(t,e)==4)return 25;if(t.e[e]+It(t,e)==3)return 26;if(t.e[e]+It(t,e)==2)return 75;break;case 16:if(t.e[e]+It(t,e)==3||t.e[e]+It(t,e)==4){for(QP=0,en=0,et=false,j=0;j<t.e[e];j++)lt=t.i[e][j],t.C[lt]==6&&dt(t,u1(t,e,lt))==2&&(et=true),(t.j[lt]==1&&t.C[lt]==8||t.e[lt]+It(t,lt)==2&&t.C[lt]==7)&&++QP,t.j[lt]==1&&t.C[lt]==16&&++en;return t.e[e]+It(t,e)==3&&QP==2&&et||t.e[e]+It(t,e)==4?18:QP>0&&en>0||QP==2&&!et?73:17;}if(t.e[e]+It(t,e)==2){for(V1=false,j=0;j<t.e[e];j++)lt=t.i[e][j],t.C[lt]==8&&dt(t,u1(t,e,lt))==2&&(V1=true);return V1?74:15;}if(t.e[e]+It(t,e)==1){for(Wf=0,et=false,j=0;j<t.e[e];j++){for(lt=t.i[e][j],g1=0;g1<t.e[lt];g1++)A1=t.i[lt][g1],t.C[A1]==16&&t.e[A1]+It(t,A1)==1&&++Wf;t.C[lt]==6&&dt(t,u1(t,e,lt))==2&&(et=true);}return et&&Wf!=2?16:72;}break;case 17:if(t.j[e]==4){for(uP=0,j=0;j<t.e[e];j++)lt=t.i[e][j],t.C[lt]==8&&++uP;if(uP==4)return 77;}if(t.j[e]==1)return 12;if(t.j[e]==0)return 90;break;case 19:if(t.j[e]==0)return 94;break;case 20:if(t.j[e]==0)return 96;break;case 26:if(t.j[e]==0){if(t.s[e]==2)return 87;if(t.s[e]==3)return 88;}break;case 29:if(t.j[e]==0){if(t.s[e]==1)return 97;if(t.s[e]==2)return 98;}break;case 30:if(t.j[e]==0)return 95;break;case 35:if(t.j[e]==1)return 13;if(t.j[e]==0)return 91;break;case 53:if(t.j[e]==1)return 14;}return 0;}function D6(){D6=d1,Ql=B(d(NA,1),te,6,14,[524290,524292,524297,524301,589826,589827,589828,589829,589832,589833,589837,589838,688130,688131,688132,688137,688141,819202,819203,819204,819205,819208,819209,1114114,1114115,1114116,1114120,1212420,1343492,1343496,1638402,1638403,17367042,17367043,17367044,17367045,17367048,17367049,17367053,17367054,17465346,1074266116,1208483842,1208483844,1208549378,1208549379,1208549380,1208549384,1208549388,1409810434,1409875970,1409875971,1409875972,1409875976,1409974274,1409974280,1409974284,1678311426,1678311427,1678311428,1678311432,1678311436,1678409730,1678409731,1678409732,1678540802,1678540803,1678540804,1678540808,2282291202,2282291203,2282389506,2282389507,2282520578,2282520579,2483617794,2483617795,2483716098,2483716099,2752675842,3356033026,3557359618,3557457922,3557588994,34510798850,34510798851,34510798852,34510798856,34712125442,34712125443,34712125444,34712125448,34712223746,34712223747,34712223748,34980560898,34980560899,34980659202,35568287746,35568287747,35568287748,35568287752,35568386050,35568386051,35568386052,35568517122,35568517123,35568517124,35568517128,35568812034,35568812035,35568910338,35568910339,35568910350,35569336322,35585064962,35585064963,35585064964,35585064968,35769548802,35769614338,35769712642,35769843714,35786391554,uH,QH,oH,UH,LH,sH,yH,lH,TH,hH,cH,wH,gH,3437652377603,dH,BH,4674334294019,vH,FH,4674602827778,mH,kH,bH,RH,5086651154435,jH,5086651252739,pH,5086651252744,CH,5086919589896,HH,5086919819266,MH,VH,EH,5636675633154,{l:589826,m:73760,h:4},{l:589827,m:73760,h:4},{l:688130,m:73760,h:4},{l:819202,m:73760,h:4},{l:65538,m:73764,h:4},{l:65539,m:73764,h:4},{l:589826,m:172064,h:4},{l:589827,m:172064,h:4},{l:688130,m:172064,h:4},{l:819202,m:172064,h:4},{l:819203,m:172064,h:4},{l:65538,m:172068,h:4},{l:65539,m:172068,h:4},{l:589826,m:172112,h:4},{l:589827,m:172112,h:4},{l:688130,m:172112,h:4},{l:819202,m:172112,h:4},{l:65538,m:172116,h:4},{l:163842,m:172116,h:4},{l:589826,m:303136,h:4},{l:688130,m:303136,h:4},{l:819202,m:303136,h:4},{l:65538,m:303140,h:4},{l:589826,m:303184,h:4},{l:688130,m:303184,h:4},{l:819202,m:303184,h:4},{l:65538,m:303188,h:4},SH,qH,IH,xH,NH,OH,GH,{l:688130,m:590224,h:4},{l:819202,m:590224,h:4},JH,zH,YH,KH,XH,ZH,WH,_H,{l:688135,m:590416,h:4},$H,{l:1212430,m:590416,h:4},{l:65538,m:598052,h:4},{l:65538,m:598100,h:4},{l:65539,m:598100,h:4},{l:163842,m:598100,h:4},{l:163843,m:598100,h:4},aH,tM,eM,{l:688131,m:598304,h:4},AM,nM,PM,rM,iM,{l:589826,m:688672,h:4},fM,DM,uM,QM,{l:589827,m:590112,h:336},oM,UM,LM,sM,yM,lM,TM,hM,cM,{l:688130,m:819536,h:400},wM,gM,dM,{l:589831,m:590112,h:592},BM,vM,FM,mM,kM,bM,{l:819207,m:819600,h:592},RM,jM,pM,{l:589832,m:1212816,h:592},{l:688136,m:1212816,h:592},CM,HM,MM,VM,EM,{l:589826,m:819488,h:8480},SM,qM,IM,xM,{l:819208,m:1213008,h:8480},NM,OM,{l:688130,m:590160,h:8484},{l:589826,m:598304,h:8484},GM,{l:819202,m:598304,h:8484}]),zf=B(d(Se,1),PA,6,15,[-0.1899999976158142,1.2699999809265137,-0.7009999752044678,2.690999984741211,-0.22699999809265137,Yp,.10599999874830246,-0.47600001096725464,-0.44699999690055847,-0.19099999964237213,-0.3330000042915344,.0860000029206276,.24699999392032623,-0.06199999898672104,.01600000075995922,.3869999945163727,.23499999940395355,-0.4320000112056732,-0.902999997138977,.38999998569488525,.5809999704360962,4.52400016784668,-0.6349999904632568,-0.2800000011920929,.7699999809265137,-0.05000000074505806,1.0870000123977661,.19200000166893005,.19599999487400055,-0.5199999809265137,.5419999957084656,.3630000054836273,.7919999957084656,.5920000076293945,.9639999866485596,KM,-0.6850000023841858,-0.3149999976158142,-0.4129999876022339,-0.5950000286102295,.2199999988079071,-1.4320000410079956,-2.253999948501587,.4399999976158142,-0.27000001072883606,-0.13300000131130219,-0.26899999380111694,.2669999897480011,.5720000267028809,-0.5680000185966492,.17399999499320984,-0.1850000023841858,-0.23499999940395355,eV,AV,-0.34200000762939453,-0.3479999899864197,-0.43700000643730164,-0.8040000200271606,-0.41200000047683716,-0.2150000035762787,-0.625,-0.8309999704360962,.4970000088214874,-0.4309999942779541,-1.3309999704360962,.5070000290870667,-0.6320000290870667,-0.5989999771118164,-0.15600000321865082,-0.3529999852180481,-0.164000004529953,-0.4410000145435333,-0.4970000088214874,-1.059999942779541,.11500000208616257,-0.22499999403953552,-0.15399999916553497,-0.03099999949336052,-1.5740000009536743,-1.093000054359436,_M,-0.44999998807907104,-0.5559999942779541,AV,2.384000062942505,1.75,-1.6660000085830688,-1.065999984741211,1.3270000219345093,.8029999732971191,-1.5049999952316284,-2.5369999408721924,eV,.14900000393390656,.5210000276565552,2.9049999713897705,-0.25200000405311584,.8600000143051147,.3610000014305115,.40299999713897705,.004999999888241291,1.1460000276565552,.9359999895095825,-0.30000001192092896,.20900000631809235,-0.5830000042915344,-0.024000000208616257,-0.009999999776482582,.6110000014305115,.4860000014305115,.8619999885559082,-0.03500000014901161,-0.5960000157356262,1.1610000133514404,1.6469999551773071,.843999981880188,.125,.1420000046491623,-0.17100000381469727,.44200000166893005,.08799999952316284,3.065999984741211,1.6519999504089355,nV,-0.017999999225139618,.023000000044703484,.0729999989271164,.2540000081062317,.5540000200271606,.5950000286102295,-0.4059999883174896,-0.6370000243186951,-0.17399999499320984,-0.10100000351667404,-0.5429999828338623,-2.4059998989105225,-3.2920000553131104,-0.05299999937415123,-0.19300000369548798,W6,-1.2610000371932983,-0.656000018119812,-0.7300000190734863,-0.9380000233650208,.12800000607967377,1.1540000438690186,.24199999868869781,-0.5289999842643738,-0.27799999713897705,-0.8019999861717224,.9120000004768372,-1.38100004196167,.46299999952316284,1.0740000009536743,-0.628000020980835,-0.9620000123977661,-1.8320000171661377,-1.4989999532699585,-2.115999937057495,-2.2070000171661377,-1.3170000314712524,2.500999927520752,-0.8489999771118164,ZM,-0.621999979019165,2.121999979019165,-2.2260000705718994,.9129999876022339,-2.259000062942505,-1.25,1.3940000534057617,-1.4019999504089355,2.072999954223633,-2.9570000171661377,.29100000858306885,-3.4760000705718994,-2.7269999980926514,-3.131999969482422,-2.119999885559082,-0.7250000238418579,-0.296999990940094,.08299999684095383,.34700000286102295,-1.4249999523162842,-1.659999966621399,-1.281999945640564,-1.2649999856948853,.718999981880188,.1379999965429306,1.3020000457763672,.859000027179718,1.3589999675750732,.6589999794960022,-0.9399999976158142,.8999999761581421,.3190000057220459,-2.571000099182129,1.1089999675750732,.972000002861023,1.652999997138977,2.6019999980926514,.7289999723434448,1.065999984741211,1.0670000314712524,-0.3109999895095825,.03099999949336052,nV,-0.6809999942779541,-1.2580000162124634,wC,-3.0959999561309814,-0.2280000001192093,1.9329999685287476,.11900000274181366,2.1080000400543213,.11299999803304672,1.628000020980835,1.3079999685287476,3.3359999656677246,.7540000081062317,-0.4650000035762787,-0.3970000147819519,.07699999958276749,-0.4790000021457672,-0.15299999713897705,.14100000262260437,2.134999990463257,.23399999737739563,.460999995470047,.6700000166893005,-0.3610000014305115,-1.0390000343322754,-0.4830000102519989,.13699999451637268,-0.7680000066757202,-0.5109999775886536,3.4240000247955322,-0.8550000190734863,-0.5849999785423279,-1.5670000314712524,3.3429999351501465,1.840000033378601,.3889999985694885,1.121999979019165,_6,1.3350000381469727,.3659999966621399,-0.5569999814033508,.4320000112056732,.20399999618530273,.8820000290870667,.4659999907016754,-0.4580000042915344,.40400001406669617,.6570000052452087,1.1150000095367432,1.9759999513626099,1.7860000133514404,-0.035999998450279236,-1.0499999523162842,1.0449999570846558,.04399999976158142,1.0329999923706055,-1.0800000429153442,2.5390000343322754,2.234999895095825,z6,3.121000051498413,3.931999921798706,2.75]);}function gp(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x,tt,M,X,et,_,$,a,st,Tt,wt,rt,ct,Kt,St,t1,Qt,bt,yt,Yt,V1,r1,D1,Lt,jt,Q0,H1,y0,v1,g1,T0,G0,OA,b0,w1,De,Xe,gA,T9,v8,uP,QP,tn,h9,In,en,yr,Zf,lt,A1,F8,Wf,_f,$f,sc,yc,lc,Tc,hc,cc,wc,gc,ml,kl,dc,Bc,vc,Fc,mc,kc,An,bc,Rc,jc,pc,Cc,Hc,Mc,Vc,Ec,Sc,qc,NP,Ic,m8,x2,N2,XE,bl,ZE,WE,_E,$E,n1,xc,aE,tS,eS,lr,AS,OP,O2,Rl,Oo,nS,oP,jl,PS,Go,rS,Jo,iS,zo;if(NL(e),e.d=null,!(A==null||0>=A.length)){if(t.g=e,jl=8,n!=null&&(P<0||P>=n.length)&&(n=null),_U(t,A,0),f=nt(t,4),p=nt(t,4),f>8&&(jl=f,f=p),f==0){pe(t.g,nt(t,1)==1);return;}for(D=nt(t,f),Q=nt(t,p),$E=nt(t,f),eS=nt(t,f),aE=nt(t,f),Tt=nt(t,f),y=0;y<D;y++)Z9(t.g,6);for(Xe=0;Xe<$E;Xe++)X0(t.g,nt(t,f),7);for(gA=0;gA<eS;gA++)X0(t.g,nt(t,f),8);for(lt=0;lt<aE;lt++)X0(t.g,nt(t,f),nt(t,8));for(cc=0;cc<Tt;cc++)E0(t.g,nt(t,f),nt(t,4)-8);for(wt=1+Q-D,yt=nt(t,4),j=0,ve(t.g,0,0),xe(t.g,0,0),TP(t.g,0,0),Yt=n!=null&&n[P]>=39,oP=0,Go=0,Jo=0,zo=0,St=false,t1=false,Yt&&(n.length>2*D-2&&n[2*D-2]==39||n.length>3*D-3&&n[3*D-3]==39?(t1=true,St=n.length==3*D-3+9,NP=St?3*D-3:2*D-2,R=86*(n[NP+1]-40)+n[NP+2]-40,oP=w.Math.pow(10,R/2e3-1),NP+=2,PS=86*(n[NP+1]-40)+n[NP+2]-40,Go=w.Math.pow(10,PS/1500-1),NP+=2,rS=86*(n[NP+1]-40)+n[NP+2]-40,Jo=w.Math.pow(10,rS/1500-1),St&&(NP+=2,iS=86*(n[NP+1]-40)+n[NP+2]-40,zo=w.Math.pow(10,iS/1500-1))):St=n.length==3*D-3),t._b()&&St&&(n=null,Yt=false),An=1;An<D;An++){if(D1=nt(t,yt),D1==0){Yt&&(ve(t.g,An,t.g.J[0].a+8*(n[An*2-2]-83)),xe(t.g,An,t.g.J[0].b+8*(n[An*2-1]-83)),St&&TP(t.g,An,t.g.J[0].c+8*(n[2*D-3+An]-83))),++wt;continue;}j+=D1-1,Yt&&(ve(t.g,An,kt(t.g,j)+n[An*2-2]-83),xe(t.g,An,pt(t.g,j)+n[An*2-1]-83),St&&TP(t.g,An,vA(t.g,j)+(n[2*D-3+An]-83))),O0(t.g,j,An,1);}for(Mc=0;Mc<wt;Mc++)O0(t.g,nt(t,f),nt(t,f),1);for(Ic=c(Pt,ft,6,Q,16,1),X=0;X<Q;X++)switch(et=nt(t,2),et){case 0:Ic[X]=true;break;case 2:w0(t.g,X,2);break;case 3:w0(t.g,X,4);}for(i=nt(t,f),Vc=0;Vc<i;Vc++)if(s=nt(t,f),jl==8)lr=nt(t,2),lr==3?(Ve(t.g,s,1,0),we(t.g,s,1,false)):we(t.g,s,lr,false);else switch(lr=nt(t,3),lr){case 4:we(t.g,s,1,false),Ve(t.g,s,1,nt(t,3));break;case 5:we(t.g,s,2,false),Ve(t.g,s,1,nt(t,3));break;case 6:we(t.g,s,1,false),Ve(t.g,s,2,nt(t,3));break;case 7:we(t.g,s,2,false),Ve(t.g,s,2,nt(t,3));break;default:we(t.g,s,lr,false);}for(jl==8&&nt(t,1)==0&&(t.g.L=true),r=nt(t,p),Ec=0;Ec<r;Ec++)if(I=nt(t,p),l1(t.g,I)==1)switch(lr=nt(t,3),lr){case 4:A8(t.g,I,1,false),Q8(t.g,I,1,nt(t,3));break;case 5:A8(t.g,I,2,false),Q8(t.g,I,1,nt(t,3));break;case 6:A8(t.g,I,1,false),Q8(t.g,I,2,nt(t,3));break;case 7:A8(t.g,I,2,false),Q8(t.g,I,2,nt(t,3));break;default:A8(t.g,I,lr,false);}else A8(t.g,I,nt(t,2),false);for(pe(t.g,nt(t,1)==1),L=null,Oo=null,xc=0;nt(t,1)==1;)switch(bt=xc+nt(t,4),bt){case 0:for(n1=nt(t,f),Sc=0;Sc<n1;Sc++)s=nt(t,f),T1(t.g,s,q1,true);break;case 1:for(n1=nt(t,f),qc=0;qc<n1;qc++)s=nt(t,f),ZE=nt(t,8),br(t.g,s,ZE);break;case 2:for(n1=nt(t,p),T9=0;T9<n1;T9++)nt(t,p);break;case 3:for(n1=nt(t,f),v8=0;v8<n1;v8++)s=nt(t,f),T1(t.g,s,C0,true);break;case 4:for(n1=nt(t,f),uP=0;uP<n1;uP++)s=nt(t,f),Rl=j1(nt(t,4),3),T1(t.g,s,Rl,true);break;case 5:for(n1=nt(t,f),QP=0;QP<n1;QP++)s=nt(t,f),o=j1(nt(t,2),1),T1(t.g,s,o,true);break;case 6:for(n1=nt(t,f),tn=0;tn<n1;tn++)s=nt(t,f),T1(t.g,s,1,true);break;case 7:for(n1=nt(t,f),h9=0;h9<n1;h9++)s=nt(t,f),b0=j1(nt(t,4),7),T1(t.g,s,b0,true);break;case 8:for(n1=nt(t,f),In=0;In<n1;In++){for(s=nt(t,f),m=nt(t,4),h=c(F,k,6,m,15,1),m8=0;m8<m;m8++)g=nt(t,8),h[m8]=g;oh(t.g,s,h);}break;case 9:for(n1=nt(t,p),en=0;en<n1;en++)I=nt(t,p),Rl=nt(t,2)<<7,Je(t.g,I,Rl,true);break;case 10:for(n1=nt(t,p),yr=0;yr<n1;yr++)I=nt(t,p),$=nt(t,5),Je(t.g,I,$,true);break;case 11:for(n1=nt(t,f),Zf=0;Zf<n1;Zf++)s=nt(t,f),T1(t.g,s,de,true);break;case 12:for(n1=nt(t,p),A1=0;A1<n1;A1++)I=nt(t,p),a=nt(t,8)<<9,Je(t.g,I,a,true);break;case 13:for(n1=nt(t,f),F8=0;F8<n1;F8++)s=nt(t,f),AS=j1(nt(t,3),14),T1(t.g,s,AS,true);break;case 14:for(n1=nt(t,f),Wf=0;Wf<n1;Wf++)s=nt(t,f),_E=j1(nt(t,5),17),T1(t.g,s,_E,true);break;case 15:case 31:xc+=16;break;case 16:for(n1=nt(t,f),_f=0;_f<n1;_f++)s=nt(t,f),O2=j1(nt(t,3),22),T1(t.g,s,O2,true);break;case 17:for(n1=nt(t,f),$f=0;$f<n1;$f++)s=nt(t,f),XA(t.g,s,nt(t,4));break;case 18:for(n1=nt(t,f),bl=nt(t,4),sc=0;sc<n1;sc++){for(s=nt(t,f),Qt=nt(t,bl),x2=c(E,q,6,Qt,15,1),m8=0;m8<Qt;m8++)x2[m8]=nt(t,7)<<24>>24;VP(t.g,s,rn((N2=x2,c0(),N2)));}break;case 19:for(n1=nt(t,f),yc=0;yc<n1;yc++)s=nt(t,f),st=j1(nt(t,3),25),T1(t.g,s,st,true);break;case 20:for(n1=nt(t,p),lc=0;lc<n1;lc++)I=nt(t,p),O2=nt(t,3)<<17,Je(t.g,I,O2,true);break;case 21:for(n1=nt(t,f),Tc=0;Tc<n1;Tc++)s=nt(t,f),Oe(t.g,s,nt(t,2)<<4);break;case 22:for(n1=nt(t,f),hc=0;hc<n1;hc++)s=nt(t,f),T1(t.g,s,Qr,true);break;case 23:for(n1=nt(t,p),wc=0;wc<n1;wc++)I=nt(t,p),Je(t.g,I,T8,true);break;case 24:for(n1=nt(t,p),gc=0;gc<n1;gc++)I=nt(t,p),o=nt(t,2)<<21,Je(t.g,I,o,true);break;case 25:for(ml=0;ml<D;ml++)nt(t,1)==1&&gP(t.g,ml,true);break;case 26:for(n1=nt(t,p),L=c(F,k,6,n1,15,1),kl=0;kl<n1;kl++)L[kl]=nt(t,p);break;case 27:for(n1=nt(t,f),dc=0;dc<n1;dc++)s=nt(t,f),T1(t.g,s,re,true);break;case 28:for(n1=nt(t,p),Bc=0;Bc<n1;Bc++)w0(t.g,nt(t,p),16);break;case 29:for(n1=nt(t,f),vc=0;vc<n1;vc++)s=nt(t,f),OA=j1(nt(t,2),30),T1(t.g,s,OA,true);break;case 30:for(n1=nt(t,f),Fc=0;Fc<n1;Fc++)s=nt(t,f),O2=j1(nt(t,7),32),T1(t.g,s,O2,true);break;case 32:for(n1=nt(t,f),mc=0;mc<n1;mc++)s=nt(t,f),nS=j1(nt(t,2),44),T1(t.g,s,nS,true);break;case 33:for(n1=nt(t,f),kc=0;kc<n1;kc++)s=nt(t,f),y0=j1(nt(t,5),39),T1(t.g,s,y0,true);break;case 34:for(n1=nt(t,f),bc=0;bc<n1;bc++)s=nt(t,f),T1(t.g,s,WQ,true);break;case 35:for(n1=nt(t,p),Rc=0;Rc<n1;Rc++)I=nt(t,p),Je(t.g,I,Mf,true);break;case 36:for(n1=nt(t,p),jc=0;jc<n1;jc++)I=nt(t,p),_=nt(t,2)<<5,Je(t.g,I,_,true);break;case 37:for(n1=nt(t,p),pc=0;pc<n1;pc++)I=nt(t,p),_=nt(t,1)==0?32:64,w0(t.g,I,_);break;case 38:for(n1=nt(t,f),rt=nt(t,3),Oo=c(F,k,6,D,15,1),Cc=0;Cc<n1;Cc++)s=nt(t,f),ct=nt(t,rt),Oo[s]=ct;break;case 39:for(n1=nt(t,f),Hc=0;Hc<n1;Hc++)s=nt(t,f),tS=j1(nt(t,4),47),T1(t.g,s,tS,true);break;case 40:for(n1=nt(t,f),bl=nt(t,6),WE=nt(t,16),De=0;De<n1;De++){for(s=nt(t,f),Qt=nt(t,bl),x2=new V0(),m8=0;m8<Qt;m8++)Ge(x2,nt(t,WE)&c1);VP(t.g,s,x2.a);}}if(Bf(new hr(t.g),Ic,false),L!=null)for(x=L,tt=0,M=x.length;tt<M;++tt)I=x[tt],w0(t.g,I,l1(t.g,I)==2?4:2);if(n==null&&!t.i&&A.length>t.e+1&&(A[t.e+1]==32||A[t.e+1]==9)&&(n=A,P=t.e+2),n!=null)try{if(n[P]==33||n[P]==35){for(_U(t,n,P+1),St=nt(t,1)==1,t1=nt(t,1)==1,OP=2*nt(t,4),S=1<<OP,T0=0,I=0,l=1;l<D;l++)I<Q&&z(t.g,1,I)==l?(T0=z(t.g,0,I++),g1=1):(T0=0,g1=8),V1=g1*(nt(t,OP)+1-(S>>1)),r1=g1*(nt(t,OP)+1-(S>>1)),ve(t.g,l,kt(t.g,T0)+V1),xe(t.g,l,pt(t.g,T0)+r1),St&&TP(t.g,l,vA(t.g,T0)+g1*(nt(t,OP)+1-(S>>1)));if(n[P]==35){for(w1=0,G0=c(F,k,6,D,15,1),T=0;T<D;T++)w1+=G0[T]=It(t.g,T);for(s=0;s<D;s++)for(De=0;De<G0[s];De++)b0=Z9(t.g,1),O0(t.g,s,b0,1),ve(t.g,b0,kt(t.g,s)+(nt(t,OP)+1-(S>>1))),xe(t.g,b0,pt(t.g,s)+(nt(t,OP)+1-(S>>1))),St&&TP(t.g,b0,vA(t.g,s)+(nt(t,OP)+1-(S>>1))),Oo!=null&&(Oo[s]&1<<De)!=0&&gP(t.g,b0,!0);D+=w1,Q+=w1;}if(b=St?1.5:(J1(),J1(),wn),v=cP(t.g,D,Q,b),t1)for(oP=ZN(nt(t,OP),S),Go=oP*XT(nt(t,OP),S),Jo=oP*XT(nt(t,OP),S),St&&(zo=oP*XT(nt(t,OP),S)),g1=oP/v,s=0;s<D;s++)ve(t.g,s,Go+g1*kt(t.g,s)),xe(t.g,s,Jo+g1*pt(t.g,s)),St&&TP(t.g,s,zo+g1*vA(t.g,s));else for(oP=1.5,g1=oP/v,s=0;s<D;s++)ve(t.g,s,g1*kt(t.g,s)),xe(t.g,s,g1*pt(t.g,s)),St&&TP(t.g,s,g1*vA(t.g,s));}else if(St&&!t1&&oP==0&&(oP=1.5),oP!=0&&t.g.r!=0){for(v=0,I=0;I<t.g.r;I++)Lt=kt(t.g,z(t.g,0,I))-kt(t.g,z(t.g,1,I)),jt=pt(t.g,z(t.g,0,I))-pt(t.g,z(t.g,1,I)),Q0=St?vA(t.g,z(t.g,0,I))-vA(t.g,z(t.g,1,I)):0,v+=w.Math.sqrt(Lt*Lt+jt*jt+Q0*Q0);for(v/=t.g.r,v1=oP/v,s=0;s<t.g.q;s++)ve(t.g,s,kt(t.g,s)*v1+Go),xe(t.g,s,pt(t.g,s)*v1+Jo),St&&TP(t.g,s,vA(t.g,s)*v1+zo);}}catch(k8){if(k8=a1(k8),Xt(k8,19))H1=k8,X9(H1,(z1(),ci)),""+H1+rn((XE=A,c0(),XE))+rn((N2=n,N2)),n=null,St=false;else throw At(k8);}if(Kt=n!=null&&!St,QZ(t),Kt||t._b())for(ut(t.g,7),I=0;I<t.g.g;I++)dt(t.g,I)==2&&!WP(t.g,I)&&Ie(t.g,I)==0&&t3(t.g,I);if(UD(t.g,0),!Kt&&t._b())try{t.ac(t.g),Kt=!0;}catch(k8){if(k8=a1(k8),Xt(k8,19))H1=k8,X9(H1,(z1(),ci)),""+H1+rn((N2=A,c0(),N2));else throw At(k8);}Kt?(of(t.g),C3(t.g)):St||UD(t.g,0);}}function Ff(){Ff=d1,Lr=B(d(it,1),Dt,2,6,["QM@HzAmdqjF@","RF@Q``","qC`@ISTAlQE`","`J@H","QM@HzAmdqbF@","qC`@ISTAlQEhqPp@","sJP@DiZhAmQEb","RF@QPvR@","QM@HzA@","qC`@ISTAlQEhpPp@","qC`@Qz`MbHl","sJP@DiZhAmQEcFZF@","RFPDXH","qC`@IVtAlQE`","QM@HvAmdqfF@","sGP@DiVj`FsDVM@","`L@H","sJP@DizhAmQEcFBF@","sJP@DjvhAmQEb","sFp@DiTt@@AlqEcP","sGP@LdbMU@MfHlZ","QMHAIhD","QM@HzAy@","sJP@DkVhAmQEb","sNp@DiUjj@[\\QXu`","sJP@DiZhAmQEcFBF@","sGP@DjVj`FsDVM@","RFPDTH","RG@DXOH@","sGP@Divj`FsDVMcAC@","sGP@Dj}j`FsDVM@","qC`@Qz`MbHmFRF@","sNp@LdbJjj@[\\QXu`","QMHAIhGe@","QM@HzAyd`","QM`AIhD","qC`@ISTA@","sGP@DkUj`FsDVM@","qC`@IVtAlQEhqPp@","sNp@DiUjj@[\\QXuqea`@","KAx@@IRjuUPAlHPfES\\","QM`BN`P","sJP@DjZhAmQEcFJF@","Hid@@DjU^nBBH@FtaBXUMp`","sNp@Diujj@[\\QXuq`a`@","sJP@DjvhAmQEcFZF@","sJP@DjZhAmQEcFFF@","sOp@DjWkB@@FwDVM\\YhX@","sNp@Dj}Zj@[\\QXu`","sNp@DiWjj@[\\QXuq`a`@","sOp@DjWkB@@D","KAx@@ITouUPAlHPfES\\","KAx@@YIDTjjh@vDHSBin@","sNp@DkUZj@[\\QXu`","RFPDXOH@","QM`BN`^L`","qC`@ISTAy@","sGP@LdbMU@MfHl[FVF@","qCb@AIZ`H","KAx@@IRjuUPAlHPfES]FFa`@","KAx@@ITnuUPAlHPfES\\","HiD@@DiUVjj`AmHPfES\\H","sNp@DjUjj@[\\QXu`","sJP@DkVhAmQEcFJF@","sGP@DjVj`FsDVMcCC@","qC`@Qz`MbHmFBF@","sJP@DkfhAmQEb","qC`@IVtAlQEhsPp@","sGP@Djuj`FsDVM@","sGP@Dj}j`FsDVMcMC@","sJP@DiZhA@","KAx@@ISjuUPAlHPfES]F@a`@","sJP@DjZhAmQEcFRF@","KAx@@IRnuUPAlHPfES]F@a`@","HiD@@DjWvjj`AmHPfES\\H","QMHAIhGd@","sNp@DiUjj@[\\QXuq`a`@","KAx@@IVjmUPAlHPfES\\","sGP@DjVj`FsDVMcMC@","QM`AIhGe@","HiD@@LdbJRjjh@[RDIaTwB","qCp@AIZ`H","sGP@LdbMU@MfHl[FFF@","QMDARVA@","sNp@LdbJjj@[\\QXuqba`@","sNp@LdbJjj@[\\QXuqca`@","sGP@Dkej`FsDVM@","qCb@AIZ`OI@","HaD@@DjUZxHH@AlHPfES]FLa`@","sGP@DkYj`FsDVM@","qCb@AIV`H","sNp@LdbJjj@[\\QXuqea`@","sGP@DkUj`FsDVMcEC@","sFp@DiTt@@Axa@","Hmt@@DjU_ZxHHj@AmhPfES\\Lj","QM`BN`^P","qCb@AIZ`OH`","sFp@DiTt@@AxaP","sGP@Djuj`FsDVMcEC@","sGP@Djuj`FsDVMcIC@","sGP@DkUj`FsDVMcKC@","sJP@DkfhAmQEcFRF@","sGP@DjVj`FsDVMcIC@","HaD@@DjUZxHH@AlHPfES]FFa`@","qC`@IRtDVqDV@","sNp@Dj}Zj@[\\QXuqfa`@","KAx@@ITnuUPAlHPfES]FFa`@","HiD@@DkUUjj`AmHPfES\\H","sJQ@@dkU@H","qC`@Qz`H","KAx@@IUkmUPAlHPfES\\","KAx@@ITouUPAlHPfES]FJa`@","sJP@H~j@[TQX`","sGP@DjZj`FsDVM@","sJP@DkVhAmQEcFFF@","sJX@@eKU@H","sJP@DizhAy@","QMHAIhGbP","KAx@@ITouUPAlHPfES]FNa`@","HaD@@DjUZxHD@AlHPfES\\","HaD@@DjUZxHH@A@","sNp@LdbJjj@[\\QXuqaa`@","Hed@@LdbRQUUUP@vTHSBinFP","KAx@@ITouUPAlHPfES]FLa`@","sNp@DkUZj@[\\QXuqba`@","KAx@@ITjuUPAlHPfES]FNa`@","KAx@@YIDTjjh@vDHSBincGPp@","HaD@@DjYvxH`@AlHPfES]FLa`@","RF@QP`","qCb@AIj`H","sNp@DjUjj@[\\QXuqaa`@","sNp@DkVZj@[\\QXu`","KAx@@YIDUJjh@vDHSBin@","sGP@DkYj`FsDVMcIC@","sGP@DjVj`FsDVMcAC@","sGP@DiVj`D","sJP@DkVhAmQEcFZF@","sNp@LdbLjj@[\\QXu`","QM@HvAmdqbF@","HaD@@DjWjXHB@AlHPfES\\","sNp@DjwZj@[\\QXuqba`@","sNp@LdbJjj@[\\QXuqda`@","sFp@DiTt@@Axa`","HiD@@Djuujj`AmHPfES\\H","sNp@DkUZj@[\\QXuqca`@","sJP@DiZhAy@","KAx@@YIDTjjh@vDHSBincCPp@","KAx@@IWNmUPAlHPfES\\","KAx@@IVkMUPAlHPfES\\","sJQ@@dju@H","qCb@AIZ`OH@","qC`@ISTAxa@","sNp@DjyZj@[\\QXu`","Hid@@DjUfaBB`@FtaBXUMp`","HiD@@DiUVjj`AmHPfES\\LXBF@","KAx@@IUjmUPAlHPfES\\","HiD@@DjWvjj`AmHPfES\\LXjF@","sJP@DjVhAmQEb","qCb@AIV`OH`","HiD@@LdbJRjjh@[RDIaTwCFDa`@","KAx@@YIDTjjh@vDHSBinc@Pp@","sNp@DjUjj@[\\QXuqda`@","qC`@Qz`OED","sJP@DkfhAmQEcFZF@","KAx@@YIDbjjh@vDHSBincDPp@","sGP@Djyj`FsDVMcMC@","KAx@@IVrmUPAlHPfES\\","qCp@AIZ`OI@","sJX@@dkU@H","sJQ@@dkU@OH`","sNp@Di]ZjBBvxbqk@","Hkl@@DjU_Uk``bj`@[VDIaTwCJzX","sGP@DjZj`FsDVMcEC@","Hid@@DjU^nBBH@FtaBXUMpqcHX@","sNp@DkeZj@[\\QXu`","sNp@DjYjj@[\\QXuqca`@","sGQ@@djuT@`","HiD@@LdbJTjjh@[RDIaTwB","sOp@DjWkB@@Gd`","HeT@@LdbbRKBDQD@CYPaLJfxY@","qCr@XIKTA@","HiD@@DjW^jj`AmHPfES\\LXJF@","HeT@@DjU]k``b`@[JDIaTwCH","sGP@Djuj`FsDVMcCC@","`IH`B","sOp@DjWkB@@GdX","sJQ@@eKU@H","KAx@@YIDUJjh@vDHSBincBPp@","sJX@@eKU@OH@","KAx@@YIDTjjh@vDHSBincAPp@","sOq@@drm\\@@@`","KAx@@IUkMUPAlHPfES\\","qCp@AIj`H","Hed@@DjUUjjj@FraBXUMpr","sGX@@eJuT@`","sGP@DkUj`FsDVMcCC@","HiD@@Dj}Ujj`AmHPfES\\LXrF@","KAx@@ITouUPAlHPfES]FHa`@","Hed@@DjWujjj@FraBXUMpsFIa`@","sGP@DiUj``mfHlZ","sFp@DiTvjhAlqEcP","Hid@@DjU^nBBH@FtaBXUMpq`XX@","sJP@DkVdAmQEb","qCp@AIZ`OH`","QMhDRVA@","qC`@ISJAlQE`","qCp@BOTAyhl","sJX@@eOU@ODB","sFp@DiTt@@AyaB","sGP@DkUj`FsDVMcMC@","Hid@@DjYUaBH`@FtaBXUMpqcHX@","qC`@Qz`OH@","HiD@@DjUVjj`AmHPfES\\LXZF@","sJP@H~j@[TQXqda`@","sJX@@eKU@OI@","sNp@Djejj@[\\QXu`","sJQ@@dsU@H","sJQ@@dkU@OI`","KAx@@YIMDVjh@vDHSBin@","Hid@@DjU^nBBD@FtaBXUMp`","sNp@DkgZj@[\\QXuqca`@","qC`@IRtDVqDVcEC@","Hed@@LdbRQeUUP@vTHSBinFP","sNp@DiUjj@P","qC`@IRtDT","sNp@DkYZj@[\\QXuqca`@","KAx@@IUkmUPAlHPfES]FDa`@","KAx@@IVjmUPAlHPfES]FNa`@","sOx@@drm\\@@@`","KAx@@ITjuUPAlHPfES]FBa`@","QMDARVAyH","sJP`@dfvhA@","HeT@@DjU_k``b`@[JDIaTwCLXfF@","KAx@@IToUUPAlHPfES]FJa`@","sGP@DkYj`FsDVMcEC@","qCb@AIZ`ODH","`I@`B","KAx@@IUzmUPAlHPfES]FFa`@","sNp@DkfZj@[\\QXu`","KAx@@ITnuUPAlHPfES]F@a`@","HiD@@LddURjjh@[RDIaTwB","sNp@Dj~Zj@[\\QXuqfa`@","Hed@@Dj{uZjj@FraBXUMpr","KAx@@ITsUUPAlHPfES\\","Hid@@LdbRQk``b@AmHPfES\\LXrF@","sOp@DjWkB@@GdH","sJQ@@dkU@OH@","Hid@@DjU^nBBH@FtaBXUMpqahX@","sGP@DiYj``mfHlZ","KAx@@IToUUPAlHPfES]FLa`@","qCp@AJZ`ODH","Hmt@@DjU]ZxHHj@AmhPfES\\Lj","sGP@DkUjPFsDVM@","qC`@IVtA@","Hed@@LdbJReUUP@vTHSBinFP","sNp@DjuZj@[\\QXuqea`@","KAx@@IUkmUPAlHPfES]FNa`@","HiD@@DkVUjj`AmHPfES\\H","Hed@@DkUeZjj@FraBXUMpr","sNp@DkVZj@[\\QXuqea`@","sJP@DiVhHKZbKFLLL@","HiD@@Djuyjj`AmHPfES\\H","sNp@DjUjj@[\\QXuq`a`@","HeT@@DjYUXPbH`@[JDIaTwCH","HiD@@DjwUjj`AmHPfES\\LXRF@","sNq@@djmUPB","KAx@@YIEEZjh@vDHSBincCPp@","sGP@Di^V`dmfHlZ","Hid@@DjYUaBHP@FtaBXUMp`","sNp@DjYjj@[\\QXuqba`@","sGP@Dkej`FsDVMcKC@","HeT@@DjU^k``b`@[JDIaTwCH","qC`@Qv`MbHmFBF@","sGQ@@djmT@`","qCr@XIKTAyH","qC`@IVtAlQEhpPp@","Hid@@LdbbQxXF@@AmHPfES\\LXjF@","sGP@DkYj`FsDVMcCC@","KAx@@IVsMUPAlHPfES\\","qCp@AIj`ODl","HiD@@DkeUjj`AmHPfES\\H","deT@@DjU[k``b`@vTHSBinFP","sJP@DkVdAmQEcFRF@","HiD@@LdbJTjjh@[RDIaTwCFDa`@","HiD@@DkYyjj`AmHPfES\\H","sJP@DjZhAyH","KAx@@IVkMUPAlHPfES]FDa`@","sJX@@dkU@OI@","Hed@@LdbRQUUUP@vTHSBinFXpLL@","Hed@@DjuUZjj@FraBXUMpr","sGP@Djfj`FsDVMcKC@","sNp@DkVZj@[\\QXuqba`@","sNp@DjyZj@[\\QXuqfa`@","qCb@AIj`OH@","sNp@DjUZj@[\\QXu`","KAx@@IWOMUPAlHPfES\\","Hid@@DjU^nBBH@D","Hed@@DjuvZjj@FraBXUMpr","sJP@DiVhHKZbKFLtL@","dmt@@DjU_ZxHHj@C[PaLJfxYVLKC@","sNp@DjuZj@[\\QXuqca`@","sJP@DkfhAmQEcFJF@","sNp@LdbJZj@[\\QXu`","HeT@@DjU_k``b`@[JDIaTwCLXFF@","KAx@@IVlmUPAlHPfES]FNa`@","HeT@@LdbbRKBDQD@CYPaLJfxYcEPp@","Hid@@DjUZnBBH@FtaBXUMpqcHX@","qCa@CIKTA@","HiD@@Dj~]jj`AmHPfES\\LXFF@","sKP@Di\\Zj@[TQX`","sGP@Djfj`FsDVMcEC@","HiD@@DkgYjj`AmHPfES\\H","sNp@DjuZj@[\\QXuqaa`@","KAx@@YIMDVjh@vDHSBincDPp@","sJP@DjVhHKZbKFLTL@","Hid@@LdbRQk``b@AmHPfES\\LXZF@","HiD@@Dj}Ujj`AmHPfES\\LXzF@","HeT@@DjU_k``bP@[JDIaTwCH","sNp@DkUZi@[\\QXu`","HiD@@DjYfjj`AmHPfES\\H","sGP@DjZj`FsDVMcAC@","Hmt@@DjU_jxHHj@AmhPfES\\Lj","Hid@@LdbRQk``R@AmHPfES\\H","KAx@@YIDUJjh@vDHSBincDPp@","qCr@XIKTAyD","sOq@@drm\\@@@|`@","Hed@@DjW^jjj@FraBXUMpsFBa`@","HeT@@DjY]zXFB@@[JDIaTwCH","Hkl@@DjU_Vk``bj`@[VDIaTwCJzX","Hid@@DjY}nBHH@FtaBXUMpqcHX@","sGX@@eKuT@|d@","sGP@Dj^Y`FsDVM@","HcL@@DjU_ZnBBJh@FqaBXUMprn`","sJP@DkVdAmQEcFJF@","sOq@@drm\\@@@|b@","sNp@DjyZj@[\\QXuqaa`@","HaD@@DjUZxHH@AyD@","qC`@Qv`H","dmt@@DjU_ZxHHj@C[PaLJfxYVLYC@","sGP@Dkej`FsDVMcMC@","Hed@@DjUUjjj@FraBXUMpsFHa`@","HeT@@LdbbRkBDQD@CYPaLJfxY@","KAx@@IU{MUPAlHPfES]FLa`@","RG@DTH","sJY@DDeVhA@","KAx@@YIDUJjh@vDHSBinc@Pp@","sJX@@dkU@OI`","sJQ@@dju@OI`","HeT@@LdbbRKBDQD@CYPaLJfxYcFPp@","sFp@DiTvjhAlqEcXpPp@","HaD@@DjUZxHH@AyG@","sNx@@eJ}UPB","sNp@LddUjj@[\\QXuqca`@","HaDH@@RVU[j@@@D","sNp@DkgZi@[\\QXu`","sGY@LDeVj`D","sNp@LdbJfZBZvxbqk@","sJP`@dfvhAyL","sGX@AddQjhAxe`","Hmt@@DjU_ZxHHj@AmhPfES\\LkFIa`@","qCh@CIKTA@","sNp@LdbLjj@[\\QXuq`a`@","sOq@@drm\\@@@|a@","KAx@@IUzmUPAlHPfES]FJa`@","sNx@AddQUUPB","sGP@Di]jP`mfHlZ","sJP`@TeZhA@","KAx@@IRjmUPHKXPaLJfx","HeT@@LdbRTM\\DDT@CYPaLJfxY@","HaF@@@Rfu[j@@@D","Hid@@DjYUaBH`@FtaBXUMpqchX@","KAx@@IUjmTpAlHPfES\\","Hid@@DjU^nBBD@FtaBXUMpqcHX@","sGP@DiUj``mfHl[FFF@","KAx@@IUvmUPAlHPfES]FLa`@","Hed@@LdbQTUUUP@vTHSBinFXqDL@","sJP@DkVhA@","sOx@@drm\\@@@|b@","KAx@@IUkMUPAlHPfES]FDa`@","HeT@@LdbRQU\\DDT@CYPaLJfxY@","HiD@@Dj}Yjj`AmHPfES\\LXrF@","HiD@@Dj{ujj`AmHPfES\\LXFF@","KAx@@IWNmUPAlHPfES]FFa`@","KAx@@IRkMUPHKXPaLJfx","sJP@DjYdAmQEcFZF@","sJY@LDeZhAyL","HaDH@@RVU[f@@@D","sJP`@deVhAyB","HaD@@DjWjZjj`AlHPfES\\","sGP@DkYj`FsDVMcMC@","sNp@DkgZj@[\\QXuqea`@","sJQ@@dlu@H","HeT@@DjU]k``b`@[JDIaTwCLXrF@","sJX@@dkU@OH`","RFDDQFCr`","sJP@DiYXIKZbKFLLL@","KAx@@YIHjjjh@vDHSBincGPp@","Hk\\@@DjU^ukmLHH@@@AmXPfES\\Lki`","sGQ@@djmT@|b@","Hid@@DjUfaBB`@FtaBXUMpqahX@","sNx@@eRmUPB","Hmt@@LdbRVak``ah@FvaBXUMprh","qCr@XIJtA@","KAx@@IWMmUPAlHPfES]FNa`@","HeT@@DjYYZPbJ@@[JDIaTwCH","sNp@DkfZj@[\\QXuqea`@","Hid@@DjU^nBAHAEVtaBXUMp`","dmt@@DjUgZDHJJ@C[PaLJfxYT","sGP@DkejPFsDVM@","sNx@@eJmUPB","qCb@AIf`H","HcL@@DjU_VnBBJh@FqaBXUMprnqcXX@","Hid@@DjUZnBBH@FtaBXUMpqahX@","sNp@LdbQZjBBvxbqkcGC@","sOx@@drm\\@@@|c@","sJP@H~j@^R@","KAx@@YIDcFjhDElHPfES\\","Hid@@DjUZnBAH@FtaBXUMp`","sNp@LddUji@[\\QXu`","sGP@DjfjPFsDVM@","HeT@@DjYUXPbD`@[JDIaTwCH","KAx@@IUoMUPAlHPfES]FDa`@","sFp@DiTt@@AyaD","Hed@@DjuuZjj@FraBXUMpsFIa`@","HeT@@DjUghP`h`@[JDIaTwCLXfF@","sOp@DjWkjj`FwDVM\\YhX@","sGP@Djfj`FsDVMcIC@","KAx@@IRkmUPHKXPaLJfzL]C@","sNx@@djmUPB","QM`AIdD","sOp@DjWkB@@Gbe@","sNp@DjyZj@[\\QXuqca`@","QM@HuAmd`","sNp@LddUjj@[\\QXuqea`@","daD@@DjUZxHD@CXPaLJfzLYC@","qCb@AIZPH","HiD@@LdbJTjjh@[RDIaTwCF@a`@","Hmt@@DjU_ZxHHi@AmhPfES\\Lj","HaDH@@RYWih@H@D","HiD@@LdbJTjjh@[RDIaTwCFHa`@","sGX@@djuT@|a@","sNp@DkfZj@[\\QXuqaa`@","Hid@@DjU^nBBH@GdL","KAx@@IVkMUPAlHPfES]FJa`@","qCr@XIKTAy@","HmT@@Dj{uVjjh@[ZDIaTwCJqaXX@","dmt@@DjYWVDHbJ@C[PaLJfxYT","Hif@@@RUe^Fh@@@P","HaDH@@Rfu[j@@@GdH","KAx@@IVsMUPAlHPfES]FDa`@","sKP@Di\\Zj@[TQXq`a`@","sJX@@eMU@OH@","HeT@@DjU^k``b`@[JDIaTwCLXFF@","Hmt@@LdbbRJXPbHh@FvaBXUMprh","sJP@DjvhAmQEcFBF@","dmt@@LdbbRNXPbHh@MmBDpj[aeXplL@","sJP`@dfvhAyD","sGP@Di^V`dmfHl[FVF@","KAx@@IVsmUPAlHPfES]FBa`@","sOq@@drm\\@@@|PP","sJY@BDeZhA@","HeT@@LdbRbmBDED@CYPaLJfxY@","Hed@@Djy[Zjj@FraBXUMpr","HeT@@DjU]k``b`@[JDIaTwCLXFF@","Hid@@DjUfaBB`@D","qCa@CIJtA@","QMPARVA@","Hid@@DjUfaBB`@FtaBXUMpqcHX@","sJY@BDfZhA@","HeT@@DjUghP`hP@[JDIaTwCH","Hed@@Dj{uZjj@FraBXUMpsFIa`@","dmt@@DjYUvDHbJ@C[PaLJfxYVLUC@","sNp`@dfuZj@P","sJQ@@dmU@OH@","sJX@@dmU@H","HeT@@DjU]k``b`@[JDIaTwCLXZF@","HiD@@LdfbJZjh@[RDIaTwCFAa`@","sOx@@drm\\@@@|a@","deT@@DjUfhP`h`@vTHSBinFP","dmt@@DjU]ZxHHj@C[PaLJfxYVLKC@","sOp@DjWkjj`FwDVM\\XHX@","HcL@@LdbbRNSBDQEP@McBDpj[ae]cFpp@","HiD@@Dj}Yji`AmHPfES\\H","HaDH@@RYe[hB@@D","Hid@@DjU^njjj@FtaBXUMpq`XX@","deT@@LdbbRKBDQB@FraBXUMpr","QMPARZA@","sOq@@drm\\@@@|QX","HaD@@DjYvxH`@A@","HcL@@LdbbRNcBDQEP@McBDpj[ae]@","QMhDRZA@","RG@DXLHmP","QM`BN`XQYd","RG@DTLHmP","QMHAIXFEVd","QMDARVAaH","RFPDXLHmP","RF@Q`vRbdLEC@","RF@QpvR@","QO@HyjAmd`","`II@B","`II@CFspqJp","`II@CF[@hM@prB`","`H@[T[|B`XN@PdM@p|@bHrBcDk@","RG@DXMj}F@","QM`BN`[L~b@","RG@DTMj}D@","QMHAIXFt~j@","QMDARVA}L@","RFPDXMj}D@","sKP@Di\\YZ@[TQXqaa`@","eF`BHD"]);}function dp(){dp=d1,GV=B(d(NA,1),te,6,14,[524290,524292,589826,589827,589828,589829,589832,589833,589837,589838,598019,598020,598024,606211,688130,688131,688132,688137,688142,696324,819202,819203,819204,819205,819214,827396,1048580,1114114,1114115,1114116,1114120,1212420,1220611,1343492,1343496,1638402,1638403,17367042,17367043,17367044,17367045,17367048,17367049,17367053,17367054,17375236,17465346,17465348,17465353,17473540,1208483842,1208483848,1208483912,1208549378,1208549379,1208549380,1208549384,1208549388,1208549442,1208549443,1208549444,1208549448,1208557571,1208565763,1208565827,1409875970,1409875971,1409875972,1409875976,1409876034,1409876035,1409876036,1409876040,1409884163,1409974274,1409974280,1409974338,1678245892,1678311426,1678311427,1678311428,1678311432,1678311490,1678311491,1678311492,1678311496,1678409730,1678409731,1678409732,1678409794,1678540802,1678540808,1678540810,1678540866,2282291202,2282291203,2282291266,2282291267,2282389506,2282389507,2282389570,2282389571,2282389572,2282520578,2282520579,2282520642,2282520643,2282537027,2483617794,2483617795,2483617858,2483617859,2483617860,2483617864,2483716098,2483716099,2483716162,2483716163,2484150275,2484248579,2752675842,3356033026,3356139523,3557359618,3557457922,3557588994,34510798914,34510798915,34510798916,34510798920,34510807107,34510815299,34712125506,34712125507,34712125508,34712125512,34712223810,34712223811,34712223812,34712223816,34980560962,34980560963,34980659266,34980659267,34980659268,35568287746,35568287747,35568287748,35568287752,35568287756,35568287810,35568287811,35568287812,35568287816,35568287820,35568386050,35568386051,35568386052,35568386114,35568386120,35568517122,35568517123,35568517124,35568517128,35568517186,35568517187,35568517188,35568517192,35568812034,35568812035,35568812098,35568812099,35568910338,35568910339,35568910403,35569336322,35569434626,35585064962,35585064963,35585064964,35585064968,35585065026,35585065027,35585065028,35585065032,35769614338,35769614340,35769614402,35769712642,35770138626,35770236930,35786391554,35786391555,2475109646403,uH,QH,2475109711938,2475109711939,2475109720067,2475109720131,2475109728259,2475109728323,oH,UH,2887426572354,2887426572355,LH,sH,2887627898946,yH,2887627997250,lH,TH,3437182386242,3437182386243,hH,3437383712771,3437383712834,cH,wH,gH,dH,4674132967490,4674132967491,4674132975619,BH,4674334294082,4674334294083,4674334302211,4674334302275,vH,4674334392386,FH,4674602729538,4674602827842,mH,4674602958914,kH,bH,5086449827906,5086449827907,5086449827912,RH,5086651154498,5086651162627,jH,pH,5086651252802,5086651252808,5086651260931,CH,5086919589954,HH,5086919688258,5086919819330,5636205641794,MH,5636406968386,VH,5636407066690,5636675403842,EH,5636675502146,{l:589890,m:73760,h:4},{l:589891,m:73760,h:4},{l:598083,m:73760,h:4},{l:688194,m:73760,h:4},{l:688195,m:73760,h:4},{l:696387,m:73760,h:4},{l:819266,m:73760,h:4},{l:65602,m:73764,h:4},{l:65603,m:73764,h:4},{l:589890,m:172064,h:4},{l:589891,m:172064,h:4},{l:598083,m:172064,h:4},{l:688194,m:172064,h:4},{l:688195,m:172064,h:4},{l:696387,m:172064,h:4},{l:819266,m:172064,h:4},{l:65602,m:172068,h:4},{l:65603,m:172068,h:4},{l:589890,m:172112,h:4},{l:589891,m:172112,h:4},{l:688194,m:172112,h:4},{l:819266,m:172112,h:4},{l:65602,m:172116,h:4},{l:65608,m:172116,h:4},{l:163906,m:172116,h:4},{l:589890,m:303136,h:4},{l:688194,m:303136,h:4},{l:819266,m:303136,h:4},{l:65602,m:303140,h:4},{l:589890,m:303184,h:4},{l:688194,m:303184,h:4},{l:819266,m:303184,h:4},{l:65602,m:303188,h:4},{l:65602,m:303252,h:4},SH,qH,{l:589890,m:590112,h:4},{l:589891,m:590112,h:4},IH,xH,{l:589890,m:590160,h:4},{l:589891,m:590160,h:4},NH,{l:688194,m:590160,h:4},OH,GH,{l:589890,m:590224,h:4},{l:589891,m:590224,h:4},{l:688131,m:590224,h:4},{l:688194,m:590224,h:4},JH,zH,{l:589890,m:590368,h:4},YH,{l:688194,m:590368,h:4},{l:696323,m:590368,h:4},KH,XH,{l:819266,m:590368,h:4},ZH,WH,{l:589890,m:590416,h:4},{l:589891,m:590416,h:4},{l:589896,m:590416,h:4},_H,{l:688136,m:590416,h:4},{l:688194,m:590416,h:4},{l:696323,m:590416,h:4},$H,{l:819266,m:590416,h:4},{l:688130,m:590480,h:4},{l:688194,m:590480,h:4},{l:65602,m:598052,h:4},{l:65603,m:598052,h:4},{l:65602,m:598100,h:4},{l:65603,m:598100,h:4},{l:73795,m:598100,h:4},{l:163906,m:598100,h:4},{l:163907,m:598100,h:4},{l:65602,m:598164,h:4},{l:163906,m:598164,h:4},aH,tM,{l:589890,m:598304,h:4},{l:589891,m:598304,h:4},eM,{l:688194,m:598304,h:4},AM,{l:1114178,m:598304,h:4},nM,{l:1212424,m:598304,h:4},{l:1212482,m:598304,h:4},PM,rM,{l:589890,m:688416,h:4},iM,{l:589890,m:688464,h:4},{l:589890,m:688528,h:4},fM,DM,{l:688130,m:688784,h:4},{l:65602,m:696356,h:4},{l:65602,m:696404,h:4},{l:163906,m:696404,h:4},{l:589826,m:696608,h:4},{l:1114178,m:696608,h:4},{l:1212418,m:696608,h:4},{l:589826,m:696612,h:4},{l:524355,m:590112,h:288},{l:589825,m:590112,h:288},uM,{l:589890,m:590112,h:288},{l:598019,m:590112,h:288},{l:598083,m:590112,h:288},QM,{l:589890,m:590112,h:336},{l:598019,m:590112,h:336},{l:598083,m:590112,h:336},oM,{l:589890,m:688416,h:336},UM,{l:589890,m:688464,h:336},LM,sM,{l:589827,m:590112,h:400},{l:589890,m:590112,h:400},{l:589891,m:590112,h:400},yM,lM,TM,hM,{l:589890,m:819488,h:400},cM,wM,gM,dM,{l:589827,m:819488,h:544},BM,vM,FM,{l:688199,m:688464,h:592},mM,kM,bM,{l:688202,m:819600,h:592},RM,{l:589896,m:1212704,h:592},jM,pM,{l:688200,m:1212752,h:592},CM,{l:688135,m:688464,h:656},{l:688135,m:819536,h:656},{l:589891,m:65936,h:8228},HM,{l:589890,m:590112,h:8480},{l:598019,m:590112,h:8480},MM,{l:589890,m:688416,h:8480},VM,{l:589890,m:688464,h:8480},EM,SM,qM,IM,{l:589896,m:1213008,h:8480},xM,{l:688200,m:1213008,h:8480},{l:688135,m:1343824,h:8480},NM,{l:589890,m:590112,h:8484},OM,{l:589890,m:590160,h:8484},{l:1212424,m:590416,h:8484},{l:1212488,m:590416,h:8484},GM,{l:688194,m:598304,h:8484},{l:589826,m:590112,h:8528},{l:589890,m:590112,h:8528}]),z4=B(d(Se,1),PA,6,15,[.6966999769210815,0,.4885999858379364,-0.47269999980926514,-0.07490000128746033,JM,.273499995470047,.5699999928474426,.7009999752044678,.9534000158309937,-3.6435000896453857,-2.150899887084961,.4975000023841858,-2.19950008392334,-0.2809000015258789,-0.8259999752044678,-0.1784999966621399,-1.620300054550171,-1.0959999561309814,-0.3619999885559082,.13950000703334808,-0.29750001430511475,-1.2907999753952026,1.0161999464035034,zM,-2.5383999347686768,qy,.4291999936103821,-0.5824000239372253,-0.1834000051021576,.1306000053882599,-0.5015000104904175,JM,-0.5257999897003174,.4244000017642975,-0.16099999845027924,-0.2777999937534332,.5110999941825867,-0.435699999332428,-0.10409999638795853,.3424000144004822,-0.061500001698732376,.6035000085830688,.7226999998092651,.43459999561309814,-1.6821000576019287,-0.3310000002384186,-0.49799999594688416,YM,-0.3650999963283539,.45969998836517334,.3384000062942505,.6632999777793884,.4544000029563904,.15970000624656677,.633899986743927,.35040000081062317,.04490000009536743,.34200000762939453,.26109999418258667,.40459999442100525,.5218999981880188,-1.065000057220459,-1.2314000129699707,-1.802299976348877,-0.36320000886917114,-0.4108000099658966,.30570000410079956,-0.14560000598430634,-0.27129998803138733,-0.5192999839782715,.45260000228881836,.5539000034332275,.8374000191688538,-0.7070000171661377,-0.48809999227523804,-0.4099999964237213,0,.14790000021457672,.3447999954223633,.42980000376701355,.5579000115394592,-0.1264999955892563,-0.042500000447034836,.07670000195503235,.6635000109672546,-0.38119998574256897,-0.8367999792098999,1.0286999940872192,-0.10209999978542328,.3587000072002411,-0.5945000052452087,.16920000314712524,-0.121799997985363,.32829999923706055,.22390000522136688,.20430000126361847,.05900000035762787,-0.48350000381469727,.6165000200271606,-0.4011000096797943,.5577999949455261,-0.21639999747276306,-0.017500000074505806,.29809999465942383,.10999999940395355,.27149999141693115,-0.2994999885559082,-0.46700000762939453,.1565999984741211,.046799998730421066,-0.13210000097751617,1.3686000108718872,0,-0.4115999937057495,1.0185999870300293,-0.3935000002384186,.5223000049591064,.3684999942779541,.25769999623298645,1.5192999839782715,.2705000042915344,.3790999948978424,.012000000104308128,-0.33970001339912415,.14830000698566437,.2766000032424927,.35929998755455017,.7714999914169312,.3149999976158142,-1.618499994277954,.18889999389648438,-0.2651999890804291,-0.09650000184774399,.420199990272522,.18709999322891235,-0.3684000074863434,-0.07779999822378159,.8942999839782715,.3693999946117401,.28790000081062317,.4489000141620636,-0.26010000705718994,.4771000146865845,.1923000067472458,.43810001015663147,.16949999332427979,.45249998569488525,.3352000117301941,.1582999974489212,.4036000072956085,-0.04800000041723251,.5023000240325928,-0.26489999890327454,.76910001039505,-0.35519999265670776,1.0300999879837036,-0.11410000175237656,-0.5932000279426575,.17489999532699585,.13130000233650208,-0.18039999902248383,.399399995803833,.22910000383853912,.31690001487731934,.35989999771118164,-0.0038999998942017555,-0.2955999970436096,.4408999979496002,-0.16089999675750732,.3774999976158142,-0.13459999859333038,.2838999927043915,.5128999948501587,.1265999972820282,.4293999969959259,.28060001134872437,.49070000648498535,KM,.219200000166893,.15649999678134918,.6934999823570251,.3617999851703644,.6735000014305115,.5777999758720398,-0.5636000037193298,.5569000244140625,.30379998683929443,-0.32760000228881836,-0.6991999745368958,.010300000198185444,-0.4659000039100647,XM,qy,.18410000205039978,.707099974155426,.12269999831914902,.7949000000953674,-0.6592000126838684,-1.3148000240325928,-0.4066999852657318,-0.1316000074148178,-0.4925000071525574,-0.09290000051259995,-0.4352000057697296,-0.2206999957561493,-0.9959999918937683,-0.723800003528595,-0.5468999743461609,-1.2939000129699707,-0.01360000018030405,.065700002014637,.7189000248908997,.05700000002980232,.661899983882904,-0.6381000280380249,-0.8072999715805054,.23549999296665192,.30480000376701355,-0.019899999722838402,-0.07519999891519547,.44609999656677246,.1559000015258789,1.1167999505996704,-1.8039000034332275,.23649999499320984,-0.22059999406337738,.4480000138282776,-1.1339999437332153,-0.5652999877929688,-0.40529999136924744,-0.13609999418258667,.2198999971151352,.053599998354911804,-0.020999999716877937,.6984999775886536,.9642999768257141,-0.41519999504089355,-1.0369000434875488,-0.18299999833106995,.5882999897003174,-0.29179999232292175,-0.5293999910354614,-0.6541000008583069,.9473000168800354,-0.19059999287128448,-0.8483999967575073,-0.3456999957561493,.9541000127792358,1.4230999946594238,-0.7924000024795532,ZM,WM,-0.2596000134944916,.8381999731063843,-0.4415999948978424,-0.37040001153945923,-0.7487000226974487,-0.10790000110864639,-0.29919999837875366,-0.3276999890804291,.025100000202655792,-0.9187999963760376,.10939999669790268,.8230999708175659,-3.233299970626831,.03500000014901161,XM,_M,.2791000008583069,.3206000030040741,.5662000179290771,-0.3783999979496002,.4032000005245209,-1.794800043106079,-0.15539999306201935,.3785000145435333,.05339999869465828,-0.16529999673366547,-0.09870000183582306,-0.10050000250339508,-0.6460999846458435,.8034999966621399,-0.24050000309944153,-0.12380000203847885,-0.35760000348091125,.09610000252723694,-0.6401000022888184,.2029000073671341,.23589999973773956,.4950999915599823,.19210000336170197,-0.37450000643730164,.34630000591278076,.289900004863739,-0.15330000221729279,-0.4169999957084656,.37700000405311584,.6998000144958496,.593999981880188,.5911999940872192,-0.5570999979972839,.023800000548362732,-0.2475000023841858,.030700000002980232,-0.38749998807907104,-0.7437000274658203,.5144000053405762,.00570000009611249,.765500009059906,.1720000058412552,-2.5624001026153564,-0.30660000443458557,.36469998955726624,.17270000278949738,-0.03290000185370445,-0.18930000066757202,.07020000368356705,-1.2453999519348145,.14959999918937683,zM,.4146000146865845,-0.2667999863624573,-0.11060000211000443,.03620000183582306,-0.3188999891281128,-0.7278000116348267,-0.08940000087022781,-0.22769999504089355,-0.2393999993801117,1.011199951171875,-0.2962000072002411,.7775999903678894,.2944999933242798,-0.22339999675750732,.27639999985694885,.8011000156402588,-0.17440000176429749,.15809999406337738,-1.7552000284194946,-0.384799987077713,.5993000268936157,.5267999768257141,-0.04170000180602074,.4733000099658966,-0.3400999903678894,-0.14499999582767487,.7088000178337097,-0.13179999589920044,.04259999841451645,-0.5027999877929688,.3831999897956848,-0.011800000444054604,-0.4357999861240387,.3749000132083893,-0.12030000239610672,-0.5648000240325928,-0.1972000002861023,-0.8769000172615051,-0.3675000071525574,-0.2003999948501587,-0.6069999933242798,-0.18569999933242798,.3467999994754791,-0.36239999532699585,.5357999801635742,-0.3700999915599823,.13359999656677246,.9545000195503235,.11389999836683273,-0.16990000009536743,qy,.2890999913215637,.2612999975681305,-0.03440000116825104,-1.9498000144958496,-2.024899959564209,-0.6004999876022339,-0.6258000135421753,-1.2348999977111816,.328000009059906,-0.54339998960495,-0.7712000012397766,-0.9057000279426575,-0.16680000722408295,-0.9904999732971191,-0.03720000013709068,-1.1638000011444092,.12620000541210175,-0.5248000025749207,-0.15379999577999115,-0.36820000410079956,.3249000012874603,.06499999761581421,.051100000739097595,-0.46070000529289246,.22310000658035278,.28220000863075256,.1396999955177307,-0.49380001425743103,.39480000734329224,-0.4074999988079071,-0.6410999894142151,-0.009100000374019146,-0.13330000638961792,-0.5192000269889832,-0.16609999537467957,qy,-0.07069999724626541,.4805999994277954,.38280001282691956,.22290000319480896,.6159999966621399,.33709999918937683,.188400000333786,.13809999823570251,YM,.2833000123500824,-0.1225999966263771,-3.9189000129699707,-0.459199994802475,-0.3434999883174896,-0.6654000282287598,-0.5055999755859375,-0.863099992275238,.15360000729560852,-0.6427000164985657,-0.08839999884366989,-0.0471000000834465,.11060000211000443,.382099986076355,-0.23919999599456787,-0.4050999879837036,.08910000324249268,-0.6972000002861023,-0.4699000120162964,.09220000356435776,.08060000091791153,-0.6773999929428101,-0.062199998646974564,-0.9300000071525574,.13369999825954437]);}function Bp(){Bp=d1,Pl=B(d(Mt,2),nA,17,0,[null,B(d(Mt,1),Vt,3,0,[new u(0,1.007825032),new u(1,2.014101778),new u(2,3.016049268),new u(3,4.027834627),new u(4,5.039542911),new u(5,6.044942608)]),B(d(Mt,1),Vt,3,0,[new u(1,3.01602931),new u(2,4.00260325),new u(3,5.012223628),new u(4,6.018888072),new u(5,7.028030527),new u(6,8.033921838),new u(7,9.043820323),new u(8,10.052399713)]),B(d(Mt,1),Vt,3,0,[new u(1,4.027182329),new u(2,5.012537796),new u(3,6.015122281),new u(4,7.016004049),new u(5,8.02248667),new u(6,9.026789122),new u(7,10.035480884),new u(8,11.043796166),new u(9,12.05378)]),B(d(Mt,1),Vt,3,0,[new u(1,5.04079),new u(2,6.019725804),new u(3,7.016929246),new u(4,8.005305094),new u(5,9.012182135),new u(6,10.01353372),new u(7,11.021657653),new u(8,12.026920631),new u(9,13.036133834),new u(10,14.042815522)]),B(d(Mt,1),Vt,3,0,[new u(2,7.029917389),new u(3,8.024606713),new u(4,9.013328806),new u(5,10.012937027),new u(6,11.009305466),new u(7,12.014352109),new u(8,13.017780267),new u(9,14.025404064),new u(10,15.031097291),new u(11,16.039808836),new u(12,17.046931399),new u(13,18.05617),new u(14,19.06373)]),B(d(Mt,1),Vt,3,0,[new u(2,8.037675026),new u(3,9.031040087),new u(4,10.01685311),new u(5,11.011433818),new u(6,12),new u(7,13.003354838),new u(8,14.003241988),new u(9,15.010599258),new u(10,16.014701243),new u(11,17.022583712),new u(12,18.026757058),new u(13,19.035248094),new u(14,20.040322395),new u(15,21.04934),new u(16,22.05645)]),B(d(Mt,1),Vt,3,0,[new u(3,10.042618),new u(4,11.026796226),new u(5,12.018613202),new u(6,13.005738584),new u(7,14.003074005),new u(8,15.000108898),new u(9,16.006101417),new u(10,17.008449673),new u(11,18.014081827),new u(12,19.017026896),new u(13,20.023367295),new u(14,21.027087574),new u(15,22.034440259),new u(16,23.04051),new u(17,24.0505)]),B(d(Mt,1),Vt,3,0,[new u(4,12.034404776),new u(5,13.0248104),new u(6,14.008595285),new u(7,15.003065386),new u(8,15.994914622),new u(9,16.999131501),new u(10,17.999160419),new u(11,19.00357873),new u(12,20.00407615),new u(13,21.008654631),new u(14,22.009967157),new u(15,23.015691325),new u(16,24.020369922),new u(17,25.02914),new u(18,26.03775)]),B(d(Mt,1),Vt,3,0,[new u(5,14.03608),new u(6,15.018010856),new u(7,16.01146573),new u(8,17.002095238),new u(9,18.000937667),new u(10,18.998403205),new u(11,19.999981324),new u(12,20.999948921),new u(13,22.00299925),new u(14,23.003574385),new u(15,24.008099371),new u(16,25.012094963),new u(17,26.019633157),new u(18,27.026892316),new u(19,28.03567),new u(20,29.04326)]),B(d(Mt,1),Vt,3,0,[new u(6,16.025756907),new u(7,17.017697565),new u(8,18.005697066),new u(9,19.001879839),new u(10,19.992440176),new u(11,20.993846744),new u(12,21.99138551),new u(13,22.994467337),new u(14,23.993615074),new u(15,24.997789899),new u(16,26.000461498),new u(17,27.0076152),new u(18,28.012108072),new u(19,29.019345902),new u(20,30.023872),new u(21,31.03311),new u(22,32.03991)]),B(d(Mt,1),Vt,3,0,[new u(7,18.02718),new u(8,19.01387945),new u(9,20.00734826),new u(10,20.997655099),new u(11,21.994436782),new u(12,22.989769675),new u(13,23.990963332),new u(14,24.989954352),new u(15,25.992589898),new u(16,26.994008702),new u(17,27.99889041),new u(18,29.002811301),new u(19,30.009226487),new u(20,31.013595108),new u(21,32.019649792),new u(22,33.027386),new u(23,34.0349),new u(24,35.04418)]),B(d(Mt,1),Vt,3,0,[new u(8,20.018862744),new u(9,21.011714174),new u(10,21.999574055),new u(11,22.99412485),new u(12,23.985041898),new u(13,24.985837023),new u(14,25.98259304),new u(15,26.984340742),new u(16,27.983876703),new u(17,28.988554743),new u(18,29.990464529),new u(19,30.996548459),new u(20,31.999145889),new u(21,33.005586975),new u(22,34.00907244),new u(23,35.018669),new u(24,36.02245),new u(25,37.03124)]),B(d(Mt,1),Vt,3,0,[new u(8,21.02804),new u(9,22.01952),new u(10,23.0072649),new u(11,23.999940911),new u(12,24.990428555),new u(13,25.986891659),new u(14,26.981538441),new u(15,27.981910184),new u(16,28.980444848),new u(17,29.982960304),new u(18,30.983946023),new u(19,31.988124379),new u(20,32.990869587),new u(21,33.996927255),new u(22,34.99993765),new u(23,36.006351501),new u(24,37.01031),new u(25,38.0169),new u(26,39.0219)]),B(d(Mt,1),Vt,3,0,[new u(8,22.03453),new u(9,23.02552),new u(10,24.011545711),new u(11,25.00410664),new u(12,25.992329935),new u(13,26.986704764),new u(14,27.976926533),new u(15,28.976494719),new u(16,29.973770218),new u(17,30.975363275),new u(18,31.974148129),new u(19,32.97800052),new u(20,33.978575745),new u(21,34.984584158),new u(22,35.986687363),new u(23,36.99299599),new u(24,37.99598),new u(25,39.0023),new u(26,40.0058),new u(27,41.0127),new u(28,42.0161)]),B(d(Mt,1),Vt,3,0,[new u(9,24.03435),new u(10,25.02026),new u(11,26.01178),new u(12,26.999191645),new u(13,27.99231233),new u(14,28.981801376),new u(15,29.978313807),new u(16,30.973761512),new u(17,31.973907163),new u(18,32.971725281),new u(19,33.973636381),new u(20,34.973314249),new u(21,35.978259824),new u(22,36.979608338),new u(23,37.98447),new u(24,38.98642),new u(25,39.99105),new u(26,40.9948),new u(27,42.00009),new u(28,43.00331),new u(29,44.00988),new u(30,45.01514),new u(31,46.02383)]),B(d(Mt,1),Vt,3,0,[new u(10,26.02788),new u(11,27.018795),new u(12,28.004372661),new u(13,28.996608805),new u(14,29.984902954),new u(15,30.979554421),new u(16,31.97207069),new u(17,32.971458497),new u(18,33.967866831),new u(19,34.96903214),new u(20,35.96708088),new u(21,36.971125716),new u(22,37.971163443),new u(23,38.975135275),new u(24,39.97547),new u(25,40.98003),new u(26,41.98149),new u(27,42.9866),new u(28,43.98832),new u(29,44.99482),new u(30,45.99957),new u(31,47.00762),new u(32,48.01299),new u(33,49.02201)]),B(d(Mt,1),Vt,3,0,[new u(11,28.02851),new u(12,29.01411),new u(13,30.00477),new u(14,30.992416014),new u(15,31.985688908),new u(16,32.977451798),new u(17,33.973761967),new u(18,34.968852707),new u(19,35.968306945),new u(20,36.9659026),new u(21,37.96801055),new u(22,38.968007677),new u(23,39.970415555),new u(24,40.970650212),new u(25,41.973174994),new u(26,42.974203385),new u(27,43.978538712),new u(28,44.9797),new u(29,45.98412),new u(30,46.98795),new u(31,47.99485),new u(32,48.99989),new u(33,50.00773),new u(34,51.01353)]),B(d(Mt,1),Vt,3,0,[new u(12,30.02156),new u(13,31.012126),new u(14,31.99766066),new u(15,32.989928719),new u(16,33.980270118),new u(17,34.975256726),new u(18,35.967546282),new u(19,36.966775912),new u(20,37.962732161),new u(21,38.964313413),new u(22,39.962383123),new u(23,40.964500828),new u(24,41.963046386),new u(25,42.965670701),new u(26,43.965365269),new u(27,44.968094979),new u(28,45.968093467),new u(29,46.972186238),new u(30,47.97507),new u(31,48.98218),new u(32,49.98594),new u(33,50.99324),new u(34,51.99817),new u(35,53.006227)]),B(d(Mt,1),Vt,3,0,[new u(13,32.02192),new u(14,33.00726),new u(15,33.99841),new u(16,34.988011615),new u(17,35.981293405),new u(18,36.973376915),new u(19,37.969080107),new u(20,38.963706861),new u(21,39.963998672),new u(22,40.961825972),new u(23,41.962403059),new u(24,42.960715746),new u(25,43.961556146),new u(26,44.960699658),new u(27,45.961976203),new u(28,46.961677807),new u(29,47.965512946),new u(30,48.967450084),new u(31,49.972782832),new u(32,50.97638),new u(33,51.98261),new u(34,52.98712),new u(35,53.99399),new u(36,54.999388)]),B(d(Mt,1),Vt,3,0,[new u(14,34.01412),new u(15,35.004765),new u(16,35.993087234),new u(17,36.985871505),new u(18,37.976318637),new u(19,38.970717729),new u(20,39.962591155),new u(21,40.962278349),new u(22,41.958618337),new u(23,42.958766833),new u(24,43.955481094),new u(25,44.956185938),new u(26,45.953692759),new u(27,46.954546459),new u(28,47.952533512),new u(29,48.955673302),new u(30,49.957518286),new u(31,50.961474238),new u(32,51.9651),new u(33,52.97005),new u(34,53.97468),new u(35,54.98055),new u(36,55.98579),new u(37,56.992356)]),B(d(Mt,1),Vt,3,0,[new u(15,36.01492),new u(16,37.00305),new u(17,37.9947),new u(18,38.984790009),new u(19,39.977964014),new u(20,40.969251316),new u(21,41.965516761),new u(22,42.96115098),new u(23,43.959403048),new u(24,44.955910243),new u(25,45.95517025),new u(26,46.952408027),new u(27,47.952234991),new u(28,48.950024065),new u(29,49.952187008),new u(30,50.9536027),new u(31,51.95665),new u(32,52.95817),new u(33,53.963),new u(34,54.9694),new u(35,55.97266),new u(36,56.97704),new u(37,57.98307),new u(38,58.988041)]),B(d(Mt,1),Vt,3,0,[new u(16,38.00977),new u(17,39.001323),new u(18,39.990498907),new u(19,40.983131),new u(20,41.973031622),new u(21,42.968523342),new u(22,43.959690235),new u(23,44.958124349),new u(24,45.952629491),new u(25,46.951763792),new u(26,47.947947053),new u(27,48.947870789),new u(28,49.944792069),new u(29,50.946616017),new u(30,51.946898175),new u(31,52.949731709),new u(32,53.95087),new u(33,54.95512),new u(34,55.95799),new u(35,56.9643),new u(36,57.96611),new u(37,58.97196),new u(38,59.97564),new u(39,60.982018)]),B(d(Mt,1),Vt,3,0,[new u(17,40.01109),new u(18,40.99974),new u(19,41.99123),new u(20,42.98065),new u(21,43.9744),new u(22,44.965782286),new u(23,45.960199491),new u(24,46.954906918),new u(25,47.95225448),new u(26,48.948516914),new u(27,49.947162792),new u(28,50.943963675),new u(29,51.944779658),new u(30,52.944342517),new u(31,53.946444381),new u(32,54.947238194),new u(33,55.95036),new u(34,56.95236),new u(35,57.95665),new u(36,58.9593),new u(37,59.9645),new u(38,60.96741),new u(39,61.97314),new u(40,62.97675)]),B(d(Mt,1),Vt,3,0,[new u(18,42.00643),new u(19,42.997707),new u(20,43.98547),new u(21,44.97916),new u(22,45.968361649),new u(23,46.962906512),new u(24,47.954035861),new u(25,48.951341135),new u(26,49.946049607),new u(27,50.944771767),new u(28,51.940511904),new u(29,52.940653781),new u(30,53.938884921),new u(31,54.940844164),new u(32,55.940645238),new u(33,56.9437538),new u(34,57.94425),new u(35,58.94863),new u(36,59.94973),new u(37,60.95409),new u(38,61.9558),new u(39,62.96186),new u(40,63.9642),new u(41,64.97037)]),B(d(Mt,1),Vt,3,0,[new u(19,44.00687),new u(20,44.99451),new u(21,45.98672),new u(22,46.9761),new u(23,47.96887),new u(24,48.959623415),new u(25,49.95424396),new u(26,50.948215487),new u(27,51.945570079),new u(28,52.941294702),new u(29,53.940363247),new u(30,54.938049636),new u(31,55.938909366),new u(32,56.938287458),new u(33,57.939986451),new u(34,58.940447166),new u(35,59.943193998),new u(36,60.94446),new u(37,61.94797),new u(38,62.94981),new u(39,63.95373),new u(40,64.9561),new u(41,65.96082),new u(42,66.96382)]),B(d(Mt,1),Vt,3,0,[new u(19,45.01456),new u(20,46.00081),new u(21,46.99289),new u(22,47.98056),new u(23,48.97361),new u(24,49.962993316),new u(25,50.956824936),new u(26,51.948116526),new u(27,52.945312282),new u(28,53.939614836),new u(29,54.938298029),new u(30,55.934942133),new u(31,56.935398707),new u(32,57.933280458),new u(33,58.934880493),new u(34,59.934076943),new u(35,60.936749461),new u(36,61.936770495),new u(37,62.940118442),new u(38,63.94087),new u(39,64.94494),new u(40,65.94598),new u(41,66.95),new u(42,67.95251),new u(43,68.9577)]),B(d(Mt,1),Vt,3,0,[new u(21,48.00176),new u(22,48.98972),new u(23,49.98154),new u(24,50.97072),new u(25,51.96359),new u(26,52.954224985),new u(27,53.948464147),new u(28,54.942003149),new u(29,55.939843937),new u(30,56.936296235),new u(31,57.935757571),new u(32,58.933200194),new u(33,59.933822196),new u(34,60.932479381),new u(35,61.934054212),new u(36,62.933615218),new u(37,63.935813523),new u(38,64.936484581),new u(39,65.939825412),new u(40,66.94061),new u(41,67.94436),new u(42,68.9452),new u(43,69.94981),new u(44,70.95173),new u(45,71.95641)]),B(d(Mt,1),Vt,3,0,[new u(22,49.99593),new u(23,50.98772),new u(24,51.97568),new u(25,52.96846),new u(26,53.957910508),new u(27,54.951336329),new u(28,55.942136339),new u(29,56.939800489),new u(30,57.935347922),new u(31,58.934351553),new u(32,59.930790633),new u(33,60.931060442),new u(34,61.928348763),new u(35,62.929672948),new u(36,63.927969574),new u(37,64.930088013),new u(38,65.929115232),new u(39,66.931569638),new u(40,67.931844932),new u(41,68.935181837),new u(42,69.93614),new u(43,70.94),new u(44,71.9413),new u(45,72.94608),new u(46,73.94791),new u(47,74.95297),new u(48,75.95533),new u(49,76.96083),new u(50,77.9638)]),B(d(Mt,1),Vt,3,0,[new u(23,51.99718),new u(24,52.98555),new u(25,53.97671),new u(26,54.96605),new u(27,55.95856),new u(28,56.949215695),new u(29,57.944540734),new u(30,58.939504114),new u(31,59.937368123),new u(32,60.933462181),new u(33,61.932587299),new u(34,62.929601079),new u(35,63.929767865),new u(36,64.927793707),new u(37,65.928873041),new u(38,66.927750294),new u(39,67.929637875),new u(40,68.929425281),new u(41,69.932409287),new u(42,70.932619818),new u(43,71.93552),new u(44,72.93649),new u(45,73.9402),new u(46,74.9417),new u(47,75.94599),new u(48,76.94795),new u(49,77.95281),new u(50,78.95528),new u(51,79.96189)]),B(d(Mt,1),Vt,3,0,[new u(24,53.99295),new u(25,54.98398),new u(26,55.97238),new u(27,56.96491),new u(28,57.954596465),new u(29,58.949267074),new u(30,59.941832031),new u(31,60.939513907),new u(32,61.934334132),new u(33,62.933215563),new u(34,63.929146578),new u(35,64.929245079),new u(36,65.926036763),new u(37,66.927130859),new u(38,67.924847566),new u(39,68.926553538),new u(40,69.92532487),new u(41,70.927727195),new u(42,71.926861122),new u(43,72.929779469),new u(44,73.929458261),new u(45,74.932937379),new u(46,75.933394207),new u(47,76.937085857),new u(48,77.938569576),new u(49,78.942095175),new u(50,79.944414722),new u(51,80.95048),new u(52,81.95484)]),B(d(Mt,1),Vt,3,0,[new u(25,55.99491),new u(26,56.98293),new u(27,57.97425),new u(28,58.96337),new u(29,59.95706),new u(30,60.94917),new u(31,61.944179608),new u(32,62.939141527),new u(33,63.936838307),new u(34,64.932739322),new u(35,65.931592355),new u(36,66.928204915),new u(37,67.927983497),new u(38,68.925580912),new u(39,69.926027741),new u(40,70.92470501),new u(41,71.92636935),new u(42,72.925169832),new u(43,73.926940999),new u(44,74.926500645),new u(45,75.928928262),new u(46,76.929281189),new u(47,77.93165595),new u(48,78.932916371),new u(49,79.936588154),new u(50,80.937752955),new u(51,81.94316),new u(52,82.94687),new u(53,83.95234)]),B(d(Mt,1),Vt,3,0,[new u(26,57.99101),new u(27,58.98175),new u(28,59.97019),new u(29,60.96379),new u(30,61.95465),new u(31,62.94964),new u(32,63.941572638),new u(33,64.939440762),new u(34,65.933846798),new u(35,66.932738415),new u(36,67.928097266),new u(37,68.927972002),new u(38,69.924250365),new u(39,70.924953991),new u(40,71.922076184),new u(41,72.923459361),new u(42,73.921178213),new u(43,74.922859494),new u(44,75.921402716),new u(45,76.923548462),new u(46,77.922852886),new u(47,78.92540156),new u(48,79.925444764),new u(49,80.928821065),new u(50,81.929550326),new u(51,82.93451),new u(52,83.93731),new u(53,84.94269),new u(54,85.94627)]),B(d(Mt,1),Vt,3,0,[new u(27,59.99313),new u(28,60.98062),new u(29,61.9732),new u(30,62.96369),new u(31,63.957572),new u(32,64.949484),new u(33,65.944099147),new u(34,66.939190417),new u(35,67.936792976),new u(36,68.932280154),new u(37,69.930927811),new u(38,70.927114724),new u(39,71.926752647),new u(40,72.923825288),new u(41,73.923929076),new u(42,74.921596417),new u(43,75.922393933),new u(44,76.920647703),new u(45,77.921828577),new u(46,78.920948498),new u(47,79.922578162),new u(48,80.922132884),new u(49,81.924504668),new u(50,82.924980625),new u(51,83.92906),new u(52,84.93181),new u(53,85.93623),new u(54,86.93958),new u(55,87.94456),new u(56,88.94923)]),B(d(Mt,1),Vt,3,0,[new u(31,64.96466),new u(32,65.95521),new u(33,66.95009),new u(34,67.94187),new u(35,68.939562155),new u(36,69.933504),new u(37,70.931868378),new u(38,71.927112313),new u(39,72.9267668),new u(40,73.922476561),new u(41,74.922523571),new u(42,75.919214107),new u(43,76.91991461),new u(44,77.917309522),new u(45,78.918499802),new u(46,79.916521828),new u(47,80.917992931),new u(48,81.9167),new u(49,82.919119072),new u(50,83.918464523),new u(51,84.922244678),new u(52,85.924271165),new u(53,86.928520749),new u(54,87.931423982),new u(55,88.93602),new u(56,89.93942),new u(57,90.94537),new u(58,91.94933)]),B(d(Mt,1),Vt,3,0,[new u(32,66.96479),new u(33,67.958248),new u(34,68.950178),new u(35,69.944208),new u(36,70.939246),new u(37,71.936496876),new u(38,72.931794889),new u(39,73.929891152),new u(40,74.92577641),new u(41,75.924541974),new u(42,76.921380123),new u(43,77.92114613),new u(44,78.918337647),new u(45,79.918529952),new u(46,80.91629106),new u(47,81.916804666),new u(48,82.915180219),new u(49,83.916503685),new u(50,84.915608027),new u(51,85.918797162),new u(52,86.920710713),new u(53,87.924065908),new u(54,88.92638726),new u(55,89.930634988),new u(56,90.9339653),new u(57,91.939255258),new u(58,92.9431),new u(59,93.94868)]),B(d(Mt,1),Vt,3,0,[new u(33,68.96532),new u(34,69.95601),new u(35,70.95051),new u(36,71.94190754),new u(37,72.938931115),new u(38,73.933258225),new u(39,74.931033794),new u(40,75.925948304),new u(41,76.92466788),new u(42,77.920386271),new u(43,78.920082992),new u(44,79.91637804),new u(45,80.916592419),new u(46,81.913484601),new u(47,82.914135952),new u(48,83.911506627),new u(49,84.912526954),new u(50,85.910610313),new u(51,86.913354251),new u(52,87.914446951),new u(53,88.917632505),new u(54,89.919523803),new u(55,90.923442418),new u(56,91.926152752),new u(57,92.931265246),new u(58,93.934362),new u(59,94.93984),new u(60,95.94307),new u(61,96.94856)]),B(d(Mt,1),Vt,3,0,[new u(34,70.96532),new u(35,71.95908),new u(36,72.950366),new u(37,73.944470376),new u(38,74.938569199),new u(39,75.935071448),new u(40,76.930406599),new u(41,77.928141485),new u(42,78.923996719),new u(43,79.922519322),new u(44,80.918994165),new u(45,81.918207691),new u(46,82.915111951),new u(47,83.914384676),new u(48,84.911789341),new u(49,85.91116708),new u(50,86.909183465),new u(51,87.911318556),new u(52,88.912279939),new u(53,89.914808941),new u(54,90.91653416),new u(55,91.919725442),new u(56,92.922032765),new u(57,93.926407326),new u(58,94.92931926),new u(59,95.934283962),new u(60,96.937342863),new u(61,97.941703557),new u(62,98.945420616),new u(63,99.94987),new u(64,100.953195994),new u(65,101.95921)]),B(d(Mt,1),Vt,3,0,[new u(35,72.96597),new u(36,73.95631),new u(37,74.94992),new u(38,75.94161),new u(39,76.937761511),new u(40,77.932179362),new u(41,78.929707076),new u(42,79.924524588),new u(43,80.923213095),new u(44,81.918401258),new u(45,82.917555029),new u(46,83.913424778),new u(47,84.912932689),new u(48,85.909262351),new u(49,86.908879316),new u(50,87.905614339),new u(51,88.907452906),new u(52,89.907737596),new u(53,90.910209845),new u(54,91.911029895),new u(55,92.91402241),new u(56,93.915359856),new u(57,94.919358213),new u(58,95.921680473),new u(59,96.926148757),new u(60,97.928471177),new u(61,98.933315038),new u(62,99.935351729),new u(63,100.940517434),new u(64,101.943018795),new u(65,102.94895),new u(66,103.95233)]),B(d(Mt,1),Vt,3,0,[new u(38,76.94962),new u(39,77.9435),new u(40,78.937350712),new u(41,79.931982402),new u(42,80.929128719),new u(43,81.926792071),new u(44,82.922352572),new u(45,83.920387768),new u(46,84.916427076),new u(47,85.914887724),new u(48,86.910877833),new u(49,87.909503361),new u(50,88.905847902),new u(51,89.907151443),new u(52,90.907303415),new u(53,91.908946832),new u(54,92.909581582),new u(55,93.911594008),new u(56,94.912823709),new u(57,95.915897787),new u(58,96.918131017),new u(59,97.922219525),new u(60,98.924634736),new u(61,99.927756402),new u(62,100.930313395),new u(63,101.933555501),new u(64,102.93694),new u(65,103.94145),new u(66,104.94509),new u(67,105.95022)]),B(d(Mt,1),Vt,3,0,[new u(39,78.94916),new u(40,79.94055),new u(41,80.936815296),new u(42,81.931086249),new u(43,82.92865213),new u(44,83.92325),new u(45,84.92146522),new u(46,85.916472851),new u(47,86.914816578),new u(48,87.910226179),new u(49,88.908888916),new u(50,89.904703679),new u(51,90.905644968),new u(52,91.905040106),new u(53,92.906475627),new u(54,93.906315765),new u(55,94.908042739),new u(56,95.908275675),new u(57,96.910950716),new u(58,97.912746366),new u(59,98.916511084),new u(60,99.917761704),new u(61,100.921139958),new u(62,101.922981089),new u(63,102.926597062),new u(64,103.92878),new u(65,104.93305),new u(66,105.93591),new u(67,106.94086),new u(68,107.94428)]),B(d(Mt,1),Vt,3,0,[new u(40,80.94905),new u(41,81.94313),new u(42,82.936703713),new u(43,83.93357),new u(44,84.927906486),new u(45,85.925037588),new u(46,86.920361435),new u(47,87.91833144),new u(48,88.913495503),new u(49,89.911264109),new u(50,90.906990538),new u(51,91.907193214),new u(52,92.906377543),new u(53,93.907283457),new u(54,94.906835178),new u(55,95.908100076),new u(56,96.908097144),new u(57,97.91033069),new u(58,98.911617864),new u(59,99.914181434),new u(60,100.915251567),new u(61,101.918037417),new u(62,102.919141297),new u(63,103.922459464),new u(64,104.923934023),new u(65,105.92819),new u(66,106.93031),new u(67,107.93501),new u(68,108.93763),new u(69,109.94268)]),B(d(Mt,1),Vt,3,0,[new u(41,82.94874),new u(42,83.94009),new u(43,84.93659),new u(44,85.930695167),new u(45,86.92732683),new u(46,87.921952728),new u(47,88.919480562),new u(48,89.913936161),new u(49,90.911750754),new u(50,91.90681048),new u(51,92.906812213),new u(52,93.905087578),new u(53,94.905841487),new u(54,95.904678904),new u(55,96.906021033),new u(56,97.905407846),new u(57,98.907711598),new u(58,99.907477149),new u(59,100.910346543),new u(60,101.910297162),new u(61,102.913204596),new u(62,103.913758387),new u(63,104.916972087),new u(64,105.918134284),new u(65,106.921694724),new u(66,107.923973837),new u(67,108.92781),new u(68,109.92973),new u(69,110.93451),new u(70,111.93684),new u(71,112.94203)]),B(d(Mt,1),Vt,3,0,[new u(42,84.94894),new u(43,85.94288),new u(44,86.93653),new u(45,87.93283),new u(46,88.92754288),new u(47,89.92355583),new u(48,90.9184282),new u(49,91.915259655),new u(50,92.910248473),new u(51,93.909656309),new u(52,94.907656454),new u(53,95.907870803),new u(54,96.906364843),new u(55,97.907215692),new u(56,98.906254554),new u(57,99.907657594),new u(58,100.90731438),new u(59,101.909212938),new u(60,102.909178805),new u(61,103.911444898),new u(62,104.911658043),new u(63,105.914355408),new u(64,106.915081691),new u(65,107.918479973),new u(66,108.919980998),new u(67,109.92339),new u(68,110.92505),new u(69,111.92924),new u(70,112.93133),new u(71,113.93588),new u(72,114.93828)]),B(d(Mt,1),Vt,3,0,[new u(43,86.94918),new u(44,87.94042),new u(45,88.93611),new u(46,89.92978),new u(47,90.926377434),new u(48,91.92012),new u(49,92.917051523),new u(50,93.911359569),new u(51,94.910412729),new u(52,95.907597681),new u(53,96.907554546),new u(54,97.905287111),new u(55,98.905939307),new u(56,99.904219664),new u(57,100.905582219),new u(58,101.904349503),new u(59,102.906323677),new u(60,103.905430145),new u(61,104.907750341),new u(62,105.907326913),new u(63,106.909907207),new u(64,107.910192211),new u(65,108.913201565),new u(66,109.913966185),new u(67,110.91756),new u(68,111.918821673),new u(69,112.92254),new u(70,113.923891981),new u(71,114.92831),new u(72,115.93016),new u(73,116.93479),new u(74,117.93703)]),B(d(Mt,1),Vt,3,0,[new u(44,88.94938),new u(45,89.94287),new u(46,90.93655),new u(47,91.93198),new u(48,92.92574),new u(49,93.921698),new u(50,94.915898541),new u(51,95.914518212),new u(52,96.911336643),new u(53,97.910716431),new u(54,98.908132101),new u(55,99.90811663),new u(56,100.906163526),new u(57,101.906842845),new u(58,102.905504182),new u(59,103.906655315),new u(60,104.905692444),new u(61,105.907284615),new u(62,106.90675054),new u(63,107.908730768),new u(64,108.908735621),new u(65,109.910949525),new u(66,110.91166),new u(67,111.913969253),new u(68,112.91542),new u(69,113.91734336),new u(70,114.920124676),new u(71,115.922746643),new u(72,116.92535),new u(73,117.92943),new u(74,118.93136),new u(75,119.93578),new u(76,120.93808)]),B(d(Mt,1),Vt,3,0,[new u(45,90.94948),new u(46,91.94042),new u(47,92.93591),new u(48,93.92877),new u(49,94.92469),new u(50,95.91822194),new u(51,96.916478921),new u(52,97.912720751),new u(53,98.911767757),new u(54,99.908504596),new u(55,100.908289144),new u(56,101.905607716),new u(57,102.906087204),new u(58,103.904034912),new u(59,104.905084046),new u(60,105.903483087),new u(61,106.905128453),new u(62,107.903894451),new u(63,108.905953535),new u(64,109.905152385),new u(65,110.907643952),new u(66,111.907313277),new u(67,112.910151346),new u(68,113.910365322),new u(69,114.91368341),new u(70,115.914158288),new u(71,116.91784),new u(72,117.918983915),new u(73,118.92268),new u(74,119.92403),new u(75,120.92818),new u(76,121.9298),new u(77,122.93426)]),B(d(Mt,1),Vt,3,0,[new u(47,93.94278),new u(48,94.93548),new u(49,95.93068),new u(50,96.924),new u(51,97.921759995),new u(52,98.917597103),new u(53,99.916069387),new u(54,100.912802135),new u(55,101.911999996),new u(56,102.908972453),new u(57,103.908628228),new u(58,104.906528234),new u(59,105.906666431),new u(60,106.90509302),new u(61,107.905953705),new u(62,108.904755514),new u(63,109.90611046),new u(64,110.905294679),new u(65,111.907004132),new u(66,112.906565708),new u(67,113.908807907),new u(68,114.908762282),new u(69,115.911359558),new u(70,116.911684187),new u(71,117.914582383),new u(72,118.915666045),new u(73,119.918788609),new u(74,120.919851074),new u(75,121.92332),new u(76,122.9249),new u(77,123.92853),new u(78,124.93054),new u(79,125.9345),new u(80,126.93688)]),B(d(Mt,1),Vt,3,0,[new u(48,95.93977),new u(49,96.93494),new u(50,97.927579),new u(51,98.92501),new u(52,99.920230232),new u(53,100.918681442),new u(54,101.914777255),new u(55,102.913418952),new u(56,103.909848091),new u(57,104.909467818),new u(58,105.906458007),new u(59,106.906614232),new u(60,107.904183403),new u(61,108.904985569),new u(62,109.903005578),new u(63,110.904181628),new u(64,111.902757226),new u(65,112.904400947),new u(66,113.903358121),new u(67,114.905430553),new u(68,115.904755434),new u(69,116.907218242),new u(70,117.906914144),new u(71,118.909922582),new u(72,119.909851352),new u(73,120.91298039),new u(74,121.9135),new u(75,122.917003675),new u(76,123.917648302),new u(77,124.92124717),new u(78,125.922353996),new u(79,126.926434822),new u(80,127.927760617),new u(81,128.93226),new u(82,129.93398)]),B(d(Mt,1),Vt,3,0,[new u(49,97.94224),new u(50,98.93461),new u(51,99.931149033),new u(52,100.92656),new u(53,101.924707541),new u(54,102.919913896),new u(55,103.918338416),new u(56,104.914673434),new u(57,105.913461134),new u(58,106.910292195),new u(59,107.909719683),new u(60,108.907154078),new u(61,109.907168783),new u(62,110.905110677),new u(63,111.905533338),new u(64,112.904061223),new u(65,113.904916758),new u(66,114.903878328),new u(67,115.905259995),new u(68,116.904515731),new u(69,117.906354623),new u(70,118.905846334),new u(71,119.907961505),new u(72,120.907848847),new u(73,121.910277103),new u(74,122.910438951),new u(75,123.913175916),new u(76,124.913601387),new u(77,125.916464532),new u(78,126.917344048),new u(79,127.920170658),new u(80,128.921657958),new u(81,129.924854941),new u(82,130.926767408),new u(83,131.932919005),new u(84,132.93834),new u(85,133.94466)]),B(d(Mt,1),Vt,3,0,[new u(50,99.938954),new u(51,100.93606),new u(52,101.93049),new u(53,102.92813),new u(54,103.923185469),new u(55,104.921390409),new u(56,105.916880472),new u(57,106.915666702),new u(58,107.911965339),new u(59,108.911286879),new u(60,109.907852688),new u(61,110.907735404),new u(62,111.90482081),new u(63,112.905173373),new u(64,113.902781816),new u(65,114.903345973),new u(66,115.901744149),new u(67,116.902953765),new u(68,117.901606328),new u(69,118.90330888),new u(70,119.902196571),new u(71,120.904236867),new u(72,121.903440138),new u(73,122.905721901),new u(74,123.90527463),new u(75,124.907784924),new u(76,125.907653953),new u(77,126.91035098),new u(78,127.910534953),new u(79,128.913439976),new u(80,129.913852185),new u(81,130.916919144),new u(82,131.917744455),new u(83,132.923814085),new u(84,133.928463576),new u(85,134.93473),new u(86,135.93934),new u(87,136.94579)]),B(d(Mt,1),Vt,3,0,[new u(52,102.94012),new u(53,103.936287),new u(54,104.931528593),new u(55,105.928183134),new u(56,106.92415),new u(57,107.92216),new u(58,108.918136092),new u(59,109.917533911),new u(60,110.912534147),new u(61,111.91239464),new u(62,112.909377941),new u(63,113.909095876),new u(64,114.906598812),new u(65,115.906797235),new u(66,116.90483959),new u(67,117.905531885),new u(68,118.90394646),new u(69,119.905074315),new u(70,120.903818044),new u(71,121.905175415),new u(72,122.904215696),new u(73,123.905937525),new u(74,124.905247804),new u(75,125.907248153),new u(76,126.906914564),new u(77,127.90916733),new u(78,128.909150092),new u(79,129.911546459),new u(80,130.911946487),new u(81,131.914413247),new u(82,132.915236466),new u(83,133.920551554),new u(84,134.925167962),new u(85,135.93066),new u(86,136.93531),new u(87,137.94096),new u(88,138.94571)]),B(d(Mt,1),Vt,3,0,[new u(54,105.937702),new u(55,106.935036),new u(56,107.929486838),new u(57,108.927456483),new u(58,109.922407164),new u(59,110.921120589),new u(60,111.917061617),new u(61,112.915452551),new u(62,113.912498025),new u(63,114.911578627),new u(64,115.908420253),new u(65,116.90863418),new u(66,117.905825187),new u(67,118.90640811),new u(68,119.904019891),new u(69,120.904929815),new u(70,121.903047064),new u(71,122.904272951),new u(72,123.902819466),new u(73,124.904424718),new u(74,125.903305543),new u(75,126.90521729),new u(76,127.904461383),new u(77,128.906595593),new u(78,129.906222753),new u(79,130.90852188),new u(80,131.908523782),new u(81,132.910939068),new u(82,133.911540546),new u(83,134.916450782),new u(84,135.920103155),new u(85,136.925324769),new u(86,137.92922),new u(87,138.93473),new u(88,139.9387),new u(89,140.94439),new u(90,141.9485)]),B(d(Mt,1),Vt,3,0,[new u(55,107.943291),new u(56,108.938191658),new u(57,109.934634181),new u(58,110.930276),new u(59,111.92797),new u(60,112.923644245),new u(61,113.92185),new u(62,114.918272),new u(63,115.916735014),new u(64,116.913647692),new u(65,117.91337523),new u(66,118.910180837),new u(67,119.910047843),new u(68,120.907366063),new u(69,121.907592451),new u(70,122.905597944),new u(71,123.906211423),new u(72,124.90462415),new u(73,125.905619387),new u(74,126.90446842),new u(75,127.905805254),new u(76,128.904987487),new u(77,129.906674018),new u(78,130.906124168),new u(79,131.907994525),new u(80,132.907806465),new u(81,133.909876552),new u(82,134.91005031),new u(83,135.914655105),new u(84,136.917872653),new u(85,137.922383666),new u(86,138.926093402),new u(87,139.93121),new u(88,140.93483),new u(89,141.94018),new u(90,142.94407),new u(91,143.94961)]),B(d(Mt,1),Vt,3,0,[new u(56,109.944476),new u(57,110.941632),new u(58,111.93566535),new u(59,112.933382836),new u(60,113.928145),new u(61,114.926979032),new u(62,115.921394197),new u(63,116.920564355),new u(64,117.91657092),new u(65,118.915554295),new u(66,119.91215199),new u(67,120.911386497),new u(68,121.908548396),new u(69,122.908470748),new u(70,123.905895774),new u(71,124.906398236),new u(72,125.904268868),new u(73,126.905179581),new u(74,127.903530436),new u(75,128.904779458),new u(76,129.903507903),new u(77,130.90508192),new u(78,131.904154457),new u(79,132.90590566),new u(80,133.905394504),new u(81,134.907207499),new u(82,135.907219526),new u(83,136.911562939),new u(84,137.913988549),new u(85,138.918786859),new u(86,139.921635665),new u(87,140.926646282),new u(88,141.929702981),new u(89,142.93489),new u(90,143.93823),new u(91,144.94367),new u(92,145.9473),new u(93,146.95301)]),B(d(Mt,1),Vt,3,0,[new u(57,111.950331),new u(58,112.944535512),new u(59,113.940841319),new u(60,114.935939),new u(61,115.932914152),new u(62,116.928639484),new u(63,117.926554883),new u(64,118.922370879),new u(65,119.920678219),new u(66,120.917183637),new u(67,121.916121946),new u(68,122.912990168),new u(69,123.912245731),new u(70,124.909724871),new u(71,125.909447953),new u(72,126.9074176),new u(73,127.907747919),new u(74,128.906063369),new u(75,129.906706163),new u(76,130.905460232),new u(77,131.906429799),new u(78,132.90544687),new u(79,133.906713419),new u(80,134.905971903),new u(81,135.907305741),new u(82,136.907083505),new u(83,137.911010537),new u(84,138.913357921),new u(85,139.917277075),new u(86,140.920043984),new u(87,141.924292317),new u(88,142.927330292),new u(89,143.932027373),new u(90,144.935388226),new u(91,145.940162028),new u(92,146.943864435),new u(93,147.948899539),new u(94,148.95272),new u(95,149.95797),new u(96,150.962)]),B(d(Mt,1),Vt,3,0,[new u(58,113.950941),new u(59,114.94771),new u(60,115.94168),new u(61,116.937700229),new u(62,117.93344),new u(63,118.931051927),new u(64,119.926045941),new u(65,120.924485908),new u(66,121.92026),new u(67,122.91885),new u(68,123.915088437),new u(69,124.914620234),new u(70,125.911244146),new u(71,126.911121328),new u(72,127.90830887),new u(73,128.908673749),new u(74,129.906310478),new u(75,130.906930798),new u(76,131.905056152),new u(77,132.906002368),new u(78,133.904503347),new u(79,134.905682749),new u(80,135.904570109),new u(81,136.905821414),new u(82,137.905241273),new u(83,138.908835384),new u(84,139.910599485),new u(85,140.914406439),new u(86,141.916448175),new u(87,142.920617184),new u(88,143.922940468),new u(89,144.926923807),new u(90,145.930106645),new u(91,146.933992519),new u(92,147.937682377),new u(93,148.94246),new u(94,149.94562),new u(95,150.9507),new u(96,151.95416),new u(97,152.95961)]),B(d(Mt,1),Vt,3,0,[new u(60,116.95001),new u(61,117.94657),new u(62,118.94099),new u(63,119.93807),new u(64,120.93301),new u(65,121.93071),new u(66,122.92624),new u(67,123.92453),new u(68,124.92067),new u(69,125.91937),new u(70,126.91616),new u(71,127.91544794),new u(72,128.912667334),new u(73,129.91232),new u(74,130.910108489),new u(75,131.910110399),new u(76,132.908396372),new u(77,133.908489607),new u(78,134.906971003),new u(79,135.907651181),new u(80,136.906465656),new u(81,137.907106826),new u(82,138.90634816),new u(83,139.909472552),new u(84,140.910957016),new u(85,141.914074489),new u(86,142.916058646),new u(87,143.919591666),new u(88,144.92163837),new u(89,145.925700146),new u(90,146.927819639),new u(91,147.932191197),new u(92,148.93437),new u(93,149.93857),new u(94,150.94156),new u(95,151.94611),new u(96,152.94945),new u(97,153.9544),new u(98,154.95813)]),B(d(Mt,1),Vt,3,0,[new u(61,118.95276),new u(62,119.94664),new u(63,120.94367),new u(64,121.93801),new u(65,122.93551),new u(66,123.93052),new u(67,124.92854),new u(68,125.9241),new u(69,126.92275),new u(70,127.91887),new u(71,128.918679183),new u(72,129.914339361),new u(73,130.914424137),new u(74,131.91149),new u(75,132.91155),new u(76,133.909026379),new u(77,134.909145555),new u(78,135.907143574),new u(79,136.907777634),new u(80,137.905985574),new u(81,138.906646605),new u(82,139.905434035),new u(83,140.908271103),new u(84,141.909239733),new u(85,142.912381158),new u(86,143.913642686),new u(87,144.917227871),new u(88,145.918689722),new u(89,146.922510962),new u(90,147.924394738),new u(91,148.928289207),new u(92,149.930226399),new u(93,150.93404),new u(94,151.93638),new u(95,152.94058),new u(96,153.94332),new u(97,154.94804),new u(98,155.95126),new u(99,156.95634)]),B(d(Mt,1),Vt,3,0,[new u(62,120.955364),new u(63,121.95165),new u(64,122.94596),new u(65,123.94296),new u(66,124.93783),new u(67,125.93531),new u(68,126.93083),new u(69,127.9288),new u(70,128.92486),new u(71,129.92338),new u(72,130.920060245),new u(73,131.91912),new u(74,132.9162),new u(75,133.915672),new u(76,134.91313914),new u(77,135.912646935),new u(78,136.910678351),new u(79,137.910748891),new u(80,138.908932181),new u(81,139.909071204),new u(82,140.907647726),new u(83,141.910039865),new u(84,142.910812233),new u(85,143.913300595),new u(86,144.914506897),new u(87,145.917588016),new u(88,146.918979001),new u(89,147.922183237),new u(90,148.923791056),new u(91,149.926995031),new u(92,150.928227869),new u(93,151.9316),new u(94,152.93365),new u(95,153.93739),new u(96,154.93999),new u(97,155.94412),new u(98,156.94717),new u(99,157.95178),new u(100,158.95523)]),B(d(Mt,1),Vt,3,0,[new u(66,125.94307),new u(67,126.9405),new u(68,127.93539),new u(69,128.932385),new u(70,129.92878),new u(71,130.927102697),new u(72,131.92312),new u(73,132.92221),new u(74,133.918645),new u(75,134.91824),new u(76,135.915020542),new u(77,136.91463973),new u(78,137.91291745),new u(79,138.91192415),new u(80,139.909309824),new u(81,140.9096048),new u(82,141.907718643),new u(83,142.909809626),new u(84,143.910082629),new u(85,144.912568847),new u(86,145.913112139),new u(87,146.916095794),new u(88,147.916888516),new u(89,148.92014419),new u(90,149.920886563),new u(91,150.923824739),new u(92,151.924682428),new u(93,152.927694534),new u(94,153.929483295),new u(95,154.932629551),new u(96,155.9352),new u(97,156.93927),new u(98,157.94187),new u(99,158.94639),new u(100,159.94939),new u(101,160.95433)]),B(d(Mt,1),Vt,3,0,[new u(67,127.94826),new u(68,128.94316),new u(69,129.94045),new u(70,130.9358),new u(71,131.93375),new u(72,132.92972),new u(73,133.92849),new u(74,134.924617),new u(75,135.923447865),new u(76,136.920713),new u(77,137.920432261),new u(78,138.916759814),new u(79,139.915801649),new u(80,140.913606636),new u(81,141.912950738),new u(82,142.910927571),new u(83,143.912585768),new u(84,144.912743879),new u(85,145.914692165),new u(86,146.915133898),new u(87,147.917467786),new u(88,148.918329195),new u(89,149.920979477),new u(90,150.921202693),new u(91,151.923490557),new u(92,152.924113189),new u(93,153.926547019),new u(94,154.928097047),new u(95,155.931060357),new u(96,156.9332),new u(97,157.93669),new u(98,158.93913),new u(99,159.94299),new u(100,160.94586),new u(101,161.95029),new u(102,162.95352)]),B(d(Mt,1),Vt,3,0,[new u(68,129.94863),new u(69,130.94589),new u(70,131.94082),new u(71,132.93873),new u(72,133.93402),new u(73,134.93235),new u(74,135.9283),new u(75,136.927046709),new u(76,137.92354),new u(77,138.922302),new u(78,139.918991),new u(79,140.918468512),new u(80,141.915193274),new u(81,142.914623555),new u(82,143.91199473),new u(83,144.913405611),new u(84,145.91303676),new u(85,146.914893275),new u(86,147.914817914),new u(87,148.917179521),new u(88,149.917271454),new u(89,150.919928351),new u(90,151.919728244),new u(91,152.922093907),new u(92,153.922205303),new u(93,154.92463594),new u(94,155.925526236),new u(95,156.928354506),new u(96,157.929987938),new u(97,158.9332),new u(98,159.93514),new u(99,160.93883),new u(100,161.94122),new u(101,162.94536),new u(102,163.94828),new u(103,164.95298)]),B(d(Mt,1),Vt,3,0,[new u(69,131.95416),new u(70,132.9489),new u(71,133.94632),new u(72,134.94172),new u(73,135.9395),new u(74,136.93521),new u(75,137.93345),new u(76,138.92882915),new u(77,139.928083921),new u(78,140.924885867),new u(79,141.923400033),new u(80,142.920286634),new u(81,143.918774116),new u(82,144.916261285),new u(83,145.917199714),new u(84,146.916741206),new u(85,147.918153775),new u(86,148.917925922),new u(87,149.919698294),new u(88,150.919846022),new u(89,151.921740399),new u(90,152.921226219),new u(91,153.922975386),new u(92,154.922889429),new u(93,155.924750855),new u(94,156.925419435),new u(95,157.927841923),new u(96,158.9290845),new u(97,159.931460406),new u(98,160.93368),new u(99,161.93704),new u(100,162.93921),new u(101,163.94299),new u(102,164.94572),new u(103,165.94997),new u(104,166.95305)]),B(d(Mt,1),Vt,3,0,[new u(72,135.94707),new u(73,136.94465),new u(74,137.93997),new u(75,138.93808),new u(76,139.933236934),new u(77,140.93221),new u(78,141.927908919),new u(79,142.926738636),new u(80,143.923390357),new u(81,144.921687498),new u(82,145.918305344),new u(83,146.919089446),new u(84,147.918109771),new u(85,148.919336427),new u(86,149.918655455),new u(87,150.920344273),new u(88,151.919787882),new u(89,152.921746283),new u(90,153.920862271),new u(91,154.922618801),new u(92,155.922119552),new u(93,156.923956686),new u(94,157.924100533),new u(95,158.926385075),new u(96,159.927050616),new u(97,160.929665688),new u(98,161.930981211),new u(99,162.93399),new u(100,163.93586),new u(101,164.93938),new u(102,165.9416),new u(103,166.94557),new u(104,167.94836),new u(105,168.95287)]),B(d(Mt,1),Vt,3,0,[new u(73,137.95287),new u(74,138.94803),new u(75,139.945367985),new u(76,140.94116),new u(77,141.939073781),new u(78,142.93475),new u(79,143.93253),new u(80,144.92888),new u(81,145.927180629),new u(82,146.924037176),new u(83,147.924298636),new u(84,148.92324163),new u(85,149.923654158),new u(86,150.923098169),new u(87,151.924071324),new u(88,152.923430858),new u(89,153.924686236),new u(90,154.923500411),new u(91,155.924743749),new u(92,156.924021155),new u(93,157.92541026),new u(94,158.925343135),new u(95,159.927164021),new u(96,160.927566289),new u(97,161.929484803),new u(98,162.930643942),new u(99,163.933347253),new u(100,164.93488),new u(101,165.93805),new u(102,166.94005),new u(103,167.94364),new u(104,168.94622),new u(105,169.95025),new u(106,170.9533)]),B(d(Mt,1),Vt,3,0,[new u(74,139.95379),new u(75,140.95119),new u(76,141.946695946),new u(77,142.94383),new u(78,143.93907),new u(79,144.936717),new u(80,145.932720118),new u(81,146.930878496),new u(82,147.927177882),new u(83,148.927333981),new u(84,149.925579728),new u(85,150.92617963),new u(86,151.924713874),new u(87,152.925760865),new u(88,153.924422046),new u(89,154.92574895),new u(90,155.924278273),new u(91,156.925461256),new u(92,157.924404637),new u(93,158.92573566),new u(94,159.925193718),new u(95,160.926929595),new u(96,161.926794731),new u(97,162.928727532),new u(98,163.929171165),new u(99,164.931699828),new u(100,165.932803241),new u(101,166.935649025),new u(102,167.93723),new u(103,168.940303648),new u(104,169.94267),new u(105,170.94648),new u(106,171.94911),new u(107,172.95344)]),B(d(Mt,1),Vt,3,0,[new u(75,141.95986),new u(76,142.95469),new u(77,143.95164),new u(78,144.94688),new u(79,145.9441),new u(80,146.93984),new u(81,147.937269),new u(82,148.933789944),new u(83,149.932760914),new u(84,150.931680791),new u(85,151.931740598),new u(86,152.930194506),new u(87,153.930596268),new u(88,154.929079084),new u(89,155.929001869),new u(90,156.928188059),new u(91,157.92894573),new u(92,158.927708537),new u(93,159.928725679),new u(94,160.927851662),new u(95,161.92909242),new u(96,162.928730286),new u(97,163.930230577),new u(98,164.930319169),new u(99,165.932281267),new u(100,166.933126195),new u(101,167.935496424),new u(102,168.936868306),new u(103,169.939614951),new u(104,170.941461227),new u(105,171.94482),new u(106,172.94729),new u(107,173.95115),new u(108,174.95405)]),B(d(Mt,1),Vt,3,0,[new u(76,143.96059),new u(77,144.95746),new u(78,145.95212),new u(79,146.94931),new u(80,147.94444),new u(81,148.942780527),new u(82,149.937171034),new u(83,150.93746),new u(84,151.935078452),new u(85,152.935093125),new u(86,153.932777294),new u(87,154.933204273),new u(88,155.931015001),new u(89,156.931945517),new u(90,157.929912),new u(91,158.930680718),new u(92,159.929078924),new u(93,160.930001348),new u(94,161.928774923),new u(95,162.930029273),new u(96,163.929196996),new u(97,164.9307228),new u(98,165.93028997),new u(99,166.932045448),new u(100,167.932367781),new u(101,168.934588082),new u(102,169.935460334),new u(103,170.938025885),new u(104,171.939352149),new u(105,172.9424),new u(106,173.94434),new u(107,174.94793),new u(108,175.95029),new u(109,176.95437)]),B(d(Mt,1),Vt,3,0,[new u(77,145.966495),new u(78,146.961081),new u(79,147.95755),new u(80,148.95265),new u(81,149.94967),new u(82,150.944842),new u(83,151.9443),new u(84,152.942027631),new u(85,153.940832325),new u(86,154.939191562),new u(87,155.939006895),new u(88,156.936756069),new u(89,157.936996),new u(90,158.934808966),new u(91,159.935090772),new u(92,160.933398042),new u(93,161.933970147),new u(94,162.932647648),new u(95,163.933450972),new u(96,164.932432463),new u(97,165.933553133),new u(98,166.932848844),new u(99,167.934170375),new u(100,168.934211117),new u(101,169.935797877),new u(102,170.936425817),new u(103,171.938396118),new u(104,172.939600336),new u(105,173.942164618),new u(106,174.943832897),new u(107,175.946991412),new u(108,176.94904),new u(109,177.95264),new u(110,178.95534)]),B(d(Mt,1),Vt,3,0,[new u(78,147.96676),new u(79,148.96348),new u(80,149.95799),new u(81,150.954657965),new u(82,151.950167),new u(83,152.94921),new u(84,153.945651145),new u(85,154.945792),new u(86,155.942847109),new u(87,156.94265865),new u(88,157.939857897),new u(89,158.940153735),new u(90,159.93756),new u(91,160.937357719),new u(92,161.93575),new u(93,162.936265492),new u(94,163.93452),new u(95,164.935397592),new u(96,165.933879623),new u(97,166.934946862),new u(98,167.933894465),new u(99,168.93518712),new u(100,169.934758652),new u(101,170.936322297),new u(102,171.936377696),new u(103,172.938206756),new u(104,173.938858101),new u(105,174.941272494),new u(106,175.942568409),new u(107,176.945257126),new u(108,177.946643396),new u(109,178.95017),new u(110,179.95233),new u(111,180.95615)]),B(d(Mt,1),Vt,3,0,[new u(79,149.972668),new u(80,150.967147),new u(81,151.96361),new u(82,152.95869),new u(83,153.9571),new u(84,154.953641324),new u(85,155.952907),new u(86,156.950101536),new u(87,157.948577981),new u(88,158.946615113),new u(89,159.945383),new u(90,160.943047504),new u(91,161.943222),new u(92,162.941203796),new u(93,163.941215),new u(94,164.939605886),new u(95,165.939762646),new u(96,166.938307056),new u(97,167.938698576),new u(98,168.937648757),new u(99,169.93847219),new u(100,170.937909903),new u(101,171.939082239),new u(102,172.938926901),new u(103,173.940333522),new u(104,174.940767904),new u(105,175.942682399),new u(106,176.943754987),new u(107,177.945951366),new u(108,178.947324216),new u(109,179.949879968),new u(110,180.95197),new u(111,181.95521),new u(112,182.95757),new u(113,183.96117)]),B(d(Mt,1),Vt,3,0,[new u(82,153.96425),new u(83,154.96276),new u(84,155.959247),new u(85,156.958127),new u(86,157.95405528),new u(87,158.954003),new u(88,159.950713588),new u(89,160.950330852),new u(90,161.947202977),new u(91,162.947057),new u(92,163.944422),new u(93,164.94454),new u(94,165.94225),new u(95,166.9426),new u(96,167.94063),new u(97,168.941158567),new u(98,169.93965),new u(99,170.94049),new u(100,171.93945798),new u(101,172.94065),new u(102,173.940040159),new u(103,174.941502991),new u(104,175.941401828),new u(105,176.943220013),new u(106,177.943697732),new u(107,178.945815073),new u(108,179.94654876),new u(109,180.949099124),new u(110,181.950552893),new u(111,182.953531012),new u(112,183.95544788),new u(113,184.95878),new u(114,185.96092)]),B(d(Mt,1),Vt,3,0,[new u(83,155.971689),new u(84,156.968145),new u(85,157.966368),new u(86,158.96232309),new u(87,159.961358),new u(88,160.958372992),new u(89,161.956556553),new u(90,162.95431665),new u(91,163.95357),new u(92,164.950817),new u(93,165.95047),new u(94,166.948639),new u(95,167.947787),new u(96,168.94592),new u(97,169.94609),new u(98,170.94446),new u(99,171.944739818),new u(100,172.94459),new u(101,173.944167937),new u(102,174.94365),new u(103,175.944740551),new u(104,176.944471766),new u(105,177.945750349),new u(106,178.945934113),new u(107,179.947465655),new u(108,180.947996346),new u(109,181.950152414),new u(110,182.951373188),new u(111,183.954009331),new u(112,184.955559086),new u(113,185.9585501),new u(114,186.96041),new u(115,187.96371)]),B(d(Mt,1),Vt,3,0,[new u(84,157.973939),new u(85,158.97228),new u(86,159.968369),new u(87,160.967089),new u(88,161.962750303),new u(89,162.962532),new u(90,163.95898381),new u(91,164.958335962),new u(92,165.955019896),new u(93,166.954672),new u(94,167.951863),new u(95,168.951759),new u(96,169.948473988),new u(97,170.94946),new u(98,171.948228837),new u(99,172.948884),new u(100,173.94616),new u(101,174.94677),new u(102,175.94559),new u(103,176.94662),new u(104,177.945848364),new u(105,178.947071733),new u(106,179.946705734),new u(107,180.948198054),new u(108,181.948205519),new u(109,182.950224458),new u(110,183.950932553),new u(111,184.953420586),new u(112,185.954362204),new u(113,186.957158365),new u(114,187.958486954),new u(115,188.96191222),new u(116,189.963179541)]),B(d(Mt,1),Vt,3,0,[new u(85,159.981485),new u(86,160.977661),new u(87,161.975707),new u(88,162.971375872),new u(89,163.970319),new u(90,164.967050268),new u(91,165.965211372),new u(92,166.962564),new u(93,167.961609),new u(94,168.95883),new u(95,169.958163),new u(96,170.955547),new u(97,171.955285),new u(98,172.953062),new u(99,173.952114),new u(100,174.951393),new u(101,175.95157),new u(102,176.95027),new u(103,177.950851081),new u(104,178.949981038),new u(105,179.95078768),new u(106,180.950064596),new u(107,181.951211444),new u(108,182.950821349),new u(109,183.952524289),new u(110,184.952955747),new u(111,185.954986529),new u(112,186.955750787),new u(113,187.958112287),new u(114,188.959228359),new u(115,189.961816139),new u(116,190.963123592),new u(117,191.96596)]),B(d(Mt,1),Vt,3,0,[new u(86,161.983819),new u(87,162.982048),new u(88,163.977927),new u(89,164.976475),new u(90,165.971934911),new u(91,166.971554),new u(92,167.967832911),new u(93,168.967076205),new u(94,169.963569716),new u(95,170.96304),new u(96,171.960078),new u(97,172.959791),new u(98,173.956307704),new u(99,174.95708),new u(100,175.953757941),new u(101,176.955045),new u(102,177.953348225),new u(103,178.953951),new u(104,179.952308241),new u(105,180.953274494),new u(106,181.952186222),new u(107,182.95311),new u(108,183.952490808),new u(109,184.954043023),new u(110,185.953838355),new u(111,186.955747928),new u(112,187.955835993),new u(113,188.958144866),new u(114,189.95844521),new u(115,190.960927951),new u(116,191.961479047),new u(117,192.964148083),new u(118,193.965179314),new u(119,194.968123889),new u(120,195.96962255)]),B(d(Mt,1),Vt,3,0,[new u(88,164.98758),new u(89,165.985506),new u(90,166.980951577),new u(91,167.979966),new u(92,168.976390868),new u(93,169.974441697),new u(94,170.971779),new u(95,171.970643),new u(96,172.967707),new u(97,173.966804),new u(98,174.964279),new u(99,175.963511),new u(100,176.96117),new u(101,177.960084944),new u(102,178.95915),new u(103,179.958555615),new u(104,180.957642156),new u(105,181.958127689),new u(106,182.956814),new u(107,183.957388318),new u(108,184.95659),new u(109,185.957951104),new u(110,186.95736083),new u(111,187.958851962),new u(112,188.958716473),new u(113,189.960592299),new u(114,190.960591191),new u(115,191.962602198),new u(116,192.9629237),new u(117,193.96507561),new u(118,194.9659768),new u(119,195.968379906),new u(120,196.969636496),new u(121,197.97228),new u(122,198.973787159)]),B(d(Mt,1),Vt,3,0,[new u(90,167.988035),new u(91,168.986421),new u(92,169.981734918),new u(93,170.981251),new u(94,171.977376138),new u(95,172.976499642),new u(96,173.972811276),new u(97,174.972276),new u(98,175.969),new u(99,176.968453),new u(100,177.964894223),new u(101,178.965475),new u(102,179.962023729),new u(103,180.963177),new u(104,181.961267637),new u(105,182.961729),new u(106,183.959851685),new u(107,184.960753782),new u(108,185.959432346),new u(109,186.960697),new u(110,187.959395697),new u(111,188.9608319),new u(112,189.959930073),new u(113,190.961684653),new u(114,191.961035158),new u(115,192.962984504),new u(116,193.962663581),new u(117,194.964774449),new u(118,195.964934884),new u(119,196.967323401),new u(120,197.967876009),new u(121,198.970576213),new u(122,199.971423885),new u(123,200.974496467),new u(124,201.97574)]),B(d(Mt,1),Vt,3,0,[new u(92,170.991183),new u(93,171.990109),new u(94,172.986398138),new u(95,173.984325861),new u(96,174.981552),new u(97,175.980269),new u(98,176.977215),new u(99,177.975975),new u(100,178.973412),new u(101,179.972396),new u(102,180.969948),new u(103,181.968621416),new u(104,182.96762),new u(105,183.966776046),new u(106,184.965806956),new u(107,185.965997671),new u(108,186.964562),new u(109,187.965321662),new u(110,188.9642243),new u(111,189.964698757),new u(112,190.963649239),new u(113,191.964810107),new u(114,192.964131745),new u(115,193.96533889),new u(116,194.965017928),new u(117,195.966551315),new u(118,196.966551609),new u(119,197.968225244),new u(120,198.968748016),new u(121,199.970717886),new u(122,200.971640839),new u(123,201.973788431),new u(124,202.975137256),new u(125,203.977705),new u(126,204.97961)]),B(d(Mt,1),Vt,3,0,[new u(95,174.991411),new u(96,175.987413248),new u(97,176.986336874),new u(98,177.982476325),new u(99,178.981783),new u(100,179.978322),new u(101,180.977806),new u(102,181.97393546),new u(103,182.974561),new u(104,183.970705219),new u(105,184.971983),new u(106,185.969460021),new u(107,186.969785),new u(108,187.967511693),new u(109,188.968733187),new u(110,189.966958568),new u(111,190.96706311),new u(112,191.965921572),new u(113,192.966644169),new u(114,193.965381832),new u(115,194.966638981),new u(116,195.965814846),new u(117,196.967195333),new u(118,197.96675183),new u(119,198.968262489),new u(120,199.968308726),new u(121,200.970285275),new u(122,201.970625604),new u(123,202.972857096),new u(124,203.97347564),new u(125,204.976056104),new u(126,205.977498672),new u(127,206.982577025),new u(128,207.98594)]),B(d(Mt,1),Vt,3,0,[new u(96,176.996881),new u(97,177.994637),new u(98,178.991466),new u(99,179.990194),new u(100,180.986904),new u(101,181.98561),new u(102,182.982697),new u(103,183.98176),new u(104,184.9791),new u(105,185.977549881),new u(106,186.97617),new u(107,187.97592),new u(108,188.974290451),new u(109,189.974473379),new u(110,190.972261952),new u(111,191.972770785),new u(112,192.970548),new u(113,193.971053),new u(114,194.96965),new u(115,195.970515),new u(116,196.9695362),new u(117,197.970466294),new u(118,198.969813837),new u(119,199.970945394),new u(120,200.97080377),new u(121,201.972090569),new u(122,202.972329088),new u(123,203.973848646),new u(124,204.97441227),new u(125,205.976095321),new u(126,206.977407908),new u(127,207.982004653),new u(128,208.985349125),new u(129,209.990065574)]),B(d(Mt,1),Vt,3,0,[new u(99,180.996714),new u(100,181.992676101),new u(101,182.99193),new u(102,183.988198),new u(103,184.98758),new u(104,185.983485388),new u(105,186.98403),new u(106,187.979869108),new u(107,188.98088),new u(108,189.978180008),new u(109,190.9782),new u(110,191.975719811),new u(111,192.97608),new u(112,193.974648056),new u(113,194.975920279),new u(114,195.97271),new u(115,196.97338),new u(116,197.97198),new u(117,198.972909384),new u(118,199.97181556),new u(119,200.972846589),new u(120,201.972143786),new u(121,202.973375491),new u(122,203.973028761),new u(123,204.974467112),new u(124,205.974449002),new u(125,206.975880605),new u(126,207.97663585),new u(127,208.981074801),new u(128,209.984173129),new u(129,210.988731474),new u(130,211.991887495),new u(131,212.9965),new u(132,213.999798147)]),B(d(Mt,1),Vt,3,0,[new u(102,184.997708),new u(103,185.99648),new u(104,186.993458),new u(105,187.992173),new u(106,188.989505),new u(107,189.987520007),new u(108,190.986053),new u(109,191.985368),new u(110,192.983662229),new u(111,193.983430186),new u(112,194.98112697),new u(113,195.981236107),new u(114,196.978934287),new u(115,197.979024396),new u(116,198.977576953),new u(117,199.978141983),new u(118,200.976970721),new u(119,201.977674504),new u(120,202.976868118),new u(121,203.977805161),new u(122,204.977374688),new u(123,205.978482854),new u(124,206.978455217),new u(125,207.979726699),new u(126,208.980383241),new u(127,209.984104944),new u(128,210.987258139),new u(129,211.991271542),new u(130,212.994374836),new u(131,213.998698664),new u(132,215.001832349),new u(133,216.006199)]),B(d(Mt,1),Vt,3,0,[new u(106,189.994293888),new u(107,190.994653),new u(108,191.99033039),new u(109,192.991102),new u(110,193.988284107),new u(111,194.988045),new u(112,195.985469432),new u(113,196.985567),new u(114,197.984024384),new u(115,198.985044507),new u(116,199.981735),new u(117,200.982209),new u(118,201.980704),new u(119,202.981412863),new u(120,203.980307113),new u(121,204.981165396),new u(122,205.980465241),new u(123,206.981578228),new u(124,207.981231059),new u(125,208.982415788),new u(126,209.982857396),new u(127,210.986636869),new u(128,211.988851755),new u(129,212.992842522),new u(130,213.995185949),new u(131,214.999414609),new u(132,216.001905198),new u(133,217.006253),new u(134,218.008965773)]),B(d(Mt,1),Vt,3,0,[new u(108,193.000188),new u(109,193.997973),new u(110,194.996554),new u(111,195.995702),new u(112,196.993891293),new u(113,197.99343368),new u(114,198.991008569),new u(115,199.990920883),new u(116,200.988486908),new u(117,201.988448629),new u(118,202.986847216),new u(119,203.987261559),new u(120,204.986036352),new u(121,205.986599242),new u(122,206.985775861),new u(123,207.986582508),new u(124,208.986158678),new u(125,209.987131308),new u(126,210.987480806),new u(127,211.990734657),new u(128,212.99292115),new u(129,213.996356412),new u(130,214.998641245),new u(131,216.002408839),new u(132,217.004709619),new u(133,218.008681458),new u(134,219.011296478),new u(135,220.015301),new u(136,221.01814),new u(137,222.02233),new u(138,223.02534)]),B(d(Mt,1),Vt,3,0,[new u(110,196.001117268),new u(111,197.001661),new u(112,197.998779978),new u(113,198.998309),new u(114,199.995634148),new u(115,200.995535),new u(116,201.993899382),new u(117,202.994765192),new u(118,203.991365),new u(119,204.991668),new u(120,205.99016),new u(121,206.990726826),new u(122,207.989631237),new u(123,208.990376634),new u(124,209.989679862),new u(125,210.99058541),new u(126,211.990688899),new u(127,212.993868354),new u(128,213.995346275),new u(129,214.998729195),new u(130,216.000258153),new u(131,217.003914555),new u(132,218.005586315),new u(133,219.009474831),new u(134,220.011384149),new u(135,221.015455),new u(136,222.017570472),new u(137,223.02179),new u(138,224.02409),new u(139,225.02844),new u(140,226.03089),new u(141,227.035407),new u(142,228.038084)]),B(d(Mt,1),Vt,3,0,[new u(113,200.006499),new u(114,201.00458692),new u(115,202.00396885),new u(116,203.001423829),new u(117,204.001221209),new u(118,204.998663961),new u(119,205.998486886),new u(120,206.996859385),new u(121,207.997133849),new u(122,208.995915421),new u(123,209.996398327),new u(124,210.995529332),new u(125,211.996194988),new u(126,212.996174845),new u(127,213.99895474),new u(128,215.000326029),new u(129,216.003187873),new u(130,217.004616452),new u(131,218.007563326),new u(132,219.009240843),new u(133,220.012312978),new u(134,221.014245654),new u(135,222.017543957),new u(136,223.019730712),new u(137,224.023235513),new u(138,225.025606914),new u(139,226.029343423),new u(140,227.031833167),new u(141,228.034776087),new u(142,229.038426),new u(143,230.04251),new u(144,231.045407),new u(145,232.049654)]),B(d(Mt,1),Vt,3,0,[new u(115,203.00921),new u(116,204.006434513),new u(117,205.006187),new u(118,206.004463814),new u(119,207.005176607),new u(120,208.001776),new u(121,209.001944),new u(122,210.000446),new u(123,211.000893996),new u(124,211.999783492),new u(125,213.000345847),new u(126,214.000091141),new u(127,215.002704195),new u(128,216.003518402),new u(129,217.00630601),new u(130,218.007123948),new u(131,219.010068787),new u(132,220.011014669),new u(133,221.013907762),new u(134,222.01536182),new u(135,223.01849714),new u(136,224.020202004),new u(137,225.023604463),new u(138,226.025402555),new u(139,227.029170677),new u(140,228.031064101),new u(141,229.034820309),new u(142,230.037084774),new u(143,231.04122),new u(144,232.043693),new u(145,233.047995),new u(146,234.050547)]),B(d(Mt,1),Vt,3,0,[new u(118,207.012469754),new u(119,208.012112949),new u(120,209.009568736),new u(121,210.009256802),new u(122,211.007648196),new u(123,212.007811441),new u(124,213.006573689),new u(125,214.006893072),new u(126,215.006450832),new u(127,216.008721268),new u(128,217.009332676),new u(129,218.011625045),new u(130,219.012404918),new u(131,220.014752105),new u(132,221.015575746),new u(133,222.017828852),new u(134,223.01912603),new u(135,224.021708435),new u(136,225.023220576),new u(137,226.026089848),new u(138,227.027746979),new u(139,228.031014825),new u(140,229.032930871),new u(141,230.036025144),new u(142,231.038551503),new u(143,232.042022474),new u(144,233.04455),new u(145,234.04842),new u(146,235.051102),new u(147,236.055178)]),B(d(Mt,1),Vt,3,0,[new u(120,210.015711883),new u(121,211.016306912),new u(122,212.012916),new u(123,213.012962),new u(124,214.011451),new u(125,215.011726597),new u(126,216.011050963),new u(127,217.013066169),new u(128,218.013267744),new u(129,219.015521253),new u(130,220.015733126),new u(131,221.018171499),new u(132,222.018454131),new u(133,223.020795153),new u(134,224.02145925),new u(135,225.023941441),new u(136,226.024890681),new u(137,227.027698859),new u(138,228.028731348),new u(139,229.03175534),new u(140,230.033126574),new u(141,231.03629706),new u(142,232.03805036),new u(143,233.041576923),new u(144,234.043595497),new u(145,235.04750442),new u(146,236.04971),new u(147,237.053894),new u(148,238.056243)]),B(d(Mt,1),Vt,3,0,[new u(122,213.021183209),new u(123,214.02073923),new u(124,215.019097612),new u(125,216.019109649),new u(126,217.018288571),new u(127,218.020007906),new u(128,219.019880348),new u(129,220.021876493),new u(130,221.021863742),new u(131,222.023726),new u(132,223.023963748),new u(133,224.025614854),new u(134,225.026115172),new u(135,226.02793275),new u(136,227.028793151),new u(137,228.031036942),new u(138,229.032088601),new u(139,230.034532562),new u(140,231.035878898),new u(141,232.03858172),new u(142,233.040240235),new u(143,234.043302325),new u(144,235.045436759),new u(145,236.048675176),new u(146,237.05113943),new u(147,238.054497046),new u(148,239.05713),new u(149,240.06098)]),B(d(Mt,1),Vt,3,0,[new u(126,218.023487),new u(127,219.024915423),new u(128,220.024712),new u(129,221.026351),new u(130,222.02607),new u(131,223.027722956),new u(132,224.027590139),new u(133,225.029384369),new u(134,226.02933975),new u(135,227.031140069),new u(136,228.031366357),new u(137,229.033496137),new u(138,230.033927392),new u(139,231.036289158),new u(140,232.03714628),new u(141,233.039628196),new u(142,234.040945606),new u(143,235.043923062),new u(144,236.045561897),new u(145,237.048723955),new u(146,238.050782583),new u(147,239.054287777),new u(148,240.056585734),new u(149,241.06033),new u(150,242.062925)]),B(d(Mt,1),Vt,3,0,[new u(132,225.033899689),new u(133,226.035129),new u(134,227.034958261),new u(135,228.03618),new u(136,229.036246866),new u(137,230.037812591),new u(138,231.038233161),new u(139,232.040099),new u(140,233.04073235),new u(141,234.042888556),new u(142,235.044055876),new u(143,236.046559724),new u(144,237.048167253),new u(145,238.050940464),new u(146,239.052931399),new u(147,240.056168828),new u(148,241.058246266),new u(149,242.061635),new u(150,243.064273),new u(151,244.06785)]),B(d(Mt,1),Vt,3,0,[new u(134,228.038727686),new u(135,229.040138934),new u(136,230.039645603),new u(137,231.041258),new u(138,232.041179445),new u(139,233.04298757),new u(140,234.043304681),new u(141,235.0452815),new u(142,236.046048088),new u(143,237.048403774),new u(144,238.0495534),new u(145,239.052156519),new u(146,240.05380746),new u(147,241.056845291),new u(148,242.058736847),new u(149,243.061997013),new u(150,244.06419765),new u(151,245.067738657),new u(152,246.070198429),new u(153,247.07407)]),B(d(Mt,1),Vt,3,0,[new u(136,231.04556),new u(137,232.04659),new u(138,233.046472),new u(139,234.047794),new u(140,235.048029),new u(141,236.049569),new u(142,237.049970748),new u(143,238.051977839),new u(144,239.053018481),new u(145,240.055287826),new u(146,241.056822944),new u(147,242.059543039),new u(148,243.061372686),new u(149,244.064279429),new u(150,245.066445398),new u(151,246.069768438),new u(152,247.072086),new u(153,248.075745),new u(154,249.07848)]),B(d(Mt,1),Vt,3,0,[new u(137,233.0508),new u(138,234.05024),new u(139,235.051591),new u(140,236.051405),new u(141,237.052891),new u(142,238.053016298),new u(143,239.054951),new u(144,240.055519046),new u(145,241.057646736),new u(146,242.058829326),new u(147,243.061382249),new u(148,244.062746349),new u(149,245.065485586),new u(150,246.067217551),new u(151,247.070346811),new u(152,248.072342247),new u(153,249.075947062),new u(154,250.078350687),new u(155,251.082277873),new u(156,252.08487)]),B(d(Mt,1),Vt,3,0,[new u(138,235.05658),new u(139,236.05733),new u(140,237.057127),new u(141,238.058266),new u(142,239.058362),new u(143,240.059749),new u(144,241.060223),new u(145,242.06205),new u(146,243.06300157),new u(147,244.065167882),new u(148,245.066355386),new u(149,246.068666836),new u(150,247.070298533),new u(151,248.07308),new u(152,249.074979937),new u(153,250.078310529),new u(154,251.08075344),new u(155,252.084303),new u(156,253.08688),new u(157,254.0906)]),B(d(Mt,1),Vt,3,0,[new u(139,237.06207),new u(140,238.06141),new u(141,239.062579),new u(142,240.062295),new u(143,241.063716),new u(144,242.063688713),new u(145,243.065421),new u(146,244.06599039),new u(147,245.068039),new u(148,246.068798807),new u(149,247.070992043),new u(150,248.07217808),new u(151,249.074846818),new u(152,250.076399951),new u(153,251.079580056),new u(154,252.081619582),new u(155,253.085126791),new u(156,254.087316198),new u(157,255.091039),new u(158,256.09344)]),B(d(Mt,1),Vt,3,0,[new u(141,240.06892),new u(142,241.068662),new u(143,242.069699),new u(144,243.069631),new u(145,244.070969),new u(146,245.071317),new u(147,246.072965),new u(148,247.07365),new u(149,248.075458),new u(150,249.076405),new u(151,250.078654),new u(152,251.079983592),new u(153,252.082972247),new u(154,253.084817974),new u(155,254.088016026),new u(156,255.090266386),new u(157,256.093592),new u(158,257.095979)]),B(d(Mt,1),Vt,3,0,[new u(142,242.07343),new u(143,243.07451),new u(144,244.074077),new u(145,245.075375),new u(146,246.075281634),new u(147,247.076819),new u(148,248.077184411),new u(149,249.079024),new u(150,250.079514759),new u(151,251.081566467),new u(152,252.082460071),new u(153,253.085176259),new u(154,254.086847795),new u(155,255.089955466),new u(156,256.091766522),new u(157,257.095098635),new u(158,258.097069),new u(159,259.100588)]),B(d(Mt,1),Vt,3,0,[new u(144,245.081017),new u(145,246.081933),new u(146,247.081804),new u(147,248.082909),new u(148,249.083002),new u(149,250.084488),new u(150,251.084919),new u(151,252.08663),new u(152,253.08728),new u(153,254.089725),new u(154,255.091075196),new u(155,256.094052757),new u(156,257.095534643),new u(157,258.098425321),new u(158,259.100503),new u(159,260.103645)]),B(d(Mt,1),Vt,3,0,[new u(147,249.087823),new u(148,250.087493),new u(149,251.08896),new u(150,252.088965909),new u(151,253.090649),new u(152,254.090948746),new u(153,255.093232449),new u(154,256.094275879),new u(155,257.096852778),new u(156,258.0982),new u(157,259.101024),new u(158,260.102636),new u(159,261.105743),new u(160,262.10752)]),B(d(Mt,1),Vt,3,0,[new u(148,251.09436),new u(149,252.09533),new u(150,253.095258),new u(151,254.096587),new u(152,255.096769),new u(153,256.098763),new u(154,257.099606),new u(155,258.101883),new u(156,259.10299),new u(157,260.105572),new u(158,261.106941),new u(159,262.109692),new u(160,263.111394)]),B(d(Mt,1),Vt,3,0,[new u(149,253.100679),new u(150,254.100166),new u(151,255.101492),new u(152,256.101179573),new u(153,257.103072),new u(154,258.103568),new u(155,259.105628),new u(156,260.106434),new u(157,261.108752),new u(158,262.109918),new u(159,263.11254),new u(160,264.113978)]),B(d(Mt,1),Vt,3,0,[new u(150,255.107398),new u(151,256.10811),new u(152,257.107858),new u(153,258.109438),new u(154,259.109721),new u(155,260.111427),new u(156,261.112106),new u(157,262.114153),new u(158,263.115078),new u(159,264.117473),new u(160,265.118659)]),B(d(Mt,1),Vt,3,0,[new u(152,258.113151),new u(153,259.114652),new u(154,260.114435447),new u(155,261.116199),new u(156,262.116477),new u(157,263.118313),new u(158,264.118924),new u(159,265.121066),new u(160,266.121928)]),B(d(Mt,1),Vt,3,0,[new u(153,260.121803),new u(154,261.1218),new u(155,262.123009),new u(156,263.123146),new u(157,264.12473),new u(158,265.125198),new u(159,266.127009),new u(160,267.12774)]),B(d(Mt,1),Vt,3,0,[new u(155,263.12871),new u(156,264.128408258),new u(157,265.130001),new u(158,266.130042),new u(159,267.131774),new u(160,268.132156),new u(161,269.134114)]),B(d(Mt,1),Vt,3,0,[new u(156,265.136567),new u(157,266.13794),new u(158,267.137526),new u(159,268.138816),new u(160,269.139106),new u(161,270.140723),new u(162,271.141229)])]);}function u6(t,e){return at(e,i4)?new _o(iv(t,168,1428,"%5968%UDy0ClA8tJ9QPLT6UDy08FA8tJVQPLQK%858%BQPLQdUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLSW%362%D4BwYC+AYGAvgHBgE%303%D/AAAB/wAAAQ%159%FA8tC1QPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTl%330%D5BgcB+AcGBPkHBhX5BwdN+QYHefgHB2/5Bwc8+AYGFfgGBgj5BgcF+AYGAvkHBgE%245%/wAAAf8AAAL/AAAG/wAAEP8AACP/AAA7/wAAP/8AAD3/AAAg/wAABw%154%UDy0RFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5%325%PkFCAT4BgZE+QcHo/gHB+X5Bwb/+QcH//kHB//4Bwf9+QYH1vgHB5X5BwZD+QcGDvkHBwb5BgYD+QcGAQ%228%D/AAAS/wAARP8AAIL/AAC4/wAA2/8AAPf/AAD//wAA//8AAPj/AAB+/wAADw%148%BQPLRnUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%314%D5BwYC+AYHK/kHBrb4Bwf4+AcH//gHB//5Bwf/+AcG//kHBv/5Bwf/+AYH//gHB/75Bwf3+AYHs/kHBkH5BgcR+QYGB/kFBgL6BgYB%197%P8AAAH/AAAI/wAAKP8AAIj/AADh/wAA9/8AAP3/AAD//wAA//8AAP//AAD6/wAAzv8AAGH/AAAq/wAAEw%143%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%304%+QYHAfoIBwX4BgZu+QcH6fkGB//5Bgf/+QYH//kHB//5Bwf/+QcG//kHBv/4Bwb/+AcH//gHB//5Bgf/+AcH//kHBvT5Bwas+QYGO/kGBgr5BgUG+gUFAQ%175%P8AAAE%5%/wAACv8AAFX/AACy/wAA8P8AAP//AAD//wAA//8AAP//AAD//wAA//8AANP/AACD/wAARf8AACz/AAAZ/wAACQ%132%BQPLQJUDy0qlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%304%+QcGBPkGB374Bwf5+AcH//kHB//5Bwf/+QcH//kHBv/4Bwf/+AcH//gHB//5Bwf/+QcG//gHB//5Bwf/+QcG//gGB//4Bwb/+QYG8PkGBoD5BgYg+gYFCvoFBQQ%165%/wAAAf8AAA7/AABV/wAAzf8AAPv/AAD//wAA//8AAP//AAD//wAA//8AAPz/AADo/wAAkf8AAEr/AAAz/wAAH/8AAA//AAAG/wAAAQ%127%FA8tBNQPLTDUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%304%+QYGUvgHBvn4Bwf/+AcH//kHB//5Bwf/+QcH//kHB//4Bgf/+QcH//gHB//4Bwb/+AcH//gHB//4Bgf/+QcG//gGB//5Bwf/+QYG//kGBv76BgbL+gYFTfoFBQ76BQUH+gUEAQ%148%D/AAAG/wAAWf8AAMb/AAD9/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA7P8AAJ3/AABW/wAANP8AACL/AAAS/wAAB/8AAAI%133%UDy0I1A8tNtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%293%PkHBwH4BwYD+AYHwfgHB//4Bwb/+QYH//gGBv/4Bwf/+QYH//kGB//5Bwf/+AcH//gHB//5Bwb/+AcH//kGB//4Bwf/+AYG//kHB//4Bwb/+AYG//kHB//5BQb/+QYF8/oFBX76BQUd+wQFCfsEBAI%133%/wAABv8AADj/AAC5/wAA/P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPP/AAC6/wAAXv8AADn/AAAm/wAAE/8AAAj/AAAC/wAAAQ%132%BQPLQ7UDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%293%PgGBgH4BggD+QcGqPgHB//4Bwf/+AcH//gHB//4Bwf/+AcG//gHB//4Bgf/+QYG//gGBv/5Bgb/+AcH//kHB//4Bgb/+QcH//gHB//5Bwf/+QcH//kHBv/5Bgb/+gYG//oFBfz6BQW++wQFMfoFBAz7BAQE%112%/wAAAQ%4%D/AAAf/wAAo/8AAPD/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA0P8AAHL/AABB/wAAKf8AABb/AAAJ/wAAA/8AAAE%138%FA8tFNQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%293%PgGBwH4BwcE+AcHJ/gHB8j4Bgf/+AcH//kHBv/4Bwf/+QcH//gHB//5Bgb/+AcG//gHB//4Bwf/+AYH//gHB//4Bwb/+QcH//kGB//5Bwf/+AYH//kHBv/5Bgb/+QYG//oFBv/6BQX/+gQF3foEBVL7BAQR+wMEBvwDAwE%101%/wAAEP8AAGj/AADm/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOj/AACX/wAASP8AADD/AAAb/wAADP8AAAT/AAAB%144%UDy0blA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0LlA8tAI%287%D5BgcC+QcGC/gGBir5Bwea+QcH9vkHB//4Bwb/+QYG//gHB//4Bwf/+QYG//gGB//4Bwf/+AcH//gGBv/4Bwf/+QYH//kGB//4Bgf/+QcH//gHBv/5Bgb/+QUG//kGBf/6BQX/+gUF//oEBfD7BAR0/AQEFPsDAwj8BAMC%80%/wAAAf8AAAL/AAA1/wAAyv8AAPr/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD8/wAAwv8AAGD/AAA5/wAAI/8AABD/AAAG/wAAAg%143%FA8tAFQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0yFA8tJpQPLR4UDy0UFA8tCI%261%+AYHA/gGBw35BwYa+AYHWPkHBr75Bwf4+AcH//kHB//4Bwf/+AYH//gHB//5Bwf/+QcH//gHB//4Bwb/+QcG//kHBv/4Bwf/+QcG//gHBv/5Bgb/+QYG//oGBv/6BQX/+gUF//sEBf/7BAT+/AQEkvwDAx38AwMK/QMDAg%74%/wAAFP8AAIP/AADy/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO7/AACX/wAAR/8AAC7/AAAX/wAACf8AAAI%149%UDy0B1A8tKpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0v1A8tI1QPLRSUDy0Fw%239%PkHBwL4BwcI+AYGFPgHByf5Bgdh+AYHzPkHB/v5Bwf/+QcG//kHBv/4Bwb/+QcG//kHB//5Bwf/+QYG//gHBv/4Bwf/+QcH//gGB//5Bwb/+QYG//oGBv/6BgX/+gQF//oFBP/7BAT/+wQE/fwEBK/8BAMk/AMDDPwCAgM%53%/wAAAf8AAAP/AAA5/wAA0v8AAP3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD+/wAA3P8AAGz/AAA8/wAAIv8AAA//AAAF/wAAAQ%148%BQPLQTUDy0xlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNdQPLSTUDy0TlA8tAw%223%D4BgYB+QcHBPkHBgv4BwcV+AYGK/gHB3H4BwfM+AcH/vgHB//4Bgf/+QYG//gHB//4Bwb/+AYH//gHBv/5Bwf/+QcH//gHB//4Bwb/+QYG//kGBv/6Bgb/+gUF//sEBf/7BAT/+wQE//wEBP78AwS7/AMDLP0DAgz9AgID%37%P8AAAE%5%/wAAEP8AAIL/AADx/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5/wAAVv8AADH/AAAa/wAACf8AAAI%154%FA8tCBQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLS3UDy0aVA8tBg%218%PkHBwH5BwcF+QYHDPgHBxn5Bwct+QYHd/kHBt/5Bwb8+AcG//gHB//4Bwf/+QcG//gGBv/4Bwf/+AcG//gHB//5Bgb/+QcH//kGBv/6BgX/+gYF//oFBf/7BAX/+wUE//sEBP/7AwT//AMDy/0DAzP8AwIO/QIDB%32%P8AAAP/AAAr/wAAx/8AAP3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA9v8AAJz/AABG/wAAK/8AABP/AAAG/wAAAQ%154%UDy0NVA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS2UDy0XlA8tAg%213%+QYGAfgHBgX4BwcN+QcHGPgHBzf4BgeF+QcH4/gGBv/4Bwb/+AcH//gHB//5Bwf/+QcG//gHB//5Bwb/+QYG//kGBv/5Bgb/+QYF//oFBf/7BQX/+gUE//sEBP/8BAP//AMD//wDAtD9AgI3/QICDv0CAgQ%21%/wAAAv8AAG7/AADo/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADq/wAAgf8AAD7/AAAk/wAADv8AAAQ%159%BQPLRJUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLSSUDy0L%213%D5BwcB+QYHBfgGBg/5Bgcb+AcGOfgHB6D5Bwfv+QcH//kGBv/5Bwb/+AcH//gGB//5Bwf/+QYG//kGBv/5Bgb/+gUG//oGBf/6BAX/+gQF//sEBP/7BAP/+wMD//wDA//9AwPW/QMCOf0CAg/9AQIE%5%P4BAQH/AQEd/wEApv8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANz/AABo/wAAOP8AAB7/AAAL/wAAAw%159%FA8tGZQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLxQPLRB%213%PgHBwL5BgcH+AcHEPkHBh/5BgZN+AYHsfgGB/v4Bwf/+AYG//gHBv/4Bgf/+QYH//kGBv/5Bgb/+gYG//oFBf/6BQX/+gQF//sEBP/7BAP//AQE//wDA//8AwP//QID0/0CAjP9AgEP/QEBAv4BAUf+AQDX/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAx/8AAFz/AAAz/wAAGP8AAAj/AAAB%160%UDy0elA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zFA8tEQ%207%D5BgcB+QcHAvgHBwj4BwYT+AYGIfgHB2j5BgfW+QcH/PkHBv/5Bwf/+AYH//gHBv/5Bgb/+QUF//oFBv/7BQX/+gUF//sFBP/7BAT//AME//wDA//8AwL//AMD//wCAsv+AgI8/QEBfP4BAfb+AQH//wEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPv/AAC6/wAAUP8AAC7/AAAV/wAABv8AAAE%159%BQPLSYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0Mw%207%PkHBwH4BwcD+QcHCvgHBhb5Bwcy+QYHh/kHB/H4Bwf/+AcH//kGBv/5Bgb/+QYG//oFBv/6BQX/+gUF//oFBP/7BAT/+wQD//sDA//8AwP//QMD//0DAv79AgLp/gIC+/4CAf/+AQH//wAB//8AAP//AAD//wAA//8AAP//AAD//wAA+f8AAKL/AABJ/wAAKf8AABH/AAAF%165%FA8tJdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tJZQPLQO%208%+AYGAfkHBwT4BgYO+QYGGfgHB0n5Bwe7+QcH+vkHBv/5Bgb/+gYF//kGBv/6BgX/+wUF//oEBf/7BAT/+wME//wDA//8AwP//AMD//wCAv/9AgL//QIC//4BAf/+AQH//gAA//8AAf//AAD//wAA//8AAP//AAD1/wAAmf8AAEP/AAAm/wAADv8AAAQ%170%FA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0VQ%212%D4BwcC+AcHB/kHBxL5BgYm+QcHb/kGB+n5Bwf++QYG//kFBv/5BgX/+wUF//sFBf/7BAT/+wME//wDA//8AwT//AMD//0DAv/9AgL//QIC//4CAf/+AgH//gAB//4AAP//AAD//wAA//8AAPT/AACF/wAAQP8AACL/AAAN/wAAAw%175%FA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tK1QPLQP%208%+AcHAfkHBwT4BwcL+QcHF/gHBj/5Bgau+QYG+/oFBv/6BQX/+gUF//sFBf/7BQT/+wQE//sEBP/8AwP//AMD//wCA//9AgL//gEC//4CAf/+AQH//gEA//4BAf//AAD//wAA6/8AAHz/AAA7/wAAH/8AAAv/AAAC%181%FA8tHVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0Mw%212%D5BwYB+QcHBvgHBhH5Bwci+QYHbPoGBuX5Bgb++gUG//oFBf/7BAT/+wUE//sEBP/8AwT//AMD//0CAv/9AgL//QIC//4BAf/+AgL//gEB//8AAP/+AADs/wAAcv8AADr/AAAd/wAACv8AAAI%191%BQPLSNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tFs%213%+AcHAfgHBwP4BwcK+QYGFfkGBkD5BQWz+gUF/PoFBf/7BAT/+wQE//sEBP/7BAP//AME//wDA//8AgL//QIC//0CAv/9AgL//gEB//8BAPf/AAB5/wAAPP8AABz/AAAI/wAAAQ%202%UDy0f1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRt%218%D5BwYB+AYGBfkGBhH6BQYk+gUFqfsEBf77BAX/+wUF//sEBP/7BAP//AMD//wDA//9AwL//QMD//0BAv/+AQL//gEB//4BAf/+AAG//wAANP8AABH/AAAD%213%FA8tGhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0iw%218%+AcGAfkGBgn6BgaD+QUF8foFBf/7BQX/+wUE//sEBP/7BAT//AMD//wDBP/9AwP//QMC//4CAv/+AQL//gIB//4BAf//AAD8/wAAjf8AABr/AAAI/wAAAQ%212%BQPLRSUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHM%213%+AcHEfkGB5X6BgX7+gYF//oFBf/6BAX/+wUE//sEBP/7AwT//AMD//wDA//8AwL//AMD//0CAv/+AgL//gIB//4BAf/+AQD//wAA9/8AAGH/AAAU/wAABg%218%UDy0OlA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRf%202%D5BwcZ+AYHvfkGB/75Bgb/+gYG//oFBf/6BQX/+gQE//sEBP/7BAT//AQE//wDA//9AwP//AMD//0CAv/9AgL//gIB//4BAf/+AAD//wAA//8AAOT/AABE/wAAEf8AAAQ%218%FA8tCJQPLTfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0O%187%9wcIAfkHByz5BgfN+QcH//kGBv/5Bgb/+QYG//oFBf/6BQX/+gUE//sEBP/7BAT//AQE//wEA//9AwP//QID//0CAv/9AgL//QIC//4BAf//AQH//gAB//8AAf//AADB/wAAKP8AAAz/AAAC%218%BQPLQXUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tAw%175%D4BwcB+AcGPPgHB9/4Bwb/+AcH//kHBv/5Bgb/+gYG//kGBf/6BQX/+gUE//oFBP/7BAX/+wQE//wDA/38AwP//AMD//0CA//9AgL//QIB//4CAv/+AQH//wEB//8AAP//AAD+/wAAn/8AAB3/AAAI/wAAAQ%218%UDy0ClA8tLFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKM%165%+AcGAfgGBwP5BwdU+AcH7fgGB//5Bgf/+AcH//kHB//5Bgb/+QYG//kFBv/6BQX/+wUF//oFBP/7BAT/+wQE5fwDBIr8AwPM/AMD//0DA//9AgL//QIC//0BAv/+AQH//gEA//8BAP//AAD//wAA9f8AAGb/AAAV/wAABQ%223%FA8tAFQPLSXUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ7%160%+QcGAvkHB2D5Bgfx+AYH//kGBv/4Bwf/+QYH//kHBv/4Bgb/+QYG//oGBv/6Bgb/+gUF//sEBP/7BATp+wQEbPwDBD78AwM6/AMDuP0DA/79AgL//gIC//0CAf/+AQL//gEB//8AAP//AAD//wAA//8AAOX/AAA8/wAAEP8AAAQ%229%UDy0cVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%10%BQPLQRUDy0MVA8tFJQPLRvUDy0lVA8tMdQPLTwUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTI%149%PgGBgH4BwYE+AYGcvgHB/r4Bwb/+QcG//kHB//5Bwb/+AcG//gHB//4Bwb/+QYG//kGBv/6BgX/+gUF//oEBev7BARy+wQENvsEBBz8AwQU/AMDKP0DA6b8AgL//QIC//4CAv/+AgH//gAB//4AAP//AAD//wAA//8AAP//AAC8/wAAJv8AAAz/AAAB%229%FA8tFNQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%48%UDy0LFA8tGFQPLSgUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Pw%138%+QcHAfkGBgT4Bgd5+QcG/PkHB//5Bwb/+AYH//gGB//5Bwf/+AcH//kGBv/5Bwf/+QYG//oGBv/5Bgb/+gUF8/oFBX/6BQU6+wQEGvwEBAj7AwQD/AMDDP0DAx39AgKV/QIC+f4CAv/9AQH//gEB//8AAf//AAD//wAA//8AAP//AAD7/wAAe/8AABj/AAAH/wAAAQ%228%BQPLQ7UDy051A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%69%FA8tClQPLSAUDy0z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rg%132%D4BgcB+QcGA/gGB3/5Bgf8+QcH//kHB//4Bwf/+QYH//gGBv/5Bgf/+AcG//gHBv/5Bwb/+AYG//kGBv/5Bgb8+gYGlfoFBT37BQQe+wUECfsEBAE%5%/AMDAvwCAwr8AwIb/QICi/4CAvn+AgH//gEB//4BAP/+AAD//wAA//8AAP//AAD//wAA7v8AAEz/AAAS/wAAAw%234%UDy0IlA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%85%FA8tCdQPLSEUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tBU%122%PkHBgH5BQcG+QcHfPgHB/75Bgb/+AYH//kGB//4Bwf/+QcG//gHB//5Bwf/+QcH//gHBv/5Bgf/+AcG//kGB/75Bgax+gUGRPkFBSL6BQQK+wQFAg%15%PwDAwL8AgIJ/QMCGP4CAYD+AQL2/gEB//4BAP//AQH//wAB//8AAP//AAD//wAA//8AAML/AAAp/wAADP8AAAI%234%FA8tBRQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0CFA8tFpQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tF4%117%+QcGAfkHBwP5Bwd8+QcG+/gHB//4Bwf/+QcH//kGB//5Bwf/+AcH//kHBv/5Bwf/+AcH//kHB//5Bwf/+QcH//kGBtD6BgZR+gYGKPoFBg36BQUC%26%D9AwMB/QIDCP0CAhf9AgJ5/gIB9/4BAf//AQH//wAA//8AAP//AAD//wAA//8AAPv/AAB7/wAAF/8AAAc%239%BQPLQJUDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%112%UDy0UVA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ8%117%+QcGBPkHBm34Bwf7+QYH//gGB//4Bwf/+AcH//kHB//5Bwf/+AcH//kHB//4Bwb/+AcH//gHB//4Bgf/+AcG5/gGB2D5BgYv+gUFEvoFBgM%37%/QICAf0CAgj+AgEW/gEBgP4BAfn+AQH//wAB//8AAP//AAD//wAA//8AAP//AADt/wAARP8AABH/AAAD%245%FA8tI5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%122%BQPLRoUDy08FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMw%111%D5BwcB+QcHXPgHB/T4Bwb/+QcG//kHB//5Bwf/+AcH//kHBv/5Bwf/+QcG//kHBv/4Bgb/+QcH//kHBv/5Bgf7+AcHhPkGBjj5BgYX+QYGBQ%47%P0DAgH9AgII/QECGP4BAYP+AQD7/wEA//4AAP//AAD//wAA//8AAP//AAD//wAAsv8AACP/AAAK/wAAAQ%244%BQPLRmUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%128%UDy0HFA8tMBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO4%106%PkJBQH5BgdD+AcG7/gHBv/5Bgf/+QcG//gHB//4Bgf/+AcG//kHB//5Bwf/+AcH//gHB//4Bwf/+QcG//gGB/75Bwen+QcHPvkHBh75BgYI+QYGAQ%52%D+AgIB/QEBCf4BARj+AQGX/gEB/v8AAf//AAD//wAA//8AAP//AAD//wAA9/8AAGL/AAAV/wAABg%250%UDy0RFA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2%133%FA8tARQPLSVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%101%+QcGAfkHByv4Bgfg+QcG//kHB//4Bwb/+QYG//kHB//4Bgb/+QcG//gHBv/5Bwf/+AcH//gGBv/5Bwf/+QcG//kHB9D4BwZP+QcGJ/gHBgv5BwcC%64%/QICAf0BAgn+AQEc/gEBo/8AAP//AAD//wAA//8AAP//AAD//wAA//8AANv/AAAx/wAADv8AAAI%250%FA8tCtQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTd%144%UDy0i1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%95%D6BwcB+AcHFPgGB8j4Bwf/+AcG//gHB//4Bgf/+QcG//kHB//4Bwb/+QcG//kHB//4Bwf/+AYH//gHB//4Bgf/+QcH7vgHBmr5BwYw+AYHEfgHBgM%74%P4CAQH+AQEK/gEBJP8BALz/AAD//wAA//8AAP//AAD//wAA//8AAP3/AACQ/wAAHP8AAAc%255%BQPLQRUDy0wlA8tP9QPLT/UDy0/1A8tP9QPLSb%149%FA8tItQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%90%PkHBwH4BgcJ+AYHp/kHBv/4Bgf/+QYG//gHB//4Bgb/+AcH//kHBv/4Bwf/+QYH//kHB//4Bwf/+QYH//kHB//4Bgf7+QcHjPkGBzn5BwcY+QYGBQ%84%D9AQEC/gEBC/4AASv/AQDT/wAA//8AAP//AAD//wAA//8AAP//AADq/wAAQ/8AABL/AAAD%256%UDy0B1A8tIlQPLT8UDy0+1A8tKFQPLQK%154%BQPLSnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPs%95%D5Bwdk+QcH+fgGB//4Bwf/+QcH//kHBv/4Bgf/+QcG//kHBv/4Bwf/+QcH//gHB//4Bwf/+AcH//kGB//5BwbA+QcHR/gHByL5BgcJ+AcHAQ%90%/gEBA/8BAAz/AABD/wAA5v8AAP//AAD//wAA//8AAP//AAD//wAAt/8AACP/AAAK/wAAAQ%436%BQPLQLUDy03lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN0%85%+AcGAfkGBy35Bgbw+QcH//kHB//5Bwf/+QYH//gGB//5Bgf/+AcG//kHB//4Bwb/+AcH//gGB//4Bgf/+QcH//kHBuf5Bwdb+AcGK/gHBg75BwcC%101%P4AAAT/AQEO/wAAZP8AAPn/AAD//wAA//8AAP//AAD//wAA9v8AAGP/AAAW/wAAB%443%UDy0UFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL%80%D4BwYB+AcHC/gHBrb4Bwf/+QcH//gHB//5Bwf/+QcG//gGB//4Bgf/+QcH//gHB//4Bwf/+AYH//kHB//4Bwb/+AYH9/kHB4H4Bwc2+QcHFfgHBgU%111%D+AQEF/wAAEv8AAIb/AAD7/wAA//8AAP//AAD//wAA//8AAMb/AAAp/wAADf8AAAE%442%FA8tNJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHk%85%+AcGWfkHBvz5Bwb/+QYG//kHBv/4Bwb/+QYG//gHBv/4Bgf/+AcH//gHB//5Bgf/+QcH//gHB//4Bwf/+AcHu/gHBkT5BwYf+AYHB/gGBwE%111%D/AAAB/wEAB/8AAB3/AAC8/wAA//8AAP//AAD//wAA//8AAP//AABu/wAAFv8AAAU%442%FA8tHZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCo%74%PgHBwH5BwcV+AcH4PgHB//4Bgf/+QcH//kGB//5Bwb/+QcH//kHB//5Bwb/+QcH//gHB//5Bwb/+QYH//gHB//5Bwfh+QcHV/gHByn4BwcN+AcHAg%122%/wEAAf8AAAn/AAAu/wAA2/8AAP//AAD//wAA//8AAP//AADW/wAAMP8AAA3/AAAC%437%FA8tDFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01%80%PgHBwL5BgZ2+AYG/fgGB//5Bwf/+AYH//gHB//4Bwf/+AcG//gHB//4Bwf/+AcG//kHB//4Bwf/+AcH//gHB/j4BwaB+QcHNfkGBxT5BwcD%133%P8AAAP/AAAN/wAAWf8AAPT/AAD//wAA//8AAP//AAD4/wAAcf8AABn/AAAF%442%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ag%79%PgHBw/4BwbO+QYH//kHBv/5Bwb/+AYH//kHBv/5Bwf/+QcG//gGB//4Bgb/+QYH//gHB//5Bgf/+QYH//gHB7r5BwdD+QcGHvkHBgf5BwcB%138%D/AAAE/wAAEf8AAJP/AAD//wAA//8AAP//AAD//wAAyP8AACn/AAAN/wAAAQ%436%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0Cg%79%PkHBkb4Bgf9+QcH//gGBv/5Bwb/+AYH//gHB//4Bwb/+AcG//kHB//4Bwf/+AcG//kHBv/4Bwb/+QcG4/kHB1j4BwYp+AcGDfkGBwE%143%D/AAAB/wAAB/8AAB7/AADO/wAA//8AAP//AAD//wAA/v8AAGT/AAAX/wAABQ%436%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRs%85%PkHB6H4Bgb/+QYH//kHBv/4Bwf/+QYH//kHBv/4Bwb/+AYH//kHBv/4Bgb/+QYH//gHBv/4Bwf5+QYGifkGBzj5BwYV+QcHB%155%/wAAAf8AAAv/AABW/wAA9v8AAP//AAD//wAA//8AAMH/AAAp/wAACv8AAAE%426%FA8tBdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNRQPLQE%80%+QcHGPgGB+j4Bgb/+AcH//gHB//4Bgf/+AcG//kGBv/5Bwb/+QYH//kGBv/5Bwf/+AcH//gGB//5Bwbw+AcHWPgGByT5BwYJ%165%P8AAAT/AAAP/wAAnv8AAP//AAD//wAA//8AAO7/AABN/wAAFP8AAAM%426%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tDU%79%D5BgcB+AcHQ/gGBvj4Bwf/+AcH//gHB//5Bwb/+QcH//kHB//5Bwf/+QcH//kHB//4Bwf/+QcH//kHBv/5Bwfs+QcGS/kHBhn5BwcE%170%D/AAAH/wAAJf8AANj/AAD//wAA//8AAP7/AACL/wAAHv8AAAc%426%FA8tKNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0dw%84%D4BwcC+QcHZ/kHB/v5Bwf/+AcH//gGBv/4Bwb/+AcH//kHBv/5Bwf/+AYH//kHB//4Bgf/+QcG//gHB//5Bwfs+AYHR/gGBhb5BgYD%170%D/AAAC/wAADP8AAGf/AAD8/wAA//8AAP//AADR/wAALf8AAA7/AAAC%416%UDy0FlA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSq%90%D4BgYC+AcHe/gHB/35Bwf/+QYH//kHBv/4Bgb/+QcH//kHBv/5Bgf/+AcG//kGB//4Bwb/+AcH//gGB//4Bwfs+AcGR/kHBhb5BwcD%176%/wAABP8AABL/AACz/wAA//8AAP//AAD8/wAAVP8AABX/AAAD%416%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQJ%90%D5BwcD+AcHgPkGB/35Bwf/+QcH//gHB//4Bgb/+QcG//gGB//5Bwf/+QcH//gGBv/5Bwb/+QYH//kHB//4Bwbs+QcHR/kHBxX4BwcD%176%/wAAAf8AAAj/AAAy/wAA4/8AAP//AAD//wAAjf8AAB//AAAG%410%BQPLQ0UDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00lA8tAs%95%D5BgcE+AYHePkGBvz5Bwf/+AcH//kGB//5Bwb/+QcH//gHB//4Bgf/+QcH//kGBv/4Bwf/+QYH//gGB//5Bwbm+QYHQPgGBxX4BwYD%181%P8AAAP/AAAO/wAAfP8AAP3/AAD//wAAvP8AACr/AAAL%405%FA8tBBQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTDUDy0EQ%100%D4BwcD+AcHXfgGB/r4Bwb/+QcH//kGB//4Bwf/+QcH//kHB//5Bwf/+AYH//gHB//4Bwb/+AcH//kHB//4BwfQ+QYHOPkHBhL5BwYC%186%D/AAAF/wAAF/8AALz/AAD//wAA1v8AADb/AAAP/wAAAQ%394%UDy0ClA8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLVQPLQK%106%D4BgcC+QYGNfkGB/b4Bwf/+QcH//gHBv/4Bwb/+QcH//gGB//5Bwf/+QcH//gGB//4Bwf/+AYG//kGB//4Bwem+AcGLfgHBw75BgYB%186%D/AAAB/wAACf8AADr/AADp/wAA3v8AADz/AAAS/wAAAg%388%BQPLQKUDy0uVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0hVA8tAI%111%D4BwcC+AYGEPgHB9P5Bgf/+AcG//gHBv/4Bwf/+AcG//gHB//5Bgf/+AcH//gGB//5Bwb/+QcH//kHB/34BwZt+AcHJvkHBgn4BwcB%192%/wAAA/8AAA7/AAB2/wAA0v8AADH/AAAR/wAAAg%383%FA8tBxQPLTKUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRL%128%9wgHA/kGB275Bwf/+QYG//kHBv/4Bgf/+AcH//kHB//5Bwf/+QcH//gHB//4Bwb/+AcH//kHB9H5BwdF+QcHG/gHBgU%202%P8AAAb/AAAT/wAAOv8AABz/AAAK/wAAAQ%378%UDy0PlA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0s1A8tBc%133%+QYHBPkGBxv5BwfO+AYG//gHB//5Bwf/+QcH//kGB//4Bwf/+QcG//kHB//5Bwf/+AcH+fkHB4T5Bwcx+AcHD/kHBwI%202%P8AAAH/AAAG/wAACv8AAAr/AAAE%373%FA8tA9QPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLRS%144%+QcGAfgHBgr5BwZS+QYH8/kHBv/5Bwf/+QcH//gHBv/5Bwb/+QYH//gGB//4Bwf/+AcHs/gHB0H4Bwcd+QYHBw%212%D/AAAB/wAAAf8AAAH/AAAB%368%UDy0W1A8tOdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0ilA8tAs%154%PkHBgT5BgYO+QYHYvgHB+n5Bgb/+AYH//gHBv/4Bgb/+AYG//kHB/n5Bwa5+AcHSvkHBif5BgcN+QcHAQ%591%FA8tFFQPLTSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tJZQPLQb%165%PkHBwH5BwcG+QcGEvkHBkj5Bweq+QcG5fgHB/v4Bwbx+AYHzfgGB4b5BwdE+AcHJ/gGBxD4BgcD%592%UDy0blA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLSNUDy0Gw%186%+AcHBfkGBxH4Bwce+QcGOPgHBkz5BwdL+AcHPPkHBy/5Bwce+QYHDfgGBwM%597%UDy0mFA8tP9QPLT/UDy0/1A8tP9QPLTeUDy0clA8tA4%202%PkHBwP5BwcJ+QYHEPgGBxb4BgcY+AcGFfgHBg75BwYH+QcHAg%602%UDy0PlA8tOtQPLTtUDy0nlA8tERQPLQB%10133%FA8tEFQPLTPUDy0/1A8tOhQPLR3%128%UDy0Z1A8tOhQPLT/UDy01lA8tEQ%709%UDy0LFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0ag%116%BQPLRiUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLQ0%704%UDy0kFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy06FA9tAM%106%FI+tQFQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSY%704%UDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFg%106%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSe%704%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL0%106%FA8tLNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR3%704%UDy0D1A8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQo%96%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLQZ%709%FA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSU%96%UDy0h1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKg%714%FA8tDRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0D%85%BQPLQHUDy061A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tE%720%BQPLTIUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0a%85%BQPLRbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00Q%724%BQPLRjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00g%84%BQPLTJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0aw%724%BQPLQIUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDg%74%FA8tDFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTwUDy0Dg%730%UDy0ilA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%74%FA8tJxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSa%736%UDy0JFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLQV%64%UDy0DVA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQt%741%FA8tLlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR9%64%UDy0blA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMM%746%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUj+1AQ%58%UDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFs%746%FE+tAFQPLTlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0U%53%BQPLRAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06FA8tAc%751%BQPLR6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0tQ%52%BQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0h%757%BQPLQTUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tBk%42%FA8tApQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Hg%762%UDy0olA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDI%42%FA8tCpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSv%768%UDy0O1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07lA8tAk%42%FJAtQFQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ/%506%BRPrQBUDy0IVE9tAM%111%BQPLQsUDy0kFA8tJ5QPLR/UDy0GQ%111%FA8tJhQPLT/UDy0/1A8tP9QPLT+UDy0Xw%52%BQPLRVUDy0/lA8tP9QPLT/UDy0/1A8tJs%111%BQPLQUUDy0eFA8tJ5QPLSYUDy0N%357%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tJ1QPLQD%101%FA8tEFQPLT4UDy0/1A8tP9QPLT/UDy0/FA8tKhQPLRB%106%BQPLRQUDy0mFA8tI9QPLQ2%64%UDy0MFA8tI9QPLSYUDy0Ww%106%UDy0PVA8tKdQPLT4UDy0/1A8tP9QPLT/UDy0+FA8tEQ%335%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLSdUT20Aw%95%FA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01lA8tGtQPLQR%288%UDy0DlA8tGpQPLTRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNY%319%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0nVE9tAM%90%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0mlA8tC8%266%FA8tCxQPLSTUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%303%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ1RPbQD%85%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTDUDy0XFA8tAc%234%FA8tAdQPLRUUDy0wFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOg%287%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUDy0Aw%79%FA8tGFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLSIUDy0Hg%212%BQPLQYUDy0glA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGc%271%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0nVE9tAM%79%BQPLRZUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tK9QPLRH%192%UDy0PVA8tK9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0Yg%260%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ1RPbQD%80%Uj61AVA8tEVQPLSzUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qw%74%UDy0EFA8tEBQPLRkUDy0ZFA8tEJQPLQT%74%BQPLSbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0tVA8tE9SP7UB%250%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUT20Aw%90%UDy0HFA8tIZQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGI%58%FA8tEpQPLS6UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xFA8tFY%58%FA8tFtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tI5QPLQk%250%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0nVA8tAM%95%BQPLQHUDy0W1A8tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKE%47%BQPLQYUDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0Hw%47%FA8tJhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMlQPLReUDy0CQ%244%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ1RPbQD%106%BQPLQwUDy0mlA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ0%42%FA8tCFQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07VA8tD%43%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLSdUDy0Mg%244%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUT20Aw%111%FA8tA1QPLRuUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tDY%37%UDy0EVA8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOdQPLQf%37%FA8tDBQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTaUDy0cFA8tBQ%245%UDy0HVA8tGxQPLTHUDy091A8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0mFI+tQE%122%FA8tD9QPLSrUDy0/FA8tP9QPLTuUDy0Xw%42%UDy0r1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/%42%BQPLRVUDy051A8tP9QPLT9UDy0rVA8tEc%261%UT20A1A8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tDhQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLRiUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BQ%138%UDy0ClA8tC1RPrUB%42%BQPLRAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0V%43%UkC1AVA8tCpQPLQO%352%UDy0UlA8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI8%287%BQPLStUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0x%400%FA8tANQPLRwUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rVE9tAM%282%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tBM%389%UDy0BFA8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTNUDy0Ew%287%FA8tDVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tEo%383%BQPLQTUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLQj%293%FA8tF9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%378%FA8tDJQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tDQ%298%FA8tGRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGY%373%UDy0UlA8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0Yg%303%FA8tFRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%362%FA8tANQPLRwUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR/%309%FA8tClQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDo%357%UDy0BFA8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ5RPbQD%309%FJAtQFQPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tAo%351%BQPLQUUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zVA8tBE%261%UDy0E1A8tDJQPLQJ%42%BQPLSPUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0og%42%UDy0CFA8tDJQPLQZ%293%FA8tDJQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTrUDy0F%251%Uj+1AVA8tEdQPLS0UDy0/VA8tP9QPLTyUDy0Yw%36%BQPLQfUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0Kw%36%BQPLRfUDy07lA8tP9QPLT/UDy0tFA8tFBSP7UB%272%UDy0YVA8tO5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLQy%245%FA8tBRQPLR0UDy031A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tD0%37%UDy0fVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSO%37%FA8tDBQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0d1A8tBU%250%FA8tANQPLR/UDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tGE%239%BQPLQ3UDy0oFA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ0%37%UT60AVA8tLdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMFQPLQJ%37%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSkUDy0O%235%UDy0EVA8tJ5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0fw%228%BQPLQMUDy0Y1A8tMpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKE%42%FA8tAlQPLSyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vlA8tAs%42%FA8tJhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNJQPLRmUDy0D%213%BQPLQ0UDy0zVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUDy0Aw%218%UDy0JFA8tI5QPLTtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFs%53%UDy0dlA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLR7UT20Aw%47%FA8tFBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tJNQPLQo%85%FA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tGJQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9QPLQJUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVRPrUB%96%UD20A1A8tE9QPLS7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0mw%63%FA8tA9QPLRyUDy0vlA8tPlQPLT/UDy0/1A8tPxQPLTFUDy0fVA8tBQ%63%BQPLSYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vVA8tFhQPbQD%64%UT60AVA8tJhQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT0UDy0q1A8tFpQPLQP%90%BQPLRiUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tKpQPLQ9%90%BRPbQBUDy0Bg%90%UDy0O1A8tKdQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0ag%63%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%101%FA8tGFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOVQPLSCUDy0G%213%BQPLQTUDy0elA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHs%63%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%117%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS+UDy0VFE+tQE%234%FE+tAFQPLRMUDy0uVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOo%69%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%133%FA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0klA8tCw%266%FA8tCRQPLSMUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%74%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%149%FA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00FA8tGRQPLQM%288%UDy0CFA8tGNQPLTJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNY%79%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%165%FA8tDlQPLT1UDy0/1A8tP9QPLT/UDy0+FA8tKJQPLQ5%106%BQPLRbUDy0oVA8tJ1QPLQ9%64%UDy0NlA8tJNQPLShUDy0Yg%106%UDy0NVA8tKBQPLT4UDy0/1A8tP9QPLT/UDy0+FA8tEQ%85%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%186%BQPLQkUDy0jlA8tJ5QPLR4UDy0FQ%111%FA8tJtQPLT/UDy0/1A8tP9QPLT/UDy0Yw%52%BQPLRVUDy0/lA8tP9QPLT/UDy0/1A8tKs%111%BQPLQPUDy0c1A8tJ1QPLSQUDy0L%96%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%336%UDy0PFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tAk%42%FJAtQFQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRH%234%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%352%UDy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDI%42%FA8tCpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS3%240%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%362%BQPLQWUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tBk%42%FA8tApQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Hg%239%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%378%BQPLR5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0t%53%BQPLSoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ig%244%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%389%FE+tAFQPLTlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0T%53%BQPLQ/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tAc%245%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%405%FA8tFBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTfUj+1AQ%58%UDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFw%250%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%421%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR0%64%UDy0bFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMM%255%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%432%UDy0JlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLQV%64%UDy0DVA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQv%256%UT20A1A8tJ1QPLT6UDy0sVA8tGBQPLQU%448%UDy0jFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKQ%74%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSb%261%FE9tANQPLQT%458%BQPLQIUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDg%74%FA8tC9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0EQ%724%BQPLRjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00Q%84%BQPLTEUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0bQ%724%BQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Zg%84%BQPLRbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01g%719%FA8tDVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTtUDy0D%85%BQPLQHUDy061A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tEE%714%FA8tKFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLST%96%UDy0hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tK0%709%UDy0EFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQo%96%UDy0HFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLQZ%704%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLw%106%FA8tLJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSB%704%UDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFQ%106%FA8tEVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSe%704%UDy0jlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA9tAM%106%FI+tQFQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSY%704%UDy0JFA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0Yw%116%BQPLRZUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLQ0%709%FA8tDlQPLTIUDy0/lA8tOhQPLRn%128%UDy0YVA8tOVQPLT/UDy0z1A8tEE%7914%FA8tAJQPLQNUDy0RVA8tG9QPLSFUDy0vFA8tMFQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tMFQPLS3UDy0g1A8tG1QPLRFUDy0DVA8tAI%762%FA8tBlQPLRaUDy0nFA8tNdQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tNZQPLSdUDy0W1A8tBk%730%FA8tBpQPLRtUDy0vFA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLS8UDy0bVA8tBo%485%UDy0P1A8tJZQPLTWUDy0+VA8tPlQPLTWUDy0llA8tD8%170%FA8tAJQPLREUDy0rFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLSrUDy0Q1A8tAI%458%FA8tBpQPLSTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSTUDy0Gg%148%BQPLQCUDy0SlA8tMdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMdQPLRKUDy0Ag%442%UDy0GlA8tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tBo%138%FA8tD9QPLTJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03VA8tLFQPLSUUDy0XVA8tFlQPLQjUDy0HFA8tBxQPLQcUDy0HFA8tBxQPLQcUDy0JFA8tFhQPLRdUDy0lFA8tLBQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yVA8tD4%437%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJM%127%BQPLQWUDy0plA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0nFA8tFVQPLQXUDy0Ag%84%BQPLQCUDy0FlA8tFRQPLScUDy031A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSlUDy0Fw%420%BQPLQ/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ/%117%FA8tExQPLTmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0j1A8tDFQPLQE%128%UDy0BFA8tDFQPLSPUDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA8tEw%415%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSW%106%BQPLQEUDy0j1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z1A8tFpQPLQJ%160%UDy0CVA8tFlQPLTPUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLSPUDy0Aw%404%BQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%101%FA8tA1QPLTBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9QPLRRUDy0Ag%180%BQPLQCUDy0UVA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wVA8tA0%399%BQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5%96%UDy0EFA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTwUDy0a1A8tAQ%202%FA8tAVQPLRsUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQQ%394%BQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5%90%BQPLQOUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLlQPLQf%224%UDy0HVA8tLlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTHUDy0Dg%388%BQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%85%FA8tA9QPLTFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0ew%244%BQPLR7UDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xVA8tA8%383%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSW%80%UDy0AlA8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLRN%256%UDy0TVA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKtQPLQC%378%BQPLQ/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ/%80%UDy0cVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tEs%266%FA8tEtQPLT3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRx%384%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJM%79%BQPLQsUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT3UDy0Sg%276%BQPLRKUDy091A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0LQ%378%UDy0GlA8tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tBo%74%FA8tANQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRc%288%UDy0XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wlA8tAM%378%FA8tBpQPLSTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSTUDy0Gg%79%FA8tE9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJpQPLUB%288%UDy1AVA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tE8%389%UDy0P1A8tJZQPLTWUDy0+VA8tPlQPLTWUDy0llA8tD8%85%UDy0A1A8tNFQPLT/UDy0/1A8tP9QPLT/UDy03VA8tA0%298%FA8tA1QPLTdUDy0/1A8tP9QPLT/UDy0/1A8tNFQPLQD%277%FE9tAJQPLSlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%149%UDy0SlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0W%309%BQPLRYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRK%282%BQPLQFUDy0plA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%149%UDy0qVA8tP9QPLT/UDy0/1A8tP9QPLTSUDy0BQ%308%BQPLQFUDy00lA8tP9QPLT/UDy0/1A8tP9QPLSp%288%UDy0BVA8tKZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLQLUDy081A8tP9QPLT/UDy0/1A8tP9QPLRe%320%UDy0XlA8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Cw%287%FA8tAVQPLSmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLRNUDy0/1A8tP9QPLT/UDy0/1A8tO9QPLQM%320%UDy0DFA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0Tg%292%BQPLQFUDy0plA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLSHUDy0/1A8tP9QPLT/UDy0/1A8tLM%330%FA8tLFQPLT/UDy0/1A8tP9QPLT/UDy0hw%298%UDy0BVA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLS+UDy0/1A8tP9QPLT/UDy0/1A8tH%331%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0vg%298%UDy0fFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tEQ%330%FA8tEVQPLT/UDy0/1A8tP9QPLT/UDy01w%292%BQPLQIUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCQ%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLQOUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCQ%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLQEUDy06FA8tP9QPLT/UDy0/1A8tP5QPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCQ%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/w%271%FNAtQJQPLRlUDy01VA8tNVQPLRlUDy0N1A8tOhQPLT+UDy0+FA8tHxQPLQFUDy0plA8tP9QPLT/UDy0/1A8tP8%143%BQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tCU%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/g%271%FA8tGVQPLT+UDy0/1A8tP9QPLT+UDy0ZVA8tARQPLQOUDy0C%11%UDy0BVA8tKZQPLT/UDy0/1A8tP8%143%BQPLTGUDy0/1A8tP9QPLT/UDy0/1A8tFs%330%FA8tFRQPLT/UDy0/1A8tP9QPLT/UDy0y%272%FA8tNVQPLT/UDy0/1A8tP9QPLT/UDy01Q%31%FA8tAVQPLSmUDy0/1A8tP8%143%BQPLSsUDy0/1A8tP9QPLT/UDy0/1A8tI0%213%UDy0BQ%111%FA8tIBQPLT/UDy0/1A8tP9QPLT/UDy0sw%271%FA8tNVQPLT/UDy0/1A8tP9QPLT/UDy01Q%36%BQPLQFUDy0plA8tP8%143%BQPLRvUDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQC%208%UDy0n1A8tFNQPLQB%101%FA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0f%256%FA9tAhQPLQOUT20BFA8tGVQPLT+UDy0/1A8tP9QPLT+UDy0ZQ%42%UD20BVA8tKU%143%BQPLQtUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLQ9%208%UDy0sFA8tP9QPLSTUDy0Cg%90%UDy0HFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0P%251%UDy0fFA8tPhQPLT+UDy06FA8tDdQPLRlUDy01VA8tNVQPLRlUDy0Ag%47%FE9tAI%143%BQPLQDUDy01lA8tP9QPLT/UDy0/1A8tP9QPLSx%208%UDy0sFA8tP9QPLT/UDy0y1A8tCM%85%UDy0d1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0B%245%BQPLQ1UDy0/lA8tP9QPLT/UDy0/1A8tOhRPbQE%224%UDy0b1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0T%203%UDy0sFA8tP9QPLT/UDy0/1A8tPNQPLRY%74%BQPLQLUDy06FA8tP9QPLT/UDy0/1A8tP9QPLSb%250%BQPLSGUDy0/1A8tP9QPLT/UDy0/1A8tP5QPLQO%224%UDy0CVA8tOZQPLT/UDy0/1A8tP9QPLT/UDy02FA8tAw%197%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0mFA8tAo%63%BQPLR1UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLQv%250%BQPLRaUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLQI%229%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKdQPLQD%192%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNBQPLQk%53%FA8tCBQPLTzUDy0/1A8tP9QPLT/UDy0/1A8tLI%239%BQPLQ1UDy0hlA8tFpQPLQIUDy0zFA8tP9QPLT/UDy0/lA8tHw%234%FA8tAVQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRz%192%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0XFA8tQE%37%UDy0BlA8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tD%235%FA8tHxQPLT+UDy0/1A8tP9QPLTMUDy0CFA8tFpQPLSGUDy0NQ%244%BQPLQyUDy081A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0d%187%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJxQPLQJ%32%UDy0ilA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0n%235%UDy0CFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0Wg%266%UDy0a1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHU%181%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTUUDy0Jw%20%BQPLQqUDy09lA8tP9QPLT/UDy0/1A8tP9QPLTlUDy0FQ%234%UDy0DlA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0hg%266%UDy0BFA8tKBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR3%176%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tGFQPLQB%16%UDy0LlA8tNRQPLT/UDy0/1A8tPxQPLRJ%240%UDy0BFA8tOhQPLT/UDy0/1A8tP9QPLT+UDy0NQ%271%FA8tANQPLSuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0kFA8tAc%165%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLShUDy0EQ%15%FA8tBBQPLShUDy0/1A8tHw%170%FE9tAI%47%BTQLUCUDy0ZVA8tNVQPLTVUDy0ZVA8tDdQPLToUDy0/lA8tPhQPLR8%282%BQPLQRUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLJQPLQV%160%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tDs%15%BQPLQDUDy0PFA8tAM%170%FA8tKVQPLQF%42%BQPLRlUDy0/lA8tP9QPLT/UDy0/lA8tGVQPLQEUDy0DlA8tAg%293%UDy0ElA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0Lw%4%BQPLQRUDy0M1A8tGpQPLRzUDy0qVA8tKpQPLSqUDy0qlA8tJBQPLRsUDy0UlA8tCk%85%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLR1%197%FA8tP9QPLSmUDy0BQ%36%BQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tNU%314%FA8tARQPLSbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tMlQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTnUDy0oVA8tFJQPLQF%64%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0tVA8tAk%186%FA8tP9QPLT/UDy0plA8tAU%31%BQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tNU%319%BQPLQCUDy0ilA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTkUDy0eFA8tAY%53%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL9QPLQi%181%FA8tP9QPLT/UDy0/1A8tKZQPLQF%10%BQPLQIUDy0DlA8tARQPLRlUDy0/lA8tP9QPLT/UDy0/lA8tGU%330%FA8tGZQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNlQPLQ2%48%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0Qg%175%FA8tP9QPLT/UDy0/1A8tP9QPLSmUDy0BVA8tHxQPLT4UDy0/lA8tOhQPLQ3UDy0ZVA8tNVQPLTVUDy0ZVA8tAI%325%UDy0E1A8tMxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0ZQ%42%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0ig%175%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ulA8tP5QPLT/UDy0/1A8tP9QPLToUDy0B%341%BQPLQDUDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tHlQPLRyUDy0clA8tHtQPLSwUDy01FA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tDo%37%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tMZQPLQs%181%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Dg%340%BQPLRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMpQPLQc%21%FA8tBhQPLRTUDy0vFA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLRVUDy0alA8tJNQPLSZUDy0T%11%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTcUDy0Ug%191%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0C%341%BQPLTLUDy0/1A8tP9QPLT/UDy0/1A8tPlQPLSIUDy0SVA8tOlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Qw%31%FA8tDxQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tIJQPLQI%197%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR8%341%FA8tAZQPLTxUDy0/1A8tP9QPLT/UDy0/lA8tFw%10%FA8tBdQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tHI%31%BQPLQTUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0YQ%207%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLpQPLQF%341%FA8tBJQPLT2UDy0/1A8tP9QPLT/UDy0+lA8tB8%15%BQPLQCUDy0g1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSKUDy0Bw%26%UDy0qVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tAw%202%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSmUDy0BQ%340%BQPLToUDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQh%21%FA8tExQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0slA8tAc%15%BQPLRzUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIM%202%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0plA8tAU%335%BQPLSUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0hFA8tBc%15%BQPLQmUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLNQPLQJUDy0SVA8tMdQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLTGUDy0lVA8tIlQPLR9UDy0H%11%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLQ1%197%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKZQPLQF%330%BQPLQcUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLS8UDy0fFA8tEJQPLQoUDy0FlA8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%37%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTCUDy0AQ%191%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSmUD20BQ%330%UDy0V1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0+lA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xlA8tAY%37%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLTUUDy0VVA8tDdQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0d%192%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0pVE9tAI%330%FA8tFJQPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSkUDy0Dw%42%UDy0sFA8tP9QPLT/UDy091A8tHRQPLQM%10%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tBs%122%FA8tD9QPLSWUDy01lA8tPlQPLT5UDy01lA8tJZQPLQ/%442%BQPLQaUDy0sFA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tFxQPLQC%48%UDy0sFA8tPtQPLSfUDy0Gg%20%BQPLQeUDy08VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLVQPLQD%106%BQPLQaUDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0k1A8tBo%442%FA8tDNQPLSWUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Uw%58%UDy0glA8tDY%37%UDy0dFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRi%101%FA8tBpQPLSnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKdQPLQa%448%UDy0C1A8tD9QPLR9UDy0rVA8tOBQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tPVQPLTgUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tB%102%UDy0A1A8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0F%96%FA8tJNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLST%474%BQPLQFUDy0HFA8tBxQPLQcUDy0HFA8tBI%5%UDy0AVA8tJJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKJQPLQB%101%FA8tE1QPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p%91%UDy0P1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Pw%511%FA8tAlQPLTIUDy0/1A8tP9QPLT/UDy0/1A8tP5QPLQ7%106%BQPLSzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tEE%85%UDy0llA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lg%516%BQPLQoUDy09FA8tP9QPLT/UDy0/1A8tP9QPLS/UDy0AQ%100%BQPLQrUDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNhQPLQL%80%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01g%522%UDy0dlA8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Pw%106%UDy0klA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSR%80%UDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+Q%522%UDy0CVA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0sg%106%UDy0DlA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0HQ%74%UDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+Q%527%FA8tGVQPLT/UDy0/1A8tP9QPLT/UDy0+1A8tB8%106%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMZQPLQ5%80%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01g%527%FA8tAxQPLTuUDy0/1A8tP9QPLT/UDy0/1A8tG0%106%FA8tAFQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTwUDy0ZFA8tAY%85%UDy0llA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lg%532%BQPLSXUDy0/1A8tP9QPLT/UDy0/1A8tLQ%111%BQPLQ0UDy0/VA8tP9QPLT/UDy0+VA8tIxQPLQS%96%UDy0P1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Pw%532%BQPLRIUDy0/1A8tP9QPLT/UDy0/1A8tPFQPLQB%106%BQPLUBUDy0qVA8tP5QPLS+UDy0Jw%111%FA8tJNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLST%538%BQPLQRUDy09lA8tP9QPLT/UDy0/1A8tP5QPLQu%112%UDy0GVA8tFo%122%FA8tBpQPLSnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKdQPLQa%544%UDy02FA8tP9QPLT/UDy0/1A8tP9QPLRM%250%BQPLQaUDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0k1A8tBo%549%UDy0sVA8tP9QPLT/UDy0/1A8tP9QPLRz%261%FA8tD9QPLSWUDy01lA8tPlQPLT5UDy01lA8tJZQPLQ/%560%UDy0qlA8tP9QPLT/UDy0/1A8tP9QPLRz%864%UDy0eVA8tP9QPLT/UDy0/1A8tP9QPLRz%14133%FA8tAZQPLRgUDy0r1A8tLdQPLR8UDy0Fw%308%BQPLQGUDy0MVA8tDhQPLQO%528%UDy0BlA8tK1QPLT+UDy0/1A8tP9QPLT/UDy07VA8tH9QPLQT%288%UDy0AVA8tExQPLTZUDy0/lA8tP5QPLTtUDy0a1A8tAE%517%UDy0YFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0f1A8tBM%266%FA8tAFQPLRBUDy0vlA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tFo%517%UDy0r1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRgUDy0B%245%BQPLQDUDy0TlA8tL5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9QPLQC%512%UDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tGBQPLQE%224%UDy0AVA8tEFQPLS+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLQF%512%UDy0fFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0YFA8tAM%202%FA8tAFQPLRBUDy0vlA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBQPLQD%512%UDy0ElA8tNdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLRBUDy0AQ%186%UDy0MlA8tL5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tH4%522%FA8tBtQPLSkUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0vlA8tEFQPLQB%165%FA8tCRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0qFA8tAk%533%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLS+UDy0Mg%148%BQPLQkUDy0n1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tK1QPLQ+UDy0Ag%548%BQPLQkUDy0rVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJ9QPLQk%128%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLS+UDy0QVA8tAE%565%UDy0AVA8tEFQPLS+UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0n1A8tCQ%106%FA8tCRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0vlA8tEFQPLQB%586%BQPLQBUDy0QVA8tL5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSRUDy0F%85%BQPLQkUDy0n1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLRBUDy0AQ%607%FA8tAFQPLRCUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tIFQPLQT%64%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0YFA8tAQ%629%UDy0BFA8tGBQPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0f1A8tBM%42%FA8tCRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tGBQPLQE%650%BQPLQEUDy0YFA8tNtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRgUDy0B%21%BQPLQTUDy0kVA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLRgUDy0B%672%FA8tARQPLR+UDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tGBQPLQEUDy0E1A8tH9QPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0f1A8tBE%693%UDy0E1A8tH9QPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTdUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tH9QPLQT%714%BQPLQTUDy0f1A8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLR/UDy0Ew%735%FA8tBRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0n1A8tBQ%757%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJ9QPLQk%730%D/AAAD/wAAKP8AAE3/AABg/wAAYf8AAE3/AAAm/wAAAw%4%BQPLQnUDy0olA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSfUDy0J%16%FA8tARQPLR6UDy0fVA8tH1QPLR9UDy0Jg%682%/wAAC/8AAHH/AADZ/wAA/f8AAP//AAD//wAA//8AAP//AAD9/wAA2/8AAHX/AAAN/wAAAlA8tEFQPLS+UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0vlA8tDI%26%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%676%D/AAAs/wAA1f8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADe/wAAPQ%4%BQPLQBUDy0QVA8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tL5QPLRBUDy0AQ%31%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%671%P8AACH/AADm/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA9P8AAEM%10%FA8tAdQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wVA8tAE%42%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%666%/wAAAf8AALP/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD8/wAA+/8AAP7/AAD//wAA//8AAP//AAD//wAA//8AAOj/AAAZ%5%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%47%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%666%/wAAMP8AAPz/AAD//wAA//8AAP//AAD//wAA7P8AAGj/AAAa/wAAEv8AAEn/AADP/wAA//8AAP//AAD//wAA//8AAP//AACR%5%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%15%FA8tGhQPLRYUDy0E%16%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%15%FA8tAZQPLQ/UDy0hlA8tAU%629%/wAAiP8AAP//AAD//wAA//8AAP//AAD0/wAANQ%20%D/AAAR/wAA0v8AAP//AAD//wAA//8AAP//AADr/wAACFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%10%UDy0B1A8tOdQPLT/UDy08lA8tK5QPLRaUDy0ElA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0T1A8tAdQPLRCUDy0lVA8tONQPLT+UDy0/lA8tDs%623%D/AAAB/wAAx/8AAP//AAD//wAA//8AAP//AACI%32%/wAATP8AAP7/AAD//wAA//8AAP//AAD+/wAAMlA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%10%UDy0QVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy081A8tLRQPLT9UDy0/1A8tP9QPLT/UDy0wVA8tOVQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tIo%623%D/AAAF/wAA7/8AAP//AAD//wAA//8AAP3/AAAw%32%/wAAC/8AAPf/AAD//wAA//8AAP//AAD//wAAUFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%10%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNdQPLQD%618%D/AAAS/wAA+/8AAP//AAD//wAA//8AAPr/AAAM%32%/wAABP8AAPD/AAD//wAA//8AAP//AAD//wAAVVA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%4%BQPLQBUDy0e1A8tOFQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tLdQPLQP%618%D/AAAM/wAAdP8AAHb/AAB2/wAAdv8AAHP/AAAC%32%/wAAIv8AAPz/AAD//wAA//8AAP//AAD//wAAQFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%15%FA8tAVQPLQ9UDy0kFA8tN9QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tLBQPLReUDy0FVA8tAE%687%D/AAAB/wAAlP8AAP//AAD//wAA//8AAP//AAD5/wAAGFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tARQPLQ6UDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLRVUDy0Dw%708%D/AABh/wAA/P8AAP//AAD//wAA//8AAP//AAC2/wAAAVA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%36%BQPLQVUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLRH%704%/wAAAv8AAHj/AAD7/wAA//8AAP//AAD//wAA//8AAPT/AAAx%5%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tAJQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0Fw%692%D/AAAG/wAAmv8AAP7/AAD//wAA//8AAP//AAD//wAA9v8AAFE%10%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tGVQPLT+UDy0/1A8tP9QPLT/UDy03FA8tKpQPLT/UDy0/1A8tP9QPLT/UDy0rVA8tAI%682%P8AAAH/AACc/wAA//8AAP//AAD//wAA//8AAP//AADn/wAAQw%15%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%26%UDy0KVA8tPFQPLT/UDy0/1A8tP9QPLT5UDy0PVA8tBBQPLTaUDy0/1A8tP9QPLT/UDy0/lA8tGc%682%P8AAE//AAD+/wAA//8AAP//AAD//wAA//8AALz/AAAe%21%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%20%BQPLQIUDy0yFA8tP9QPLT/UDy0/1A8tP9QPLS%11%BQPLQ7UDy0+FA8tP9QPLT/UDy0/1A8tPJQPLQq%672%/wAAAv8AAMf/AAD//wAA//8AAP//AAD+/wAAkf8AAAY%26%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%20%BQPLQdUDy001A8tP9QPLT/UDy0/1A8tMNQPLQG%16%UDy0fVA8tP9QPLT/UDy0/1A8tPBQPLRL%672%/wAAHP8AAPv/AAD//wAA//8AAP//AAC6/wAAAw%31%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%26%UDy0DlA8tJ1QPLT+UDy07lA8tCQ%21%UDy0BlA8tMBQPLT/UDy0zFA8tCk%677%/wAAQf8AAP//AAD//wAA//8AAP//AABv%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tAFQPLReUDy0W%32%FA8tCJQPLSKUDy0Cw%682%/wAASv8AAPH/AADx/wAA8f8AAPH/AABU%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAAf8AAAT/AAAE/wAABP8AAAT/AAAC%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAA/8AAAX/AAAF/wAABf8AAAX/AAAE%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAqP8AAPT/AAD0/wAA9P8AAPT/AADh/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAWP8AAH//AAB//wAAf/8AAH//AAB2/wAAAg%31%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tARQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rw%852%BQPLSfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Y%853%BQPLQbUDy011A8tP9QPLT/UDy0/1A8tP5QPLStUDy0Bg%858%UDy0ElA8tHxQPLS3UDy0r1A8tGBQPLQG%19749%FA8tCxQPLTgUDy0/FA8tHk%869%UDy0K1A8tOlQPLT/UDy0/1A8tP9QPLSE%858%BQPLQqUDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0dw%847%FA8tClQPLToUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHU%837%UDy0KFA8tOdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSB%826%BQPLQnUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0e%816%FA8tCZQPLTlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tH%806%UDy0JVA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR1UDy0AQ%788%BQPLQkUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0uVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0bw%783%FA8tCNQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPBQPLQ2UDy0CFA8tKVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGtQPLQB%768%UDy0IlA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tDc%10%FA8tAZQPLSqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRz%762%BQPLQhUDy04lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUDy0O%21%BQPLQFUDy0rFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0bg%751%FA8tCBQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQ5%32%UDy0AlA8tLZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGY%741%UDy0H1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tDo%42%FA8tANQPLStUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR1%730%BQPLQfUDy031A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Ow%52%BQPLQDUDy0rlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDy0Yw%719%FA8tB5QPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLQ9%64%UDy0ClA8tKpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGI%709%UDy0HVA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tD4%74%FA8tAtQPLSvUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRk%698%BQPLQcUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Pw%84%BQPLQFUDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Yg%79%FE9tXVQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA7tH0%474%FA8tBxQPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR%97%UDy0ClA8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tF0%74%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%469%UDy0G1A8tNpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tEE%106%FA8tAVQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLRc%69%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%218%Es8tBFQPbNQUD2zUFA9s1BQPbNQUD2zUE47tTQ%207%BQPLQaUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0Qw%116%BQPLQEUDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0WQ%63%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%218%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%202%FA8tBpQPLTYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLRE%128%UDy0BVA8tMlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+Q%63%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%218%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%197%UDy0GVA8tNdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tEY%133%UDy0SFA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0w%64%FE9tXVQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA8tMtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA7tH0%218%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%191%BQPLQYUDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0Rw%132%BQPLRHUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPUDy0Gw%111%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%266%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%186%FA8tBdQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRI%133%FA8tD9QPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLQc%117%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%69%gACAAk0zswo%186%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%181%UDy0FlA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tEo%133%UDy0PlA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tB0%122%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%47%BVQLUYUDu0cFA7s71QPLToUDy0/VA8tP9QPLT5UDy00FA9tI9SPbMy%26%BgQL8ITz20pFA7tLBQO7SwUDu0sFA7tLBQO7SwUTy0q1VAqgw%26%FUrqgZQPLSmUDu0sFA7tLBQO7SwUDu0sFA7tLBQPLSpTjuxDUlJtgdSO7Y4Uju2OFA7tGNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLtSO7Y4Uju2OE47tTQ%159%BQPLQWUDy01FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0Sw%132%BQPLRBUDy081A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0GQ%127%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%37%QEC/BFA7s3lQPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1r0w5sxs%21%UD20bVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tX8%26%FE8tW5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLV8%5%FBAtyBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%155%FA8tBVQPLTTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRM%133%FA8tEFQPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLQa%133%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%31%BJSbYHUDu0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtOPrU+%18%D/AVA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJVPbYV%16%VUCqDFA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9AQL8E%5%FBAtyBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%150%UDy0FFA8tNJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tE0%133%UDy0OlA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tC%139%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%31%BRPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUj2zMg%15%FM+syVQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7SS%16%UDy1f1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+04+tjE%10%FBAtyBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%144%BQPLQTUDy00VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0Tw%132%BQPLQ5UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0IQ%143%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%26%FA8tV1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7O9UT20flA7s3lQPLSmUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UTy01GYzzAU%15%BRPbV1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5Uzy0Ig%4%BNQLMUUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0h%16%FE6uRZQO7SwUDu0sFE7tMFQPLT/UDy0/1A8tP9QPLT/UDy0/1E8tORQO7SwUDu0sFA8s6U%143%BQPLSIUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLRQ%133%FA8tDhQPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLQi%149%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%ZjPMBU88tOdQPLT/UDy0/1A8tP9QPLT/UDy0/FE8tFU%21%Uz6zJVA8tN5QPLT/UDy0/1A8tP9QPLT/UDy0/088tGo%15%BVVaoDUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDyzpQ%4%BQPLWQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTVSUm2Bw%31%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%159%BQPLSGUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLRX%128%UDy0N1A8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tCM%154%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UT20WFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0j%32%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM8%21%TTuyK1A8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/lA9s1BQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP1PPLU3%37%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%159%BQPLQQUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0VQ%116%BQPLQ2UDy08FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTjUDy0J%160%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UDu0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UkC2H%37%BQPLTDUDy0/1A8tP9QPLT/UDy0/1A8tP9TObMo%21%FA7tH1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIw%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%143%D/AAAK/wAAC%11%UDy0EVA8tMxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tFQ%106%FA8tDVQPLTvUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tORQPLQf%165%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UDy06FA8tP9QPLT/UDy0/1A8tP9RPLTU%42%BQPLV/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbVg%21%GYzzAVQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD2021U5qgk%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%133%/wAABv8AAKb/AAD//wAA+/8AAIM%10%FA8tBFQPLTNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLRT%96%UDy0OVA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05FA8tC%171%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BSQLYcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPTz21ZE89tWRPPbVkTz21ZE89tWRPPbVkTz21ZE89tWRQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSV%26%BOPrYxUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+Tj61Pg%47%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%127%D/AAAF/wAAtf8AAP//AAD//wAA//8AAP//AACI%10%BQPLQSUDy0z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0UQ%84%BQPLQ5UDy07lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0Iw%175%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BQPLQzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7Sw%32%UD21hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSV%53%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%122%P8AAAX/AAC5/wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhg%10%UDy0E1A8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tEs%74%FA8tDFQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOFQPLQn%181%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BPPLREUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLX%33%YEC/CFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlLPLQR%53%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%117%/wAABf8AAK3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIQ%10%FA8tBRQPLTRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRP%64%UDy0MFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy051A8tCg%186%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BSPbRLUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTM%32%UD20bVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLR7%53%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%111%D/AAAF/wAAq/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACD%10%BQPLQUUDy00lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDy0Tg%52%BQPLQzUDy07VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0KQ%191%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BSPbY7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTLTzy0hE88tIRPPLSETzy0hE88tIRPPLSETzy0hE88tIRPPLSETzy0hE88tIRPPLSETzy0hE88tIRQPLRm%26%BNPrIhUDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5TTuyKw%47%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%106%P8AAAT/AACq/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAgQ%10%UDy0FVA8tNNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tEw%42%FA8tDRQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLQq%197%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BRPrQpUDy0/1A8tP9QPLT/UDy0/1A8tP9RPLWh%104%/wFRPLS+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21ylVVqgM%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%101%/wAABP8AAKj/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAH8%10%FA8tBZQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLRL%32%UDy0LVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tCY%202%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BVK6oGTzy091A8tP9QPLT/UDy0/1A8tP9QPLTC%101%FA9tGlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9s3Y%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%95%D/AAAE/wAAp/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB+%10%BQPLQXUDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0SQ%20%BQPLQyUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTqUDy0Jw%207%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%Tzy0xFA8tP9QPLT/UDy0/1A8tP9PPLT3Rka5Cw%36%BTPLQiTz21ZE89tWRPPbVkTz21ZE89tWRRPLMv%16%Ujq1H1A8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/087tWdQPLT8UDy0/1A8tP9QPLT/UDy0/088tPdTObMo%37%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%90%P8AAAP/AACl/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAf%11%UDy0F1A8tNZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tEg%10%FA8tC9QPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQo%213%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UT21dVA8tP9QPLT/UDy0/1A8tP9QPLT/Tz21cQ%34%/wFQO7O9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbM2%16%UDy0u1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20sQ%4%BRO7ObUDy0/1A8tP9QPLT/UDy0/1A8tP9QPbTGgACAAg%31%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A7s6w%85%/wAAA/8AAKT/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHo%10%FA8tBhQPLTXUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRHUDy0L1A8tOlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06FA8tC0%218%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%Szy0EVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy09lE8tUw%21%TjuxDVE8taFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMU%15%BQPLRmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UT60KQ%4%BOO7EaUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UTyzcg%31%FA9szZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNI%79%D/AAAD/wAAo/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB4%10%BQPLQZUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTnUDy0Lw%223%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%26%FE9tH5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7POTzy0mlA8tZBQPLStUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lI9szI%10%E8+sB1QPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSZ%16%UD21hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lM+syU%26%FM5syhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLO2UD20gk88tIQ%63%D/AACM/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAdw%10%UDy0GlA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOdQPLQw%229%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%26%FVVqgNQPLTFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTu0Xw%15%E88tLdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRVQLUY%16%VUS7D1A9tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMIAAP8B%21%GYzzAVQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%64%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHU%10%FA8tBpQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tDI%234%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%31%BQQK8QUDy0wlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQO7VW%16%UTy0YlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tIE%26%FA7tHBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbRt%26%BRPLSYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%64%D/AADW/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABz%10%BQPLQbUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTuUDy0Lw%239%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%37%YEC/CFA9tIJQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDu0sFA6tiM%15%BMObMbUDy08FA8tP9QPLT/UDy0/1A8tP9QPLT/UDyz6VVAqgw%26%FUrqgZQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0Uzy0Ig%20%BVRLsPUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%64%D/AAAu/wAA6/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcQ%10%UDy0HFA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9QPLQ0%330%BON7EXUD20aVE9tLFPPLTXUD207FA8tPBQPLTeTzy0t1A8tXxQOrYj%176%SUm2B1E8tWtQO7O9Tzy051A8tPRQPLPpUDy00E88s5E%69%/wAAL/8AAOv/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAG8%10%FA8tBxQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy071A8tC8%682%P8AADD/AADs/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABu%10%BQPLQdUDy03lA8tP9QPLT/UDy0/1A8tP9QPLTwUDy0Ng%692%D/AAAx/wAA7f8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAb%11%UDy0HlA8tN9QPLT/UDy0/1A8tOxQPLQ3%704%/wAAMv8AAO7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGo%10%FA8tB9QPLSzUDy0v1A8tC0%714%P8AADP/AADu/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABp%746%D/AAA0/wAA7/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD+/wAAZ%747%/wAANf8AAPD/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8v8AAB%747%P8AADb/AADw/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACU%751%D/AAA4/wAA8f8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAxQ%762%/wAAOf8AAPH/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADW/wAAFw%767%P8AADr/AADy/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANf/AAAY%778%D/AAA7/wAA8/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2P8AABg%789%/wAAPP8AAPP/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADZ/wAAGQ%799%P8AAD3/AAD0/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANr/AAAa%810%D/AAA//wAA9P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2/8AABs%821%/wAAQP8AAOT/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC8/wAAGw%24986%UDy0GFA8tI5QPLTHUDy0tVA8tFFQPLQB%858%BQPLQWUDy021A8tP9QPLT/UDy0/1A8tP1QPLRz%858%BQPLSFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0K%853%BQPLS3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy071A8tD0%847%BQPLShUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQ9%842%BQPLQ9UDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Pg%842%UDy0aVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy081A8tD4%842%FA8tIxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLQ/%842%BQPLSLUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Pw%431%FA8tANQPLRvUDy0cFA8tAM%229%UDy0D1A8tH9QPLRY%144%UDy0i1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tE%422%UDy0BFA8tK1QPLT/UDy0/1A8tLBQPLQG%218%BQPLQXUDy011A8tP9QPLT/UDy0Uw%143%FA8tIpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLR%411%BQPLQDUDy0pFA8tP9QPLT/UDy0/1A8tP9QPLSqUDy0BQ%207%FA8tBJQPLTQUDy0/1A8tP9QPLT/UDy0xQ%148%BQPLSJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%399%FA8tAFQPLScUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0o1A8tAI%197%UDy0EFA8tMxQPLT/UDy0/1A8tP9QPLT/UDy0/lA8tAI%149%UDy0iFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEI%394%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ0%191%BQPLQMUDy0x1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tAQ%154%FA8tIhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLRC%384%UDy0jFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSWUDy0AQ%175%FA8tApQPLTBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tAI%159%BQPLSHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTkUDy0HQ%372%BQPLSDUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0jQ%170%UDy0CFA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zQ%170%UDy0hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tB0%362%FA8tHpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIQ%159%BQPLQGUDy0s1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%175%FA8tIVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNtQPLQe%352%UDy0clA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR7%149%FA8tARQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSZ%186%BQPLSLUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTcUDy0Hg%340%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0cg%138%UDy0AlA8tKRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKFQPLQC%186%BQPLQKUDy0ulA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03FA8tB4%330%FA8tGRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNFQPLQSUDy0EVA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGk%127%BQPLQBUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tAQ%197%UDy0CVA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLQf%320%UDy0W1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01FA8tBg%10%FA8tBVQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRi%117%FA8tAFQPLSVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSuUDy0BQ%207%FA8tAlQPLS5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTdUDy0Hw%308%BQPLRbUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTcUDy0Fg%20%BQPLQYUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0Wg%111%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLdQPLQD%218%BQPLQJUDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03VA8tC%299%FA8tFdQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQb%32%UDy0GlA8tN5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tFQ%101%UDy0h1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0u1A8tAc%229%UDy0CVA8tLhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN5QPLQg%288%UDy0S1A8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tBw%42%FA8tCBQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRN%90%BQPLR7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS8UDy0Cg%239%FA8tAhQPLS3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0I%277%BQPLRHUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0I%53%BQPLQiUDy05VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0RQ%79%FA8tHlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMVQPLQL%250%BQPLQIUDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tCE%266%FA8tEVQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOZQPLQl%64%UDy0JFA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tEI%69%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yFA8tA4%261%UDy0CFA8tLZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLQh%256%UDy0QFA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tCY%74%FA8tCtQPLTqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%58%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJUDy0D%272%FA8tAhQPLS2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTfUDy0Ig%244%BQPLQ8UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Lg%84%BQPLQtUDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Nw%47%FA8tGRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNFQPLQR%282%BQPLQHUDy0tVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tAk%234%FA8tDRQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9QPLQx%96%UDy0L1A8tO5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tDU%37%UDy0YFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy001A8tBc%293%UDy0B1A8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLpQPLQJ%224%UDy0MVA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tDQ%106%FA8tDdQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQ0%26%BQPLRdUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTVUDy0Fg%303%FA8tAdQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS6UDy0CQ%212%BQPLQvUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Ow%116%BQPLQ4UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0L%16%FA8tFlQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQb%314%BQPLQeUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0u1A8tAo%202%FA8tCpQPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR%129%UDy0O1A8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA8tCo%5%UDy0TVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tBs%325%UDy0HlA8tNtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLtQPLQK%192%UDy0JFA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tEY%138%FA8tERQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOdQPLRtUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0IQ%335%FA8tB1QPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS8UDy0Cg%180%BQPLQfUDy04lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0Tg%148%BQPLRHUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOZQPLQm%346%BQPLQdUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vFA8tAo%170%FA8tANQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLRV%160%UDy0TFA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tCk%357%UDy0HVA8tNpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL1QPLQK%165%FA8tFZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tFw%170%FA8tFRQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0Lg%367%FA8tBxQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS9UDy0Cw%159%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Z%181%BQPLRcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPBQPLQ0%378%BQPLQcUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vlA8tAs%154%FA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRs%192%UDy0ZFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy081A8tDo%389%UDy0HFA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL9QPLQL%149%FA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHM%202%FA8tGtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0Q%400%FA8tBtQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/UDy0Cw%143%FA8tGxQPLT/UDy0/1A8tP9QPLT/UDy0fg%212%BQPLR0UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLRG%410%BQPLQbUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wFA8tAw%138%FA8tBNQPLTvUDy0/1A8tP9QPLSG%224%UDy0fVA8tP9QPLT/UDy0+lA8tE0%421%UDy0GlA8tNhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQM%138%BQPLRBUDy0tFA8tGg%234%FA8tHNQPLS0UDy0Tg%431%FA8tBtQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSh%842%BQPLQ+UDy081A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0jg%842%UDy0PVA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI4%842%FA8tD1QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSP%842%BQPLQ8UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0k%843%UDy0PFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJE%842%FA8tDtQPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSHUDy0BQ%836%BQPLQ7UDy08VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0jg%842%UDy0OlA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tBk%842%FA8tDpQPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tD8%847%BQPLQ5UDy07lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tB4%853%UDy0L1A8tPJQPLT/UDy0/1A8tP9QPLT/UDy0nQ%863%FA8tDxQPLTHUDy0+FA8tOlQPLSKUDy0Cg%868%BQPLQCUDy0CVA8tAY%22101%UDy0SFA8tNpQPLTsUDy0Xg%442%UDy0MlA8tLdQPLT/UDy0mFA8tCo%405%UDy04FA8tP9QPLT/UDy0/1A8tJFQPLQH%426%BQPLRGUDy0/FA8tP9QPLT/UDy0/1A8tO5QPLQO%400%UDy07FA8tP9QPLT/UDy0/1A8tP9QPLTVUDy0Kw%415%FA8tEZQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR6%400%UDy0XlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy071A8tFw%405%UDy0R1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR8%405%FA8tJFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLRi%400%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRE%405%FA8tAZQPLS9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0lVE9tAM%389%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tItQPLQB%410%BQPLQYUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQV%384%UDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0i1A8tAE%421%UDy0N1A8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTkUDy0Mw%378%UDy0a1A8tP9QPLT/UDy0/1A8tP9QPLSLUDy0AQ%431%FA8tGJQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tF8%378%FA8tDhQPLSyUDy0vVA8tERQPLQB%37%FA8tBdQPLSxUDy051A8tOVQPLRd%378%BQPLSVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSRUDy0BQ%426%UDy0F1A8tN1QPLT/UDy0/1A8tP9QPLT/UDy0Uw%372%BRPbQDUDy0w1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vVA8tBc%415%BQPLQXUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0q%379%UDy0FVA8tORQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN5QPLQ1%405%FA8tBdQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0r%384%FA8tDNQPLT3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0Y%395%UDy0F1A8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0cw%388%BQPLRfUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tJRQPLQE%378%BQPLQXUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSF%400%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTCUDy0Fg%367%FA8tAFQPLTSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIU%405%UDy0BVA8tL1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy041A8tDQ%362%FA8tC9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0hQ%42%UDy0AlA8tAhQPLQIUDy0AQ%351%FA8tBdQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRf%357%FA8tC1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSF%42%BQPLQgUDy0qVA8tP9QPLT/UDy0sFA8tAw%351%BQPLQ1UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0kVA8tAU%351%BQPLS9UDy0/1A8tP9QPLT/UDy0/1A8tIU%42%FA8tCBQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tLw%357%UDy0YFA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLQX%346%BQPLQMUDy0oVA8tP5QPLT0UDy0cg%42%UDy0IFA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLQT%357%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0N%405%BQPLQhUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFQPLQS%357%FA8tARQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tF8%394%FA8tCFQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ4%367%BQPLQWUDy041A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLSTUDy0Bg%378%UDy0IFA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0x1A8tAo%373%UDy0NFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wVA8tBc%367%BQPLQgUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTIUDy0CQ%383%FA8tF9QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLQ1%357%FA8tB9QPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMhQPLQJ%42%BQPLQ1UDy0R1A8tBQ%335%BQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0Xw%346%UDy0AlA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yFA8tAg%37%UDy0A1A8tK1QPLT9UDy0/1A8tPhQPLR%331%BQPLQFUDy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJFQPLQF%336%UDy0QVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTIUDy0C%37%BQPLQDUDy0rFA8tP9QPLT/UDy0/1A8tP9QPLT5UDy0F%331%UDy0F1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/UDy0Fg%330%UDy0WlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMhQPLQJ%37%FA8tARQPLSsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0WQ%335%FA8tDRQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tDM%325%UDy0B1A8tPVQPLT/UDy0/1A8tP9QPLT/UDy0x1A8tAk%37%UDy0BFA8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0S%341%BQPLRfUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLRdUj+1AQ%319%FA8tD1QPLTpUDy0/1A8tP9QPLS3UDy0Cg%36%BQPLQEUDy0q1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT%353%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0kVA8tAc%319%BQPLQLUDy0HVA8tB0%42%FA8tARQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQJ%352%UDy0BlA8tMFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQY%368%UDy0BFA8tKtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0v1A8tAk%362%FA8tBdQPLTiUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0NQ%356%BQPLQEUDy0rFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/UDy0Cg%42%UDy0LlA8tH1QPLQgUDy0Ag%308%BQPLQ1UDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tF8%346%FA8tANQPLSsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLQK%37%FA8tARQPLSMUDy0/lA8tP9QPLT/UDy0mFA8tAI%309%UDy0X1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSRUDy0BQ%330%UDy0A1A8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vlA8tAs%37%UDy0BFA8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGo%314%FA8tJFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0v1A8tBU%325%UDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS+UDy0Cw%36%BQPLQDUDy0tFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKQ%314%FA8tAVQPLS/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOFQPLQy%314%BQPLQ1UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL9QPLQK%37%FA8tANQPLS1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHo%319%BQPLQWUDy04FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0XFE+tAE%303%BQPLR8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0v1A8tAo%37%UDy0AlA8tLVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07VA8tA8%325%UDy0M1A8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI9QPLQJ%298%BQPLRGUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0CQ%36%BQPLQCUDy0tVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0Kw%335%FA8tF1QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS+UDy0GQ%298%UDy0klA8tP9QPLT/UDy0/1A8tMBQPLQJ%37%FA8tAJQPLS2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQs%341%FI/tQFQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tDY%298%FA8tFRQPLSdUDy0X1A8tAg%37%UDy0AlA8tLVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tC0%42%FA8tClQPLSSUDy0dFA8tB8%287%BQPLQHUDy0wFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLRf%346%BQPLQDUDy0tVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Lg%42%UDy0aVA8tP9QPLT/UDy0/1A8tNpQPLQe%288%UDy0GFA8tOFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0kVA8tAQ%330%FA8tANQPLS1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLQu%42%BQPLRpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/%293%FA8tDVQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQU%320%UDy0BFA8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tC8%42%FA8tGpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%298%BQPLRfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0MQ%308%BQPLQEUDy0tFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Lw%42%UDy0alA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJ%304%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tFtRPbQB%298%BQPLSmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLQu%42%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQp%304%UDy0BVA8tL9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSE%293%FA8tE5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tC4%42%FA8tGtQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%314%FA8tBVQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8%293%FA8tHxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTrUDy0LQ%42%UDy0a1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ZQ%324%BQPLQyUDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTo%293%FA8tGlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLQs%42%BQPLRrUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRm%336%UDy0XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%293%FA8tAtQPLTbUDy0/1A8tP9QPLT/UDy07FA8tCs%42%FA8tGtQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGY%341%UT60AVA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEE%303%BQPLQVUDy0q1A8tNxQPLSzUDy0L%43%UDy0a1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Zg%351%FA8tAlQPLS+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%372%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLRn%362%BQPLQZUDy04FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%373%FA8tGpQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tGc%373%UDy0NlA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEE%373%UDy0alA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0Zw%383%FA8tF9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%372%BQPLRpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRn%394%BQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%373%FA8tGlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGY%399%BQPLQEUDy0wFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEE%373%UDy0SFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Zg%410%UDy0FFA8tOJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%378%UDy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRm%421%FA8tDFQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%384%UDy0pVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%431%BQPLRbUDy0/1A8tP9QPLT/UDy09FA8tEE%389%UDy0OVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0ZQ%436%BRPbQBUDy0hFA8tPxQPLToUDy0QQ%399%FA8tFFQPLT+UDy0/1A8tOVQPLRE%32549%FA8tAlQPLQ2UDy0K%421%BQPLQOUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0Cg%282%UDy0E1A8tNpQPLT/UDy0/lA8tK1QPLQj%405%FA8tDFQPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tCE%277%UDy0ZlA8tP9QPLT/UDy0/1A8tP9QPLT7UDy0g1A8tAs%394%FA8tKNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLRbUT20Ag%383%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ylA8tDM%378%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSjUDy0H%368%FA8tKlQPLT/UDy0/1A8tP9QPLT0UDy0QFA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy03lA8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07VA8tHpQPLQG%357%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpQPLQ8UDy001A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0UFJAtQE%346%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUBUD20A1A8tG9QPLToUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMJQPLQq%341%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%10%BQPLQWUDy0jVA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0j1A8tBY%330%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%21%FA8tCpQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLRwUT20Ag%319%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%26%BRPrQBUDy0UFA8tNhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01VA8tD0%314%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%37%FA8tAdQPLR5UDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSvUDy0J%304%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%48%UDy0HFA8tKJQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tIVQPLQS%293%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%58%BQPLQzUDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTjUDy0X%288%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%64%UT60AVA8tFxQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLQ5%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%74%BQPLQNUDy0g1A8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTI%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%80%Uj+1AVA8tGFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUDy0Bw%271%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%74%BQPLQnUDy0sVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS0%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%64%UDy0C1A8tIlQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tJ5QPLQN%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%53%FE9tAJQPLRfUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTGUDy0Lg%287%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%48%UDy0N1A8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VA8tGBRPrUB%293%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%37%FA8tB5QPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLR+UDy0Dw%303%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%26%BQPLQGUDy0f1A8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tB8%314%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%21%FA8tFZQPLTfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLRC%325%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%10%BQPLQvUDy0vFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0a1A9tAM%330%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUBUDy0GFA8tJRQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tIhQPLQT%341%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPtQPLR3UDy061A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLS8UDy0Jw%351%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00lA8tE0%362%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR1UDy0Bw%367%FA8tKlQPLT/UDy0/1A8tP9QPLT3UDy0d1A8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR3UDy06FA8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0nlA8tBg%378%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tMJQPLQx%389%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0XlA8tP9QPLT/UDy0/1A8tP9QPLTiUDy0WQ%399%FA8tJhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%277%UDy0DFA8tL5QPLT/UDy091A8tH9QPLQO%405%FA8tCZQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tCE%282%FE9tAJQPLQQUDy0Cw%420%BQPLQHUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUT20Ag%33967%FA8tBhQPLQd%874%BQPLQYUDy0n1A8tPxQPLT/UDy0xlA8tC4%853%UT20AlA8tHZQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP1QPLSTUDy0G%837%BQPLRNUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tHRRPbQC%816%UDy0KlA8tLFQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTXUDy0QQ%420%BQPLQlUDy0TFA8tCU%362%FA8tBRQPLSKUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tLJQPLQn%394%BQPLQjUDy0d1A8tMpQPLT+UDy0/1A8tPhQPLRM%346%BRPbQDUDy0a1A8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0wVA8tDJQPLQaUDy0n1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0iFA8tBQ%362%FNAtQFQPLQgUDy0elA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTlUDy0Gw%335%FA8tDtQPLTOUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNlQPLRZ%21%FA8tDFQPLTEUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOVQPLRgUj+1AQ%340%BQPLQ2UDy0hFA8tNNQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wlE9tAM%319%BQPLQmUDy0plA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0gFA8tA0%31%BSP7UBUDy0WVA8tOJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z1A8tDg%319%BQPLQ0UDy0hlA8tNxQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%309%UDy0CFA8tH9QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tKtQPLQb%53%FA8tA9QPLSAUDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLSnUDy0Iw%287%FA8tAZQPLQuUDy0ilA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tPpQPLQ+%293%FE9tANQPLRUUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTIUDy0Ow%74%UDy0HlA8tKtQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tH9QPLQG%261%FA9tANQPLRFUDy0lVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLS+UDy0bVA8tBhRPbQCUDy0wlA8tP9QPLT/UDy0/1A8tP9QPLTeUDy0Cw%282%UDy0NVA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tGI%95%BQPLQ8UDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0VVE9tAE%234%FE9tAJQPLRGUDy0llA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLSxUDy0V1A8tA8%21%UDy0HVA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0qlI/tQE%266%FA8tBVQPLSbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLSLUDy0E%107%UDy0B1A8tGdQPLTqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMRQPLQy%213%FA8tAxQPLRLUDy0mFA8tOdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLSyUDy0WVA8tA4%42%FA8tFZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGY%255%BQPLQHUDy0c1A8tO1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0tFA8tC%128%BQPLQSUDy0jFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0k1A8tBc%186%FA8tAZQPLRUUDy0pVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLSnUDy0XVA8tAw%63%BQPLSfUDy0/1A8tP9QPLT/UDy0/1A8tPFQPLQo%240%UT60AVA8tElQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNVQPLRD%149%FA8tCFQPLS2UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRzUDy0BQ%175%FA8tK9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO1QPLSgUDy0RVA8tAg%79%BQPLQOUDy00lA8tP9QPLT/UDy0/1A8tP9QPLTTUDy0Bw%228%BQPLQeUDy0ulA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0a1A8tAk%165%UDy0UFA8tNRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02lA8tEg%165%UDy0HFA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLShUDy0R1A8tAg%101%UDy0NVA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0kQ%228%BQPLTNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tJRQPLQU%181%FA8tApQPLRsUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLQY%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLSLUDy0TVA8tAQ%122%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tE4%223%BQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS9UDy0Jw%202%UDy0FVA8tJZQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLS3UDy0NlA9tAM%143%BQPLS0UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQV%218%BQPLT2UDy0/1A8tP9QPLT/UDy03FA8tFhSP7UB%218%BQPLQzUDy0xFA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%154%BQPLQZUDy05lA8tP9QPLT/UDy0/1A8tP9QPLS8UDy0BQ%212%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%160%UDy0QlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0dw%212%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%165%FA8tIlQPLT/UDy0/1A8tP9QPLT/UDy0+FA8tDc%207%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%165%FA8tAlQPLTGUDy0/1A8tP9QPLT/UDy0/1A8tOJQPLQQ%202%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%170%BQPLQlUDy09FA8tP9QPLT/UDy0/1A8tP9QPLSj%202%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%176%UDy0WlA8tP5QPLT/UDy0/1A8tP9QPLT+UDy0YQ%196%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%181%FA8tKRQPLT/UDy0/1A8tP9QPLT/UDy09FA8tCI%191%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%181%FA8tA9QPLTbUDy0/1A8tP9QPLT/UDy0/1A8tMxQPLQM%186%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%186%BQPLQxUDy091A8tP9QPLT/UDy0/1A8tP9QPLSI%186%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%UDy0dlA8tP9QPLT/UDy0/1A8tP9QPLT9UDy0SQ%180%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%UDy0BVA8tLZQPLT/UDy0/1A8tP9QPLT/UDy07VA8tBs%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%197%FA8tBlQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tJ4%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%202%BQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tLg%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%197%FA8tFJQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tF4%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%UDy0HlA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0rVA9tAM%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%186%BSPrUBUDy0vlA8tP9QPLT/UDy0/1A8tP9QPLTmUDy0Ew%180%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%186%BQPLSBUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLR%187%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%181%FA8tDpQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tIk%191%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%176%UDy0FlA8tN5QPLT/UDy0/1A8tP9QPLT/UDy0xFA8tAU%191%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%176%UDy0plA8tP9QPLT/UDy0/1A8tP9QPLTtUDy0HQ%196%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%170%BQPLRnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRa%202%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%165%FA8tChQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tJk%207%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%160%UDy0BVA8tNBQPLT/UDy0/1A8tP9QPLT/UDy02FA8tAo%207%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%160%UDy0l1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0MQ%212%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR3%154%BQPLRNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR1%218%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT3UDy0rlA8tFlQPLQQ%133%FA8tB9QPLTnUDy0/1A8tP9QPLT/UDy0/1A8tLJSP7UB%218%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0q1A8tFtQPLQO%112%UD20A1A8tLpQPLT/UDy0/1A8tP9QPLT/UDy05lA8tBI%223%BQPLT2UDy0/1A8tP9QPLT/UDy08VA8tHRQPLQI%213%FA9tANQPLRRUDy03VA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0CVA8tPBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0ulA8tGhQPLQa%96%UDy0fVA8tP9QPLT/UDy0/1A8tP9QPLT+UDy0RQ%228%BQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0T%203%UDy0KVA8tLlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRY%165%FA8tElQPLTdUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0wVA8tGpQPLQa%74%BQPLQ2UDy0/FA8tP9QPLT/UDy0/1A8tP9QPLSE%234%BQPLTEUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLJQPLQq%181%FA8tBFQPLSVUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQV%176%UDy0NFA8tIRQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0u1A8tGxQPLQY%53%FA8tAxQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tMhQPLQE%234%BQPLQWUDy0mlA8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0lFA8tA8%159%BQPLQGUDy0alA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0u1A8tCk%191%BRPbQCUDy0MFA8tIpQPLTTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy01FA8tHhQPLQp%32%UT20AlA8tK1QPLT/UDy0/1A8tP9QPLT/UDy07FA8tCY%250%FA8tDZQPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO1QPLRpUDy0Bw%143%FA8tEVQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLRMUT20AQ%218%UDy0I1A8tHRQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy001A8tHhQPLQo%16%UDy0X1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%260%BQPbQDUDy0TlA8tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yVA8tEU%127%BQPLQgUDy0sVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUDy0dVA8tAY%245%UDy0JVA8tHJQPLTQUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zVA8tIRQPLRZUDy08FA8tP9QPLT/UDy0/1A8tP9QPLSd%277%FA8tAhQPLR2UDy08VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLStUDy0IQ%106%UDy0DlA8tIlQPLT3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tJ1QPLQe%272%UDy0I1A8tHhQPLS2UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQL%288%UDy0HlA8tJ5QPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tIlQPLQN%85%FE9tAJQPLRhUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTGUDy0Og%298%UDy0FlA8tGVQPLS7UDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tDI%303%BQPLQ8UDy0xVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0XFA9tAQ%69%UDy0OlA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA8tFdSPrUB%320%UDy0FlA8tGNQPLTAUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0bQ%314%UD20A1A8tFdQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMFQPLQ7%53%FA8tBhQPLSoUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLSLUDy0CQ%346%UDy0FlA8tFtQPLSnUDy09lA8tP9QPLT/UDy0/1A8tP9QPLS4UT20Ag%324%BQPLQKUDy0i1A8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0qFA8tBg%31%BQPLQJUDy0dFA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qVA8tCQ%373%UDy0DVA8tFRQPLSpUDy0w1A8tKtQPLQa%341%FA8tCRQPLSoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLRzUDy0CQ%15%FA8tFdQPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLRD%768%UDy0RFA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02lA8tFZQPLQxUDy0u1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTrUDy0a1A9tAM%778%FA9tANQPLRtUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tJVQPLQO%800%UDy0DlA8tJZQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSxUDy0L%821%BQPLQrUDy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tEtRPrUB%837%FA8tE5QPLTgUDy0/1A8tP9QPLT/UDy0/1A8tO5QPLR1UDy0Bw%852%BQPLQGUDy0dlA8tOhQPLT4UDy0p1A8tBU%874%FA8tARQPLQI%13829%FE9tANQPbQD%880%UDy0ZlA8tOVQPLTrUDy0u1A8tH5QPLRAUDy0EQ%847%FA8tAZQPLSMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tM1QPLSaUDy0V1A8tCE%821%UDy0FlA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTjUDy0pFA8tHBQPLQxUDy0Cw%788%BQPLQxUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tMFQPLSDUDy0T1A8tA4%383%BQPLQvUDy0VlA8tBM%362%FA8tFhQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLTUUDy0llA8tGRQPLQmUT20AQ%346%UDy0JFA8tKlQPLT9UDy0/1A8tPNQPLRtUD20Aw%340%BQPLQIUDy0ilA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLQeUT20AlA8tDpQPLR6UDy0rVA8tOZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy05FA8tLJQPLR0UDy0QlA8tAs%314%FA8tAZQPLSBUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy00VA8tEU%330%FA8tBpQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lFA8tAo%26%FA9tARQPLQpUDy0XVA8tJxQPLTPUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLTEUDy0kFA8tCk%287%BRPbQBUDy0WFA8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSrUDy0IQ%314%UDy0N1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRiUT20AQ%58%UDy0EVA8tEpQPLSDUDy0u1A8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLQl%277%FA8tDRQPLTHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tIJQPLQR%293%FI+tQFQPLRgUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy041A8tDY%90%FA8tAZQPLQ3UDy0alA8tKhQPLTnUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSb%266%BQPLQZUDy0nVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy011A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0Yw%282%UDy0ClA8tJJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTDUDy0Gg%122%UDy0HlA8tFlQPLSMUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Fg%250%UDy0BlA8tHZQPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tLRQPLQgUT20AlA8tF1QPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMpQPLQx%266%BQPLQdUDy0vVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJdQPLQH%149%FA8tAdQPLRFUDy0hFA8tMxQPLT/UDy0/1A8tP9QPLT/UDy0hw%239%FE9tAJQPLRMUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTRUDy0Qw%20%BQPLQMUDy0g1A8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0olA8tBw%250%FA8tDpQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0ZVI/tQE%170%FA8tB1QPLT3UDy0/1A8tP9QPLT/UDy09FA8tBU%229%UDy0LlA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tGpQPLQK%37%FA8tCVQPLSuUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR4UDy0Dg%234%UDy0YlA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLQ2%186%BQPLSXUDy0/1A8tP9QPLT/UDy0/1A8tIk%218%FA8tBFQPLSQUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSUUDy0F%21%BQPLQ8UDy0vlA8tMlQPLRuUDy0BQ%10%UDy0P1A8tNFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02lA8tF%219%FE9tAJQPLSTUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vFA8tBY%191%BQPLQeUDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQU%202%BQPLQFUDy0alA8tOlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vFA8tDI%26%FA8tA5QPLTzUDy0/1A8tP9QPLT/UDy021A8tEU%10%FE9tANQPLRpUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTBUDy0Kw%202%UDy0FlA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSPUDy0BQ%202%UDy0rlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%Uj+1AVA8tD9QPLTNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNpQPLRW%37%FA8tD9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS3UDy0Jw%10%UDy0F1A8tJBQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJdQPLQV%186%BQPLQ0UDy04lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tFw%213%UDy0M1A8tP5QPLT/UDy0/1A8tP9QPLTlUDy0C%181%BQPLQmUDy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0dFA8tAs%42%FA8tAZQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tI9QPLQL%10%BQPLQpUDy0u1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTnUDy0b1E9tAI%170%FA8tF5QPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0Lw%223%FA8tLBQPLT/UDy0/1A8tP9QPLT/UDy0bg%170%UDy0ClA8tIpQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tKhQPLQY%58%BQPLQrUDy0wVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0ZVE+tAE%10%FA8tEtQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNNQPLRG%154%BRPbQCUDy0kVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQS%229%FA8tDJQPLT9UDy0/1A8tP9QPLT/UDy041A8tAc%154%FE9tAJQPLRVUDy05VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTFUDy0OQ%74%Uj61AVA8tF1QPLTfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNRQPLQ9%10%BQPLQMUDy0dlA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0tVA8tB8%138%FA8tBBQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0kVA9tAQ%239%BQPLSzUDy0/1A8tP9QPLT/UDy0/1A8tG8%149%UDy0I1A8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VA8tGBRPrQB%90%BQPLQMUDy0elA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0olA8tC%11%FA8tBtQPLSdUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLSIUD20Aw%127%FA8tI1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRf%250%BQPLRCUDy0/1A8tP9QPLT/UDy0/1A8tOJQPLQI%144%UDy0r1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLSJUDy0Dg%111%FA8tBxQPLSuUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLSEUDy0Bg%10%UDy0LlA8tMVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Sw%127%FA8tLFQPLT/UDy0/1A8tP9QPLT/UDy05VA8tDQ%255%BRPrQBUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLRQ%144%UDy09VA8tP9QPLT/UDy0/1A8tP9QPLT+UDy0sVA8tB8%133%UDy0QFA8tMdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tFFSP7UB%10%BQPLRgUDy03lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTwUDy0F%267%UDy0S1A8tP9QPLT/UDy0/1A8tP9QPLTPUT61AQ%138%UDy09VA8tP9QPLT/UDy0/1A8tN1QPLRC%149%FA9tARQPLRlUDy05VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0NQ%10%UDy0D1A8tH5QPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%272%UT20A1A8tMxQPLT/UDy0/1A8tP9QPLT/UDy0Ug%138%UDy09VA8tP9QPLT/UDy0/1A8tKQ%165%UDy0EVA8tJBQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tEw%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0zQ%138%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tC9QPLTTUDy06VA8tK1QPLQL%138%BQPLQlUDy0tlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLw%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FE9tAJQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tFI%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tNNQPLT/UDy0/1A8tP9QPLR1%149%FA8tEtQPLTOUDy0/1A8tP9QPLT/UDy0/1A8tLM%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLRpUDy0/1A8tP9QPLT/UDy0/1A8tMM%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%154%BQPLQJUDy0cFA8tPFQPLT/UDy06lA8tDc%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLQIUDy04lA8tP9QPLT/UDy0/1A8tP9QPLQ3%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%165%FA8tAhQPLQ6UD20Aw%15%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0ZlA8tP9QPLT/UDy0/1A8tP9QPLSz%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0CVA8tOJQPLT/UDy0/1A8tP9QPLT/UDy0Ng%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tGhQPLT/UDy0/1A8tP9QPLT/UDy0tQ%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tAdQPLTsUDy0/1A8tP9QPLT/UDy0/VA8tDU%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BQPLSDUDy0/1A8tP9QPLT/UDy0/1A8tJ8%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BQPLQUUDy08lA8tP9QPLT/UDy0/1A8tPpQPLQg%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%304%UDy0hFA8tP9QPLT/UDy0/1A8tP9QPLSX%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%304%UDy0GFA8tP5QPLT/UDy0/1A8tP9QPLTI%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%304%UDy0X1A8tP9QPLT/UDy0/1A8tP9QPLS8%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BRPbQCUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLRT%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BQPLRKUDy0/1A8tP9QPLT/UDy0/1A8tM9SP7UB%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FE9tAJQPLTLUDy0/1A8tP9QPLT/UDy0/1A8tFE%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy00FE9tAM%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tMpQPLT/UDy0/1A8tP9QPLT/UDy0Zg%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0OlA8tP9QPLT/UDy0/1A8tP9QPLTjUDy0Bw%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLRv%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLQyUDy0/lA8tP9QPLT/UDy0/1A8tOVQPLQI%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%160%UDy0BlA8tGVQPLSaUDy0blI/tQE%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLStUDy0/1A8tP9QPLT/UDy0/1A8tGw%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0CVA8tPNQPLT/UDy0/1A8tP9QPLSI%154%BQPLRMUDy04FA8tP9QPLT/UDy0/1A8tHE%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FA8tDJQPLT/UDy0/1A8tP9QPLT/UDy05lA8tAo%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tJ9QPLT/UDy0/1A8tP5QPLQ4%144%UDy0K1A8tL1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMM%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FA8tK5QPLT/UDy0/1A8tP9QPLT/UDy0ig%138%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tAdQPLRnUDy0iFA8tDg%138%FA8tA1QPLSVUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJQ%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTrUT61AQ%266%UDy0HFA8tPZQPLT/UDy0/1A8tP9QPLT0UDy0FQ%138%UDy09VA8tP9QPLT/UDy0/1A8tK9SP7UB%154%BRPbQCUDy0a1A8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0sVA8tB0%10%FA8tBNQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLT/UDy0mlA8tAw%261%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLSI%144%UDy09VA8tP9QPLT/UDy0/1A8tP9QPLS1UDy0Lw%143%FA8tENQPLTYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNtQPLRY%10%BQPLQEUDy0YVA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tJtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQi%250%BQPLQdUDy0+FA8tP9QPLT/UDy0/1A8tPRQPLQX%144%UDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tI1QPLQL%122%BQPLQjUDy0p1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0dFA8tAk%10%FA8tD1QPLTDUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tDpQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0QQ%244%BQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tIg%149%UDy0h1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0ZFA9tAQ%101%UDy0CVA8tIpQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJ5QPLQY%10%BQPLQaUDy0qlA8tPpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0Iw%132%BQPLQvUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tGs%234%FA8tBxQPLT4UDy0/1A8tP9QPLT/UDy0+1A8tBk%149%UD20BFA8tFhQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNJQPLQ/%85%FE9tAJQPLRhUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTCUDy0Ow%10%UDy0ClA8tHZQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tKVQPLQi%144%UDy0E1A8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSdUDy0Bg%223%FA8tIhQPLT/UDy0/1A8tP9QPLT/UDy0pQ%164%BQPLQMUDy0e1A8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0olA8tB8%69%UDy0OlA8tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tF9QPbQD%5%FI/tQFQPLRYUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTMUDy0Qg%159%FA8tARQPLSFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yVA8tCc%213%UDy0DlA8tOtQPLT/UDy0/1A8tP9QPLT9UDy0KQ%175%FA8tBhQPLSmUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLSDUDy0Cg%52%BQPLSDUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLSKUDy0Dg%10%UDy0M1A8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy061A8tGpRPbQC%176%UDy0VFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOVQPLRI%208%UDy0dlA8tP9QPLT/UDy0/1A8tP9QPLSj%192%UDy0QlA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tFhQPbQE%37%FA8tBtQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0sFA8tCE%10%FA8tBNQPLSUUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLSTUDy0D%192%FA8tChQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0cw%196%BQPLQNUDy061A8tP9QPLT/UDy0/1A8tP1QPLQr%197%FA8tAZQPLRdUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS8UDy0O%32%FA8tChQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMpQPLRG%10%BQPLQGUDy0bFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0sFA8tCk%207%BQPLQPUDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tKZQPLQJ%186%BQPLR4UDy0/1A8tP9QPLT/UDy0/1A8tKU%213%UDy0DlA8tIZQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tJ5QPLQX%21%FE9tAJQPLS7UDy0/1A8tP9QPLTvUDy0alA8tAc%10%FA8tE9QPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLRL%224%UD20A1A8tIhQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPUDy0I%176%FA8tAxQPLTqUDy0/1A8tP9QPLT/UDy0/1A8tDw%223%BQPLQoUDy0rlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0eFA8tAg%15%BQPLQMUDy0VVA8tGVQPLQR%10%BQPLQgUDy0s1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0dFA8tAU%239%BQPLRWUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tEM%159%BRPbQCUDy0H1A8tIhQPLT/UDy0/1A8tP9QPLT/UDy0w%240%FA8tEpQPLTRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNdQPLRMUT20AQ%26%UDy0DlA8tIpQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tJ5QPLQS%256%UDy0LVA8tOFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLRw%133%FA8tAZQPLQ6UDy0eFA8tKtQPLTnUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Qg%244%BQPLQHUDy0clA8tPBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0s1A8tC4%10%FA8tAVQPLRhUDy07VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTEUDy0Mg%271%FA8tA5QPLSxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0o1A8tAY%101%UDy0FVA8tFFQPLSJUDy0yVA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT%262%FA8tBFQPLSaUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLSNUDy0RVA8tM5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tFRRPbQC%282%BRPbQCUDy0f1A8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNBQPLQZ%69%FA8tAVQPLQrUDy0YFA8tJ9QPLTdUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRB%272%UDy0L1A8tLhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLR+UDy0CQ%303%FA8tE5QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTtUDy0Pw%42%UDy0C1A8tD9QPLR+UDy0u1A8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy041A8tHxRPrQB%282%BQPLRUUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0pVA8tCU%319%BQPLQnUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tG4%15%BQPLQiUDy0U1A8tJBQPLTCUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTPUDy0lFA8tFVQPLQk%304%UDy0CFA8tHxQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMxQPLQ/Uj+1AQ%330%UDy0C1A8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSrUDy0oVA8tOBQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tL5QPLSAUDy0QVA8tA4%335%BQPLQWUDy0pVA8tPxQPLT/UDy0/1A8tP9QPLToUDy0XlA8tAQ%346%FE+tQFQPLSCUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLTgUDy0oVA8tG5QPLQuUDy0Bg%367%FA8tDdQPLS1UDy0yVA8tJBQPLQQ%368%UDy0UlA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tMxQPLSMUDy0V1A8tBY%794%FA8tC1QPLTXUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTqUDy0rVA8tHpQPLQ9UDy0C%821%BQPLQSUDy0tFA8tP9QPLT/UDy0/1A8tNFQPLSdUDy0X1A8tCxRPbQC%848%UT20A1A8tDpQPLRBUDy0Fg%31375%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%789%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%341%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%41162%BOO7cnUT21T1E8tW5QPLV8UDyzg087tHRRPLRiTzyzTUw5sxs%357%UECvEFE+tkJRO7RfUDyzb1E9tH5PPLSEUTy0e088tGpRPbVPUz6zJQAA/wE%415%BPPLREUTy1oVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDu0n1I7tjg%325%Tz22KlA8tY1QPbTbUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9PPLSnUTu0UkBAvwQ%63%BQPbVTUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy01Q%282%UTy1SFA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJUD2zQw%303%FM+syVQPLS8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBRPLVrVVWqAw%52%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%272%EZGuQtQPLOiUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/k88s5RNM7MK%288%UDuzbE88tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xU0+siE%47%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%267%Uj24GVA8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTMVUS7Dw%276%BQPLRzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tONNPLMe%42%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%261%BROrkWTzy011A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yE47sQ0%266%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTWVSuqBg%36%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%256%EBAvwRQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s6U%261%YEC/CFA7tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0yFA8tLhRPLS+UDy0z1A8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzu0d%37%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%256%FA8s4NQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDyzs088s2FQPLNATju3J049sS5QO7ZJUDyzg1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QOrNG%256%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy0q1I7tjg%26%IAAgAJROrM5UTy1nlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FVAqgw%31%BQPbM2UTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUDy0j%251%UzmzKFA8tPpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tblNPLMe%37%FVVqgNQPLRzUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%256%Tzy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbNl%53%E87tD1QPLTwUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tV0%325%UDy0qlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0j%59%UT21T1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uju2O%245%BmM8wFUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%63%BOO7ROUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A7tKM%319%BQOrYjUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbSkAAD/AQ%63%FE9tItQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lQ%244%BMObMbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tUw%69%UD21ylA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdE%31%BJSbYHTUCzFE1AsxRNQLMUTUCzFE1AsxRNQLMUVTm4Eg%244%BQPLODUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQQK8Q%69%Ek3tg5QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy01w%244%BSPbMyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9szY%69%UTy0e1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO0%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tGk%79%BQPLSZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1UrqgY%239%BSO7Y4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087s1c%69%UTqzOU89tKRPPbSkTz20pE89tKRPPbSkTz20pFE8tZ4%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FI6tR9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09k47sQ0%79%BRPLVMUDy08FA8tPBQPLTwUDy08FA8tPBQPLTwUDy08FM5syg%239%BRPLUmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMKAAIAC%138%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qQ%372%BNM7MKUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLWvUkC2H%133%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tYlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%379%UDy0xVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8ta9QPLVdVUC1G%117%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FE8tK5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%378%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLSmTzu0dFE+tkJVObgS%90%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tMlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TjuxDQ%378%VSuqBlA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FE8tK5QO7N5Tz60OmYzzAU%63%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%389%FE6tCxQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNRPLWhUDyzQ%53%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%394%BRPrQpUDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tcBOPrYx%42%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTj%400%VSuqBk88tGpQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5TzyzYQ%36%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%410%CAAIACUD2zQ088tJpQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tFU%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%432%Uj24GVA9tVNQPbWGUDy0uFA8s+lQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJROrkW%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/STe2Dg%452%BSQLYcTzyzTVE7tIVQPLS/UDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%E88tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz60Og%474%VUS7D1A8tGZQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTc%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tX9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20aQ%484%BVK6oGUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj24GQ%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rQ%84%BRPrZCUDy09FA8tPRQPLT0UDy09FA8tPRQPLT0UDy09FE7tFI%359%D/AU88tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FU5uBJQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FVEuw8%79%BPPbVxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDM%239%BRPbVPUT20WFE9tFhRPbRYUT20WFE9tFhRPbRYTzu0PQ%79%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj20Sw%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BPPLPHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tXE%79%BQO7O9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1VEuw8%239%BQO7POUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z%80%E4+tjFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1T%21%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BQPbRtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5RNq4T%69%E47tydQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyz2%245%BQPLSqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VU5uBI%74%FI9tjtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj22Ow%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BRNq4TUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVVWqAw%58%gACAAlA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20gg%244%BQPLV/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tHo%74%FE8tHtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTq5Fg%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%251%UDy1jVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1nmYzzAU%47%BVVaoDUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TTuyKw%244%BOPbEuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdSO7Y4%64%TTyzHlA8tO1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTa%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%251%UTauE1A8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdFPPrQ6%37%FA8tDNRO7TBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7Os%256%UDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UT2zZYAAgAI%47%BQPLNAUDy041A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%256%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02k88s5FPO7R0UD21YFE8tW5QPbSPUDy0zVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVNPLMe%256%UD20XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPbWGUTy1TE45sSRVPbYVUECvEFJAthxRPLM8UDyzb1A8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdMObMb%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%261%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tWc%266%FE8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tHs%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%261%BAQL8EUDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1f%272%FI6tR9QPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0tFVVqgM%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%267%ZjPMBVA8tJxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxPPbR6%282%BTPLQiUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVTmqCQ%36%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%277%BPPLNhUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lE6szk%293%VT22FU89tKRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FE7s2gAAP8B%42%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%283%UTq5FlA8tY1QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNpRPLVrTTOzCg%308%BQPbNDUD20tVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLWNVUC1G%53%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%293%BGRrkLUTuzW1A8s6JQPLTcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VE7tMFPPLSEUD2zQ4AAgAI%330%E47sRpQPbRtUDu0o1A8tNZQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tcBQPLWNTju0TmYzzAU%421%ZjPMBVBAtyBROrQsTj2xLk08sx5GRrkL%378%BVVaoDVTm4Ek0+siFRPLMvUT60KU47sRpGRrkL%40704%UDy0w1A8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhRPbNl%74%BQPLS4UDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06%293%BQPLTDUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToTzy051A8tN1QPLTLUDy0uFA9tYZSPbRLVUCqD%315%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbTsSzy0EQ%68%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy071E8tIhVPbYV%304%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDu0kg%68%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLTnUDyzQ%299%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+007sis%63%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FE8tUw%293%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLw%63%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFTObMo%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7RS%58%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLWy%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7TfYEC/C%53%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1E8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhQPLScUTy0rlA8tNpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTyzLw%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1f%53%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%53%BPPrUtUTy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20gg%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VJAthw%47%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%59%QEC/BFE8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wg%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%47%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%E49sS5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08g%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLM8%42%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BQO7TfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1UrqgY%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7POgACAAg%36%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BQPLS7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1VAtRg%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQO7SjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Zg%36%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BRPbSxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E2rhM%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPROO7EaUDy081A8tP9QPLT/UDy0/1A8tP9QPLT/UDy061BArx%32%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BQPLTFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/oAAgAI%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%5%UDuzeVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tZ%32%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%ElJtgdQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06w%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%5%SUm2B1A8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtPPbYq%26%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20tQ%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%10%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS6%26%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%59%UTyzPFA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1e%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%15%BQPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT21Tw%20%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09EBAvwRAQL8EQEC/BEBAvwRAQL8EQEC/BEBAvwRgQL8IUj24GVE8tUhQO7SfUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDq2Iw%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%15%BPPbYqUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03UlJtgc%15%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSt%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%21%UDy1kFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tHo%15%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZPPbYq%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%21%UECvEFA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRMObMb%10%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGY%293%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%26%FA8tGZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbSk%10%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1fw%298%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%26%IAAgAJQO7POUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz60Og%4%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5PPLNe%304%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%31%BPO7Q9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zIAAgAJQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUTy0iEs8tBE%309%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%37%Tzy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tWRQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tXxQPLV8UDy1fFA8tXxQPLV8UDy1fFA8tXxQPLV8UDy1fFE8tHtPPLRqTz2zVE07sis%325%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%37%Tz6wHVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%42%FA7tH1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%42%GBAvwhQO7TfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%47%BQPbVTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%53%UTy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%53%Tz61LVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%58%E88s5RQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%58%FU5uBJQPLTtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%63%BPPLRqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%63%BVVaoDUDy00lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%69%UDyzQFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FE8tKtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FI6tR9QPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%39872%EBAvwRQOrUwUTy0VVE8s3JRPbR+Tzy0hFA7s3lRO7NoUDqzRkw5sxs%389%UECvEFE+tkJRO7RfUDyzb1E9tH5PPLSEUTy0e088tGpRPbVPUz6zJQAA/wE%378%FU5qglPPLVaUDyzs1A8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeTzyzkVI6sjU%357%Tz22KlA8tY1QPbTbUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9PPLSnUTu0UkBAvwQ%351%BmM8wFUTyzclA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7TBTzu0PQ%335%FM+syVQPLS8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBRPLVrVVWqAw%335%FI9szJQPLTTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lE7s5tNM7MK%320%UDuzbE88tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xU0+siE%325%UDy1WVA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLXRUjq1Hw%308%BQPLRzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tONNPLMe%314%BPPLNhUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04E0+siE%298%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTWVSuqBg%303%FE8tUxQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tNtLPLQR%288%YEC/CFA7tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0yFA8tLhRPLS+UDy0z1A8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzu0d%299%UDq2I1A8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0jFE9tU9QPbM2Tju3J1E9sj9QPLVdUDy0qVA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS4%288%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy0q1I7tjg%26%IAAgAJROrM5UTy1nlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FVAqgw%290%P8BUTu0wVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07k89tWQAAP8B%37%FVEuw9PPLSaUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzu1Zw%282%Tzy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbNl%53%E87tD1QPLTwUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tV0%287%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTaTDmzGw%58%TzyzUVA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07lBArx%272%BmM8wFUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%63%BOO7ROUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A7tKM%282%FVVqgNQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBSQLYc%69%FE8tFVQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s4M%271%BMObMbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tUw%69%UD21ylA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdE%282%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/047tEE%79%BPPLSaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpVK6oG%266%BSPbMyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9szY%69%UTy0e1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO0%282%FE9tLFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1ng%84%BQQK8QUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbVT%266%BSO7Y4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087s1c%69%UTqzOU89tKRPPbSkTz20pE89tKRPPbSkTz20pFE8tZ4%277%VTmqCVA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz22Kg%90%Tzyzh1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLWh%266%BRPLUmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMKAAIAC%384%UTu1RVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLTE%96%TjmxJFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTm%266%BNM7MKUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLWvUkC2H%379%Tz20elA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7N5%101%FA8tNVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TjuxGg%266%UDy0xVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8ta9QPLVdVUC1G%363%UDyzpVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbND%101%FA8s6JQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz20Rw%266%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLSmTzu0dFE+tkJVObgS%336%Tzy0xFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9LPLQR%101%FA8s29QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT2zZQ%266%VSuqBlA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FE8tK5QO7N5Tz60OmYzzAU%309%UDy02lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPw%106%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20fg%271%FE6tCxQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNRPLWhUDyzQ%299%UTy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO0%106%FA7tklQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1iQ%276%BRPrQpUDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tcBOPrYx%288%UDyz6VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tOQ%106%FE8szxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TzyzkQ%282%VSuqBk88tGpQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5TzyzYQ%282%UDy14lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPI%106%FE8tUhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20iw%292%CAAIACUD2zQ088tJpQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tFU%277%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5VVaoD%101%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyzg%315%Uj24GVA9tVNQPbWGUDy0uFA8s+lQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJROrkW%272%UDy0u1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9NPLMe%101%FA8tHNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Zg%340%BSQLYcTzyzTVE7tIVQPLS/UDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%272%Tzy0mlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbNU%101%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDqzRg%362%VUS7D1A8tGZQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTc%272%Tzy0alA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%101%FA8tOFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTq5Fg%372%BVK6oGUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj24GQ%266%Uj2zMlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLXigACAAg%90%Tz60OlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTe%386%D/AU88tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%268%D/AVA8tOZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TzuzSg%90%UDu0o1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLOU%266%BRPbVPUT20WFE9tFhRPbRYUT20WFE9tFhRPbRYTzu0PQ%79%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj20Sw%271%E88s5RQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zFVVqgM%79%BOPbEuUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLN%267%BQO7POUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z%80%E4+tjFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1T%272%FE8sy9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tHQ%74%FVVqgNQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%271%BQPLSqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VU5uBI%74%FI9tjtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj22Ow%276%BQPbW5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpPPLNN%64%gACAAlA7tKNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088s2E%271%BQPLV/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tHo%74%FE8tHtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTq5Fg%276%BOO7U0UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UTuzWw%52%BOO7ENUDyzpVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy01FVVqgM%271%BOPbEuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdSO7Y4%64%TTyzHlA8tO1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTa%288%UDu0klA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tLVSOrI1%32%VTmqCVE7s1tQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9Uju2O%283%UDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UT2zZYAAgAI%47%BQPLNAUDy041A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%288%TTOzClA8tNJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03VA8s6JRPLSIUTy0e088s5FRPbSxUDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLO%289%UD20XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPbWGUTy1TE45sSRVPbYVUECvEFJAthxRPLM8UDyzb1A8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdMObMb%293%E0+siFQPLPpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tK0AAP8B%293%FE8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tHs%303%BNO7IrUDyz6VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0tFUrqgY%298%FI6tR9QPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0tFVVqgM%309%TT6yIVE8tdFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbWXZjPMBQ%308%BTPLQiUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVTmqCQ%319%FU5qglRPbSLUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy051A9tVM%325%VT22FU89tKRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FE7s2gAAP8B%336%Tju3J1A9tKBQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOZRPLV4TjuxDQ%340%BQPbNDUD20tVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLWNVUC1G%357%BQQK8QTzyzYU89tKRQPLTcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tMxQPLWQUDqzRlVVqgM%362%E47sRpQPbRtUDu0o1A8tNZQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tcBQPLWNTju0TmYzzAU%389%ZjPMBVI6tR9NO7IrTj62MU47tydON7EX%410%BVVaoDVTm4Ek0+siFRPLMvUT60KU47sRpGRrkL%39354%BOO7cnUT21T1E8tW5QPLV8UDyzg087tHRRPLRiTzyzTUw5sxs%831%BPPLREUTy1oVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDu0n1I7tjg%69%TzyzkVA8tOhQPLToUDy06FA8tOhQPLToUDy06FE8tJg%255%BQPLTDUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA9tLU%293%UTy1SFA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJUD2zQw%58%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%282%EZGuQtQPLOiUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/k88s5RNM7MK%48%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%277%Uj24GVA8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTMVUS7Dw%42%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%271%BROrkWTzy011A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yE47sQ0%37%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%266%EBAvwRQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s6U%37%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%266%FA8s4NQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDyzs088s2FQPLNATju3J049sS5QO7ZJUDyzg1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QOrNG%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1E8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFA9s3Y%261%UzmzKFA8tPpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tblNPLMe%37%FVVqgNQPLRzUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%363%UDy0qlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0j%59%UT21T1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uju2O%27%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQOrYjUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbSkAAD/AQ%63%FE9tItQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lQ%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQPLODUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQQK8Q%69%Ek3tg5QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy01w%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tGk%79%BQPLSZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1UrqgY%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FI6tR9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09k47sQ0%79%BRPLVMUDy08FA8tPBQPLTwUDy08FA8tPBQPLTwUDy08FM5syg%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FA8tYlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%155%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FE8tK5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRQPLRz%261%FA8tMlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TjuxDQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTj%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xPPLNe%261%FA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/STe2Dg%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%E88tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz60Og%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FA8tX9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20aQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rQ%84%BRPrZCUDy09FA8tPRQPLT0UDy09FA8tPRQPLT0UDy09FE7tFI%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FU5uBJQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FVEuw8%79%BPPbVxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDM%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BPPLPHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tXE%79%BQO7O9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1VEuw8%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQPbRtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5RNq4T%69%E47tydQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyz2%27%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BRNq4TUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVVWqAw%58%gACAAlA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20gg%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%363%UDy1jVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1nmYzzAU%47%BVVaoDUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TTuyKw%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%363%UTauE1A8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdFPPrQ6%37%FA8tDNRO7TBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7Os%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%368%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02k88s5FPO7R0UD21YFE8tW5QPbSPUDy0zVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVNPLMe%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%373%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tWc%37%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%373%BAQL8EUDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1f%43%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%379%ZjPMBVA8tJxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxPPbR6%48%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%389%BPPLNhUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lE6szk%53%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UTq5FlA8tY1QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNpRPLVrTTOzCg%58%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%405%BGRrkLUTuzW1A8s6JQPLTcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VE7tMFPPLSEUD2zQ4AAgAI%837%ZjPMBVBAtyBROrQsTj2xLk08sx5GRrkL%40650%BQPLTDUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tONQPLPYUDy0v1E7s5tRPLRiVUC1G%443%UDy0w1A8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tN0%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/U88tLRROrM5%432%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UTy0mFUrqgY%421%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tLVVVaoD%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLR7%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UTy1Jg%410%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1E8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYTzy0mlA9tahQPLTNUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1ng%410%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%59%UkC2HFA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09mBAvwg%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%67%/wFQPbS1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/047tEE%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BOO7RBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088s2E%31%BVQKoMTUCzFE1AsxRNQLMUTUCzFE1AsxRNQLMUTjuxDQ%20%BAQL8EUD2zQ1A9s3ZPPLOHUTq0L%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BVPbYVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%16%E88s2FRPLTkUDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BOO7EaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/047tE4%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%5%BVK6oGUDyzpVA8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BRO7RSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FE6uRY%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%5%BRPLWhUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%FVAqgxRPLXRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDuzr%37%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21qFE9tFhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%53%BGRrkLUD21U1A8tNVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUzy0Ig%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rVA8teJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUDy01VA8tONQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdQOrNG%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyz6VE8szw%47%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxRPLXRUDy0ulA9tLVQPLTJUTy1T%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS4VUC1G%53%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDu0cEk3tg4%309%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLTkTzyzTQ%52%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFNO7Ir%320%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIyAAIAC%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tGo%325%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLOlVVWqAw%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+U0zswo%325%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7tLBRO7TBUD207FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20iw%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yQ%330%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%61%D/AVA9s0NQPLTSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tD0%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20sQ%330%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BJN7YOUDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMI%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%Tz2zVFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9TPLQi%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%UECvEFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLNe%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%80%FA8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLV8%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%YEC/CFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbR+%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%Tju0QVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbRp%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%CAAIACUDuzvVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9ROrM5%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%FI9uBlRPLSuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPBAQL8E%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8s4BQPLOAUDyzgFA8s4BQPLOAUDyzgFA8s4BQPLOAUDyzgFA8s4NQPbSTUDy1wFA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E9tIs%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08k47sRo%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDu0Yw%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSd%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+087tIGAAIAC%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLSmTz22Kg%52%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLT1UDy041A8tMVPPbWXUD20XEs8tBE%63%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%41055%BLPLQRUD21U1A8s4BQPLSdUDy0qlA8s6VPPLORUTy0e1E7tUVNM7MK%448%UDy0w1A8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tN0%74%Ek3tg5QPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUD20tQ%218%Tj61PlA7tLBQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDu0sFI7tjg%437%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%208%FE6uRZQPbWoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7SwVTm4Eg%426%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%203%Uzy0IlA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VI9szI%421%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%197%BRNq4TUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQOrYj%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%197%BQO7SfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTZYEC/C%411%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%192%FE8tSZQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLS7UTu0hVE9tH5PPLSnUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1e%411%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%192%FE7tI5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03FA8tDM%21%VT22FVA8tbJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08UZGuQs%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%192%FA7tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUkC2H%32%FVVqgNQPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E9tU8%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UkC2HFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PO7NX%42%BNPLMeUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJk%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UT20WFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8teKAAIAC%48%Tzy0tFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tL4%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%Tz20elA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tZ4%53%UDyzgFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNU%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UTu0jlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tXg%53%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOM%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UDu0n1A8tPxQPLT8UDy0/FA8tPxQPLT8UDy0/E87tWc%53%UD20k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNY%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%277%CAAIACUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tLU%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%277%BPPLNeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s4%406%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%272%E8+tS1QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E6tCw%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%267%Tju1NFA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDu0s%411%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%261%BRPLVMUDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLPpUj24GQ%410%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%256%FA9tG1QPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9QOrUw%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%251%Tzy0d1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VE6tCw%421%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%245%BRPbVPUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS7TjexFw%426%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%240%FU5qglQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA7tH2AAIAC%432%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%240%FA9tG1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUD2zQw%442%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%240%FA8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLQz%448%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%Rka5C1A8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tZ%454%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%Uz6zJVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tVM%453%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UTyzPFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E6szk%453%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%Uz6zJVA8tIxQPLSMUDy0jFA8tIxQPLSMUDy0jEw5sxs%453%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%731%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%731%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UD2zdlE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJiAAIAC%69%E87tD1RPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYTzu0PQ%20%BPO7Q9UTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mE87tD0%21%Tzu0PVE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhPO7Q9%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%20656%")):at(e,TV)?new _o(iv(t,84,252,"%2549%P8AAO7/AAD/%432%/wAA3P8AAP//AAD//wAA/w%420%D/AACt/wAA//8AAP//AAD//wAA//8AAP8%163%D/%250%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%158%D/%4%/w%239%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%152%D/%4%/wAAAP8%229%/wAA6/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%147%D/%4%/wAAAP8AAAD/%218%D/AAC9/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%142%D/%4%/wAAAP8AAAD/%4%/w%207%P8AAI//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%136%D/%4%/wAAAP8AAAD/%4%/wAAAP8%202%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%131%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%192%/wAA7P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%126%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%180%D/AADN/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%120%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%170%P8AAJ7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%115%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%165%P8AAP7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%110%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%154%/wAA7v8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%104%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%143%D/AADc/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%133%P8AAK3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%94%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%127%P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%128%/wAA/P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%83%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%127%D/AADr/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%127%P8AAL3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%133%P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA6w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%133%/wAA/P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP7/AACt%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%132%D/AADs/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA3%89%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%133%P8AAM3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPw%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8%138%P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA3%105%D/%4%/wAAAP8AAAD/%4%/w%138%/wAA/v8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPs%115%D/%4%/wAAAP8AAAD/%138%D/AADu/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzQ%120%D/%4%/wAAAP8%138%P8AANz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPs%131%D/%4%/w%138%/wAArf8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvg%136%D/%144%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO4%287%D/AAD8/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvQ%287%P8AAOv/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOs%293%/wAAvf8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD+%304%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOs%303%D/AAD8/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD8%309%P8AAOz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANw%309%/wAAzf8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD7%320%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM0%319%D/AAD+/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD7%325%P8AAO7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL4%325%/wAA3P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADu%336%/wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL0%335%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADr%341%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA/g%346%/wAA6/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AADr%352%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA/%357%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AADc%357%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP8%325%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP8%15%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%144%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP8%10%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%58%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%122%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADNUDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%111%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA7g%10%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%106%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT//wAA//8AAP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%5%P8AABH/AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT//wAA7%27%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%5%P8AABH/AAD//wAA//8AAP//AAD//wAA/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%10%D/AAAD/wAA//8AAP//AAD//wAA/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%208%/wAAA/8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%181%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%144%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%116%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP8%31%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%106%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%15%FA8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%63%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%37%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%90%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%37%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%20%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%26%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%20%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%101%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%5%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%111%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%10%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP8%10%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%127%FA8tP9QPLT/UDy0/1A8tP9QPLT/%122%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%6208%D/AP8A/wD/%433%P8A/wD/AP8A/wD/AP8A/w%422%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%163%D/%252%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%158%D/%4%/w%240%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%152%D/%4%/wAAAP8%230%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%147%D/%4%/wAAAP8AAAD/%220%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%142%D/%4%/wAAAP8AAAD/%4%/w%208%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%136%D/%4%/wAAAP8AAAD/%4%/wAAAP8%203%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%131%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%193%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%126%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%182%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%120%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%171%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%115%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%166%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%110%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%155%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%104%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%145%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%134%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%94%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%128%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%129%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%83%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%129%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%128%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%134%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%134%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%134%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%134%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8%139%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%104%D/%4%/wAAAP8AAAD/%4%/w%139%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%115%D/%4%/wAAAP8AAAD/%140%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%120%D/%4%/wAAAP8%139%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%131%D/%4%/w%139%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%136%D/%145%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%289%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%288%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%294%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%305%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%305%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%310%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%310%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%321%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%321%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%326%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%326%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%337%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%63%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%241%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%64%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%224%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%68%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%214%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%69%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%214%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%79%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%4%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%204%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%80%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%198%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%193%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%188%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%106%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%188%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%117%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%10%UDy0/1A8tP9QPLT/UDy0/1A8tP8%187%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%127%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%187%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%182%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%154%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%193%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%159%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%203%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%159%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%150%D/AP8A/wD/AP8A/wD/AP8%165%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%156%/wD/AP8A/w%164%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%15%FA8tP9QPLT/UDy0/1A8tP8%330%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%15%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP8%330%FA8tP9QPLT/UDy0/1A8tP9QPLT/%26%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP8%325%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%325%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%330%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%330%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%336%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%36%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%341%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%335%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%335%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%336%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%335%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%351%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%6242%//8AAP//%434%D//wAA//8AAP//AAD//w%423%P//AAD//wAA//8AAP//AAD//wAA//8%163%D/%253%P//AAD//wAA//8AAP//AAD//wAA//8AAP//%158%D/%4%/w%242%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%152%D/%4%/wAAAP8%231%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%147%D/%4%/wAAAP8AAAD/%221%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%142%D/%4%/wAAAP8AAAD/%4%/w%210%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%136%D/%4%/wAAAP8AAAD/%4%/wAAAP8%205%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%131%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%194%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%126%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%183%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%120%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%173%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%115%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%168%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%110%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%156%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%104%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%146%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%136%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%94%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%130%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%130%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%83%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%130%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%130%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%136%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%135%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%135%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%136%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8%141%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%104%D/%4%/wAAAP8AAAD/%4%/w%140%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%115%D/%4%/wAAAP8AAAD/%141%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%120%D/%4%/wAAAP8%141%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%131%D/%4%/w%140%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%136%D/%146%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%290%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%290%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%295%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%306%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%306%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%312%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%311%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%322%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%322%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%328%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%327%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%338%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%338%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%344%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%348%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%354%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%359%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%360%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%364%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%48%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%63%FA8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/w%151%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%42%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%53%FA8tP9QPLT/UDy0/1A8tP9QPLT/%10%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%151%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%47%FA8tP9QPLT/UDy0/1A8tP9QPLT/%5%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%146%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%47%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/%5%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%140%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%135%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%58%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%135%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%63%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%167%D//wAA//8AAP//AAD//wAA//8AAP//AAD//w%68%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%178%//8AAP//AAD//wAA//8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%189%P//AAD//w%84%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%288%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%288%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/%293%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/%298%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%47%FA8tP9QPLT/UDy0/1A8tP9QPLT/%304%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%53%FA8tP9QPLT/UDy0/1A8tP9QPLT/%320%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%3754%")):null;}var iy="object",$A=`
`,h2="boolean",Ar="number",mf="string",Et=2147483647,c2='For input string: "',nr="null",h0={4:1,9:1,5:1,8:1},vp="__noinit__",e0={4:1,5:1,8:1},yn={4:1,19:1,33:1,27:1},Dt={4:1,9:1,14:1,5:1,11:1,8:1,13:1},u0=65536,c1=65535,eP=1e4,KQ="fromIndex: ",Fp=" > toIndex: ",Q6=", toIndex: ",mp=", length: ",o6="Index: ",U6=", Size: ",ht={15:1,4:1,5:1},kf={4:1},k={7:1,4:1,5:1},Qi=16777215,AP=65280,bf=.30000001192092896,Pr=545460846592,U8=4294967296,rr=8589934592,ir=17179869184,fr=34359738368,Dr=68719476736,ur=137438953472,Rf=274877906944,ft={12:1,4:1,5:1},re=536870912,de=8192,L6=2.617993878,s6=3.665191429,F0=6.283185307179586,U1=3.141592653589793,RA=1.5707963267948966,En=16384,fy=-8355712,C0=4096,XQ={l:0,m:0,h:1},ZQ={l:0,m:0,h:2},WQ={l:0,m:0,h:4},nP=1920,ie=1024,i9=234881024,_Q=167772160,jf=100663296,pf=201326592,oi=114688,Ui=4063232,$Q=3801088,w2=3538944,g2=3014656,aQ=3145728,qA=2097152,Li=393216,SP=917504,Cf=1966080,Hf=0xf8000000000,Dy=0xf0000000000,uy=0xe8000000000,Qy=0xd8000000000,oy=0xb8000000000,y6=0xe0000000000,l6=0xc0000000000,to=8796093022208,d2=549755813888,Uy=1649267441664,Ly=3848290697216,eo=8246337208320,T6=0xc8000000000,h6=9345848836096,c6=0x98000000000,f9=29360128,B2={l:0,m:0,h:120},Qr=268435456,q1=2048,L8=32768,Ao=-1.5707963267948966,s8=130560,no=6291456,w6=-2.0943951023931953,AA=1.0471975511965976,v2=.5235987755982988,F1=786432,y8=524288,l8=262144,Sn=-16777216,qP=-65536,PP=16711680,sy=-32768,g6='<DrawingObject type="',d6="></DrawingObject>",_t={4:1,5:1,16:1},te={4:1,5:1},B6="unsupported atomicNo:",kp=2.8415926535897933,f0={28:1,4:1,9:1,5:1,8:1},F2={4:1,5:1,11:1,8:1},q={10:1,4:1,5:1},nA={4:1,9:1,5:1,8:1,30:1},I0=131072,yy=196608,ly={l:6,m:0,h:4},T8=1048576,h8=3221225472,v6={l:0,m:0,h:3},Mf=8388608,Ty={36:1,43:1,38:1},Ke={4:1,9:1,5:1,11:1,8:1},bp={36:1,43:1,94:1,38:1,83:1},hy={4:1,5:1,36:1,43:1,94:1,20:1,38:1,83:1,126:1},Ee=17976931348623157e292,F6=-17976931348623157e292,or={87:1,73:1,74:1,4:1,9:1,5:1,8:1},_1="??",c8={58:1,4:1,9:1,5:1,8:1},w8=2013265920,jA=32505856,ln=31744,cy=122880,m2={128:1,4:1,9:1,5:1,11:1,8:1},Po=33554432,Tn=67108864,wy=-131073,gy=-33554433,dy=-33292289,m6=-3.141592653589793,x0=4194303,hn=3072,PA={46:1,4:1,5:1},k6=.7853981633974483,Rp=3.061592653589793,cn=1073741824,jp=541165879296,Vt={17:1,4:1,5:1,8:1},By=281.17,vy=289.19,Fy=294.21,my="0.0000",ky="NOSEARCH_OCL_CUSTOM_LABEL",D9="M  END",P1=-2147483648,k2="ATOMS",ro="$$$$",io="M  V30 ",pp="M  V30 COUNTS ",Cp="M  V30 MDLV30/STEREL",Hp="M  V30 MDLV30/STERAC",b6="M  V30 END CTAB",Mp=34028234663852886e22,R6={l:2,m:0,h:4},rP=4194304,j6={l:4179966,m:4063288,h:7},Vp={l:4194302,m:4193343,h:127},H0='" ',p6='stroke="',C6='stroke-width="',by='" />',Ep='class="event" ',Sp='opacity="0" />',qp="' position:",Ip="'. Position:",xp=1099511627776,Np=2199023255552,Op=4398046511104,H6="', position:",Gp="Assignment of aromatic double bonds failed",fo=2147483646,Jp={101:1,4:1},M6="Members of ESR groups must only be stereo centers with known configuration.",V6="Over- or under-specified stereo feature or more than one racemic type bond",E6="Ambiguous configuration at stereo center because of 2 parallel bonds",zp={113:1,88:1,26:1,4:1},Ry=1e5,Do=1.399999976158142,b2=3.1415927410125732,S6=1.5707963705062866,Yp=.029999999329447746,Kp=6.2831854820251465,Xp=1.9106119871139526,Zp=2.2639999389648438,q6=2.16759991645813,Wp=2.0662999153137207,_p=2.3561999797821045,$p=2.2844998836517334,ap=1.9106120066311025,tC=2.094395160675049,uo=.6000000238418579,jy=1.7999999523162842,I6=.05000000074505806,ee={4:1,9:1,5:1,8:1,37:1},py=.2617993950843811,R2=2.0943951023931953,Qo=1.2000000476837158,x6=1.4299999475479126,Cy=1.659999966621399,N6=1.4600000381469727,O6=1.899999976158142,eC=1.8200000524520874,AC=2.4600000381469727,nC=2.4200000762939453,Hy=2.450000047683716,G6=2.440000057220459,PC=2.4000000953674316,J6=2.319999933242798,z6=2.2899999618530273,rC=1.8600000143051147,iC=2.5299999713897705,fC=2.490000009536743,DC=2.4700000286102295,uC=2.880000114440918,QC=2.9200000762939453,oC=2.869999885559082,Y6=2.8299999237060547,UC=2.7899999618530273,LC=2.809999942779541,sC=2.799999952316284,yC=3.049999952316284,K6=.3199999928474426,lC=1.3300000429153442,oo=.8500000238418579,TC=1.600000023841858,hC=1.3899999856948853,X6=1.159999966621399,cC=1.1100000143051147,wC=1.0700000524520874,gC=1.9600000381469727,dC=1.7100000381469727,Z6=1.3600000143051147,BC=1.340000033378601,vC=1.2200000286102295,FC=1.2400000095367432,My=1.2100000381469727,mC=2.0999999046325684,W6=1.850000023841858,_6=1.6299999952316284,kC=1.4700000286102295,bC=1.2799999713897705,RC=1.440000057220459,jC=1.7599999904632568,pC=1.7300000190734863,CC=1.7200000286102295,Vy=1.6799999475479126,HC=1.690000057220459,MC=1.6699999570846558,$6=1.649999976158142,Uo=1.7000000476837158,VC=1.6200000047683716,EC=1.3700000047683716,SC=1.2899999618530273,qC=1.4500000476837158,IC=1.5700000524520874,a6=-0.5235987755982988,Lo=-1.0471975511965976,xC=-0.7853981633974483,NC=.017453292519943295,OC=.17453292519943295,so=1e-4,Vf={149:1},Ef=57.29577951308232,GC=.021922173386725217,yo=1e-8,IP=2.5120960256267386,lo=1e-5,Ey="MMFF94s+",JC="nonbonded cutoff",zC="dielectric constant",YC="dielectric model",KC="angle bend",XC="bond stretch",ZC="electrostatic",WC="out of plane",_C="stretch bend",$C="torsion angle",aC="van der waals",tH=.07000000000000006,eH=.1200000000000001,AH=-7.840000000000001,Sy="OCL_RXN_V1.0:",nH="$RXN V3000",PH="'$MOL' tag not found",rH="'M  END' not found",iH="M  V30 BEGIN REACTANT",fH=`
Actelion Java MolfileCreator 2.0

  0  0  0  0  0  0              0 V3000
`,DH="M  V30 BEGIN PRODUCT",uH=2475109711874,QH=2475109711875,oH=2887426572290,UH=2887426572291,LH=2887627898882,sH=2887627898883,yH=2887627997186,lH=3437182386178,TH=3437182386179,hH=3437383712770,cH=3437383811074,wH=3437652148226,gH=3437652377602,dH=4674132967426,BH=4674334294018,vH=4674334392322,FH=4674602729474,mH=4674602958850,kH=5086449827842,bH=5086449827848,RH=5086651154434,jH=5086651252738,pH=5086651252743,CH=5086919589890,HH=5086919688194,MH=5636406968322,VH=5636407066626,EH=5636675502082,SH={l:589826,m:590112,h:4},qH={l:589827,m:590112,h:4},IH={l:589826,m:590160,h:4},xH={l:589827,m:590160,h:4},NH={l:688130,m:590160,h:4},OH={l:589826,m:590224,h:4},GH={l:589827,m:590224,h:4},JH={l:819203,m:590224,h:4},zH={l:589826,m:590368,h:4},YH={l:688130,m:590368,h:4},KH={l:819202,m:590368,h:4},XH={l:819208,m:590368,h:4},ZH={l:589826,m:590416,h:4},WH={l:589832,m:590416,h:4},_H={l:688130,m:590416,h:4},$H={l:819202,m:590416,h:4},aH={l:589826,m:598304,h:4},tM={l:589827,m:598304,h:4},eM={l:688130,m:598304,h:4},AM={l:1114114,m:598304,h:4},nM={l:1212418,m:598304,h:4},PM={l:589826,m:598308,h:4},rM={l:589826,m:688416,h:4},iM={l:589826,m:688464,h:4},fM={l:589826,m:688720,h:4},DM={l:688130,m:688720,h:4},uM={l:589826,m:590112,h:288},QM={l:589826,m:590112,h:336},oM={l:589826,m:688416,h:336},UM={l:589826,m:688464,h:336},LM={l:688130,m:688464,h:336},sM={l:589826,m:590112,h:400},yM={l:589826,m:688416,h:400},lM={l:589826,m:688464,h:400},TM={l:688130,m:688464,h:400},hM={l:589826,m:819488,h:400},cM={l:589826,m:819536,h:400},wM={l:589826,m:819600,h:400},gM={l:688130,m:819600,h:400},dM={l:819202,m:819600,h:400},BM={l:589831,m:688416,h:592},vM={l:589831,m:688464,h:592},FM={l:688135,m:688464,h:592},mM={l:589831,m:819536,h:592},kM={l:688135,m:819536,h:592},bM={l:688135,m:819600,h:592},RM={l:589832,m:1212704,h:592},jM={l:589832,m:1212752,h:592},pM={l:688136,m:1212752,h:592},CM={l:589831,m:688464,h:656},HM={l:589826,m:590112,h:8480},MM={l:589826,m:688416,h:8480},VM={l:589826,m:688464,h:8480},EM={l:688130,m:688464,h:8480},SM={l:819202,m:819600,h:8480},qM={l:688135,m:1212752,h:8480},IM={l:589832,m:1213008,h:8480},xM={l:688136,m:1213008,h:8480},NM={l:589826,m:590112,h:8484},OM={l:589826,m:590160,h:8484},GM={l:688130,m:598304,h:8484},JM=.6262000203132629,zM=-1.3825000524520874,qy=.33169999718666077,YM=-1.4915000200271606,KM=.3540000021457672,XM=.38179999589920044,ZM=-0.6019999980926514,WM=.07999999821186066,_M=-0.7379999756813049,$M="Atom-types are 64-bit numbers describing atoms and their near surrounding.",t4="Recognized atom types and their contributions are:",aM="Druglikeness predictor not properly initialized.",tV=3.009999990463257,eV=-0.17000000178813934,AV=-0.1809999942779541,nV=-0.2029999941587448,To=2147483648,PV="ene-Metathesis",rV="Halogenation ring closure",iV=" (rootPairSets:",Iy=-1e10,xy={204:1,4:1,9:1,5:1,8:1,30:1},Ny=-99999,g8="any",fV="is not in a ring",e4="Excluded atoms:",Oy="exactly 1",Gy="exactly 2",A4="less than 3",DV="less than 4",Jy="at least 1",n4="at least 2",P4="at least 3",uV="at least 4",r4="1 or 2",QV="less than 2",oV="Allowed atoms:",Sf={138:1},UV="Atom Properties",zy=-8346432,LV="/html/editor/editor.html",sV="Structure Editor Help",Yy="Dummy look and feel",Ky="Substance Graphite",Xy="Radiance Graphite",Zy="Radiance Night",yV=.6499999761581421,lV=.3499999940395355,qf=.800000011920929,i4="editorButtons.png",TV="esrButtons.png",f4=-1774190527,D4=-1438646166,j2=-1433403286,Wy=-1431655766,_y=-1448432982,u9=1073741866,If=1073741930,u4="MMFF94",Q4="MMFF94s",hV="/resources/forcefield/mmff94/94s/outofplane.csv",ho="undefined",o4={172:1,4:1,5:1,8:1},cV=.08726646502812703,wV="overlapping",U4=.003921568859368563,L4="anonymous",s4="Unknown",aA=1048575,iP=17592186044416,xf=1e9,p2=-17592186044416,wA=5.56,fe=11.12,Q9=13.34,Nf=14.44,co=.3010299956639812,gV="BigInteger divide by zero",h1=4294967295,dV={l:0,m:0,h:524288},$y={32:1,114:1},y4={106:1,109:1},C2={36:1,43:1,38:1,85:1},ay=16777619,BV={36:1,38:1,85:1},tl=15525485,vV=5960464477539063e-23,l4=16777216,el={4:1,32:1,55:1,80:1},T4="Invalid UTF8 sequence",h4=.20000000298023224,FV=" distance:",mV={4:1,5:1,11:1,8:1,459:1},H2={50:1},U,wo,Al;w.goog=w.goog||{},w.goog.global=w.goog.global||w,wo={},C(1,null,{},i1),U.mb=function(e){return lg(this,e);},U.nb=function(){return this.sd;},U.ob=function(){return dD(this);},U.pb=function(){var e;return Du($L(this))+"@"+(e=a8(this)>>>0,e.toString(16));},U.equals=function(t){return this.mb(t);},U.hashCode=function(){return this.ob();},U.toString=function(){return this.pb();};var kV,bV,RV;kV={4:1,308:1,32:1};var go;C(207,1,{},Dh),U.Rc=function(e){var A;return A=new Dh(),A.f=4,e>1?A.c=jB(this,e-1):A.c=this,A;},U.Sc=function(){return MU(this),this.b;},U.Tc=function(){return Du(this);},U.Uc=function(){return MU(this),this.j;},U.Vc=function(){return (this.f&4)!=0;},U.Wc=function(){return (this.f&1)!=0;},U.pb=function(){return ((this.f&2)!=0?"interface ":(this.f&1)!=0?"":"class ")+(MU(this),this.n);},U.f=0,U.i=0;var ott=1;C(120,1,{4:1,120:1});var c4;bV={4:1,32:1,309:1,120:1},C(27,1,{4:1,27:1}),U.ec=function(e){return new Error(e);},U.fc=function(){return this.backingJsObject;},U.gc=function(){var e,A,n;for(n=(this.i==null&&(this.i=c(CV,h0,27,0,0,1)),this.i),A=c(fP,e0,1,n.length,5,1),e=0;e<n.length;e++)A[e]=n[e].backingJsObject;return A;},U.hc=function(){return this.e;},U.ic=function(){return this.f;},U.jc=function(){zI(this,SN(this.ec(cB(this,this.f))));},U.pb=function(){return cB(this,this.ic());},U.backingJsObject=vp,U.j=true,C(19,27,{4:1,19:1,27:1},C1),C(33,19,yn),C(79,33,yn,$l,wr),C(129,33,yn,XL),C(70,129,yn,d9,w7,c7),U.ec=function(e){return new TypeError(e);},RV={4:1,206:1,32:1,2:1},C(231,79,yn,Q3),C(511,1,{}),C(443,1,{},rw);var jV=0;C(444,1,{});var fP=H(1),pV=H(0),Utt=H(308);H(207);H(120);var Ltt=H(309),CV=H(27);H(19);H(33);H(79);H(129);H(70);var it=H(2);H(231);H(443);H(444);C(200,1,kf,Py),U.c=0,U.d=0;H(200);C(121,1,{121:1}),U.xb=function(){KF(this);},U.yb=function(e,A,n,P){},U.zb=function(e,A,n,P,r){},U.Db=function(e,A){return Hk(this,e,A);},U.r=0,U.t=0,U.u=0,U.A=0,U.C=0,U.D=0,U.F=0,U.G=0,U.H=0,U.I=0,U.J=0,U.K=false,U.M=0,U.N=0,U.O=0,U.P=0,U.Q=0,U.S=0,U.T=0,U.V=0,U.W=0,U.X=0,U.Y=0,U.Z=0;var nl,stt=.15,ytt=.06,ltt=.6;H(121);C(144,1,{144:1},bu),U.a=0,U.b=0,U.c=0;H(144);C(68,1,{},s1),U.a=0,U.b=0,U.c=0,U.d=0;H(68);C(193,1,{193:1}),U.Jb=function(e){var A,n;if(this.i==null)return null;for(A=new QA(this.i[0].a,this.i[0].b,0,0),n=1;n<this.i.length;n++)A.c>this.i[n].a?(A.b+=A.c-this.i[n].a,A.c=this.i[n].a):A.b<this.i[n].a-A.c&&(A.b=this.i[n].a-A.c),A.d>this.i[n].b?(A.a+=A.d-this.i[n].b,A.d=this.i[n].b):A.a<this.i[n].b-A.d&&(A.a=this.i[n].b-A.d);return A;},U.Nb=function(e){Zv(this,e);},U.pb=function(){var e;return e=new yD(),Vi(e,g6+this.Lb()+'"'+this.Kb()+d6),e.a;},U.Ob=function(e,A){JF(this,e,A);},U.Pb=function(e,A){Lk(this,e,A);},U.Qb=function(e,A){Tb(this,e,A);},U.g=false,U.j=false,U.k=0,U.n=0;H(193);C(89,1,{},hr),U.a=false,U.b=0,U.c=0,U.k=0;H(89);var Bo,w4;C(34,1,{},FA,EA),U.b=false,U.c=0,U.d=false,U.r=false,U.t=0,U.v=0,U.w=0,U.G=false,U.I=0,U.K=false,U.L=false,U.O=0,U.Q=0,U.T=0,U.U=0,U.Z=false,U.jb=false;H(34);C(267,1,{},o1),U.Rb=function(e,A){return mb(e,A);},U.mb=function(e){return this===e;};H(267);C(174,1,{174:1},A0),U.b=0,U.c=0,U.d=0;var Ttt=H(174);C(268,1,{},N0),U.Rb=function(e,A){return LB(e,A);},U.mb=function(e){return this===e;};H(268);C(175,1,{175:1},M0),U.a=0,U.b=0,U.c=0;var htt=H(175);C(100,1,{100:1,32:1},RU),U.Sb=function(e){return Us(this,e);},U.a=0,U.b=0,U.c=0;var g4=H(100);C(173,1,{173:1,32:1},pv),U.Sb=function(e){return av(this,e);},U.a=0,U.b=0,U.c=0;var ctt=H(173);C(208,1,{208:1},aF);H(208);C(266,1,{},Vm);H(266);C(365,1,{},Dp),U.a=0,U.b=0,U.f=0,U.g=0,U.i=0;H(365);C(366,1,{},qe),U.Rb=function(e,A){return r5(e,A);},U.mb=function(e){return this===e;};H(366);C(29,1,{29:1,4:1,32:1},J0,Ne,vu),U.Sb=function(e){return BJ(this,e);},U.mb=function(e){return Ds(this,e);},U.pb=function(){var e;return e=new Pu("0.00"),"["+yu(e,this.a)+", "+yu(e,this.b)+", "+yu(e,this.c)+"]";},U.a=0,U.b=0,U.c=0;var M2=H(29);C(78,1,{},Au,O3,Zs),U.pb=function(){return "DepictorTransformation Offset: "+this.a+","+this.b+" Scaling: "+this.c;},U.a=0,U.b=0,U.c=0;H(78);C(43,1,Ty),U.Ub=function(){return new C8(this);},U.Vb=function(){return new D3(this.Ub());},U.add=function(e){throw At(new LD("Add not supported on this collection"));},U.addAll=function(e){return QF(this,e);},U.clear=function(){var e;for(e=this.Tb();e.ad();)e.bd(),e.cd();},U.contains=function(e){return jm(this,e,false);},U.containsAll=function(e){return nQ(this,e);},U.isEmpty=function(){return this.size()==0;},U.remove=function(e){return jm(this,e,true);},U.removeAll=function(e){return es(this,e);},U.retainAll=function(e){return Pm(this,e);},U.toArray=function(){return this.Wb(c(fP,e0,1,this.size(),5,1));},U.Wb=function(e){return ik(this,e);},U.pb=function(){return Jk(this);};H(43);C(94,43,bp),U.Ub=function(){return new C8(this);},U.addAtIndex=function(e,A){throw At(new LD("Add not supported on this list"));},U.add=function(e){return this.addAtIndex(this.size(),e),true;},U.addAllAtIndex=function(e,A){var n,P,r;for(L1(A),n=false,r=A.Tb();r.ad();)P=r.bd(),this.addAtIndex(e++,P),n=true;return n;},U.clear=function(){this.Xb(0,this.size());},U.mb=function(e){var A,n,P,r,i;if(e===this)return  true;if(!Xt(e,83)||(i=e,this.size()!=i.size()))return  false;for(r=i.Tb(),n=this.Tb();n.ad();)if(A=n.bd(),P=r.bd(),!(O1(A)===O1(P)||A!=null&&MP(A,P)))return  false;return  true;},U.ob=function(){return gG(this);},U.indexOf=function(e){return cF(this,e);},U.Tb=function(){return new Kl(this);},U.lastIndexOf=function(e){var A;for(A=this.size()-1;A>-1;--A)if(z8(e,this.getAtIndex(A)))return A;return  -1;},U.removeAtIndex=function(e){throw At(new LD("Remove not supported on this list"));},U.Xb=function(e,A){var n,P;for(P=new sT(this,e),n=e;n<A;++n)BD(P.a<P.c.size()),P.c.getAtIndex(P.b=P.a++),oL(P);},U.setAtIndex=function(e,A){throw At(new LD("Set not supported on this list"));},U.subList=function(e,A){return new qD(this,e,A);};H(94);C(20,94,hy,f1,kL),U.addAtIndex=function(e,A){t8(this,e,A);},U.add=function(e){return mt(this,e);},U.addAllAtIndex=function(e,A){return fm(this,e,A);},U.addAll=function(e){return RP(this,e);},U.clear=function(){this.a.length=0;},U.contains=function(e){return x9(this,e,0)!=-1;},U.getAtIndex=function(e){return N(this,e);},U.indexOf=function(e){return x9(this,e,0);},U.isEmpty=function(){return this.a.length==0;},U.Tb=function(){return new Zt(this);},U.lastIndexOf=function(e){return nd(this,e);},U.removeAtIndex=function(e){return LA(this,e);},U.remove=function(e){return X8(this,e);},U.Xb=function(e,A){xB(this,e,A);},U.setAtIndex=function(e,A){return q9(this,e,A);},U.size=function(){return this.a.length;},U.toArray=function(){return _3(this.a);},U.Wb=function(e){return Pf(this,e);};var d4=H(20);C(102,20,hy,eU,us,$k),U.pb=function(){return Mm(this);};H(102);C(108,1,{108:1},zi),U.a=0,U.b=0,U.c=0,U.d=0;H(108);C(116,1,{},cf),U.a=0,U.b=0,U.c=false,U.d=0,U.f=false,U.g=0,U.i=false,U.j=0;H(116);C(18,1,{18:1},qt),U.pb=function(){return this.d;},U.a=0,U.c=0;var wtt=H(18);C(158,1,{},$v,PR,pB,Yd),U.c=0,U.d=0,U.f=0,U.i=0,U.j=0,U.n=0,U.o=false;H(158);C(363,1,{},R8),U.Rb=function(e,A){return L1(e),e>(L1(A),A)?-1:(L1(e),e<(L1(A),A)?1:0);},U.mb=function(e){return this===e;};H(363);C(88,1,{88:1,4:1},X3),U.Yb=function(e){UL(this,e);},U.Zb=function(e){return this.H[e]==8;},U.q=0,U.r=0,U.I=0,U.K=false,U.L=false,U.M=0,U.N=0,U.O=0,U.S=false,U.T=0,U.U=0,U.V=0;var HV,Z0,Ur,B4,MV,o9,wn=24;H(88);C(113,88,{113:1,88:1,4:1}),U.$b=function(e){qj(this,e);},U.Zb=function(e){return O8(this,e);},U.f=0,U.g=0;H(113);C(333,1,{},GP),U._b=function(){return  false;},U.ac=function(e){throw At(new C1("Unexpected request to invent coordinates. Check source code logic!"));},U.d=0,U.e=0,U.f=0,U.i=false;H(333);C(52,333,{},GA),U._b=function(){return this.b;},U.ac=function(e){var A;A=new Y8(this.a),A.g=new zr(78187493520),er(A,e);},U.a=2,U.b=false;H(52);C(110,1,{},m7,lD),U.j=0;H(110);C(3,1,{3:1},u),U.a=0,U.b=0;var Mt=H(3),Pl;C(240,1,{240:1,32:1},ag),U.Sb=function(e){return Zz(this,e);};H(240);C(153,1,{153:1}),U.mb=function(e){var A;if(e===this)return  true;if(!Xt(e,153))return  false;for(A=0;A<this.b.length;A++)if(this.b[A]!=e.b[A])return  false;return  true;},U.a=0,U.d=0;var v4,V2,F4;H(153);C(111,1,{},b3,r6);H(111);C(127,1,{},tu,Nw),U.a=false,U.d=false,U.e=false,U.g=false,U.i=0,U.k=false;H(127);C(225,1,{225:1},z2),U.a=0,U.b=false;H(225);C(150,1,{},r7,Bg),U.c=1;H(150);var m4,rl=null;C(399,1,{},hp),U.pb=function(){return "";};var k4,b4;H(399);C(151,1,{},oU),U.g=0;H(151);C(64,1,{},Ii,bD),U.c=0,U.d=0,U.p=0,U.q=0,U.r=false,U.w=0,U.A=0,U.L=false,U.N=0,U.P=false;H(64);C(215,1,{215:1},Y2),U.a=0,U.b=0,U.c=0,U.d=0;H(215);C(180,1,{},BU);var Lr,E2;H(180);C(259,121,{121:1},qk),U.qb=function(e){var A;A='<line x1="'+se(Re(eA(new Me(e.a),(e9(),ye))))+H0+'y1="'+se(Re(eA(new Me(e.c),ye)))+H0+'x2="'+se(Re(eA(new Me(e.b),ye)))+H0+'y2="'+se(Re(eA(new Me(e.d),ye)))+H0+p6+this.d+H0+C6+this.j+by,Mr(this,A);},U.rb=function(e){var A,n;A=se(Re(eA(new Me(3*this.j),(e9(),ye)))),n='<line stroke-dasharray="'+A+","+A+H0+'x1="'+se(Re(eA(new Me(e.a),ye)))+H0+'y1="'+se(Re(eA(new Me(e.c),ye)))+H0+'x2="'+se(Re(eA(new Me(e.b),ye)))+H0+'y2="'+se(Re(eA(new Me(e.d),ye)))+H0+p6+this.d+H0+"stroke-width:"+this.j+by,Mr(this,n);},U.sb=function(e){var A,n;for(n=new vn('<polygon points="'),A=0;A<e.a;A++)Eg(n,M1(w.Math.round(e.b[A]))),n.a+=",",Eg(n,M1(w.Math.round(e.c[A]))),n.a+=" ";J(n,'" fill="'+this.d+H0+p6+this.d+H0+C6+this.j+by),Mr(this,n.a);},U.tb=function(e,A,n){var P,r,i,f;i=(P=(f=Xk(this.e,e),new nT(f)).b,P),r='<text x="'+se(Re(eA(new Me(A-i/2),(e9(),ye))))+H0+'y="'+se(Re(eA(new Me(n+this.k/3),ye)))+H0+'stroke="none" font-size="'+this.e.b+H0+'fill="'+lf(this.d)+'">'+lf(e)+"</text>",Mr(this,r);},U.ub=function(e,A,n){var P;P='<circle cx="'+se(Re(eA(new Me(e+n/2),(e9(),ye))))+H0+'cy="'+se(Re(eA(new Me(A+n/2),ye)))+H0+'r="'+se(Re(eA(new Me(n/2),ye)))+H0+'fill="'+this.d+by,Mr(this,P);},U.vb=function(e){var A;return (A=Xk(this.e,e),new nT(A)).b;},U.wb=function(){return this.k;},U.yb=function(e,A,n,P){var r,i;r=R1(this.L,e),i='<circle id="'+lf(this.g!=null?this.g:"mol"+S2)+":Atom:"+e+H0+Ep+(r==0?"":'data-atom-map-no="'+r+H0)+'cx="'+se(Re(eA(new Me(n),(e9(),ye))))+H0+'cy="'+se(Re(eA(new Me(P),ye)))+H0+'r="8'+H0+Sp,mt(this.a,i);},U.zb=function(e,A,n,P,r){var i;i='<line id="'+lf(this.g!=null?this.g:"mol"+S2)+":Bond:"+e+H0+Ep+'x1="'+se(Re(eA(new Me(A),(e9(),ye))))+H0+'y1="'+se(Re(eA(new Me(n),ye)))+H0+'x2="'+se(Re(eA(new Me(P),ye)))+H0+'y2="'+se(Re(eA(new Me(r),ye)))+H0+C6+8+H0+Sp,mt(this.b,i);},U.Ab=function(e){this.j=Gr(M1(w.Math.round(100*w.Math.max(e,1))))/100;},U.Bb=function(e){this.d="rgb("+((e&PP)>>16)+","+((e&AP)>>8)+","+(e&255)+")";},U.Cb=function(e){this.k!=e&&(this.k=e,this.e=new $3(e));},U.Db=function(e,A){return this.n=Jt(M1(w.Math.round(e.b))),this.f=Jt(M1(w.Math.round(e.a))),Hk(this,e,A);},U.pb=function(){return Jj(this);},U.f=0,U.i=false,U.j=0,U.k=0,U.n=0;var S2=0;H(259);C(184,1,{184:1},bT),U.a=0,U.b=0,U.e=false,U.f=false,U.g=0;H(184);C(284,1,{},zF),U.a=0,U.c=0,U.d=0,U.e=0,U.g=0,U.i=false,U.j=false,U.k=0,U.o=0,U.p=false,U.r=false;H(284);C(368,1,{},Ow),U.a=0,U.b=0,U.c=false,U.d=false;H(368);C(369,1,{},Rw),U.pb=function(){return "{"+this.c+"-"+this.b+"}";},U.a=false,U.b=0,U.c=0,U.d=0;H(369);C(112,1,{},n3,sQ),U.b=0,U.c=0,U.d=0,U.e=false,U.i=false,U.j=0,U.n=0,U.o=false,U.p=false,U.q=0;H(112);C(216,1,{216:1,32:1},F7),U.Sb=function(e){return E3(e.b,this.b);},U.a=0,U.b=0;H(216);C(217,1,{217:1},Tk),U.a=0,U.b=0,U.c=false,U.d=false;H(217);C(182,1,{182:1},K3),U.pb=function(){return "["+(this.a==fo?"h":this.a==Et?"lp":ji(this.c.f.k,this.a))+this.b+"]";},U.a=0,U.b=0;H(182);C(101,1,Jp,nu),U.bc=function(e){return Wh(this,e);};var gtt=H(101);C(26,113,zp,JA,zA,Jr),U.Yb=function(e){kU(this,e);},U.$b=function(e){ut(this,e);},U.c=false;var U9=H(26);C(241,1,{},n5),U.j=0;var dtt=Ry;H(241);C(167,1,{167:1,32:1},fs),U.Sb=function(e){return hs(this.a,e.a);};H(167);C(93,193,{193:1,93:1},UU,dR),U.Eb=function(e,A){return this.a=!!this.b&&xr(this.b,e,A),this.a;},U.Fb=function(){this.a=false;},U.Gb=function(){var e;return e=new UU(),bg(e,this.e,this.c,this.d),xg(e,this.i[0].a,this.i[0].b),e.g=this.g,e;},U.Hb=function(e,A){return !!this.b&&xr(this.b,e,A);},U.Ib=function(e,A){var n,P,r,i;for(P=A?A.c*this.c:this.c,eL(e,vt(w.Math.round(P)),(this.d&1)!=0,(this.d&2)!=0),ae(e,this.g?qP:(i=e.Jc(),i.isDarkBackground()?-1:Sn)),r=Rh(this),this.b=xh(this,e,r),A&&Nu(A,this.b),n=0;n<r.a.length;n++)hT(e,this.b.c,this.b.d+1+P*5/6+P*Do*n,(Fe(n,r.a.length),r.a[n]));},U.Jb=function(e){var A;return A=Rh(this),xh(this,e,A);},U.Kb=function(){var e;return e=new V0(),J(e,' text="'+yX(this.e)+'"'),J(e,' x="'+this.i[0].a+'"'),J(e,' y="'+this.i[0].b+'"'),this.c!=9&&J(e,' size="'+Re(new Zd(this.c,new Ed()))+'"'),this.d!=0&&J(e,' style="'+this.d+'"'),e.a;},U.Lb=function(){return "text";},U.Mb=function(e){var A,n;A=(n=Rh(this),xh(this,e,n)),ae(e,SD(e)),mT(e,A.c,A.d,A.b,A.a);},U.Nb=function(e){Zv(this,e),this.c*=e;},U.Pb=function(e,A){Lk(this,e,A),this.c=this.f*e;},U.Qb=function(e,A){Tb(this,e,A),this.f=this.c;},U.a=false,U.c=0,U.d=0,U.f=0;H(93);C(283,101,Jp,QB),U.bc=function(e){var A;return A=Wh(this,e),A==-1?-1:N(this.a,A).a;};H(283);C(380,1,{},Tp);H(380);C(379,1,{},cj);var VV,vo,R4,j4,Fo,p4=false;H(379);C(63,1,{63:1,32:1},TD),U.Sb=function(e){return fF(this,e),Dk(this.q,e.q);},U.n=0;H(63);C(370,1,{},hg),U.a=0,U.b=0;var il,DP;H(370);C(256,1,{256:1,32:1},x7),U.Sb=function(e){return Dk(this,e);},U.pb=function(){var e,A;for(A=new V0(),e=0;e<this.b.length;e++)A.a+=e==0?"Torsions: ":", ",J(A,(J9(),a9(this.b[e],3)+"("+vt(w.Math.round(this.a[e]+.5))+")"));return A.a;};H(256);C(254,1,{},CB,kB);var EV,fl;H(254);C(250,1,{},vh),U.a=0;var SV;H(250);C(194,1,{194:1},jw,sj),U.e=0;H(194);C(251,1,{},P6);H(251);var Of,IA,C4=0,H4=0,M4=0,V4=0,E4=0,mo=0,S4=0,q4=0,I4=0,x4=0,ko=0;C(69,1,{},P7,Y8),U.a=false,U.e=0;var bo;H(69);C(329,20,hy,aw),U.add=function(e){return jP(this,e);};H(329);C(331,1,{},K2),U.Rb=function(e,A){var n;return _N((n=e,n));},U.mb=function(e){return this===e;};H(331);C(332,1,{},X2),U.Rb=function(e,A){var n;return $N((n=e,n));},U.mb=function(e){return this===e;};H(332);C(330,1,{},Z2),U.Rb=function(e,A){var n,P;return n=w.Math.abs(e.b),P=w.Math.abs(A.b),n<P?-1:n>P?1:0;},U.mb=function(e){return this===e;};H(330);C(105,1,{105:1},Yb,VQ);var qV=H(105);C(41,1,{41:1},KP,_u),U.a=0,U.b=0;var si=H(41);C(247,1,{},RT);H(247);C(197,1,{197:1},Y3),U.a=0,U.b=0;H(197);C(364,20,hy,Bk);var IV;H(364);C(48,1,{48:1},CP,S5),U.c=0,U.i=false;var N4=H(48);C(246,1,{246:1},Lg),U.a=0,U.c=false;H(246);C(276,1,{}),U.d=0,U.f=false,U.j=0,U.k=0;H(276);C(358,1,Vf,wm),U.cc=function(e,A,n,P){var r,i,f;return P&&(K(this.f,this.a)==1||K(this.f,this.c)==1)?0:(f=fk(new v0(e,this.b,this.a),new v0(e,this.b,this.c)),r=f*Ef-this.g,i=this.d?143.9325*this.e*(1+w.Math.cos(f)):GC*this.e*r*r*(1+-6981317e-9*r),i);},U.dc=function(e,A){var n,P,r,i,f,D,Q,o,L,s;Q=Mn(new v0(e,this.b,this.a)),o=Mn(new v0(e,this.b,this.c)),f=mn(new v0(e,this.b,this.a)),D=mn(new v0(e,this.b,this.c)),P=(Q.a*o.a+Q.b*o.b+Q.c*o.c)/(w.Math.sqrt(Q.a*Q.a+Q.b*Q.b+Q.c*Q.c)*w.Math.sqrt(o.a*o.a+o.b*o.b+o.c*o.c)),s=1-P*P,L=yo,s>0&&(L=w.Math.sqrt(s)),n=Ef*w.Math.acos(P)-this.g,i=IP*this.e*n*(1+-0.0104719755*n),this.d&&(i=-143.9325*this.e*L),r=B(d(Ut,1),ht,6,15,[1/f*(o.a-P*Q.a),1/f*(o.b-P*Q.b),1/f*(o.c-P*Q.c),1/D*(Q.a-P*o.a),1/D*(Q.b-P*o.b),1/D*(Q.c-P*o.c)]),A[3*this.a]+=i*r[0]/-L,A[3*this.a+1]+=i*r[1]/-L,A[3*this.a+2]+=i*r[2]/-L,A[3*this.b]+=i*(-r[0]-r[3])/-L,A[3*this.b+1]+=i*(-r[1]-r[4])/-L,A[3*this.b+2]+=i*(-r[2]-r[5])/-L,A[3*this.c]+=i*r[3]/-L,A[3*this.c+1]+=i*r[4]/-L,A[3*this.c+2]+=i*r[5]/-L;},U.a=0,U.b=0,U.c=0,U.d=false,U.e=0,U.g=0;H(358);C(185,33,{185:1,4:1,19:1,33:1,27:1},s7);H(185);C(336,33,yn,t7);H(336);C(237,1,Vf,oB),U.cc=function(e,A,n,P){var r,i,f;return P&&(K(this.d,this.a)==1||K(this.d,this.b)==1)?0:(i=gF(new Yi(e,this.a),new Yi(e,this.b)),r=(i-this.e)*(i-this.e),f=71.96625*this.c*r*(1+-2*(i-this.e)+2.3333333333333335*r),f);},U.dc=function(e,A){var n,P,r,i;if(P=gF(new Yi(e,this.a),new Yi(e,this.b)),r=P-this.e,n=143.9325*this.c*r*(1+-3*r+4.666666666666667*r*r),P>0)for(i=0;i<3;i++)A[3*this.a+i]+=n*(e[3*this.a+i]-e[3*this.b+i])/P,A[3*this.b+i]-=n*(e[3*this.a+i]-e[3*this.b+i])/P;},U.a=0,U.b=0,U.c=0,U.e=0;H(237);C(359,1,Vf,Kv),U.cc=function(e,A,n,P){var r,i,f;return P&&(K(this.e,this.a)==1||K(this.e,this.b)==1)?0:(i=mn(new v0(e,this.a,this.b)),r=i+.05,this.d&&(r*=r),f=332.0716*this.c/r*(this.f==(Y9(),yi)?.75:1),f);},U.dc=function(e,A){var n,P,r,i,f;for(i=mn(new v0(e,this.a,this.b)),n=i+.05,n*=this.d?n*n:n,P=-332.0716*(this.d?2:1)*this.c/n*(this.f==(Y9(),yi)?.75:1),f=0;f<3;f++)r=.02,i>0&&(r=P*(e[3*this.a+f]-e[3*this.b+f])/i),A[3*this.a+f]+=r,A[3*this.b+f]-=r;},U.a=0,U.b=0,U.c=0,U.d=false;H(359);C(178,276,{},vd,z5);var Dl;H(178);C(277,26,zp,Pj);H(277);C(192,1,Vf,KL),U.cc=function(e,A,n,P){var r,i,f,D,Q,o;return P&&(K(this.f,this.a)==1||K(this.f,this.b)==1||K(this.f,this.c)==1)?0:(D=Mn(new v0(e,this.d,this.a)),Q=Mn(new v0(e,this.d,this.b)),o=Mn(new v0(e,this.d,this.c)),f=Mn(new wP(D.b*Q.c-D.c*Q.b,D.c*Q.a-D.a*Q.c,D.a*Q.b-D.b*Q.a)),r=Ef*w.Math.asin(f.a*o.a+f.b*o.b+f.c*o.c),i=GC*this.e*r*r,i);},U.dc=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I,x;for(y=new v0(e,this.d,this.a),l=new v0(e,this.d,this.b),T=new v0(e,this.d,this.c),D=w.Math.sqrt(y.a*y.a+y.b*y.b+y.c*y.c),Q=w.Math.sqrt(l.a*l.a+l.b*l.b+l.c*l.c),o=w.Math.sqrt(T.a*T.a+T.b*T.b+T.c*T.c),y=Mn(y),l=Mn(l),T=Mn(T),s=Mn(xT(new wP(-y.a,-y.b,-y.c),l)),h=T.a*s.a+T.b*s.b+T.c*s.c,r=1-h*h,P=w.Math.max(r>0?w.Math.sqrt(r):0,yo),n=Ef*w.Math.asin(h),i=y.a*l.a+y.b*l.b+y.c*l.c,m=w.Math.max(1-i*i,yo),g=w.Math.max(m>0?w.Math.sqrt(m):0,yo),f=IP*this.e*n,v=new wP(T.b*l.c-T.c*l.b,T.c*l.a-T.a*l.c,T.a*l.b-T.b*l.a),b=new wP(y.b*T.c-y.c*T.b,y.c*T.a-y.a*T.c,y.a*T.b-y.b*T.a),R=new wP(l.b*y.c-l.c*y.b,l.c*y.a-l.a*y.c,l.a*y.b-l.b*y.a),j=P*g,p=h/(P*m),S=B(d(Ut,1),ht,6,15,[(v.a/j-(y.a-l.a*i)*p)/D,(v.b/j-(y.b-l.b*i)*p)/D,(v.c/j-(y.c-l.c*i)*p)/D]),I=B(d(Ut,1),ht,6,15,[(b.a/j-(l.a-y.a*i)*p)/Q,(b.b/j-(l.b-y.b*i)*p)/Q,(b.c/j-(l.c-y.c*i)*p)/Q]),x=B(d(Ut,1),ht,6,15,[(R.a/j-T.a*h/P)/o,(R.b/j-T.b*h/P)/o,(R.c/j-T.c*h/P)/o]),L=0;L<3;L++)A[3*this.a+L]+=f*S[L],A[3*this.d+L]+=-f*(S[L]+I[L]+x[L]),A[3*this.b+L]+=f*I[L],A[3*this.c+L]+=f*x[L];},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0;H(192);C(55,1,{4:1,32:1,55:1}),U.Sb=function(e){return this.b-e.b;},U.compareTo=function(e){return this.b-e.b;},U.equals=function(e){return this===e;},U.mb=function(t){return this.equals(t);},U.hashCode=function(){return dD(this);},U.ob=function(){return this.hashCode();},U.name=function(){return this.a!=null?this.a:""+this.b;},U.ordinal=function(){return this.b;},U.toString=function(){return this.a!=null?this.a:""+this.b;},U.pb=function(){return this.toString();},U.b=0;H(55);var xV=E9(null,ox);C(278,1,{},cR);H(278);C(107,55,{107:1,4:1,32:1,55:1},hD);var yi,O4,G4,J4,q2,Btt=E9(107,FN);C(98,1,{98:1,32:1},xi),U.Sb=function(e){return zG(this,e);},U.mb=function(e){var A;return e===this?true:Xt(e,98)?(A=e,this.a==A.a&&this.b==A.b):false;},U.ob=function(){return this.a^this.b;},U.pb=function(){return this.a+","+this.b;},U.a=0,U.b=0;H(98);C(360,1,Vf,Fk),U.cc=function(e,A,n,P){var r,i,f,D,Q;return P&&(K(this.f,this.a)==1||K(this.f,this.c)==1)?0:(r=mn(new v0(e,this.b,this.a)),i=mn(new v0(e,this.b,this.c)),Q=fk(new v0(e,this.b,this.a),new v0(e,this.b,this.c)),D=IP*(Q*Ef-this.j),f=D*(r-this.g)*this.d+D*(i-this.i)*this.e,f);},U.dc=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g;L=mn(new v0(e,this.b,this.a)),s=mn(new v0(e,this.b,this.c)),l=Mn(new v0(e,this.b,this.a)),T=Mn(new v0(e,this.b,this.c)),P=l.a*T.a+l.b*T.b+l.c*T.c,g=1-P*P,h=w.Math.max(g>0?w.Math.sqrt(g):0,yo),n=Ef*w.Math.acos(P)-this.j,y=Ef*(this.d*(L-this.g)+this.e*(s-this.i)),r=1/L*(T.a-P*l.a),i=1/L*(T.b-P*l.b),f=1/L*(T.c-P*l.c),D=1/s*(l.a-P*T.a),Q=1/s*(l.b-P*T.b),o=1/s*(l.c-P*T.c),A[3*this.a]+=IP*(l.a*this.d*n+r/-h*y),A[3*this.a+1]+=IP*(l.b*this.d*n+i/-h*y),A[3*this.a+2]+=IP*(l.c*this.d*n+f/-h*y),A[3*this.b]+=IP*((-l.a*this.d-T.a*this.e)*n+(-r-D)/-h*y),A[3*this.b+1]+=IP*((-l.b*this.d-T.b*this.e)*n+(-i-Q)/-h*y),A[3*this.b+2]+=IP*((-l.c*this.d-T.c*this.e)*n+(-f-o)/-h*y),A[3*this.c]+=IP*(T.a*this.e*n+D/-h*y),A[3*this.c+1]+=IP*(T.b*this.e*n+Q/-h*y),A[3*this.c+2]+=IP*(T.c*this.e*n+o/-h*y);},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.g=0,U.i=0,U.j=0;H(360);C(155,1,{155:1},ks);H(155);C(361,1,Vf,Qm),U.cc=function(e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;return Q=new v0(e,this.a,this.b),o=new v0(e,this.c,this.b),L=new v0(e,this.b,this.c),s=new v0(e,this.d,this.c),y=new wP(Q.b*o.c-Q.c*o.b,Q.c*o.a-Q.a*o.c,Q.a*o.b-Q.b*o.a),l=new wP(L.b*s.c-L.c*s.b,L.c*s.a-L.a*s.c,L.a*s.b-L.b*s.a),f=(y.a*l.a+y.b*l.b+y.c*l.c)/(w.Math.sqrt(y.a*y.a+y.b*y.b+y.c*y.c)*w.Math.sqrt(l.a*l.a+l.b*l.b+l.c*l.c)),r=2*f*f-1,i=f*(2*r-1),D=.5*(this.e*(1+f)+this.f*(1-r)+this.g*(1+i)),D;},U.dc=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y;f=B(d(NV,1),e0,22,0,[new v0(e,this.b,this.a),new v0(e,this.b,this.c),new v0(e,this.c,this.b),new v0(e,this.c,this.d)]),y=B(d(NV,1),e0,22,0,[xT(f[0],f[1]),xT(f[2],f[3])]),P=B(d(Ut,1),ht,6,15,[mn(y[0]),mn(y[1])]),!(w.Math.abs(P[0])<lo||w.Math.abs(P[1])<lo)&&(y[0]=Mn(y[0]),y[1]=Mn(y[1]),n=y[0].a*y[1].a+y[0].b*y[1].b+y[0].c*y[1].c,L=1-n*n,o=L>0?w.Math.sqrt(L):0,D=2*o*n,Q=3*o-4*o*L,i=.5*(-this.e*o+2*this.f*D-3*this.g*Q),s=-i*(w.Math.abs(o)<lo?1/n:1/o),r=B(d(Ut,1),ht,6,15,[1/P[0]*(y[1].a-n*y[0].a),1/P[0]*(y[1].b-n*y[0].b),1/P[0]*(y[1].c-n*y[0].c),1/P[1]*(y[0].a-n*y[1].a),1/P[1]*(y[0].b-n*y[1].b),1/P[1]*(y[0].c-n*y[1].c)]),A[3*this.a]+=s*(r[2]*f[1].b-r[1]*f[1].c),A[3*this.a+1]+=s*(r[0]*f[1].c-r[2]*f[1].a),A[3*this.a+2]+=s*(r[1]*f[1].a-r[0]*f[1].b),A[3*this.b]+=s*(r[1]*(f[1].c-f[0].c)+r[2]*(f[0].b-f[1].b)+r[4]*-f[3].c+r[5]*f[3].b),A[3*this.b+1]+=s*(r[0]*(f[0].c-f[1].c)+r[2]*(f[1].a-f[0].a)+r[3]*f[3].c+r[5]*-f[3].a),A[3*this.b+2]+=s*(r[0]*(f[1].b-f[0].b)+r[1]*(f[0].a-f[1].a)+r[3]*-f[3].b+r[4]*f[3].a),A[3*this.c]+=s*(r[1]*f[0].c+r[2]*-f[0].b+r[4]*(f[3].c-f[2].c)+r[5]*(f[2].b-f[3].b)),A[3*this.c+1]+=s*(r[0]*-f[0].c+r[2]*f[0].a+r[3]*(f[2].c-f[3].c)+r[5]*(f[3].a-f[2].a)),A[3*this.c+2]+=s*(r[0]*f[0].b+r[1]*-f[0].a+r[3]*(f[3].b-f[2].b)+r[4]*(f[2].a-f[3].a)),A[3*this.d]+=s*(r[4]*f[2].c-r[5]*f[2].b),A[3*this.d+1]+=s*(r[5]*f[2].a-r[3]*f[2].c),A[3*this.d+2]+=s*(r[3]*f[2].b-r[4]*f[2].a));},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.f=0,U.g=0;H(361);C(362,1,Vf,uj),U.cc=function(e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;return P&&(K(this.g,this.a)==1||K(this.g,this.c)==1)?0:(Q=mn(new v0(e,this.a,this.c)),o=Q*Q,L=o*o*o*Q,r=1.07*this.i/(Q+tH*this.i),i=r*r,f=i*i*i*r,y=this.i*this.i,l=y*y*y*this.i,D=1.12*l/(L+eH*l)-2,s=f*D*this.j,s);},U.dc=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(r=mn(new v0(e,this.a,this.c)),f=r/this.i,D=f*f,Q=D*D*D,o=Q*f,L=o+eH,s=1.07/(f+1.07-1),y=s*s,l=y*y*y*s,n=this.j/this.i*l*(AH*Q/(L*L)+(AH/L+14)/(f+tH)),i=0;i<3;i++)P=.01*this.i,r>0&&(P=n*(e[3*this.a+i]-e[3*this.c+i])/r),A[3*this.a+i]+=P,A[3*this.c+i]-=P;},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.f=0,U.i=0,U.j=0;H(362);C(22,1,{22:1},wP,gT,LT,Yi,v0),U.mb=function(e){var A;return e===this?true:Xt(e,22)?(A=e,w.Math.abs(this.a-A.a)<.01&&w.Math.abs(this.b-A.b)<.01&&w.Math.abs(this.c-A.c)<.01):false;},U.ob=function(){return vt(this.a)+vt(this.b)+vt(this.c);},U.a=0,U.b=0,U.c=0;var NV=H(22);C(383,1,{},dv),U.kc=function(e,A){return Jn(this.b[e][A]);},U.lc=function(){return this.b.length;};H(383);C(377,1,{},XB),U.kc=function(e,A){return this.a[e][A];},U.lc=function(){return this.a.length;};H(377);C(390,1,{},zB),U.kc=function(e,A){return Jn(this.a[e][A]);},U.lc=function(){return this.a.length;};H(390);C(386,1,{},wv),U.kc=function(e,A){return Jn(this.b[e][A]);},U.lc=function(){return this.b.length;};H(386);C(384,1,{},cm);H(384);C(196,1,{},Wo),U.kc=function(e,A){return Jn(this.a.a[e][A]);},U.lc=function(){return this.a.a.length;};H(196);C(391,1,{},ZB),U.kc=function(e,A){return Jn(this.a[e][A]);},U.lc=function(){return this.a.length;};H(391);C(393,1,{},KB);H(393);C(392,1,{},YB),U.kc=function(e,A){return Jn(this.a[e][A]);},U.lc=function(){return this.a.length;};H(392);C(394,1,{},Bv),U.kc=function(e,A){return Jn(this.a[e][A]);},U.lc=function(){return this.a.length;};H(394);C(385,1,{},vg),U.kc=function(e,A){return Jn(this.b[e][A]);},U.lc=function(){return this.b.length;};H(385);C(387,1,{},gv),U.kc=function(e,A){return Jn(this.b[e][A]);},U.lc=function(){return this.b.length;};H(387);C(388,1,{},Fg),U.kc=function(e,A){return Jn(this.b[e][A]);},U.lc=function(){return this.b.length;};H(388);C(51,1,{},bU,Nn,Iv),U.pb=function(){return this.a+","+this.b+","+this.c;},U.a=0,U.b=0,U.c=0;H(51);C(389,1,{},fv),U.kc=function(e,A){return Jn(this.a[e][A]);},U.lc=function(){return this.a.length;};H(389);C(424,1,{});H(424);C(280,1,{},qR),U.a=null;var Gf;H(280);C(281,1,{},ij),U.a=null;var d8;H(281);C(282,424,{},Rv),U.a=false,U.e=0;var OV;H(282);C(213,1,{},Qh);var GV,z4,Jf;H(213);C(274,1,{},vm);var li,ul=false;H(274);C(275,1,{},UR);H(275);C(236,1,{236:1},N7),U.b=0;H(236);C(45,1,{45:1},Ze),U.b=0;H(45);C(132,1,{},fD);H(132);var JV,xP;C(279,1,{});H(279);var Ql,zf;C(285,1,{},Rj);var zV,Ro,L9,ol=false,s9,Yf;H(285);C(49,1,kf,P8,Vs,R3,wh),U.c=false,U.d=0;H(49);C(62,193,{193:1,62:1,4:1},JD,Tj),U.Eb=function(e,A){return this.a=uR(this,e,A),this.a!=0;},U.Fb=function(){this.a=0;},U.Gb=function(){var e;return e=new JD(),e.i[0].a=this.i[0].a,e.i[0].b=this.i[0].b,e.i[1].a=this.i[1].a,e.i[1].b=this.i[1].b,e.g=this.g,e;},U.Hb=function(e,A){return uR(this,e,A)!=0;},U.Ib=function(e,A){var n,P,r,i,f,D,Q;ae(e,this.g?Os(PP,fT(e)):iB(e)),i=A?X1(A,this.i[0].a):this.i[0].a,D=A?K1(A,this.i[0].b):this.i[0].b,f=A?X1(A,this.i[1].a):this.i[1].a,Q=A?K1(A,this.i[1].b):this.i[1].b,n=f-i,P=Q-D,KU(e,w.Math.max(1,.019999999552965164*w.Math.sqrt(n*n+P*P))),Ir(e,i,D,f,Q),r=new GD(4),He(r,f+n/40,Q+P/40),He(r,f-n/5+P/10,Q-P/5-n/10),He(r,f-n/20,Q-P/20),He(r,f-n/5-P/10,Q-P/5+n/10),YU(e,new nD(r));},U.Jb=function(e){var A,n,P,r,i,f;return f=Ph(this),i=w.Math.max(f/8,3),A=bA(this.i[0].a,this.i[0].b,this.i[1].a,this.i[1].b),P=w.Math.abs(i*w.Math.cos(A)),r=w.Math.abs(i*w.Math.sin(A)),n=new eD(),this.i[0].a<this.i[1].a?(n.c=this.i[0].a-P,n.b=this.i[1].a-this.i[0].a+2*P):(n.c=this.i[1].a-P,n.b=this.i[0].a-this.i[1].a+2*P),this.i[0].b<this.i[1].b?(n.d=this.i[0].b-r,n.a=this.i[1].b-this.i[0].b+2*r):(n.d=this.i[1].b-r,n.a=this.i[0].b-this.i[1].b+2*r),n;},U.Kb=function(){var e;return e=new V0(),J(e,' x1="'+this.i[0].a+'"'),J(e,' y1="'+this.i[0].b+'"'),J(e,' x2="'+this.i[1].a+'"'),J(e,' y2="'+this.i[1].b+'"'),e.a;},U.Lb=function(){return "arrow";},U.Mb=function(e){var A,n,P,r,i,f;switch(ae(e,SD(e)),this.a){case 1:rL(e,this.i[0].a-8,this.i[0].b-8,16);break;case 2:rL(e,this.i[1].a-8,this.i[1].b-8,16);break;case 3:i=Ph(this),r=w.Math.max(i/8,3),A=bA(this.i[0].a,this.i[0].b,this.i[1].a,this.i[1].b),n=r*w.Math.cos(A),P=-r*w.Math.sin(A),f=new GD(4),He(f,this.i[0].a+n,this.i[0].b+P),He(f,this.i[1].a+n,this.i[1].b+P),He(f,this.i[1].a-n,this.i[1].b-P),He(f,this.i[0].a-n,this.i[0].b-P),YU(e,new nD(f));}},U.Ob=function(e,A){switch(this.a){case 1:this.i[0].a=this.o[0]+e-this.k,this.i[0].b=this.p[0]+A-this.n;break;case 2:this.i[1].a=this.o[1]+e-this.k,this.i[1].b=this.p[1]+A-this.n;break;default:JF(this,e,A);}},U.a=0;H(62);C(214,1,{},L7),U.a=false,U.b=false,U.i=0,U.j=0,U.q=0,U.r=false,U.t=false;H(214);C(286,1,{},yj);H(286);C(183,1,{183:1,32:1},D5),U.Sb=function(e){return zO(this,e);},U.mb=function(e){return this.d==e.d&&this.e==e.e;},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.f=0,U.g=0;H(183);C(97,55,{97:1,4:1,32:1,55:1},pi);var Ul,Ll,sl,jo,yl,ll,vtt=E9(97,MN);C(199,1,{199:1},op),U.b=false,U.e=0;var Ftt=H(199);C(148,1,{148:1,32:1},As),U.Sb=function(e){return YG(this,e);},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0;var mtt=H(148);C(300,1,{},f7),U.b=0,U.c=0;var po,Tl;H(300);C(202,1,{},LU);H(202);C(408,1,{},fj),U.b=0,U.g=0;H(408);C(201,1,{201:1},qT),U.a=0;H(201);C(125,1,{125:1,32:1},cD),U.Sb=function(e){return this.b<e.b?-1:this.b>e.b?1:this.a<e.a?-1:this.a>e.a?1:0;},U.a=0,U.b=0;H(125);C(407,1,{},Og);H(407);C(170,1,{170:1},Nl),U.b=0,U.c=0,U.d=false;var ktt=H(170);C(406,1,{},oj),U.a=0,U.c=0,U.d=0,U.e=0,U.f=0,U.g=0,U.n=0,U.o=0,U.p=false,U.q=0,U.r=0,U.s=0,U.K=0;H(406);C(403,1,{},jb);H(403);C(402,1,{},Xo),U.a=0,U.b=0,U.c=0,U.q=0;H(402);C(293,1,Sf,Sm),U.mc=function(e){jX(this,e);},U.a=0,U.B=false,U.C=0;var YV,KV,Ti;H(293);C(378,1,{},O7),U.nc=function(){WS(this.a,this.b);};H(378);C(295,1,Sf,Km),U.mc=function(e){hX(this,e);},U.a=0,U.t=0,U.v=false;H(295);C(400,1,{},G7),U.nc=function(){_S(this.a,this.b);};H(400);C(220,1,Sf,gm,Sk),U.mc=function(e){Jz(this,e);},U.a=0,U.f=false,U.g=0,U.i=0,U.j=0,U.k=0;var XV;H(220);C(401,1,{},J7),U.nc=function(){$S(this.a,this.b);};H(401);C(338,1,{});H(338);C(162,338,{}),U.j=0;H(162);C(24,162,{24:1},S1),U.a=false;H(24);C(287,1,Sf,YR),U.mc=function(e){var A;Xt(e,140)?Y$((A=this,A)):Xt(e,156)?Att(this,e):Xt(e,137)&&Xa(this,e);},U.a=false,U.b=false,U.c=0,U.d=false,U.e=0,U.f=0,U.g=false,U.q=0,U.s=0,U.t=0,U.u=0,U.w=0,U.B=0,U.C=0,U.D=0,U.F=0,U.H=0,U.J=0,U.K=0,U.N=0,U.O=false,U.T=0,U.U=0,U.W=false,U.X=0,U.Y=0,U.Z=false,U.$=0,U.ab=0,U.eb=0,U.fb=0,U.hb=0,U.ib=0,U.kb=0,U.lb=0;var Co=true;H(287);C(294,1,{},pw);H(294);C(296,1,{},Cw);H(296);C(297,1,{},yd),U.b=0;H(297);C(298,1,{},W2),U.nc=function(){};H(298);C(299,1,{},Hw),U.nc=function(){fB(this.a);};H(299);C(302,1,{},ld);H(302);C(303,1,{262:1},Td),U.oc=function(){ZO(this.a,this.c,this.b);},U.c=0;H(303);C(304,1,{},z7),U.Rb=function(e,A){return bJ(this.a,this.b,e,A);},U.mb=function(e){return this===e;};H(304);C(305,1,Sf,Xb),U.mc=function(e){J5(this,e);},U.b=0,U.d=0,U.e=0,U.f=0,U.j=0,U.k=0,U.o=0;var B8=0,gn=0;H(305);C(307,1,{},Y7),U.nc=function(){ZS(this.a,this.b);},U.b=0;H(307);C(301,1,Sf,Av),U.mc=function(e){vK(this,e);};var ZV,hl,WV;H(301);C(404,1,{},Mw),U.nc=function(){dq(this.a);};H(404);C(140,162,{140:1},VU),U.a=0;H(140);var _V,$V,Kf,aV;C(104,121,{121:1,104:1},du),U.qb=function(e){Ir(this.B,e.a,e.c,e.b,e.d);},U.rb=function(e){HN(this.B,e.a,e.c,e.b,e.d);},U.sb=function(e){YU(this.B,new nD(e));},U.tb=function(e,A,n){kT(this.B,A,n,e);},U.ub=function(e,A,n){rL(this.B,e,A,n);},U.vb=function(e){return GL(this.B,e).b;},U.wb=function(){return this.b;},U.xb=function(){KF(this),this.a=1;},U.Ab=function(e){this.a=e,KU(this.B,this.a);},U.Bb=function(e){ae(this.B,e);},U.Cb=function(e){this.b=e,this.B&&eL(this.B,e,false,false);},U.a=0,U.b=0;var tE=H(104);C(221,1,{});H(221);C(156,162,{156:1},uB),U.a=false,U.b=0;H(156);C(137,162,{137:1},Th),U.pb=function(){return eE[this.j]+" x:"+this.g+" y:"+this.i+" button:"+this.b+" clicks:"+this.c+(this.f?" shift":"")+(this.d?" ctrl":"")+(this.a?" alt":"")+" isPopup:"+(this.e?"y":"n");},U.a=false,U.b=0,U.c=0,U.d=false,U.e=false,U.f=false,U.g=0,U.i=0;var eE;H(137);C(56,1,{56:1},c9,w3),U.pb=function(){return "x:"+this.a+" y:"+this.b;},U.a=0,U.b=0;var Y4=H(56);C(118,1,{413:1},jv,GD),U.Hb=function(e,A){var n,P,r;for(r=false,P=this.a-1,n=0;n<this.a;n++)this.c[n]>A!=this.c[P]>A&&e<(this.b[P]-this.b[n])*(A-this.c[n])/(this.c[P]-this.c[n])+this.b[n]&&(r=!r),P=n;return r;},U.a=0;H(118);C(35,1,{35:1,413:1},eD,QA),U.Hb=function(e,A){return xr(this,e,A);},U.pb=function(){return "x:"+this.c+" y:"+this.d+" w:"+this.b+" h:"+this.a;},U.a=0,U.b=0,U.c=0,U.d=0;var cl=H(35),Be=-1,AE,K4;C(410,1,{},Gg),U.getCanMolecule=function(e){var A;return A=P$(this.a,e),new CA(A);},U.getEncodedCoordinates=function(e){return qu(this.a,e);},U.getEncodedMapping=function(){return zd(this.a);},U.getFinalRank=function(){return this.a.f;},U.getGraphAtoms=function(){return Fq(this.a);},U.getGraphIndexes=function(){return mq(this.a);},U.getIDCode=function(){return ke(this.a);},U.getSymmetryRank=function(e){return HU(this.a,e);},U.getSymmetryRanks=function(){return this.a.g;},U.hasCIPParityDistinctionProblem=function(){return this.a.d;},U.invalidateCoordinates=function(){this.a.s=null;},U.normalizeEnantiomer=function(){return Qj(this.a);},U.setParities=function(){K5(this.a);};H(410);C(414,1,{},Wc);var btt=2,Rtt=0,jtt=1,ptt=4,Ctt=3;H(414);C(415,1,{},zg),U.getConformerCount=function(){return this.a.p;},U.getNextConformerAsMolecule=function(e){var A,n;return A=e?e.a:null,n=xx(this.a,A),n?n==A?e:new CA(n):null;},U.getOneConformerAsMolecule=function(e){var A;return A=Zx(this.a,e.a),A?e:null;},U.getPotentialConformerCount=function(){return eI(this.a);},U.qc=function(e,A,n,P){return iZ(this.a,e.a,A,n,P);},U.initializeConformers=function(e,A){A===void 0&&(A={});var n=A.strategy;n===void 0&&(n=3);var P=A.maxTorsionSets;P===void 0&&(P=Ry);var r=A.use60degreeSteps;return r===void 0&&(r=false),this.qc(e,n,P,r);};var Htt=4,Mtt=3,Vtt=1,Ett=2;H(415);C(416,1,{},_c);H(416);C(417,1,{},sg),U.assessDruglikeness=function(e){var A;return m_(this.a,(A=e.a,A));},U.getDetail=function(){var e;return e=this.a.a,!e&&JN(),DQ(e);},U.getDruglikenessString=function(e){return _K(e.a);};var Stt=-999;H(417);C(418,1,{},bB),U._minimise=function(e,A,n){return Ib(this.a,e,A);},U.getTotalEnergy=function(){return kq(this.a);},U.size=function(){return this.a.b.q;};var qtt=u4,Itt=Q4,xtt=Ey,nE=false,PE=false,rE=false;H(418);C(42,1,{42:1},G3,AL,CA),U.addAtom=function(e){return Z9(this.a,e);},U.addBond=function(e,A){return aU(this.a,e,A);},U.addFragment=function(e,A,n){NR(this.a,e.a,A,n);},U.rc=function(){jN(this.a);},U.sc=function(e){yp(this.a,e);},U.addImplicitHydrogens=function(e){e===void 0?this.rc():this.sc(e);},U.tc=function(){lU(),l5(this.a,1);},U.uc=function(e){l5(this.a,e);},U.addMissingChirality=function(e){e===void 0?this.tc():this.uc(e);},U.addMolecule=function(e){return kD(this.a,e.a);},U.addOrChangeAtom=function(e,A,n,P,r,i,f){return Oh(this.a,e,A,n,P,r,i,f);},U.addOrChangeBond=function(e,A,n){return cb(this.a,e,A,n);},U.addRing=function(e,A,n,P,r){return sf(this.a,e,A,n,P,r);},U.addRingToAtom=function(e,A,n,P){return FR(this.a,e,A,n,P);},U.addRingToBond=function(e,A,n,P){return JQ(this.a,e,A,n,P);},U.addSubstituent=function(e,A){return Gs(this.a,e.a,A);},U.calculateTorsion=function(e){return IQ(this.a,e);},U.canonizeCharge=function(e){return Pp(this.a,e,false);},U.changeAtom=function(e,A,n,P,r){return gf(this.a,e,A,n,P,r);},U.changeAtomCharge=function(e,A){return uh(this.a,e,A);},U.changeBond=function(e,A){return u8(this.a,e,A);},U.clear=function(){Fi(this.a);},U.convertStereoBondsToSingleBonds=function(e){v5(this.a,e);},U.copyAtom=function(e,A,n,P){return Vn(this.a,e.a,A,n,P);},U.copyBond=function(e,A,n,P,r,i){return uQ(this.a,e.a,A,n,P,r,i);},U.copyMolecule=function(e){ff(this.a,e.a);},U.copyMoleculeByAtoms=function(e,A,n,P){fi(this.a,e.a,A,n,P);},U.copyMoleculeByBonds=function(e,A,n,P){return Hj(this.a,e.a,A,n,P);},U.copyMoleculeProperties=function(e){kU(this.a,e.a);},U.deleteAtom=function(e){gQ(this.a,e);},U.deleteAtomOrBond=function(e,A){return ak(this.a,e,A);},U.deleteAtoms=function(e){return sJ(this.a,e);},U.deleteBond=function(e){gI(this.a,e);},U.deleteBondAndSurrounding=function(e){Kh(this.a,e);},U.deleteMarkedAtomsAndBonds=function(){return ni(this.a);},U.deleteMolecule=function(){Fi(this.a);},U.deleteSelectedAtoms=function(){return PQ(this.a);},U.ensureHelperArrays=function(e){ut(this.a,e);},U.findAlleneCenterAtom=function(e){return Ab(this.a,e);},U.findAlleneEndAtom=function(e,A){return ym(this.a,e,A);},U.findAtom=function(e,A){return ZA(this.a,e,A);},U.findBINAPChiralityBond=function(e){return os(this.a,e);},U.findBond=function(e,A){return wf(this.a,e,A);},U.findRingSystem=function(e,A,n,P){AR(this.a,e,A,n,P);},U.getAbsoluteAtomParity=function(e){return l3(this.a,e);},U.getAbsoluteBondParity=function(e){return Nq(this.a,e);},U.getAllAtoms=function(){return this.a.q;},U.getAllBonds=function(){return this.a.r;},U.getAllConnAtoms=function(e){return Ht(this.a,e);},U.getAllConnAtomsPlusMetalBonds=function(e){return ue(this.a,e);},U.getAllHydrogens=function(e){return hd(this.a,e);},U.getAromaticRingCount=function(){return SO(this.a);},U.getAtomAbnormalValence=function(e){return kr(this.a,e);},U.getAtomCIPParity=function(e){return pU(this.a,e);},U.getAtomCharge=function(e){return b1(this.a,e);},U.getAtomColor=function(e){return Uu(this.a,e);},U.getAtomCustomLabel=function(e){return Zn(this.a,e);},U.getAtomESRGroup=function(e){return VA(this.a,e);},U.getAtomESRType=function(e){return ne(this.a,e);},U.getAtomLabel=function(e){return ji(this.a,e);},U.getAtomList=function(e){return HA(this.a,e);},U.getAtomListString=function(e){return Jh(this.a,e);},U.getAtomMapNo=function(e){return R1(this.a,e);},U.getAtomMass=function(e){return le(this.a,e);},U.getAtomParity=function(e){return d0(this.a,e);},U.getAtomPi=function(e){return $1(this.a,e);},U.getAtomPreferredStereoBond=function(e){return Sv(this.a,e);},U.getAtomQueryFeaturesObject=function(e){return Fa(this.a,e);},U.getAtomRadical=function(e){return mA(this.a,e);},U.getAtomRingBondCount=function(e){return pT(this.a,e);},U.getAtomRingCount=function(e,A){return M5(this.a,e,A);},U.getAtomRingSize=function(e){return H9(this.a,e);},U.getAtomX=function(e){return kt(this.a,e);},U.getAtomY=function(e){return pt(this.a,e);},U.getAtomZ=function(e){return vA(this.a,e);},U.getAtomicNo=function(e){return K(this.a,e);},U.getAtoms=function(){return this.a.f;},U.getAverageBondLength=function(e){return VL(this.a,e);},U.getAverageTopologicalAtomDistance=function(){return EX(this.a);},U.getBond=function(e,A){return u1(this.a,e,A);},U.getBondAngle=function(e,A){return K0(this.a,e,A);},U.getBondAtom=function(e,A){return z(this.a,e,A);},U.getBondBridgeMaxSize=function(e){return yT(this.a,e);},U.getBondBridgeMinSize=function(e){return S3(this.a,e);},U.getBondCIPParity=function(e){return wu(this.a,e);},U.getBondESRGroup=function(e){return Wi(this.a,e);},U.getBondESRType=function(e){return hP(this.a,e);},U.getBondLength=function(e){return sh(this.a,e);},U.getBondOrder=function(e){return dt(this.a,e);},U.getBondParity=function(e){return Ie(this.a,e);},U.getBondPreferredStereoBond=function(e){return dY(this.a,e);},U.getBondQueryFeatures=function(e){return Ae(this.a,e);},U.getBondQueryFeaturesObject=function(e){return T_(this.a,e);},U.getBondRingSize=function(e){return pr(this.a,e);},U.getBondType=function(e){return l1(this.a,e);},U.getBondTypeSimple=function(e){return Lu(this.a,e);},U.getBonds=function(){return this.a.g;},U.getBounds=function(){var e;return e=qb(this.a,oE),e?qx(e.c,e.d,e.b,e.a):null;},U.getCanonizedIDCode=function(e){var A;return A=new EA(this.a,e),ke(A);},U.getChiralText=function(){return BR(this.a);},U.getChirality=function(){return this.a.I;},U.getCompactCopy=function(){return new CA(Yn(this.a));},U.getConnAtom=function(e,A){return W(this.a,e,A);},U.getConnAtoms=function(e){return O(this.a,e);},U.getConnBond=function(e,A){return xt(this.a,e,A);},U.getConnBondOrder=function(e,A){return pA(this.a,e,A);},U.getDefaultMaxValenceUncharged=function(e){return xO(this.a,e);},U.getDiastereotopicAtomIDs=function(){return KY(this.a);},U.getElectronValenceCorrection=function(e,A){return mu(this.a,e,A);},U.getExcludedNeighbourCount=function(e){return EL(this.a,e);},U.getExplicitHydrogens=function(e){return m3(this.a,e);},U.getFinalRanks=function(e){var A;return A=new EA(this.a,e),A.f;},U.getFisherProjectionParity=function(e,A,n,P){return k5(this.a,e,A,n,P);},U.getFragmentAtoms=function(e,A){return Wm(this.a,e,A);},U.getFragmentNumbers=function(e,A,n){return n9(this.a,e,A,n);},U.getFragments=function(){var e,A,n;for(e=pO(this.a),n=c(X4,o4,42,e.length,0,1),A=0;A<e.length;A++)n[A]=new CA(e[A]);return n;},U.getFreeValence=function(e){return Ki(this.a,e);},U.getHandleHydrogenMap=function(){return ou(this.a);},U.getHelperArrayStatus=function(){return this.a.T;},U.getHoseCodes=function(e){e=e||{};var A=(typeof e.maxSphereSize===ho?5:e.maxSphereSize)|0,n=(typeof e.type===ho?0:e.type)|0;return lJ(this.a,A,n);},U.getIDCode=function(){var e;return e=BF(this.a),e==null&&(e=ke(new FA(this.a))),e;},U.getIDCodeAndCoordinates=function(){return {idCode:this.getIDCode(),coordinates:this.getIDCoordinates()};},U.getIDCoordinates=function(){var e;return e=wG(this.a),e==null&&(e=v7(new FA(this.a))),e;},U.getImplicitHigherValence=function(e,A){return uf(this.a,e,A);},U.getImplicitHydrogens=function(e){return It(this.a,e);},U.getIndex=function(){return fx(this.a);},U.getLowestFreeValence=function(e){return dQ(this.a,e);},U.getMaxAtoms=function(){return this.a.M;},U.getMaxBonds=function(){return this.a.N;},U.getMaxValence=function(e){return UT(this.a,e);},U.getMaxValenceUncharged=function(e){return pn(this.a,e);},U.getMetalBondedConnAtoms=function(e){return qi(this.a,e);},U.getMolecularFormula=function(){return new rg(this.a);},U.getMoleculeColor=function(){return this.a.O;},U.getMolweight=function(){return gY(this.a);},U.getName=function(){return this.a.P;},U.getNonHydrogenNeighbourCount=function(e){return t0(this.a,e);},U.getNumberOfHydrogens=function(){return XG(this.a);},U.getOccupiedValence=function(e){return N1(this.a,e);},U.getPath=function(e,A,n,P,r){return s2(this.a,e,A,n,P,null,r);},U.getPathBonds=function(e,A,n){Hm(this.a,e,A,n);},U.getPathLength=function(e,A){return Q5(this.a,e,A);},U.getRingSet=function(){return new qw(xn(this.a));},U.getRotatableBondCount=function(){return TR(this.a);},U.getStereoBond=function(e){return CQ(this.a,e);},U.getStereoCenterCount=function(){return yF(this.a);},U.vc=function(){return this.a;},U.getStereoProblem=function(e){return Vg(this.a,e);},U.getSubstituent=function(e,A,n,P,r){return qQ(this.a,e,A,n,P.a,r);},U.getSubstituentSize=function(e,A){return o5(this.a,e,A);},U.getSymmetryRank=function(e){return R0(this.a,e);},U.getZNeighbour=function(e,A){return WR(this.a,e,A);},U.invalidateHelperArrays=function(e){zS(this.a,e);},U.inventCoordinates=function(){var e;e=new P7(),e.g=new zr(0),er(e,this.a),of(this.a);},U.is3D=function(){return NT(this.a);},U.isAlkaliMetal=function(e){return fO(this.a,e);},U.isAllylicAtom=function(e){return LI(this.a,e);},U.isAmideTypeBond=function(e){return pK(this.a,e);},U.isAromaticAtom=function(e){return Bn(this.a,e);},U.isAromaticBond=function(e){return _e(this.a,e);},U.isAtomConfigurationUnknown=function(e){return Br(this.a,e);},U.isAtomMarkedForDeletion=function(e){return Yq(this.a,e);},U.isAtomParityPseudo=function(e){return Mi(this.a,e);},U.isAtomStereoCenter=function(e){return V8(this.a,e);},U.isAutoMappedAtom=function(e){return dn(this.a,e);},U.isBINAPChiralityBond=function(e){return ri(this.a,e);},U.isBondBackgroundHilited=function(e){return H3(this.a,e);},U.isBondBridge=function(e){return Bu(this.a,e);},U.isBondForegroundHilited=function(e){return vr(this.a,e);},U.isBondMarkedForDeletion=function(e){return $q(this.a,e);},U.isBondParityPseudo=function(e){return gU(this.a,e);},U.isBondParityUnknownOrNone=function(e){return M3(this.a,e);},U.isChalcogene=function(e){return CT(this.a,e);},U.isDelocalizedBond=function(e){return O8(this.a,e);},U.isEarthAlkaliMetal=function(e){return DO(this.a,e);},U.isElectronegative=function(e){return tA(this.a,e);},U.isElectropositive=function(e){return SY(this.a,e);},U.isFlatNitrogen=function(e){return EP(this.a,e,true);},U.isFragment=function(){return this.a.K;},U.isHalogene=function(e){return ON(this.a,e);},U.isMarkedAtom=function(e){return Y0(this.a,e);},U.isMetalAtom=function(e){return $0(this.a,e);},U.isNaturalAbundance=function(e){return Qu(this.a,e);},U.isNitrogenFamily=function(e){return oT(this.a,e);},U.isOrganicAtom=function(e){return kb(this.a,e);},U.isPseudoRotatableBond=function(e){return _b(this.a,e);},U.isPurelyOrganic=function(){return wK(this.a);},U.isRingAtom=function(e){return Ei(this.a,e);},U.isRingBond=function(e){return fA(this.a,e);},U.isSelectedAtom=function(e){return P0(this.a,e);},U.isSelectedBond=function(e){return FP(this.a,e);},U.isSimpleHydrogen=function(e){return TG(this.a,e);},U.isSmallRingAtom=function(e){return dU(this.a,e);},U.isSmallRingBond=function(e){return WP(this.a,e);},U.isStabilizedAtom=function(e){return sI(this.a,e);},U.isStereoBond=function(e){return jr(this.a,e);},U.markAtomForDeletion=function(e){Zw(this.a,e);},U.markBondForDeletion=function(e){aS(this.a,e);},U.normalizeAmbiguousBonds=function(){return Di(this.a);},U.removeAtomColors=function(){xd(this.a);},U.removeAtomCustomLabels=function(){this.a.t=null;},U.removeAtomMarkers=function(){tT(this.a);},U.removeAtomSelection=function(){hx(this.a);},U.removeBondHiliting=function(){$d(this.a);},U.removeExplicitHydrogens=function(){c5(this.a,true);},U.removeQueryFeatures=function(){return zb(this.a);},U.renumberESRGroups=function(e){return a0(this.a,e);},U.scaleCoords=function(e){IB(this.a,e);},U.setAllAtoms=function(e){rq(this.a,e);},U.setAllBonds=function(e){iq(this.a,e);},U.setAssignParitiesToNitrogen=function(e){Eq(this.a,e);},U.setAtomAbnormalValence=function(e,A){XA(this.a,e,A);},U.setAtomCIPParity=function(e,A){Vd(this.a,e,A);},U.setAtomCharge=function(e,A){E0(this.a,e,A);},U.setAtomColor=function(e,A){vD(this.a,e,A);},U.setAtomConfigurationUnknown=function(e,A){XU(this.a,e,A);},U.setAtomCustomLabel=function(e,A){VP(this.a,e,A);},U.setAtomESR=function(e,A,n){Ve(this.a,e,A,n);},U.setAtomList=function(e,A,n){yf(this.a,e,A,n);},U.setAtomMapNo=function(e,A,n){We(this.a,e,A,n);},U.setAtomMarker=function(e,A){Gn(this.a,e,A);},U.setAtomMass=function(e,A){br(this.a,e,A);},U.setAtomParity=function(e,A,n){we(this.a,e,A,n);},U.setAtomQueryFeature=function(e,A,n){T1(this.a,e,A,n);},U.setAtomRadical=function(e,A){Oe(this.a,e,A);},U.setAtomSelection=function(e,A){gP(this.a,e,A);},U.setAtomX=function(e,A){ve(this.a,e,A);},U.setAtomY=function(e,A){xe(this.a,e,A);},U.setAtomZ=function(e,A){TP(this.a,e,A);},U.setAtomicNo=function(e,A){X0(this.a,e,A);},U.setBondAtom=function(e,A,n){gD(this.a,e,A,n);},U.setBondBackgroundHiliting=function(e,A){bx(this.a,e,A);},U.setBondCIPParity=function(e,A){cd(this.a,e,A);},U.setBondESR=function(e,A,n){Q8(this.a,e,A,n);},U.setBondForegroundHiliting=function(e,A){Rx(this.a,e,A);},U.setBondOrder=function(e,A){iT(this.a,e,A);},U.setBondParity=function(e,A,n){A8(this.a,e,A,n);},U.setBondParityUnknownOrNone=function(e){t3(this.a,e);},U.setBondQueryFeature=function(e,A,n){Je(this.a,e,A,n);},U.setBondType=function(e,A){w0(this.a,e,A);},U.setChirality=function(e){xl(this.a,e);},U.setFragment=function(e){pe(this.a,e);},U.setHelperValidity=function(e){bS(this.a,e);},U.setHydrogenProtection=function(e){kS(this.a,e);},U.setMaxAtoms=function(e){bQ(this.a,e);},U.setMaxBonds=function(e){AQ(this.a,e);},U.setMoleculeColor=function(e){RS(this.a,e);},U.setName=function(e){$2(this.a,e);},U.setParitiesValid=function(e){UD(this.a,e);},U.setStereoBondFromAtomParity=function(e){ey(this.a,e);},U.setStereoBondFromBondParity=function(e){Nj(this.a,e);},U.setStereoBondsFromParity=function(){of(this.a);},U.setToRacemate=function(){this.a.L=true;},U.setUnknownParitiesToExplicitlyUnknown=function(){C3(this.a);},U.shareSameFragment=function(e,A){return Q5(this.a,e,A)!=-1;},U.stripIsotopInfo=function(){return qJ(this.a);},U.stripSmallFragments=function(e){return MR(this.a,e);},U.stripStereoInformation=function(){ds(this.a);},U.suggestBondType=function(e,A){return nx(this.a,e,A);},U.supportsImplicitHydrogen=function(e){return aL(this.a,e);},U.swapAtoms=function(e,A){V5(this.a,e,A);},U.swapBonds=function(e,A){$h(this.a,e,A);},U.toIsomericSmiles=function(e){e=e||{};var A=e.createSmarts===true,n=e.includeMapping===true,P=e.kekulizedOutput===true;return this.wc(A,n,P);},U.wc=function(e,A,n){return Jv(this,e,A,n);},U.toMolfile=function(){var e;return e=new b3(this.a),e.a.a;},U.toMolfileV3=function(){var e;return e=new Bg(this.a),e.b.a;},U.toSVG=function(e,A,n,P,r,i,f){var D,Q,o,L,s,y,l,T,h,g,m,v;for(o=true,s=0;s<this.a.q-1;s++)if(kt(this.a,s)!=kt(this.a,s+1)||pt(this.a,s)!=pt(this.a,s+1)){o=false;break;}return y=o?Yn(this.a):this.a,o&&er(new Y8(0),y),ut(y,95),v=i_(f),L=t$(f),Q=new qk(y,L,i),Q.J=n,o2(Q,null,new QA(0,0,e,A),v),D=Q.v,X5(Q,null),m=Jj(Q),P?(T=Jt(M1(w.Math.round(D.b+r*2))),l=Jt(M1(w.Math.round(D.a+r*2))),h=Jt(M1(w.Math.round(D.c-r))),g=Jt(M1(w.Math.round(D.d-r))),BT(m,'width="\\d+px" height="\\d+px" viewBox="0 0 \\d+ \\d+"','width="'+T+'px" height="'+l+'px" viewBox="'+h+" "+g+" "+T+" "+l+'"')):m;},U.toSmarts=function(){return Ru(new lD(this.a,1));},U.toSmiles=function(){return Jv(this,false,false,true);},U.translateCoords=function(e,A){CL(this.a,e,A);},U.validate=function(){D_(this.a);},U.zoomAndRotate=function(e,A,n){bk(this.a,e,A,n);},U.zoomAndRotateInit=function(e,A){tb(this.a,e,A);};var Ntt=32,Ott=2,Gtt=4,Jtt=6,ztt=64,Ytt=128,Ktt=1,Xtt=256,Ztt=8,Wtt=ie,_tt=16,$tt=q1,att=512,t1t=cV,e1t=24,A1t=cV,iE,n1t=E6,P1t=M6,r1t=V6,i1t=0,f1t=3,D1t=1,u1t=2,Q1t=64,o1t=384,U1t=448,L1t=192,s1t=256,y1t=0,l1t=320,T1t=128,fE,h1t=1,c1t=2,w1t=4,g1t=0,d1t=3,B1t=1,v1t=ly,F1t=2,m1t=1,k1t=2,b1t=i9,R1t=3,j1t=25,p1t={l:4186111,m:4193407,h:127},C1t=5,H1t=39,M1t=Hf,V1t=re,E1t=Qr,S1t=WQ,q1t=nP,I1t=4,x1t=7,N1t=ZQ,O1t=XQ,G1t=de,J1t=C0,z1t={l:4194302,m:4193343,h:7},Y1t=5,K1t=17,X1t=Ui,Z1t=Pr,W1t=7,_1t=32,$1t=q1,a1t=46,t0t=d2,e0t=128,A0t=I0,n0t=En,P0t=xp,r0t=256,i0t=l8,f0t=L8,D0t=Np,u0t=512,Q0t=y8,o0t=u0,U0t=16,L0t=Op,s0t=ie,y0t=T8,l0t=32,T0t=to,h0t=qA,c0t=64,w0t=4,g0t=8,d0t=Tn,B0t=Po,v0t=134217728,F0t=3,m0t=14,k0t=oi,b0t=U8,R0t=rr,j0t=ir,p0t=fr,C0t=Dr,H0t=ur,M0t=Rf,V0t=120,E0t=4,S0t=3,q0t=2,I0t=h8,x0t=To,N0t=h8,O0t=cn,G0t=30,J0t=j6,z0t=f9,Y0t=3,K0t=22,X0t=v6,Z0t=2,W0t=44,_0t=48,$0t=32,a0t=0,tet=16,eet=4,Aet=48,DE,net=1,Pet=0,ret=3,iet=2,fet=1,Det=0,uet=3,Qet=2,oet=Qi,Uet=no,Let=2,set=21,yet=qA,Tet=31,het=5,cet=0,wet=s8,get=8,det=7680,Bet=4,vet=9,Fet=9,met=cy,ket=4,bet=13,Ret=8,jet=8388480,pet=2,Cet=Mf,Het=T8,Met=16,Vet=6291840,Eet=23,qet=rP,Iet=128,xet=32,Net=64,Oet=96,Get=2,Jet=5,zet=256,Yet=SP,Ket=3,Xet=17,Zet=384,Wet=2,_et=7,$et=6291967,aet=1,tAt=4,eAt=386,AAt=512,nAt=8,PAt=2,rAt=129,iAt=511,fAt=127,DAt=384,uAt=16,QAt=32,oAt=64,UAt=1,LAt=4,sAt=257,yAt=458752,lAt=Li,TAt=c1,hAt=l8,cAt=I0,wAt=u0,gAt=yy,dAt=0,BAt=327680,uE,vAt=24,FAt=321,mAt=6,kAt=5,bAt=32,RAt=0,jAt=1,pAt=2,CAt=255,HAt=16,MAt=128,VAt=1,EAt=8,SAt=4,qAt=2,IAt=32,xAt=64,NAt=248,OAt=31,GAt=1,JAt=0,zAt=15,YAt=7,KAt=3,XAt=63,ZAt=95,WAt=190,_At=16,$At=0,aAt=1,tnt=16,ent=256,Ant=128,nnt=8,Pnt=32,rnt=4,int=511,fnt=64,Dnt=1,unt=2,QE,oE,X4=H(42);C(419,279,{},H7),Wn(U,{acceptorCount:{get:function(){return GO(this);}}}),Wn(U,{donorCount:{get:function(){return bG(this);}}}),Wn(U,{logP:{get:function(){return XJ(this);}}}),Wn(U,{logPString:{get:function(){return DQ(K$((new Qh(),this.a)));}}}),Wn(U,{logS:{get:function(){return mK((D6(),this.a));}}}),Wn(U,{logSString:{get:function(){return DQ(N_((D6(),this.a)));}}}),Wn(U,{polarSurfaceArea:{get:function(){return gO((a5(),this.a));}}}),Wn(U,{polarSurfaceAreaString:{get:function(){return DQ(ZX((a5(),this.a)));}}}),Wn(U,{rotatableBondCount:{get:function(){return TR(this.a);}}}),Wn(U,{stereoCenterCount:{get:function(){return yF(this.a);}}});H(419);C(67,1,{},_P,Hd),U.addCatalyst=function(e){Wl(this.a,e.a);},U.addCatalystAt=function(e,A){gq(this.a,e.a,A);},U.addProduct=function(e){S7(this.a,e.a);},U.addProductAt=function(e,A){iI(this.a,e.a,A);},U.addReactant=function(e){q7(this.a,e.a);},U.addReactantAt=function(e,A){fI(this.a,e.a,A);},U.clear=function(){ev(this.a);},U.clone=function(){return new _P(new Vs(this.a));},U.getAverageBondLength=function(){return ib(this.a);},U.getCatalyst=function(e){return new CA(Oq(this.a,e));},U.getCatalysts=function(){return this.a.a.a.length;},U.getHighestMapNo=function(){return ms(this.a);},U.getMergedCopy=function(){return new _P($K(this.a));},U.getMolecule=function(e){return new CA(nv(this.a,e));},U.getMolecules=function(){return rx(this.a);},U.getName=function(){return UI(this.a);},U.getProduct=function(e){return new CA(T3(this.a,e));},U.getProducts=function(){return this.a.f.a.length;},U.getReactant=function(e){return new CA(gr(this.a,e));},U.getReactants=function(){return this.a.g.a.length;},U.getReactionCenterMapNos=function(){return la(this.a);},U.isEmpty=function(){return PX(this.a);},U.isFragment=function(){return Iq(this.a);},U.isPerfectlyMapped=function(){return S$(this.a);},U.isReactionLayoutRequired=function(){return g_(this.a);},U.removeCatalysts=function(){vi(this.a.a.a,0);},U.setFragment=function(e){Tz(this.a,e);},U.setName=function(e){qS(this.a,e);},U.toRxn=function(e){var A;return A=new qR(this.a,e),A.a?A.a.a:null;},U.toRxnV3=function(e){var A;return A=new ij(this.a,e),A.a?A.a.a:null;},U.toSmiles=function(){return rZ(this.a);},U.validateMapping=function(){m$(this.a);};H(67);C(420,1,{},$c);var Qnt="+",ont=15,Unt=8,Lnt=2,snt=3,ynt=4,lnt=1,Tnt=0,hnt=" ",cnt="#",wnt="!",gnt=16;H(420);C(421,1,{},I7),U.getProducts=function(){var e,A,n,P;if(P=HJ(this.a),P.length==0)return k1(X4,[nA,o4],[172,42],0,[0,0],2);for(n=k1(X4,[nA,o4],[172,42],0,[P.length,P[0].length],2),e=0;e<P.length;e++)for(A=0;A<P[0].length;A++)n[e][A]=new CA(P[e][A]);return n;},U.setReactant=function(e,A){return r_(this.a,e,A.a);};H(421);C(422,1,{},ac);var Ho=false;H(422);C(261,1,{},qw),U.determineAromaticity=function(e,A,n,P){Xs(this.a,e,A,n,P);},U.getAtomIndex=function(e,A){return iF(this.a,e,A);},U.getAtomRingSize=function(e){return iA(this.a,e);},U.getBondIndex=function(e,A){return $O(this.a,e,A);},U.getBondRingSize=function(e){return sP(this.a,e);},U.getHeteroPosition=function(e){return hq(this.a,e);},U.getRingAtoms=function(e){return y3(this.a,e);},U.getRingBonds=function(e){return V7(this.a,e);},U.getRingSize=function(e){return q3(this.a,e);},U.getSharedRing=function(e,A){return zL(this.a,e,A);},U.getSize=function(){return this.a.j.a.length;},U.isAromatic=function(e){return i3(this.a,e);},U.isAtomMember=function(e,A){return yA(this.a,e,A);},U.isBondMember=function(e,A){return tf(this.a,e,A);},U.isDelocalized=function(e){return cq(this.a,e);},U.qualifiesAsAmideTypeBond=function(e){return ps(this.a,e);},U.validateMemberIndex=function(e,A){return KT(this.a,e,A);};var dnt=7,Bnt=3,vnt=7,Fnt=5,mnt=1;H(261);C(423,1,{},Ud),U.getField=function(e){var A,n;for(n=ix(this.a),A=0;A<n.length;A++)if(at(n[A],e))return rB(this.a,A);return null;},U.getFieldData=function(e){return rB(this.a,e);},U.getFieldNames=function(e){return ZI(this.a,e);},U.getMolecule=function(){return new CA(OY(this.a));},U.getNextFieldData=function(){var e;return e=this.a.b.a,e;},U.getNextMolFile=function(){var e;return e=this.a.g.a,e;},U.next=function(){return V$(this.a);};H(423);C(425,1,{},eB),U.findFragmentInMolecule=function(e){var A;return A=QX(e),sn(this.b,A,this.a);},U.getMatchList=function(){return QJ(this.b.F);},U.isFragmentInMolecule=function(){return tg(this.b);},U.setFragment=function(e){Ln(this.b,e.a);},U.setMol=function(e,A){Dn(this.b,A.a),Ln(this.b,e.a);},U.setMolecule=function(e){Dn(this.b,e.a);},U.a=0;H(425);C(426,1,{},_w),U.createIndex=function(e){return Ts(this.a,e.a);},U.isFragmentInMolecule=function(){return CK(this.a);},U.setFragment=function(e,A){lN(this.a,e.a,A);},U.setMolecule=function(e,A){TN(this.a,e.a,A);};H(426);C(427,1,{},Ww),U.getSmartsWarning=function(){return gN(this.a);},U.xc=function(e,A,n,P,r,i){var f;switch(f=0,e){case "smarts":f=2;break;case "guess":f=1;}n&&(f|=8),A&&(f|=4),P&&(f|=16),r&&(f|=32),i&&(f|=64),this.a=new sQ(f);},U.yc=function(e,A,n,P){var r;return md(this.a,e.a,KA((r=A,ND(),r)),n,P),e;},U.parseMolecule=function(e,A){A=A||{};var n=A.molecule||new G3(),P=!A.noCoordinates,r=!A.noStereo;return this.yc(n,e,P,r);},U.parseReaction=function(e){return new _P(kN(this.a,e));},U.setRandomSeed=function(e){ES(this.a,e);};H(427);C(428,1,{},eg),U.assessRisk=function(e,A){var n;return FZ(e.a,(n=A,n));},U.getDetail=function(e,A){return DQ(c$(e.a,A));};var knt=3,bnt=2,UE,Rnt=1,jnt=0,pnt=2,Cnt=0,Hnt=3,Mnt=1;H(428);C(429,1,{},Jg),U.applyTransformation=function(e,A){xG(this.a,e.a,A);},U.setMolecule=function(e,A){return rX(this.a,e.a);};H(429);C(430,1,{},Zc);H(430);C(260,153,{153:1},rg),Wn(U,{absoluteWeight:{get:function(){return cO(this);}}}),Wn(U,{formula:{get:function(){return wJ(this);}}}),Wn(U,{relativeWeight:{get:function(){return wO(this);}}});H(260);C(431,1,{},gb),U.addPastedOrDropped=function(e,A,n){zR(this.a,e.a);},U.clearAll=function(){Lb(this.a);},U.fireKeyEvent=function(e,A,n,P,r,i){var f;f=new uB(e,A,i,this.a),JT(this.d,f);},U.fireMouseEvent=function(e,A,n,P,r,i,f,D,Q){var o;o=new Th(e,A,n,P,r,i,f,D,Q,this.a),JT(this.e,o);},U.getGenericEditorArea=function(){return this.a;},U.zc=function(){return this.c;},U.getMode=function(){return this.a.U;},U.getMolecule=function(){return new CA(this.a.V);},U.getReaction=function(){return new _P(gh(this.a));},U.moleculeChanged=function(){XN(this.a);},U.repaint=function(){e1(this);},U.setMolecule=function(e){vJ(this.a,e.a);},U.setReaction=function(e){VR(this.a,e.a);},U.toolChanged=function(e){tQ(this.a,e);},U.b=false;var Vnt=4,Ent=8,Snt=1,qnt=2,LE,sE,yE,lE,Int=-2,xnt=-5,Nnt=-1,Ont=-4,Gnt=-8,Jnt=-7,znt=1,Ynt=2,Knt=-6,Xnt=-3,Znt=8,Wnt=2,_nt=1,$nt=4,ant=3,tPt=7,ePt=4,APt=5,nPt=6,PPt=1,rPt=2,iPt=-1,fPt=-2,DPt=0,uPt=1,QPt=4,oPt=2,UPt=3,LPt=10,sPt=5,yPt=6,lPt=13,TPt=11,hPt=7,cPt=8,wPt=12,gPt=9;H(431);C(288,1,Sf,Vw),U.mc=function(e){Vx(this.a,e.j,e.a);};H(288);C(291,1,{262:1},Ew),U.oc=function(){aI(this.a);};H(291);C(433,1,{},Em),U.fireMouseEvent=function(e,A,n,P,r,i,f,D,Q){var o;o=new Th(e,A,n,P,r,i,f,D,Q,this.b),JT(this.d,o);},U.getHeight=function(){return this.b.e;},U.Ac=function(){return this.c;},U.getWidth=function(){return this.b.o;},U.setDimensions=function(e,A){hB(this,e,A);},U.a=false;H(433);C(306,1,{262:1},Sw),U.oc=function(){PF(this.a);};H(306);C(432,1,{},TB),U.build16x16CursorImage=function(e){var A;return A=ov(this,16,16),qK(A,e),A.a;},U.createDialog=function(e,A){return MD(this,e,A);},U.createImage=function(e,A){return ov(this,e,A);},U.createNativeDialog=function(e){return AB(this,e);},U.createPopupMenu=function(e){return null;},U.Bc=function(){return this.a;},U.grabFocus=function(){pd(this);},U.openChemistryFile=function(e){return null;},U.runLater=function(e){LL(this,e);},U.Cc=function(e){e.oc();},U.setCursor=function(e){Kd(this,e);},U.setEditorArea=function(e){},U.showHelpDialog=function(e,A){cT(this,e,A);},U.showMessage=function(e){};H(432);C(171,1,{}),U.Dc=function(e,A){sO(this,new VU(this,e,A));},U.Ec=function(){return this.b;};H(171);C(454,171,{},y7);H(454);C(290,1,{},Iw),U.Fc=function(){return this.a;};H(290);C(455,171,{},T7);H(455);C(292,1,{},xw),U.Gc=function(){this.a&&this.a.mc(new VU(this,1,0));},U.Hc=function(){this.a&&this.a.mc(new VU(this,0,0));},U.Ic=function(){return this.b;};H(292);C(157,1,{},a2),U.Jc=function(){return this.a;};H(157);C(219,1,{},_o),U.pc=function(){var e=this.Kc();return e;},U.Kc=function(){return this.a;};H(219);C(289,221,{},e7);H(289);C(453,171,{},l7);H(453);C(218,221,{},al);H(218);C(139,1,{},nD),U.getSize=function(){return this.a.a;},U.getX=function(e){return o7(this.a,e);},U.getY=function(e){return U7(this.a,e);};H(139);C(456,171,{},h7);H(456);C(212,1,{},dA);H(212);var Z4=null;C(257,1,kf,_2),U.Rb=function(e,A){return cs(e,A);},U.mb=function(e){return this===e;};H(257);var xA,hi;C(131,1,kf,tD),U.Rb=function(e,A){return hs(e,A);},U.mb=function(e){return this===e;};H(131);C(92,1,{},Ri,j3);H(92);C(382,92,kf,Yg);H(382);C(344,129,yn);H(344);C(163,344,{163:1,4:1,19:1,33:1,27:1},SB),U.ic=function(){return nK(this),this.c;},U.Lc=function(){return O1(this.b)===O1(W4)?null:this.b;};var W4;H(163);C(409,1,{});H(409);var Mo=0,TE=0,Vo=-1;C(396,409,{},tw);var _4;H(396);var qn,$4,hE,a4,tc;C(57,1,{},dP,mL),U.a=0;H(57);C(239,1,{},$3),U.b=0;var cE=null,wE;H(239);C(160,1,{160:1}),U.mb=function(e){return em(this,e);},U.ob=function(){var e;return e=this.Mc()+this.Nc(),vt(e)*37;};H(160);C(168,160,{168:1,160:1},M7),U.mb=function(e){var A;return Xt(e,168)?(A=e,this.a==A.a&&this.b==A.b):em(this,e);},U.Mc=function(){return this.a;},U.Nc=function(){return this.b;},U.a=0,U.b=0;H(168);C(159,160,{160:1,159:1,4:1},ew,ug),U.Mc=function(){return this.a;},U.Nc=function(){return this.b;},U.a=0,U.b=0;var dPt=H(159);C(451,1,{});H(451);C(248,451,{248:1}),U.mb=function(e){var A;return e===this?true:Xt(e,169)?(A=e,this.c==A.c&&this.d==A.d&&this.b==A.b&&this.a==A.a):false;},U.ob=function(){var e;return e=ss(this.c),e=x1(e,on(ss(this.d),37)),e=x1(e,on(ss(this.b),43)),e=x1(e,on(ss(this.a),47)),Jt(e)^Jt(q0(e,32));};H(248);C(169,248,{248:1,169:1},nT),U.a=0,U.b=0,U.c=0,U.d=0;H(169);C(447,1,{}),U.Oc=function(){var e;return e=c(l9,te,6,1,15,1),this.Pc(e)==-1?-1:e[0];},U.Pc=function(e){return this.Qc(e,0,e.length);};H(447);C(53,447,{},nn),U.Oc=function(){return RL(this);},U.Qc=function(e,A,n){return this.b.Qc(e,A,n);},U.a=0;H(53);C(412,1,{});H(412);C(411,412,{});H(411);C(446,1,{});H(446);C(103,447,{},Bi),U.Oc=function(){return Gx(this.a);},U.Pc=function(e){return NF(this,e,0,e.length);},U.Qc=function(e,A,n){return NF(this,e,A,n);};H(103);C(265,411,{},Aw);H(265);C(86,447,{},R9),U.Oc=function(){return this.a==this.b.length?-1:Ji(this.b,this.a++);},U.Qc=function(e,A,n){var P;return this.a>=this.b.length?-1:(P=w.Math.min(this.b.length-this.a,n),uO(this.b,this.a,this.a+P,e,A),this.a+=P,P);},U.a=0;H(86);C(448,1,{});H(448);C(238,448,{},P3),U.pb=function(){return this.a.a;};H(238);C(130,1,{206:1}),U.pb=function(){return this.a;};H(130);C(82,33,yn,j8);H(82);C(255,79,yn,u7,b7);H(255);C(141,1,{4:1,141:1,32:1},Ol),U.Sb=function(e){return this.a-e.a;},U.mb=function(e){return Xt(e,141)&&e.a==this.a;},U.ob=function(){return this.a;},U.pb=function(){return String.fromCharCode(this.a);},U.a=0;var BPt=H(141),ec;C(66,33,yn,e3,p8);H(66);C(164,33,yn,A7,rU);H(164);C(142,120,{4:1,32:1,142:1,120:1},Gl),U.Sb=function(e){return E3(this.a,e.a);},U.Xc=function(){return this.a;},U.mb=function(e){return Xt(e,142)&&e.a==this.a;},U.ob=function(){return this.a;},U.Yc=function(){return this.a;},U.pb=function(){return ""+this.a;},U.a=0;var vPt=H(142),Ac;C(143,120,{4:1,32:1,143:1,120:1},Jl),U.Sb=function(e){return Mx(this.a,e.a);},U.Xc=function(){return Gr(this.a);},U.mb=function(e){return Xt(e,143)&&n0(e.a,this.a);},U.ob=function(){return NI(this.a);},U.Yc=function(){return Jt(this.a);},U.pb=function(){return ""+he(this.a);},U.a=0;var FPt=H(143),nc;C(514,1,{}),C(397,33,yn,g7);H(397);C(40,66,{4:1,19:1,40:1,33:1,27:1},YP);H(40);C(115,1,{4:1,115:1},uT),U.mb=function(e){var A;return Xt(e,115)?(A=e,this.c==A.c&&this.d==A.d&&this.a==A.a&&this.b==A.b):false;},U.ob=function(){return iJ(B(d(fP,1),e0,1,5,[m1(this.c),this.a,this.d,this.b]));},U.pb=function(){return this.a+"."+this.d+"("+(this.b!=null?this.b:"Unknown Source")+(this.c>=0?":"+this.c:"")+")";},U.c=0;var gE=H(115);C(76,130,{206:1},yD,fu);H(76);C(25,130,{206:1},V0,b9,vn);H(25);C(516,1,{});var ci;C(39,33,yn,BA,LD);H(39);C(31,120,{4:1,32:1,120:1,31:1},Me,W3,Zd,ef,X7,jD),U.Sb=function(e){return SR(this,e);},U.Xc=function(){return se(Re(this));},U.mb=function(e){var A;return this===e?true:Xt(e,31)?(A=e,this.e==A.e&&SR(this,A)==0):false;},U.ob=function(){var e;return this.b!=0?this.b:this.a<54?(e=M1(this.f),this.b=Jt(V(e,-1)),this.b=33*this.b+Jt(V(q0(e,32),-1)),this.b=17*this.b+vt(this.e),this.b):(this.b=17*rm(this.c)+vt(this.e),this.b);},U.Yc=function(){return this.e<=-32||this.e>(this.d>0?this.d:w.Math.floor((this.a-1)*co)+1)?0:Nd(this.e==0||this.a==0&&this.f!=-1?(!this.c&&(this.c=mP(M1(this.f))),this.c):this.e<0?kP((!this.c&&(this.c=mP(M1(this.f))),this.c),Pi(-this.e)):q5((!this.c&&(this.c=mP(M1(this.f))),this.c),Pi(this.e)));},U.pb=function(){return Re(this);},U.a=0,U.b=0,U.d=0,U.e=0,U.f=0;var dE,Eo,Pc,rc,wi,gl,So,ic,BE=H(31);C(23,120,{4:1,32:1,120:1,23:1},kA,qB,Ue,Xm,jg),U.Sb=function(e){return rs(this,e);},U.Xc=function(){return se($5(this,0));},U.mb=function(e){return yh(this,e);},U.ob=function(){return rm(this);},U.Yc=function(){return Nd(this);},U.pb=function(){return $5(this,0);},U.b=-2,U.c=0,U.d=0,U.e=0;var fc,I2,vE,qo,Io,y9,gi=H(23),FE,mE;C(99,1,{4:1,99:1},Ed,zD),U.mb=function(e){return Xt(e,99)&&e.a==this.a&&e.b==this.b;},U.ob=function(){return this.a<<3|this.b.b;},U.pb=function(){return "precision="+this.a+" roundingMode="+this.b;},U.a=0;H(99);var sr,Xf,Dc;C(72,55,{4:1,32:1,55:1,72:1},j9);var kE,bE,RE,jE,ye,dl,pE,CE,mPt=E9(72,HO);C(114,1,$y),U.Sb=function(e){return rN(this.a,e.a);},U.mb=function(e){var A;return e===this?true:Xt(e,114)?(A=e,at(this.a,A.a)):false;},U.ob=function(){return fh(this.a);},U.pb=function(){return this.a;};H(114);C(450,1,{});H(450);C(124,450,{},Pu,U3),U.a=0;H(124);C(106,1,y4),U.getOrDefault=function(e,A){var n;return n=this.get(e),n==null&&!this.containsKey(e)?A:n;},U.putIfAbsent=function(e,A){var n;return n=this.get(e),n??this.put(e,A);},U.replace=function(e,A){return this.containsKey(e)?this.put(e,A):null;},U.clear=function(){this.$c().clear();},U.Zc=function(e){return wk(this,e);},U.containsKey=function(e){return !!jh(this,e,false);},U.containsValue=function(e){var A,n,P;for(n=this.$c().Tb();n.ad();)if(A=n.bd(),P=A.ed(),O1(e)===O1(P)||e!=null&&MP(e,P))return  true;return  false;},U.mb=function(e){var A,n,P;if(e===this)return  true;if(!Xt(e,109)||(P=e,this.size()!=P.size()))return  false;for(n=P.$c().Tb();n.ad();)if(A=n.bd(),!this.Zc(A))return  false;return  true;},U.get=function(e){return XP(jh(this,e,false));},U.ob=function(){return lF(this.$c());},U.isEmpty=function(){return this.size()==0;},U.keySet=function(){return new zl(this);},U.put=function(e,A){throw At(new LD("Put not supported on this map"));},U.putAll=function(e){var A,n;for(L1(e),n=e.$c().Tb();n.ad();)A=n.bd(),this.put(A.dd(),A.ed());},U.remove=function(e){return XP(jh(this,e,true));},U.size=function(){return this.$c().size();},U.pb=function(){var e,A,n;for(n=new cL(", ","{","}"),A=this.$c().Tb();A.ad();)e=A.bd(),Tv(n,RB(this,e.dd())+"="+RB(this,e.ed()));return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c;},U.values=function(){return new rD(this);};H(106);C(334,106,y4),U.clear=function(){Hu(this);},U.containsKey=function(e){return Cu(this,e);},U.containsValue=function(e){return kd(this,e);},U.$c=function(){return new PD(this);},U.get=function(e){return Er(this,e);},U.put=function(e,A){return Sr(this,e,A);},U.remove=function(e){return dL(this,e);},U.size=function(){return wD(this);},U.b=0;H(334);C(445,43,C2),U.Ub=function(){return new C8(this);},U.mb=function(e){var A;return e===this?true:!Xt(e,85)||(A=e,A.size()!=this.size())?false:nQ(this,A);},U.ob=function(){return lF(this);},U.removeAll=function(e){var A,n,P,r;if(L1(e),r=this.size(),r<e.size())for(A=this.Tb();A.ad();)n=A.bd(),e.contains(n)&&A.cd();else for(P=e.Tb();P.ad();)n=P.bd(),this.remove(n);return r!=this.size();};H(445);C(145,445,C2,PD),U.clear=function(){Hu(this.a);},U.contains=function(e){return FB(this,e);},U.Tb=function(){return new FF(this.a);},U.remove=function(e){var A;return FB(this,e)?(A=e.dd(),dL(this.a,A),true):false;},U.size=function(){return wD(this.a);};H(145);C(335,1,{},FF),U._c=function(e){zn(this,e);},U.bd=function(){var e;return Bd(this.f.b,this.d),BD(this.b),this.c=this.a,e=this.a.bd(),this.b=nh(this),e;},U.ad=function(){return this.b;},U.cd=function(){Fu(!!this.c),Bd(this.f.b,this.d),this.c.cd(),this.c=null,this.b=nh(this),this.d=this.f.b;},U.b=false,U.d=0;H(335);C(226,1,{},Kl),U._c=function(e){zn(this,e);},U.ad=function(){return C9(this);},U.bd=function(){return aB(this);},U.cd=function(){oL(this);},U.a=0,U.b=-1;H(226);C(227,226,{},sT),U.cd=function(){oL(this);};H(227);C(133,94,bp,qD),U.addAtIndex=function(e,A){DL(e,this.b),this.c.addAtIndex(this.a+e,A),++this.b;},U.getAtIndex=function(e){return Fe(e,this.b),this.c.getAtIndex(this.a+e);},U.removeAtIndex=function(e){var A;return Fe(e,this.b),A=this.c.removeAtIndex(this.a+e),--this.b,A;},U.setAtIndex=function(e,A){return Fe(e,this.b),this.c.setAtIndex(this.a+e,A);},U.size=function(){return this.b;},U.a=0,U.b=0;H(133);C(228,445,C2,zl),U.clear=function(){this.a.clear();},U.contains=function(e){return this.a.containsKey(e);},U.Tb=function(){var e;return e=this.a.$c().Tb(),new Yl(e);},U.remove=function(e){return this.a.containsKey(e)?(this.a.remove(e),true):false;},U.size=function(){return this.a.size();};H(228);C(229,1,{},Yl),U._c=function(e){zn(this,e);},U.ad=function(){return this.a.ad();},U.bd=function(){var e;return e=this.a.bd(),e.dd();},U.cd=function(){this.a.cd();};H(229);C(135,43,Ty,rD),U.clear=function(){this.a.clear();},U.contains=function(e){return this.a.containsValue(e);},U.Tb=function(){var e;return e=this.a.$c().Tb(),new iD(e);},U.size=function(){return this.a.size();};H(135);C(136,1,{},iD),U._c=function(e){zn(this,e);},U.ad=function(){return this.a.ad();},U.bd=function(){var e;return e=this.a.bd(),e.ed();},U.cd=function(){this.a.cd();};H(136);tx();C(161,1,{161:1,84:1}),U.mb=function(e){var A;return Xt(e,84)?(A=e,z8(this.c,A.dd())&&z8(this.d,A.ed())):false;},U.dd=function(){return this.c;},U.ed=function(){return this.d;},U.ob=function(){return FU(this.c)^FU(this.d);},U.fd=function(e){return fd(this,e);},U.pb=function(){return this.c+"="+this.d;};H(161);C(146,161,{161:1,146:1,84:1},hU);H(146);C(449,1,{84:1}),U.mb=function(e){var A;return Xt(e,84)?(A=e,z8(this.b.value[0],A.dd())&&z8(pL(this),A.ed())):false;},U.ob=function(){return FU(this.b.value[0])^FU(pL(this));},U.pb=function(){return this.b.value[0]+"="+pL(this);};H(449);C(233,106,{106:1,233:1,109:1,460:1,458:1}),U.Zc=function(e){return sv(this,e);},U.containsKey=function(e){return qU(this,e);},U.$c=function(){return new Xl(this);},U.get=function(e){return Te(this,e);},U.keySet=function(){return new w9(this);};H(233);C(234,445,C2,Xl),U.contains=function(e){return Xt(e,84)&&sv(this.b,e);},U.Tb=function(){return new x8(this.b);},U.remove=function(e){var A;return Xt(e,84)?(A=e,vv(this.b,A)):false;},U.size=function(){return this.b.c;};H(234);C(90,445,C2,w9),U.Ub=function(){return new L3(this);},U.clear=function(){ki(this.a);},U.contains=function(e){return qU(this.a,e);},U.Tb=function(){var e;return e=new x8(new q8(this.a).b),new g9(e);},U.remove=function(e){return qU(this.a,e)?(TT(this.a,e),true):false;},U.size=function(){return this.a.c;};H(90);C(91,1,{},g9),U._c=function(e){zn(this,e);},U.ad=function(){return C9(this.a.a);},U.bd=function(){var e;return e=dr(this.a),e.dd();},U.cd=function(){dd(this.a);};H(91);C(452,43,Ty),U.add=function(e){return aN(ls(this,e)),true;},U.addAll=function(e){return L1(e),IU(e!=this,"Can't add a queue to itself"),QF(this,e);},U.clear=function(){for(;zT(this)!=null;);};H(452);C(398,43,{5:1,36:1,43:1,38:1},Kg),U.add=function(e){return uL(this,e),true;},U.clear=function(){this.b!=this.c&&(this.a=c(fP,e0,1,8,5,1),this.b=0,this.c=0);},U.contains=function(e){return bF(new $U(this),e);},U.isEmpty=function(){return B7(this);},U.Tb=function(){return new $U(this);},U.remove=function(e){return QN(new $U(this),e);},U.size=function(){return this.c-this.b&this.a.length-1;},U.Ub=function(){return new C8(this);},U.Wb=function(e){var A;return A=this.c-this.b&this.a.length-1,e.length<A&&(e=uu(new Array(A),e)),_v(this,e,A),e.length>A&&(e[A]=null),e;},U.b=0,U.c=0;H(398);C(198,1,{},$U),U._c=function(e){zn(this,e);},U.ad=function(){return this.a!=this.b;},U.bd=function(){return im(this);},U.cd=function(){tF(this);},U.a=0,U.b=0,U.c=-1;H(198);C(21,1,{},Zt),U._c=function(e){zn(this,e);},U.ad=function(){return this.a<this.c.a.length;},U.bd=function(){return $t(this);},U.cd=function(){Fu(this.b!=-1),LA(this.c,this.a=this.b),this.b=-1;},U.a=0,U.b=-1;H(21);C(269,w.Function,{},di),U.gd=function(e,A){return $8(e,A);},C(466,w.Function,{},ql),U.hd=function(e,A){return G(e,A)<0?-1:G(e,A)>0?1:0;},C(179,94,{4:1,36:1,43:1,94:1,38:1,83:1,126:1},iU),U.contains=function(e){return cF(this,e)!=-1;},U.getAtIndex=function(e){return Fe(e,this.a.length),this.a[e];},U.setAtIndex=function(e,A){var n;return n=(Fe(e,this.a.length),this.a[e]),this.a[e]=A,n;},U.size=function(){return this.a.length;},U.toArray=function(){return zm(this,c(fP,e0,1,this.a.length,5,1));},U.Wb=function(e){return zm(this,e);};H(179);C(47,w.Function,{},D0),U.gd=function(e,A){return e-A;},C(181,1,{181:1},Xg),U.mb=function(e){var A,n,P;if(this===e)return  true;if(!Xt(e,181)||(P=e,n=yL(this.a),n!=yL(P.a)))return  false;for(A=0;A<=n;A++)if((this.a[A]|0)!=(P.a[A]|0))return  false;return  true;},U.ob=function(){var e,A,n,P;for(n=yL(this.a),e=-2128831035^n,A=0;A<=n;A++)P=this.a[A]|0,e=e*ay&-1^P&255,e=e*ay&-1^P>>>8&255,e=e*ay&-1^P>>>16&255,e=e*ay&-1^P>>>24;return e;},U.pb=function(){var e,A;if(NO(this)==0)return "{}";for(A=new vn("{"),e=ck(this,0),A.a+=e;(e=ck(this,e+1))!=-1;)A.a+=", ",A.a+=e;return A.a+="}",A.a;};H(181);C(186,1,{36:1,38:1},$o),U.Ub=function(){return new C8(this);},U.Vb=function(){return new D3(this.Ub());},U.add=function(e){throw At(new BA());},U.addAll=function(e){throw At(new BA());},U.clear=function(){throw At(new BA());},U.contains=function(e){return this.b.contains(e);},U.containsAll=function(e){return this.b.containsAll(e);},U.isEmpty=function(){return this.b.isEmpty();},U.Tb=function(){return new Gw(this.b.Tb());},U.remove=function(e){throw At(new BA());},U.removeAll=function(e){throw At(new BA());},U.retainAll=function(e){throw At(new BA());},U.size=function(){return this.b.size();},U.toArray=function(){return this.b.toArray();},U.pb=function(){return ZD(this.b);};H(186);C(342,1,{},Gw),U._c=function(e){zn(this,e);},U.ad=function(){return this.a.ad();},U.bd=function(){return this.a.bd();},U.cd=function(){Zq();};H(342);C(187,186,{36:1,38:1,83:1},jU),U.Ub=function(){return new C8(this);},U.addAtIndex=function(e,A){throw At(new BA());},U.addAllAtIndex=function(e,A){throw At(new BA());},U.mb=function(e){return MP(this.a,e);},U.getAtIndex=function(e){return this.a.getAtIndex(e);},U.ob=function(){return a8(this.a);},U.indexOf=function(e){return this.a.indexOf(e);},U.isEmpty=function(){return this.a.isEmpty();},U.lastIndexOf=function(e){return this.a.lastIndexOf(e);},U.removeAtIndex=function(e){throw At(new BA());},U.setAtIndex=function(e,A){throw At(new BA());},U.subList=function(e,A){return new jU(this.a.subList(e,A));};H(187);C(339,1,{109:1},Jw),U.getOrDefault=function(e,A){var n;return n=this.c.get(e),n==null&&!this.c.containsKey(e)?A:n;},U.putIfAbsent=function(e,A){var n;return n=this.c.get(e),n??g3();},U.replace=function(e,A){return this.c.containsKey(e)?g3():null;},U.clear=function(){throw At(new BA());},U.containsKey=function(e){return this.c.containsKey(e);},U.containsValue=function(e){return this.c.containsValue(e);},U.$c=function(){return !this.a&&(this.a=new j7(this.c.$c())),this.a;},U.mb=function(e){return MP(this.c,e);},U.get=function(e){return this.c.get(e);},U.ob=function(){return a8(this.c);},U.isEmpty=function(){return this.c.isEmpty();},U.keySet=function(){return !this.b&&(this.b=new DU(this.c.keySet())),this.b;},U.put=function(e,A){return g3();},U.putAll=function(e){throw At(new BA());},U.remove=function(e){throw At(new BA());},U.size=function(){return this.c.size();},U.pb=function(){return ZD(this.c);},U.values=function(){return !this.d&&(this.d=new $o(this.c.values())),this.d;};H(339);C(188,186,BV,DU),U.Ub=function(){return new C8(this);},U.mb=function(e){return MP(this.b,e);},U.ob=function(){return a8(this.b);};H(188);C(340,188,BV,j7),U.contains=function(e){return this.b.contains(e);},U.containsAll=function(e){return this.b.containsAll(e);},U.Tb=function(){var e;return e=this.b.Tb(),new zw(e);},U.toArray=function(){var e;return e=this.b.toArray(),uN(e,e.length),e;};H(340);C(343,1,{},zw),U._c=function(e){zn(this,e);},U.bd=function(){return new Zl(this.a.bd());},U.ad=function(){return this.a.ad();},U.cd=function(){throw At(new BA());};H(343);C(230,1,{84:1},Zl),U.mb=function(e){return this.a.mb(e);},U.dd=function(){return this.a.dd();},U.ed=function(){return this.a.ed();},U.ob=function(){return this.a.ob();},U.fd=function(e){throw At(new BA());},U.pb=function(){return ZD(this.a);};H(230);C(341,187,{36:1,38:1,83:1,126:1},R7);H(341);C(263,1,kf,cw),U.Rb=function(e,A){return $8(e.b,A.b);},U.mb=function(e){return this===e;};H(263);var Bl;C(373,1,kf,Pw),U.Rb=function(e,A){return L1(e),um(e,(L1(A),A));},U.mb=function(e){return this===e;};H(373);C(258,33,yn,A3);H(258);C(65,334,{4:1,5:1,106:1,109:1},UP);H(65);C(122,445,{4:1,5:1,36:1,43:1,38:1,122:1,85:1},DD),U.add=function(e){return aP(this,e);},U.clear=function(){Hu(this.a);},U.contains=function(e){return Cu(this.a,e);},U.isEmpty=function(){return wD(this.a)==0;},U.Tb=function(){var e;return e=new zl(this.a).a.$c().Tb(),new Yl(e);},U.remove=function(e){return dL(this.a,e)!=null;},U.size=function(){return wD(this.a);};H(122);C(376,1,{36:1},Ld),U.Tb=function(){return new IT(this);},U.c=0;H(376);C(245,1,{},IT),U._c=function(e){zn(this,e);},U.bd=function(){return this.d=this.a[this.c++],this.d;},U.ad=function(){var e;return this.c<this.a.length?true:(e=this.b.next(),e.done?false:(this.a=e.value[1],this.c=0,true));},U.cd=function(){P5(this.e,this.d.dd()),this.c!=0&&--this.c;},U.c=0,U.d=null;H(245);C(374,1,{36:1},sd),U.Tb=function(){return new MT(this);},U.c=0,U.d=0;H(374);C(244,1,{},MT),U._c=function(e){zn(this,e);},U.bd=function(){return this.c=this.a,this.a=this.b.next(),new gd(this.d,this.c,this.d.d);},U.ad=function(){return !this.a.done;},U.cd=function(){pF(this.d,this.c.value[0]);};H(244);C(375,449,{84:1},gd),U.dd=function(){return this.b.value[0];},U.ed=function(){return pL(this);},U.fd=function(e){return sm(this.a,this.b.value[0],e);},U.c=0;H(375);C(310,1,{},nw),U.jd=function(e){return Dd(this,e);},U.kd=function(e){return e.dd();};H(310);C(311,1,{},Bw),U.jd=function(e){return ud(this,e);},U.kd=function(e){return e.ed();};H(311);C(405,33,yn,n7);H(405);C(147,452,Ty,Z7,p7),U.addAll=function(e){var A,n,P;for(L1(e),Zg(e!=this),P=this.b.a.length,n=e.Tb();n.ad();)A=n.bd(),mt(this.b,L1(A));return P!=this.b.a.length?(rQ(this,0),true):false;},U.clear=function(){vi(this.b.a,0);},U.contains=function(e){return (e==null?-1:x9(this.b,e,0))!=-1;},U.Tb=function(){return new Yw(this);},U.remove=function(e){var A;return A=e==null?-1:x9(this.b,e,0),A<0?false:(ZT(this,A),true);},U.removeAll=function(e){return es(this.b,e)?(rQ(this,0),true):false;},U.retainAll=function(e){return Pm(this.b,e)?(rQ(this,0),true):false;},U.size=function(){return this.b.a.length;},U.Ub=function(){return new C8(this);},U.toArray=function(){return _3(this.b.a);},U.Wb=function(e){return Pf(this.b,e);};H(147);C(395,1,{},Yw),U._c=function(e){zn(this,e);},U.ad=function(){return this.a<this.c.b.a.length;},U.bd=function(){return BD(this.a<this.c.b.a.length),this.b=this.a++,N(this.c.b,this.b);},U.cd=function(){Fu(this.b!=-1),ZT(this.c,this.a=this.b),this.b=-1;},U.a=0,U.b=-1;H(395);C(59,1,{},WD,zr),U.a=0,U.b=0;var uc,Qc,kPt=0;H(59);C(60,1,{},C8);H(60);C(189,60,{},L3);H(189);C(152,1,{},Sg,cL),U.pb=function(){return this.a?this.e.length==0?this.a.a:this.a.a+(""+this.e):this.c;};H(152);C(44,233,{4:1,5:1,106:1,233:1,109:1,460:1,458:1,44:1},yP,Oi),U.clear=function(){ki(this);},U.$c=function(){return new q8(this);},U.put=function(e,A){return Ye(this,e,A);},U.remove=function(e){return TT(this,e);},U.size=function(){return this.c;},U.c=0;var HE=H(44);C(71,1,{},x8),U._c=function(e){zn(this,e);},U.bd=function(){return dr(this);},U.ad=function(){return C9(this.a);},U.cd=function(){dd(this);};H(71);C(77,234,C2,q8),U.clear=function(){ki(this.a);};H(77);C(123,146,{161:1,146:1,84:1,123:1},jL),U.b=false;var bPt=H(123);C(191,1,{},Zo),U.pb=function(){return "State: mv="+this.c+" value="+this.d+" done="+this.a+" found="+this.b;},U.a=false,U.b=false,U.c=false;H(191);C(80,55,el,lu),U.ld=function(){return  false;},U.md=function(){return  false;};var oc,ME,VE,EE,RPt=E9(80,VN);C(354,80,el,Mg),U.md=function(){return  true;};E9(354,null);C(355,80,el,qg),U.ld=function(){return  true;},U.md=function(){return  true;};E9(355,null);C(356,80,el,Hg),U.ld=function(){return  true;};E9(356,null);C(134,445,{4:1,5:1,36:1,43:1,38:1,85:1},r3,QU),U.Ub=function(){return new L3(this);},U.add=function(e){return Gi(this,e);},U.clear=function(){ki(this.a);},U.contains=function(e){return TU(this,e);},U.Tb=function(){var e;return e=new x8(new q8(new w9(this.a).a).b),new g9(e);},U.remove=function(e){return TT(this.a,e)!=null;},U.size=function(){return this.a.c;};H(134);C(367,94,{4:1,5:1,36:1,43:1,94:1,38:1,83:1,126:1},i7),U.addAtIndex=function(e,A){pu(e,this.a.a.length+1),t8(this.a,e,A);},U.add=function(e){return _7(this,e);},U.addAllAtIndex=function(e,A){return pu(e,this.a.a.length+1),fm(this.a,e,A);},U.addAll=function(e){return RP(this.a,e);},U.clear=function(){vi(this.a.a,0);},U.contains=function(e){return x9(this.a,e,0)!=-1;},U.containsAll=function(e){return nQ(this.a,e);},U.getAtIndex=function(e){return pu(e,this.a.a.length),N(this.a,e);},U.indexOf=function(e){return x9(this.a,e,0);},U.isEmpty=function(){return this.a.a.length==0;},U.Tb=function(){return new Zt(this.a);},U.lastIndexOf=function(e){return nd(this.a,e);},U.removeAtIndex=function(e){return pu(e,this.a.a.length),LA(this.a,e);},U.removeAll=function(e){return es(this.a,e);},U.Xb=function(e,A){xB(this.a,e,A);},U.setAtIndex=function(e,A){return pu(e,this.a.a.length),q9(this.a,e,A);},U.size=function(){return this.a.a.length;},U.subList=function(e,A){return new qD(this.a,e,A);},U.toArray=function(){return _3(this.a.a);},U.Wb=function(e){return $7(this,e);},U.pb=function(){return Jk(this.a);};H(367);C(350,106,y4),U.containsKey=function(e){return FT(this,e);},U.containsValue=function(e){if(e==null)throw At(new d9());return kd(this.e,e);},U.$c=function(){return new PD(this.e);},U.get=function(e){return OB(this,e);},U.put=function(e,A){return Mv(this,e,A);},U.putIfAbsent=function(e,A){return FT(this,e)?this.get(e):this.put(e,A);},U.remove=function(e){if(e==null)throw At(new d9());return dL(this.e,e);},U.replace=function(e,A){if(A==null)throw At(new d9());return FT(this,e)?this.put(e,A):null;};H(350);C(264,1,{},hw),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return e;};H(264);C(61,1,{},lP),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return x3(this.a,this.b,e);};H(61);C(95,55,{4:1,32:1,55:1,95:1},cU);var SE,xo,Uc,vl=E9(95,vN);C(166,1,{},Su);H(166);C(314,1,{},fw),U.nd=function(e,A){e.add(A);};H(314);C(316,1,{},Dw),U.pc=function(){return new f1();};H(316);C(317,1,{},uw),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return tL(e);};H(317);C(318,1,{},Qw),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return Xt(e,126)?new R7(e):new jU(e);};H(318);C(319,1,{},iw),U.pc=function(){return new UP();};H(319);C(320,1,{},ow),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return new Jw(e);};H(320);C(224,1,{},Il),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return tL(e);};H(224);C(323,1,{},Uw),U.pc=function(){return new DD();};H(323);C(324,1,{},Lw),U.nd=function(e,A){aP(e,A);};H(324);C(327,1,{},sw),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return tL(e);};H(327);C(328,1,{},yw),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return new DU(e);};H(328);C(313,1,{},Qg),U.nd=function(e,A){hI(this.a,this.b,e,A);};H(313);C(315,1,{},lw);H(315);C(321,1,{},bd),U.nd=function(e,A){CY(this.a,this.c,this.b,e,A);},U.b=false;H(321);C(322,1,{},Tw);H(322);C(325,1,{},gw);H(325);C(326,1,{},dw),U.jd=function(e){return L1(e),new lP(this,e);},U.kd=function(e){return e;};H(326);C(345,1,{}),U.b=false;H(345);C(190,345,{},D3);H(190);C(346,1,{},ww);H(346);C(347,1,{},Kw);H(347);C(348,1,{},og);H(348);C(222,114,$y);H(222);C(223,222,$y,s3);H(223);C(312,222,$y,Cg);H(312);C(337,446,{},Ng),U.a=0,U.b=0;var qE=null;H(337);C(211,63,{63:1,32:1,211:1},hj),U.b=0;H(211);C(249,1,{249:1},td);H(249);C(209,1,{},pg),U.a=0,U.d=0,U.i=false,U.j=false,U.o=0,U.p=0,U.v=0,U.w=0,U.C=false;H(209);C(271,1,{},vw),U.Rb=function(e,A){return E3(A.o.length,e.o.length);},U.mb=function(e){return this===e;};H(271);C(272,1,{},D7);H(272);C(177,1,{177:1},Cv);var jPt=H(177);C(351,350,{4:1,106:1,109:1},ed),U.get=function(e){return WB(this,e);},U.put=function(e,A){return _B(this,e,A);},U.clear=function(){Hu(new PD(this.e).a);},U.a=0,U.b=0,U.c=0,U.d=0;var No;H(351);C(232,1,{32:1,232:1},Dg),U.Sb=function(e){return Wx(this,e);},U.b=0;H(232);C(270,1,{},Cd),U.b=false,U.c=0,U.d=0;H(270);C(176,1,{176:1},ej),U.a=0,U.b=false,U.i=0,U.j=0,U.n=0;var IE,xE,NE,pPt=H(176);C(165,1,{32:1,165:1},DB),U.Sb=function(e){return WF(this,e);},U.mb=function(e){return WF(this,e)==0;},U.pb=function(){var e,A,n,P,r,i,f,D;for(D=new V0(),n=this.i,r=0,f=n.length;r<f;++r)e=n[r],D.a+=e,D.a+=",";for(this.i.length!=0&&un(D,D.a.length-1),D.a+=";",A=this.d,P=0,i=A.length;P<i;++P)e=A[P],D.a+=e,D.a+=",";return this.d.length!=0&&un(D,D.a.length-1),D.a;},U.b=0,U.e=0,U.g=false;var OE=H(165);C(252,1,{252:1},$F),U.a=0;H(252);C(381,1,{},aR),U.c=0;var Lc;H(381);C(235,1,{}),U.g=0,U.r=0,U.s=0,U.t=0,U.B=0,U.F=false;H(235);C(352,1,{},Fw);H(352);C(117,235,{117:1},ML),U.od=function(e){return OQ(this,this.b);},U.b=false;H(117);C(210,117,{117:1},rT),U.od=function(e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v;if(!e)return OQ(this,this.a);if(e.b==0)return OQ(this,this.b);for(P=HK(this,e),n=e.i,A=e.d,L=c(Pt,ft,6,P.length,16,1),i=0;i<64;i++){for((L[0]||this.v[0].d.length==1)&&(P[0]=0),o=1,D=1;D<this.v.length;D++)L[o]||this.v[D].d.length==1?P[o]=P[o-1]:P[o]+=P[o-1],++o;for(T=this.u,h=0,g=T.length;h<g;++h)l=T[h],L[o]||l.b.length==1?P[o]=P[o-1]:P[o]+=P[o-1],++o;if(P[P.length-1]==0)return OQ(this,this.b);for(y=Rn(this.c)*P[P.length-1],f=0;f<P.length;f++)if(y<P[f]){if(m=kn(n,n.length),r=kn(A,A.length),f<this.v.length){for(s=1;s<this.v[f].d.length;s++)if(++m[f],m[f]==this.v[f].d.length&&(m[f]=0),v=Ou(this,m,r),Q=$9(this.D,v),(Q<0?-1:Q)==-1)return v;}else for(f-=this.v.length,s=1;s<this.u[f].b.length;s++)if(++r[f],r[f]==this.u[f].b.length&&(r[f]=0),v=Ou(this,m,r),Q=$9(this.D,v),(Q<0?-1:Q)==-1)return v;L[f]=true;break;}}return OQ(this,this.b);},U.a=false;H(210);C(273,235,{},db),U.od=function(e){return this.a==null||(this.b+1==this.a.length&&z$(this),this.a==null)?null:(++this.b,this.a[this.b]);},U.b=0;H(273);C(357,1,{},mw),U.Rb=function(e,A){return $8(A.e,e.e);},U.mb=function(e){return this===e;};H(357);C(253,1,{32:1,253:1},Ug),U.Sb=function(e){return this.a<e.a?-1:this.a>e.a?1:0;},U.a=0;H(253);C(50,1,H2),U.g=false;var Fl;H(50);C(243,50,H2,ST),U.pd=function(e,A){var n,P,r,i,f;if(f=xQ(e,this.f)<0?1:0,A!=null)for(P=this.f,r=0,i=P.length;r<i;++r)n=P[r],A[n]+=f/4;return f;},U.qd=function(e,A){var n,P,r,i,f,D,Q;if(D=xQ(e,this.f),D==0||this.b==D>0)return  false;for(Q=G8(z0(e,this.f[2]),z0(e,this.f[1])),ar(Q),f=w.Math.abs(D)<RA?-2*D:2*(U1-D),this.a&&(f=-f),P=this.c,r=0,i=P.length;r<i;++r)n=P[r],hf(e,n,z0(e,this.f[1]),Q,f);return  true;},U.rd=function(){return 5;},U.pb=function(){var e;return e=new vn("binap rule ("+(this.b?"positive":"negative")+" torsion):"),_D(this,e),e.a;},U.a=false,U.b=false;H(243);C(154,1,{},NQ),U.b=0,U.e=false,U.n=0;var GE;H(154);C(353,1,{},kw),U.Rb=function(e,A){return jT(),$8(e.e,A.e);},U.mb=function(e){return this===e;};H(353);C(81,50,{50:1,81:1},Pg,mF,_L,_T),U.pd=function(e,A){var n;return n=gW(this,e),A!=null&&n>0&&(A[this.f[0]]+=n/2,A[this.f[1]]+=n/2),n;},U.qd=function(e,A){var n,P,r,i,f,D,Q;if(r=v9(e,this.f[1])-v9(e,this.f[0]),i=F9(e,this.f[1])-F9(e,this.f[0]),f=m9(e,this.f[1])-m9(e,this.f[0]),n=w.Math.sqrt(r*r+i*i+f*f),P=0,this.a.length==2?n<this.a[0]?P=(n-this.a[0])/n:n>this.a[1]&&(P=(n-this.a[1])/n):n<this.a[0]?P=(n-this.a[0])/n:n>this.a[0]&&(P=(n-this.a[0])/n),w.Math.abs(P)<.001)return  false;if(D=A*P,Q=e.o,this.c==10){if(Ht(Q,this.f[0])==1&&Ht(Q,this.f[1])!=1)return I8(z0(e,this.f[0]),r*D,i*D,f*D),true;if(Ht(Q,this.f[0])!=1&&Ht(Q,this.f[1])==1)return I8(z0(e,this.f[1]),-r*D,-i*D,-f*D),true;}return D/=2,U5(e,this.f[0],this.b,r*D,i*D,f*D),U5(e,this.f[1],this.b,-r*D,-i*D,-f*D),true;},U.rd=function(){return 0;},U.pb=function(){var e,A;if(A=new vn("distance rule:"),_D(this,A),this.a.length==1?J(A,(J9(),FV+a9(this.a[0],5))):J(A,(J9()," min:"+a9(this.a[0],5)+" max:"+a9(this.a[1],5))),this.b!=null)for(J(A," not:"+this.b[0]),e=1;e<this.b.length;e++)J(A,","+this.b[e]);return A.a;},U.c=0;var JE=H(81);C(242,50,H2,Gh),U.pd=function(e,A){var n,P,r,i,f,D,Q;for(n=new J0(),f=new J0(),P=k1(Ut,[h0,ht],[15,6],15,[this.f.length,3],2),H5(e,this.f,n,f,P),Q=0,i=0;i<this.f.length;i++)r=-(f.a*P[i][0]+f.b*P[i][1]+f.c*P[i][2]),D=20*r*r,A!=null&&(A[this.f[i]]+=D),Q+=D;return Q;},U.qd=function(e,A){var n,P,r,i,f;for(n=new J0(),f=new J0(),P=k1(Ut,[h0,ht],[15,6],15,[this.a.length,3],2),H5(e,this.a,n,f,P),i=0;i<this.f.length;i++)r=-(f.a*(v9(e,this.f[i])-n.a)+f.b*(F9(e,this.f[i])-n.b)+f.c*(m9(e,this.f[i])-n.c)),U5(e,this.f[i],this.f,.5*r*A*f.a,.5*r*A*f.b,.5*r*A*f.c);return  true;},U.rd=function(){return 1;},U.pb=function(){var e;return e=new vn("plane rule:"),_D(this,e),e.a;};H(242);C(96,63,{63:1,32:1,96:1},ku,$g),U.b=false,U.c=0,U.e=0;var zE=H(96);C(371,50,H2,C7),U.pd=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S,I;for(i=c(Ut,ht,6,3,15,1),L=0;L<this.f.length;L++)i[0]+=v9(e,this.f[L]),i[1]+=F9(e,this.f[L]),i[2]+=m9(e,this.f[L]);for(g=0;g<3;g++)i[g]/=this.f.length;for(n=k1(Ut,[h0,ht],[15,6],15,[this.f.length,3],2),s=0;s<this.f.length;s++)n[s][0]=v9(e,this.f[s])-i[0],n[s][1]=F9(e,this.f[s])-i[1],n[s][2]=m9(e,this.f[s])-i[2];for(j=k1(Ut,[h0,ht],[15,6],15,[3,3],2),y=0;y<this.f.length;y++)for(h=0;h<3;h++)for(m=0;m<3;m++)j[h][m]+=n[y][h]*n[y][m];for(S=new Py(j),P=S.e,b=0,l=1;l<3;l++)P[l]>P[b]&&(b=l);for(r=S.a,R=c(Ut,ht,6,3,15,1),T=0;T<3;T++)R[T]=r[T][b];for(I=0,o=0;o<this.f.length;o++)v=R[0]*n[o][0]+R[1]*n[o][1]+R[2]*n[o][2],f=v*R[0]-n[o][0],D=v*R[1]-n[o][1],Q=v*R[2]-n[o][2],p=10*f*f+D*D+Q*Q,A!=null&&(A[this.f[o]]+=p),I+=p;return I;},U.qd=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R,j,p,S;for(i=c(Ut,ht,6,3,15,1),D=0;D<this.f.length;D++)i[0]+=v9(e,this.f[D]),i[1]+=F9(e,this.f[D]),i[2]+=m9(e,this.f[D]);for(m=0;m<3;m++)i[m]/=this.f.length;for(n=k1(Ut,[h0,ht],[15,6],15,[this.f.length,3],2),Q=0;Q<this.f.length;Q++)n[Q][0]=v9(e,this.f[Q])-i[0],n[Q][1]=F9(e,this.f[Q])-i[1],n[Q][2]=m9(e,this.f[Q])-i[2];for(p=k1(Ut,[h0,ht],[15,6],15,[3,3],2),o=0;o<this.f.length;o++)for(g=0;g<3;g++)for(v=0;v<3;v++)p[g][v]+=n[o][g]*n[o][v];for(S=new Py(p),P=S.e,R=0,L=1;L<3;L++)P[L]>P[R]&&(R=L);for(r=S.a,j=c(Ut,ht,6,3,15,1),s=0;s<3;s++)j[s]=r[s][R];for(b=c(Ut,ht,6,this.f.length,15,1),y=0;y<this.f.length;y++)b[y]=j[0]*n[y][0]+j[1]*n[y][1]+j[2]*n[y][2];if(A==1){for(T=false,h=b[0]<b[1],l=2;l<this.f.length;l++)if(h!=b[l-1]<b[l]){T=true;break;}if(T)return  false;}for(f=0;f<this.f.length;f++)I8(z0(e,this.f[f]),A*(b[f]*j[0]-n[f][0]),A*(b[f]*j[1]-n[f][1]),A*(b[f]*j[2]-n[f][2]));return  true;},U.rd=function(){return 2;},U.pb=function(){var e;return e=new vn("line rule:"),_D(this,e),e.a;};H(371);C(372,50,H2,Wd),U.pd=function(e,A){var n,P,r,i,f;if(i=0,P=DR(this,e),f=0,this.f[3]==-1?aD(e,P,this.f[4],this.f[2])||++f:(aD(e,P,this.f[4],this.f[2])||++f,aD(e,P,this.f[4],this.f[3])&&++f),f!=0)for(n=0;n<this.f.length;n++)this.f[n]!=-1&&(r=.68*f,A!=null&&(A[this.f[n]]+=r),i+=r);return i;},U.qd=function(e,A){var n,P,r,i,f,D,Q;if(D=DR(this,e),f=this.f[3]==-1&&!aD(e,D,this.f[4],this.f[2])||this.f[3]!=-1&&!aD(e,D,this.f[4],this.f[2])&&aD(e,D,this.f[4],this.f[3]),!f)return  false;for(Q=_z(this,e),P=this.a,r=0,i=P.length;r<i;++r)n=P[r],hf(e,n,z0(e,this.f[4]),Q,U1);return  true;},U.rd=function(){return 4;},U.pb=function(){var e,A,n,P,r;for(r=new vn("stereo rule:"),_D(this,r),r.a+=" rotatable:",A=this.a,n=0,P=A.length;n<P;++n)e=A[n],r.a+=e+" ";return r.a;};H(372);C(195,50,H2,IL),U.pd=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T;if(n=lL(e,this.f),isNaN(n))return 0;if(n<0&&(n+=F0),l=180*n/U1,f=Ek(this,n),f==-1)for(z1(),L=this.e,s=0,y=L.length;s<y;++s);if(Q=Zk(this,n,f),Q==0)return 0;for(P=w.Math.abs(l-this.e[f]),P>180&&(P=360-P),P>60&&(P=60),D=e.o,o=3*Q*P*P/3600,T=0,i=0;i<Ht(D,this.f[1]);i++)W(D,this.f[1],i)!=this.f[2]&&(A!=null&&(A[W(D,this.f[1],i)]+=o),T+=o);for(r=0;r<Ht(D,this.f[2]);r++)W(D,this.f[2],r)!=this.f[1]&&(A!=null&&(A[W(D,this.f[2],r)]+=o),T+=o);return T;},U.qd=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,T,h,g,m,v,b,R;if(Q=lL(e,this.f),isNaN(Q)||(Q<0&&(Q+=F0),y=Ek(this,Q),b=Zk(this,Q,y),b==0)||(f=U1*this.e[y]/180-Q,w.Math.abs(f)>U1&&(f=f<0?F0+f:f-F0),w.Math.abs(f)<.0031415926535897933))return  false;if(R=G8(z0(e,this.f[2]),z0(e,this.f[1])),ar(R),f*=A*b,g=e.o,this.a!=null)for(m=this.d==0?-f:f,P=this.a,r=0,i=P.length;r<i;++r)n=P[r],hf(e,n,z0(e,this.f[1]),R,m);else for(D=u1(g,this.f[1],this.f[2]),l=D!=-1&&(g.p&&D<g.g?sP(g.p,D):0)<=5,s=1;s<=2;s++)for(o=(s==1?-2:2)*pT(g,this.f[s]),T=0;T<Ht(g,this.f[s]);T++)if(L=W(g,this.f[s],T),L!=this.f[3-s]&&(hm(e,L,this.f[s],R,f/o),!l))for(h=0;h<g.j[L];h++)v=g.i[L][h],v!=L&&g.e[v]!=1&&hm(e,v,this.f[s],R,f/(4*o));return  true;},U.rd=function(){return 3;},U.pb=function(){var e,A;for(A=new vn("torsion rule:"),_D(this,A),A.a+=" torsions:",e=0;e<this.e.length;e++)e!=0&&(A.a+=","),J(A,this.e[e]+"("+this.b[e]+")");return A.a;},U.d=0;H(195);var zt=Cr("S"),E=Cr("B"),F=Cr("I"),Pt=Cr("Z"),Ut=Cr("D"),Se=Cr("F"),NA=Cr("J"),l9=Cr("C");U=s0("OCL.Canonizer",Gg),U=s0("OCL.CanonizerUtil",Wc),U.BACKBONE=btt,U.NORMAL=Rtt,U.NOSTEREO=jtt,U.NOSTEREO_TAUTOMER=ptt,U.TAUTOMER=Ctt,U.getIDCode=Sz,U=s0("OCL.ConformerGenerator",zg),U.STRATEGY_ADAPTIVE_RANDOM=Htt,U.STRATEGY_LIKELY_RANDOM=Mtt,U.STRATEGY_LIKELY_SYSTEMATIC=Vtt,U.STRATEGY_PURE_RANDOM=Ett,U=s0("OCL.DrugScoreCalculator",_c),U.calculate=qI,U=s0("OCL.DruglikenessPredictor",sg),U.DRUGLIKENESS_UNKNOWN=Stt,U=s0("OCL.ForceFieldMMFF94",bB),U.MMFF94=qtt,U.MMFF94S=Itt,U.MMFF94SPLUS=xtt,dT(),U=s0("OCL.GenericEditorArea",gb),U.EDITOR_EVENT_HIGHLIGHT_ATOM_CHANGED=Vnt,U.EDITOR_EVENT_HIGHLIGHT_BOND_CHANGED=Ent,U.EDITOR_EVENT_MOLECULE_CHANGED=Snt,U.EDITOR_EVENT_SELECTION_CHANGED=qnt,U.HOTSPOT_16=LE,U.HOTSPOT_32=sE,U.IMAGE_DATA_16=yE,U.IMAGE_NAME_32=lE,U.KEY_ALT=Int,U.KEY_BACK_SPACE=xnt,U.KEY_CTRL=Nnt,U.KEY_DELETE=Ont,U.KEY_ENTER=Gnt,U.KEY_ESCAPE=Jnt,U.KEY_EVENT_PRESSED=znt,U.KEY_EVENT_RELEASED=Ynt,U.KEY_HELP=Knt,U.KEY_SHIFT=Xnt,U.MODE_DRAWING_OBJECTS=Znt,U.MODE_MARKUSH_STRUCTURE=Wnt,U.MODE_MULTIPLE_FRAGMENTS=_nt,U.MODE_REACTION=$nt,U.MOUSE_EVENT_CLICKED=ant,U.MOUSE_EVENT_DRAGGED=tPt,U.MOUSE_EVENT_ENTERED=ePt,U.MOUSE_EVENT_EXITED=APt,U.MOUSE_EVENT_MOVED=nPt,U.MOUSE_EVENT_PRESSED=PPt,U.MOUSE_EVENT_RELEASED=rPt,U.TableLayoutFill=iPt,U.TableLayoutPreferred=fPt,U.cChainCursor=DPt,U.cDeleteCursor=uPt,U.cFistCursor=QPt,U.cHandCursor=oPt,U.cHandPlusCursor=UPt,U.cInvisibleCursor=LPt,U.cLassoCursor=sPt,U.cLassoPlusCursor=yPt,U.cPointedHandCursor=lPt,U.cPointerCursor=TPt,U.cSelectRectCursor=hPt,U.cSelectRectPlusCursor=cPt,U.cTextCursor=wPt,U.cZoomCursor=gPt,U=s0("OCL.GenericEditorToolbar",Em),U=s0("OCL.GenericUIHelper",TB),_A(),U=s0("OCL.Molecule",AL),U.CANONIZER_ASSIGN_PARITIES_TO_TETRAHEDRAL_N=Ntt,U.CANONIZER_CONSIDER_DIASTEREOTOPICITY=Ott,U.CANONIZER_CONSIDER_ENANTIOTOPICITY=Gtt,U.CANONIZER_CONSIDER_STEREOHETEROTOPICITY=Jtt,U.CANONIZER_COORDS_ARE_3D=ztt,U.CANONIZER_CREATE_PSEUDO_STEREO_GROUPS=Ytt,U.CANONIZER_CREATE_SYMMETRY_RANK=Ktt,U.CANONIZER_DISTINGUISH_RACEMIC_OR_GROUPS=Xtt,U.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS=Ztt,U.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS_WITHOUT_RANKING=Wtt,U.CANONIZER_ENCODE_ATOM_SELECTION=_tt,U.CANONIZER_NEGLECT_ANY_STEREO_INFORMATION=$tt,U.CANONIZER_TIE_BREAK_FREE_VALENCE_ATOMS=att,U.FISCHER_PROJECTION_LIMIT=t1t,U.FISCHER_PROJECTION_RING_LIMIT=e1t,U.STEREO_ANGLE_LIMIT=A1t,U.VALIDATION_ERRORS_STEREO=iE,U.VALIDATION_ERROR_AMBIGUOUS_CONFIGURATION=n1t,U.VALIDATION_ERROR_ESR_CENTER_UNKNOWN=P1t,U.VALIDATION_ERROR_OVER_UNDER_SPECIFIED=r1t,U.cAtomCIPParityNone=i1t,U.cAtomCIPParityProblem=f1t,U.cAtomCIPParityRorM=D1t,U.cAtomCIPParitySorP=u1t,U.cAtomColorBlue=Q1t,U.cAtomColorDarkGreen=o1t,U.cAtomColorDarkRed=U1t,U.cAtomColorGreen=L1t,U.cAtomColorMagenta=s1t,U.cAtomColorNone=y1t,U.cAtomColorOrange=l1t,U.cAtomColorRed=T1t,U.cAtomLabel=fE,U.cAtomParity1=h1t,U.cAtomParity2=c1t,U.cAtomParityIsPseudo=w1t,U.cAtomParityNone=g1t,U.cAtomParityUnknown=d1t,U.cAtomQFAny=B1t,U.cAtomQFAromState=v1t,U.cAtomQFAromStateBits=F1t,U.cAtomQFAromStateShift=m1t,U.cAtomQFAromatic=k1t,U.cAtomQFCharge=b1t,U.cAtomQFChargeBits=R1t,U.cAtomQFChargeShift=j1t,U.cAtomQFDepictedFeatures=p1t,U.cAtomQFENeighbourBits=C1t,U.cAtomQFENeighbourShift=H1t,U.cAtomQFENeighbours=M1t,U.cAtomQFExcludeGroup=V1t,U.cAtomQFFlatNitrogen=E1t,U.cAtomQFHeteroAromatic=S1t,U.cAtomQFHydrogen=q1t,U.cAtomQFHydrogenBits=I1t,U.cAtomQFHydrogenShift=x1t,U.cAtomQFIsNotStereo=N1t,U.cAtomQFIsStereo=O1t,U.cAtomQFMatchStereo=G1t,U.cAtomQFMoreNeighbours=J1t,U.cAtomQFNarrowing=z1t,U.cAtomQFNeighbourBits=Y1t,U.cAtomQFNeighbourShift=K1t,U.cAtomQFNeighbours=X1t,U.cAtomQFNewRingSize=Z1t,U.cAtomQFNewRingSizeBits=W1t,U.cAtomQFNewRingSizeShift=_1t,U.cAtomQFNoMoreNeighbours=$1t,U.cAtomQFNoOfBits=a1t,U.cAtomQFNot0ENeighbours=t0t,U.cAtomQFNot0Hydrogen=e0t,U.cAtomQFNot0Neighbours=A0t,U.cAtomQFNot0PiElectrons=n0t,U.cAtomQFNot1ENeighbour=P0t,U.cAtomQFNot1Hydrogen=r0t,U.cAtomQFNot1Neighbour=i0t,U.cAtomQFNot1PiElectron=f0t,U.cAtomQFNot2ENeighbours=D0t,U.cAtomQFNot2Hydrogen=u0t,U.cAtomQFNot2Neighbours=Q0t,U.cAtomQFNot2PiElectrons=o0t,U.cAtomQFNot2RingBonds=U0t,U.cAtomQFNot3ENeighbours=L0t,U.cAtomQFNot3Hydrogen=s0t,U.cAtomQFNot3Neighbours=y0t,U.cAtomQFNot3RingBonds=l0t,U.cAtomQFNot4ENeighbours=T0t,U.cAtomQFNot4Neighbours=h0t,U.cAtomQFNot4RingBonds=c0t,U.cAtomQFNotAromatic=w0t,U.cAtomQFNotChain=g0t,U.cAtomQFNotCharge0=d0t,U.cAtomQFNotChargeNeg=B0t,U.cAtomQFNotChargePos=v0t,U.cAtomQFPiElectronBits=F0t,U.cAtomQFPiElectronShift=m0t,U.cAtomQFPiElectrons=k0t,U.cAtomQFRingSize0=b0t,U.cAtomQFRingSize3=R0t,U.cAtomQFRingSize4=j0t,U.cAtomQFRingSize5=p0t,U.cAtomQFRingSize6=C0t,U.cAtomQFRingSize7=H0t,U.cAtomQFRingSizeLarge=M0t,U.cAtomQFRingState=V0t,U.cAtomQFRingStateBits=E0t,U.cAtomQFRingStateShift=S0t,U.cAtomQFRxnParityBits=q0t,U.cAtomQFRxnParityHint=I0t,U.cAtomQFRxnParityInvert=x0t,U.cAtomQFRxnParityRacemize=N0t,U.cAtomQFRxnParityRetain=O0t,U.cAtomQFRxnParityShift=G0t,U.cAtomQFSimpleFeatures=J0t,U.cAtomQFSmallRingSize=z0t,U.cAtomQFSmallRingSizeBits=Y0t,U.cAtomQFSmallRingSizeShift=K0t,U.cAtomQFStereoState=X0t,U.cAtomQFStereoStateBits=Z0t,U.cAtomQFStereoStateShift=W0t,U.cAtomRadicalState=_0t,U.cAtomRadicalStateD=$0t,U.cAtomRadicalStateNone=a0t,U.cAtomRadicalStateS=tet,U.cAtomRadicalStateShift=eet,U.cAtomRadicalStateT=Aet,U.cAtomValence=DE,U.cBondCIPParityEorP=net,U.cBondCIPParityNone=Pet,U.cBondCIPParityProblem=ret,U.cBondCIPParityZorM=iet,U.cBondParityEor1=fet,U.cBondParityNone=Det,U.cBondParityUnknown=uet,U.cBondParityZor2=Qet,U.cBondQFAllFeatures=oet,U.cBondQFAromState=Uet,U.cBondQFAromStateBits=Let,U.cBondQFAromStateShift=set,U.cBondQFAromatic=yet,U.cBondQFBondTypes=Tet,U.cBondQFBondTypesBits=het,U.cBondQFBondTypesShift=cet,U.cBondQFBridge=wet,U.cBondQFBridgeBits=get,U.cBondQFBridgeMin=det,U.cBondQFBridgeMinBits=Bet,U.cBondQFBridgeMinShift=vet,U.cBondQFBridgeShift=Fet,U.cBondQFBridgeSpan=met,U.cBondQFBridgeSpanBits=ket,U.cBondQFBridgeSpanShift=bet,U.cBondQFDelocalized=Ret,U.cBondQFDepictedFeatures=jet,U.cBondQFDouble=pet,U.cBondQFMatchFormalOrder=Cet,U.cBondQFMatchStereo=Het,U.cBondQFMetalLigand=Met,U.cBondQFNarrowing=Vet,U.cBondQFNoOfBits=Eet,U.cBondQFNotAromatic=qet,U.cBondQFNotRing=Iet,U.cBondQFQuadruple=xet,U.cBondQFQuintuple=Net,U.cBondQFRareBondTypes=Oet,U.cBondQFRareBondTypesBits=Get,U.cBondQFRareBondTypesShift=Jet,U.cBondQFRing=zet,U.cBondQFRingSize=Yet,U.cBondQFRingSizeBits=Ket,U.cBondQFRingSizeShift=Xet,U.cBondQFRingState=Zet,U.cBondQFRingStateBits=Wet,U.cBondQFRingStateShift=_et,U.cBondQFSimpleFeatures=$et,U.cBondQFSingle=aet,U.cBondQFTriple=tAt,U.cBondTypeCross=eAt,U.cBondTypeDeleted=AAt,U.cBondTypeDelocalized=nAt,U.cBondTypeDouble=PAt,U.cBondTypeDown=rAt,U.cBondTypeIncreaseOrder=iAt,U.cBondTypeMaskSimple=fAt,U.cBondTypeMaskStereo=DAt,U.cBondTypeMetalLigand=uAt,U.cBondTypeQuadruple=QAt,U.cBondTypeQuintuple=oAt,U.cBondTypeSingle=UAt,U.cBondTypeTriple=LAt,U.cBondTypeUp=sAt,U.cChiralityDiastereomers=yAt,U.cChiralityEpimers=lAt,U.cChiralityIsomerCountMask=TAt,U.cChiralityKnownEnantiomer=hAt,U.cChiralityMeso=cAt,U.cChiralityNotChiral=wAt,U.cChiralityRacemic=gAt,U.cChiralityUnknown=dAt,U.cChiralityUnknownEnantiomer=BAt,U.cCommonOxidationState=uE,U.cDefaultAVBL=vAt,U.cDefaultAllowedPseudoAtoms=FAt,U.cDefaultAtomValence=mAt,U.cESRGroupBits=kAt,U.cESRMaxGroups=bAt,U.cESRTypeAbs=RAt,U.cESRTypeAnd=jAt,U.cESRTypeOr=pAt,U.cHelperAll=CAt,U.cHelperBitCIP=HAt,U.cHelperBitIncludeNitrogenParities=MAt,U.cHelperBitNeighbours=VAt,U.cHelperBitParities=EAt,U.cHelperBitRings=SAt,U.cHelperBitRingsSimple=qAt,U.cHelperBitSymmetrySimple=IAt,U.cHelperBitSymmetryStereoHeterotopicity=xAt,U.cHelperBitsStereo=NAt,U.cHelperCIP=OAt,U.cHelperNeighbours=GAt,U.cHelperNone=JAt,U.cHelperParities=zAt,U.cHelperRings=YAt,U.cHelperRingsSimple=KAt,U.cHelperSymmetrySimple=XAt,U.cHelperSymmetryStereoHeterotopicity=ZAt,U.cMaxAtomicNo=WAt,U.cMaxConnAtoms=_At,U.cMoleculeColorDefault=$At,U.cMoleculeColorNeutral=aAt,U.cPseudoAtomA=tnt,U.cPseudoAtomAttachmentPoint=ent,U.cPseudoAtomPolymer=Ant,U.cPseudoAtomR=nnt,U.cPseudoAtomX=Pnt,U.cPseudoAtomsAGroups=rnt,U.cPseudoAtomsAll=int,U.cPseudoAtomsAminoAcids=fnt,U.cPseudoAtomsHydrogenIsotops=Dnt,U.cPseudoAtomsRGroups=unt,U.cRoundedMass=QE,U.fromIDCode=Hz,U.fromMolfile=Ax,U.fromMolfileWithAtomMap=YJ,U.fromSmiles=uz,U.getAngle=GI,U.getAngleDif=PI,U.getAtomicNoFromLabel=rI,U.getDefaultAverageBondLength=RI,U.isAtomicNoElectronegative=Sq,U.isAtomicNoElectropositive=qq,U.setDefaultAverageBondLength=Uq,U=s0("OCL.MoleculeProperties",H7),U=s0("OCL.Reaction",Hd),U.create=tI,U.fromMolecules=yJ,U.fromRxn=UO,U.fromSmiles=NN,U=s0("OCL.ReactionEncoder",$c),U.CATALYST_DELIMITER=Qnt,U.INCLUDE_ALL=ont,U.INCLUDE_CATALYSTS=Unt,U.INCLUDE_COORDS=Lnt,U.INCLUDE_DEFAULT=snt,U.INCLUDE_DRAWING_OBJECTS=ynt,U.INCLUDE_MAPPING=lnt,U.INCLUDE_RXN_CODE_ONLY=Tnt,U.MOLECULE_DELIMITER=hnt,U.OBJECT_DELIMITER=cnt,U.PRODUCT_IDENTIFIER=wnt,U.RETAIN_REACTANT_AND_PRODUCT_ORDER=gnt,U.decode=tX,U.encode=AW,U=s0("OCL.Reactor",I7),U=s0("OCL.Resources",ac),U._register=Lq,U=s0("OCL.RingCollection"),U.MAX_SMALL_RING_SIZE=dnt,U.MODE_SMALL_AND_LARGE_RINGS=Bnt,U.MODE_SMALL_AND_LARGE_RINGS_AND_AROMATICITY=vnt,U.MODE_SMALL_RINGS_AND_AROMATICITY=Fnt,U.MODE_SMALL_RINGS_ONLY=mnt,U=s0("OCL.SDFileParser",Ud),U=s0("OCL.SSSearcher",eB),U=s0("OCL.SSSearcherWithIndex",_w),U.bitCount=uq,U.getHexStringFromIndex=eq,U.getIndexFromHexString=Aq,U.getKeyIDCode=Qq,U.getSimilarityAngleCosine=bq,U.getSimilarityTanimoto=Rq,U=s0("OCL.SmilesParser",Ww),c3(),U=s0("OCL.ToxicityPredictor",eg),U.RISK_HIGH=knt,U.RISK_LOW=bnt,U.RISK_NAMES=UE,U.RISK_NO=Rnt,U.RISK_UNKNOWN=jnt,U.TYPE_IRRITANT=pnt,U.TYPE_MUTAGENIC=Cnt,U.TYPE_REPRODUCTIVE_EFFECTIVE=Hnt,U.TYPE_TUMORIGENIC=Mnt,U=s0("OCL.Transformer",Jg),U=s0("OCL.Util",Zc),U.getHoseCodesFromDiastereotopicID=$J,U=s0("java.io.Serializable"),U.$isInstance=Mz,k9(),U=s0("java.lang.Boolean"),U.$isInstance=ex,U=s0("java.lang.CharSequence"),U.$isInstance=tJ,U=s0("java.lang.Cloneable"),U.$isInstance=BG,U=s0("java.lang.Comparable"),U.$isInstance=KJ,U=s0("java.lang.Double"),U.$isInstance=mI,U=s0("java.lang.Number"),U.$isInstance=nO,U=s0("java.lang.String"),U.$isInstance=kI,U=s0("java.lang.Throwable"),U.of=oJ,U=s0("java.util.List"),U.copyOf=ez,U=s0("java.util.Map"),U.copyOf=nN,U=s0("java.util.Set"),U.copyOf=bz,U=s0("javaemul.internal.HashCodes",rw),U.getIdentityHashCode=qz,U.getNextHash=nq,U.getObjectIdentityHashCode=dD,U=s0("javaemul.internal.JsUtils"),U.toDoubleFromUnsignedInt=Dq;var YE=EN,CPt=hY;nG(mS),AG("permProps",[[]]),CPt(Ft.__errFn,Ft.__moduleName,Ft.__moduleBase,Ft.__softPermutationId,Ft.__computePropValue),Bt&&Bt.permProps&&Ft.__moduleStartupDone(Bt.permProps);let KE=w.OCL;return KE.version="9.20.1",KE;}var b8;b8={document:{compatMode:"CSS1Compat"}},b8.setTimeout=globalThis.setTimeout?globalThis.setTimeout.bind(globalThis):af,b8.clearTimeout=globalThis.clearTimeout?globalThis.clearTimeout.bind(globalThis):af,b8.setInterval=globalThis.setInterval?globalThis.setInterval.bind(globalThis):af,b8.clearInterval=globalThis.clearInterval?globalThis.clearInterval.bind(globalThis):af,b8.Error=globalThis.Error,b8.Map=globalThis.Map,b8.Math=globalThis.Math,b8.RegExp=globalThis.RegExp,b8.TypeError=globalThis.TypeError;var xPt=qPt(b8),W0=xPt;function FS(w){let Z=w.Resources._register.bind(w.Resources);if(delete w.Resources._register,w.Resources.register=function(Ft){typeof Ft=="string"&&(Ft=JSON.parse(Ft));let p1=new TextEncoder();if(typeof Ft!="object"||Ft===null)throw new TypeError("resources must be an object");let Rt={};for(let[y1,i1]of Object.entries(Ft)){if(typeof i1!="string")throw new TypeError(`resource ${y1} must be a string`);Rt[y1]=p1.encode(i1);}Z(Rt);},w.Resources.registerFromUrl=async function(Ft=NPt()){let Rt=await(await fetch(Ft)).json(),y1=new TextEncoder(),i1=Object.fromEntries(Object.entries(Rt).map(([s1,o1])=>[s1,y1.encode(o1)]));Z(i1);},typeof process<"u"){let ot=function(){let Ft=process.getBuiltinModule("node:path"),p1=Ft.join(import.meta.dirname,"resources.json");return import.meta.filename.endsWith("register_resources.js")&&(p1=Ft.join(import.meta.dirname,"../dist/resources.json")),p1;};w.Resources.registerFromNodejs=function(p1=ot()){let y1=process.getBuiltinModule("node:fs").readFileSync(p1,"ascii");w.Resources.register(y1);};}else w.Resources.registerFromNodejs=function(){throw new Error("Resources.registerFromNodejs can only be called from Node.js");};}function NPt(){return new URL("resources.json",import.meta.url).href;}Xc(W0);vS(W0);FS(W0);W0.CanvasEditor;W0.registerCustomElement;W0.Canonizer;W0.CanonizerUtil;W0.ConformerGenerator;W0.DrugScoreCalculator;W0.DruglikenessPredictor;W0.ForceFieldMMFF94;W0.Molecule;W0.MoleculeProperties;W0.Reaction;W0.ReactionEncoder;W0.Reactor;W0.Resources;W0.RingCollection;W0.SDFileParser;var xut=W0.SSSearcher;W0.SSSearcherWithIndex;W0.SmilesParser;W0.ToxicityPredictor;W0.Transformer;W0.Util;W0.version;/**
 * openchemlib - Manipulate molecules
 * @version v9.20.1
 * @date 2026-03-10T16:02:10.946Z
 * @link https://github.com/cheminfo/openchemlib-js
 * @license BSD-3-Clause
*/

/**
 * Applies fragment labels from a fragment molecule to a target molecule. This method is in
 * place and modifies the target molecule directly.
 * @param molecule - The target molecule to which fragment labels will be applied.
 * @param fragment - The fragment molecule containing the labels to apply.
 * @param options
 * @returns The number of matches found
 */
function applyFragmentLabels(molecule, fragment, options = {}) {
  const {
    algorithm = 'overlapping',
    prefix = '',
    suffix = ''
  } = options;
  const sssearcher = new xut();
  sssearcher.setMolecule(molecule);
  sssearcher.setFragment(fragment);
  const found = sssearcher.findFragmentInMolecule({
    countMode: algorithm
  });
  const matches = sssearcher.getMatchList();
  for (const match of matches) {
    for (let fragmentAtomIndex = 0; fragmentAtomIndex < match.length; fragmentAtomIndex++) {
      const moleculeAtomIndex = match[fragmentAtomIndex];
      const label = fragment.getAtomCustomLabel(fragmentAtomIndex);
      if (label) {
        molecule.setAtomCustomLabel(moleculeAtomIndex, prefix + label + suffix);
      }
    }
  }
  return found;
}

const autoLabelDatabase = [{
  idCode: 'ea^P@@@LdbVRRbbvRRbLVRbrTVRdsRuMTmSSMLuSPEdEaLWEiATSUCRu]_QKPiHn{FkY]vLVZ{l[MuwXrX[ni`tw]cQen{FC[Mv\\\\wQuw]cSgf{v~[kXEnuhVzVQ{lX]bw\\qK]STmvLswXw[gnqfwxeXN@@AkhB\\@S@XM]@C`BXB`[hBL@C@DpG@wPDXAN@I`IFn`NpALAhMtAF@Q`BXBqkhAl@S@^C]@Q`BX@f@bZz@k@DpFPwPDXAf@I`Jan`@P@l@S@]C]@Q`@x@f@fFz@c@BpALAlMt@f@A`BXBx[h@D@s@DpGpwPDXAV@I`HQn`@PAL@S@Tc]@@`DX@f@eFz@c@NpALAjMtAF@M`BXB',
  coordinates: '!BmpJH@oy?mwvH_[\\Bb@Jw_Xa}mpK~_x`B?g~w_Xa}mpJH@k]}bGw~_{\\Bb@JH__x@b@JH_X`BbGw~@H`BbGvH@ha}?`BH@ha}b@K~@Ha}',
  mf: 'C40H56',
  mw: 536.88464,
  label: 'Lycopene'
}, {
  idCode: 'eaYP@@@LdbbTbsbrTVRTVRbrbbdWBaOKUMUMLtsSMLuUU@RTVdyAVUUCRu]_tJPknqjuW]cEfn{Fs]]vLfF{jXMMwXtY[nq`vs]gGMt]]wXtyyn}ofzvA[mZEnqdVzVq{lX\\RwTuO]c]f^{F[\\mwM~IVC`@@Zz@[@DpFCWPEX@f@hZz@{@DpGCWPDX@f@dZz@K@DpF`wPDX@N@I`KFn`ApALAxut@f@I`Han`HpCl@S@YC]@Q`CX@f@jZz@s@DpGSWPDx@f@fFz@c@@pALAlMtAF@S`BXBx[hBL@c@DpGpwPDX@f@I`HQn`HpCL@S@Xc]@Q`AX@f@iFz@S@@pALArMtAF@U`BXB',
  coordinates: '!B?`BH_[]}mpJH?H`BmpIt^pnGmwvH_X`B?g~H_X`BbGvH@oy?bGvH@ha}b@JH__x@b@JH_X`BbGw~@H`BbGw~_x`BbGvw_Xa}f~atnH`B',
  mf: 'C40H56',
  mw: 536.88464,
  label: 'beta-carotene'
}, {
  idCode: 'eghP@@@LddTTVdRVbLf|VRgEdbgfPRUUUUUUUUUUUW@B`RDhbb\\ST@~P`aBOt^PAnshFzNP{lXMawXtXcnqiuG]cEfF{vx[mXQnqiN{FSJ]vMft{lZlYw\\pZqnmgFzV|[jXKnqntW]cCdn{F[YMwLUwTtzkniasW]SAnnzfSC]uMFf{j[LmwTq[[nijqw]S]knzf[@',
  coordinates: '!BmwvH__x@?g~w@oy??g~H@k\\B?`@_YSF?bGvH_Xa}Gqhq`ELXb@KxF}MgYVBw?Cctm?vw?K_}m?s~_p',
  mf: 'C30H54',
  mw: 414.75876,
  label: 'Cucurbitane'
}, {
  idCode: 'eghP@@@LddTbbtVdIVbdsRdabcfefSUUUUUUUUUUUW@D`bDh`bbbR@~PPbbOt^PAnchN{FKHMv]`w^qG]cCjN{FsL]vMVx{nXLIwXpZSnqhrc][Z]vMvL{lYMYwXsYqnuoF{FB{lZ]EwTpYInelfzfJ{jYMUwTtYinynnzfgC]uLNf{j[LmwTq[[nijqw]S]knzf[@',
  coordinates: '!BmpJH@oy??`C~@A}eL[~H__x@bGt_Fh`BTqc~_x`B?`AeXHa}bGvw?Cctb@KxF}Mgm?vw?K_}m?s~_p',
  mf: 'C30H54',
  mw: 414.75876,
  label: 'Dammarane'
}, {
  idCode: 'eghP@@@LddTTVbTad|VLVR`fdea`VUUUUUUUUUUUUW@B`UBxRdBST@~P`bbOt^PCnq`tC]gHMvm`wXqG]cSjFzNX{lZMpwRpc][RMuLiwXq[Qn}cN{FSVMwLywTt{sniapW]cYhn{FkI]wLFr{l[lUwXpzknqfsW]SAnnzfSC]uMFf{j[LmwTq[[nijqw]S]knzf[@',
  coordinates: '!BmpK~_x`B?`Bw__x@bGvw_Xa}mpK~_{\\Bb@KxF}Mg?`@_YSF?Gqhq`ELXYVBw@cctm?vw@k_}mpK~_p',
  mf: 'C30H54',
  mw: 414.75876,
  label: 'Lanostane'
}, {
  idCode: 'eghP@@@LddTbbtVdIVbdsRdabcfefSUUUUUUUUUUUW@B`RBhPbbbR@~PPbbOtnPAnchN{FKHMv]`w^qG]cCjN{FsL]vMVD{lXMIwXtYQnmmN{F{F]vLfl{lYlxwZwc]cA]vMNb{jXLdwRvS]SE]uLfj{jZLtw\\wW]SSanzfGS]uMfV{jXmmwTuX{ninuw]SM`',
  coordinates: '!BmpJH@oy??`C~@A}eL[~H__x@bGt_Fh`BTqc~_x`B?`AeXHa}bGvw@cctb@KxF}Mgm?vw@k_}mpK~_p',
  mf: 'C30H54',
  mw: 414.75876,
  label: 'Protostane'
}, {
  idCode: 'egdP@@@LddTQdVeRdtVLVRgD`bfag`VUUUUUUUUUUUUUp@jHICHy@du@OhCHQy@FzV`[mYAnylNzfgD]uLNh{lXLpwVwC]SBMv]HwXrg]cSmF{vL[hzsnqhsg]cEoN{FSA]vMfb{lZlew\\p[KnqnqW]cCjn{F[M]uLFz{jYLMwTtZ[nilrw]SEmnzfkG]uMvn{jYl',
  coordinates: '!BmpJH@o`[tv_~@K]}?`Bw@h`B?`Bw@k]}?`Bw@k\\B?`@_YSF?Gqhq`ELXYVBw@cctm?vw@k_}mpK~_p',
  mf: 'C30H52',
  mw: 412.74288,
  label: 'Cycloartane'
}, {
  idCode: 'egdP@@@LddTbbtVbtVtT|R`ebf`QVWVquUUUUUUUUUUTh@hHaJDIMHDhitidA}`aEDQQ~cr@]vMf`{lXlawXp{CnqdqG]SMjFzNX{lZmqwTwXSnqntg]cSeN{FcZMv\\Xw^ug]cMgNzfS^]uLNB{jXMEwXpYKnijvS][E]uMFj{nXLuwTt{inuaf{Ff[iY[nibvs]SGMwM]wTvX',
  coordinates: '!B?l]klaRrW`@TcVnM?l]kc_{XEHtTlo{GZ{IklalMZ{HTc_{GEHw~vAL|HgS~qqRrEHtAmqRMEKK~qp',
  mf: 'C30H52',
  mw: 412.74288,
  label: 'Friedelane'
}, {
  idCode: 'egdP@@@LddTbbtVadLTRltdabce`VSPvuUUUUUUUUUUUpAHHaAEhgIt`OdDHDc}Gd@{lXm@wQrG]cYlN{FkD]uMvh[lyan}nNzf[B]vLNd{lYLiwXs[Snq`qg]cQkFzv\\{l[mywXtxInuhf{FR{jZmewTrXkniauW]SAfnzfc]MtlLwTtw]sAenzfg[MwL]wTqZ{nilp',
  coordinates: '!BbGw~@K]}?g~H@oy??`Bw@h`BmpJH__x@bGvw_Yg@?g~H@ox@nuSOsURDotzH_Xa}bGwIPH`BuB^KAp',
  mf: 'C30H52',
  mw: 412.74288,
  label: 'Lupane'
}, {
  idCode: 'egdP@@@LddTbbtVdLJtRdvdabcedQPwVuUUUUUUUUUUUpAHHHmIELet`OhMHQy@FzN`{lXl`wYvC]{D]uLvh{l[LqwXu[cninpg]cAiN{FcJMumiwXpxsnqdug]cMgF{V|[lXKnijtW]c]dn{FgYMtlTwTuW]SIfnzfG]]uLFF[nZ[nibrw]SYmnzfcG]wLFn{jZ\\',
  coordinates: '!BmpJH@oy??`C~@K]}?g~H__x@bGvw@h`BmpK~_x`B?`Bw__x@bGvH_[\\BCwvw@h`BuB^KA?x@vuPlf@',
  mf: 'C30H52',
  mw: 412.74288,
  label: 'Oleanane'
}, {
  idCode: 'egdP@@@LddTbbtVadLTRvtdabce`UTpvuUUUUUUUUUUUHAHHaAIhgIyJet`OdDHDc}Gd@{lXm@wQrG]cYlN{FkD]uMvh[lyan}nNzf[B]vLNd{lYLiwXs[Snq`qg]cQkFzv\\{l[mywXtxInuhf{FR{jZmewTrXkniauW]SAfnzfg]MtlLwTtw]SQen{fC[MwL]wTqZ{nilp',
  coordinates: '!BRGw~`C]}?k}H@oz??`@w@d`BMpIH__z@RGtw__z@?k}H@ox@MpKwoS\\Bb@IH_Ta}?hC~@D`BANmSip',
  mf: 'C30H52',
  mw: 412.74288,
  label: 'Taraxastane'
}, {
  idCode: 'egdP@@@LdbTbbTVbbQvdjteB`e`QVSRvsUUUUUUUUUUTH`lIQAIH`hdidA}AaGzOHAwXvZCnqdrG]cElN{FGD]vMFh[hycnqjwG]S]aN{F{R]vMNT[l{Qn}cNzf[V]vLv\\{jYMywTpxKni`tW]SSdn{FCYMulUwTtZkny`sS]k]MvLMwTuZYneefzfv[nX{nibuw]SY`',
  coordinates: '!BR@K~os\\BRGuH_S]}?k|w__z@?k?~o?x@MpHw@o^}MpJH@da}RGw~`Ox@?k}H@ox@RGuH_T`BANmSip',
  mf: 'C30H50',
  mw: 410.727,
  label: 'Ursane'
}, {
  idCode: 'ek`P@@@LddTTVbvebQbrbbxtdlL\\BRjjjjjjjjjjk`APJaJQqYSj@_XPQQBd_i\\`G]cAhF{NP[m[AnqbN{FgTMt\\qwXt[anmaFzVd[jYSnqbvc]{F]vLfl[nYsnqlwg]cU`n{F{Q]vLNR{lYmewTpXkniduW]SQfnzfs]]uLVF{jZmMwTpy[ninvw]SMcnzfg@',
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELXYVBw?Cctm?vw?K_}?`Bw?Oy?Stp',
  mf: 'C29H52',
  mw: 400.73187999999993,
  label: 'Poriferastane'
}, {
  idCode: 'ek`P@@@LddTTVbvebQbrbbxtdlL\\BRjjjjjjjjjjk`APJaJQqYSi@_XPQQBd_i\\`G]cAhF{NP[m[AnqbN{FgTMt\\qwXt[anmaFzVd[jYSnqbvc]{F]vLfl[nYsnqlwg]cU`n{F{Q]vLNR{lYmewTpXkniduW]SQfnzfs]]uLVF{jZmMwTpy[ninvw]SMcnzfg@',
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELXYVBw?Cctm?vw?K_}?`Bw?Oy?Stp',
  mf: 'C29H52',
  mw: 400.73187999999993,
  label: 'Stigmastane'
}, {
  idCode: 'ekdPD@@@LLdTbRbRUTRtrTfVXTxDl\\RrZzvNjjjjjjjjjjjbHDPkET`Oz[IAwTrYCnifqG]SAjNzfsL]uMVx{lYlIwXwZSnihrg]SEmNzf{F]vMVl{l[LywXq[snqdpW]cChfzNR{lZMdwYqS]{U]vLFZ[k[inuaf{Ff{lZ\\lwRvs]SGMwL',
  coordinates: '!BgF_GS_ygnOiwSb|fnOeBRwiXe?U?IdIKnOfx~fSR?badSVSMYCK~YvQMYDw~YvPr?aadSVQMYCH',
  mf: 'C27H44O2',
  mw: 400.64435999999995,
  label: 'Spirostane'
}, {
  idCode: String.raw`fc@@@LddTTVbvebQbrbgMRlYpTuUUUUUUUUUW@JBheQrsNhGvHQREQ~atAwXpZC]gH[m[C]cD{lZ]Qncf]vMFxwVpfzVdwTrn{FKZ[oXw]cIkMwL{nqlwn{FkA{l[mGnqar^{F[Y{jXLWnidu^zfcM{j[Mwnibp~zfkS{jX\oninv~zf[@`,
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELXYVBw@cctmwvw@k]}?`Bw@oy?',
  mf: 'C28H50',
  mw: 386.705,
  label: 'Campestane'
}, {
  idCode: String.raw`fc@@@LddTTVbvebQbrbgMRlYpTuUUUUUUUUUW@JBheQrsNpGvHQREQ~atAwXpZC]gH[m[C]cD{lZ]Qncf]vMFxwVpfzVdwTrn{FKZ[oXw]cIkMwL{nqlwn{FkA{l[mGnqar^{F[Y{jXLWnidu^zfcM{j[Mwnibp~zfkS{jX\oninv~zf[@`,
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELXYVBw@cctmwvw@k]}?`Bw@oy?',
  mf: 'C28H50',
  mw: 386.705,
  label: 'Ergostane'
}, {
  idCode: 'ec`PH@@@LdTTRRTVVbfQdrvEG@g`USRvuUUUUUUUUUUXTKaEHC~frP]vLvP{jYMawXwXcnqjuG]SAfNzfs\\]vMfD{lXmIwTtYSnibvg]cIcN{FGVMt\\ywTu[snqhpS]gQMwlewTw[KnifqW]cAjfzvZ[m[inqan{FgSMtllwTvs]s@',
  coordinates: '!BtJW~hNpx{D_Pfd_ltJWPfak`esvhPox@jCvWPj`}jDK~gy\\}?bBhOZ`}?i~hPoz`jCvhOZaB',
  mf: 'C27H46O',
  mw: 386.66124,
  label: 'Furostane'
}, {
  idCode: 'eglPD@@@MlbbbbbRRqfbbbRRsDbeagaSPqrusP@PAE@D@HPP@@_tTQsnq`vS]KUMvltwYwS]cCMwMLwQrs][GMuM\\w^wxiXN@AAkhB\\@S@TC]@S`BXCFxXFz@G@DpFMpHMt@V@I`L[aQkhBL@S@VK]@Q`@X@f@qnGFn`ApALADut@V@I`Lan`Hp@L@S@UM]@I`BXCikhBl@S@SM]@]`BXCYkhCL@S@_M]@M`BXBEkh@l@c\\Hc]@Q`@XAFxIZz@g@Hw@kWP@xAFx@',
  coordinates: '!B?`Bw@h`B?`Bw__x@bOvw?H`BmpJH@h`Bm?w~@Hc}mpJH@ox@m?w~@Hc}b@Jw@k\\Bb@JH@ox@m?vH?P',
  mf: 'C28H18O2',
  mw: 386.44892,
  label: 'Bisanthrone'
}, {
  idCode: 'fmo@@@LddTTVbvebQbrTyjUcNBfjjjjjjjjjh@Oz[PCFCPirJmbcDXtzdNXqhwIlJKRdrfLVu]cLYMZsNXv[sFkAXwZKFGIXs[JfCETrZjfcMTv[jfKCTuZZf{KTsX',
  coordinates: '!BetK~gzaBM`BWO_z`esvhOZ`}etK~gy]BjDK~hL~esyhqXNLxi]BWP`QLesvWPi\\}?i~WP`',
  mf: 'C27H48',
  mw: 372.67812,
  label: 'cholesterol'
}, {
  idCode: 'fmo@@@LddTTVbvebQbrTyjUcNBfjjjjjjjjji`EATRhyY`OlPbdJc}MhCnq`tF{NPwZvF{FIwXtzc]GL{lZMqnmaMtmInie]vLVtw^qn{FSV[nYw]cYo]vMVCwXwZO]cCd}vLvswTpXo]SIj}uMF[wTv[o]SEa}uMVgwTwY_]SM`',
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELXYVBw@cctmwvw@k]}mpK~_p',
  mf: 'C27H48',
  mw: 372.67812,
  label: 'Cholestane'
}, {
  idCode: 'fa{@@@LddTTVbvebQbwMRlYpTuUUUUUUUUL@hJbUGKLA}bDTaT_hM@]vLF`wYrF{VpwXqN{FgT[hyg]cQnMulIneiMuLknqbvf{vMwXrZs]sN{l[M{nqjp^{F{Q{lX\\gnqfv^zfCE{jYMWnihs^zfs]{jXl',
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELXYVBw@cctmwvw@`',
  mf: 'C24H42',
  mw: 330.59748,
  label: 'Cholane'
}, {
  idCode: 'fj}@p@@FmxI\\dTTTRbTRR~XJSdyhJHBb`JCBDqB`OlHadBc}AHAnqdMuLQncfMwMqnuaMtmIn}gMum~HdG@@awP@xAFxX{h@l@c\\J]tAF@I`Jnz@[@DpGW]@I`BXCGn`JpALASwPFX@f@y{h@l@S@P',
  coordinates: '!BbOvw?_y?bOrw?Oy?bGvw_Xc}m?w~@K]}?g~H@oy?bOrw?K\\B?`Bw@`',
  mf: 'C15H14O6',
  mw: 290.27016000000003,
  label: 'Flavan-3,4-diol'
}, {
  idCode: 'fjc@@@LddTTVbvebQyjUcNBfjjjjjjjj`EATRhy@~qBJPjOtj`N{FCP[lyC]kX[lXg]cSjMt\\snqhwFzvDwRtfzfUwXq[S]{F{lYMYnyg]vMf}wXuXO]c]h}vLNSwXs[O]SAb}uMF@',
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELXYV@x}@',
  mf: 'C21H36',
  mw: 288.51684,
  label: 'Pregnane'
}, {
  idCode: 'fj}@p@@LDhI\\bbbbbfqbRvxKUdyZBhb@`JAFEq@~QbNQ~`d`wRvF{fhwZwFzfDwXtfzNtwVuf{vDRC`@H{h@l@c\\B]t@N@QnAnz@c@DpEw]@M`BXC{n`DpALAcwPEX@f@i{hCL@S@\\}t@V@I`H',
  coordinates: '!B?`BH@k\\B?`BH_[]}?`Bw?Hc|?g~H@k_|bOvw?_x@bOrw?K\\B?`Bw@`',
  mf: 'C15H12O6',
  mw: 288.25428,
  label: 'Dihydroflavonol'
}, {
  idCode: 'fj}@p@@DEiI\\bbbfbTtQRQXHwhyZdJH@BJ@@OzBRC]KH[nZc]S\\[mXS]cJ[hxs][^[o[|QHN@Acn`BpBMpYwP@xAFxR{hBL@S@[]t@v@I`Knz@S@DpDO]@U`BXCGn`LpALAswPAX@f@`',
  coordinates: '!B?`Bw@h`Bmww~@Ox@bGvH?K_|bOs~_x`Bm?w~@Hc}m?rw@hc|?`Bw@`',
  mf: 'C15H10O6',
  mw: 286.23839999999996,
  label: 'Flavonol'
}, {
  idCode: 'fbmAP@@Fm{NRJJJIQJYIy`iNbf`h`JHB`PaLPOdHad_hI@MvLanibMt\\qnynMvlIneiMwlynmoqD`x@DNz@G@HwCG]@E`D[aSn`HpALAUwPCX@f@z{hAL@S@P}tAV@I`L^z@s@DpEO]@E`BXB',
  coordinates: '!BbOvw?_y?bOrw?Oy?bGvw_Xc}m?w~@K]}?g~H@hc|m?rw@ox@mpH',
  mf: 'C15H14O5',
  mw: 274.27116,
  label: 'Flavan-3-ol'
}, {
  idCode: 'fbmAP@@\\e{NQQQJJKFIKYgEFbehJH`HB``q@~`rOtDdFzVpw\\uF{VXwTwF{FDwQrfzvLw^wxbP\\@AG]@E`D[`Sn`ApBMpuwPDX@f@v{hAl@S@W]t@f@I`H^z@k@DpFO]@Y`BXBgn`BpALA@',
  coordinates: '!B?`BH@k\\B?`BH?_x@m?rH?Oy?b@Jw?Hc}m?w~@Hc|m?rw@ox@mpH',
  mf: 'C15H12O5',
  mw: 272.25527999999997,
  label: 'Flavanone'
}, {
  idCode: 'fbmAPD@\\}GHIrQQQQQHiQItDXKd`PP@ADP@@_tD`F{F`wTvF{fXwQpfzVtwZqf{vBwVwxbP\\@AG]@C`D[`Sn`HpALAiwPAXAFxR{hAl@S@U]t@f@I`Mnz@k@DpEw]@Y`BXBgn`BpALA@',
  coordinates: '!Bm?vH?_y?m?s~_xc|mwvH_[_}?`BH_Xc}m?rw@oy?b@JH?Ox@mpH',
  mf: 'C15H11O5',
  mw: 271.24734,
  label: 'Anthocyanidine'
}, {
  idCode: 'fbmAP@@\\e{NQQQJJKFIKYgEFbehFH`HB`@C~`d`wRvF{fhwZsFzfxwXpfzNTwVqf{vDRC`@H{h@l@c\\B]t@N@QnFnz@c@DpFw]@M`BXB{n`DpALACwPEX@f@q{hCL@S@T}t@V@I`H',
  coordinates: '!B?`BH@k\\B?`BH?_x@mpJH@oy?b@Jw@hc}m?w~@H`BmpJw@ox@mpH',
  mf: 'C15H10O5',
  mw: 270.2394,
  label: 'Flavone'
}, {
  idCode: String.raw`fluhP@DTxIPCQSdTRbbUTRRSNRT{sUKMUUUP@_t\dIlbcXjqIMR{LbwKMJGJivfMrlinSdmr|ynPVmr@`,
  coordinates: '!B?oum~QKy?ouBuo{}Dog]aYkMPlg~_ySz^bTT~Rc~?cK~eQKz',
  mf: 'C10H13N5O4',
  mw: 267.24422,
  label: 'deoxyguanosine'
}, {
  idCode: 'fbm@`@@HRY[UfUWISrXyZjj@@@H@@iIHMv]ancfMwlInqeMuminigMvmynydmtm~LdG@@IwPDx@f@t{h@\\@S@^]tAv@I`Lnz@c@DpDw]@M`BXC[n`DpALACwPEX@f@q{hCL@S@\\}t@V@I`H',
  coordinates: '!BFfASFF@ZKAc~@Hc}b@K~_xc}m?vH?_y?b@K~_?y?bOvH?Xc}b@H',
  mf: 'C18H18O2',
  mw: 266.33892,
  label: 'Butyrolactone'
}, {
  idCode: 'fb}@`@@FrQQJIIIHsIDiHvgIsUPTE@@T@@_tddF{vpwXqFzNXwVwFzfDwYrf{Vtw\\sfzVFRC`@H{hB\\@S@Z]t@N@I`Lnz@{@DpFw]@Q`BXC{n`FpALACwPBX@f@q{hBl@S@T}tAf@I`N^z@K@DpD',
  coordinates: String.raw`!Bb@J{UHc}f\CRtOy?b@KRtIg@bOvH?[mTs}JH@f]SLXCOtl?RLX@`,
  mf: 'C18H18O2',
  mw: 266.33892,
  label: 'Furanofuran lignan'
}, {
  idCode: 'fb}@`@@HRY[efuWHrRoIcejjh@@@h@@iIHMv]ancjMwlInqcMumYni`mvmEnylmtm~LdG@@IwPDx@f@l{h@\\@S@^]t@v@I`Lnz@{@DpEW]@Q`BXCkn`JpALA]wPBX@f@~{h@l@S@T}tAf@I`H',
  coordinates: '!BFfASFF@ZKAbH?_x@b@K~_x`B?`BH?[_}bOvH@h`B?g?~_xc}bOt',
  mf: 'C18H16O2',
  mw: 264.32304,
  label: 'Arylnaphthalene lactone'
}, {
  idCode: 'flm@@@LddTTVbvebyjUcNBfjjjjjjj@C~fT@q`tJ\\bkXhqFMNiCfLZMr[BbtiLicEmWXsFSVlsfMf|qjpVMvbqarVLv@',
  coordinates: '!BetK~gzaBM`BWO_z`esvhOZ`}etK~gy]BjDK~hL~esyhqXNLx',
  mf: 'C19H32',
  mw: 260.46308,
  label: 'steroid'
}, {
  idCode: 'flm@@@LddTTVbvebyjUcNBfjjjjjjjhAPUDjNPOlPbdJc}LhCnq`tF{NPwZvF{FIwXtzc]GL{lZMqnmaMtmInie]vLVtw^qn{FSV[nYw]cYo]vMVCwXwZO]cCd}vLv@',
  coordinates: '!BmpK~_x`B?`Bw__x@mwvH_Xa}mpK~_{\\Bb@K~@A}eGqhq`ELX',
  mf: 'C19H32',
  mw: 260.46308,
  label: 'Androstane'
}, {
  idCode: 'fle@P@@\\\\eIfVWyWyZCEhFB@`H@Pi_tddF{NpwQsF{vTwXqfzvlwTwf{VBw\\tVzVEbC`@H{hBL@S@R]t@f@I`MNz@[@DpDW]@Y`BXCKn`JpALAuwPAX@f@`',
  coordinates: '!B?`BH@k\\BbGw~@Ox@?g~H@hc|m?s~@K_}?`BH?K_|mpK~@K\\B',
  mf: 'C15H12O4',
  mw: 256.25628,
  label: 'Chalcone'
}, {
  idCode: 'fluA@@@ISLrrn~QchaSUTDD@A@@G}IHan}jMvLqnceMuminicMv]ynu`mwLeneoqd`x@DNz@{@DpGG]@Q`BXBSn`ApALAywPCX@f@b{hAL@S@Y]tAN@I`Mnz@k@DpEw]@Y`BXCGn`BpALA@',
  coordinates: '!BsA_LZNU_HNkeHBCeEOm?VVcSEOa?IfcLyU?eW~T`yRA?VW|f',
  mf: 'C18H20O',
  mw: 252.35579999999996,
  label: 'Monofuranic lignan 7-O-7′'
}, {
  idCode: 'fluA@@@ISKJn}jRfkQSUPTD@A@@G}IIAn}lMvLQncfMumqniaMv\\inumMwMYneoqd`x@BNz@g@DpFg]@C`BXCKn`NpALAMwPDX@f@n{hAl@S@_]t@f@I`H^z@k@DpFO]@Y`BXBgn`BpALA@',
  coordinates: String.raw`!BG@\\^LE?lEjpIY\]fOwhw^cBp^?A{~c]fOw~{~cBzMwhw^cB`,
  mf: 'C18H20O',
  mw: 252.35579999999996,
  label: 'Monofuranic lignan 7-O-9′'
}, {
  idCode: 'fluA@@@IRjkLjo`chaSUUP@@A@@G}IHansbMt\\qn}aMvMinmcMuMynu`mwLeneoqd`x@DNz@g@DpGG]@C`BXCSn`NpALAywPDX@f@r{hAl@S@U]t@f@I`Mnz@k@DpEw]@Y`BXCGn`BpALA@',
  coordinates: '!BKA`lYvAeXAjH@ha}bGw~_?y?b@Jw_Xa}bGvH__y??g~H@ha}',
  mf: 'C18H20O',
  mw: 252.35579999999996,
  label: 'Monofuranic lignan 9-O-9′'
}, {
  idCode: 'fdei`@LZlFHIJrQQQSIQEYDhZw`uUUPHEP@G}GIAc\\dI[ebgDTwJcfyLZwKdVECmVXuVm]gR[tvCQ`',
  coordinates: '!Bj?dT~_x@^bTEI_xrO]ZZtozUDoim~_{|i]Im~fwz?os~?@',
  mf: 'C10H13N5O3',
  mw: 251.24521999999996,
  label: 'deoxyadenosine'
}, {
  idCode: 'fdu@@@LddTRtjTrSA\\dZpXuUUUUUUT@hJddmHGqHQRIQjOtR`N{FsP{lXlcnqdvN{F{D{lX]Qncf]vMVywXtXW]cMiMv\\in}m]vLFLwVuf{V\\wXwfzVBwTtV{f@',
  coordinates: '!B?g~H?A|ZLPBH_Q}ebOuSYx`B?g~H_Xc}?g~H@hc}bGvH?@',
  mf: 'C18H30',
  mw: 246.43619999999999,
  label: 'Estrane'
}, {
  idCode: 'fhiQP@DX@IW`yEEDeDdbdsakMUMMUU@ASRPdrJMbsDfuFMrYEnUZRfyFRwJsfyNZwH',
  coordinates: '!B@yhCi_xl@yk~_pNZ?brT~ghe?bpCfaSyJO{~LozUDoh',
  mf: 'C10H14N2O5',
  mw: 242.23016,
  label: 'deoxythymidine'
}, {
  idCode: 'fdy@@@DjU^{yVg@qBBJj@@@@iIAMt\\in}mMv\\YnqkMulynioMvlEnyhmtm~LdG@@AwPDX@f@p{hAl@S@T]t@f@I`NNz@{@DpDg]@U`BXCSn`LpALAYwP@x@f@|{h@l@S@Y]tAN@I`H',
  coordinates: String.raw`!B?g~H@k\BbOvH?[_}b@K~_{\BbOvw?_y?m?vH?_y??g~H?P`,
  mf: 'C18H22',
  mw: 238.37267999999997,
  label: 'Dibenzylbutane'
}, {
  idCode: 'fde@@@LdbbTRtVRKIBTFHQEDE@D@ARRX[o[c]cB[h{S][F[jZs]g^[mXK]sQ[i[|YHN@@Cn`FpALAawPDX@f@h{hBl@S@R]t@f@I`MNz@{@DpEg]@E`BXCKn`LpALAUwP@x@f@n{hB\\@S@P',
  coordinates: '!B?`BH?[_}b@Jw@h`B?g~w@hc}m?vw?Xc}GvT_Foy??g~H?P',
  mf: 'C18H20',
  mw: 236.35679999999996,
  label: 'Arylnaphthalene'
}, {
  idCode: 'fde@@@LdbbbTRVQpcZ][t@DDDUA@ARR@[kYC]cX[mYc]S\\[oXS]KF[nZs]GA[l{|YHN@ACn`DpALAIwPDX@f@t{hCL@S@Y]t@v@I`Jnz@{@DpGW]@E`BXB{n`JpALA}wP@x@f@q{hB\\@S@P',
  coordinates: '!B?g~[iBAzfyl`AWh`_?yzHGi__?yzWrAzfyl`AYndKwHoCP',
  mf: 'C18H20',
  mw: 236.35679999999996,
  label: 'Dibenzocycloctane'
}, {
  idCode: 'fhe@@@LdbbbTReryHQmN|Fjjjjjj`@iE@TzCFCHavFMFIUjTYcFK\\npfLfeMeQ[TfLqlufMV]YoL[lEcM`',
  coordinates: '!BbOvw?_x@?g~H@k\\B?g~w@k_}bOvH?_x@GvVH@a|ZTq`',
  mf: 'C17H28',
  mw: 232.40931999999998,
  label: 'steroid core'
}, {
  idCode: 'fhe@@@LdbbbTReryHQmN|Fjjjjjjj@TDaLadCz`HaBHYAhRJ@[lzG]cAdMt]cnqhqF{VhwXsN{FK\\[oXW]cIiMulinemMuL[nqlun{FkN[n[w]c]`}vLv@',
  coordinates: '!BbGvw__x@?g~H@k\\B?g~w?K_}bOvH__x@GvVH?A|ZTq`',
  mf: 'C17H28',
  mw: 232.40931999999998,
  label: 'Gonane'
}, {
  idCode: 'f`qQP@DX@ISoILrl{jsfcMUMMUT@G}MIBSHhvKLR[TXwIdVyUiJ[eiK\\cN[eYk\\`',
  coordinates: '!B@yhCi_xl@yk~_pNZ?brT~ghe?bpT~Rc~?cK~eQKz',
  mf: 'C9H12N2O5',
  mw: 228.20328,
  label: 'deoxyuridine'
}, {
  idCode: 'f`qpP@DXxBSoYEDhihTdjBtYijjji`@iiHRYEfqQbQZdvXqnPjliS\\mI[dYs\\kM[d',
  coordinates: '!B@yk~K@Ne@yhCfoy??bpCiYSz^bTT~Rc~?cK~eQKz',
  mf: 'C9H13N3O4',
  mw: 227.21921999999998,
  label: 'deoxycytidine'
}, {
  idCode: 'fhy@`@@BrJJJJIPy[`eV|EhJ`@@`@C~`d`wRvF{fhwZwFzfDwXtfzNTwVuf{vDRC`@H{h@l@c\\B]t@N@QnCNz@c@DpGW]@M`BXB[n`DpALA]wPEX@f@~{hCL@S@P}t@V@I`H',
  coordinates: '!B?`BH@k\\B?`BH_[]}?`Bw@h`Bb@K~_{\\BbGvw_[]}mpH',
  mf: 'C15H12O2',
  mw: 224.25827999999998,
  label: 'Isoflavanone'
}, {
  idCode: 'fhy@`@@JRYfYU_XhwgAZd@`@H@@hIHMtlanyjMuMqnueMvMinccMumyn}oqD`x@FNz@K@Hw@g]@Q`BXBsn`ApBMpEwPCX@f@r{hAL@S@[]tAV@I`Knz@s@DpDO]@E`BXB',
  coordinates: '!B?`Bw@h`Bm?w~@Ox@bOw~_{\\Bb@JH@h`Bm?vw?Xc}mpH',
  mf: 'C15H10O2',
  mw: 222.24239999999998,
  label: 'Isoflavone'
}, {
  idCode: 'f`i@`@@VRYfYU]`eNMyh@`AB@@OzJRC]gT[l[c]GB{lXMIneeMuMinucMwlynyoMum~ILE@@QkhgBM|ZzApc\\fn`lHwX[hc@LHw@',
  coordinates: '!B?g~w_Xa}?g~w@oy?b@JH_[]}mwvH_Xa}?g~w@h`B',
  mf: 'C14H8O2',
  mw: 208.21552,
  label: 'Anthraquinone'
}, {
  idCode: 'foQ@`@@BRYfYWvBUXsf`B@@`@C~bd`wYuF{FxwQpn{FCR[iYS]SZ[mXs]{V[nYs][_bSAP@DZzIpc_Fn`\\HwIkhKBMvFzHpCBMp',
  coordinates: '!B?g~w?Xc}?g~w@oy?b@JH?[_}m?vH?Xc}mpJH@`',
  mf: 'C13H8O2',
  mw: 196.20452,
  label: 'Xanthone'
}, {
  idCode: String.raw`foQA@@@YEEEEDdbrRkF\t@D@D@@_tTdF{NhwXwFzNDwRtn{FCJ[j[S]kF[oZs]sN[k[|RXJ@@cWQND[xutCaFyM]AXQnpwQF@XQn`,
  coordinates: '!B?g~w?Xc}?g~w@oy?b@Jw?Xc}m?vH?Xc}mpJH@`',
  mf: 'C14H10O',
  mw: 194.23239999999998,
  label: 'Anthrone'
}, {
  idCode: 'dg|@@DjU_eZx{BAH@@BJozL`mvMK][JwTvmvl[]sVwRwxb`x@@]tAF@I`L]t@v@I`J]t@f@I`N]t@f@Y`I]tAV@I`M]tAf@I`K]tAF@Y`O]t@V@I`H',
  coordinates: '!B?`Bw?Xc}mpJw?Hc|m?vH?_y?bOrH?Xc}b@H',
  mf: 'C14H12',
  mw: 180.24928,
  label: 'Stilbene'
}, {
  idCode: 'fgA@@@DjYU_VByHu`@@@@@@OzJQC]gX[lXg]cAjMtmqniiMwLincmMvlYn}kMum~ILE@@AkhgBMxZzBpc]fn`\\HwD[hc@LHw@',
  coordinates: String.raw`!B?g~H@k\BbOvw?Xc}m?vH@k\Bb@JH?Xc}b@H`,
  mf: 'C14H10',
  mw: 178.2334,
  label: 'Anthracene'
}, {
  idCode: 'dclD@@UIfV][iuhFAH@OzBdMtmc]sTwZsMuMs]cBwQtmumk]{_bbB`@IwPVD[ewPND[`',
  coordinates: '!B?`BH@k\\B?`BH?_x@mpJH@h`B?`BH?P',
  mf: 'C10H6O2',
  mw: 158.15563999999998,
  label: 'Naphtoquinone'
}, {
  idCode: 'dmLD@@QIe[VfeVi@B@C~`iC]SHwXvMwMS]K\\wQpmvmK]{JwVp',
  coordinates: '!Bb@JH?_x@b@JH@ox@bOvH@h`BbOt',
  mf: 'C9H6O2',
  mw: 146.14463999999998,
  label: 'Coumarin'
}, {
  idCode: 'dazH`Jx@aJ]nji`dG}JPGJQap|T\\MGGBaIppP',
  coordinates: '!B?g~H@k_}?g~H?[_}?g|',
  mf: 'C5H11NOS',
  mw: 133.21434,
  label: 'methionine'
}, {
  idCode: 'detH@@rQQJHtpsPT@`APTAnqd[jXfzNinyf[i[f{VEn}i[k[|TPT@BNzApc_NzBpc\\',
  coordinates: '!BbOvw?_y?b@K~_{_}bOvH?X`B',
  mf: 'C9H8O',
  mw: 132.16152,
  label: '2H-Chromene'
}, {
  idCode: 'daDD@@qJYnnjjh@htQcIkESUKM[]s@',
  coordinates: '!Bm?vH?[_|?g?~_x`BbOt',
  mf: 'C6H12O2',
  mw: 116.15928000000001,
  label: 'pyranose'
}, {
  idCode: 'gOp`AdifMjj`OzVIcJVMM^Yzp',
  coordinates: '!BTv]`YW?~KF_~_q`l',
  mf: 'C5H10O2',
  mw: 102.1324,
  label: 'furanose'
}, {
  idCode: 'gOp`Adigkjj`OzVIcKVMMYY|p',
  coordinates: '!Bm?vH?[_|?g?~_xc}',
  mf: 'C5H10O2',
  mw: 102.1324,
  label: 'pyranose core'
}, {
  idCode: 'gFp`AdidvjhC~abXrecSWf@',
  coordinates: '!BTv]`YW?~KF_~_p',
  mf: 'C4H8O2',
  mw: 88.10552,
  label: 'furanose core'
}];

/**
 * In place modification of the molecule to add auto labels to its atoms based on
 * a database of common substructures.
 * @param molecule
 */
function autoLabel(molecule) {
  const {
    Molecule
  } = molecule.getOCL();
  for (const entry of autoLabelDatabase) {
    const fragment = Molecule.fromIDCode(entry.idCode);
    const result = applyFragmentLabels(molecule, fragment, {
      algorithm: 'separated'
    });
    if (result > 0) return;
  }
}

const MAX_R = 10;
/**
 * Generate molecules and calculate predicted properties form a list of smiles and fragments
 * @param {string} coreSmiles
 * @param {Array} fragments - Array of {smiles,R1,R2,...}
 * @param {typeof import('openchemlib')} OCL - openchemlib library
 * @param {object} [options={}] - Options
 * @param {Function} [options.onStep] - method to execute each new molecules
 * @param {boolean} [options.complexity] - returns only the number of molecules to evaluate
 * @returns {Promise<any>} promise that resolves to molecules or complexity as a number
 */
async function combineSmiles(coreSmiles, fragments, OCL, options = {}) {
  const {
    complexity = false
  } = options;
  const core = getCore(coreSmiles);
  const rGroups = getRGroups(core, fragments);
  if (complexity) {
    return getComplexity(rGroups);
  }
  return generate(core, rGroups, OCL, options);
}
function getComplexity(rGroups) {
  let complexity = 1;
  for (const rGroup of rGroups) {
    complexity *= rGroup.smiles.length;
  }
  return complexity;
}
async function generate(core, rGroups, OCL, options = {}) {
  const {
    onStep
  } = options;
  const molecules = {};
  const sizes = new Array(rGroups.length);
  const currents = new Array(rGroups.length);
  for (let i = 0; i < rGroups.length; i++) {
    sizes[i] = rGroups[i].smiles.length - 1;
    currents[i] = 0;
  }
  let position = 0;
  let counter = 0;
  while (true) {
    counter++;
    while (position < currents.length) {
      if (currents[position] < sizes[position]) {
        if (onStep) {
          // eslint-disable-next-line no-await-in-loop
          await onStep(counter);
        }
        appendMolecule(molecules, core, rGroups, currents, OCL);
        currents[position]++;
        for (let i = 0; i < position; i++) {
          currents[i] = 0;
        }
        position = 0;
      } else {
        position++;
      }
    }
    if (position = currents.length) {
      if (onStep) {
        // eslint-disable-next-line no-await-in-loop
        await onStep(counter);
      }
      appendMolecule(molecules, core, rGroups, currents, OCL);
      break;
    }
  }
  const mols = Object.values(molecules);
  mols.sort((m1, m2) => m1.mw - m2.mw);
  return mols;
}
function appendMolecule(molecules, core, rGroups, currents, OCL) {
  let newSmiles = core.smiles;
  for (let i = 0; i < currents.length; i++) {
    newSmiles += `.${rGroups[i].smiles[currents[i]]}`;
  }
  const currentMol = OCL.Molecule.fromSmiles(newSmiles);
  const idCode = currentMol.getIDCode();
  if (!molecules[idCode]) {
    const molecule = {};
    molecules[idCode] = molecule;
    molecule.smiles = currentMol.toSmiles();
    molecule.combinedSmiles = newSmiles;
    molecule.idCode = idCode;
    molecule.molfile = currentMol.toMolfile();
    const props = new OCL.MoleculeProperties(currentMol);
    molecule.nbHAcceptor = props.acceptorCount;
    molecule.nbHDonor = props.donorCount;
    molecule.logP = props.logP;
    molecule.logS = props.logS;
    molecule.PSA = props.polarSurfaceArea;
    molecule.nbRottable = props.rotatableBondCount;
    molecule.nbStereoCenter = props.stereoCenterCount;
    const mf = currentMol.getMolecularFormula();
    molecule.mf = mf.formula;
    molecule.mw = mf.relativeWeight;
  }
}
function getCore(coreSmiles) {
  const core = {
    originalSmiles: coreSmiles,
    smiles: updateRPosition(coreSmiles).replaceAll(/\[R(?<group>[1-4])]/g, '%5$<group>')
  };
  for (let i = 0; i < MAX_R; i++) {
    if (core.originalSmiles.includes(`[R${i}]`)) core[`R${i}`] = true;
  }
  return core;
}
function getRGroups(core, fragments) {
  const rGroups = {};
  for (const fragment of fragments) {
    if (fragment.smiles) {
      const smiles = updateRPosition(fragment.smiles);
      for (let i = 0; i < MAX_R; i++) {
        if (core[`R${i}`] &&
        // we only consider the R that are in the core
        fragment[`R${i}`]) {
          if (!rGroups[`R${i}`]) {
            rGroups[`R${i}`] = {
              group: `R${i}`,
              smiles: []
            };
          }
          rGroups[`R${i}`].smiles.push(smiles.replace(/\[R]/, `(%5${i})`));
        }
      }
    }
  }
  return Object.keys(rGroups).map(key => rGroups[key]);
}
/**
 * Repositions an R-group marker when it appears at the beginning of a SMILES string.
 * R-group markers (`[R]`, `[R1]`, `[R2]`, ..., `[R9]`) at position 0 are not valid in
 * SMILES notation, so this function moves them after the first atom at the top level
 * of the molecular graph.
 * @param {string} smiles - SMILES string potentially starting with an R-group marker
 * @returns {string} SMILES string with the R-group marker repositioned if needed
 */
function updateRPosition(smiles) {
  // Match R group at the beginning: [R], [R1], [R2], ..., [R9]
  const match = smiles.match(/^\[R\d?]/);
  if (!match) return smiles;
  const rGroup = match[0];
  if (smiles.length === rGroup.length) return `[H]${rGroup}`;
  // we are in trouble ... we need to move the R
  const newSmiles = smiles.slice(rGroup.length);
  // we need to check where we should put the R group
  let level = 0;
  for (let j = 0; j < newSmiles.length; j++) {
    const currentChar = newSmiles.charAt(j);
    const currentSubstring = newSmiles.slice(j);
    if (currentChar === '(') {
      level++;
    } else if (currentChar === ')') {
      level--;
    } else if (level === 0) {
      if (currentSubstring.match(/^[a-z]/)) {
        return `${newSmiles.slice(0, Math.max(0, j + 1))}(${rGroup})${newSmiles.slice(j + 1)}`;
      } else if (currentSubstring.match(/^[A-Z][a-z]/)) {
        return `${newSmiles.slice(0, Math.max(0, j + 2))}(${rGroup})${newSmiles.slice(j + 2)}`;
      } else if (currentSubstring.match(/^[A-Z]/)) {
        return `${newSmiles.slice(0, Math.max(0, j + 1))}(${rGroup})${newSmiles.slice(j + 1)}`;
      }
    }
  }
  return smiles;
}

/**
 * Ensure that the data is string. If it is an ArrayBuffer it will be converted to string using TextDecoder.
 * @param blob
 * @param options
 * @returns
 */
function ensureString(blob, options = {}) {
  if (typeof blob === 'string') {
    return blob;
  }
  if (ArrayBuffer.isView(blob) || blob instanceof ArrayBuffer) {
    if (options.encoding) {
      return new TextDecoder(options.encoding).decode(blob);
    } else {
      return decodeText(blob);
    }
  }
  throw new TypeError(`blob must be a string, ArrayBuffer or ArrayBufferView`);
}
function decodeText(blob) {
  const uint8 = ArrayBuffer.isView(blob) ? new Uint8Array(blob.buffer, blob.byteOffset, blob.byteLength) : new Uint8Array(blob);
  if (uint8.length >= 2) {
    if (uint8[0] === 0xfe && uint8[1] === 0xff) {
      return new TextDecoder('utf-16be').decode(uint8);
    }
    if (uint8[0] === 0xff && uint8[1] === 0xfe) {
      return new TextDecoder('utf-16le').decode(uint8);
    }
  }
  try {
    return new TextDecoder('utf-8', {
      fatal: true
    }).decode(uint8);
  } catch {
    return new TextDecoder('latin1').decode(uint8);
  }
}

/**
 * Converts a string to camel case.
 * @param {string} name
 * @returns {string}
 */
function getCamelCase(name) {
  return name.replaceAll(/[ -][a-z]/g, string => string[1].toUpperCase());
}

function getParts(text) {
  const lines = text.split(/\r?\n/);
  const parts = {
    data: []
  };
  let currentPart = parts.data;
  let currentLabel = '';
  for (const line of lines) {
    if (line.startsWith('</')) {
      // close existing part
      if (currentLabel !== line.slice(2, -1)) {
        throw new Error('This should not happen');
      }
      currentLabel = '';
      currentPart = parts.data;
    } else if (line.startsWith('<') && !line.includes('=')) {
      // open new part
      if (currentLabel) {
        throw new Error('This should not happen');
      }
      currentLabel = line.slice(1, -1);
      const target = getCamelCase(currentLabel);
      parts[target] = [];
      currentPart = parts[target];
    } else if (currentLabel) {
      // add line to current part
      currentPart.push(line);
    } else {
      //data lines
      currentPart.push(line);
    }
  }
  return parts;
}

function parseColumnbProperties(lines) {
  lines = lines.map(line => {
    const [key, value] = line.slice(1, -1).split('=');
    return {
      key,
      value: value.slice(1, -1)
    };
  });
  const columnProperties = {};
  let currentColumnName = '';
  for (const line of lines) {
    switch (line.key) {
      case 'columnName':
        currentColumnName = line.value;
        columnProperties[currentColumnName] = {};
        break;
      case 'columnProperty':
        {
          if (!currentColumnName) {
            throw new Error('This should not happen');
          }
          const [key, value] = line.value.split('\t');
          columnProperties[currentColumnName][key] = value;
        }
        break;
      default:
        throw new Error('This should not happen');
    }
  }
  for (const key in columnProperties) {
    const columnPropery = columnProperties[key];
    if (columnProperties[key].parent) {
      const target = columnProperties[columnPropery.parent];
      if (!target) {
        throw new Error('Parent column not found');
      }
      if (!target.related) {
        target.related = {};
      }
      target.related[columnPropery.specialType] = key;
    }
  }
  return columnProperties;
}

function parseData(lines, options = {}) {
  lines = lines.filter(line => !line.match(/^\s*$/));
  const {
    columnProperties = {}
  } = options;
  const headers = lines.shift().split('\t').map(header => {
    if (columnProperties[header]) {
      return {
        label: header,
        ...columnProperties[header]
      };
    }
    return {
      label: header
    };
  });
  const entries = [];
  const rawEntries = [];
  for (const line of lines) {
    const fields = line.split('\t');
    const rawEntry = {};
    for (const [index, header] of headers.entries()) {
      rawEntry[header.label] = fields[index];
    }
    rawEntries.push(rawEntry);
    const entry = {};
    for (const header of headers) {
      if (header.parent) continue;
      entry[header.label] = valueEhnhancer(header, rawEntry);
    }
    entries.push(entry);
  }
  return {
    entries,
    rawEntries
  };
}
function valueEhnhancer(header, rawEntry) {
  if (header?.specialType === 'rxncode') {
    return `${rawEntry[header.label]}#${rawEntry[header.related.atomMapping]}#${rawEntry[header.related.idcoordinates2D]}`;
  }
  return rawEntry[header.label];
}
/*
entry.rxnCode =
*/

/**
 * Convert a DataWarrior database into a JSON object
 * @param {string} text
 * @returns
 */
function parseDwar(text) {
  text = ensureString(text);
  const parts = getParts(text);
  improveParts(parts);
  return parts;
}
function improveParts(parts) {
  for (const key in parts) {
    switch (key) {
      case 'columnProperties':
        parts[key] = parseColumnbProperties(parts[key]);
        break;
      case 'data':
        break;
      default:
        parts[key] = parseDefault(parts[key]);
    }
  }
  const data = parseData(parts.data, {
    columnProperties: parts.columnProperties
  });
  parts.data = data.entries;
  parts.rawData = data.rawEntries;
}
function parseDefault(lines) {
  const result = {};
  for (const line of lines) {
    const [key, value] = line.slice(1, -1).split('=');
    result[key] = value.slice(1, -1);
  }
  return result;
}

/**
 * Returns various information about atoms in the molecule
 * @param {import('openchemlib').Molecule} [molecule]
 */
function getAtomsInfo(molecule) {
  const OCL = molecule.getOCL();
  molecule.ensureHelperArrays(OCL.Molecule.cHelperRings);
  const diaIDs = getDiastereotopicAtomIDs(molecule);
  const results = [];
  for (let i = 0; i < diaIDs.length; i++) {
    const result = {
      oclID: diaIDs[i],
      extra: {
        singleBonds: 0,
        doubleBonds: 0,
        tripleBonds: 0,
        aromaticBonds: 0,
        cnoHybridation: 0 // should be 1 (sp), 2 (sp2) or 3 (sp3)
      }
    };
    const extra = result.extra;
    results.push(result);
    result.abnormalValence = molecule.getAtomAbnormalValence(i); // -1 is normal otherwise specified
    result.charge = molecule.getAtomCharge(i);
    result.cipParity = molecule.getAtomCIPParity(i);
    result.color = molecule.getAtomColor(i);
    result.customLabel = molecule.getAtomCustomLabel(i);
    //        result.esrGroup=molecule.getAtomESRGroup(i);
    //        result.esrType=molecule.getAtomESRType(i);
    result.atomicNo = molecule.getAtomicNo(i);
    result.label = molecule.getAtomLabel(i);
    //        result.list=molecule.getAtomList(i);
    //        result.listString=molecule.getAtomListString(i);
    //        result.mapNo=molecule.getAtomMapNo(i);
    result.mass = molecule.getAtomMass(i);
    //        result.parity=molecule.getAtomParity(i);
    //        result.pi=molecule.getAtomPi(i);
    //        result.preferredStereoBond=molecule.getAtomPreferredStereoBond(i);
    //        result.queryFeatures=molecule.getAtomQueryFeatures(i);
    result.radical = molecule.getAtomRadical(i);
    result.ringBondCount = molecule.getAtomRingBondCount(i);
    //        result.ringCount=molecule.getAtomRingCount(i);
    result.ringSize = molecule.getAtomRingSize(i);
    result.x = molecule.getAtomX(i);
    result.y = molecule.getAtomY(i);
    result.z = molecule.getAtomZ(i);
    result.allHydrogens = molecule.getAllHydrogens(i);
    result.connAtoms = molecule.getConnAtoms(i);
    result.allConnAtoms = molecule.getAllConnAtoms(i);
    result.implicitHydrogens = result.allHydrogens + result.connAtoms - result.allConnAtoms;
    result.isAromatic = molecule.isAromaticAtom(i);
    result.isAllylic = molecule.isAllylicAtom(i);
    result.isStereoCenter = molecule.isAtomStereoCenter(i);
    result.isRing = molecule.isRingAtom(i);
    result.isSmallRing = molecule.isSmallRingAtom(i);
    result.isStabilized = molecule.isStabilizedAtom(i);
    // todo HACK to circumvent bug in OCL that consider than an hydrogen is connected to itself
    result.extra.singleBonds = result.atomicNo === 1 ? 0 : result.implicitHydrogens;
    for (let j = 0; j < molecule.getAllConnAtoms(i); j++) {
      const bond = molecule.getConnBond(i, j);
      const bondOrder = molecule.getBondOrder(bond);
      if (molecule.isAromaticBond(bond)) {
        extra.aromaticBonds++;
      } else if (bondOrder === 1) {
        // not an hydrogen
        extra.singleBonds++;
      } else if (bondOrder === 2) {
        extra.doubleBonds++;
      } else if (bondOrder === 3) {
        extra.tripleBonds++;
      }
    }
    result.extra.totalBonds = result.extra.singleBonds + result.extra.doubleBonds + result.extra.tripleBonds + result.extra.aromaticBonds;
    if (result.atomicNo === 6) {
      result.extra.cnoHybridation = result.extra.totalBonds - 1;
    } else if (result.atomicNo === 7) {
      result.extra.cnoHybridation = result.extra.totalBonds;
    } else if (result.atomicNo === 8) {
      result.extra.cnoHybridation = result.extra.totalBonds + 1;
    } else if (result.atomicNo === 1) {
      const connectedAtom = molecule.getAllConnAtoms(i) === 0 ? 0 : molecule.getAtomicNo(molecule.getConnAtom(i, 0));
      result.extra.hydrogenOnAtomicNo = connectedAtom;
      if (connectedAtom === 7 || connectedAtom === 8) {
        result.extra.labileHydrogen = true;
      }
    }
  }
  return results;
}

function getImplicitHydrogensCount(molecule, atomID) {
  return molecule.getImplicitHydrogens(atomID);
}

var src = {};

Object.defineProperty(src, "__esModule", {
  value: true
});
var atomSorter_1 = src.atomSorter = atomSorter;
/**
 * Implementation of the Hill system for sorting atoms
 * https://en.wikipedia.org/wiki/Chemical_formula#Hill_system
 * @param a - first atom to compare
 * @param b - second atom to compare
 * @returns A value suitable for use in Array.prototype.sort.
 */
function atomSorter(a, b) {
  if (a === b) return 0;
  if (a === 'C') return -1;
  if (b === 'C') return 1;
  if (a === 'H') return -1;
  if (b === 'H') return 1;
  if (a < b) return -1;
  return 1;
}

/**
 * Calculate the molecular formula in 'chemcalc' notation taking into account fragments, isotopes and charges
 * @param {import('openchemlib').Molecule} molecule - an instance of OCL.Molecule
 * @returns {object}
 */
function getMF(molecule) {
  const entries = molecule.getFragments();
  const result = {};
  let parts = [];
  const allAtoms = [];
  for (const entry of entries) {
    const mf = getFragmentMF(entry, allAtoms);
    parts.push(mf);
  }
  const counts = {};
  for (const part of parts) {
    if (!counts[part]) counts[part] = 0;
    counts[part]++;
  }
  parts = [];
  const sortedKeys = Object.keys(counts);
  sortedKeys.sort();
  for (const key of sortedKeys) {
    if (counts[key] > 1) {
      parts.push(counts[key] + key);
    } else {
      parts.push(key);
    }
  }
  result.parts = parts;
  result.mf = toMFString(allAtoms);
  return result;
}
function getFragmentMF(molecule, allAtoms) {
  const atoms = [];
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    const atom = {
      charge: molecule.getAtomCharge(i),
      label: molecule.getAtomLabel(i),
      mass: molecule.getAtomMass(i),
      implicitHydrogens: molecule.getImplicitHydrogens(i)
    };
    if (atom.label === '?') atom.label = 'R';
    atoms.push(atom);
    allAtoms.push(atom);
  }
  return toMFString(atoms);
}
function toMFString(atoms) {
  let charge = 0;
  const mfs = {};
  for (const atom of atoms) {
    let label = atom.label;
    charge += atom.charge;
    if (atom.mass) {
      label = `[${atom.mass}${label}]`;
    }
    const mfAtom = mfs[label];
    if (!mfAtom) {
      mfs[label] = 0;
    }
    mfs[label] += 1;
    if (atom.implicitHydrogens) {
      if (!mfs.H) mfs.H = 0;
      mfs.H += atom.implicitHydrogens;
    }
  }
  let mf = '';
  const keys = Object.keys(mfs);
  keys.sort(atomSorter_1);
  for (const key of keys) {
    mf += key;
    if (mfs[key] > 1) mf += mfs[key];
  }
  if (charge > 0) {
    mf += `(+${charge > 1 ? charge : ''})`;
  } else if (charge < 0) {
    mf += `(${charge < -1 ? charge : '-'})`;
  }
  return mf;
}

/**
 * Returns the charge of a molecule
 * @param {import('openchemlib').Molecule} molecule - an instance of OCL.Molecule
 * @returns {number}
 */
function getCharge(molecule) {
  let charge = 0;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    charge += molecule.getAtomCharge(i);
  }
  return charge;
}

/**
 * We have 2 molfiles and we would like to map the atom number from one to the other.
 * We expect that both molfiles contain the same atoms that can be in a different order.
 * @param {typeof import('openchemlib')} OCL - openchemlib library
 * @param {string} from
 * @param {string} to
 * @returns {{fromTo: number[], toFrom: number[]}} - fromTo is an array of the same length as the number of atoms in the from molfile. Each element is the index of the corresponding atom in the to molfile. toFrom is the opposite.
 */
function getMolfilesMapping(OCL, from, to) {
  const {
    Molecule
  } = OCL;
  const fromF = from.replaceAll(' H ', ' X ');
  const toF = to.replaceAll(' H ', ' X ');
  // we may ignore mapping because we should not have hydrogens anymore
  const fromMoleculeF = Molecule.fromMolfile(fromF);
  const toMoleculeF = Molecule.fromMolfile(toF);
  if (fromMoleculeF.getIDCode() !== toMoleculeF.getIDCode()) {
    // only a problem of hydrogens ?
    const fromMolecule = Molecule.fromMolfile(from);
    const toMolecule = Molecule.fromMolfile(to);
    if (fromMolecule.getIDCode() === toMolecule.getIDCode()) {
      throw new Error('Molecules do not have the same explicit hydrogens');
    } else {
      throw new Error('Molecules are different');
    }
  }
  const fromFinalRanks = [...fromMoleculeF.getFinalRanks()];
  const toFinalRanks = [...toMoleculeF.getFinalRanks()];
  // need now to create the mapping
  const fromTo = [];
  const toFrom = [];
  for (let i = 0; i < fromFinalRanks.length; i++) {
    const fromRank = fromFinalRanks[i];
    const toRank = toFinalRanks.indexOf(fromRank);
    if (toRank === -1) {
      throw new Error('Rank not found. This should never happen.');
    }
    fromTo[i] = toRank;
    toFrom[toRank] = i;
  }
  return {
    fromTo,
    toFrom
  };
}

const unsaturationsObject = {
  O: 0,
  N: 1,
  H: -1,
  C: 2,
  F: -1,
  Si: 2,
  Cl: -1,
  Br: -1,
  I: -1
};
/**
 * Simplified version of the calculation in mf-parser
 * @param mf
 * @returns
 */
function getUnsaturation(mf) {
  // split a molecular formula into its elements
  const elements = mf.match(/[A-Z][a-z]*\d*/g);
  if (!elements || elements.length === 0) return undefined;
  let unsaturation = 0;
  for (const element of elements) {
    const matches = element.match(/([A-Z][a-z]?)(\d*)/);
    const symbol = matches[1];
    const count = matches[2] ? Number.parseInt(matches[2], 10) : 1;
    const elementObject = unsaturationsObject[symbol];
    if (elementObject === undefined) {
      return undefined;
    }
    unsaturation += elementObject * count;
  }
  return unsaturation / 2 + 1;
}

// this page allows to debug the hints: https://my.cheminfo.org/?viewURL=https%3A%2F%2Fmyviews.cheminfo.org%2Fdb%2Fvisualizer%2Fentry%2F108024089da99d0cb70a57724486d0c6%2Fview.json
const defaultPossibleHints = [{
  idCode: String.raw`eF@Hp\pcc`,
  message: 'What about a non-aromatic ring?'
}, {
  idCode: 'eF@HpZpk|X`',
  message: 'You should consider an aromatic ring.'
}, {
  idCode: 'gFp@DiTt@@B',
  message: 'Did you think about benzene derivatives?'
}, {
  idCode: 'eFHBLFLYpB@QVE_cD',
  message: 'An aromatic cycle can be an heterocycle.'
}, {
  idCode: 'eMHJN`q[N@PBGN@PBJhjU~JU@',
  anyMatches: ['gFx@@eJf`@@P', 'gKP@Di\\YZ@qas`D@`'],
  message: 'There could be more than one heteroatom in an aromatic cycle.'
}, {
  idCode: 'gFp@DiTvjhCYbKFuXUEIVTUUWxlTeZMX',
  anyMatches: ['gKP@Di\\Zj@vhbqkPjJRlhj?FbdkQ`'],
  message: 'Aromatic cycles can have 5 or 6 atoms.',
  remarks: 'Proposed 5 and it is 6'
}, {
  idCode: 'gKP@Di\\Zj@vhbqkPjJRlhj?FbdkQ`',
  anyMatches: ['gFp@DiTvjhCYbKFuXUEIVTUUWxlTeZMX'],
  message: 'Aromatic cycles can have 5 or 6 atoms.',
  remarks: 'Proposed 6 and it is 5'
}, {
  idCode: 'gFx@@eJf`@@P',
  message: 'Did you think about pyridine derivatives?'
}, {
  idCode: 'gNp@LdbLjj@vdrpqSdm_qhXiKT',
  message: 'I would consider bicyclo products.',
  remarks: 'One atom bridge'
}, {
  idCode: 'eFHBJD',
  message: 'Adding a carbonyl could help.'
}, {
  idCode: 'eMHAIhMi}EqfFBmN?vP',
  message: 'You should consider an alcohol.'
}, {
  idCode: 'eMB@HRZCBKSFXXJt{?Y@',
  message: 'You should consider a thiol.'
}, {
  idCode: 'gJQ@@eKU@[KFJtLAa`sAUR]g_zlP',
  message: 'You should consider an ether.'
}, {
  idCode: 'gJQ@@eKU@[KFJtLAa`r`q?EAcuX`',
  anyMatches: ['gJQ@@eKU@[KFJtLAa`?uX`'],
  message: 'An ether can be in a cycle.'
}, {
  idCode: 'gJPH@DIRuPFrqbmC@XXLpUTgYw~kD',
  message: 'You should consider a thioether.'
}, {
  idCode: 'gJPH@DIRuPFrqbmC@XXLhL_qPX}VH',
  anyMatches: ['gJPH@DIRuPFrqbmC@XXO}VH'],
  message: 'A thioether can be in a cycle.'
}, {
  idCode: 'eM`AIhLHmLYa`kSo}d',
  message: 'You should consider a primary amine.',
  remarks: 'primary'
}, {
  idCode: 'gJX@@eKU@XPVVLUhXCCAUIv]?jq@',
  message: 'You should consider a secondary amine.',
  remarks: 'secondary'
}, {
  idCode: 'gNx@@eRmUPFDElZxxppVFAppUv\\WUw~xu`',
  message: 'You should consider a tertiary amine.',
  remarks: 'tertiary'
}, {
  idCode: 'gJX@@eKU@XPVVLUhXCCAeAcUIv]~JCGjq@',
  anyMatches: ['gJX@@eKU@XPVVLUhXCCAfBjd{N?uX`'],
  message: 'A secondary amine can be in a cycle.',
  remarks: 'secondary cyclic amine'
}, {
  idCode: 'gNx@@eRmUPFDElZxxppVFAppYPXuv\\WUwxhL^xu`',
  anyMatches: ['gNx@@eRmUPFDElZxxppVFAppY`j{NKj{?\\Zp'],
  message: 'A tertiary amine can be in a cycle.',
  remarks: 'tertiary cyclic amine'
}, {
  idCode: 'gGP`@df]j`MekEZFBppUa]?ju@',
  message: 'What about an ester?'
}, {
  idCode: 'gGP`@df]j`MekEZFBppYdZpn?FQzmP',
  anyMatches: ['gGP`@df]j`MekEZFBppUa]?ju@'],
  message: 'An ester can be in a cycle.'
}, {
  idCode: 'gGY@DDf]j`MekEZFBppUa]?ju@',
  message: 'There is an amide function in the molecule.'
}, {
  idCode: 'gGY@DDf]j`MekEZFBppYdZpn?FQzmP',
  anyMatches: ['gGY@DDf]j`MekEZFBppUa]?ju@@'],
  message: 'An amide can be in a cycle.'
}, {
  idCode: 'gCi@DDfZ@~btl',
  message: 'There is a primary amide in the molecule.'
}, {
  idCode: 'gC``@dfZ@~bl',
  message: 'You should think about carboxylic acids. The OH signal may be very wide.'
}, {
  idCode: String.raw`eF@Hh\q@`,
  message: 'What about having an olefin?'
}, {
  idCode: 'gFp@DiTt@@CqC^LmV[m`',
  anyMatches: ['gFp@DiTt@@CBqXwd@'],
  message: 'Did you think about disubstituted aromatic rings?',
  remarks: 'meta'
}, {
  idCode: 'gFp@DiTt@@CqB~LmWkM`',
  anyMatches: ['gFp@DiTt@@CBqXwd@'],
  message: 'Did you think about disubstituted aromatic rings?',
  remarks: 'para'
}, {
  idCode: 'gFp@DiTt@@CqB^JoV[m',
  anyMatches: ['gFp@DiTt@@CBqXwd@'],
  message: 'Did you think about disubstituted aromatic rings?',
  remarks: 'ortho'
}, {
  idCode: 'gFp@DiTt@@CqB^JoV[m',
  anyMatches: ['gFp@DiTt@@CqC^LmV[m`', 'gFp@DiTt@@CqB~LmWkM`'],
  message: 'Disubstituted aromatic ring can be ortho (1,2), meta (1,3) or para (1,4).',
  remarks: 'ortho'
}, {
  idCode: 'gFp@DiTt@@CqC^LmV[m`',
  anyMatches: ['gFp@DiTt@@CqB^JoV[m', 'gFp@DiTt@@CqB~LmWkM`'],
  message: 'Disubstituted aromatic ring can be ortho (1,2), meta (1,3) or para (1,4).',
  remarks: 'meta'
}, {
  idCode: 'gFp@DiTt@@CqB~LmWkM`',
  anyMatches: ['gFp@DiTt@@CqC^LmV[m`', 'gFp@DiTt@@CqB^JoV[m'],
  message: 'Disubstituted aromatic ring can be ortho (1,2), meta (1,3) or para (1,4).',
  remarks: 'para'
}, {
  idCode: 'gGP`@df]j`H',
  anyMatches: ['gGP`@dfUj`H'],
  message: 'You should check the orientation of the ester.'
}, {
  idCode: String.raw`gOq@@drm\@@Aa@`,
  message: 'Alcohols on aromatic ring may have surprising chemical shifts.'
}, {
  idCode: String.raw`gOx@@drm\@@A}A@`,
  message: 'NH on aromatic ring may have surprising chemical shifts.'
}, {
  idCode: 'eFHBJGuP',
  message: 'Hydrogens on a carbonyl have very high chemical shifts.'
}];
/**
 *
 * @param correct
 * @param proposed
 * @param options
 * @returns
 */
function getNMRHints(correct, proposed, options = {}) {
  const hints = [...checkMF(correct, proposed), ...checkUnsaturation(correct, proposed), ...checkStereoAndTautomer(correct, proposed)];
  const {
    possibleHints = defaultPossibleHints
  } = options;
  const OCL = correct.getOCL();
  const searcherCorrect = new OCL.SSSearcher();
  searcherCorrect.setMolecule(correct);
  const searcherAnswer = new OCL.SSSearcher();
  searcherAnswer.setMolecule(proposed);
  for (const possibleHint of possibleHints) {
    const {
      anyMatches
    } = possibleHint;
    if (anyMatches) {
      // we filter the molecules so they match at least one of the anyMatches
      let match = false;
      for (const anyMatch of anyMatches) {
        const matchFragment = OCL.Molecule.fromIDCode(anyMatch);
        searcherAnswer.setFragment(matchFragment);
        if (searcherAnswer.isFragmentInMolecule()) {
          match = true;
          break;
        }
      }
      if (!match) continue;
    }
    const fragment = OCL.Molecule.fromIDCode(possibleHint.idCode);
    searcherCorrect.setFragment(fragment);
    searcherAnswer.setFragment(fragment);
    if (searcherCorrect.isFragmentInMolecule() && !searcherAnswer.isFragmentInMolecule()) {
      hints.push(possibleHint);
    }
  }
  // we suggest symmetry only if MF is correct
  if (isMFCorrect(correct, proposed)) {
    hints.push(...checkSymmetry(correct, proposed));
  }
  return hints.map(hint => ({
    ...hint,
    hash: getHash(JSON.stringify(hint))
  }));
}
function isMFCorrect(correct, answer) {
  const mfCorrect = correct.getMolecularFormula().formula;
  const mfAnswer = answer.getMolecularFormula().formula;
  return mfCorrect === mfAnswer;
}
function checkMF(correct, answer) {
  if (isMFCorrect(correct, answer)) return [];
  return [{
    message: 'You should check the molecular formula.'
  }];
}
function checkUnsaturation(correct, answer) {
  const mfCorrect = correct.getMolecularFormula().formula;
  const mfAnswer = answer.getMolecularFormula().formula;
  if (mfCorrect !== mfAnswer) {
    const unsaturationCorrect = getUnsaturation(mfCorrect);
    const unsaturationAnswer = getUnsaturation(mfAnswer);
    if (unsaturationCorrect === unsaturationAnswer || unsaturationAnswer === undefined || unsaturationCorrect === undefined) {
      return [];
    }
    if (unsaturationCorrect > unsaturationAnswer) {
      return [{
        message: 'The proposed molecule has a double bond equivalent (DBE) that is too low.'
      }];
    } else {
      return [{
        message: 'The proposed molecule has a double bond equivalent (DBE) that is too high.'
      }];
    }
  }
  return [];
}
function checkStereoAndTautomer(correct, answer) {
  if (correct.getIDCode() === answer.getIDCode()) return [];
  if (getNoStereoIDCode(correct) === getNoStereoIDCode(answer)) {
    return [{
      message: 'There is only a problem with stereochemistry.'
    }];
  }
  if (getTautomerIDCode(correct) === getTautomerIDCode(answer)) {
    return [{
      message: "Weird, you didn't draw the expected tautomer."
    }];
  }
  return [];
}
function checkSymmetry(correct, answer) {
  const nbCorrectRanks = Object.keys(new TopicMolecule(correct).getDiaIDsObject()).length;
  const nbAnswerRanks = Object.keys(new TopicMolecule(answer).getDiaIDsObject()).length;
  if (nbCorrectRanks === nbAnswerRanks) return [];
  if (nbCorrectRanks > nbAnswerRanks) {
    return [{
      message: 'The proposed molecule is too symmetric.'
    }];
  } else {
    return [{
      message: 'The proposed molecule is not symmetric enough.'
    }];
  }
}
function getTautomerIDCode(molecule) {
  const OCL = molecule.getOCL();
  return OCL.CanonizerUtil.getIDCode(molecule, OCL.CanonizerUtil.TAUTOMER);
}
function getNoStereoIDCode(molecule) {
  const OCL = molecule.getOCL();
  return OCL.CanonizerUtil.getIDCode(molecule, OCL.CanonizerUtil.NOSTEREO);
}
/*
    https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
    cyrb53a (c) 2023 bryc (github.com/bryc)
    License: Public domain. Attribution appreciated.
    The original cyrb53 has a slight mixing bias in the low bits of h1.
    This shouldn't be a huge problem, but I want to try to improve it.
    This new version should have improved avalanche behavior, but
    it is not quite final, I may still find improvements.
    So don't expect it to always produce the same output.
*/
function getHash(str, seed = 0) {
  let h1 = 0xdeadbeef ^ seed;
  let h2 = 0x41c6ce57 ^ seed;
  for (let i = 0, ch; i < str.length; i++) {
    ch = str.codePointAt(i);
    h1 = Math.imul(h1 ^ ch, 0x85ebca77);
    h2 = Math.imul(h2 ^ ch, 0xc2b2ae3d);
  }
  h1 ^= Math.imul(h1 ^ h2 >>> 15, 0x735a2d97);
  h2 ^= Math.imul(h2 ^ h1 >>> 15, 0xcaf649a9);
  h1 ^= h2 >>> 16;
  h2 ^= h1 >>> 16;
  return 2097152 * (h2 >>> 0) + (h1 >>> 11);
}

/**
 *
 * @param correct
 * @param proposed
 * @param providedHints
 */
function getNextNMRHint(correct, proposed, providedHints) {
  const hints = getNMRHints(correct, proposed);
  const possibleHints = hints.filter(possibleHint => !providedHints.some(providedHint => possibleHint.hash === providedHint.hash));
  if (possibleHints.length === 0) return undefined;
  return {
    ...possibleHints[0],
    idCode: proposed.getIDCode()
  };
}

let toxicityPredictor;
let druglikenessPredictor;
/**
 *
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {boolean} [options.includeToxicities=false]
 * @param {boolean} [options.includeDruglikeness=false]
 */
function getProperties(molecule, options = {}) {
  const {
    includeToxicities = false,
    includeDruglikeness = false
  } = options;
  const OCL = molecule.getOCL();
  if (!OCL.MoleculeProperties) {
    throw new Error('OCL.MoleculeProperties is not defined');
  }
  const props = new OCL.MoleculeProperties(molecule);
  const moleculeFormula = molecule.getMolecularFormula();
  const result = {
    acceptorCount: props.acceptorCount,
    donorCount: props.donorCount,
    logP: props.logP,
    logS: props.logS,
    polarSurfaceArea: props.polarSurfaceArea,
    rotatableBondCount: props.rotatableBondCount,
    stereoCenterCount: props.stereoCenterCount,
    mw: moleculeFormula.relativeWeight,
    mf: moleculeFormula.formula
  };
  if (includeToxicities) {
    const {
      ToxicityPredictor
    } = molecule.getOCL();
    if (!ToxicityPredictor) {
      throw new Error('OCL.ToxicityPredictor is not defined');
    }
    if (!toxicityPredictor) {
      toxicityPredictor = new ToxicityPredictor();
    }
    result.mutagenic = toxicityPredictor.assessRisk(molecule, ToxicityPredictor.TYPE_MUTAGENIC);
    result.tumorigenic = toxicityPredictor.assessRisk(molecule, ToxicityPredictor.TYPE_TUMORIGENIC);
    result.irritant = toxicityPredictor.assessRisk(molecule, ToxicityPredictor.TYPE_IRRITANT);
    result.reproductiveEffective = toxicityPredictor.assessRisk(molecule, ToxicityPredictor.TYPE_REPRODUCTIVE_EFFECTIVE);
  }
  if (includeDruglikeness) {
    const {
      DruglikenessPredictor
    } = molecule.getOCL();
    if (!DruglikenessPredictor) {
      throw new Error('OCL.DruglikenessPredictor is not defined');
    }
    if (!druglikenessPredictor) {
      druglikenessPredictor = new DruglikenessPredictor();
    }
    result.drugLikeness = druglikenessPredictor.assessDruglikeness(molecule);
  }
  if (result.drugLikeness !== undefined && result.mutagenic !== undefined) {
    result.drugScore = OCL.DrugScoreCalculator.calculate(result.logP, result.polarSurfaceArea, result.mw, result.drugLikeness, [result.mutagenic, result.tumurogenic, result.irritant, result.reproductiveEffective]);
  }
  return result;
}

/**
 * Calculate the molecular formula in 'chemcalc' notation taking into account fragments, isotopes and charges
 * @param {OCL.Molecule} [molecule] - an instance of OCL.Molecule
 * @returns {}
 */
function getAtoms(molecule) {
  const entries = molecule.getFragments();
  const atoms = {};
  const result = {
    atoms,
    parts: []
  };
  for (const entry of entries) {
    const part = {};
    result.parts.push(part);
    appendAtomPart(entry, atoms, part);
  }
  return result;
}
function appendAtomPart(molecule, atoms, part) {
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    const label = molecule.getAtomLabel(i);
    if (!atoms[label]) {
      atoms[label] = 0;
    }
    atoms[label] += 1;
    if (!part[label]) {
      part[label] = 0;
    }
    part[label] += 1;
    const implicitHydrogens = molecule.getImplicitHydrogens(i);
    if (implicitHydrogens) {
      if (!atoms.H) {
        atoms.H = 0;
      }
      atoms.H += implicitHydrogens;
      if (!part.H) {
        part.H = 0;
      }
      part.H += implicitHydrogens;
    }
  }
}

/**
 * Return the number of Hydroxyl groups in a molecule or fragment
 * @param {import('openchemlib').Molecule} molecule
 * @returns {number} 'Number of Hydroxyl groups'
 */
function nbOH(molecule) {
  let counter = 0;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (molecule.getAtomicNo(i) === 6) {
      let carbonyl = false;
      let hydroxyl = false;
      let carbonOrHydrogen = true;
      for (let neighbour = 0; neighbour < molecule.getConnAtoms(i); neighbour++) {
        const neighbourAtom = molecule.getConnAtom(i, neighbour);
        const neighbourBond = molecule.getConnBond(i, neighbour);
        if (molecule.getAtomicNo(neighbourAtom) === 8) {
          if (molecule.getBondOrder(neighbourBond) === 1 && molecule.getAllHydrogens(neighbourAtom) > 0) {
            // If there is more than a Hydroxyl in the same carbon atome they are not couted as Hydroxyl groups
            if (hydroxyl) {
              hydroxyl = false;
              break;
            }
            hydroxyl = true;
          } else if (molecule.getBondOrder(neighbourBond) === 2) {
            // If there is Carbonyl group on the same carbon atom it is not couted as Hydroxyl group
            carbonyl = true;
          }
        } else if (
        // If there is not at least one carbon or hydrogen as neighbour atom it is not counted as Hydroxyl group
        molecule.getAtomicNo(neighbourAtom) !== 6 && molecule.getAtomicNo(neighbourAtom) !== 1) {
          carbonOrHydrogen = false;
        }
      }
      if (!carbonyl && hydroxyl && carbonOrHydrogen) counter++;
    }
  }
  return counter;
}

/**
 * Return the number of Carboxyl groups in a molecule or fragment
 * @param {import('openchemlib').Molecule} molecule
 * @returns {number} 'Number of Carboxyl groups'
 */
function nbCOOH(molecule) {
  let counter = 0;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (molecule.getAtomicNo(i) === 6) {
      let carbonyl = false;
      let hydroxyl = false;
      let carbonOrHydrogen = true;
      for (let neighbour = 0; neighbour < molecule.getConnAtoms(i); neighbour++) {
        const neighbourAtom = molecule.getConnAtom(i, neighbour);
        const neighbourBond = molecule.getConnBond(i, neighbour);
        if (molecule.getAtomicNo(neighbourAtom) === 8) {
          if (molecule.getBondOrder(neighbourBond) === 1 && molecule.getAllHydrogens(neighbourAtom) > 0) {
            // If there is more than a Hydroxyl in the same carbon atom it is not couted as Carboxyl group
            if (hydroxyl) {
              hydroxyl = false;
              break;
            }
            hydroxyl = true;
          } else if (molecule.getBondOrder(neighbourBond) === 2) {
            // If there is more than one carbonyl in the same carbon atom it is not count as Carboxyl group
            if (carbonyl) {
              carbonyl = false;
              break;
            }
            carbonyl = true;
          }
        } else if (
        // If there is not at least one carbon or hydrogen as neighbour atom it is not counted as Carboxyl group
        molecule.getAtomicNo(neighbourAtom) !== 6 && molecule.getAtomicNo(neighbourAtom) !== 1) {
          carbonOrHydrogen = false;
        }
      }
      if (carbonyl && hydroxyl && carbonOrHydrogen) counter++;
    }
  }
  return counter;
}

/**
 * Return the number of Carbonyl groups in a molecule or fragment
 * @param {import('openchemlib').Molecule} molecule
 * @returns {number} 'Number of Carbonyl groups'
 */
function nbCHO(molecule) {
  let counter = 0;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    // if there is not at least one hydrogen in the carbon atom there can not be a carbonyl group
    if (molecule.getAtomicNo(i) === 6 && molecule.getAllHydrogens(i) > 0) {
      let carbonyl = false;
      let carbonOrHydrogen = true;
      for (let neighbour = 0; neighbour < molecule.getConnAtoms(i); neighbour++) {
        const neighbourAtom = molecule.getConnAtom(i, neighbour);
        const neighbourBond = molecule.getConnBond(i, neighbour);
        if (molecule.getAtomicNo(neighbourAtom) === 8) {
          if (molecule.getBondOrder(neighbourBond) === 2) {
            // If there is more than one carbonyl group on the same carbon atom they are not counted as carbonyl groups
            if (carbonyl) {
              carbonyl = false;
              break;
            }
            carbonyl = true;
          }
        } else if (
        // If there is not at least one carbon or hydrogen as neighbour atom it is not counted as Carbonyl group
        molecule.getAtomicNo(neighbourAtom) !== 6 && molecule.getAtomicNo(neighbourAtom) !== 1) {
          carbonOrHydrogen = false;
        }
      }
      if (carbonyl && carbonOrHydrogen) counter++;
    }
  }
  return counter;
}

/**
 * Return the number of Primary amine groups in a molecule or fragment
 * @param {import('openchemlib').Molecule} molecule
 * @returns {number} 'Number of Primary amine groups'
 */
function nbNH2(molecule) {
  let counter = 0;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (molecule.getAtomicNo(i) === 6) {
      let amine = false;
      let carbonOrHydrogen = true;
      for (let neighbour = 0; neighbour < molecule.getConnAtoms(i); neighbour++) {
        const neighbourAtom = molecule.getConnAtom(i, neighbour);
        const neighbourBond = molecule.getConnBond(i, neighbour);
        if (molecule.getAtomicNo(neighbourAtom) === 7 && molecule.getBondOrder(neighbourBond) === 1 && molecule.getAllHydrogens(neighbourAtom) > 1) {
          // If there is more than a Primary amine in the same carbon atom they are not couted as Primary amines groups
          if (amine) {
            amine = false;
            break;
          }
          amine = true;
        } else if (
        // If there is not at least one carbon or hydrogen as neighbour atom it is not counted as Primary amine group
        molecule.getAtomicNo(neighbourAtom) !== 6 && molecule.getAtomicNo(neighbourAtom) !== 1) {
          carbonOrHydrogen = false;
        }
      }
      if (amine && carbonOrHydrogen) counter++;
    }
  }
  return counter;
}

/**
 * Return the number of Nitrile groups in a molecule or fragment
 * @param {import('openchemlib').Molecule} molecule
 * @returns {number} 'Number of Nitrile groups'
 */
function nbCN(molecule) {
  let counter = 0;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (molecule.getAtomicNo(i) === 6) {
      let cn = false;
      let carbonOrHydrogen = true;
      for (let neighbour = 0; neighbour < molecule.getConnAtoms(i); neighbour++) {
        const neighbourAtom = molecule.getConnAtom(i, neighbour);
        const neighbourBond = molecule.getConnBond(i, neighbour);
        if (molecule.getAtomicNo(neighbourAtom) === 7 && molecule.getBondOrder(neighbourBond) === 3) {
          // If there is more than one Nitrile group in the same carbon atome they are not counted as Nitrile groups
          if (cn) {
            cn = false;
            break;
          }
          cn = true;
        } else if (
        // If there is not at least one carbon or hydrogen as neighbour atom it is not counted as Nitrile group
        molecule.getAtomicNo(neighbourAtom) !== 6 && molecule.getAtomicNo(neighbourAtom) !== 1) {
          carbonOrHydrogen = false;
        }
      }
      if (cn && carbonOrHydrogen) counter++;
    }
  }
  return counter;
}

/**
 * Return the number of labile protons being either on O, N, Br, Cl, F, I or S
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {Array<number>} [options.atomicNumbers=[7, 8, 9, 16, 17, 35, 53]] - atomic numbers of the labile protons
 * @returns {number} 'Number of labile protons'
 */
function nbLabileH(molecule, options = {}) {
  const {
    atomicNumbers = [7, 8, 9, 16, 17, 35, 53]
  } = options;
  let counter = 0;
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    if (atomicNumbers.includes(molecule.getAtomicNo(i))) {
      counter += molecule.getAllHydrogens(i);
    }
  }
  return counter;
}

/**
 * Toggle presence of implicity hydrogens on/off
 * @param molecule
 * @param atomID
 */
function toggleHydrogens(molecule, atomID) {
  if (molecule.getImplicitHydrogens(atomID) === 0) {
    const atomsToDelete = [];
    for (let i = 0; i < molecule.getAllConnAtoms(atomID); i++) {
      const connectedAtom = molecule.getConnAtom(atomID, i);
      if (molecule.getAtomicNo(connectedAtom) === 1) {
        atomsToDelete.push(connectedAtom);
      }
    }
    molecule.deleteAtoms(atomsToDelete);
  } else {
    molecule.addImplicitHydrogens(atomID);
  }
}

/**
 * Convert a molecule to a molfile object compatible with the visualizer.
 * @param {import('openchemlib').Molecule} molecule - The molecule to convert.
 * @param {object} [options={}] - Options to control atom highlighting and grouping.
 * @param {boolean} [options.diastereotopic] - If true, group atoms by diastereotopic IDs.
 * @param {boolean} [options.atomMapNo] - If true, group atoms by their atom map number. Atoms with no map number (0) are excluded from highlighting.
 * @param {boolean} [options.customAtomLabel] - If true, group atoms by their custom atom label. Atoms with no custom label are excluded from highlighting.
 * @param {boolean} [options.heavyAtomHydrogen] - If true, copy each hydrogen's highlight label to its parent heavy atom. When used with diastereotopic, implicit hydrogens are added internally to compute their diastereotopic IDs.
 * @param {boolean} [options.collapseHydrogens] - If true, remove explicit hydrogens from the molfile. Implies heavyAtomHydrogen.
 * @returns {{ type: string, value: string, _highlight: Array, _atoms: object }} A molfile object with highlight and atom mapping information.
 */
function toVisualizerMolfile(molecule, options = {}) {
  const {
    diastereotopic,
    atomMapNo,
    customAtomLabel,
    heavyAtomHydrogen,
    collapseHydrogens
  } = options;
  const copyH = heavyAtomHydrogen || collapseHydrogens;
  // Work on a copy to avoid mutating the original molecule.
  // When heavyAtomHydrogen is used with diastereotopic, add implicit H
  // so we can compute their diastereotopic IDs.
  let labelMolecule = molecule.getCompactCopy();
  const {
    Molecule
  } = labelMolecule.getOCL();
  if (heavyAtomHydrogen && diastereotopic) {
    labelMolecule.addImplicitHydrogens();
  }
  labelMolecule.ensureHelperArrays(Molecule.cHelperNeighbours);
  // Phase 1: Label all atoms based on the chosen mode
  // Build groups: label → [atomIndices]
  const groups = {};
  if (diastereotopic) {
    const diaIDs = getDiastereotopicAtomIDs(labelMolecule);
    for (let i = 0; i < diaIDs.length; i++) {
      const label = diaIDs[i];
      if (!groups[label]) {
        groups[label] = [];
      }
      if (!groups[label].includes(i)) {
        groups[label].push(i);
      }
    }
  } else if (customAtomLabel) {
    for (let i = 0; i < labelMolecule.getAllAtoms(); i++) {
      const label = labelMolecule.getAtomCustomLabel(i);
      if (!label) continue;
      if (!groups[label]) {
        groups[label] = [];
      }
      groups[label].push(i);
    }
  } else if (atomMapNo) {
    for (let i = 0; i < labelMolecule.getAllAtoms(); i++) {
      const mapNo = labelMolecule.getAtomMapNo(i);
      if (mapNo === 0) continue;
      if (!groups[mapNo]) {
        groups[mapNo] = [];
      }
      groups[mapNo].push(i);
    }
  } else {
    for (let i = 0; i < labelMolecule.getAllAtoms(); i++) {
      groups[i] = [i];
    }
  }
  // Phase 2: If heavyAtomHydrogen or collapseHydrogens, copy each hydrogen's
  // label entries to its parent heavy atom
  if (copyH) {
    for (const atomIndices of Object.values(groups)) {
      for (const atomIndex of atomIndices) {
        if (labelMolecule.getAtomicNo(atomIndex) !== 1) continue;
        if (labelMolecule.getAllConnAtoms(atomIndex) === 0) continue;
        const heavyAtom = labelMolecule.getConnAtom(atomIndex, 0);
        if (!atomIndices.includes(heavyAtom)) {
          atomIndices.push(heavyAtom);
        }
      }
    }
  }
  // Phase 3: Remove H atoms from groups and remap indices.
  // This runs when collapseHydrogens is set, or when we internally added H
  // for heavyAtomHydrogen with diastereotopic (to restore the original atom count).
  const shouldCollapse = collapseHydrogens || heavyAtomHydrogen && diastereotopic;
  if (shouldCollapse) {
    const totalAtoms = labelMolecule.getAllAtoms();
    const isHydrogen = new Array(totalAtoms).fill(false);
    const atomsToDelete = [];
    for (let i = 0; i < totalAtoms; i++) {
      if (labelMolecule.getAtomicNo(i) === 1) {
        isHydrogen[i] = true;
        atomsToDelete.push(i);
      }
    }
    // Build index remap: old index → new index for non-H atoms
    const indexRemap = new Map();
    let newIdx = 0;
    for (let i = 0; i < totalAtoms; i++) {
      if (!isHydrogen[i]) {
        indexRemap.set(i, newIdx++);
      }
    }
    // Remap atom indices in groups: remove H, remap heavy atoms
    for (const label of Object.keys(groups)) {
      groups[label] = groups[label].filter(i => !isHydrogen[i]).map(i => indexRemap.get(i));
      if (groups[label].length === 0) {
        delete groups[label];
      }
    }
    if (collapseHydrogens) {
      labelMolecule.deleteAtoms(atomsToDelete);
    }
  }
  // Build highlight and atoms from groups
  const highlight = [];
  const atoms = {};
  for (const label of Object.keys(groups)) {
    highlight.push(atomMapNo ? Number(label) : label);
    atoms[label] = groups[label];
  }
  // Use the original molecule for the molfile unless we collapsed H
  const outputMolecule = collapseHydrogens ? labelMolecule : molecule;
  return {
    type: 'mol2d',
    value: outputMolecule.toMolfile(),
    _highlight: highlight,
    _atoms: atoms
  };
}

/**
 * Calculates the path between 2 atoms
 * @param {import('openchemlib').Molecule} molecule
 * @param {number} from - index of the first atom
 * @param {number} to - index of the end atom
 * @param {number} maxLength - maximal length of the path
 */
function getPathAndTorsion(molecule, from, to, maxLength) {
  const originalAtoms = []; // path before renumbering
  molecule.getPath(originalAtoms, from, to, maxLength + 1);
  let torsion;
  if (originalAtoms.length === 4) {
    torsion = molecule.calculateTorsion(originalAtoms);
  }
  return {
    atoms: originalAtoms,
    from,
    to,
    torsion,
    length: originalAtoms.length - 1
  };
}

let fragment;
/**
 *
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {string} [options.fromLabel='H']
 * @param {string} [options.toLabel='H']
 * @param {number} [options.minLength=1]
 * @param {number} [options.maxLength=4]
 * @param {boolean} [options.withHOSES=false]
 */
function getPathsInfo(molecule, options = {}) {
  const {
    fromLabel = 'H',
    toLabel = 'H',
    minLength = 1,
    maxLength = 4,
    withHOSES = false
  } = options;
  const OCL = molecule.getOCL();
  if (!fragment) {
    fragment = new OCL.Molecule(0, 0);
  }
  const fromAtomicNumber = OCL.Molecule.getAtomicNoFromLabel(fromLabel);
  const toAtomicNumber = OCL.Molecule.getAtomicNoFromLabel(toLabel);
  // we need to find all the atoms 'fromLabel' and 'toLabel'
  const atomsInfo = getAtomsInfo(molecule);
  const pathLengthMatrix = getConnectivityMatrix(molecule, {
    pathLength: true
  });
  for (let from = 0; from < molecule.getAllAtoms(); from++) {
    atomsInfo[from].paths = [];
    for (let to = 0; to < molecule.getAllAtoms(); to++) {
      if (from !== to && molecule.getAtomicNo(from) === fromAtomicNumber && molecule.getAtomicNo(to) === toAtomicNumber) {
        const pathLength = pathLengthMatrix[from][to];
        if (pathLength >= minLength && pathLength <= maxLength) {
          if (withHOSES) {
            atomsInfo[from].paths.push(getHoseCodesForPath(molecule, from, to, pathLength));
          } else {
            atomsInfo[from].paths.push(getPathAndTorsion(molecule, from, to, pathLength));
          }
        }
      }
    }
  }
  return atomsInfo;
}

/**
 * Get the shortest path between each pair of atoms in the molecule
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} [options={}]
 * @param {string} [options.fromLabel='H']
 * @param {string} [options.toLabel='H']
 * @param {number} [options.maxLength=4]
 * @returns {Array<Array>} A matrix containing on each cell (i,j) the shortest path from atom i to atom j
 */
function getShortestPaths(molecule, options = {}) {
  const OCL = molecule.getOCL();
  const {
    fromLabel = '',
    toLabel = '',
    maxLength = 3
  } = options;
  const fromAtomicNumber = OCL.Molecule.getAtomicNoFromLabel(fromLabel);
  const toAtomicNumber = OCL.Molecule.getAtomicNoFromLabel(toLabel);
  const nbAtoms = molecule.getAllAtoms();
  const allShortestPaths = new Array(nbAtoms);
  for (let i = 0; i < nbAtoms; i++) {
    allShortestPaths[i] = new Array(nbAtoms);
  }
  for (let from = 0; from < nbAtoms; from++) {
    allShortestPaths[from][from] = [from];
    for (let to = from + 1; to < nbAtoms; to++) {
      if ((fromAtomicNumber === 0 || molecule.getAtomicNo(from) === fromAtomicNumber) && (toAtomicNumber === 0 || molecule.getAtomicNo(to) === toAtomicNumber)) {
        const path = [];
        molecule.getPath(path, from, to, maxLength);
        if (path.length > 0) {
          allShortestPaths[from][to] = path.slice();
          allShortestPaths[to][from] = path.toReversed();
        } else {
          allShortestPaths[from][to] = null;
          allShortestPaths[to][from] = null;
        }
      } else {
        allShortestPaths[from][to] = null;
        allShortestPaths[to][from] = null;
      }
    }
  }
  return allShortestPaths;
}

var papaparse_min$1 = {exports: {}};

/* @license
Papa Parse
v5.5.3
https://github.com/mholt/PapaParse
License: MIT
*/
var papaparse_min = papaparse_min$1.exports;
(function (module, exports$1) {
  ((e, t) => {
    module.exports = t() ;
  })(papaparse_min, function r() {
    var n = "undefined" != typeof self ? self : "undefined" != typeof window ? window : void 0 !== n ? n : {};
    var d,
      s = !n.document && !!n.postMessage,
      a = n.IS_PAPA_WORKER || false,
      o = {},
      h = 0,
      v = {};
    function u(e) {
      this._handle = null, this._finished = false, this._completed = false, this._halted = false, this._input = null, this._baseIndex = 0, this._partialLine = "", this._rowCount = 0, this._start = 0, this._nextChunk = null, this.isFirstChunk = true, this._completeResults = {
        data: [],
        errors: [],
        meta: {}
      }, function (e) {
        var t = b(e);
        t.chunkSize = parseInt(t.chunkSize), e.step || e.chunk || (t.chunkSize = null);
        this._handle = new i(t), (this._handle.streamer = this)._config = t;
      }.call(this, e), this.parseChunk = function (t, e) {
        var i = parseInt(this._config.skipFirstNLines) || 0;
        if (this.isFirstChunk && 0 < i) {
          let e = this._config.newline;
          e || (r = this._config.quoteChar || '"', e = this._handle.guessLineEndings(t, r)), t = [...t.split(e).slice(i)].join(e);
        }
        this.isFirstChunk && U(this._config.beforeFirstChunk) && void 0 !== (r = this._config.beforeFirstChunk(t)) && (t = r), this.isFirstChunk = false, this._halted = false;
        var i = this._partialLine + t,
          r = (this._partialLine = "", this._handle.parse(i, this._baseIndex, !this._finished));
        if (!this._handle.paused() && !this._handle.aborted()) {
          t = r.meta.cursor, i = (this._finished || (this._partialLine = i.substring(t - this._baseIndex), this._baseIndex = t), r && r.data && (this._rowCount += r.data.length), this._finished || this._config.preview && this._rowCount >= this._config.preview);
          if (a) n.postMessage({
            results: r,
            workerId: v.WORKER_ID,
            finished: i
          });else if (U(this._config.chunk) && !e) {
            if (this._config.chunk(r, this._handle), this._handle.paused() || this._handle.aborted()) return void (this._halted = true);
            this._completeResults = r = void 0;
          }
          return this._config.step || this._config.chunk || (this._completeResults.data = this._completeResults.data.concat(r.data), this._completeResults.errors = this._completeResults.errors.concat(r.errors), this._completeResults.meta = r.meta), this._completed || !i || !U(this._config.complete) || r && r.meta.aborted || (this._config.complete(this._completeResults, this._input), this._completed = true), i || r && r.meta.paused || this._nextChunk(), r;
        }
        this._halted = true;
      }, this._sendError = function (e) {
        U(this._config.error) ? this._config.error(e) : a && this._config.error && n.postMessage({
          workerId: v.WORKER_ID,
          error: e,
          finished: false
        });
      };
    }
    function f(e) {
      var r;
      (e = e || {}).chunkSize || (e.chunkSize = v.RemoteChunkSize), u.call(this, e), this._nextChunk = s ? function () {
        this._readChunk(), this._chunkLoaded();
      } : function () {
        this._readChunk();
      }, this.stream = function (e) {
        this._input = e, this._nextChunk();
      }, this._readChunk = function () {
        if (this._finished) this._chunkLoaded();else {
          if (r = new XMLHttpRequest(), this._config.withCredentials && (r.withCredentials = this._config.withCredentials), s || (r.onload = y(this._chunkLoaded, this), r.onerror = y(this._chunkError, this)), r.open(this._config.downloadRequestBody ? "POST" : "GET", this._input, !s), this._config.downloadRequestHeaders) {
            var e,
              t = this._config.downloadRequestHeaders;
            for (e in t) r.setRequestHeader(e, t[e]);
          }
          var i;
          this._config.chunkSize && (i = this._start + this._config.chunkSize - 1, r.setRequestHeader("Range", "bytes=" + this._start + "-" + i));
          try {
            r.send(this._config.downloadRequestBody);
          } catch (e) {
            this._chunkError(e.message);
          }
          s && 0 === r.status && this._chunkError();
        }
      }, this._chunkLoaded = function () {
        4 === r.readyState && (r.status < 200 || 400 <= r.status ? this._chunkError() : (this._start += this._config.chunkSize || r.responseText.length, this._finished = !this._config.chunkSize || this._start >= (e => null !== (e = e.getResponseHeader("Content-Range")) ? parseInt(e.substring(e.lastIndexOf("/") + 1)) : -1)(r), this.parseChunk(r.responseText)));
      }, this._chunkError = function (e) {
        e = r.statusText || e;
        this._sendError(new Error(e));
      };
    }
    function l(e) {
      (e = e || {}).chunkSize || (e.chunkSize = v.LocalChunkSize), u.call(this, e);
      var i,
        r,
        n = "undefined" != typeof FileReader;
      this.stream = function (e) {
        this._input = e, r = e.slice || e.webkitSlice || e.mozSlice, n ? ((i = new FileReader()).onload = y(this._chunkLoaded, this), i.onerror = y(this._chunkError, this)) : i = new FileReaderSync(), this._nextChunk();
      }, this._nextChunk = function () {
        this._finished || this._config.preview && !(this._rowCount < this._config.preview) || this._readChunk();
      }, this._readChunk = function () {
        var e = this._input,
          t = (this._config.chunkSize && (t = Math.min(this._start + this._config.chunkSize, this._input.size), e = r.call(e, this._start, t)), i.readAsText(e, this._config.encoding));
        n || this._chunkLoaded({
          target: {
            result: t
          }
        });
      }, this._chunkLoaded = function (e) {
        this._start += this._config.chunkSize, this._finished = !this._config.chunkSize || this._start >= this._input.size, this.parseChunk(e.target.result);
      }, this._chunkError = function () {
        this._sendError(i.error);
      };
    }
    function c(e) {
      var i;
      u.call(this, e = e || {}), this.stream = function (e) {
        return i = e, this._nextChunk();
      }, this._nextChunk = function () {
        var e, t;
        if (!this._finished) return e = this._config.chunkSize, i = e ? (t = i.substring(0, e), i.substring(e)) : (t = i, ""), this._finished = !i, this.parseChunk(t);
      };
    }
    function p(e) {
      u.call(this, e = e || {});
      var t = [],
        i = true,
        r = false;
      this.pause = function () {
        u.prototype.pause.apply(this, arguments), this._input.pause();
      }, this.resume = function () {
        u.prototype.resume.apply(this, arguments), this._input.resume();
      }, this.stream = function (e) {
        this._input = e, this._input.on("data", this._streamData), this._input.on("end", this._streamEnd), this._input.on("error", this._streamError);
      }, this._checkIsFinished = function () {
        r && 1 === t.length && (this._finished = true);
      }, this._nextChunk = function () {
        this._checkIsFinished(), t.length ? this.parseChunk(t.shift()) : i = true;
      }, this._streamData = y(function (e) {
        try {
          t.push("string" == typeof e ? e : e.toString(this._config.encoding)), i && (i = !1, this._checkIsFinished(), this.parseChunk(t.shift()));
        } catch (e) {
          this._streamError(e);
        }
      }, this), this._streamError = y(function (e) {
        this._streamCleanUp(), this._sendError(e);
      }, this), this._streamEnd = y(function () {
        this._streamCleanUp(), r = true, this._streamData("");
      }, this), this._streamCleanUp = y(function () {
        this._input.removeListener("data", this._streamData), this._input.removeListener("end", this._streamEnd), this._input.removeListener("error", this._streamError);
      }, this);
    }
    function i(m) {
      var n,
        s,
        a,
        t,
        o = Math.pow(2, 53),
        h = -o,
        u = /^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,
        d = /^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,
        i = this,
        r = 0,
        f = 0,
        l = false,
        e = false,
        c = [],
        p = {
          data: [],
          errors: [],
          meta: {}
        };
      function y(e) {
        return "greedy" === m.skipEmptyLines ? "" === e.join("").trim() : 1 === e.length && 0 === e[0].length;
      }
      function g() {
        if (p && a && (k("Delimiter", "UndetectableDelimiter", "Unable to auto-detect delimiting character; defaulted to '" + v.DefaultDelimiter + "'"), a = false), m.skipEmptyLines && (p.data = p.data.filter(function (e) {
          return !y(e);
        })), _()) {
          if (p) if (Array.isArray(p.data[0])) {
            for (var e = 0; _() && e < p.data.length; e++) p.data[e].forEach(t);
            p.data.splice(0, 1);
          } else p.data.forEach(t);
          function t(e, t) {
            U(m.transformHeader) && (e = m.transformHeader(e, t)), c.push(e);
          }
        }
        function i(e, t) {
          for (var i = m.header ? {} : [], r = 0; r < e.length; r++) {
            var n = r,
              s = e[r],
              s = ((e, t) => (e => (m.dynamicTypingFunction && void 0 === m.dynamicTyping[e] && (m.dynamicTyping[e] = m.dynamicTypingFunction(e)), true === (m.dynamicTyping[e] || m.dynamicTyping)))(e) ? "true" === t || "TRUE" === t || "false" !== t && "FALSE" !== t && ((e => {
                if (u.test(e)) {
                  e = parseFloat(e);
                  if (h < e && e < o) return 1;
                }
              })(t) ? parseFloat(t) : d.test(t) ? new Date(t) : "" === t ? null : t) : t)(n = m.header ? r >= c.length ? "__parsed_extra" : c[r] : n, s = m.transform ? m.transform(s, n) : s);
            "__parsed_extra" === n ? (i[n] = i[n] || [], i[n].push(s)) : i[n] = s;
          }
          return m.header && (r > c.length ? k("FieldMismatch", "TooManyFields", "Too many fields: expected " + c.length + " fields but parsed " + r, f + t) : r < c.length && k("FieldMismatch", "TooFewFields", "Too few fields: expected " + c.length + " fields but parsed " + r, f + t)), i;
        }
        var r;
        p && (m.header || m.dynamicTyping || m.transform) && (r = 1, !p.data.length || Array.isArray(p.data[0]) ? (p.data = p.data.map(i), r = p.data.length) : p.data = i(p.data, 0), m.header && p.meta && (p.meta.fields = c), f += r);
      }
      function _() {
        return m.header && 0 === c.length;
      }
      function k(e, t, i, r) {
        e = {
          type: e,
          code: t,
          message: i
        };
        void 0 !== r && (e.row = r), p.errors.push(e);
      }
      U(m.step) && (t = m.step, m.step = function (e) {
        p = e, _() ? g() : (g(), 0 !== p.data.length && (r += e.data.length, m.preview && r > m.preview ? s.abort() : (p.data = p.data[0], t(p, i))));
      }), this.parse = function (e, t, i) {
        var r = m.quoteChar || '"',
          r = (m.newline || (m.newline = this.guessLineEndings(e, r)), a = false, m.delimiter ? U(m.delimiter) && (m.delimiter = m.delimiter(e), p.meta.delimiter = m.delimiter) : ((r = ((e, t, i, r, n) => {
            var s, a, o, h;
            n = n || [",", "\t", "|", ";", v.RECORD_SEP, v.UNIT_SEP];
            for (var u = 0; u < n.length; u++) {
              for (var d, f = n[u], l = 0, c = 0, p = 0, g = (o = void 0, new E({
                  comments: r,
                  delimiter: f,
                  newline: t,
                  preview: 10
                }).parse(e)), _ = 0; _ < g.data.length; _++) i && y(g.data[_]) ? p++ : (d = g.data[_].length, c += d, void 0 === o ? o = d : 0 < d && (l += Math.abs(d - o), o = d));
              0 < g.data.length && (c /= g.data.length - p), (void 0 === a || l <= a) && (void 0 === h || h < c) && 1.99 < c && (a = l, s = f, h = c);
            }
            return {
              successful: !!(m.delimiter = s),
              bestDelimiter: s
            };
          })(e, m.newline, m.skipEmptyLines, m.comments, m.delimitersToGuess)).successful ? m.delimiter = r.bestDelimiter : (a = true, m.delimiter = v.DefaultDelimiter), p.meta.delimiter = m.delimiter), b(m));
        return m.preview && m.header && r.preview++, n = e, s = new E(r), p = s.parse(n, t, i), g(), l ? {
          meta: {
            paused: true
          }
        } : p || {
          meta: {
            paused: false
          }
        };
      }, this.paused = function () {
        return l;
      }, this.pause = function () {
        l = true, s.abort(), n = U(m.chunk) ? "" : n.substring(s.getCharIndex());
      }, this.resume = function () {
        i.streamer._halted ? (l = false, i.streamer.parseChunk(n, true)) : setTimeout(i.resume, 3);
      }, this.aborted = function () {
        return e;
      }, this.abort = function () {
        e = true, s.abort(), p.meta.aborted = true, U(m.complete) && m.complete(p), n = "";
      }, this.guessLineEndings = function (e, t) {
        e = e.substring(0, 1048576);
        var t = new RegExp(P(t) + "([^]*?)" + P(t), "gm"),
          i = (e = e.replace(t, "")).split("\r"),
          t = e.split("\n"),
          e = 1 < t.length && t[0].length < i[0].length;
        if (1 === i.length || e) return "\n";
        for (var r = 0, n = 0; n < i.length; n++) "\n" === i[n][0] && r++;
        return r >= i.length / 2 ? "\r\n" : "\r";
      };
    }
    function P(e) {
      return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
    }
    function E(C) {
      var S = (C = C || {}).delimiter,
        O = C.newline,
        x = C.comments,
        I = C.step,
        A = C.preview,
        T = C.fastMode,
        D = null,
        L = false,
        F = null == C.quoteChar ? '"' : C.quoteChar,
        j = F;
      if (void 0 !== C.escapeChar && (j = C.escapeChar), ("string" != typeof S || -1 < v.BAD_DELIMITERS.indexOf(S)) && (S = ","), x === S) throw new Error("Comment character same as delimiter");
      true === x ? x = "#" : ("string" != typeof x || -1 < v.BAD_DELIMITERS.indexOf(x)) && (x = false), "\n" !== O && "\r" !== O && "\r\n" !== O && (O = "\n");
      var z = 0,
        M = false;
      this.parse = function (i, t, r) {
        if ("string" != typeof i) throw new Error("Input must be a string");
        var n = i.length,
          e = S.length,
          s = O.length,
          a = x.length,
          o = U(I),
          h = [],
          u = [],
          d = [],
          f = z = 0;
        if (!i) return w();
        if (T || false !== T && -1 === i.indexOf(F)) {
          for (var l = i.split(O), c = 0; c < l.length; c++) {
            if (d = l[c], z += d.length, c !== l.length - 1) z += O.length;else if (r) return w();
            if (!x || d.substring(0, a) !== x) {
              if (o) {
                if (h = [], k(d.split(S)), R(), M) return w();
              } else k(d.split(S));
              if (A && A <= c) return h = h.slice(0, A), w(true);
            }
          }
          return w();
        }
        for (var p = i.indexOf(S, z), g = i.indexOf(O, z), _ = new RegExp(P(j) + P(F), "g"), m = i.indexOf(F, z);;) if (i[z] === F) for (m = z, z++;;) {
          if (-1 === (m = i.indexOf(F, m + 1))) return r || u.push({
            type: "Quotes",
            code: "MissingQuotes",
            message: "Quoted field unterminated",
            row: h.length,
            index: z
          }), E();
          if (m === n - 1) return E(i.substring(z, m).replace(_, F));
          if (F === j && i[m + 1] === j) m++;else if (F === j || 0 === m || i[m - 1] !== j) {
            -1 !== p && p < m + 1 && (p = i.indexOf(S, m + 1));
            var y = v(-1 === (g = -1 !== g && g < m + 1 ? i.indexOf(O, m + 1) : g) ? p : Math.min(p, g));
            if (i.substr(m + 1 + y, e) === S) {
              d.push(i.substring(z, m).replace(_, F)), i[z = m + 1 + y + e] !== F && (m = i.indexOf(F, z)), p = i.indexOf(S, z), g = i.indexOf(O, z);
              break;
            }
            y = v(g);
            if (i.substring(m + 1 + y, m + 1 + y + s) === O) {
              if (d.push(i.substring(z, m).replace(_, F)), b(m + 1 + y + s), p = i.indexOf(S, z), m = i.indexOf(F, z), o && (R(), M)) return w();
              if (A && h.length >= A) return w(true);
              break;
            }
            u.push({
              type: "Quotes",
              code: "InvalidQuotes",
              message: "Trailing quote on quoted field is malformed",
              row: h.length,
              index: z
            }), m++;
          }
        } else if (x && 0 === d.length && i.substring(z, z + a) === x) {
          if (-1 === g) return w();
          z = g + s, g = i.indexOf(O, z), p = i.indexOf(S, z);
        } else if (-1 !== p && (p < g || -1 === g)) d.push(i.substring(z, p)), z = p + e, p = i.indexOf(S, z);else {
          if (-1 === g) break;
          if (d.push(i.substring(z, g)), b(g + s), o && (R(), M)) return w();
          if (A && h.length >= A) return w(true);
        }
        return E();
        function k(e) {
          h.push(e), f = z;
        }
        function v(e) {
          var t = 0;
          return t = -1 !== e && (e = i.substring(m + 1, e)) && "" === e.trim() ? e.length : t;
        }
        function E(e) {
          return r || (void 0 === e && (e = i.substring(z)), d.push(e), z = n, k(d), o && R()), w();
        }
        function b(e) {
          z = e, k(d), d = [], g = i.indexOf(O, z);
        }
        function w(e) {
          if (C.header && !t && h.length && !L) {
            var s = h[0],
              a = Object.create(null),
              o = new Set(s);
            let n = false;
            for (let r = 0; r < s.length; r++) {
              let i = s[r];
              if (a[i = U(C.transformHeader) ? C.transformHeader(i, r) : i]) {
                let e,
                  t = a[i];
                for (; e = i + "_" + t, t++, o.has(e););
                o.add(e), s[r] = e, a[i]++, n = true, (D = null === D ? {} : D)[e] = i;
              } else a[i] = 1, s[r] = i;
              o.add(i);
            }
            n && console.warn("Duplicate headers found and renamed."), L = true;
          }
          return {
            data: h,
            errors: u,
            meta: {
              delimiter: S,
              linebreak: O,
              aborted: M,
              truncated: !!e,
              cursor: f + (t || 0),
              renamedHeaders: D
            }
          };
        }
        function R() {
          I(w()), h = [], u = [];
        }
      }, this.abort = function () {
        M = true;
      }, this.getCharIndex = function () {
        return z;
      };
    }
    function g(e) {
      var t = e.data,
        i = o[t.workerId],
        r = false;
      if (t.error) i.userError(t.error, t.file);else if (t.results && t.results.data) {
        var n = {
          abort: function () {
            r = true, _(t.workerId, {
              data: [],
              errors: [],
              meta: {
                aborted: true
              }
            });
          },
          pause: m,
          resume: m
        };
        if (U(i.userStep)) {
          for (var s = 0; s < t.results.data.length && (i.userStep({
            data: t.results.data[s],
            errors: t.results.errors,
            meta: t.results.meta
          }, n), !r); s++);
          delete t.results;
        } else U(i.userChunk) && (i.userChunk(t.results, n, t.file), delete t.results);
      }
      t.finished && !r && _(t.workerId, t.results);
    }
    function _(e, t) {
      var i = o[e];
      U(i.userComplete) && i.userComplete(t), i.terminate(), delete o[e];
    }
    function m() {
      throw new Error("Not implemented.");
    }
    function b(e) {
      if ("object" != typeof e || null === e) return e;
      var t,
        i = Array.isArray(e) ? [] : {};
      for (t in e) i[t] = b(e[t]);
      return i;
    }
    function y(e, t) {
      return function () {
        e.apply(t, arguments);
      };
    }
    function U(e) {
      return "function" == typeof e;
    }
    return v.parse = function (e, t) {
      var i = (t = t || {}).dynamicTyping || false;
      U(i) && (t.dynamicTypingFunction = i, i = {});
      if (t.dynamicTyping = i, t.transform = !!U(t.transform) && t.transform, !t.worker || !v.WORKERS_SUPPORTED) return i = null, v.NODE_STREAM_INPUT, "string" == typeof e ? (e = (e => 65279 !== e.charCodeAt(0) ? e : e.slice(1))(e), i = new (t.download ? f : c)(t)) : true === e.readable && U(e.read) && U(e.on) ? i = new p(t) : (n.File && e instanceof File || e instanceof Object) && (i = new l(t)), i.stream(e);
      (i = (() => {
        var e;
        return !!v.WORKERS_SUPPORTED && (e = (() => {
          var e = n.URL || n.webkitURL || null,
            t = r.toString();
          return v.BLOB_URL || (v.BLOB_URL = e.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ", "(", t, ")();"], {
            type: "text/javascript"
          })));
        })(), (e = new n.Worker(e)).onmessage = g, e.id = h++, o[e.id] = e);
      })()).userStep = t.step, i.userChunk = t.chunk, i.userComplete = t.complete, i.userError = t.error, t.step = U(t.step), t.chunk = U(t.chunk), t.complete = U(t.complete), t.error = U(t.error), delete t.worker, i.postMessage({
        input: e,
        config: t,
        workerId: i.id
      });
    }, v.unparse = function (e, t) {
      var n = false,
        _ = true,
        m = ",",
        y = "\r\n",
        s = '"',
        a = s + s,
        i = false,
        r = null,
        o = false,
        h = ((() => {
          if ("object" == typeof t) {
            if ("string" != typeof t.delimiter || v.BAD_DELIMITERS.filter(function (e) {
              return -1 !== t.delimiter.indexOf(e);
            }).length || (m = t.delimiter), "boolean" != typeof t.quotes && "function" != typeof t.quotes && !Array.isArray(t.quotes) || (n = t.quotes), "boolean" != typeof t.skipEmptyLines && "string" != typeof t.skipEmptyLines || (i = t.skipEmptyLines), "string" == typeof t.newline && (y = t.newline), "string" == typeof t.quoteChar && (s = t.quoteChar), "boolean" == typeof t.header && (_ = t.header), Array.isArray(t.columns)) {
              if (0 === t.columns.length) throw new Error("Option columns is empty");
              r = t.columns;
            }
            void 0 !== t.escapeChar && (a = t.escapeChar + s), t.escapeFormulae instanceof RegExp ? o = t.escapeFormulae : "boolean" == typeof t.escapeFormulae && t.escapeFormulae && (o = /^[=+\-@\t\r].*$/);
          }
        })(), new RegExp(P(s), "g"));
      "string" == typeof e && (e = JSON.parse(e));
      if (Array.isArray(e)) {
        if (!e.length || Array.isArray(e[0])) return u(null, e, i);
        if ("object" == typeof e[0]) return u(r || Object.keys(e[0]), e, i);
      } else if ("object" == typeof e) return "string" == typeof e.data && (e.data = JSON.parse(e.data)), Array.isArray(e.data) && (e.fields || (e.fields = e.meta && e.meta.fields || r), e.fields || (e.fields = Array.isArray(e.data[0]) ? e.fields : "object" == typeof e.data[0] ? Object.keys(e.data[0]) : []), Array.isArray(e.data[0]) || "object" == typeof e.data[0] || (e.data = [e.data])), u(e.fields || [], e.data || [], i);
      throw new Error("Unable to serialize unrecognized input");
      function u(e, t, i) {
        var r = "",
          n = ("string" == typeof e && (e = JSON.parse(e)), "string" == typeof t && (t = JSON.parse(t)), Array.isArray(e) && 0 < e.length),
          s = !Array.isArray(t[0]);
        if (n && _) {
          for (var a = 0; a < e.length; a++) 0 < a && (r += m), r += k(e[a], a);
          0 < t.length && (r += y);
        }
        for (var o = 0; o < t.length; o++) {
          var h = (n ? e : t[o]).length,
            u = false,
            d = n ? 0 === Object.keys(t[o]).length : 0 === t[o].length;
          if (i && !n && (u = "greedy" === i ? "" === t[o].join("").trim() : 1 === t[o].length && 0 === t[o][0].length), "greedy" === i && n) {
            for (var f = [], l = 0; l < h; l++) {
              var c = s ? e[l] : l;
              f.push(t[o][c]);
            }
            u = "" === f.join("").trim();
          }
          if (!u) {
            for (var p = 0; p < h; p++) {
              0 < p && !d && (r += m);
              var g = n && s ? e[p] : p;
              r += k(t[o][g], p);
            }
            o < t.length - 1 && (!i || 0 < h && !d) && (r += y);
          }
        }
        return r;
      }
      function k(e, t) {
        var i, r;
        return null == e ? "" : e.constructor === Date ? JSON.stringify(e).slice(1, 25) : (r = false, o && "string" == typeof e && o.test(e) && (e = "'" + e, r = true), i = e.toString().replace(h, a), (r = r || true === n || "function" == typeof n && n(e, t) || Array.isArray(n) && n[t] || ((e, t) => {
          for (var i = 0; i < t.length; i++) if (-1 < e.indexOf(t[i])) return true;
          return false;
        })(i, v.BAD_DELIMITERS) || -1 < i.indexOf(m) || " " === i.charAt(0) || " " === i.charAt(i.length - 1)) ? s + i + s : i);
      }
    }, v.RECORD_SEP = String.fromCharCode(30), v.UNIT_SEP = String.fromCharCode(31), v.BYTE_ORDER_MARK = "\ufeff", v.BAD_DELIMITERS = ["\r", "\n", '"', v.BYTE_ORDER_MARK], v.WORKERS_SUPPORTED = !s && !!n.Worker, v.NODE_STREAM_INPUT = 1, v.LocalChunkSize = 10485760, v.RemoteChunkSize = 5242880, v.DefaultDelimiter = ",", v.Parser = E, v.ParserHandle = i, v.NetworkStreamer = f, v.FileStreamer = l, v.StringStreamer = c, v.ReadableStreamStreamer = p, n.jQuery && ((d = n.jQuery).fn.parse = function (o) {
      var i = o.config || {},
        h = [];
      return this.each(function (e) {
        if (!("INPUT" === d(this).prop("tagName").toUpperCase() && "file" === d(this).attr("type").toLowerCase() && n.FileReader) || !this.files || 0 === this.files.length) return true;
        for (var t = 0; t < this.files.length; t++) h.push({
          file: this.files[t],
          inputElem: this,
          instanceConfig: d.extend({}, i)
        });
      }), e(), this;
      function e() {
        if (0 === h.length) U(o.complete) && o.complete();else {
          var e,
            t,
            i,
            r,
            n = h[0];
          if (U(o.before)) {
            var s = o.before(n.file, n.inputElem);
            if ("object" == typeof s) {
              if ("abort" === s.action) return e = "AbortError", t = n.file, i = n.inputElem, r = s.reason, void (U(o.error) && o.error({
                name: e
              }, t, i, r));
              if ("skip" === s.action) return void u();
              "object" == typeof s.config && (n.instanceConfig = d.extend(n.instanceConfig, s.config));
            } else if ("skip" === s) return void u();
          }
          var a = n.instanceConfig.complete;
          n.instanceConfig.complete = function (e) {
            U(a) && a(e, n.file, n.inputElem), u();
          }, v.parse(n.file, n.instanceConfig);
        }
      }
      function u() {
        h.splice(0, 1), e();
      }
    }), a && (n.onmessage = function (e) {
      e = e.data;
      void 0 === v.WORKER_ID && e && (v.WORKER_ID = e.workerId);
      "string" == typeof e.input ? n.postMessage({
        workerId: v.WORKER_ID,
        results: v.parse(e.input, e.config),
        finished: true
      }) : (n.File && e.input instanceof File || e.input instanceof Object) && (e = v.parse(e.input, e.config)) && n.postMessage({
        workerId: v.WORKER_ID,
        results: e,
        finished: true
      });
    }), (f.prototype = Object.create(u.prototype)).constructor = f, (l.prototype = Object.create(u.prototype)).constructor = l, (c.prototype = Object.create(c.prototype)).constructor = c, (p.prototype = Object.create(u.prototype)).constructor = p, v;
  });
})(papaparse_min$1);
var papaparse_minExports = papaparse_min$1.exports;
var Papa = /*@__PURE__*/getDefaultExportFromCjs(papaparse_minExports);

function getMoleculeCreators(OCL) {
  const fields = new Map([['oclid', OCL.Molecule.fromIDCode], ['idcode', OCL.Molecule.fromIDCode], ['smiles', OCL.Molecule.fromSmiles], ['molfile', OCL.Molecule.fromMolfile], ['smarts', smarts => {
    const smilesParser = new OCL.SmilesParser({
      smartsMode: 'smarts'
    });
    return smilesParser.parseMolecule(smarts);
  }]]);
  return fields;
}

const defaultCSVOptions = {
  header: true,
  dynamicTyping: true,
  skipEmptyLines: true
};
async function appendCSV(moleculesDB, csv, options = {}) {
  const {
    onStep
  } = options;
  csv = ensureString(csv);
  const moleculeCreators = getMoleculeCreators(moleculesDB.OCL);
  if (typeof csv !== 'string') {
    throw new TypeError('csv must be a string');
  }
  options = {
    ...defaultCSVOptions,
    ...options
  };
  const parsed = Papa.parse(csv, options);
  const fields = parsed.meta.fields;
  const stats = new Array(fields.length);
  const firstElement = parsed.data[0];
  let moleculeCreator, moleculeField;
  for (let i = 0; i < fields.length; i++) {
    stats[i] = {
      label: fields[i],
      isNumeric: typeof firstElement[fields[i]] === 'number'
    };
    const lowerField = fields[i].toLowerCase();
    if (moleculeCreators.has(lowerField)) {
      moleculeCreator = moleculeCreators.get(lowerField);
      moleculeField = fields[i];
    }
  }
  if (!moleculeCreator) {
    throw new Error('this document does not contain any molecule field');
  }
  for (let i = 0; i < parsed.data.length; i++) {
    moleculesDB.pushEntry(moleculeCreator(parsed.data[i][moleculeField]), parsed.data[i]);
    if (onStep) {
      // eslint-disable-next-line no-await-in-loop
      await onStep(i + 1, parsed.data.length);
    }
  }
}

function appendColor(moleculesDB, options = {}) {
  const {
    dataLabel,
    propertyLabel,
    minValue,
    maxValue,
    minHue = 0,
    maxHue = 360,
    saturation = 65,
    lightness = 65,
    colorLabel = 'color'
  } = options;
  const db = moleculesDB.getDB();
  let values;
  if (dataLabel) {
    values = db.flatMap(result => result.data.map(datum => ({
      value: datum[dataLabel],
      data: datum
    })));
  } else if (propertyLabel) {
    values = db.flatMap(result => result.data.map(datum => ({
      value: result.properties[propertyLabel],
      data: datum
    })));
  } else {
    values = db.flatMap(result => result.data.map(datum => ({
      value: undefined,
      data: datum
    })));
  }
  if (minValue !== undefined) {
    for (const value of values) {
      if (value.value !== undefined && value.value < minValue) {
        value.value = minValue;
      }
    }
  }
  if (maxValue !== undefined) {
    for (const value of values) {
      if (value.value !== undefined && value.value > maxValue) {
        value.value = maxValue;
      }
    }
  }
  const definedValues = values.filter(value => value.value !== undefined);
  const min = Math.min(...definedValues.map(value => value.value));
  const max = Math.max(...definedValues.map(value => value.value));
  for (const value of values) {
    if (value.value !== undefined) {
      value.data[colorLabel] = `hsl(${Math.floor((value.value - min) / (max - min) * (maxHue - minHue) + minHue)},${saturation}%,${lightness}%)`;
    } else {
      value.data.color = 'black';
    }
  }
}

var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", {
  value,
  configurable: true
});

// index.ts
var isObject = /* @__PURE__ */__name(v => v !== null && typeof v === "object", "isObject");
var join = /* @__PURE__ */__name((segs, joinChar, options) => {
  if (typeof options.join === "function") {
    return options.join(segs);
  }
  return segs[0] + joinChar + segs[1];
}, "join");
var split = /* @__PURE__ */__name((path, splitChar, options) => {
  if (typeof options.split === "function") {
    return options.split(path);
  }
  return path.split(splitChar);
}, "split");
var isValid = /* @__PURE__ */__name((key, target = {}, options) => {
  if (typeof options?.isValid === "function") {
    return options.isValid(key, target);
  }
  return true;
}, "isValid");
var isValidObject = /* @__PURE__ */__name(v => {
  return isObject(v) || typeof v === "function";
}, "isValidObject");
var getValue = /* @__PURE__ */__name((target, path, options = {}) => {
  if (!isObject(options)) {
    options = {
      default: options
    };
  }
  if (!isValidObject(target)) {
    return typeof options.default !== "undefined" ? options.default : target;
  }
  if (typeof path === "number") {
    path = String(path);
  }
  const pathIsArray = Array.isArray(path);
  const pathIsString = typeof path === "string";
  const splitChar = options.separator || ".";
  const joinChar = options.joinChar || (typeof splitChar === "string" ? splitChar : ".");
  if (!pathIsString && !pathIsArray) {
    return target;
  }
  if (target[path] !== void 0) {
    return isValid(path, target, options) ? target[path] : options.default;
  }
  const segs = pathIsArray ? path : split(path, splitChar, options);
  const len = segs.length;
  let idx = 0;
  do {
    let prop = segs[idx];
    if (typeof prop !== "string") {
      prop = String(prop);
    }
    while (prop && prop.slice(-1) === "\\") {
      prop = join([prop.slice(0, -1), segs[++idx] || ""], joinChar, options);
    }
    if (target[prop] !== void 0) {
      if (!isValid(prop, target, options)) {
        return options.default;
      }
      target = target[prop];
    } else {
      let hasProp = false;
      let n = idx + 1;
      while (n < len) {
        prop = join([prop, segs[n++]], joinChar, options);
        if (hasProp = target[prop] !== void 0) {
          if (!isValid(prop, target, options)) {
            return options.default;
          }
          target = target[prop];
          idx = n - 1;
          break;
        }
      }
      if (!hasProp) {
        return options.default;
      }
    }
  } while (++idx < len && isValidObject(target));
  if (idx === len) {
    return target;
  }
  return options.default;
}, "getValue");
var index_default = getValue;
/*!
 * get-value <https://github.com/jonschlinkert/get-value>
 *
 * Copyright (c) 2014-present, Jon Schlinkert.
 * Released under the MIT License.
 */

/**
 * Append an array of entries to the current database. An entry is an object that by default should contain a 'ocl' property containing idCode and optionally index and coordinates
 * @param {*} moleculesDB
 * @param {object[]} entries
 * @param {object} [options={}]
 * @param {string} [options.idCodePath='ocl.idCode']
 * @param {string} [options.indexPath='ocl.index']
 * @param {string} [options.coordinatesPath='ocl.coordinates']
 * @param {string} [options.mwPath='mw']
 * @param {string} [options.smilesPath]
 * @param {string} [options.molfilePath]
 * @param {Function} [options.onStep] - call back to execute after each molecule
 * @returns
 */
async function appendEntries(moleculesDB, entries, options = {}) {
  const {
    onStep,
    idCodePath = 'ocl.idCode',
    indexPath = 'ocl.index',
    coordinatesPath = 'ocl.coordinates',
    mwPath = 'mw',
    smilesPath,
    molfilePath
  } = options;
  const Molecule = moleculesDB.OCL.Molecule;
  for (let i = 0; i < entries.length; i++) {
    let idCode;
    const entry = entries[i];
    let molecule;
    if (smilesPath) {
      molecule = Molecule.fromSmiles(index_default(entry, smilesPath));
    }
    if (molfilePath && !molecule) {
      molecule = Molecule.fromMolfile(index_default(entry, molfilePath));
    }
    if (!molecule) {
      idCode = index_default(entry, idCodePath);
      if (idCode) {
        const coordinates = index_default(entry, coordinatesPath);
        molecule = Molecule.fromIDCode(idCode, coordinates || false);
      }
    }
    const index = index_default(entry, indexPath);
    const mw = index_default(entry, mwPath);
    if (onStep) {
      // eslint-disable-next-line no-await-in-loop
      await onStep(i + 1, entries.length);
    }
    if (!moleculesDB.keepEmptyMolecules && (!molecule || molecule.getAllAtoms() === 0)) {
      continue;
    } else if (!molecule) {
      molecule = new moleculesDB.OCL.Molecule(0, 0);
    }
    if (molecule) {
      moleculesDB.pushEntry(molecule, entry, {
        index,
        mw
      });
    }
  }
}

/**
 * Get the [start, end] boundaries of each SDF entry in a string.
 *
 * Uses `indexOf` for fast splitting without regex overhead.
 * @param string - The full SDF string.
 * @param substring - The delimiter to search for (e.g. `'\n$$$$'`).
 * @param eol - The end-of-line character used to skip past the delimiter line.
 * @returns An array of `[start, end]` index pairs, one per SDF entry.
 */
function getEntriesBoundaries(string, substring, eol) {
  const res = [];
  let previous = 0;
  let next = 0;
  while (next !== -1) {
    next = string.indexOf(substring, previous);
    if (next !== -1) {
      res.push([previous, next]);
      const nextMatch = string.indexOf(eol, next + substring.length);
      if (nextMatch === -1) {
        next = -1;
      } else {
        previous = nextMatch + eol.length;
        next = previous;
      }
    } else {
      res.push([previous, string.length]);
    }
  }
  return res;
}

/**
 * Parse a single SDF entry string into a molecule object.
 * @param sdfPart - A single SDF record (everything before the `$$$$` line).
 * @param labels - Shared label tracking object, mutated in place.
 * @param currentLabels - Array to collect label names found in this entry.
 * @param options - Resolved parse options.
 * @returns The molecule object, or `undefined` if the entry is too short.
 */
function getMolecule(sdfPart, labels, currentLabels, options) {
  const {
    eol,
    dynamicTyping,
    include,
    exclude,
    modifiers,
    forEach
  } = options;
  const parts = sdfPart.split(`${eol}>`);
  if (parts.length === 0 || parts[0].length <= 5) return undefined;
  const molecule = {
    molfile: parts[0] + eol
  };
  for (let j = 1; j < parts.length; j++) {
    const lines = parts[j].split(eol);
    const from = lines[0].indexOf('<');
    const to = lines[0].indexOf('>');
    const label = lines[0].slice(from + 1, to);
    currentLabels.push(label);
    if (!labels[label]) {
      labels[label] = {
        counter: 0,
        isNumeric: dynamicTyping,
        keep: false
      };
      if (!exclude?.includes(label) && (!include || include.includes(label))) {
        labels[label].keep = true;
        if (modifiers[label]) labels[label].modifier = modifiers[label];
        if (forEach[label]) labels[label].forEach = forEach[label];
      }
    }
    if (labels[label].keep) {
      for (let k = 1; k < lines.length - 1; k++) {
        if (molecule[label]) {
          molecule[label] = `${molecule[label]}${eol}${lines[k]}`;
        } else {
          molecule[label] = lines[k];
        }
      }
      if (labels[label].modifier) {
        const modifiedValue = labels[label].modifier(molecule[label]);
        if (modifiedValue === undefined || modifiedValue === null) {
          // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
          delete molecule[label];
        } else {
          molecule[label] = modifiedValue;
        }
      }
      if (labels[label].isNumeric && (!Number.isFinite(+molecule[label]) || molecule[label].match(/^0[0-9]/))) {
        labels[label].isNumeric = false;
      }
    }
  }
  return molecule;
}

/**
 * Synchronously parse an SDF file into an array of molecule objects.
 * @param sdf - The SDF content as a string, `ArrayBuffer`, or `ArrayBufferView`.
 * @param options - Parsing options.
 * @returns A {@link ParseResult} containing molecules and statistics.
 * @example
 * ```ts
 * import { readFileSync } from 'node:fs';
 * import { parse } from 'sdf-parser';
 *
 * const sdf = readFileSync('compounds.sdf', 'utf8');
 * const { molecules, statistics } = parse(sdf);
 * ```
 */
function parse(sdf, options = {}) {
  options = {
    ...options
  };
  if (options.modifiers === undefined) options.modifiers = {};
  if (options.forEach === undefined) options.forEach = {};
  if (options.dynamicTyping === undefined) options.dynamicTyping = true;
  // ensureString converts ArrayBuffer/ArrayBufferView to string
  const sdfString = ensureString(sdf);
  if (typeof sdfString !== 'string') {
    throw new TypeError('Parameter "sdf" must be a string');
  }
  if (options.eol === undefined) {
    options.eol = '\n';
    if (options.mixedEOL) ; else {
      // Note: new Set(string) creates a Set of individual characters.
      // '\r\n' is two characters so header.has('\r\n') would always be false.
      // This preserves the original detection behaviour.
      const header = new Set(sdfString.slice(0, 1000));
      if (header.has('\r\n')) {
        options.eol = '\r\n';
      } else if (header.has('\r')) {
        options.eol = '\r';
      }
    }
  }
  let workingSdf = sdfString;
  if (options.mixedEOL) {
    workingSdf = workingSdf.replaceAll('\r\n', '\n');
    workingSdf = workingSdf.replaceAll('\r', '\n');
  }
  const eol = options.eol;
  const modifiers = options.modifiers;
  const forEachMap = options.forEach;
  const dynamicTyping = options.dynamicTyping;
  const entriesBoundaries = getEntriesBoundaries(workingSdf, `${eol}$$$$`, eol);
  const molecules = [];
  const labels = {};
  const start = Date.now();
  for (const boundary of entriesBoundaries) {
    const sdfPart = workingSdf.slice(...boundary);
    if (sdfPart.length < 40) continue;
    const currentLabels = [];
    const molecule = getMolecule(sdfPart, labels, currentLabels, {
      eol,
      dynamicTyping,
      modifiers,
      forEach: forEachMap,
      include: options.include,
      exclude: options.exclude
    });
    if (!molecule) continue;
    if (!options.filter || options.filter(molecule)) {
      molecules.push(molecule);
      for (const label of currentLabels) {
        labels[label].counter++;
      }
    }
  }
  // Convert all numeric fields and compute min/max
  for (const label in labels) {
    const currentLabel = labels[label];
    if (currentLabel.isNumeric) {
      currentLabel.minValue = Infinity;
      currentLabel.maxValue = -Infinity;
      for (const molecule of molecules) {
        if (molecule[label]) {
          const value = Number.parseFloat(molecule[label]);
          molecule[label] = value;
          if (value > (currentLabel.maxValue ?? -Infinity)) {
            currentLabel.maxValue = value;
          }
          if (value < (currentLabel.minValue ?? Infinity)) {
            currentLabel.minValue = value;
          }
        }
      }
    }
  }
  for (const key in labels) {
    labels[key].always = labels[key].counter === molecules.length;
  }
  const statistics = [];
  for (const key in labels) {
    const info = labels[key];
    statistics.push({
      label: key,
      counter: info.counter,
      isNumeric: info.isNumeric,
      keep: info.keep,
      minValue: info.minValue,
      maxValue: info.maxValue,
      always: info.always ?? false
    });
  }
  return {
    time: Date.now() - start,
    molecules,
    labels: Object.keys(labels),
    statistics
  };
}

async function appendSDF(moleculesDB, sdf, options = {}) {
  const {
    onStep,
    dynamicTyping,
    mixedEOL = true,
    eol
  } = options;
  sdf = ensureString(sdf);
  if (typeof sdf !== 'string') {
    throw new TypeError('sdf must be a string');
  }
  const parsed = parse(sdf, {
    dynamicTyping,
    mixedEOL,
    eol
  });
  for (let i = 0; i < parsed.molecules.length; i++) {
    const molecule = parsed.molecules[i];
    moleculesDB.pushEntry(moleculesDB.OCL.Molecule.fromMolfile(molecule.molfile), molecule);
    if (onStep) {
      // eslint-disable-next-line no-await-in-loop
      await onStep(i + 1, parsed.molecules.length);
    }
  }
}

async function appendSmilesList(moleculesDB, text, options = {}) {
  const {
    onStep
  } = options;
  text = ensureString(text);
  if (typeof text !== 'string') {
    throw new TypeError('text must be a string');
  }
  const smilesArray = text.split(/\r?\n/).map(line => line.trim()).filter(Boolean);
  for (let i = 0; i < smilesArray.length; i++) {
    const oneSmiles = smilesArray[i];
    moleculesDB.pushEntry(moleculesDB.OCL.Molecule.fromSmiles(oneSmiles));
    if (onStep) {
      // eslint-disable-next-line no-await-in-loop
      await onStep(i + 1, smilesArray.length);
    }
  }
}

/**
 *
 * @param {MoleculesDB} moleculesDB
 * @param {import('openchemlib').Molecule} molecule
 * @param {object} data
 * @param {object} [moleculeInfo]
 * @param {string} [moleculeInfo.idCode]
 * @param {number[]} [moleculeInfo.index]
 */
function pushEntry(moleculesDB, molecule, data = {}, moleculeInfo = {}) {
  // the following line could be the source of problems if the idCode version
  // changes
  const moleculeIDCode = getMoleculeIDCode(molecule, moleculeInfo);
  const id = moleculeIDCode || crypto.randomUUID();
  let entry = moleculesDB.db[id];
  if (!entry) {
    // a new molecule
    // ensure helper arrays needed for substructure search
    molecule.ensureHelperArrays(moleculesDB.OCL.Molecule.cHelperRings);
    let index;
    if (!moleculeInfo.index) {
      index = molecule.getIndex();
    } else {
      index = moleculeInfo.index;
    }
    const molecularFormula = molecule.getMolecularFormula();
    entry = {
      molecule,
      properties: {
        mw: molecularFormula.relativeWeight,
        em: molecularFormula.absoluteWeight,
        mf: molecularFormula.formula
      },
      data: [],
      idCode: moleculeIDCode,
      index
    };
    moleculesDB.db[id] = entry;
    if (moleculesDB.computeProperties) {
      const properties = new moleculesDB.OCL.MoleculeProperties(molecule);
      entry.properties = {
        ...entry.properties,
        acceptorCount: properties.acceptorCount,
        donorCount: properties.donorCount,
        logP: properties.logP,
        logS: properties.logS,
        polarSurfaceArea: properties.polarSurfaceArea,
        rotatableBondCount: properties.rotatableBondCount,
        stereoCenterCount: properties.stereoCenterCount
      };
    }
    updateStatistics(moleculesDB.calculatedStatistics, entry.properties);
  }
  entry.data.push(data);
  updateStatistics(moleculesDB.dataStatistics, data);
}
function updateStatistics(statistics, data) {
  for (const key in data) {
    const value = data[key];
    if (!statistics.has(key)) {
      statistics.set(key, {
        counter: 0,
        kind: typeof value
      });
    }
    const stat = statistics.get(key);
    stat.counter++;
    if (stat.kind !== typeof value) {
      stat.kind = 'mixed';
    }
  }
}
function getMoleculeIDCode(molecule, moleculeInfo) {
  let idCode = moleculeInfo.idCode;
  if (!idCode) {
    idCode = molecule.getIDCode();
  }
  if (idCode === 'd@') return ''; // empty molecule
  return idCode;
}

function pushMoleculeInfo(moleculesDB, moleculeInfo, data = {}) {
  if (typeof moleculeInfo !== 'object') {
    throw new Error('pushMoleculeInfo requires an object as first parameter');
  }
  const Molecule = moleculesDB.OCL.Molecule;
  let molecule;
  if (moleculeInfo.molfile) {
    molecule = Molecule.fromMolfile(moleculeInfo.molfile);
  }
  if (moleculeInfo.smiles) molecule = Molecule.fromSmiles(moleculeInfo.smiles);
  if (moleculeInfo.idCode) {
    if (moleculesDB.db[moleculeInfo.idCode]) {
      molecule = moleculesDB.db[moleculeInfo.idCode].molecule;
    } else {
      molecule = Molecule.fromIDCode(moleculeInfo.idCode, moleculeInfo.coordinates || false);
    }
  }
  if (molecule) {
    moleculesDB.pushEntry(molecule, data, moleculeInfo);
  }
}

async function noWait() {
  return new Promise(resolve => {
    if (typeof setImmediate === 'function') {
      setImmediate(() => resolve());
    } else {
      // didn't find a better way to do it in the browser
      setTimeout(() => resolve(), 0);
    }
  });
}

class AbortError extends Error {
  name = 'AbortError';
  code = 20;
}
function getQuery(moleculesDB, query, options) {
  const {
    format = 'idCode'
  } = options;
  if (typeof query === 'string') {
    const moleculeCreators = getMoleculeCreators(moleculesDB.OCL);
    query = moleculeCreators.get(format.toLowerCase())(query);
  } else if (!(query instanceof moleculesDB.OCL.Molecule)) {
    throw new TypeError('toSearch must be a Molecule or string');
  }
  return query;
}
/**
 * Internal function to search in the database
 * @param {import('../MoleculesDB.js').MoleculesDB} moleculesDB
 * @param {string} query
 * @param {Record<string, any>} [options={}]
 * @param {'exact'|'substructure'|'substructureOR'|'similarity'} [options.mode='substructure']
 * @returns
 */
function search(moleculesDB, query = '', options = {}) {
  const {
    mode = 'substructure'
  } = options;
  query = getQuery(moleculesDB, query, options);
  let result;
  switch (mode.toLowerCase()) {
    case 'exact':
      result = exactSearch(moleculesDB, query);
      break;
    case 'exactnostereo':
      result = exactSearchNoStereo(moleculesDB, query);
      break;
    case 'substructure':
      result = substructureSearch(moleculesDB, query);
      break;
    case 'substructureor':
      result = substructureSearchOR(moleculesDB, query);
      break;
    case 'similarity':
      result = similaritySearch(moleculesDB, query);
      break;
    default:
      throw new Error(`unknown search mode: ${options.mode}`);
  }
  return processResult(result, options);
}
async function searchAsync(moleculesDB, query = '', options = {}) {
  const {
    mode = 'substructure'
  } = options;
  query = getQuery(moleculesDB, query, options);
  let result;
  switch (mode.toLowerCase()) {
    case 'exact':
      result = exactSearch(moleculesDB, query);
      break;
    case 'exactnostereo':
      result = exactSearchNoStereo(moleculesDB, query);
      break;
    case 'substructure':
      result = await subStructureSearchAsync(moleculesDB, query, options);
      break;
    case 'substructureor':
      result = substructureSearchOR(moleculesDB, query);
      break;
    case 'similarity':
      result = similaritySearch(moleculesDB, query);
      break;
    default:
      throw new Error(`unknown search mode: ${options.mode}`);
  }
  return processResult(result, options);
}
/**
 * Search for an exact match in the database including stereochemistry
 * @param {import('../MoleculesDB.js').MoleculesDB} moleculesDB
 * @param {import('openchemlib').Molecule} query
 * @returns
 */
function exactSearch(moleculesDB, query) {
  query = query.getCompactCopy();
  query.setFragment(false);
  const queryIDCode = query.getIDCode();
  const searchResult = moleculesDB.db[queryIDCode] ? [moleculesDB.db[queryIDCode]] : [];
  return searchResult;
}
/**
 * Search for an exact match without stereo information
 * @param {import('../MoleculesDB.js').MoleculesDB} moleculesDB
 * @param {import('openchemlib').Molecule}  query
 * @returns
 */
function exactSearchNoStereo(moleculesDB, query) {
  query = query.getCompactCopy();
  query.setFragment(false);
  query.stripStereoInformation();
  const queryIDCode = query.getIDCode();
  // first filter by molecular weight
  const mw = query.getMolecularFormula().relativeWeight;
  const results = [];
  for (const idCode in moleculesDB.db) {
    const entry = moleculesDB.db[idCode];
    if (mw !== entry.properties.mw) {
      continue;
    }
    const candidateMolecule = entry.molecule.getCompactCopy();
    candidateMolecule.stripStereoInformation();
    const candidateIDCode = candidateMolecule.getIDCode();
    if (candidateIDCode !== queryIDCode) {
      continue;
    }
    results.push(entry);
  }
  return results;
}
/**
 * No atoms in the query, we return all the molecules
 * @param {import('../MoleculesDB.js').MoleculesDB} moleculesDB
 * @param {import('openchemlib').Molecule} query
 * @returns
 */
function substructureSearchBegin(moleculesDB, query) {
  const searchResult = [];
  if (query.getAllAtoms() === 0) {
    for (const idCode in moleculesDB.db) {
      searchResult.push(moleculesDB.db[idCode]);
    }
  }
  return {
    searchResult
  };
}
function substructureSearchEnd(searchResult, queryMW) {
  searchResult.sort((a, b) => {
    return Math.abs(queryMW - a.properties.mw) - Math.abs(queryMW - b.properties.mw);
  });
  return searchResult;
}
/**
 * Search by substructure in the database
 * If the substructure is composed of many fragments all the fragments must be present
 * @param {import('../MoleculesDB.js').MoleculesDB} moleculesDB
 * @param {import('openchemlib').Molecule} query
 * @returns
 */
function substructureSearch(moleculesDB, query) {
  const queryMW = getMW(query);
  const {
    searchResult
  } = substructureSearchBegin(moleculesDB, query);
  if (searchResult.length === 0) {
    query = query.getCompactCopy();
    query.setFragment(true);
    const queryIndex = query.getIndex();
    const searcher = moleculesDB.searcher;
    searcher.setFragment(query, queryIndex);
    for (const idCode in moleculesDB.db) {
      const entry = moleculesDB.db[idCode];
      searcher.setMolecule(entry.molecule, entry.index);
      if (searcher.isFragmentInMolecule()) {
        searchResult.push(entry);
      }
    }
  }
  return substructureSearchEnd(searchResult, queryMW);
}
/**
 * Search by substructure in the database
 * If the substructure is composed of many fragments only one fragment must be present
 * @param {import('../MoleculesDB.js').MoleculesDB} moleculesDB
 * @param {import('openchemlib').Molecule} query
 * @returns
 */
function substructureSearchOR(moleculesDB, query) {
  const queryMW = getMW(query);
  const {
    searchResult
  } = substructureSearchBegin(moleculesDB, query);
  if (searchResult.length === 0) {
    query = query.getCompactCopy();
    query.setFragment(true);
    const queries = [];
    for (const fragment of query.getFragments()) {
      queries.push({
        fragment,
        queryIndex: fragment.getIndex()
      });
    }
    const searcher = moleculesDB.searcher;
    molecule: for (const idCode in moleculesDB.db) {
      const entry = moleculesDB.db[idCode];
      searcher.setMolecule(entry.molecule, entry.index);
      for (const {
        fragment,
        queryIndex
      } of queries) {
        searcher.setFragment(fragment, queryIndex);
        if (searcher.isFragmentInMolecule()) {
          searchResult.push(entry);
          continue molecule;
        }
      }
    }
  }
  return substructureSearchEnd(searchResult, queryMW);
}
async function subStructureSearchAsync(moleculesDB, query, options = {}) {
  const queryMW = getMW(query); // we
  query = query.getCompactCopy();
  query.setFragment(true);
  const {
    interval = 100,
    onStep,
    controller
  } = options;
  let shouldAbort = false;
  if (controller) {
    const abortEventListener = () => {
      shouldAbort = true;
    };
    controller.signal.addEventListener('abort', abortEventListener);
  }
  const {
    searchResult
  } = substructureSearchBegin(moleculesDB, query);
  let begin = performance.now();
  if (searchResult.length === 0) {
    const queryIndex = query.getIndex();
    const searcher = moleculesDB.searcher;
    searcher.setFragment(query, queryIndex);
    let index = 0;
    const length = Object.keys(moleculesDB.db).length;
    for (const idCode in moleculesDB.db) {
      if (shouldAbort) {
        throw new AbortError('Query aborted');
      }
      const entry = moleculesDB.db[idCode];
      searcher.setMolecule(entry.molecule, entry.index);
      if (searcher.isFragmentInMolecule()) {
        searchResult.push(entry);
      }
      if ((onStep || controller) && performance.now() - begin >= interval) {
        begin = performance.now();
        if (onStep) {
          onStep(index, length);
        }
        if (controller && !onStep) {
          // eslint-disable-next-line no-await-in-loop
          await noWait();
        }
      }
      index++;
    }
  }
  return substructureSearchEnd(searchResult, queryMW);
}
function similaritySearch(moleculesDB, query) {
  const queryIndex = query.getIndex();
  const queryMW = getMW(query);
  const queryIdCode = query.getIDCode();
  const searchResult = [];
  let similarity;
  for (const idCode in moleculesDB.db) {
    const entry = moleculesDB.db[idCode];
    if (entry.idCode === queryIdCode) {
      similarity = Number.MAX_SAFE_INTEGER;
    } else {
      similarity = moleculesDB.OCL.SSSearcherWithIndex.getSimilarityTanimoto(queryIndex, entry.index) * 1000000 - Math.abs(queryMW - entry.properties.mw) / 10000;
    }
    searchResult.push({
      similarity,
      entry
    });
  }
  searchResult.sort((a, b) => {
    return b.similarity - a.similarity;
  });
  return searchResult.map(entry => entry.entry);
}
function getMW(query) {
  const copy = query.getCompactCopy();
  copy.setFragment(false);
  return copy.getMolecularFormula().relativeWeight;
}
function processResult(entries, options = {}) {
  const {
    flattenResult = true,
    keepMolecule = false,
    limit = Number.MAX_SAFE_INTEGER
  } = options;
  const results = [];
  if (flattenResult) {
    for (const entry of entries) {
      for (const data of entry.data) {
        const result = {
          data,
          idCode: entry.idCode,
          properties: entry.properties
        };
        if (keepMolecule) {
          result.molecule = entry.molecule;
        }
        results.push(result);
      }
    }
  } else {
    for (const entry of entries) {
      results.push({
        data: entry.data,
        idCode: entry.idCode,
        properties: entry.properties,
        molecule: keepMolecule ? entry.molecule : undefined
      });
    }
  }
  if (limit < results.length) results.length = limit;
  return results;
}

/*
 * @typedef {object} InternalStatistics
 * @property {number} counter - number of entries
 * @property {'number'|'boolean'|'string'|'object'|'mixed'} kind - kind of value
 */
/**
 * this.db is an object with properties 'oclID' that has as value
 * an object that contains the following properties:
 * molecule: an OCL molecule instance
 * index: OCL index used for substructure searching
 * properties: all the calculates properties
 * data: array containing free data associated with this molecule
 */
class MoleculesDB {
  /**
   * Creates an instance of MoleculesDB.
   * @param {typeof import('openchemlib')} OCL - openchemlib library
   * @param {object} [options={}] - Options.
   * @param {boolean} [options.computeProperties=false]
   * @param {boolean} [options.keepEmptyMolecules=false]
   */
  constructor(OCL, options = {}) {
    const {
      computeProperties = false,
      keepEmptyMolecules = false
    } = options;
    this.OCL = OCL;
    this.db = {};
    /**
     * @type {Map<string, InternalStatistics>}
     */
    this.dataStatistics = new Map();
    /**
     * @type {Map<string, InternalStatistics>}
     */
    this.calculatedStatistics = new Map();
    this.computeProperties = computeProperties;
    this.keepEmptyMolecules = keepEmptyMolecules;
    this.searcher = new OCL.SSSearcherWithIndex();
  }
  clear() {
    this.db = {};
    this.dataStatistics.clear();
    this.calculatedStatistics.clear();
  }
  get nbMolecules() {
    return Object.keys(this.db).length;
  }
  get nbData() {
    let number = 0;
    for (const entry of Object.values(this.db)) {
      number += entry.data.length;
    }
    return number;
  }
  get statistics() {
    const nbData = this.nbData;
    const nbMolecules = this.nbMolecules;
    const statistics = {
      data: [],
      calculated: []
    };
    for (const [key, value] of this.dataStatistics.entries()) {
      const statistic = {
        label: key,
        counter: value.counter,
        kind: value.kind,
        always: value.counter === nbData,
        isNumber: false
      };
      statistics.data.push(statistic);
      // if kind is numeric, add minValue and maxValue. Need to go through all the values
      if (value.kind === 'number') {
        statistic.isNumeric = true;
        statistic.minValue = Number.POSITIVE_INFINITY;
        statistic.maxValue = Number.NEGATIVE_INFINITY;
        for (const entry of Object.values(this.db)) {
          for (const data of entry.data) {
            if (data[key] < statistic.minValue) {
              statistic.minValue = data[key];
            }
            if (data[key] > statistic.maxValue) {
              statistic.maxValue = data[key];
            }
          }
        }
      }
    }
    for (const [key, value] of this.calculatedStatistics.entries()) {
      const statistic = {
        label: key,
        counter: value.counter,
        kind: value.kind,
        always: value.counter === nbMolecules,
        isNumeric: false
      };
      statistics.calculated.push(statistic);
      // if kind is numeric, add minValue and maxValue. Need to go through all the values
      if (value.kind === 'number') {
        statistic.isNumeric = true;
        statistic.minValue = Number.POSITIVE_INFINITY;
        statistic.maxValue = Number.NEGATIVE_INFINITY;
        for (const entry of Object.values(this.db)) {
          if (entry.properties[key] < statistic.minValue) {
            statistic.minValue = entry.properties[key];
          }
          if (entry.properties[key] > statistic.maxValue) {
            statistic.maxValue = entry.properties[key];
          }
        }
      }
    }
    return statistics;
  }
  /**
   * Append an array of entries to the current database. An entry is an object that by default should contain a 'ocl' property containing idCode and optionally index and coordinates
   * @param {*} moleculesDB
   * @param {object[]} entries
   * @param {object} [options={}]
   * @param {string} [options.idCodePath='ocl.idCode']
   * @param {string} [options.indexPath='ocl.index']
   * @param {string} [options.coordinatesPath='ocl.coordinates']
   * @param {string} [options.mwPath='mw']
   * @param {string} [options.smilesPath]
   * @param {string} [options.molfilePath]
   * @param {Function} [options.onStep] - call back to execute after each molecule
   * @returns {Promise<void>}
   */
  appendEntries(entries, options) {
    return appendEntries(this, entries, {
      computeProperties: this.computeProperties,
      ...options
    });
  }
  /**
   * append to the current database a CSV file
   * @param {string|ArrayBuffer} csv - text file containing the comma separated value file
   * @param {object} [options={}] - options.
   * @param {boolean} [options.header=true] - if the first line of the file is a header
   * @param {boolean} [options.dynamicTyping=true] - dynamically type the data (convert values to number of boolean if possible)
   * @param {boolean} [options.skipEmptyLines=true] - skip empty lines
   * @param {Function} [options.onStep] - call back to execute after each molecule
   * @returns {Promise<void>}
   */
  appendCSV(csv, options) {
    return appendCSV(this, csv, options);
  }
  /**
   * Append a SDF to the current database
   * @param {string|ArrayBuffer} sdf - text file containing the sdf
   * @param {object} [options={}] - options
   * @param {Function} [options.onStep] - callback to execute after each molecule
   * @param {boolean} [options.dynamicTyping=true] - Dynamically type the data
   * @param {boolean} [options.mixedEOL=false] - Set to true if you know there is a mixture between \r\n and \n
   * @param {string} [options.eol] - Specify the end of line character. Default will be the one found in the file
   * @returns {Promise<void>}
   */
  appendSDF(sdf, options) {
    return appendSDF(this, sdf, options);
  }
  /**
   * Append a list of SMILES to the current database.
   * @param {string|ArrayBuffer} smiles - text file containing a list of smiles
   * @param {object} [options={}] - Options
   * @param {Function} [options.onStep] - call back to execute after each molecule
   * @returns {Promise<void>}
   */
  appendSmilesList(smiles, options) {
    return appendSmilesList(this, smiles, options);
  }
  /**
   * Add a molecule to the current database.
   * @param {import('openchemlib').Molecule} molecule - The molecule to append.
   * @param {object} [data={}] - Options.
   * @param {object} [moleculeInfo={}] - May contain precalculated index and mw.
   */
  pushEntry(molecule, data, moleculeInfo) {
    pushEntry(this, molecule, data, moleculeInfo);
  }
  /**
   * Add an entry in the database.
   * @param {object} moleculeInfo - a molecule as a JSON that may contain the following properties: molfile, smiles, idCode, mf, index
   * @param {object} [data={}]
   */
  pushMoleculeInfo(moleculeInfo, data) {
    return pushMoleculeInfo(this, moleculeInfo, data);
  }
  /**
   * Search in a MoleculesDB
   * Inside the database all the same molecules are group together
   * @param {string|import('openchemlib').Molecule} [query] - smiles, molfile, idlCode or instance of Molecule to look for
   * @param {object} [options={}] - Options
   * @param {'smiles'|'idCode'|'smarts'|'molfile'} [options.format='idCode'] - query format
   * @param {'substructure'|'substructureOR'|'exact'|'exactNoStereo'|'similarity'} [options.mode='substructure'] - search algorithm
   * @param {boolean} [options.flattenResult=true] - The database group the data for the same product. This allows to flatten the result
   * @param {boolean} [options.keepMolecule=false] - keep the OCL.Molecule object in the result
   * @param {number} [options.limit=Number.MAX_SAFE_INTEGER] - maximal number of result
   * @returns {Array} array of object of the type {(molecule), idCode, data, properties}
   */
  search(query, options) {
    return search(this, query, options);
  }
  /**
   * Search in a MoleculesDB
   * Inside the database all the same molecules are group together
   * @param {string|import('openchemlib').Molecule} [query] - smiles, molfile, idCode or instance of Molecule to look for
   * @param {object} [options={}] - Options.
   * @param {'smiles'|'idCode'|'smarts'|'molfile'} [options.format='idCode'] - query format
   * @param {'substructure'|'substructureOR'|'exact'|'exactNoStereo'|'similarity'} [options.mode='substructure'] - search algorithm
   * @param {boolean} [options.flattenResult=true] - The database group the data for the same product. This allows to flatten the result
   * @param {boolean} [options.keepMolecule=false] - keep the OCL.Molecule object in the result
   * @param {number} [options.limit=Number.MAX_SAFE_INTEGER] - maximal number of result
   * @param {number} [options.interval=100] - interval in ms to call the onStep callback
   * @param {Function} [options.onStep] - callback to execute after each interval
   * @param {AbortController} [options.controler] - callback to execute to check if the search should be aborted
   * @returns {Promise<Array>} array of object of the type {(molecule), idCode, data, properties}
   */
  searchAsync(query, options) {
    return searchAsync(this, query, options);
  }
  /**
   * Returns an array with the current database
   * @returns
   */
  getDB() {
    return Object.keys(this.db).map(key => this.db[key]);
  }
  /**
   * Append the property `data.color` to each entry based on a data or property label
   * {object} [options={}]
   * {string} [options.dataLabel] name of the property from `data` to use
   * {string} [options.propertyLabel] name of the property from `properties` to use
   * {number} [options.colorLabel='color'] name of the property to add in data that will contain the color
   * {number} [options.minValue]
   * {number} [options.maxValue]
   * {number} [options.minHue=0]
   * {number} [options.maxHue=360]
   * {number} [options.saturation=65] percent of color saturation
   * {number} [options.lightness=65] percent of color lightness
   * @param options
   */
  appendColor(options) {
    appendColor(this, options);
  }
}

function getAtomFeatures(originalMolecule, options = {}) {
  const OCL = originalMolecule.getOCL();
  const {
    sphere = 1
  } = options;
  const fragment = new OCL.Molecule(0, 0);
  const results = [];
  for (let rootAtom = 0; rootAtom < originalMolecule.getAllAtoms(); rootAtom++) {
    let min = 0;
    let max = 0;
    const atomMask = new Array(originalMolecule.getAtoms());
    const atomList = new Array(originalMolecule.getAtoms());
    const molecule = originalMolecule.getCompactCopy();
    for (let currentSphere = 0; currentSphere <= sphere; currentSphere++) {
      if (max === 0) {
        atomList[max] = rootAtom;
        atomMask[rootAtom] = true;
        max++;
      } else {
        let newMax = max;
        for (let i = min; i < max; i++) {
          const atom = atomList[i];
          for (let j = 0; j < molecule.getAllConnAtoms(atom); j++) {
            const connAtom = molecule.getConnAtom(atom, j);
            if (!atomMask[connAtom]) {
              atomMask[connAtom] = true;
              atomList[newMax++] = connAtom;
            }
          }
        }
        min = max;
        max = newMax;
      }
      molecule.copyMoleculeByAtoms(fragment, atomMask, true, null);
      if (currentSphere === sphere) {
        makeRacemic(fragment);
        results.push(fragment.getCanonizedIDCode());
      }
    }
  }
  const atoms = {};
  for (const result of results) {
    if (!atoms[result]) {
      atoms[result] = 1;
    } else {
      atoms[result]++;
    }
  }
  return atoms;
}

let rAtomicNumber = 0;
/**
 * Returns the atomic number of the X atom
 * @param {import('openchemlib').Molecule} molecule - An instance of a molecule
 * @returns
 */
function getRAtomicNumber(molecule) {
  if (!rAtomicNumber) {
    const OCL = molecule.getOCL();
    rAtomicNumber = OCL.Molecule.getAtomicNoFromLabel('R', OCL.Molecule.cPseudoAtomR);
  }
  return rAtomicNumber;
}

function fragmentAcyclicSingleBonds(molecule) {
  const OCL = molecule.getOCL();
  const atoms = [];
  for (let i = 0; i < molecule.getAllAtoms(); i++) {
    const atom = {};
    atoms.push(atom);
    atom.i = i;
    atom.links = []; // we will store connected atoms of broken bonds
  }
  const bonds = [];
  for (let i = 0; i < molecule.getAllBonds(); i++) {
    const bond = {};
    bonds.push(bond);
    bond.i = i;
    bond.order = molecule.getBondOrder(i);
    bond.atom1 = molecule.getBondAtom(0, i);
    bond.atom2 = molecule.getBondAtom(1, i);
    bond.type = molecule.getBondType(i);
    bond.isAromatic = molecule.isAromaticBond(i);
    bond.isRingBond = molecule.isRingBond(i);
    if (!bond.isAromatic && (bond.type & 0b11) === 1 && !bond.isRingBond) {
      bond.selected = true;
      atoms[bond.atom1].links.push(bond.atom2);
      atoms[bond.atom2].links.push(bond.atom1);
    }
  }
  const brokenMolecule = molecule.getCompactCopy();
  for (const bond of bonds) {
    if (bond.selected) {
      brokenMolecule.markBondForDeletion(bond.i);
    }
  }
  brokenMolecule.deleteMarkedAtomsAndBonds();
  const fragmentMap = [];
  const nbFragments = brokenMolecule.getFragmentNumbers(fragmentMap);
  const results = [];
  for (let i = 0; i < nbFragments; i++) {
    const result = {
      atomMap: []
    };
    const includeAtom = fragmentMap.map(id => {
      return id === i;
    });
    const fragment = new OCL.Molecule(0, 0);
    const atomMap = [];
    brokenMolecule.copyMoleculeByAtoms(fragment, includeAtom, false, atomMap);
    // we will add some R groups at the level of the broken bonds
    for (let j = 0; j < atomMap.length; j++) {
      if (atomMap[j] > -1) {
        result.atomMap.push(j);
        if (atoms[j].links.length > 0) {
          for (let k = 0; k < atoms[j].links.length; k++) {
            fragment.addBond(atomMap[j], fragment.addAtom(getRAtomicNumber(brokenMolecule)), 1);
          }
        }
      }
    }
    fragment.setFragment(false);
    result.idCode = fragment.getIDCode();
    result.mf = getMF(fragment).mf.replace(/R[1-9]?/, '');
    results.push(result);
  }
  return results;
}

/**
 * @description Append the OCL reaction to the reaction object
 * @param {Array} reactions - array of reactions objects with rxnCode and label
 * @param {typeof import('openchemlib')} OCL - OCL object
 * @param {object} [options={}]
 * @param {import('cheminfo-types').Logger} [options.logger]
 * @returns {Array} array of reactions objects with rxnCode, label and oclReaction (a decoded version of rxnCode reaction)
 */
function appendOCLReaction(reactions, OCL, options = {}) {
  const {
    logger
  } = options;
  const newReactions = [];
  for (const reaction of reactions) {
    if (reaction.rxnCode) {
      newReactions.push({
        ...reaction,
        oclReaction: OCL.ReactionEncoder.decode(reaction.rxnCode)
      });
    } else if (logger) {
      logger.warn(reaction, 'Reaction without rxnCode');
    }
  }
  return newReactions;
}

/**
 *
 * @param {*} processedMolecules
 * @param {import('openchemlib').Molecule|string} molecule
 * @param {*} options
 * @returns
 */
function checkIfExistsOrAddInfo(processedMolecules, molecule, options) {
  const {
    moleculeInfoCallback,
    asReagent,
    asProduct
  } = options;
  const idCode = typeof molecule === 'string' ? idCode : molecule.getIDCode();
  if (processedMolecules.has(idCode)) {
    const entry = processedMolecules.get(idCode);
    let exists = false;
    if (asReagent) {
      if (entry.asReagent) {
        exists = true;
      } else {
        entry.asReagent = true;
      }
    }
    if (asProduct) {
      if (entry.asProduct) {
        exists = true;
      } else {
        entry.asProduct = true;
      }
    }
    return {
      exists,
      info: entry
    };
  } else {
    let info = {
      idCode,
      asReagent,
      asProduct,
      info: {}
    };
    if (moleculeInfoCallback) {
      info.info = moleculeInfoCallback(molecule);
    }
    processedMolecules.set(idCode, info);
    return {
      exists: false,
      info
    };
  }
}

/**
 * @description apply one reaction to one reactant
 * @param {import('openchemlib').Molecule[]} reactants
 * @param tree
 * @param {Array<object>} reactions - rxnCode of the reaction
 * @param {object} options - options to apply the reaction
 * @param {number} options.currentDepth - current depth of the recursion
 * @param {number} options.maxDepth - max depth of the recursion
 * @param {number} options.maxCurrentDepth - max depth of the recursion for this set of reactions
 * @param {number} options.limitReactions - limit the number of reactions
 * @param {object} options.stats - stats of the recursion
 * @param {number} options.stats.counter - number of reactions
 * @param {Map} options.processedMolecules - set of processed molecules
 * @param {Array} options.trees - array of trees of previous recursions
 * @param {object} options.OCL - OCL object
 * @returns {Array} array of results
 */
function applyOneReactantReactions(tree, reactions, options) {
  const {
    currentDepth,
    maxDepth,
    maxCurrentDepth,
    processedMolecules,
    OCL,
    logger
  } = options;
  if (tree.molecules.length !== 1) {
    logger?.warn('applyOneReactantReactions:tree.reactants.length!==1', tree.reactants.length);
    return [];
  }
  const reactant = OCL.Molecule.fromIDCode(tree.molecules[0].idCode);
  const todoNextDepth = [];
  // if the current depth is greater than the max depth, we stop the recursion and return an empty array
  if (currentDepth > maxCurrentDepth || tree.depth >= maxDepth) {
    return [];
  }
  const existsAndInfo = checkIfExistsOrAddInfo(processedMolecules, reactant, {
    ...options,
    asReagent: true
  });
  // check if the reactant has already been processed
  if (existsAndInfo.exists) {
    return [];
  }
  for (const reaction of reactions) {
    if (options.stats.counter >= options.limitReactions) {
      return [];
    }
    const reactor = new OCL.Reactor(reaction.oclReaction);
    // isMatching is true if the reactant is matching the reaction else we continue to the next reaction
    const isMatching = Boolean(reactor.setReactant(0, reactant));
    if (isMatching) {
      options.stats.counter++;
      // get the products of the reaction
      const oneReactionProducts = reactor.getProducts();
      for (const oneReactionProduct of oneReactionProducts) {
        for (const reactionProduct of oneReactionProduct) {
          // get the info of the product (idCode, mf)
          const productExistsAndInfo = checkIfExistsOrAddInfo(processedMolecules, reactionProduct, {
            ...options,
            asProduct: true
          });
          // if the product has not been processed yet, we add it to the list of products and we add it to the list of todoNextDepth
          if (!productExistsAndInfo.exists) {
            // eslint-disable-next-line no-unused-vars
            const {
              oclReaction,
              needToBeCharged,
              ...reactionWithoutOCL
            } = reaction;
            const oneReaction = {
              reaction: reactionWithoutOCL,
              depth: tree.depth + 1,
              isValid: true,
              currentDepth,
              molecules: [checkIfExistsOrAddInfo(processedMolecules, reactionProduct, options).info]
            };
            if (!tree.children) tree.children = [];
            tree.children.push(oneReaction);
            todoNextDepth.push(() => {
              return applyOneReactantReactions(oneReaction, reactions, {
                ...options,
                currentDepth: options.currentDepth + 1
              });
            });
          }
        }
      }
    }
  }
  // by returning todoNextDepth, we make sure that the recursion will continue
  return todoNextDepth;
}

function getFilteredTrees(reactions, options = {}) {
  const {
    filter = () => true
  } = options;
  const nodesToKeep = reactions.getNodes().filter(filter);
  const parentMap = reactions.getParentMap();
  for (let currentNode of nodesToKeep) {
    const parent = parentMap.get(currentNode);
    if (parent && nodesToKeep.includes(parent) === false) {
      nodesToKeep.push(parent);
    }
  }
  return getValidChildren(reactions.trees, {
    nodesToKeep
  });
}
function getValidChildren(nodes, options) {
  const {
    nodesToKeep
  } = options;
  const validNodes = nodes.filter(node => nodesToKeep.includes(node)).map(node => ({
    ...node
  }));
  for (const node of validNodes) {
    if (node.children) {
      const validChildren = node.children.filter(child => nodesToKeep.includes(child));
      if (validChildren.length > 0) {
        node.children = getValidChildren(validChildren, {
          nodesToKeep
        });
      } else {
        delete node.children;
      }
    }
  }
  return validNodes;
}

function getLeaves(trees) {
  const leaves = [];
  for (const tree of trees) {
    appendLeavesSS(leaves, tree);
  }
  return leaves;
}
function appendLeavesSS(leaves, currentBranch) {
  if (!currentBranch.children || currentBranch.children.length === 0) {
    leaves.push(currentBranch);
    return;
  }
  for (const child of currentBranch.children) {
    appendLeavesSS(leaves, child);
  }
}

function getNodes(trees) {
  const nodes = [];
  for (const tree of trees) {
    getNodesSS(nodes, tree);
  }
  return nodes;
}
function getNodesSS(nodes, currentBranch) {
  nodes.push(currentBranch);
  for (const child of currentBranch?.children || []) {
    getNodesSS(nodes, child);
  }
}

class Reactions {
  /**
   *
   * @param OCL
   * @param {object} [options={}]
   * @param {import('cheminfo-types').Logger} logger
   * @param {number} [options.maxDepth=5]
   * @param {Function} [options.moleculeInfoCallback]
   * @param {boolean} [options.skipProcessed=true]
   */
  constructor(OCL, options = {}) {
    this.moleculeInfoCallback = options.moleculeInfoCallback;
    this.maxDepth = options.maxDepth ?? 5;
    this.limitReactions = options.limitReactions ?? 200;
    this.skipProcessed = options.skipProcessed ?? true;
    this.logger = options.logger;
    this.processedMolecules = new Map();
    this.OCL = OCL;
    this.trees = [];
    this.moleculeInfo = {}; // a cache containing molecule information like mw, etc.
  }
  /**
   * We need to call this method for all the reactants on which we want to apply the reactions.
   * If there is only one reactant, we call this method with an array of one reactant.
   * If there are multiple reactants, we call this method with an array of the reactants.
   * This method has to be called for all the reactants
   * @param {import('openchemlib').Molecule[]|string[]} molecules
   * @param moleculesOrIDCodes
   */
  appendHead(moleculesOrIDCodes) {
    if (!Array.isArray(moleculesOrIDCodes)) {
      throw new TypeError('reactants must be an array');
    }
    const molecules = moleculesOrIDCodes.map(molecule => checkIfExistsOrAddInfo(this.processedMolecules, molecule, {
      moleculeInfoCallback: this.moleculeInfoCallback
    }).info);
    const tree = {
      molecules,
      depth: 0,
      isValid: true // this node could be implied in reactions
    };
    this.trees.push(tree);
  }
  /**
   * Returns all the leaves of the trees
   * @returns
   */
  getLeaves() {
    return getLeaves(this.trees);
  }
  /**
   * Returns all the nodes of the trees
   * @returns
   */
  getNodes() {
    return getNodes(this.trees);
  }
  getParentMap() {
    const parentMap = new Map();
    const nodes = this.getNodes();
    for (const node of nodes) {
      if (node.children) {
        for (const child of node.children) {
          parentMap.set(child, node);
        }
      }
    }
    return parentMap;
  }
  /**
   * When applying reactions some branches may be dead because it can not be implied in any reaction.
   * This is the case when we specify a 'min' reaction depth.
   * This will returno only the valid nodes
   * @returns
   */
  getValidNodes() {
    return this.getNodes().filter(node => node.isValid);
  }
  /**
   *
   * @param {object} [options={}]
   * @param {(object):boolean} [options.filter] - a function that will be called for each node and return true if the node should be kept
   */
  getFilteredReactions(options = {}) {
    const filteredReactions = new Reactions();
    filteredReactions.moleculeInfoCallback = this.moleculeInfoCallback;
    filteredReactions.maxDepth = this.maxDepth;
    filteredReactions.limitReactions = this.limitReactions;
    filteredReactions.skipProcessed = this.skipProcessed;
    filteredReactions.logger = this.logger;
    filteredReactions.processedMolecules = this.processedMolecules;
    filteredReactions.OCL = this.OCL;
    filteredReactions.moleculeInfo = this.moleculeInfo; // a cache containing molecule information like mw, etc.
    filteredReactions.trees = getFilteredTrees(this, options);
    return filteredReactions;
  }
  /**
   *
   * @param {object[]} reactions - array of reactions that should be applied
   * @param {object} [options={}]
   * @param {number} [options.min=0] - min depth of the reaction
   * @param {number} [options.max=3] - max depth of the reaction
   */
  applyOneReactantReactions(reactions, options = {}) {
    const {
      min = 0,
      max = 3
    } = options;
    clearAsFromProcessedMolecules(this.processedMolecules);
    const nodes = this.getNodes().filter(node => node.isValid);
    for (const node of nodes) {
      node.currentDepth = 0;
    }
    reactions = appendOCLReaction(reactions, this.OCL);
    const stats = {
      counter: 0
    };
    // Start the recursion by applying the first level of reactions
    for (const node of nodes) {
      let todoCurrentLevel = applyOneReactantReactions(node, reactions, {
        OCL: this.OCL,
        currentDepth: 1,
        processedMolecules: this.processedMolecules,
        moleculeInfoCallback: this.moleculeInfoCallback,
        maxDepth: this.maxDepth,
        maxCurrentDepth: max,
        stats,
        limitReactions: this.limitReactions
      });
      do {
        const nexts = [];
        for (const todo of todoCurrentLevel) {
          nexts.push(todo());
        }
        todoCurrentLevel = nexts.flat();
      } while (todoCurrentLevel.length > 0);
    }
    const newNodes = this.getNodes().filter(node => node.isValid);
    for (const node of newNodes) {
      if (node.currentDepth < min || node.currentDepth > max) {
        node.isValid = false;
      }
      delete node.currentDepth;
    }
  }
}
function clearAsFromProcessedMolecules(processedMolecules) {
  for (const [, value] of processedMolecules) {
    if (value.asReagent) {
      value.asReagent = false;
    }
    if (value.asProduct) {
      value.asProduct = false;
    }
  }
}

export { FULL_HOSE_CODE, HOSE_CODE_CUT_C_SP3_SP3, MoleculesDB, Reactions, TopicMolecule, applyFragmentLabels, autoLabel, autoLabelDatabase, combineSmiles, createPolymer, ensureHeterotopicChiralBonds, ensureMapNo, fragmentAcyclicSingleBonds, getAtomFeatures, getAtoms, getAtomsInfo, getCharge, getConnectivityMatrix, getDiastereotopicAtomIDs, getDiastereotopicAtomIDsAndH, getDiastereotopicAtomIDsFromMolfile, getGroupedDiastereotopicAtomIDs, getHoseCodes, getHoseCodesAndInfo, getHoseCodesForAtom, getHoseCodesForAtoms, getHoseCodesForPath, getHoseCodesFromDiastereotopicID, getImplicitHydrogensCount, getMF, getMolfilesMapping, getNMRHints, getNextNMRHint, getPathAndTorsion, getPathsInfo, getProperties, getShortestPaths, groupDiastereotopicAtomIDs$1 as groupDiastereotopicAtomIDs, isCsp3, makeRacemic, nbCHO, nbCN, nbCOOH, nbLabileH, nbNH2, nbOH, parseDwar, tagAtom, toDiastereotopicSVG, toVisualizerMolfile, toggleHydrogens };
//# sourceMappingURL=openchemlib-utils.esm.js.map
