{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///easy-equilibrium.min.js","webpack:///webpack/bootstrap 037de85497bd3cf627f6","webpack:///./src/index.js","webpack:///./~/chem-equilibrium/src/index.js","webpack:///./~/chem-equilibrium/~/ml-matrix/src/index.js","webpack:///./~/chem-equilibrium/~/ml-matrix/src/matrix.js","webpack:///./~/chem-equilibrium/~/ml-matrix/src/decompositions.js","webpack:///./~/chem-equilibrium/~/mersenne-twister/src/mersenne-twister.js","webpack:///./src/parser.js","webpack:///./src/cc-cache.js","webpack:///./~/chemcalc/dist/chemcalc.js","webpack:///(webpack)/~/node-libs-browser/~/timers-browserify/main.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","EasyEq","desc","_init","_components","_species","_charges","_coefficients","_concentrations","_constants","_precipitationCoefficients","_precipitationConstants","equilibrium","Equilibrium","precipitationConstants","precipitationCoefficients","solutionConstants","constants","solutionSpeciesCharges","charges","solutionCoefficients","coefficients","totalConcentrations","fixedActivities","fixedConcentrations","randomGenerator","maxGuesses","fillArray","arr","val","i","length","parser","cache","prototype","fixed","Array","isArray","Ka","equationsHash","rname","equations","eq","filter","v","norm","parseReaction","reactives","precipitations","components","parsed","products","pname","push","idx","j","indexOf","splice","solvent","species","totalCharge","cc","getCC","parts","charge","key","Error","_rebase","product","cidx","n","elements","r","replaced","idxs","isFixed","concentrations","isSolvent","undefined","c1","c2","hasFixed","hasSolvent","setEquilibriumActivity","concentration","setTotalConcentration","calculate","apply","arguments","getSpeciesConcentrations","getSolutionSpeciesConcentrations","saturationIndices","finalConcentrations","EquilibriumCalculator","options","concScaling","rnd","solutionSpeciesConstants","getSolutionEquilibriumConstants","solutionSpeciesCoefficients","getSolutionSpeciesCoefficients","getSolutionSpeciesCharges","solidSpeciesConstants","getSolidEquilibriumConstants","solidSpeciesCoefficients","getSolidSpeciesCoefficients","fixedTotalComponentConcentrations","getFixedTotalConcentrations","componentActivities","getComponentActivities","ionicStrength","getIonicStrength","solidSpeciesConcentrations","getSolidsConcentrations","solutionSpeciesConcentrations","nSolids","getNumberOfSolids","nSolutionSpecies","getNumberOfSolutionSpecies","nComponents","getNumberOfComponents","nFixedTotalConcentrations","getNumberOfUnfixedComponents","concentrationScaling","initialize1DArray","Math","pow","optionsAsProperties","random","rndWithSeed","constantRandom","console","warn","guess","disolve","ctx","solid","correctActivities","activityCoefficients","solutionSpeciesActivityCoefficients","calculatedSolventActivity","result","fixedIonicStrength","factor","calculateSolutionSpeciesConcentrations","calculatedIonicStrength","balance","solids","solidsLength","balanceError","sum","minus","solubilityProducts","solidIndex","componentComponentDerivatives","k","initialize2DArray","componentIonicStrengthDerivatives","sqrt","componentSolidDerivatives","componentSolventDerivatives","solventActivity","solidComponentDerivatives","solidSolventDerivatives","ionicStrengthComponentDerivatives","ionicStrengthIonicStrengthDerivative","ionicStrengthSolventDerivative","solventComponentsDerivatives","solventIonicStrengthDerivative","solventSolventDerivative","balanceJacobian","componentComponent","componentSolid","solidComponent","jacobian","ionicComponent","componentIonic","solventComponent","componentSolvent","solidSolvent","equilibrateNoSolids","maxIterations","precision","noSolids","equilibrate","hasZero","present","reducedSystem","removeZeroConcentrations","solutionConcentrations","solidConcentrations","nonZeroEquilibriumActivities","iterations","totalError","maximumRelativeError","shifts","Matrix","inverseJacobian","inverse","to2DArray","errors","maxError","max","abs","mostInsoluble","calculateOnePoint","currentSolid","solidsToPrecipitate","precipitationCycles","slice","nElements","hasNegative","Infinity","isNaN","a1","a2","nRows","nColumns","v1","v2","inPlace","deepCopy","doubleArray","nCols","nRow","nCol","map","Number","valueOf","seed","mt","mersenneTwister","bind","constant","getNumberOfSpecies","solutionSpeciesActivities","exponentialCoefficient","exp","component","value","setPrecipitateConcentration","setSolutionEquilibriumConstant","setSolidEquilibriumConstant","setIonicStrength","disolveAll","removeSolutionSpecies","removeSolid","addSolutionSpecies","addSolid","addComponent","tmp","nGuesses","e","log","stack","Decompositions","DC","ii","MatrixError","message","matrix","newInstance","Object","defineProperty","writable","__proto__","Asplice","Aconcat","concat","create","name","constructor","from1DArray","newRows","newColumns","newData","data","rowVector","columnVector","l","vector","empty","rows","columns","zeros","fill","ones","rand","jj","eye","diag","indices","from","to","arg1","isMatrix","cols","current","setRow","expand","base","count","expansion","checkMatrix","klass","get","checkRowIndex","index","checkColumnIndex","checkDimensions","otherMatrix","callback","clone","to1DArray","copy","isRowVector","isColumnVector","isVector","isSquare","isSymmetric","set","rowIndex","columnIndex","neg","mulS","add","addS","addM","sub","subS","subM","mul","mulM","div","divS","divM","getRow","array","removeRow","addRow","swapRows","row1","row2","temp","getColumn","column","setColumn","removeColumn","addColumn","swapColumns","column1","column2","row","checkRowVector","checkColumnVector","addRowVector","subRowVector","mulRowVector","divRowVector","addColumnVector","subColumnVector","mulColumnVector","divColumnVector","mulRow","mulColumn","maxIndex","min","minIndex","maxRow","maxRowIndex","minRow","minRowIndex","maxColumn","maxColumnIndex","minColumn","minColumnIndex","mean","size","prod","cumulativeSum","dot","other","vector1","vector2","mmul","Bcolj","Arowi","s","sortRows","compareFunction","sort","sortColumns","transpose","subMatrix","startRow","endRow","startColumn","endColumn","newMatrix","subMatrixRow","X","subMatrixColumn","trace","EigenvalueDecomposition","V","d","tred2","tql2","H","ort","orthes","hqr2","EigenvalueDecompositionResult","f","g","h","hh","scale","dl1","c3","el1","s2","iter","tst1","eps","hypotenuse","low","high","nn","t","w","x","y","ra","sa","vr","vi","notlast","cdivres","exshift","q","z","cdiv","xr","xi","yr","yi","LuDecomposition","LUrowi","LUcolj","kmax","lu","pivotVector","pivotSign","LuDecompositionResult","sign","LU","QrDecomposition","qr","rdiag","nrm","QrDecompositionResult","QR","Rdiag","SingularValueDecomposition","a","nu","wantu","wantv","computeLeftSingularVectors","computeRightSingularVectors","autoTranspose","swapped","aux","ks","cs","sn","kase","sp","spm1","epm1","sk","ek","b","shift","U","work","nct","nrt","pp","SingularValueDecompositionResult","CholeskyDecomposition","dimension","positiveDefinite","Lrowj","Lrowk","CholeskyDecompositionResult","L","solve","leftHandSide","rightHandSide",{"end":{"file":"easy-equilibrium.min.js","comments_before":[],"nlb":false,"endpos":128233,"endcol":24,"endline":3806,"pos":128218,"col":9,"line":3806,"value":"realEigenvalues","type":"name","_comments_dumped":true},"start":{"file":"easy-equilibrium.min.js","comments_before":[],"nlb":false,"endpos":128233,"endcol":24,"endline":3806,"pos":128218,"col":9,"line":3806,"value":"realEigenvalues","type":"name","_comments_dumped":true},"name":"realEigenvalues"},"realEigenvalues","imaginaryEigenvalues","eigenvectorMatrix","diagonalMatrix","isSingular","col","determinant","lowerTriangularFactor","upperTriangularFactor","pivotPermutationVector","isFullRank","orthogonalFactor","condition","norm2","rank","tol","diagonal","threshold","leftSingularVectors","rightSingularVectors","Y","scols","Ls","VL","vrows","urows","VLU","solveForDiagonal","vcols","ucols","leftTriangularFactor","B","SVD","EVD","CHO","MersenneTwister","Date","getTime","N","M","MATRIX_A","UPPER_MASK","LOWER_MASK","mti","init_seed","init_by_array","init_key","key_length","random_int","mag01","kk","random_int31","random_incl","random_excl","random_long","parseElements","els","split","rr","rp","CC","chemcalcs","cByMW","reset","analyseMF","error","mw","__WEBPACK_AMD_DEFINE_RESULT__","getExports","$wnd","noop","Sg","Ng","fb","fd","jc","sc","Zp","gq","Jr","Js","kl","Ac","vc","ub","ob","Zo","Qo","Zh","Rc","$c","kd","wd","hi","Ti","hj","Pn","Un","Yn","Kn","bo","Do","Io","No","du","Qc","ru","rb","Qh","Mb","Qd","bd","pd","Bd","Wc","jd","Id","dn","wp","en","eh","fh","gh","Zb","Vb","Wb","ai","fj","Dj","zk","xp","yp","Qq","Eq","oq","Nq","fr","Uq","ci","Rp","Jp","Hs","bq","aq","dq","xb","wb","ed","dd","gc","fc","qp","mu","Bp","Nu","Tu","vd","as","nq","Lj","uj","Zi","bi","vb","di","cd","_h","ej","Ej","Ak","tb","Fj","pk","wk","ok","uk","vk","Hr","yt","bs","Kt","cb","ib","Oh","Mh","Sh","tM","he","nr","Dp","yj","zj","Td","Fi","sh","rh","th","qh","oc","nc","mc","wi","nk","rk","uo","_","Fd","Hd","Kd","wr","tj","xj","xo","wo","hr","Tq","So","Hn","K","Eh","Br","In","Ws","Xs","Ym","vj","ceil","Cj","ee","de","Ed","Zc","Yc","Xc","vo","Zm","Ep","vp","_gwt_modCount","_i","Aq","xq","go","Im","Qr","no","Rb","clearTimeout","wj","floor","Bj","round","ae","ge","gj","ij","Nj","fp","El","jl","Fl","oo","Ur","Zr","Ud","af","Yu","Tt","Fc","Kc","jk","gk","ik","Sb","Gb","Jb","mh","Xg","Vg","Wg","Sq","lb","Aj","Pb","$H","Hb","av","bv","Xp","Lq","Tk","Nk","Hc","Th","setTimeout","Uu","Uh","Wr","gp","Yj","substr","Kj","charCodeAt","Oj","lastIndexOf","Xj","gf","Xo","Rd","ri","Si","be","Uj","Qu","td","er","qk","_d","uh","Tg","Ap","Lg","Kg","Qg","Ji","Tn","xn","ao","fo","Mo","Cr","Jn","Dr","Er","Pr","Lr","it","jt","Tj","pj","toString","fe","String","fromCharCode","ak","_j","A","Kb","Pj","cn","bb","ce","rc","parseInt","Dc","Cc","Xq","Co","Ci","zi","Ai","Ni","wt","xt","Rs","Qs","Vh","_t","Rk","Uk","Yi","isFinite","eb","jb","is","o","Tm","Ic","mk","hk","stackTraceLimit","sj","rj","Ye","Vd","Wd","Ro","Jc","To","Gc","Mu","Oc","kc","Di","Cp","$t","bn","hn","Fp","fn","gn","up","wn","S","_r","or","gi","ei","Og","nh","xh","jn","kn","Hp","Zt","ws","vs","As","Nc","Pc","rd","ud","pr","fi","W","zp","hb","Rq","kq","getOwnPropertyNames","Gp","cZ","oe","lh","yh","Gh","Ec","Lc","sd","hu","fu","tk","Bi","Ho","$","Qb","Nn","Bl","Et","Ku","Qj","RegExp","test","kb","nb","Yh","Ol","Dh","sl","Db","Cb","On","yn","Xn","tr","ur","ie","Vu","Au","su","Cu","Jt","It","Ht","Tr","Xd","kg","Mr","Nr","Or","um","om","nm","tm","tl","xm","Rj","Zj","replace","fk","Wj","$j","bc","Gj","xk","pi","match","qi","lk","hC","$d","cM","Nb","Lb","Ob","qb","Xh","Wh","eQ","ml","Op","ag","ic","Hi","pl","jm","me","km","Yd","ac","_b","em","fm","Wo","Vo","Ug","Zu","$u","$o","Bb","now","vl","Pl","Sl","xl","Zs","Sk","Vk","Nl","zb","St","Ir","fg","Su","Jm","Hm","mf","Gm","Am","zm","Bm","Em","Cm","Dm","Fm","il","pm","Ju","Ui","Uo","wu","tu","charAt","yu","Q","gr","hc","lc","Ou","Al","db","Lh","Hh","Ih","_u","Jh","ph","Kh","Dd","Cd","Jd","jq","mq","nj","gs","uu","Du","Pu","Nh","Kl","Qt","Fs","Rt","Gs","hs","Ok","Ml","cl","Hk","Hg","__gwt$exception","kr","Rl","np","I","R","qd","hasOwnProperty","ql","Wt","Xt","Lt","Yt","si","toLowerCase","ti","toUpperCase","vu","Ru","et","Ri","Jg","Ig","Mm","J","lq","ou","ku","ot","nt","pt","tt","ms","gb","Qk","Jk","Lk","toPrecision","tS","qc","exec","dr","bh","mj","wh","kh","Ch","mr","Sd","__elementTypeId$","__elementTypeCategory$","Zg","Ah","ah","_g","Km","ip","cv","zl","dl","fl","Rh","window","boolean","number","string","object","Gd","function","jv","oh","ol","Bu","Gu","_k","Ik","NaN","qj","wl","rl","oi","Lm","$b","jp","ab","kp","Ys","bu","Vt","us","uv","ys","ui","ls","Ns","Np","Il","hl","qm","sm","rm","ut","js","Yo","Ql","zs","pb","pc","Sm","O","ir","jr","Cs","Pk","Mk","op","ni","ev","Mi","Mt","Pg","Mj","ll","gm","Yg","Vj","Ib","jh","He","Ot","tv","xs","ts","zh","vh","mv","Dl","os","qt","rt","at","Tb","dk","gv","dc","ck","ft","lr","Rm","P","Fu","Bs","st","Nm","Yk","al","Cl","cu","ih","Xb","ec","je","Ub","au","Ph","$moduleName","$moduleBase","Gg","hm","wm","el","ym","Z","lp","yk","mp","iu","gu","le","hv","Eu","vt","Zd","Ct","sr","cq","Qi","Pi","parseFloat","Tl","Es","Bh","ju","Ut","yb","sb","Ip","ul","yl","Ms","Mg","Yb","Eb","Fb","Iu","kv","G","D","C","F","dt","ht","bk","Ss","Sj","Dt","Xl","fs","vm","im","dm","dh","Rg","substring","execScript","Fk","Gk","Xk","Ps","ns","gl","lf","Os","gt","lm","mm","iv","dv","bt","ct","Wl","Vl","Ul","Fh","Hu","Nt","fv","nl","_l","$l","Kk","lv","am","cm","bm","Bt","xu","search","$g","navigator","userAgent","$doc","documentMode","lastIndex","nv","Yl","Zl","Ck","Pt","Ds","u","lt","wc","At","Bk","kf","ke","Dk","Ek","zu","pu","aa3","aa1","Re","T","Fg","document","$gwt","__gwtModuleFunction","__moduleStartupDone","$sendStats","Wu",3,9,"Xu",7,28,"ov",35,"pv",37,27,"qv",51,"rv",50,"sv",18,29,26,"gC",116,2,38,"fnStack","callee","caller","cf","__gwt$backingJsError",66,8,54,11,52,44,6,19,20,31,14,5,24,53,"mb",40,32,"rg",39,4,"chargePeptide","convertAASequence","generatePeptideFragments","getInfo","mfFromMonoisotopicMass","aa","gwtOnLoad","__errFn","__moduleName","__moduleBase","__softPermutationId","__computePropValue","permProps","toReturn","version","fakeWindow","timers","setInterval","clearInterval","setImmediate","clearImmediate","Timeout","clearFn","_id","_clearFn","nextTick","Function","immediateIds","nextImmediateId","timeout","close","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","args","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","len","run","Item","fun","process","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask"],"mappings":"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","file":"easy-equilibrium.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"easyEquilibrium\"] = factory();\n\telse\n\t\troot[\"easyEquilibrium\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"easyEquilibrium\"] = factory();\n\telse\n\t\troot[\"easyEquilibrium\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Equilibrium = __webpack_require__(1);\n\tvar parser = __webpack_require__(6);\n\tvar cache = __webpack_require__(7);\n\t\n\tfunction EasyEq(desc) {\n\t    this.desc = desc;\n\t    this._init();\n\t    this._components();\n\t    this._species();\n\t    this._charges();\n\t    this._coefficients();\n\t    this._concentrations();\n\t    this._constants();\n\t    this._precipitationCoefficients();\n\t    this._precipitationConstants();\n\t\n\t    //\n\t    this.equilibrium = new Equilibrium({\n\t        precipitationConstants: this.precipitationConstants || [],\n\t        precipitationCoefficients: this.precipitationCoefficients || [[]],\n\t        solutionConstants: this.constants,\n\t        solutionSpeciesCharges: this.charges,\n\t        solutionCoefficients: this.coefficients,\n\t        totalConcentrations: this.totalConcentrations,\n\t        fixedActivities: this.fixedConcentrations,\n\t        randomGenerator: this.desc.randomGenerator,\n\t        maxGuesses: this.desc.maxGuesses\n\t    });\n\t}\n\t\n\tEasyEq.prototype._init = function() {\n\t    // Check fixed parameter\n\t    this.desc.fixed = this.desc.fixed || [];\n\t    if(this.desc.fixed === 'none') this.desc.fixed = [];\n\t    if(!Array.isArray(this.desc.fixed)) {\n\t        this.desc.fixed = [this.desc.fixed];\n\t    }\n\t\n\t    this.Ka = {};\n\t    this.equationsHash = {};\n\t    var i, rname;\n\t    this.equations = this.desc.eq.filter(function(v, i) {\n\t        return i%2 === 0;\n\t    });\n\t\n\t    var constants = this.desc.eq.filter(function(v, i) {\n\t        return i%2 === 1;\n\t    });\n\t    for(i=0; i<this.equations.length; i++) {\n\t        rname = cache.norm(parser.parseReaction(this.equations[i]).reactives[0].c);\n\t        this.Ka[rname] = constants[i];\n\t        this.equationsHash[rname] = this.equations[i];\n\t    }\n\t\n\t    if(!this.desc.precipitations) return;\n\t\n\t    this.precipitationConstants = this.desc.precipitations.filter(function(v, i) {\n\t        return i%2 === 1;\n\t    });\n\t    this.precipitations = this.desc.precipitations.filter(function(v,i){\n\t        return i%2 === 0;\n\t    });\n\t\n\t\n\t    for(i=0; i<this.precipitations.length; i++) {\n\t        rname = cache.norm(parser.parseReaction(this.precipitations[i]).reactives[0].c);\n\t    }\n\t};\n\t\n\tEasyEq.prototype._components = function() {\n\t    this.components = [];\n\t    for(var i=0; i<this.equations.length; i++) {\n\t\n\t        var parsed = parser.parseReaction(this.equations[i]);\n\t        if(parsed.reactives.length !== 1 || parsed.products.length !== 1) continue;\n\t        var rname = cache.norm(parsed.reactives[0].c);\n\t        var pname = cache.norm(parsed.products[0].c);\n\t        if(rname !== pname) {\n\t            continue;\n\t        }\n\t        this.components.push(rname);\n\t    }\n\t\n\t    // Order components\n\t    // Find fixed component\n\t    var idx;\n\t    if(this.desc.fixed) {\n\t        for(var j=0; j<this.desc.fixed.length; j++) {\n\t            var fixed = cache.norm(this.desc.fixed[j]);\n\t            idx = this.components.indexOf(fixed);\n\t            if(idx > -1) {\n\t                this.components.splice(idx,1);\n\t                this.components.push(fixed);\n\t            }\n\t        }\n\t\n\t    }\n\t\n\t    if(this.desc.solvent) {\n\t        var solvent = cache.norm(this.desc.solvent);\n\t        idx = this.components.indexOf(solvent);\n\t        if(idx > -1) {\n\t            this.components.splice(idx, 1);\n\t            this.components.push(solvent);\n\t        }\n\t    }\n\t};\n\t\n\tEasyEq.prototype._species = function() {\n\t    this.species = new Array(this.components.length);\n\t    for(var i=0; i<this.components.length; i++) this.species[i] = this.components[i];\n\t\n\t    for(i=0; i<this.equations.length; i++) {\n\t        var parsed = parser.parseReaction(this.equations[i]);\n\t        var rname = cache.norm(parsed.reactives[0].c);\n\t        if(this.species.indexOf(rname) === -1) this.species.push(rname);\n\t    }\n\t};\n\t\n\tEasyEq.prototype._charges = function() {\n\t    this.charges = [];\n\t    for(var i=0; i<this.species.length; i++) {\n\t        var totalCharge = 0;\n\t        var cc = cache.getCC(this.species[i]);\n\t        for (var j = 0; j < cc.parts.length; j++) {\n\t            totalCharge += (cc.parts[j].charge || 0);\n\t        }\n\t        this.charges.push(totalCharge);\n\t    }\n\t};\n\t\n\tEasyEq.prototype._coefficients = function() {\n\t    this.coefficients = new Array(this.species.length);\n\t    for(var i=0; i<this.species.length; i++) {\n\t        this.coefficients[i] = new Array(this.components.length);\n\t        fillArray(this.coefficients[i], 0);\n\t    }\n\t\n\t\n\t\n\t    for(var key in this.equationsHash) {\n\t        var idx = this.species.indexOf(key);\n\t        if(idx === -1) throw new Error('Cannot find specie');\n\t        var parsed = parser.parseReaction(this.equationsHash[key]);\n\t\n\t        // Rewrite products as linear combinations of components\n\t        var products = this._rebase(parsed.products);\n\t        //var products = parsed.products;\n\t        for(i=0; i<products.length; i++) {\n\t            var product = products[i];\n\t            var cidx = this.components.indexOf(cache.norm(product.c));\n\t            if(cidx === -1) {\n\t                throw new Error('Cannot find component ' + product.c);\n\t\n\t            }\n\t            this.coefficients[idx][cidx] += product.n;\n\t        }\n\t    }\n\t};\n\t\n\tEasyEq.prototype._rebase = function(elements) {\n\t    var r = [];\n\t    for(var i=0; i<elements.length; i++) {\n\t        var replaced = false;\n\t        var idx = this.components.indexOf(elements[i].c);\n\t        var idxs = this.species.indexOf(elements[i].c);\n\t        if(idx === -1 && idxs > -1) {\n\t            var eq = this.equationsHash[this.species[idxs]];\n\t            if(eq) {\n\t                var parsed = parser.parseReaction(eq);\n\t                for(var j=0; j<parsed.products.length; j++) {\n\t                    parsed.products[j].n *= elements[i].n;\n\t                    r.push(parsed.products[j]);\n\t                }\n\t                replaced = true;\n\t            }\n\t        }\n\t        if(!replaced) {\n\t            r.push(elements[i]);\n\t        }\n\t    }\n\t    return r;\n\t};\n\t\n\tEasyEq.prototype._precipitationCoefficients = function() {\n\t    if(!this.desc.precipitations) return;\n\t    this.precipitationCoefficients = new Array(this.precipitations.length);\n\t    for(var i=0; i<this.precipitations.length; i++) {\n\t        this.precipitationCoefficients[i] = new Array(this.components.length);\n\t        fillArray(this.precipitationCoefficients[i], 0);\n\t    }\n\t\n\t\n\t\n\t    for(var j=0; j<this.precipitations.length; j++) {\n\t        var parsed = parser.parseReaction(this.precipitations[j]);\n\t        var products = this._rebase(parsed.products);\n\t        for(i=0; i<products.length; i++) {\n\t            var product = products[i];\n\t            var cidx = this.components.indexOf(cache.norm(product.c));\n\t            if(cidx === -1) {\n\t                throw new Error('Cannot find component ' + product.c);\n\t            }\n\t            this.precipitationCoefficients[j][cidx] += product.n;\n\t        }\n\t    }\n\t};\n\t\n\tEasyEq.prototype._precipitationConstants = function() {\n\t      if(!this.desc.precipitations) return;\n\t    for(var i=0;i<this.precipitationConstants.length; i++) {\n\t        // this.precipitationConstants[i] = 1/this.precipitationConstants[i];\n\t    }\n\t };\n\t\n\tEasyEq.prototype._concentrations = function() {\n\t    this.totalConcentrations = [];\n\t    this.fixedConcentrations = [];\n\t\n\t    for(var i=0; i<this.components.length; i++) {\n\t        if(this.isFixed(this.components[i])) {\n\t            this.fixedConcentrations.push(this.desc.concentrations[this.components[i]] || 0);\n\t            continue;\n\t        }\n\t        if(this.isSolvent(this.components[i])) continue;\n\t        this.totalConcentrations.push(this.desc.concentrations[this.components[i]]);\n\t    }\n\t};\n\t\n\tEasyEq.prototype._constants = function() {\n\t    this.constants = new Array(this.species.length);\n\t    for(var key in this.Ka) {\n\t        var idx = this.species.indexOf(key);\n\t        if(idx === -1) throw new Error('Cannot link ka to specie');\n\t        this.constants[idx] = 1/this.Ka[key];\n\t    }\n\t};\n\t\n\tEasyEq.prototype.isSolvent = function(c) {\n\t    if(this.desc.solvent === undefined || this.desc.solvent === 'none'){\n\t        return false;\n\t    }\n\t    var c1 = cache.norm(this.desc.solvent);\n\t    var c2 = cache.norm(c);\n\t    return c1 === c2;\n\t};\n\t\n\tEasyEq.prototype.isFixed = function(c) {\n\t    var c1,c2;\n\t    for(var i=0; i<this.desc.fixed.length; i++) {\n\t        c1 = cache.norm(this.desc.fixed[i]);\n\t        c2 = cache.norm(c);\n\t        if(c1 === c2) return true;\n\t    }\n\t    return false;\n\t};\n\t\n\tEasyEq.prototype.hasFixed = function() {\n\t    return this.desc.fixed !== undefined && this.desc.fixed !== 'none';\n\t};\n\t\n\tEasyEq.prototype.hasSolvent = function() {\n\t    return this.desc.solvent !== undefined && this.desc.solvent !== 'none';\n\t};\n\t\n\tEasyEq.prototype.setEquilibriumActivity = function(c, concentration) {\n\t    c = cache.norm(c);\n\t    var idx = this.components.indexOf(c);\n\t    if(idx === -1) throw new Error('Cannot set equilibrium activity of non-components');\n\t    return this.equilibrium.setEquilibriumActivity(idx, concentration);\n\t};\n\t\n\tEasyEq.prototype.setTotalConcentration = function(c, concentration) {\n\t    c = cache.norm(c);\n\t    var idx = this.components.indexOf(c);\n\t    if(idx === -1) throw new Error('Cannot set total concentration of non-components');\n\t    return this.equilibrium.setTotalConcentration(idx, concentration);\n\t};\n\t\n\tEasyEq.prototype.calculate = function() {\n\t    this.equilibrium.calculate.apply(this.equilibrium, arguments);\n\t};\n\t\n\tEasyEq.prototype.getSpeciesConcentrations = function() {\n\t    var c = this.equilibrium.getSolutionSpeciesConcentrations();\n\t    var r = {};\n\t    for(var i=0; i< c.length; i++) {\n\t        r[this.species[i]] = c[i];\n\t    }\n\t    return r;\n\t};\n\t\n\tEasyEq.prototype.saturationIndices = function() {\n\t    return this.equilibrium.saturationIndices();\n\t};\n\t\n\tEasyEq.prototype.finalConcentrations = function() {\n\t    return this.equilibrium.finalConcentrations();\n\t};\n\t\n\t\n\tfunction fillArray(arr, val) {\n\t    for(var i=0; i<arr.length; i++) {\n\t        arr[i] = val;\n\t    }\n\t}\n\t\n\t\n\t\n\tmodule.exports = EasyEq;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar Matrix = __webpack_require__(2);\n\tvar mersenneTwister = __webpack_require__(5);\n\t\n\t//species are all dissolved substances in the equilibrium\n\t//components are substances whose concentrations are independent variables determining all species concentrations\n\t//as many formation reactions as species must be provided\n\t//for each component, either total concentration or equilibrium concentration (to be kept fixed) must be provided. Solvent is an exception (see below)\n\t//canonical ordering of input is key: precipitation reactions must be given last, coefficients of substances with fixed equilibrium concentrations come last\n\t//columns of the coefficients matrix must match the elements of the equilibriumComponentConcentartions vector\n\t//rows of the coefficients matrix must match elements of the constants vector\n\t//first elements of constants vector must match elements of equilibriumComponentConcentrations vector\n\t//first elements of equilibriumComponentConcentrations vector must match elements of totalComponentConcentrations vector\n\t// the last component is a special component: the solvent. It does not have an associated mass balance equation and its activity is either set to 1\n\t// (in which case it is a fixed activity component) or computed using Raoult's law\n\t\n\t\n\tfunction EquilibriumCalculator(options) {\n\t    // Model parameters:\n\t    // solutionSpeciesConstants\n\t    // solutionSpeciesCoefficients\n\t    // solutionSpeciesCharges\n\t    // solidSpeciesConstants\n\t    // solidSpeciesCoefficients\n\t\n\t    // Independent variables\n\t    // fixedTotalComponentConcentrations\n\t    // componentActivities\n\t    // ionicStrength\n\t\n\t    // Input constraints\n\t    // totalConcentrations.length + fixedConcentrations.length must equal the number of columns in coefficients\n\t\n\t    var concScaling, i, j;\n\t    if(options instanceof EquilibriumCalculator) {\n\t        var eq = options;\n\t        this.rnd = eq.rnd;\n\t        this.maxGuesses = eq.maxGuesses;\n\t        this.solutionSpeciesConstants = eq.getSolutionEquilibriumConstants();\n\t        this.solutionSpeciesCoefficients = eq.getSolutionSpeciesCoefficients();\n\t        this.solutionSpeciesCharges = eq.getSolutionSpeciesCharges();\n\t        this.solidSpeciesConstants = eq.getSolidEquilibriumConstants();\n\t        this.solidSpeciesCoefficients = eq.getSolidSpeciesCoefficients();\n\t        this.fixedTotalComponentConcentrations = eq.getFixedTotalConcentrations();\n\t        this.componentActivities = eq.getComponentActivities();\n\t        this.ionicStrength = eq.getIonicStrength();\n\t\n\t        this.solidSpeciesConcentrations = eq.getSolidsConcentrations();\n\t\n\t        this.solutionSpeciesConcentrations = eq.getSolutionSpeciesConcentrations();\n\t\n\t        this.nSolids = eq.getNumberOfSolids();\n\t        this.nSolutionSpecies = eq.getNumberOfSolutionSpecies();\n\t        this.nComponents = eq.getNumberOfComponents();\n\t        this.nFixedTotalConcentrations = eq.getNumberOfUnfixedComponents();\n\t\n\t        this.concentrationScaling = initialize1DArray(this.nFixedTotalConcentrations);\n\t\n\t        for (i = 0; i < this.nFixedTotalConcentrations; i++) {\n\t            this.concentrationScaling[i] = 1.0;\n\t            for (j = 0; j < this.nSolutionSpecies; j++) {\n\t                if (this.solutionSpeciesCoefficients[j][i] != 0.0) {\n\t                    concScaling = 1.0 / Math.pow(this.solutionSpeciesConstants[j], 1.0 / this.solutionSpeciesCoefficients[j][i]);\n\t                    if (concScaling < this.concentrationScaling[i]) {\n\t                        this.concentrationScaling[i] = concScaling;\n\t                    }\n\t                }\n\t            }\n\t            for (j = 0; j < this.nSolids; j++)\n\t            if (this.solidSpeciesCoefficients[j][i] != 0.0) {\n\t                concScaling = Math.pow(this.solidSpeciesConstants[j], 1.0 / this.solidSpeciesCoefficients[j][i]);\n\t                if (concScaling < this.concentrationScaling[i])\n\t                    this.concentrationScaling[i] = concScaling;\n\t            }\n\t        }\n\t    }\n\t    else {\n\t        //initiate equilibrium constants, coefficients, total concentrations, and number of solids/precipitation rxns from input\n\t        optionsAsProperties(this, options);\n\t        if(!this.maxGuesses) this.maxGuesses = 1000;\n\t        if(typeof options.randomGenerator === 'function') {\n\t            this.rnd = options.randomGenerator\n\t        }\n\t        else if(Array.isArray(options.randomGenerator)) {\n\t            if(options.randomGenerator[0] === 'default') {\n\t                this.rnd = Math.random;\n\t            }\n\t            else if(options.randomGenerator[0] === 'seed') {\n\t                this.rnd = rndWithSeed(options.randomGenerator[1] || 0);\n\t            }\n\t            else if(options.randomGenerator[0] === 'constant')\n\t                this.rnd = constantRandom(options.randomGenerator[1] || 0.5)\n\t        }\n\t        else {\n\t            if(options.randomGenerator === 'default')\n\t                this.rnd = Math.random;\n\t            else if(options.randomGenerator === 'seed')\n\t                this.rnd = rndWithSeed(0);\n\t            else if(options.randomGenerator === 'constant') {\n\t                this.rnd = constantRandom(0.5);\n\t            }\n\t        }\n\t\n\t        if(this.rnd === undefined && options.randomGenerator !== undefined) {\n\t            console.warn('Unknown randomGenerator option, falling back to default random generator');\n\t            this.rnd = Math.random;\n\t        }\n\t        else if(this.rnd === undefined) {\n\t            this.rnd = Math.random;\n\t        }\n\t\n\t\n\t        this.nSolutionSpecies = this.solutionCoefficients.length;\n\t        this.nComponents = this.solutionCoefficients[0].length;\n\t        this.nSolids = this.precipitationConstants.length;\n\t        this.nFixedTotalConcentrations = this.totalConcentrations.length;\n\t\n\t        this.componentActivities = initialize1DArray(this.nComponents);\n\t        this.solutionSpeciesConstants = this.solutionConstants;\n\t        this.solutionSpeciesCharges = this.solutionSpeciesCharges;\n\t        this.solutionSpeciesCoefficients = this.solutionCoefficients;\n\t        this.solidSpeciesConstants = this.precipitationConstants;\n\t        this.solidSpeciesCoefficients = this.precipitationCoefficients;\n\t        this.fixedTotalComponentConcentrations = this.totalConcentrations;\n\t        this.solidSpeciesConcentrations = initialize1DArray(this.nSolids);\n\t        this.solutionSpeciesConcentrations = initialize1DArray(this.nSolutionSpecies);\n\t        this.ionicStrength = 0;\n\t\n\t        // Initiate all solids to zero\n\t        for (i = 0; i < this.nSolids; i++) {\n\t            this.solidSpeciesConcentrations[i] = 0.0;\n\t        }\n\t\n\t        this.concentrationScaling = initialize1DArray(this.nFixedTotalConcentrations);\n\t\n\t        // compute the concentration scaling factors\n\t        for (i = 0; i < this.nFixedTotalConcentrations; i++) {\n\t            this.concentrationScaling[i] = 1.0;\n\t            for (j = 0; j < this.nSolutionSpecies; j++) {\n\t                if (this.solutionSpeciesCoefficients[j][i] != 0.0) {\n\t                    concScaling = 1.0 / Math.pow(this.solutionSpeciesConstants[j], 1.0 / this.solutionSpeciesCoefficients[j][i]);\n\t                    if (concScaling < this.concentrationScaling[i]) {\n\t                        this.concentrationScaling[i] = concScaling;\n\t                    }\n\t                }\n\t            }\n\t            for (j = 0; j < this.nSolids; j++) {\n\t                if (this.solidSpeciesCoefficients[j][i] != 0.0) {\n\t                    concScaling = Math.pow(this.solidSpeciesConstants[j], 1.0 / this.solidSpeciesCoefficients[j][i]);\n\t                    if (concScaling < this.concentrationScaling[i]) {\n\t                        this.concentrationScaling[i] = concScaling;\n\t                    }\n\t                }\n\t            }\n\t        }\n\t\n\t        //store fixed component activities at the end of the array of component activities (leave last for solvent)\n\t        for (i = this.nFixedTotalConcentrations; i < this.nComponents - 1; i++) {\n\t            this.componentActivities[i] = this.fixedActivities[(i - this.nFixedTotalConcentrations)];\n\t        }\n\t        //initial guess of variable component activities, solvent activity and ionic strength\n\t        guess(this, true, false);\n\t    }\n\t}\n\t\n\t// equilibrium concentrations of all soluble species and amount of each solid precipitated per litter of solution.\n\t// solvent is an exception: it's activity is returned instead\n\tEquilibriumCalculator.prototype.getComponentActivities = function() {\n\t    return this.componentActivities.slice(0, this.nComponents);\n\t};\n\t\n\tEquilibriumCalculator.prototype.finalConcentrations = function() {\n\t    var result = this.solutionSpeciesConcentrations.slice(0, this.nSolutionSpecies + this.nSolids);\n\t    for (var i = 0; i < this.nSolids; i++) {\n\t        result[(this.nSolutionSpecies + i)] = this.solidSpeciesConcentrations[i];\n\t    }\n\t    result[this.nComponents - 1] = this.componentActivities[this.nComponents - 1];\n\t    return result;\n\t};\n\t\n\tEquilibriumCalculator.prototype.getSolutionSpeciesCoefficients = function() {\n\t    return deepCopy(this.solutionSpeciesCoefficients, this.nSolutionSpecies, this.nComponents);\n\t};\n\t\n\t\n\t\n\tEquilibriumCalculator.prototype.getIonicStrength = function() {\n\t    return this.ionicStrength;\n\t};\n\t\n\t//Return fixed total component concentrations\n\tEquilibriumCalculator.prototype.getFixedTotalConcentrations = function() {\n\t    return this.fixedTotalComponentConcentrations.slice(0, this.nFixedTotalConcentrations);\n\t};\n\t\n\tEquilibriumCalculator.prototype.getSolutionEquilibriumConstants = function() {\n\t    return this.solutionSpeciesConstants.slice(0, this.nSolutionSpecies);\n\t};\n\t\n\tEquilibriumCalculator.prototype.getSolidEquilibriumConstants = function() {\n\t    return this.solidSpeciesConstants.slice(0 , this.nSolids);\n\t};\n\t\n\tEquilibriumCalculator.prototype.getSolutionSpeciesCharges = function() {\n\t    return this.solutionSpeciesCharges.slice(0, this.nSolutionSpecies);\n\t};\n\t\n\tEquilibriumCalculator.prototype.getSolidSpeciesCoefficients = function() {\n\t    return deepCopy(this.solidSpeciesCoefficients, this.nSolids, this.nComponents);\n\t};\n\t\n\tEquilibriumCalculator.prototype.getSolidsConcentrations = function() {\n\t    return this.solidSpeciesConcentrations.slice(0, this.nSolids);\n\t};\n\t\n\tEquilibriumCalculator.prototype.getSolutionSpeciesConcentrations = function() {\n\t    return this.solutionSpeciesConcentrations.slice(0, this.nSolutionSpecies);\n\t};\n\t\n\tEquilibriumCalculator.prototype.getNumberOfSolutionSpecies = function() {\n\t    return this.nSolutionSpecies;\n\t};\n\t\n\tEquilibriumCalculator.prototype.getNumberOfSolids = function() {\n\t    return this.nSolids;\n\t};\n\t\n\tEquilibriumCalculator.prototype.getNumberOfSpecies = function() {\n\t    return this.nSolids + this.nSolutionSpecies;\n\t};\n\t\n\tEquilibriumCalculator.prototype.getNumberOfComponents = function() {\n\t    return this.nComponents;\n\t};\n\t\n\tEquilibriumCalculator.prototype.getNumberOfUnfixedComponents = function() {\n\t    return this.nFixedTotalConcentrations;\n\t};\n\t\n\tEquilibriumCalculator.prototype.solutionSpeciesActivities = function()\n\t{\n\t    var result = initialize1DArray(this.nSolutionSpecies);\n\t    //initialize non-component species activities to their formation constant\n\t    var i, j;\n\t    for (i = this.nComponents; i < this.nSolutionSpecies; i++) {\n\t        result[i] = this.solutionSpeciesConstants[i];\n\t    }\n\t    for (i = 0; i < this.nComponents; i++) { //component activities are read directly from componentActivities array\n\t        result[i] = this.componentActivities[i];\n\t        for (j = this.nComponents; j < this.nSolutionSpecies; j++) { //non-component species activities are calculated from equilibrium constant expressions\n\t            result[j] *= Math.pow(this.componentActivities[i], this.solutionSpeciesCoefficients[j][i]);\n\t        }\n\t    }\n\t    return result;\n\t};\n\t//activity coefficients are computed using Davies' equation with A=0.5085 M^-1/2 (valid for water at 25°C)\n\t//note that activity coefficient of solvent has no meaning\n\tEquilibriumCalculator.prototype.solutionSpeciesActivityCoefficients = function()\n\t{\n\t    var result = initialize1DArray(this.nSolutionSpecies);\n\t    var exponentialCoefficient = Math.sqrt(this.ionicStrength);\n\t    exponentialCoefficient = (exponentialCoefficient / (1.0 + exponentialCoefficient) - 0.3 * this.ionicStrength) * -0.5085;\n\t    for (var i = 0; i < this.nSolutionSpecies; i++) {\n\t        result[i] = Math.exp(exponentialCoefficient * Math.pow(this.solutionSpeciesCharges[i], 2.0));\n\t    }\n\t    return result;\n\t};\n\t\n\t// note that species concentration value of solvent cannot be computed by this method, but we don't really care about it pretty much by definition.\n\t// It is set to 0 to make sure that it is not mistakenly used in any balance\n\tEquilibriumCalculator.prototype.calculateSolutionSpeciesConcentrations = function(correctActivities) {\n\t    this.solutionSpeciesConcentrations = this.solutionSpeciesActivities();\n\t    if (correctActivities) {\n\t        var activityCoefficients = this.solutionSpeciesActivityCoefficients();\n\t        for (var i = 0; i < this.nSolutionSpecies; i++) {\n\t            this.solutionSpeciesConcentrations[i] /= activityCoefficients[i];\n\t        }\n\t        this.solutionSpeciesConcentrations[(this.nComponents - 1)] = 0.0;\n\t    }\n\t};\n\t\n\t//computes the solubility products of all solid species\n\tEquilibriumCalculator.prototype.solubilityProducts = function() {\n\t    var result = initialize1DArray(this.nSolids);\n\t    for (var i = 0; i < this.nSolids; i++) {\n\t        result[i] = 1.0;\n\t        for (var j = 0; j < this.nComponents; j++) {\n\t            result[i] *= Math.pow(this.componentActivities[j], this.solidSpeciesCoefficients[i][j]);\n\t        }\n\t    }\n\t    return result;\n\t};\n\t\n\t//computes the ratios between each solid's solubility product and the corresponding solubility constant\n\tEquilibriumCalculator.prototype.saturationIndices = function()\n\t{\n\t    var  result = this.solubilityProducts();\n\t    for (var i = 0; i < this.nSolids; i++) {\n\t        result[i] /= this.solidSpeciesConstants[i];\n\t    }\n\t    return result;\n\t};\n\t\n\t//Total concentrations of ALL components but the solvent\n\t//Computed from current activities, not read from fixedTotalComponentConcentrations\n\tEquilibriumCalculator.prototype.totalConcentrations = function()\n\t{\n\t    return product(this.solutionSpeciesConcentrations, this.solutionSpeciesCoefficients, this.nSolutionSpecies, this.nComponents - 1);\n\t};\n\t\n\t//sets equilibrium concentration of a component\n\t// WARNING: does not fix the given equilibrium concentration, after assignment the system iterates to equilibrium and will change the\n\t// assigned component concentration unless it was already fixed at construction\n\tEquilibriumCalculator.prototype.setEquilibriumActivity = function(component, value) {\n\t    this.componentActivities[component] = value;\n\t};\n\t\n\t//sets the amount of a solid precipitated per litter of solution\n\tEquilibriumCalculator.prototype.setPrecipitateConcentration = function(solid, value) {\n\t    this.solidSpeciesConcentrations[solid] = value;\n\t};\n\t\n\t//set the total concentration of a component. Only allowed on components with total concentration fixed at construction\n\tEquilibriumCalculator.prototype.setTotalConcentration = function(component, value)\n\t{\n\t    this.fixedTotalComponentConcentrations[component] = value;\n\t    if (value == 0.0)\n\t    this.componentActivities[component] = 0.0;\n\t};\n\t\n\t//sets the value of an equilibrium constant. Concentration scaling factors for equilibrium concentration guesses are updated after assignment.\n\tEquilibriumCalculator.prototype.setSolutionEquilibriumConstant = function(constant, value) {\n\t    this.solutionSpeciesConstants[constant] = value;\n\t    var concScaling;\n\t    for (var i = 0; i < this.nFixedTotalConcentrations; i++) {\n\t        if (this.solutionSpeciesCoefficients[constant][i] != 0.0) {\n\t            concScaling = 1.0 / Math.pow(value, 1.0 / this.solutionSpeciesCoefficients[constant][i]);\n\t            if (concScaling < this.concentrationScaling[i])\n\t                this.concentrationScaling[i] = concScaling;\n\t        }\n\t    }\n\t};\n\t\n\t//sets the value of an equilibrium constant. Concentration scaling factors for equilibrium concentration guesses are updated after assignment.\n\tEquilibriumCalculator.prototype.setSolidEquilibriumConstant = function(constant, value)\n\t{\n\t    this.solidSpeciesConstants[constant] = value;\n\t    var concScaling;\n\t    for (var i = 0; i < this.nFixedTotalConcentrations; i++) {\n\t        if (this.solidSpeciesCoefficients[constant][i] != 0.0) {\n\t            concScaling = 1.0 / Math.pow(value, 1.0 / this.solidSpeciesCoefficients[constant][i]);\n\t            if (concScaling < this.concentrationScaling[i])\n\t                this.concentrationScaling[i] = concScaling;\n\t        }\n\t    }\n\t};\n\t\n\tEquilibriumCalculator.prototype.setIonicStrength = function(ionicStrength) {\n\t    this.ionicStrength = ionicStrength;\n\t};\n\t\n\t\n\tEquilibriumCalculator.prototype.calculatedIonicStrength = function() {\n\t    var result = 0.0;\n\t    for (var i = 0; i < this.nSolutionSpecies; i++) {\n\t        result += Math.pow(this.solutionSpeciesCharges[i], 2.0) * this.solutionSpeciesConcentrations[i];\n\t    }\n\t    return result / 2.0;\n\t};\n\t\n\t//shifts all solid species towards solution\n\t//NOTE: what am i using this for?\n\tEquilibriumCalculator.prototype.disolveAll = function(correctActivities) {\n\t    for (var j = 0; j < this.nSolids; j++)\n\t    disolve(this, j, correctActivities);\n\t};\n\t\n\t//remove the species itself\n\tEquilibriumCalculator.prototype.removeSolutionSpecies = function(species) {\n\t    this.nSolutionSpecies -= 1;\n\t    var i,j;\n\t    //if species is a component, remove all its derived species and remove it from components and coefficients arrays\n\t    for (i = species; i < this.nSolutionSpecies; i++) {\n\t        this.solutionSpeciesCharges[i] = this.solutionSpeciesCharges[(i + 1)];\n\t        this.solutionSpeciesConcentrations[i] = this.solutionSpeciesConcentrations[(i + 1)];\n\t        this.solutionSpeciesConstants[i] = this.solutionSpeciesConstants[(i + 1)];\n\t        this.solutionSpeciesCoefficients[i] = this.solutionSpeciesCoefficients[(i + 1)];\n\t    }\n\t\n\t    if (species < this.nComponents) {\n\t        //remove derived solution species\n\t        for (i = 0; i < this.nSolutionSpecies; i++) {\n\t            if (this.solutionSpeciesCoefficients[i][species] != 0.0) {\n\t                this.removeSolutionSpecies(i);\n\t                i--;\n\t            }\n\t            else {\n\t                //remove from coefficients of solution reactions\n\t                for (j = species; j < this.nComponents - 1; j++) {\n\t                    this.solutionSpeciesCoefficients[i][j] = this.solutionSpeciesCoefficients[i][j + 1];\n\t                }\n\t            }\n\t        }\n\t        //remove derived solid species\n\t        for (i = 0; i < this.nSolids; i++) {\n\t            if (this.solidSpeciesCoefficients[i][species] != 0.0) {\n\t                this.removeSolid(i);\n\t                i--;\n\t            }\n\t            else { //remove from coefficients of solid reactions\n\t                for (j = species; j < this.nComponents - 1; j++) {\n\t                    this.solidSpeciesCoefficients[i][j] = this.solidSpeciesCoefficients[i][(j + 1)];\n\t                }\n\t            }\n\t        }\n\t\n\t        //remove the component itself\n\t        this.nComponents -= 1;\n\t        if (species < this.nFixedTotalConcentrations) {\n\t            //if species is an unfixed component (unfixed activity) remove it from total concentration array as well\n\t            this.nFixedTotalConcentrations -= 1;\n\t            for (i = species; i < this.nFixedTotalConcentrations; i++) {\n\t                this.fixedTotalComponentConcentrations[i] = this.fixedTotalComponentConcentrations[i + 1];\n\t                this.componentActivities[i] = this.componentActivities[i + 1];\n\t            }\n\t            for (i = this.nFixedTotalConcentrations; i < this.nComponents; i++)\n\t                this.componentActivities[i] = this.componentActivities[(i + 1)];\n\t        }\n\t        else\n\t        {\n\t            for (i = species; i < this.nComponents; i++)\n\t                this.componentActivities[i] = this.componentActivities[(i + 1)];\n\t        }\n\t    }\n\t};\n\t\n\tEquilibriumCalculator.prototype.removeSolid = function(solid) {\n\t    this.nSolids -= 1;\n\t    if (this.nSolids > 0) {\n\t        for (var i = solid; i < this.nSolids; i++) {\n\t            this.solidSpeciesConcentrations[i] = this.solidSpeciesConcentrations[(i + 1)];\n\t            this.solidSpeciesConstants[i] = this.solidSpeciesConstants[(i + 1)];\n\t            this.solidSpeciesCoefficients[i] = this.solidSpeciesCoefficients[(i + 1)];\n\t        }\n\t    }\n\t    else {\n\t        this.solidSpeciesCoefficients = [[]];\n\t        this.solidSpeciesConcentrations = [];\n\t        this.solidSpeciesConstants = [];\n\t    }\n\t};\n\t\n\tEquilibriumCalculator.prototype.addSolutionSpecies = function(){\n\t};\n\t\n\tEquilibriumCalculator.prototype.addSolid = function() {\n\t};\n\t\n\tEquilibriumCalculator.prototype.addComponent = function() {\n\t};\n\t\n\t//returns the equilibriumCalculator object comprising only components with non-zero total concentrations and their derived species\n\tEquilibriumCalculator.prototype.removeZeroConcentrations = function()\n\t{\n\t    var result = new EquilibriumCalculator(this);\n\t    for (var i = 0; i < result.nFixedTotalConcentrations; i++) {\n\t        if (result.fixedTotalComponentConcentrations[i] == 0.0) {\n\t            result.removeSolutionSpecies(i);\n\t            i--;\n\t        }\n\t    }\n\t    return result;\n\t};\n\t\n\tEquilibriumCalculator.prototype.calculate = function(correctActivities, fixedIonicStrength, maxIterations, precision, maxGuesses) {\n\t    if(arguments.length === 2) {\n\t        return this.calculate(correctActivities, fixedIonicStrength, 99999, this.maxGuesses, 0.0001);\n\t    }\n\t    else if(arguments.length === 4) {\n\t        return this.calculate(correctActivities, fixedIonicStrength, maxIterations, this.maxGuesses, precision);\n\t    }\n\t    else if(arguments.length === 5) {\n\t        var tmp; tmp = maxGuesses;\n\t        maxGuesses = precision;\n\t        precision = tmp;\n\t\n\t        var nGuesses = 0, i, result;\n\t        if (!correctActivities) {\n\t            this.componentActivities[(this.nComponents - 1)] = 1.0;\n\t        }\n\t        while (nGuesses < maxGuesses) {\n\t            try {\n\t                nGuesses++;\n\t                result = calculateOnePoint(this, correctActivities, fixedIonicStrength, maxIterations, precision);\n\t                if (result == maxIterations) {\n\t                    //console.log(\"maximum number of iterations reached, result is not trustworthy\");\n\t                }\n\t                //console.log(\"Solution found will now be checked\");\n\t                while ((hasNegative(this.finalConcentrations(), this.nSolutionSpecies + this.nSolids)) && (nGuesses < maxGuesses)) {\n\t                    nGuesses++;\n\t                    //console.log(\"Inadequate solution (negative, infinite, or not a number), computing with the \" + nGuesses + \"th  guess\");\n\t\n\t                    guess(this, correctActivities, fixedIonicStrength);\n\t                    result = calculateOnePoint(this, correctActivities, fixedIonicStrength, maxIterations, precision);\n\t                    if (result == maxIterations) {\n\t                        //console.log(\"maximum number of iterations reached, result is not trustworthy\");\n\t                    }\n\t                    //console.log(\"Solution found will now be checked\");\n\t                }\n\t                if (hasNegative(this.finalConcentrations(), this.nSolutionSpecies + this.nSolids)) {\n\t                    return \"No successful guess\";\n\t                }\n\t                if (result < maxIterations) {\n\t                    return \"Adequate solution\";\n\t                }\n\t                return \"Last guess failed to converge, results might not be valid!\";\n\t            } catch (e) {\n\t                if (nGuesses < maxGuesses) {\n\t                    console.log(e.stack);\n\t                    console.log(\"Error occurred during calculation (\" + e + \"), retrying with the \" + (nGuesses + 1) + \"th guess\");\n\t                    for (i = 0; i < this.nSolids; i++) {\n\t                        this.solidSpeciesConcentrations[i] = 0.0;\n\t                    }\n\t                    guess(this, correctActivities, fixedIonicStrength);\n\t                }\n\t\n\t            }\n\t\n\t        }\n\t\n\t        console.log(\"Error\");\n\t        return \"Error\";\n\t    }\n\t};\n\t\n\t\n\t\n\t// Private =======================================================\n\t\n\t//shifts the whole precipitated mass of a solid species towards solution\n\t//all dissolved solid is put in the form of its components. Naturally, leaves solution unbalanced\n\t//the corresponding activities are corrected using the current ionic strength, ionic strength is not corrected for the increased solution species concentrations.\n\t//WARNING: consequences of using on an unbalanced solution are unknown. Privatized just in case.\n\tfunction disolve(ctx, solid, correctActivities) {\n\t    for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        ctx.solutionSpeciesConcentrations[i] +=\n\t            ctx.solidSpeciesConcentrations[solid] * ctx.solidSpeciesCoefficients[solid][i];\n\t        ctx.componentActivities[i] = ctx.solutionSpeciesConcentrations[i];\n\t    }\n\t    ctx.solidSpeciesConcentrations[solid] = 0.0;\n\t    if (correctActivities) {\n\t        var activityCoefficients = ctx.solutionSpeciesActivityCoefficients();\n\t        for (i = 0; i < ctx.nFixedTotalConcentrations; i++)\n\t            ctx.componentActivities[i] /= activityCoefficients[i];\n\t    }\n\t}\n\t\n\t//computes solvent activity using an approximation based on raoult's law (same used by phreeqc)\n\tfunction calculatedSolventActivity(ctx) {\n\t    var result = 0.0;\n\t    for(var i=0; i<ctx.solutionSpeciesConcentrations.length ; i++) {\n\t        result += ctx.solutionSpeciesConcentrations[i];\n\t    }\n\t    return 1.0 - 0.017 * result;\n\t}\n\t\n\t//randomly guess equilibrium activities for the system's components and updates species concentrations, ionic strength, and solvent activity\n\tfunction guess(ctx, correctActivities, fixedIonicStrength)\n\t{\n\t    var factor = ctx.rnd();\n\t    //console.log('factor', factor);\n\t    var i;\n\t    //guess variable component activities\n\t    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t    ctx.componentActivities[i] = (ctx.fixedTotalComponentConcentrations[i] * Math.pow(ctx.concentrationScaling[i], factor));\n\t}\n\t    //guess ionic strength as that computed from species concentrations computed assuming ionic strength = zero and solvent activity = 1\n\t    //guess solvent activity as that computed from species concentrations computed assuming ionic strength = zero and solvent activity = 1\n\t    ctx.componentActivities[(ctx.nComponents - 1)] = 1.0;\n\t    if (correctActivities) {\n\t        if (!fixedIonicStrength) {\n\t            ctx.ionicStrength = 0.0;\n\t        }\n\t        ctx.calculateSolutionSpeciesConcentrations(correctActivities);\n\t        if (!fixedIonicStrength) {\n\t            ctx.ionicStrength = ctx.calculatedIonicStrength();\n\t        }\n\t        ctx.componentActivities[(ctx.nComponents - 1)] = calculatedSolventActivity(ctx);\n\t    }\n\t\n\t    for (i = 0; i < ctx.nSolids; i++)\n\t    ctx.solidSpeciesConcentrations[i] = 0.0;\n\t}\n\t\n\t// balance for solution components, given solid species, and ionic strength if desired\n\t// balance equations for solution components with unfixed activities but fixed total concentrations is the difference between\n\t// the fixed total concentration and the total concentration computed from the current equilibrium concentrations\n\t// balance equation for ionic strength is the difference between the current ionic strength and that computed from current species concentrations\n\t// balance equation for solids is the difference between the solubility constant and the current solubility product\n\tfunction balance(ctx, correctActivities, fixedIonicStrength, solids) {\n\t    //sub-optimal code for the sake of readability\n\t    var solidsLength = solids.length;\n\t    var balanceError = [];\n\t    // initialization and activity correction-contingent balances\n\t    if (correctActivities)\n\t    {\n\t        if (fixedIonicStrength) {\n\t            balanceError = initialize1DArray(ctx.nFixedTotalConcentrations + solidsLength + 1);\n\t        }\n\t        else {\n\t            balanceError = initialize1DArray(ctx.nFixedTotalConcentrations + solidsLength + 2);\n\t            //balance of ionic strength\n\t            balanceError[(ctx.nFixedTotalConcentrations + solidsLength + 1)] = (ctx.ionicStrength - ctx.calculatedIonicStrength());\n\t        }\n\t        //balance of solvent activity\n\t        balanceError[(ctx.nFixedTotalConcentrations + solidsLength)] = (ctx.componentActivities[(ctx.nComponents - 1)] - calculatedSolventActivity(ctx));\n\t    }\n\t    else {\n\t        balanceError = initialize1DArray(ctx.nFixedTotalConcentrations + solidsLength);\n\t    }\n\t    //balance of solution components\n\t    //substract solution species\n\t    balanceError = sum(balanceError, minus(ctx.fixedTotalComponentConcentrations,\n\t        product(ctx.solutionSpeciesConcentrations, ctx.solutionSpeciesCoefficients, ctx.nSolutionSpecies, ctx.nFixedTotalConcentrations),\n\t        ctx.nFixedTotalConcentrations), ctx.nFixedTotalConcentrations, true);\n\t\n\t    //substract solid species\n\t    if (ctx.nSolids > 0) {\n\t        balanceError = minus(balanceError,\n\t            product(ctx.solidSpeciesConcentrations, ctx.solidSpeciesCoefficients, ctx.nSolids, ctx.nFixedTotalConcentrations),\n\t            ctx.nFixedTotalConcentrations, true);\n\t    }\n\t\n\t    //balance of solids\n\t    var solubilityProducts = ctx.solubilityProducts();\n\t    var solidIndex = ctx.nFixedTotalConcentrations;\n\t    for (var i=0; i<solids.length; i++) {\n\t        balanceError[solidIndex] = (ctx.solidSpeciesConstants[solids[i]] - solubilityProducts[solids[i]]);\n\t        solidIndex++;\n\t    }\n\t\n\t    return balanceError;\n\t}\n\t\n\tfunction componentComponentDerivatives(ctx) {\n\t    var i, j,k;\n\t    var result = initialize2DArray(ctx.nFixedTotalConcentrations, ctx.nFixedTotalConcentrations);\n\t    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        for (j = 0; j < ctx.nFixedTotalConcentrations; j++) {\n\t            result[i][j] = 0.0;\n\t            for (k = 0; k < ctx.nSolutionSpecies; k++) {\n\t                result[i][j] += ctx.solutionSpeciesCoefficients[k][j] * ctx.solutionSpeciesCoefficients[k][i] * ctx.solutionSpeciesConcentrations[k];\n\t            }\n\t            result[i][j] /= ctx.componentActivities[i];\n\t        }\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction componentIonicStrengthDerivatives(ctx) {\n\t    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n\t    var i, j;\n\t    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        result[i] = 0.0;\n\t        for (j = 0; j < ctx.nSolutionSpecies; j++) {\n\t            result[i] +=\n\t                ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCoefficients[j][i] *\n\t                ctx.solutionSpeciesConcentrations[j];\n\t        }\n\t        result[i] = (result[i] * 0.5085 * (1.0 / (2.0 * Math.sqrt(ctx.ionicStrength) * Math.pow(1.0 + Math.sqrt(ctx.ionicStrength), 2.0)) - 0.3));\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction componentSolidDerivatives(ctx, solids) {\n\t    var result = initialize2DArray(solids.length, ctx.nFixedTotalConcentrations);\n\t    var solidIndex = 0;\n\t    for (var j=0; j<solids.length; j++) {\n\t        for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t            result[solidIndex][i] = ctx.solidSpeciesCoefficients[solids[j]][i];\n\t        }\n\t        solidIndex++;\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction componentSolventDerivatives(ctx) {\n\t    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n\t    var solventActivity = ctx.componentActivities[(ctx.nComponents - 1)];\n\t    for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        for (var j = 0; j < ctx.nSolutionSpecies; j++) {\n\t            result[i] +=\n\t                ctx.solutionSpeciesCoefficients[j][i] * ctx.solutionSpeciesCoefficients[j][(ctx.nComponents - 1)] * ctx.solutionSpeciesConcentrations[j];\n\t        }\n\t        result[i] /= solventActivity;\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction solidComponentDerivatives(ctx, solids) {\n\t    var result = initialize2DArray(ctx.nFixedTotalConcentrations, solids.length);\n\t    var solubilityProducts = ctx.solubilityProducts();\n\t    var solidIndex = 0;\n\t    for (var j=0; j<solids.length; j++) {\n\t        for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t            result[i][solidIndex] = (solubilityProducts[solids[j]] * ctx.solidSpeciesCoefficients[solids[j]][i] / ctx.componentActivities[i]);\n\t        }\n\t        solidIndex++;\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction solidSolventDerivatives(ctx, solids) {\n\t    var result = initialize1DArray(solids.length);\n\t    var solubilityProducts = ctx.solubilityProducts();\n\t    var solventActivity = ctx.componentActivities[(ctx.nComponents - 1)];\n\t    var solidIndex = 0;\n\t    for (var j=0; j<solids.length; j++) {\n\t        result[solidIndex] = (ctx.solidSpeciesCoefficients[solids[j]][(ctx.nComponents - 1)] * solubilityProducts[solids[j]] / solventActivity);\n\t        solidIndex++;\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction ionicStrengthComponentDerivatives(ctx) {\n\t    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n\t    var i,j;\n\t    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        result[i] = 0.0;\n\t        for (j = 0; j < ctx.nSolutionSpecies; j++) {\n\t            result[i] +=\n\t                ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCoefficients[j][i] *\n\t                ctx.solutionSpeciesConcentrations[j];\n\t        }\n\t        result[i] /= 2.0 * ctx.componentActivities[i];\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction ionicStrengthIonicStrengthDerivative(ctx) {\n\t    var result = 0.0;\n\t    var i;\n\t    for (i = 0; i < ctx.nSolutionSpecies; i++) {\n\t        result += Math.pow(ctx.solutionSpeciesCharges[i], 4.0) * ctx.solutionSpeciesConcentrations[i];\n\t    }\n\t    result = result * 0.25425 * (1.0 / (2.0 * Math.sqrt(ctx.ionicStrength) * Math.pow(1.0 + Math.sqrt(ctx.ionicStrength), 2.0)) - 0.3) - 1.0;\n\t    return result;\n\t}\n\t\n\tfunction ionicStrengthSolventDerivative(ctx) {\n\t    var result = 0.0;\n\t    var i;\n\t    for (i = 0; i < ctx.nSolutionSpecies; i++) {\n\t        result += Math.pow(ctx.solutionSpeciesCharges[i], 2.0) * ctx.solutionSpeciesCoefficients[i][(ctx.nComponents - 1)] * ctx.solutionSpeciesConcentrations[i];\n\t    }\n\t    return result / (ctx.componentActivities[(ctx.nComponents - 1)] * 2.0);\n\t}\n\t\n\tfunction solventComponentsDerivatives(ctx) {\n\t    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n\t    var i,j;\n\t    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        for (j = 0; j < ctx.nSolutionSpecies; j++) {\n\t            result[i] += ctx.solutionSpeciesCoefficients[j][i] * ctx.solutionSpeciesConcentrations[j];\n\t        }\n\t        result[i] = (result[i] * 0.017 / ctx.componentActivities[i]);\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction solventIonicStrengthDerivative(ctx) {\n\t    var result = 0.0;\n\t    var i;\n\t    for (i = 0; i < ctx.nSolutionSpecies; i++) {\n\t        result += Math.pow(ctx.solutionSpeciesCharges[i], 2.0) * ctx.solutionSpeciesConcentrations[i];\n\t    }\n\t    return result * -0.017 * 0.5085 * (1.0 / (2.0 * Math.sqrt(ctx.ionicStrength) * Math.pow(1.0 + Math.sqrt(ctx.ionicStrength), 2.0)) - 0.3);\n\t}\n\t\n\tfunction solventSolventDerivative(ctx) {\n\t    var result = 0.0;\n\t    for (var i = 0; i < ctx.nSolutionSpecies; i++) {\n\t        result += ctx.solutionSpeciesConcentrations[i];\n\t    }\n\t    return -1.0 - result * 0.017;\n\t}\n\t\n\t// Jacobian of balance\n\t// actually it returns jacobian * -1\n\tfunction balanceJacobian(ctx, correctActivities, fixedIonicStrength, solids) {\n\t    //derivatives are calculated using the adequate methods (or trivially if that is the case) and then copied in the adequate blocks of the jacobian\n\t    var componentComponent = componentComponentDerivatives(ctx);\n\t    var componentSolid = componentSolidDerivatives(ctx, solids);\n\t    var solidComponent = solidComponentDerivatives(ctx, solids);\n\t    var solidsLength = solids.length;\n\t    var jacobian = [[]];\n\t    var i, j;\n\t\n\t    //reserve the correct amount of space for the jacobian and compute activity correction-contingent elements\n\t    if (correctActivities)\n\t    {\n\t        if (fixedIonicStrength) {\n\t            jacobian = initialize2DArray(ctx.nFixedTotalConcentrations + solidsLength + 1,ctx.nFixedTotalConcentrations + solidsLength + 1);\n\t        }\n\t        else {\n\t            jacobian = initialize2DArray(ctx.nFixedTotalConcentrations + solidsLength + 2,ctx.nFixedTotalConcentrations + solidsLength + 2);\n\t            var ionicComponent = ionicStrengthComponentDerivatives(ctx);\n\t            var componentIonic = componentIonicStrengthDerivatives(ctx);\n\t\n\t            //copy ionic strength - component and component -ionic strength derivatives\n\t            for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t                jacobian[i][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = ionicComponent[i];\n\t                jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][i] = componentIonic[i];\n\t            }\n\t\n\t            //copy ionic strength - solid and solid - ionic strength derivatives\n\t            for (i = 0; i < solidsLength; i++) {\n\t                jacobian[i][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = 0.0;\n\t                jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][i] = 0.0;\n\t            }\n\t\n\t            //ionic strength - ionic strength derivative\n\t            jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = ionicStrengthIonicStrengthDerivative(ctx);\n\t\n\t            //ionic strength - solvent and solvent - ionic strength derivatives\n\t            jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][(ctx.nFixedTotalConcentrations + solidsLength)] = solventIonicStrengthDerivative(ctx);\n\t            jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = ionicStrengthSolventDerivative(ctx);\n\t        }\n\t        var solventComponent = solventComponentsDerivatives(ctx);\n\t        var componentSolvent = componentSolventDerivatives(ctx);\n\t        var solidSolvent = solidSolventDerivatives(ctx, solids);\n\t\n\t        //copy solvent-component and component-solvent derivatives\n\t        for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        jacobian[i][(ctx.nFixedTotalConcentrations + solidsLength)] = solventComponent[i];\n\t        jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][i] = componentSolvent[i];\n\t    }\n\t\n\t        //copy solid-solvent derivatives and set solvent-solid derivatives to zero\n\t        for (i = 0; i < solidsLength; i++) {\n\t        jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][(i + ctx.nFixedTotalConcentrations)] = solidSolvent[i];\n\t        jacobian[(i + ctx.nFixedTotalConcentrations)][(ctx.nFixedTotalConcentrations + solidsLength)] = 0.0;\n\t    }\n\t        //solvent - solvent derivative\n\t        jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][(ctx.nFixedTotalConcentrations + solidsLength)] = solventSolventDerivative(ctx);\n\t    }\n\t    else {\n\t        jacobian = initialize2DArray(ctx.nFixedTotalConcentrations + solidsLength, ctx.nFixedTotalConcentrations + solidsLength);\n\t    }\n\t\n\t    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        //copy component - component derivatives\n\t        for (j = i; j < ctx.nFixedTotalConcentrations; j++) {\n\t        jacobian[i][j] = componentComponent[i][j];\n\t        jacobian[j][i] = componentComponent[j][i];\n\t    }\n\t\n\t        //copy component - solid and solid - component derivatives\n\t        for (j = 0; j < solidsLength; j++) {\n\t        jacobian[i][(ctx.nFixedTotalConcentrations + j)] = solidComponent[i][j];\n\t        jacobian[(ctx.nFixedTotalConcentrations + j)][i] = componentSolid[j][i];\n\t    }\n\t    }\n\t\n\t    //copy solid - solid derivatives (zero-valued)\n\t    for (i = 0; i < solidsLength; i++) {\n\t        for (j = i; j < solidsLength; j++) {\n\t            jacobian[(ctx.nFixedTotalConcentrations + i)][(ctx.nFixedTotalConcentrations + j)] = 0.0;\n\t            jacobian[(ctx.nFixedTotalConcentrations + j)][(ctx.nFixedTotalConcentrations + i)] = 0.0;\n\t        }\n\t    }\n\t    return jacobian;\n\t}\n\t\n\tfunction equilibrateNoSolids(ctx, correctActivities, fixedIonicStrength, maxIterations, precision) {\n\t    var noSolids = [];\n\t    return equilibrate(ctx, correctActivities, fixedIonicStrength, noSolids, maxIterations, precision);\n\t}\n\t\n\t//WARNING unwarranted behavior if correctActivities=false and fixedIonicStrength=true. Prevent such ocurrence in the public method\n\t//Returns the number of iterations run\n\tfunction equilibrate(ctx, correctActivities, fixedIonicStrength, solids, maxIterations, precision) {\n\t    if(arguments.length <= 5) return equilibrateNoSolids.apply(null, arguments);\n\t    if (hasZero(ctx.fixedTotalComponentConcentrations, ctx.nFixedTotalConcentrations)) {\n\t        var reducedSystem = ctx.removeZeroConcentrations();\n\t        var result = equilibrate(reducedSystem, correctActivities, fixedIonicStrength, solids, maxIterations, precision);\n\t\n\t        //copy solution species concentrations\n\t        var i, j,k = 0, present;\n\t\n\t        var solutionConcentrations = reducedSystem.getSolutionSpeciesConcentrations();\n\t        for (i = 0; i < ctx.nSolutionSpecies; i++) {\n\t            present = true;\n\t            for (j = 0; j < ctx.nComponents; j++) { //nFixedTotalConcentrations?\n\t                if ((ctx.solutionSpeciesCoefficients[i][j] != 0.0) && (ctx.componentActivities[j] == 0.0)) {\n\t                    present = false;\n\t                    ctx.solutionSpeciesConcentrations[i] = 0.0;\n\t                    break;\n\t                }\n\t            }\n\t            if (present) {\n\t                ctx.solutionSpeciesConcentrations[i] = solutionConcentrations[k];\n\t                k++;\n\t            }\n\t        }\n\t\n\t        //copy solid species concentrations\n\t        k = 0;\n\t        var solidConcentrations = reducedSystem.getSolidsConcentrations();\n\t        for (i = 0; i < ctx.nSolids; i++) {\n\t            present = true;\n\t            for (j = 0; j < ctx.nComponents; j++) {\n\t                if ((ctx.solidSpeciesCoefficients[i][j] != 0.0) && (ctx.componentActivities[j] == 0.0)) {\n\t                    present = false;\n\t                    ctx.solidSpeciesConcentrations[i] = 0.0;\n\t                    break;\n\t                }\n\t            }\n\t            if (present) {\n\t                ctx.solidSpeciesConcentrations[i] = solidConcentrations[k];\n\t                k++;\n\t            }\n\t        }\n\t\n\t        //copy component activities\n\t        var nonZeroEquilibriumActivities = reducedSystem.getComponentActivities();\n\t        k = 0;\n\t        for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t            if (ctx.fixedTotalComponentConcentrations[i] != 0.0) {\n\t                ctx.componentActivities[i] = nonZeroEquilibriumActivities[k];\n\t                k++;\n\t            }\n\t        }\n\t\n\t        //copy ionic strength\n\t        if (correctActivities) {\n\t            ctx.ionicStrength = reducedSystem.getIonicStrength();\n\t        }\n\t        return result;\n\t    }\n\t\n\t    var iterations = 1;\n\t    var solidsLength = solids.length;\n\t\n\t    //species concentrations must be updated before balancing\n\t    ctx.calculateSolutionSpeciesConcentrations(correctActivities);\n\t    var totalError = balance(ctx, correctActivities, fixedIonicStrength, solids);\n\t\n\t    //last condition in the while statement (second term of the or) may be unnecessary... or, on the contrary, a similar condition on solution species may be necessary\n\t    while ((iterations <= maxIterations) && (maximumRelativeError(ctx, totalError, solids, correctActivities, fixedIonicStrength) > precision))\n\t    {\n\t        var jacobian = new Matrix(balanceJacobian(ctx, correctActivities, fixedIonicStrength, solids));\n\t        var inverseJacobian = jacobian.inverse().to2DArray();\n\t        var shifts;\n\t        //computation of shift vector with an adequately sized product and activity correction-contingent shifts\n\t        if (correctActivities)\n\t        {\n\t            if (fixedIonicStrength) {\n\t                shifts = product(totalError, inverseJacobian, ctx.nFixedTotalConcentrations + solidsLength + 1, ctx.nFixedTotalConcentrations + solidsLength + 1);\n\t            }\n\t            else {\n\t                shifts = product(totalError, inverseJacobian, ctx.nFixedTotalConcentrations + solidsLength + 2, ctx.nFixedTotalConcentrations + solidsLength + 2);\n\t                //shift ionic strength\n\t                ctx.ionicStrength += shifts[(ctx.nFixedTotalConcentrations + solidsLength + 1)];\n\t            }\n\t\n\t            //shift solvent activity\n\t            ctx.componentActivities[(ctx.nComponents - 1)] += shifts[(ctx.nFixedTotalConcentrations + solidsLength)];\n\t        }\n\t        else {\n\t            shifts = product(totalError, inverseJacobian, ctx.nFixedTotalConcentrations + solidsLength, ctx.nFixedTotalConcentrations + solidsLength);\n\t        }\n\t\n\t        //shift component activities\n\t        ctx.componentActivities = sum(ctx.componentActivities, shifts, ctx.nFixedTotalConcentrations, true);\n\t\n\t        var solidIndex = ctx.nFixedTotalConcentrations;\n\t        for (i=0; i<solids.length; i++) {\n\t        ctx.solidSpeciesConcentrations[solids[i]] += shifts[solidIndex];\n\t        solidIndex++;\n\t    }\n\t\n\t        //update species concentrations\n\t        ctx.calculateSolutionSpeciesConcentrations(correctActivities);\n\t        totalError = balance(ctx, correctActivities, fixedIonicStrength, solids);\n\t        iterations++;\n\t    }\n\t    if (iterations === 1) {\n\t        //console.log(\"Equilibrium reached after \" + iterations + \" iterations\");\n\t        return iterations;\n\t    }\n\t    if (iterations > maxIterations) {\n\t        //console.log(\"maximum number of iterations reached without convergence\");\n\t    }\n\t    else {\n\t        //console.log(\"Equilibrium reached after \" + (iterations - 1) + \" iterations\");\n\t    }\n\t    return iterations - 1;\n\t}\n\t\n\t//relative error on total concentrations\n\tfunction maximumRelativeError(ctx, errors, solids, correctActivities, fixedIonicStrength) {\n\t    var  maxError = 0.0, i;\n\t\n\t    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n\t        maxError = Math.max(maxError, Math.abs(errors[i] / ctx.fixedTotalComponentConcentrations[i]));\n\t    }\n\t    var solidIndex = ctx.nFixedTotalConcentrations;\n\t\n\t    //relative error on solid solubility products\n\t    for (i=0; i<solids.length; i++) {\n\t        maxError = Math.max(maxError, Math.abs(errors[solidIndex] / ctx.solidSpeciesConstants[solids[i]]));\n\t        solidIndex++;\n\t    }\n\t    if (correctActivities) {\n\t        //relative error on solvent activity\n\t        maxError = Math.max(maxError, Math.abs(errors[solidIndex] / ctx.componentActivities[(ctx.nComponents - 1)]));\n\t        if (!fixedIonicStrength) {\n\t            //relative error on ionic strength\n\t            maxError = Math.max(maxError, Math.abs(errors[(solidIndex + 1)] / ctx.ionicStrength));\n\t        }\n\t    }\n\t    return maxError;\n\t}\n\t\n\tfunction mostInsoluble(ctx) {\n\t    var saturationIndices = ctx.saturationIndices();\n\t    var result = 0, i;\n\t    for (i = 0; i < ctx.nSolids; i++) {\n\t        if (saturationIndices[i] > saturationIndices[result]) {\n\t            result = i;\n\t        }\n\t    }\n\t    return result;\n\t}\n\t\n\t//returns the number of iterations in the last run of equilibrate (the one that ends with no oversaturated/insaturated solid) or\n\t//maxIterations if maximum number of precipitation cycles was exausted\n\tfunction calculateOnePoint(ctx, correctActivities, fixedIonicStrength, maxIterations, precision)\n\t{\n\t    var currentSolid = 0;\n\t    var solidsToPrecipitate = [];\n\t    var precipitationCycles = 0;\n\t    var i;\n\t    //console.log(\"Iterating solution towards equilibrium...\");\n\t    var result = equilibrate(ctx, correctActivities, fixedIonicStrength, solidsToPrecipitate, maxIterations, precision);\n\t\n\t    if (ctx.nSolids > 0) {\n\t        var saturationIndices = ctx.saturationIndices();\n\t\n\t        //disolve all insaturated\n\t        for (i = 0; i < ctx.nSolids; i++) {\n\t            if ((ctx.solidSpeciesConcentrations[i] > 0.0) && (1.0 - saturationIndices[i] > precision)) {\n\t                disolve(ctx, i, correctActivities);\n\t            }\n\t        }\n\t        result = equilibrate(ctx,correctActivities, fixedIonicStrength, maxIterations, precision);\n\t\n\t        saturationIndices = ctx.saturationIndices();\n\t        currentSolid = mostInsoluble(ctx);\n\t\n\t        while ((saturationIndices[currentSolid] - 1.0 > precision) && (precipitationCycles <= ctx.nSolids))\n\t        {\n\t            precipitationCycles++;\n\t            //console.log(\"Solid \" + currentSolid + \" is over-saturated and will be included in the global balance\");\n\t            //console.log(\"Iterating the extended system towards equilibrium...\");\n\t            solidsToPrecipitate = solidsToPrecipitate.slice(0, solidsToPrecipitate.length + 1);\n\t            solidsToPrecipitate[(solidsToPrecipitate.length - 1)] = currentSolid;\n\t            equilibrate(ctx, correctActivities, fixedIonicStrength, solidsToPrecipitate, maxIterations, precision);\n\t            saturationIndices = ctx.saturationIndices();\n\t            for (i = 0; i < ctx.nSolids; i++) {\n\t                if ((ctx.solidSpeciesConcentrations[i] > 0.0) && (1.0 - saturationIndices[i] > precision)) {\n\t                    disolve(ctx, i, correctActivities);\n\t                }\n\t            }\n\t            result = equilibrate(ctx, correctActivities, fixedIonicStrength, maxIterations, precision);\n\t            saturationIndices = ctx.saturationIndices();\n\t\n\t            currentSolid = mostInsoluble(ctx);\n\t        }\n\t    }\n\t\n\t    if (precipitationCycles > ctx.nSolids) {\n\t        //console.log(\"Solid phases could not be equilibrated with the solution\");\n\t        return maxIterations;\n\t    }\n\t    //console.log(\"All solid phases are now in equilibrium with the solution\");\n\t    return result;\n\t}\n\t\n\tfunction hasZero(arr, nElements) {\n\t    var i;\n\t    for (i = 0; i < nElements; i++) {\n\t        if (arr[i] == 0.0) {\n\t            return true;\n\t        }\n\t    }\n\t    return false;\n\t}\n\t\n\tfunction hasNegative(arr, nElements) {\n\t    for (var i = 0; i < nElements; i++) {\n\t        if (arr[i] < 0.0 || arr[i] === Infinity || arr[i] === -Infinity || isNaN(arr[i]))\n\t            return true;\n\t    }\n\t    return false;\n\t}\n\t\n\tfunction hasError(ctx, val, nElements) {\n\t    if(argements.length === 1) {\n\t        return (hasError(ctx.componentActivities, ctx.nComponents)) ||\n\t            (hasError(getSolutionSpeciesConcentrations(), ctx.nSolutionSpecies)) ||\n\t            (hasError(getSolidsConcentrations(), ctx.nSolids)) ||\n\t            (hasError(getIonicStrength()));\n\t    }\n\t    if(arguments.length === 2) {\n\t        return val === Infinity || val === -Infinity;\n\t    }\n\t    if(arguments.length === 3) {\n\t        if(typeof val !== Array) return true;\n\t        for (var i = 0; i < nElements; i++) {\n\t            if (val[i] === Infinity || val[i] === -Infinity)\n\t                return true;\n\t        }\n\t        return false;\n\t    }\n\t\n\t}\n\t\n\tfunction product(a1,  a2, nRows, nColumns) {\n\t    var result, i, j;\n\t    if(Array.isArray(a1) && Array.isArray(a1[0])) {\n\t        result = initialize1DArray(a1.length);\n\t        for (i = 0; i < nRows; i++) {\n\t            result[i] = 0.0;\n\t            for (j = 0; j < nColumns; j++) {\n\t                result[i] += a1[i][j] * a2[j];\n\t            }\n\t        }\n\t    }\n\t    else if(Array.isArray(a2) && Array.isArray(a2[0])) {\n\t        result = initialize1DArray(a2[0].length);\n\t        for (i = 0; i < nColumns; i++) {\n\t            result[i] = 0.0;\n\t            for (j = 0; j < nRows; j++) {\n\t                result[i] += a2[j][i] * a1[j];\n\t            }\n\t        }\n\t        return result;\n\t    }\n\t\n\t    return result;\n\t}\n\t\n\tfunction sum(v1, v2, nElements, inPlace) {\n\t    var result;\n\t    if(inPlace) {\n\t        result = v1.slice();\n\t    }\n\t    else {\n\t        result = initialize1DArray(v1.length);\n\t    }\n\t    for (var i = 0; i < nElements; i++) {\n\t        result[i] = v1[i] + v2[i];\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction minus(v1, v2, nElements, inPlace) {\n\t    var result;\n\t    if(inPlace) {\n\t        result = v1.slice();\n\t    }\n\t    else {\n\t        result = initialize1DArray(v1.length);\n\t    }\n\t    for (var i = 0; i < nElements; i++) {\n\t        result[i] = v1[i] - v2[i];\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction deepCopy(doubleArray, nRows, nCols) {\n\t    var result = initialize1DArray(nRows);\n\t    for(var i=0; i<doubleArray.length; i++) {\n\t        result[i] = doubleArray[i].slice();\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction optionsAsProperties(ctx, options) {\n\t    for(var key in options) {\n\t        ctx[key] = options[key];\n\t    }\n\t}\n\t\n\tfunction initialize2DArray(nRow, nCol) {\n\t    var result = new Array(nRow);\n\t    for(var i=0; i<nRow; i++) {\n\t        result[i] = initialize1DArray(nCol);\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction initialize1DArray(n) {\n\t    return Array.apply(null, new Array(n)).map(Number.prototype.valueOf,0);\n\t}\n\t\n\tfunction rndWithSeed(seed) {\n\t    var mt = new mersenneTwister(seed);\n\t    return mt.random.bind(mt);\n\t}\n\t\n\tfunction constantRandom(constant) {\n\t    return function() {\n\t        return constant;\n\t    };\n\t}\n\t\n\tmodule.exports = EquilibriumCalculator;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tmodule.exports = __webpack_require__(3);\n\tmodule.exports.Decompositions = module.exports.DC = __webpack_require__(4);\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar Asplice = Array.prototype.splice,\n\t    Aconcat = Array.prototype.concat;\n\t\n\t// For performance : http://jsperf.com/clone-array-slice-vs-while-vs-for\n\tfunction slice(arr) {\n\t    var i = 0,\n\t        ii = arr.length,\n\t        result = new Array(ii);\n\t    for (; i < ii; i++) {\n\t        result[i] = arr[i];\n\t    }\n\t    return result;\n\t}\n\t\n\tfunction MatrixError(message) {\n\t    this.message = message || 'Unknown matrix error';\n\t}\n\tMatrixError.prototype = Object.create(Error.prototype);\n\tMatrixError.prototype.name = 'MatrixError';\n\tMatrixError.prototype.constructor = MatrixError;\n\t\n\t/**\n\t * Real matrix.\n\t * @constructor\n\t * @param {number|Array} nRows - Number of rows of the new matrix or a 2D array containing the data.\n\t * @param {number|boolean} [nColumns] - Number of columns of the new matrix or a boolean specifying if the input array should be cloned\n\t */\n\tfunction Matrix(nRows, nColumns) {\n\t    var i = 0, rows, columns, matrix, newInstance;\n\t    if (nRows instanceof Array) {\n\t        newInstance = nColumns;\n\t        matrix = newInstance ? slice(nRows) : nRows;\n\t        nRows = matrix.length;\n\t        nColumns = matrix[0].length;\n\t        if (typeof nColumns === 'undefined') {\n\t            throw new MatrixError('Data must be a 2D array');\n\t        }\n\t        if (nRows > 0 && nColumns > 0) {\n\t            for (; i < nRows; i++) {\n\t                if (matrix[i].length !== nColumns) {\n\t                    throw new MatrixError('Inconsistent array dimensions');\n\t                } else if (newInstance) {\n\t                    matrix[i] = slice(matrix[i]);\n\t                }\n\t            }\n\t        } else {\n\t            throw new MatrixError('Invalid dimensions: ' + nRows + 'x' + nColumns);\n\t        }\n\t    } else if (typeof nRows === 'number') { // Create empty matrix\n\t        if (nRows > 0 && nColumns > 0) {\n\t            matrix = new Array(nRows);\n\t            for (; i < nRows; i++) {\n\t                matrix[i] = new Array(nColumns);\n\t            }\n\t        } else {\n\t            throw new MatrixError('Invalid dimensions: ' + nRows + 'x' + nColumns);\n\t        }\n\t    } else {\n\t        throw new MatrixError('Invalid arguments')\n\t    }\n\t\n\t    Object.defineProperty(matrix, 'rows', {writable: true, value: nRows});\n\t    Object.defineProperty(matrix, 'columns', {writable: true, value: nColumns});\n\t\n\t    matrix.__proto__ = Matrix.prototype;\n\t\n\t    return matrix;\n\t}\n\t\n\t/**\n\t * Constructs a Matrix with the chosen dimensions from a 1D array.\n\t * @param {number} newRows - Number of rows\n\t * @param {number} newColumns - Number of columns\n\t * @param {Array} newData - A 1D array containing data for the matrix\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.from1DArray = function from1DArray(newRows, newColumns, newData) {\n\t    var length, data, i = 0;\n\t\n\t    length = newRows * newColumns;\n\t    if (length !== newData.length)\n\t        throw new MatrixError('Data length does not match given dimensions');\n\t\n\t    data = new Array(newRows);\n\t    for (; i < newRows; i++) {\n\t        data[i] = newData.slice(i * newColumns, (i + 1) * newColumns);\n\t    }\n\t    return new Matrix(data);\n\t};\n\t\n\t/**\n\t * Creates a row vector, a matrix with only one row.\n\t * @param {Array} newData - A 1D array containing data for the vector\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.rowVector = function rowVector(newData) {\n\t    return new Matrix([newData]);\n\t};\n\t\n\t/**\n\t * Creates a column vector, a matrix with only one column.\n\t * @param {Array} newData - A 1D array containing data for the vector\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.columnVector = function columnVector(newData) {\n\t    var l = newData.length, vector = new Array(l);\n\t    for (var i = 0; i < l; i++)\n\t        vector[i] = [newData[i]];\n\t    return new Matrix(vector);\n\t};\n\t\n\t/**\n\t * Creates an empty matrix with the given dimensions. Values will be undefined. Same as using new Matrix(rows, columns).\n\t * @param {number} rows - Number of rows\n\t * @param {number} columns - Number of columns\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.empty = function empty(rows, columns) {\n\t    return new Matrix(rows, columns);\n\t};\n\t\n\t/**\n\t * Creates a matrix with the given dimensions. Values will be set to zero.\n\t * @param {number} rows - Number of rows\n\t * @param {number} columns - Number of columns\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.zeros = function zeros(rows, columns) {\n\t    return Matrix.empty(rows, columns).fill(0);\n\t};\n\t\n\t/**\n\t * Creates a matrix with the given dimensions. Values will be set to one.\n\t * @param {number} rows - Number of rows\n\t * @param {number} columns - Number of columns\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.ones = function ones(rows, columns) {\n\t    return Matrix.empty(rows, columns).fill(1);\n\t};\n\t\n\t/**\n\t * Creates a matrix with the given dimensions. Values will be randomly set using Math.random().\n\t * @param {number} rows - Number of rows\n\t * @param {number} columns - Number of columns\n\t * @returns {Matrix} The new matrix\n\t */\n\tMatrix.rand = function rand(rows, columns) {\n\t    var matrix = Matrix.empty(rows, columns);\n\t    for (var i = 0, ii = matrix.rows; i < ii; i++) {\n\t        for (var j = 0, jj = matrix.columns; j < jj; j++) {\n\t            matrix[i][j] = Math.random();\n\t        }\n\t    }\n\t    return matrix;\n\t};\n\t\n\t/**\n\t * Creates an identity matrix with the given dimension. Values of the diagonal will be 1 and other will be 0.\n\t * @param {number} n - Number of rows and columns\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.eye = function eye(n) {\n\t    var matrix = Matrix.zeros(n, n), l = matrix.rows;\n\t    for (var i = 0; i < l; i++) {\n\t        matrix[i][i] = 1;\n\t    }\n\t    return matrix;\n\t};\n\t\n\t/**\n\t * Creates a diagonal matrix based on the given array.\n\t * @param {Array} data - Array containing the data for the diagonal\n\t * @returns {Matrix} - The new matrix\n\t */\n\tMatrix.diag = function diag(data) {\n\t    var l = data.length, matrix = Matrix.zeros(l, l);\n\t    for (var i = 0; i < l; i++) {\n\t        matrix[i][i] = data[i];\n\t    }\n\t    return matrix;\n\t};\n\t\n\t/**\n\t * Creates an array of indices between two values\n\t * @param {number} from\n\t * @param {number} to\n\t * @returns {Array}\n\t */\n\tMatrix.indices = function indices(from, to) {\n\t    var vector = new Array(to - from);\n\t    for (var i = 0; i < vector.length; i++)\n\t        vector[i] = from++;\n\t    return vector;\n\t};\n\t\n\t// TODO DOC\n\tMatrix.stack = function stack(arg1) {\n\t    var i, j, k;\n\t    if (Matrix.isMatrix(arg1)) {\n\t        var rows = 0,\n\t            cols = 0;\n\t        for (i = 0; i < arguments.length; i++) {\n\t            rows += arguments[i].rows;\n\t            if (arguments[i].columns > cols)\n\t                cols = arguments[i].columns;\n\t        }\n\t\n\t        var r = Matrix.zeros(rows, cols);\n\t        var c = 0;\n\t        for (i = 0; i < arguments.length; i++) {\n\t            var current = arguments[i];\n\t            for (j = 0; j < current.rows; j++) {\n\t                for (k = 0; k < current.columns; k++)\n\t                    r[c][k] = current[j][k];\n\t                c++;\n\t            }\n\t        }\n\t        return r;\n\t    }\n\t    else if (arg1 instanceof Array) {\n\t        var matrix = Matrix.empty(arguments.length, arg1.length);\n\t        for (i = 0; i < arguments.length; i++)\n\t            matrix.setRow(i, arguments[i]);\n\t        return matrix;\n\t    }\n\t};\n\t\n\t// TODO DOC\n\tMatrix.expand = function expand(base, count) {\n\t    var expansion = [];\n\t    for (var i = 0; i < count.length; i++)\n\t        for (var j = 0; j < count[i]; j++)\n\t            expansion.push(base[i]);\n\t    return new Matrix(expansion);\n\t};\n\t\n\t/**\n\t * Check that the provided value is a Matrix and tries to instantiate one if not\n\t * @param value - The value to check\n\t * @returns {Matrix}\n\t * @throws {MatrixError}\n\t */\n\tMatrix.checkMatrix = function checkMatrix(value) {\n\t    if (!value) {\n\t        throw new MatrixError('Argument has to be a matrix');\n\t    }\n\t    if (value.klass !== 'Matrix') {\n\t        value = new Matrix(value);\n\t    }\n\t    return value;\n\t};\n\t\n\t/**\n\t * Returns true if the argument is a Matrix, false otherwise\n\t * @param value - The value to check\n\t * @returns {boolean}\n\t */\n\tMatrix.isMatrix = function isMatrix(value) {\n\t    return value ? value.klass === 'Matrix' : false;\n\t};\n\t\n\t/**\n\t * @property {string} - The name of this class.\n\t */\n\tObject.defineProperty(Matrix.prototype, 'klass', {\n\t    get: function klass() {\n\t        return 'Matrix';\n\t    }\n\t});\n\t\n\t/**\n\t * @property {number} - The number of elements in the matrix.\n\t */\n\tObject.defineProperty(Matrix.prototype, 'size', {\n\t    get: function size() {\n\t        return this.rows * this.columns;\n\t    }\n\t});\n\t\n\t/**\n\t * @private\n\t * Internal check that a row index is not out of bounds\n\t * @param {number} index\n\t */\n\tMatrix.prototype.checkRowIndex = function checkRowIndex(index) {\n\t    if (index < 0 || index > this.rows - 1)\n\t        throw new MatrixError('Row index out of range.');\n\t};\n\t\n\t/**\n\t * @private\n\t * Internal check that a column index is not out of bounds\n\t * @param {number} index\n\t */\n\tMatrix.prototype.checkColumnIndex = function checkColumnIndex(index) {\n\t    if (index < 0 || index > this.columns - 1)\n\t        throw new MatrixError('Column index out of range.');\n\t};\n\t\n\t/**\n\t * @private\n\t * Internal check that two matrices have the same dimensions\n\t * @param {Matrix} otherMatrix\n\t */\n\tMatrix.prototype.checkDimensions = function checkDimensions(otherMatrix) {\n\t    if ((this.rows !== otherMatrix.rows) || (this.columns !== otherMatrix.columns))\n\t        throw new MatrixError('Matrices dimensions must be equal.');\n\t};\n\t\n\t/**\n\t * Applies a callback for each element of the matrix. The function is called in the matrix (this) context.\n\t * @param {function} callback - Function that will be called with two parameters : i (row) and j (column)\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.apply = function apply(callback) {\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            callback.call(this, i, j);\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Creates an exact and independent copy of the matrix\n\t * @returns {Matrix}\n\t */\n\tMatrix.prototype.clone = function clone() {\n\t    return new Matrix(this.to2DArray());\n\t};\n\t\n\t/**\n\t * Returns a new 1D array filled row by row with the matrix values\n\t * @returns {Array}\n\t */\n\tMatrix.prototype.to1DArray = function to1DArray() {\n\t    return Aconcat.apply([], this);\n\t};\n\t\n\t/**\n\t * Returns a 2D array containing a copy of the data\n\t * @returns {Array}\n\t */\n\tMatrix.prototype.to2DArray = function to2DArray() {\n\t    var l = this.rows, copy = new Array(l);\n\t    for (var i = 0; i < l; i++) {\n\t        copy[i] = slice(this[i]);\n\t    }\n\t    return copy;\n\t};\n\t\n\t/**\n\t * @returns {boolean} true if the matrix has one row\n\t */\n\tMatrix.prototype.isRowVector = function isRowVector() {\n\t    return this.rows === 1;\n\t};\n\t\n\t/**\n\t * @returns {boolean} true if the matrix has one column\n\t */\n\tMatrix.prototype.isColumnVector = function isColumnVector() {\n\t    return this.columns === 1;\n\t};\n\t\n\t/**\n\t * @returns {boolean} true if the matrix has one row or one column\n\t */\n\tMatrix.prototype.isVector = function isVector() {\n\t    return (this.rows === 1) || (this.columns === 1);\n\t};\n\t\n\t/**\n\t * @returns {boolean} true if the matrix has the same number of rows and columns\n\t */\n\tMatrix.prototype.isSquare = function isSquare() {\n\t    return this.rows === this.columns;\n\t};\n\t\n\t/**\n\t * @returns {boolean} true if the matrix is square and has the same values on both sides of the diagonal\n\t */\n\tMatrix.prototype.isSymmetric = function isSymmetric() {\n\t    if (this.isSquare()) {\n\t        var l = this.rows;\n\t        for (var i = 0; i < l; i++) {\n\t            for (var j = 0; j <= i; j++) {\n\t                if (this[i][j] !== this[j][i]) {\n\t                    return false;\n\t                }\n\t            }\n\t        }\n\t        return true;\n\t    }\n\t    return false;\n\t};\n\t\n\t/**\n\t * Sets a given element of the matrix. mat.set(3,4,1) is equivalent to mat[3][4]=1\n\t * @param {number} rowIndex - Index of the row\n\t * @param {number} columnIndex - Index of the column\n\t * @param {number} value - The new value for the element\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.set = function set(rowIndex, columnIndex, value) {\n\t    this[rowIndex][columnIndex] = value;\n\t    return this;\n\t};\n\t\n\t/**\n\t * Returns the given element of the matrix. mat.get(3,4) is equivalent to matrix[3][4]\n\t * @param {number} rowIndex - Index of the row\n\t * @param {number} columnIndex - Index of the column\n\t * @returns {number}\n\t */\n\tMatrix.prototype.get = function get(rowIndex, columnIndex) {\n\t    return this[rowIndex][columnIndex];\n\t};\n\t\n\t/**\n\t * Fills the matrix with a given value. All elements will be set to this value.\n\t * @param {number} value - New value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.fill = function fill(value) {\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] = value;\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Negates the matrix. All elements will be multiplied by (-1)\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.neg = function neg() {\n\t    return this.mulS(-1);\n\t};\n\t\n\t/**\n\t * Adds a scalar or values from another matrix (in place)\n\t * @param {number|Matrix} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.add = function add(value) {\n\t    if (typeof value === 'number')\n\t        return this.addS(value);\n\t    value = Matrix.checkMatrix(value);\n\t        return this.addM(value);\n\t};\n\t\n\t/**\n\t * Adds a scalar to each element of the matrix\n\t * @param {number} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.addS = function addS(value) {\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] += value;\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Adds the value of each element of matrix to the corresponding element of this\n\t * @param {Matrix} matrix\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.addM = function addM(matrix) {\n\t    this.checkDimensions(matrix);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] += matrix[i][j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Subtracts a scalar or values from another matrix (in place)\n\t * @param {number|Matrix} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.sub = function sub(value) {\n\t    if (typeof value === 'number')\n\t        return this.subS(value);\n\t    value = Matrix.checkMatrix(value);\n\t        return this.subM(value);\n\t};\n\t\n\t/**\n\t * Subtracts a scalar from each element of the matrix\n\t * @param {number} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.subS = function subS(value) {\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] -= value;\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Subtracts the value of each element of matrix from the corresponding element of this\n\t * @param {Matrix} matrix\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.subM = function subM(matrix) {\n\t    this.checkDimensions(matrix);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] -= matrix[i][j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Multiplies a scalar or values from another matrix (in place)\n\t * @param {number|Matrix} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.mul = function mul(value) {\n\t    if (typeof value === 'number')\n\t        return this.mulS(value);\n\t    value = Matrix.checkMatrix(value);\n\t        return this.mulM(value);\n\t};\n\t\n\t/**\n\t * Multiplies a scalar with each element of the matrix\n\t * @param {number} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.mulS = function mulS(value) {\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] *= value;\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Multiplies the value of each element of matrix with the corresponding element of this\n\t * @param {Matrix} matrix\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.mulM = function mulM(matrix) {\n\t    this.checkDimensions(matrix);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] *= matrix[i][j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Divides by a scalar or values from another matrix (in place)\n\t * @param {number|Matrix} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.div = function div(value) {\n\t    if (typeof value === 'number')\n\t        return this.divS(value);\n\t    value = Matrix.checkMatrix(value);\n\t        return this.divM(value);\n\t};\n\t\n\t/**\n\t * Divides each element of the matrix by a scalar\n\t * @param {number} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.divS = function divS(value) {\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] /= value;\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Divides each element of this by the corresponding element of matrix\n\t * @param {Matrix} matrix\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.divM = function divM(matrix) {\n\t    this.checkDimensions(matrix);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] /= matrix[i][j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Returns a new array from the given row index\n\t * @param {number} index - Row index\n\t * @returns {Array}\n\t */\n\tMatrix.prototype.getRow = function getRow(index) {\n\t    this.checkRowIndex(index);\n\t    return slice(this[index]);\n\t};\n\t\n\t/**\n\t * Sets a row at the given index\n\t * @param {number} index - Row index\n\t * @param {Array|Matrix} array - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.setRow = function setRow(index, array) {\n\t    this.checkRowIndex(index);\n\t    if (Matrix.isMatrix(array)) array = array.to1DArray();\n\t    if (array.length !== this.columns)\n\t        throw new MatrixError('Invalid row size');\n\t    this[index] = slice(array);\n\t    return this;\n\t};\n\t\n\t/**\n\t * Removes a row from the given index\n\t * @param {number} index - Row index\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.removeRow = function removeRow(index) {\n\t    this.checkRowIndex(index);\n\t    if (this.rows === 1)\n\t        throw new MatrixError('A matrix cannot have less than one row');\n\t    Asplice.call(this, index, 1);\n\t    this.rows -= 1;\n\t    return this;\n\t};\n\t\n\t/**\n\t * Adds a row at the given index\n\t * @param {number} [index = this.rows] - Row index\n\t * @param {Array|Matrix} array - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.addRow = function addRow(index, array) {\n\t    if (typeof array === 'undefined') {\n\t        array = index;\n\t        index = this.rows;\n\t    }\n\t    if (index < 0 || index > this.rows)\n\t        throw new MatrixError('Row index out of range.');\n\t    if (Matrix.isMatrix(array)) array = array.to1DArray();\n\t    if (array.length !== this.columns)\n\t        throw new MatrixError('Invalid row size');\n\t    Asplice.call(this, index, 0, slice(array));\n\t    this.rows += 1;\n\t    return this;\n\t};\n\t\n\t/**\n\t * Swaps two rows\n\t * @param {number} row1 - First row index\n\t * @param {number} row2 - Second row index\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.swapRows = function swapRows(row1, row2) {\n\t    this.checkRowIndex(row1);\n\t    this.checkRowIndex(row2);\n\t    var temp = this[row1];\n\t    this[row1] = this[row2];\n\t    this[row2] = temp;\n\t    return this;\n\t};\n\t\n\t/**\n\t * Returns a new array from the given column index\n\t * @param {number} index - Column index\n\t * @returns {Array}\n\t */\n\tMatrix.prototype.getColumn = function getColumn(index) {\n\t    this.checkColumnIndex(index);\n\t    var l = this.rows, column = new Array(l);\n\t    for (var i = 0; i < l; i++) {\n\t        column[i] = this[i][index];\n\t    }\n\t    return column;\n\t};\n\t\n\t/**\n\t * Sets a column at the given index\n\t * @param {number} index - Column index\n\t * @param {Array|Matrix} array - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.setColumn = function setColumn(index, array) {\n\t    this.checkColumnIndex(index);\n\t    if (Matrix.isMatrix(array)) array = array.to1DArray();\n\t    var l = this.rows;\n\t    if (array.length !== l)\n\t        throw new MatrixError('Invalid column size');\n\t    for (var i = 0; i < l; i++) {\n\t        this[i][index] = array[i];\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Removes a column from the given index\n\t * @param {number} index - Column index\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.removeColumn = function removeColumn(index) {\n\t    this.checkColumnIndex(index);\n\t    if (this.columns === 1)\n\t        throw new MatrixError('A matrix cannot have less than one column');\n\t    for (var i = 0, ii = this.rows; i < ii; i++) {\n\t        this[i].splice(index, 1);\n\t    }\n\t    this.columns -= 1;\n\t    return this;\n\t};\n\t\n\t/**\n\t * Adds a column at the given index\n\t * @param {number} [index = this.columns] - Column index\n\t * @param {Array|Matrix} array - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.addColumn = function addColumn(index, array) {\n\t    if (typeof array === 'undefined') {\n\t        array = index;\n\t        index = this.columns;\n\t    }\n\t    if (index < 0 || index > this.columns)\n\t        throw new MatrixError('Column index out of range.');\n\t    if (Matrix.isMatrix(array)) array = array.to1DArray();\n\t    var l = this.rows;\n\t    if (array.length !== l)\n\t        throw new MatrixError('Invalid column size');\n\t    for (var i = 0; i < l; i++) {\n\t        this[i].splice(index, 0, array[i]);\n\t    }\n\t    this.columns += 1;\n\t    return this;\n\t};\n\t\n\t/**\n\t * Swaps two columns\n\t * @param {number} column1 - First column index\n\t * @param {number} column2 - Second column index\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.swapColumns = function swapColumns(column1, column2) {\n\t    this.checkRowIndex(column1);\n\t    this.checkRowIndex(column2);\n\t    var l = this.rows, temp, row;\n\t    for (var i = 0; i < l; i++) {\n\t        row = this[i];\n\t        temp = row[column1];\n\t        row[column1] = row[column2];\n\t        row[column2] = temp;\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * @private\n\t * Internal check that the provided vector is an array with the right length\n\t * @param {Array|Matrix} vector\n\t * @returns {Array}\n\t * @throws {MatrixError}\n\t */\n\tMatrix.prototype.checkRowVector = function checkRowVector(vector) {\n\t    if (Matrix.isMatrix(vector))\n\t        vector = vector.to1DArray();\n\t    if (vector.length !== this.columns)\n\t        throw new MatrixError('vector size must be the same as the number of columns');\n\t    return vector;\n\t};\n\t\n\t/**\n\t * @private\n\t * Internal check that the provided vector is an array with the right length\n\t * @param {Array|Matrix} vector\n\t * @returns {Array}\n\t * @throws {MatrixError}\n\t */\n\tMatrix.prototype.checkColumnVector = function checkColumnVector(vector) {\n\t    if (Matrix.isMatrix(vector))\n\t        vector = vector.to1DArray();\n\t    if (vector.length !== this.rows)\n\t        throw new MatrixError('vector size must be the same as the number of rows');\n\t    return vector;\n\t};\n\t\n\t/**\n\t * Adds the values of a vector to each row\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.addRowVector = function addRowVector(vector) {\n\t    vector = this.checkRowVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] += vector[j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Subtracts the values of a vector from each row\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.subRowVector = function subRowVector(vector) {\n\t    vector = this.checkRowVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] -= vector[j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Multiplies the values of a vector with each row\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.mulRowVector = function mulRowVector(vector) {\n\t    vector = this.checkRowVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] *= vector[j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Divides the values of each row by those of a vector\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.divRowVector = function divRowVector(vector) {\n\t    vector = this.checkRowVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] /= vector[j];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Adds the values of a vector to each column\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.addColumnVector = function addColumnVector(vector) {\n\t    vector = this.checkColumnVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] += vector[i];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Subtracts the values of a vector from each column\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.subColumnVector = function subColumnVector(vector) {\n\t    vector = this.checkColumnVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] -= vector[i];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Multiplies the values of a vector with each column\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.mulColumnVector = function mulColumnVector(vector) {\n\t    vector = this.checkColumnVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] *= vector[i];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Divides the values of each column by those of a vector\n\t * @param {Array|Matrix} vector - Array or vector\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.divColumnVector = function divColumnVector(vector) {\n\t    vector = this.checkColumnVector(vector);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] /= vector[i];\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Multiplies the values of a row with a scalar\n\t * @param {number} index - Row index\n\t * @param {number} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.mulRow = function mulRow(index, value) {\n\t    this.checkRowIndex(index);\n\t    var i = 0, l = this.columns;\n\t    for (; i < l; i++) {\n\t        this[index][i] *= value;\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Multiplies the values of a column with a scalar\n\t * @param {number} index - Column index\n\t * @param {number} value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.mulColumn = function mulColumn(index, value) {\n\t    this.checkColumnIndex(index);\n\t    var i = 0, l = this.rows;\n\t    for (; i < l; i++) {\n\t        this[i][index] *= value;\n\t    }\n\t};\n\t\n\t/**\n\t * A matrix index\n\t * @typedef {Object} MatrixIndex\n\t * @property {number} row\n\t * @property {number} column\n\t */\n\t\n\t/**\n\t * Returns the maximum value of the matrix\n\t * @returns {number}\n\t */\n\tMatrix.prototype.max = function max() {\n\t    var v = -Infinity;\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            if (this[i][j] > v) {\n\t                v = this[i][j];\n\t            }\n\t        }\n\t    }\n\t    return v;\n\t};\n\t\n\t/**\n\t * Returns the index of the maximum value\n\t * @returns {MatrixIndex}\n\t */\n\tMatrix.prototype.maxIndex = function maxIndex() {\n\t    var v = -Infinity;\n\t    var idx = {};\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            if (this[i][j] > v) {\n\t                v = this[i][j];\n\t                idx.row = i;\n\t                idx.column = j;\n\t            }\n\t        }\n\t    }\n\t    return idx;\n\t};\n\t\n\t/**\n\t * Returns the minimum value of the matrix\n\t * @returns {number}\n\t */\n\tMatrix.prototype.min = function min() {\n\t    var v = Infinity;\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            if (this[i][j] < v) {\n\t                v = this[i][j];\n\t            }\n\t        }\n\t    }\n\t    return v;\n\t};\n\t\n\t/**\n\t * Returns the index of the minimum value\n\t * @returns {MatrixIndex}\n\t */\n\tMatrix.prototype.minIndex = function minIndex() {\n\t    var v = Infinity;\n\t    var idx = {};\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            if (this[i][j] < v) {\n\t                v = this[i][j];\n\t                idx.row = i;\n\t                idx.column = j;\n\t            }\n\t        }\n\t    }\n\t    return idx;\n\t};\n\t\n\t/**\n\t * Returns the maximum value of one row\n\t * @param {number} index - Row index\n\t * @returns {number}\n\t */\n\tMatrix.prototype.maxRow = function maxRow(index) {\n\t    this.checkRowIndex(index);\n\t    var v = -Infinity;\n\t    for (var i = 0, ii = this.columns; i < ii; i++) {\n\t        if (this[index][i] > v) {\n\t            v = this[index][i];\n\t        }\n\t    }\n\t    return v;\n\t};\n\t\n\t/**\n\t * Returns the index of the maximum value of one row\n\t * @param {number} index - Row index\n\t * @returns {MatrixIndex}\n\t */\n\tMatrix.prototype.maxRowIndex = function maxRowIndex(index) {\n\t    this.checkRowIndex(index);\n\t    var v = -Infinity;\n\t    var idx = {\n\t            row: index\n\t        };\n\t    for (var i = 0, ii = this.columns; i < ii; i++) {\n\t        if (this[index][i] > v) {\n\t            v = this[index][i];\n\t            idx.column = i;\n\t        }\n\t    }\n\t    return idx;\n\t};\n\t\n\t/**\n\t * Returns the minimum value of one row\n\t * @param {number} index - Row index\n\t * @returns {number}\n\t */\n\tMatrix.prototype.minRow = function minRow(index) {\n\t    this.checkRowIndex(index);\n\t    var v = Infinity;\n\t    for (var i = 0, ii = this.columns; i < ii; i++) {\n\t        if (this[index][i] < v) {\n\t            v = this[index][i];\n\t        }\n\t    }\n\t    return v;\n\t};\n\t\n\t/**\n\t * Returns the index of the maximum value of one row\n\t * @param {number} index - Row index\n\t * @returns {MatrixIndex}\n\t */\n\tMatrix.prototype.minRowIndex = function minRowIndex(index) {\n\t    this.checkRowIndex(index);\n\t    var v = Infinity;\n\t    var idx = {\n\t        row: index,\n\t        column: 0\n\t    };\n\t    for (var i = 0, ii = this.columns; i < ii; i++) {\n\t        if (this[index][i] < v) {\n\t            v = this[index][i];\n\t            idx.column = i;\n\t        }\n\t    }\n\t    return idx;\n\t};\n\t\n\t/**\n\t * Returns the maximum value of one column\n\t * @param {number} index - Column index\n\t * @returns {number}\n\t */\n\tMatrix.prototype.maxColumn = function maxColumn(index) {\n\t    this.checkColumnIndex(index);\n\t    var v = -Infinity;\n\t    for (var i = 0, ii = this.rows; i < ii; i++) {\n\t        if (this[i][index] > v) {\n\t            v = this[i][index];\n\t        }\n\t    }\n\t    return v;\n\t};\n\t\n\t/**\n\t * Returns the index of the maximum value of one column\n\t * @param {number} index - Column index\n\t * @returns {MatrixIndex}\n\t */\n\tMatrix.prototype.maxColumnIndex = function maxColumnIndex(index) {\n\t    this.checkColumnIndex(index);\n\t    var v = -Infinity;\n\t    var idx = {\n\t        row: 0,\n\t        column: index\n\t    };\n\t    for (var i = 0, ii = this.rows; i < ii; i++) {\n\t        if (this[i][index] > v) {\n\t            v = this[i][index];\n\t            idx.row = i;\n\t        }\n\t    }\n\t    return idx;\n\t};\n\t\n\t/**\n\t * Returns the minimum value of one column\n\t * @param {number} index - Column index\n\t * @returns {number}\n\t */\n\tMatrix.prototype.minColumn = function minColumn(index) {\n\t    this.checkColumnIndex(index);\n\t    var v = Infinity;\n\t    for (var i = 0, ii = this.rows; i < ii; i++) {\n\t        if (this[i][index] < v) {\n\t            v = this[i][index];\n\t        }\n\t    }\n\t    return v;\n\t};\n\t\n\t/**\n\t * Returns the index of the minimum value of one column\n\t * @param {number} index - Column index\n\t * @returns {MatrixIndex}\n\t */\n\tMatrix.prototype.minColumnIndex = function minColumnIndex(index) {\n\t    this.checkColumnIndex(index);\n\t    var v = Infinity;\n\t    var idx = {\n\t        row: 0,\n\t        column: index\n\t    };\n\t    for (var i = 0, ii = this.rows; i < ii; i++) {\n\t        if (this[i][index] < v) {\n\t            v = this[i][index];\n\t            idx.row = i;\n\t        }\n\t    }\n\t    return idx;\n\t};\n\t\n\t/**\n\t * Returns an array containing the diagonal values of the matrix\n\t * @returns {Array}\n\t */\n\tMatrix.prototype.diag = function diag() {\n\t    if (!this.isSquare())\n\t        throw new MatrixError('Only square matrices have a diagonal.');\n\t    var diag = new Array(this.rows);\n\t    for (var i = 0, ii = this.rows; i < ii; i++) {\n\t        diag[i] = this[i][i];\n\t    }\n\t    return diag;\n\t};\n\t\n\t/**\n\t * Returns the sum of all elements of the matrix\n\t * @returns {number}\n\t */\n\tMatrix.prototype.sum = function sum() {\n\t    var v = 0;\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            v += this[i][j];\n\t        }\n\t    }\n\t    return v;\n\t};\n\t\n\t/**\n\t * Returns the mean of all elements of the matrix\n\t * @returns {number}\n\t */\n\tMatrix.prototype.mean = function mean() {\n\t    return this.sum() / this.size;\n\t};\n\t\n\t/**\n\t * Returns the product of all elements of the matrix\n\t * @returns {number}\n\t */\n\tMatrix.prototype.prod = function prod() {\n\t    var prod = 1;\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            prod *= this[i][j];\n\t        }\n\t    }\n\t    return prod;\n\t};\n\t\n\t/**\n\t * Computes the cumulative sum of the matrix elements (in place, row by row)\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.cumulativeSum = function cumulativeSum() {\n\t    var sum = 0;\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            sum += this[i][j];\n\t            this[i][j] = sum;\n\t        }\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Computes the dot (scalar) product between the matrix and another\n\t * @param {Matrix} other vector\n\t * @returns {number}\n\t */\n\tMatrix.prototype.dot = function dot(other) {\n\t    if (this.size !== other.size)\n\t        throw new MatrixError('vectors do not have the same size');\n\t    var vector1 = this.to1DArray();\n\t    var vector2 = other.to1DArray();\n\t    var dot = 0, l = vector1.length;\n\t    for (var i = 0; i < l; i++) {\n\t        dot += vector1[i] * vector2[i];\n\t    }\n\t    return dot;\n\t};\n\t\n\t/**\n\t * Returns the matrix product between this and other\n\t * @returns {Matrix}\n\t */\n\tMatrix.prototype.mmul = function mmul(other) {\n\t    if (this.columns !== other.rows)\n\t        console.warn('Number of columns of left matrix are not equal to number of rows of right matrix.');\n\t\n\t    var m = this.rows, n = this.columns, p = other.columns;\n\t    var result = new Matrix(m, p);\n\t\n\t    var Bcolj = new Array(n);\n\t    var i, j, k;\n\t    for (j = 0; j < p; j++) {\n\t        for (k = 0; k < n; k++)\n\t            Bcolj[k] = other[k][j];\n\t\n\t        for (i = 0; i < m; i++) {\n\t            var Arowi = this[i];\n\t\n\t            var s = 0;\n\t            for (k = 0; k < n; k++)\n\t                s += Arowi[k] * Bcolj[k];\n\t\n\t            result[i][j] = s;\n\t        }\n\t    }\n\t    return result;\n\t};\n\t\n\t/**\n\t * Sorts the rows (in place)\n\t * @param {function} compareFunction - usual Array.prototype.sort comparison function\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.sortRows = function sortRows(compareFunction) {\n\t    for (var i = 0, ii = this.rows; i < ii; i++) {\n\t        this[i].sort(compareFunction);\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Sorts the columns (in place)\n\t * @param {function} compareFunction - usual Array.prototype.sort comparison function\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.sortColumns = function sortColumns(compareFunction) {\n\t    for (var i = 0, ii = this.columns; i < ii; i++) {\n\t        this.setColumn(i, this.getColumn(i).sort(compareFunction));\n\t    }\n\t    return this;\n\t};\n\t\n\t/**\n\t * Transposes the matrix and returns a new one containing the result\n\t * @returns {Matrix}\n\t */\n\tMatrix.prototype.transpose = function transpose() {\n\t    var result = new Matrix(this.columns, this.rows);\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            result[j][i] = this[i][j];\n\t        }\n\t    }\n\t    return result;\n\t};\n\t\n\t/**\n\t * Returns a subset of the matrix\n\t * @param {number} startRow - First row index\n\t * @param {number} endRow - Last row index\n\t * @param {number} startColumn - First column index\n\t * @param {number} endColumn - Last column index\n\t * @returns {Matrix}\n\t */\n\tMatrix.prototype.subMatrix = function subMatrix(startRow, endRow, startColumn, endColumn) {\n\t    if ((startRow > endRow) || (startColumn > endColumn) || (startRow < 0) || (startRow >= this.rows) || (endRow < 0) || (endRow >= this.rows) || (startColumn < 0) || (startColumn >= this.columns) || (endColumn < 0) || (endColumn >= this.columns))\n\t        throw new MatrixError('Argument out of range');\n\t    var newMatrix = new Matrix(endRow - startRow + 1, endColumn - startColumn + 1);\n\t    for (var i = startRow; i <= endRow; i++) {\n\t        for (var j = startColumn; j <= endColumn; j++) {\n\t            newMatrix[i - startRow][j - startColumn] = this[i][j];\n\t        }\n\t    }\n\t    return newMatrix;\n\t};\n\t\n\t/**\n\t * Returns a subset of the matrix based on an array of row indices\n\t * @param {Array} indices - Array containing the row indices\n\t * @param {number} [startColumn = 0] - First column index\n\t * @param {number} [endColumn = this.columns-1] - Last column index\n\t * @returns {Matrix}\n\t */\n\tMatrix.prototype.subMatrixRow = function subMatrixRow(indices, startColumn, endColumn) {\n\t    if (typeof startColumn === 'undefined') {\n\t        startColumn = 0;\n\t        endColumn = this.columns - 1;\n\t    } else if (typeof endColumn === 'undefined') {\n\t        endColumn = this.columns - 1;\n\t    }\n\t    if ((startColumn > endColumn) || (startColumn < 0) || (startColumn >= this.columns) || (endColumn < 0) || (endColumn >= this.columns))\n\t        throw new MatrixError('Argument out of range.');\n\t    var l = indices.length, rows = this.rows,\n\t        X = new Matrix(l, endColumn - startColumn + 1);\n\t    for (var i = 0; i < l; i++) {\n\t        for (var j = startColumn; j <= endColumn; j++) {\n\t            if ((indices[i] < 0) || (indices[i] >= rows))\n\t                throw new MatrixError('Argument out of range.');\n\t            X[i][j - startColumn] = this[indices[i]][j];\n\t        }\n\t    }\n\t    return X;\n\t};\n\t\n\t/**\n\t * Returns a subset of the matrix based on an array of column indices\n\t * @param {Array} indices - Array containing the column indices\n\t * @param {number} [startRow = 0] - First row index\n\t * @param {number} [endRow = this.rows-1] - Last row index\n\t * @returns {Matrix}\n\t */\n\tMatrix.prototype.subMatrixColumn = function subMatrixColumn(indices, startRow, endRow) {\n\t    if (typeof startRow === 'undefined') {\n\t        startRow = 0;\n\t        endRow = this.rows - 1;\n\t    } else if (typeof endRow === 'undefined') {\n\t        endRow = this.rows - 1;\n\t    }\n\t    if ((startRow > endRow) || (startRow < 0) || (startRow >= this.rows) || (endRow < 0) || (endRow >= this.rows))\n\t        throw new MatrixError('Argument out of range.');\n\t    var l = indices.length, columns = this.columns,\n\t        X = new Matrix(endRow - startRow + 1, l);\n\t    for (var i = 0; i < l; i++) {\n\t        for (var j = startRow; j <= endRow; j++) {\n\t            if ((indices[i] < 0) || (indices[i] >= columns))\n\t                throw new MatrixError('Argument out of range.');\n\t            X[j - startRow][i] = this[j][indices[i]];\n\t        }\n\t    }\n\t    return X;\n\t};\n\t\n\t/**\n\t * Returns the trace of the matrix (sum of the diagonal elements)\n\t * @returns {number}\n\t */\n\tMatrix.prototype.trace = function trace() {\n\t    if (!this.isSquare())\n\t        throw new MatrixError('The matrix is not square');\n\t    var trace = 0, i = 0, l = this.rows;\n\t    for (; i < l; i++) {\n\t        trace += this[i][i];\n\t    }\n\t    return trace;\n\t};\n\t\n\t/**\n\t * Sets each element of the matrix to its absolute value\n\t * @returns {Matrix} this\n\t */\n\tMatrix.prototype.abs = function abs() {\n\t    var ii = this.rows, jj = this.columns;\n\t    for (var i = 0; i < ii; i++) {\n\t        for (var j = 0; j < jj; j++) {\n\t            this[i][j] = Math.abs(this[i][j]);\n\t        }\n\t    }\n\t};\n\t\n\tMatrix.MatrixError = MatrixError;\n\t\n\tmodule.exports = Matrix;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Matrix = __webpack_require__(3);\n\t\n\t// https://github.com/lutzroeder/Mapack/blob/master/Source/EigenvalueDecomposition.cs\n\tfunction EigenvalueDecomposition(matrix) {\n\t    matrix = Matrix.checkMatrix(matrix);\n\t    if (!matrix.isSquare()) {\n\t        throw new Error('Matrix is not a square matrix');\n\t    }\n\t\n\t    var n = matrix.columns,\n\t        V = Matrix.zeros(n, n),\n\t        d = new Array(n),\n\t        e = new Array(n),\n\t        value = matrix,\n\t        i, j;\n\t\n\t    if (matrix.isSymmetric()) {\n\t        for (i = 0; i < n; i++) {\n\t            for (j = 0; j < n; j++) {\n\t                V[i][j] = value[i][j];\n\t            }\n\t        }\n\t        tred2(n, e, d, V);\n\t        tql2(n, e, d, V);\n\t    }\n\t    else {\n\t        var H = Matrix.zeros(n, n),\n\t            ort = new Array(n);\n\t        for (j = 0; j < n; j++) {\n\t            for (i = 0; i < n; i++) {\n\t                H[i][j] = value[i][j];\n\t            }\n\t        }\n\t        orthes(n, H, ort, V);\n\t        hqr2(n, e, d, V, H);\n\t    }\n\t\n\t    return new EigenvalueDecompositionResult(n, e, d, V);\n\t}\n\t\n\tfunction tred2(n, e, d, V) {\n\t\n\t    var f, g, h, i, j, k,\n\t        hh, scale;\n\t\n\t    for (j = 0; j < n; j++) {\n\t        d[j] = V[n - 1][j];\n\t    }\n\t\n\t    for (i = n - 1; i > 0; i--) {\n\t        scale = 0;\n\t        h = 0;\n\t        for (k = 0; k < i; k++) {\n\t            scale = scale + Math.abs(d[k]);\n\t        }\n\t\n\t        if (scale === 0) {\n\t            e[i] = d[i - 1];\n\t            for (j = 0; j < i; j++) {\n\t                d[j] = V[i - 1][j];\n\t                V[i][j] = 0;\n\t                V[j][i] = 0;\n\t            }\n\t        } else {\n\t            for (k = 0; k < i; k++) {\n\t                d[k] /= scale;\n\t                h += d[k] * d[k];\n\t            }\n\t\n\t            f = d[i - 1];\n\t            g = Math.sqrt(h);\n\t            if (f > 0) {\n\t                g = -g;\n\t            }\n\t\n\t            e[i] = scale * g;\n\t            h = h - f * g;\n\t            d[i - 1] = f - g;\n\t            for (j = 0; j < i; j++) {\n\t                e[j] = 0;\n\t            }\n\t\n\t            for (j = 0; j < i; j++) {\n\t                f = d[j];\n\t                V[j][i] = f;\n\t                g = e[j] + V[j][j] * f;\n\t                for (k = j + 1; k <= i - 1; k++) {\n\t                    g += V[k][j] * d[k];\n\t                    e[k] += V[k][j] * f;\n\t                }\n\t                e[j] = g;\n\t            }\n\t\n\t            f = 0;\n\t            for (j = 0; j < i; j++) {\n\t                e[j] /= h;\n\t                f += e[j] * d[j];\n\t            }\n\t\n\t            hh = f / (h + h);\n\t            for (j = 0; j < i; j++) {\n\t                e[j] -= hh * d[j];\n\t            }\n\t\n\t            for (j = 0; j < i; j++) {\n\t                f = d[j];\n\t                g = e[j];\n\t                for (k = j; k <= i - 1; k++) {\n\t                    V[k][j] -= (f * e[k] + g * d[k]);\n\t                }\n\t                d[j] = V[i - 1][j];\n\t                V[i][j] = 0;\n\t            }\n\t        }\n\t        d[i] = h;\n\t    }\n\t\n\t    for (i = 0; i < n - 1; i++) {\n\t        V[n - 1][i] = V[i][i];\n\t        V[i][i] = 1;\n\t        h = d[i + 1];\n\t        if (h !== 0) {\n\t            for (k = 0; k <= i; k++) {\n\t                d[k] = V[k][i + 1] / h;\n\t            }\n\t\n\t            for (j = 0; j <= i; j++) {\n\t                g = 0;\n\t                for (k = 0; k <= i; k++) {\n\t                    g += V[k][i + 1] * V[k][j];\n\t                }\n\t                for (k = 0; k <= i; k++) {\n\t                    V[k][j] -= g * d[k];\n\t                }\n\t            }\n\t        }\n\t\n\t        for (k = 0; k <= i; k++) {\n\t            V[k][i + 1] = 0;\n\t        }\n\t    }\n\t\n\t    for (j = 0; j < n; j++) {\n\t        d[j] = V[n - 1][j];\n\t        V[n - 1][j] = 0;\n\t    }\n\t\n\t    V[n - 1][n - 1] = 1;\n\t    e[0] = 0;\n\t}\n\t\n\tfunction tql2(n, e, d, V) {\n\t\n\t    var g, h, i, j, k, l, m, p, r,\n\t        dl1, c, c2, c3, el1, s, s2,\n\t        iter;\n\t\n\t    for (i = 1; i < n; i++) {\n\t        e[i - 1] = e[i];\n\t    }\n\t\n\t    e[n - 1] = 0;\n\t\n\t    var f = 0,\n\t        tst1 = 0,\n\t        eps = Math.pow(2, -52);\n\t\n\t    for (l = 0; l < n; l++) {\n\t        tst1 = Math.max(tst1, Math.abs(d[l]) + Math.abs(e[l]));\n\t        m = l;\n\t        while (m < n) {\n\t            if (Math.abs(e[m]) <= eps * tst1) {\n\t                break;\n\t            }\n\t            m++;\n\t        }\n\t\n\t        if (m > l) {\n\t            iter = 0;\n\t            do {\n\t                iter = iter + 1;\n\t\n\t                g = d[l];\n\t                p = (d[l + 1] - g) / (2 * e[l]);\n\t                r = hypotenuse(p, 1);\n\t                if (p < 0) {\n\t                    r = -r;\n\t                }\n\t\n\t                d[l] = e[l] / (p + r);\n\t                d[l + 1] = e[l] * (p + r);\n\t                dl1 = d[l + 1];\n\t                h = g - d[l];\n\t                for (i = l + 2; i < n; i++) {\n\t                    d[i] -= h;\n\t                }\n\t\n\t                f = f + h;\n\t\n\t                p = d[m];\n\t                c = 1;\n\t                c2 = c;\n\t                c3 = c;\n\t                el1 = e[l + 1];\n\t                s = 0;\n\t                s2 = 0;\n\t                for (i = m - 1; i >= l; i--) {\n\t                    c3 = c2;\n\t                    c2 = c;\n\t                    s2 = s;\n\t                    g = c * e[i];\n\t                    h = c * p;\n\t                    r = hypotenuse(p, e[i]);\n\t                    e[i + 1] = s * r;\n\t                    s = e[i] / r;\n\t                    c = p / r;\n\t                    p = c * d[i] - s * g;\n\t                    d[i + 1] = h + s * (c * g + s * d[i]);\n\t\n\t                    for (k = 0; k < n; k++) {\n\t                        h = V[k][i + 1];\n\t                        V[k][i + 1] = s * V[k][i] + c * h;\n\t                        V[k][i] = c * V[k][i] - s * h;\n\t                    }\n\t                }\n\t\n\t                p = -s * s2 * c3 * el1 * e[l] / dl1;\n\t                e[l] = s * p;\n\t                d[l] = c * p;\n\t\n\t            }\n\t            while (Math.abs(e[l]) > eps * tst1);\n\t        }\n\t        d[l] = d[l] + f;\n\t        e[l] = 0;\n\t    }\n\t\n\t    for (i = 0; i < n - 1; i++) {\n\t        k = i;\n\t        p = d[i];\n\t        for (j = i + 1; j < n; j++) {\n\t            if (d[j] < p) {\n\t                k = j;\n\t                p = d[j];\n\t            }\n\t        }\n\t\n\t        if (k !== i) {\n\t            d[k] = d[i];\n\t            d[i] = p;\n\t            for (j = 0; j < n; j++) {\n\t                p = V[j][i];\n\t                V[j][i] = V[j][k];\n\t                V[j][k] = p;\n\t            }\n\t        }\n\t    }\n\t}\n\t\n\tfunction orthes(n, H, ort, V) {\n\t\n\t    var low = 0,\n\t        high = n - 1,\n\t        f, g, h, i, j, m,\n\t        scale;\n\t\n\t    for (m = low + 1; m <= high - 1; m++) {\n\t        scale = 0;\n\t        for (i = m; i <= high; i++) {\n\t            scale = scale + Math.abs(H[i][m - 1]);\n\t        }\n\t\n\t        if (scale !== 0) {\n\t            h = 0;\n\t            for (i = high; i >= m; i--) {\n\t                ort[i] = H[i][m - 1] / scale;\n\t                h += ort[i] * ort[i];\n\t            }\n\t\n\t            g = Math.sqrt(h);\n\t            if (ort[m] > 0) {\n\t                g = -g;\n\t            }\n\t\n\t            h = h - ort[m] * g;\n\t            ort[m] = ort[m] - g;\n\t\n\t            for (j = m; j < n; j++) {\n\t                f = 0;\n\t                for (i = high; i >= m; i--) {\n\t                    f += ort[i] * H[i][j];\n\t                }\n\t\n\t                f = f / h;\n\t                for (i = m; i <= high; i++) {\n\t                    H[i][j] -= f * ort[i];\n\t                }\n\t            }\n\t\n\t            for (i = 0; i <= high; i++) {\n\t                f = 0;\n\t                for (j = high; j >= m; j--) {\n\t                    f += ort[j] * H[i][j];\n\t                }\n\t\n\t                f = f / h;\n\t                for (j = m; j <= high; j++) {\n\t                    H[i][j] -= f * ort[j];\n\t                }\n\t            }\n\t\n\t            ort[m] = scale * ort[m];\n\t            H[m][m - 1] = scale * g;\n\t        }\n\t    }\n\t\n\t    for (i = 0; i < n; i++) {\n\t        for (j = 0; j < n; j++) {\n\t            V[i][j] = (i === j ? 1 : 0);\n\t        }\n\t    }\n\t\n\t    for (m = high - 1; m >= low + 1; m--) {\n\t        if (H[m][m - 1] !== 0) {\n\t            for (i = m + 1; i <= high; i++) {\n\t                ort[i] = H[i][m - 1];\n\t            }\n\t\n\t            for (j = m; j <= high; j++) {\n\t                g = 0;\n\t                for (i = m; i <= high; i++) {\n\t                    g += ort[i] * V[i][j];\n\t                }\n\t\n\t                g = (g / ort[m]) / H[m][m - 1];\n\t                for (i = m; i <= high; i++) {\n\t                    V[i][j] += g * ort[i];\n\t                }\n\t            }\n\t        }\n\t    }\n\t}\n\t\n\tfunction hqr2(nn, e, d, V, H) {\n\t    var n = nn - 1,\n\t        low = 0,\n\t        high = nn - 1,\n\t        eps = Math.pow(2, -52),\n\t        exshift = 0,\n\t        norm = 0,\n\t        p = 0,\n\t        q = 0,\n\t        r = 0,\n\t        s = 0,\n\t        z = 0,\n\t        iter = 0,\n\t        i, j, k, l, m, t, w, x, y,\n\t        ra, sa, vr, vi,\n\t        notlast, cdivres;\n\t\n\t    for (i = 0; i < nn; i++) {\n\t        if (i < low || i > high) {\n\t            d[i] = H[i][i];\n\t            e[i] = 0;\n\t        }\n\t\n\t        for (j = Math.max(i - 1, 0); j < nn; j++) {\n\t            norm = norm + Math.abs(H[i][j]);\n\t        }\n\t    }\n\t\n\t    while (n >= low) {\n\t        l = n;\n\t        while (l > low) {\n\t            s = Math.abs(H[l - 1][l - 1]) + Math.abs(H[l][l]);\n\t            if (s === 0) {\n\t                s = norm;\n\t            }\n\t            if (Math.abs(H[l][l - 1]) < eps * s) {\n\t                break;\n\t            }\n\t            l--;\n\t        }\n\t\n\t        if (l === n) {\n\t            H[n][n] = H[n][n] + exshift;\n\t            d[n] = H[n][n];\n\t            e[n] = 0;\n\t            n--;\n\t            iter = 0;\n\t        } else if (l === n - 1) {\n\t            w = H[n][n - 1] * H[n - 1][n];\n\t            p = (H[n - 1][n - 1] - H[n][n]) / 2;\n\t            q = p * p + w;\n\t            z = Math.sqrt(Math.abs(q));\n\t            H[n][n] = H[n][n] + exshift;\n\t            H[n - 1][n - 1] = H[n - 1][n - 1] + exshift;\n\t            x = H[n][n];\n\t\n\t            if (q >= 0) {\n\t                z = (p >= 0) ? (p + z) : (p - z);\n\t                d[n - 1] = x + z;\n\t                d[n] = d[n - 1];\n\t                if (z !== 0) {\n\t                    d[n] = x - w / z;\n\t                }\n\t                e[n - 1] = 0;\n\t                e[n] = 0;\n\t                x = H[n][n - 1];\n\t                s = Math.abs(x) + Math.abs(z);\n\t                p = x / s;\n\t                q = z / s;\n\t                r = Math.sqrt(p * p + q * q);\n\t                p = p / r;\n\t                q = q / r;\n\t\n\t                for (j = n - 1; j < nn; j++) {\n\t                    z = H[n - 1][j];\n\t                    H[n - 1][j] = q * z + p * H[n][j];\n\t                    H[n][j] = q * H[n][j] - p * z;\n\t                }\n\t\n\t                for (i = 0; i <= n; i++) {\n\t                    z = H[i][n - 1];\n\t                    H[i][n - 1] = q * z + p * H[i][n];\n\t                    H[i][n] = q * H[i][n] - p * z;\n\t                }\n\t\n\t                for (i = low; i <= high; i++) {\n\t                    z = V[i][n - 1];\n\t                    V[i][n - 1] = q * z + p * V[i][n];\n\t                    V[i][n] = q * V[i][n] - p * z;\n\t                }\n\t            } else {\n\t                d[n - 1] = x + p;\n\t                d[n] = x + p;\n\t                e[n - 1] = z;\n\t                e[n] = -z;\n\t            }\n\t\n\t            n = n - 2;\n\t            iter = 0;\n\t        } else {\n\t            x = H[n][n];\n\t            y = 0;\n\t            w = 0;\n\t            if (l < n) {\n\t                y = H[n - 1][n - 1];\n\t                w = H[n][n - 1] * H[n - 1][n];\n\t            }\n\t\n\t            if (iter === 10) {\n\t                exshift += x;\n\t                for (i = low; i <= n; i++) {\n\t                    H[i][i] -= x;\n\t                }\n\t                s = Math.abs(H[n][n - 1]) + Math.abs(H[n - 1][n - 2]);\n\t                x = y = 0.75 * s;\n\t                w = -0.4375 * s * s;\n\t            }\n\t\n\t            if (iter === 30) {\n\t                s = (y - x) / 2;\n\t                s = s * s + w;\n\t                if (s > 0) {\n\t                    s = Math.sqrt(s);\n\t                    if (y < x) {\n\t                        s = -s;\n\t                    }\n\t                    s = x - w / ((y - x) / 2 + s);\n\t                    for (i = low; i <= n; i++) {\n\t                        H[i][i] -= s;\n\t                    }\n\t                    exshift += s;\n\t                    x = y = w = 0.964;\n\t                }\n\t            }\n\t\n\t            iter = iter + 1;\n\t\n\t            m = n - 2;\n\t            while (m >= l) {\n\t                z = H[m][m];\n\t                r = x - z;\n\t                s = y - z;\n\t                p = (r * s - w) / H[m + 1][m] + H[m][m + 1];\n\t                q = H[m + 1][m + 1] - z - r - s;\n\t                r = H[m + 2][m + 1];\n\t                s = Math.abs(p) + Math.abs(q) + Math.abs(r);\n\t                p = p / s;\n\t                q = q / s;\n\t                r = r / s;\n\t                if (m === l) {\n\t                    break;\n\t                }\n\t                if (Math.abs(H[m][m - 1]) * (Math.abs(q) + Math.abs(r)) < eps * (Math.abs(p) * (Math.abs(H[m - 1][m - 1]) + Math.abs(z) + Math.abs(H[m + 1][m + 1])))) {\n\t                    break;\n\t                }\n\t                m--;\n\t            }\n\t\n\t            for (i = m + 2; i <= n; i++) {\n\t                H[i][i - 2] = 0;\n\t                if (i > m + 2) {\n\t                    H[i][i - 3] = 0;\n\t                }\n\t            }\n\t\n\t            for (k = m; k <= n - 1; k++) {\n\t                notlast = (k !== n - 1);\n\t                if (k !== m) {\n\t                    p = H[k][k - 1];\n\t                    q = H[k + 1][k - 1];\n\t                    r = (notlast ? H[k + 2][k - 1] : 0);\n\t                    x = Math.abs(p) + Math.abs(q) + Math.abs(r);\n\t                    if (x !== 0) {\n\t                        p = p / x;\n\t                        q = q / x;\n\t                        r = r / x;\n\t                    }\n\t                }\n\t\n\t                if (x === 0) {\n\t                    break;\n\t                }\n\t\n\t                s = Math.sqrt(p * p + q * q + r * r);\n\t                if (p < 0) {\n\t                    s = -s;\n\t                }\n\t\n\t                if (s !== 0) {\n\t                    if (k !== m) {\n\t                        H[k][k - 1] = -s * x;\n\t                    } else if (l !== m) {\n\t                        H[k][k - 1] = -H[k][k - 1];\n\t                    }\n\t\n\t                    p = p + s;\n\t                    x = p / s;\n\t                    y = q / s;\n\t                    z = r / s;\n\t                    q = q / p;\n\t                    r = r / p;\n\t\n\t                    for (j = k; j < nn; j++) {\n\t                        p = H[k][j] + q * H[k + 1][j];\n\t                        if (notlast) {\n\t                            p = p + r * H[k + 2][j];\n\t                            H[k + 2][j] = H[k + 2][j] - p * z;\n\t                        }\n\t\n\t                        H[k][j] = H[k][j] - p * x;\n\t                        H[k + 1][j] = H[k + 1][j] - p * y;\n\t                    }\n\t\n\t                    for (i = 0; i <= Math.min(n, k + 3); i++) {\n\t                        p = x * H[i][k] + y * H[i][k + 1];\n\t                        if (notlast) {\n\t                            p = p + z * H[i][k + 2];\n\t                            H[i][k + 2] = H[i][k + 2] - p * r;\n\t                        }\n\t\n\t                        H[i][k] = H[i][k] - p;\n\t                        H[i][k + 1] = H[i][k + 1] - p * q;\n\t                    }\n\t\n\t                    for (i = low; i <= high; i++) {\n\t                        p = x * V[i][k] + y * V[i][k + 1];\n\t                        if (notlast) {\n\t                            p = p + z * V[i][k + 2];\n\t                            V[i][k + 2] = V[i][k + 2] - p * r;\n\t                        }\n\t\n\t                        V[i][k] = V[i][k] - p;\n\t                        V[i][k + 1] = V[i][k + 1] - p * q;\n\t                    }\n\t                }\n\t            }\n\t        }\n\t    }\n\t\n\t    if (norm === 0) {\n\t        return;\n\t    }\n\t\n\t    for (n = nn - 1; n >= 0; n--) {\n\t        p = d[n];\n\t        q = e[n];\n\t\n\t        if (q === 0) {\n\t            l = n;\n\t            H[n][n] = 1;\n\t            for (i = n - 1; i >= 0; i--) {\n\t                w = H[i][i] - p;\n\t                r = 0;\n\t                for (j = l; j <= n; j++) {\n\t                    r = r + H[i][j] * H[j][n];\n\t                }\n\t\n\t                if (e[i] < 0) {\n\t                    z = w;\n\t                    s = r;\n\t                } else {\n\t                    l = i;\n\t                    if (e[i] === 0) {\n\t                        H[i][n] = (w !== 0) ? (-r / w) : (-r / (eps * norm));\n\t                    } else {\n\t                        x = H[i][i + 1];\n\t                        y = H[i + 1][i];\n\t                        q = (d[i] - p) * (d[i] - p) + e[i] * e[i];\n\t                        t = (x * s - z * r) / q;\n\t                        H[i][n] = t;\n\t                        H[i + 1][n] = (Math.abs(x) > Math.abs(z)) ? ((-r - w * t) / x) : ((-s - y * t) / z);\n\t                    }\n\t\n\t                    t = Math.abs(H[i][n]);\n\t                    if ((eps * t) * t > 1) {\n\t                        for (j = i; j <= n; j++) {\n\t                            H[j][n] = H[j][n] / t;\n\t                        }\n\t                    }\n\t                }\n\t            }\n\t        } else if (q < 0) {\n\t            l = n - 1;\n\t\n\t            if (Math.abs(H[n][n - 1]) > Math.abs(H[n - 1][n])) {\n\t                H[n - 1][n - 1] = q / H[n][n - 1];\n\t                H[n - 1][n] = -(H[n][n] - p) / H[n][n - 1];\n\t            } else {\n\t                cdivres = cdiv(0, -H[n - 1][n], H[n - 1][n - 1] - p, q);\n\t                H[n - 1][n - 1] = cdivres[0];\n\t                H[n - 1][n] = cdivres[1];\n\t            }\n\t\n\t            H[n][n - 1] = 0;\n\t            H[n][n] = 1;\n\t            for (i = n - 2; i >= 0; i--) {\n\t                ra = 0;\n\t                sa = 0;\n\t                for (j = l; j <= n; j++) {\n\t                    ra = ra + H[i][j] * H[j][n - 1];\n\t                    sa = sa + H[i][j] * H[j][n];\n\t                }\n\t\n\t                w = H[i][i] - p;\n\t\n\t                if (e[i] < 0) {\n\t                    z = w;\n\t                    r = ra;\n\t                    s = sa;\n\t                } else {\n\t                    l = i;\n\t                    if (e[i] === 0) {\n\t                        cdivres = cdiv(-ra, -sa, w, q);\n\t                        H[i][n - 1] = cdivres[0];\n\t                        H[i][n] = cdivres[1];\n\t                    } else {\n\t                        x = H[i][i + 1];\n\t                        y = H[i + 1][i];\n\t                        vr = (d[i] - p) * (d[i] - p) + e[i] * e[i] - q * q;\n\t                        vi = (d[i] - p) * 2 * q;\n\t                        if (vr === 0 && vi === 0) {\n\t                            vr = eps * norm * (Math.abs(w) + Math.abs(q) + Math.abs(x) + Math.abs(y) + Math.abs(z));\n\t                        }\n\t                        cdivres = cdiv(x * r - z * ra + q * sa, x * s - z * sa - q * ra, vr, vi);\n\t                        H[i][n - 1] = cdivres[0];\n\t                        H[i][n] = cdivres[1];\n\t                        if (Math.abs(x) > (Math.abs(z) + Math.abs(q))) {\n\t                            H[i + 1][n - 1] = (-ra - w * H[i][n - 1] + q * H[i][n]) / x;\n\t                            H[i + 1][n] = (-sa - w * H[i][n] - q * H[i][n - 1]) / x;\n\t                        } else {\n\t                            cdivres = cdiv(-r - y * H[i][n - 1], -s - y * H[i][n], z, q);\n\t                            H[i + 1][n - 1] = cdivres[0];\n\t                            H[i + 1][n] = cdivres[1];\n\t                        }\n\t                    }\n\t\n\t                    t = Math.max(Math.abs(H[i][n - 1]), Math.abs(H[i][n]));\n\t                    if ((eps * t) * t > 1) {\n\t                        for (j = i; j <= n; j++) {\n\t                            H[j][n - 1] = H[j][n - 1] / t;\n\t                            H[j][n] = H[j][n] / t;\n\t                        }\n\t                    }\n\t                }\n\t            }\n\t        }\n\t    }\n\t\n\t    for (i = 0; i < nn; i++) {\n\t        if (i < low || i > high) {\n\t            for (j = i; j < nn; j++) {\n\t                V[i][j] = H[i][j];\n\t            }\n\t        }\n\t    }\n\t\n\t    for (j = nn - 1; j >= low; j--) {\n\t        for (i = low; i <= high; i++) {\n\t            z = 0;\n\t            for (k = low; k <= Math.min(j, high); k++) {\n\t                z = z + V[i][k] * H[k][j];\n\t            }\n\t            V[i][j] = z;\n\t        }\n\t    }\n\t}\n\t\n\tfunction cdiv(xr, xi, yr, yi) {\n\t    var r, d;\n\t    if (Math.abs(yr) > Math.abs(yi)) {\n\t        r = yi / yr;\n\t        d = yr + r * yi;\n\t        return [(xr + r * xi) / d, (xi - r * xr) / d];\n\t    }\n\t    else {\n\t        r = yr / yi;\n\t        d = yi + r * yr;\n\t        return [(r * xr + xi) / d, (r * xi - xr) / d];\n\t    }\n\t}\n\t\n\tfunction EigenvalueDecompositionResult(n, e, d, V) {\n\t    this.n = n;\n\t    this.e = e;\n\t    this.d = d;\n\t    this.V = V;\n\t}\n\t\n\tEigenvalueDecompositionResult.prototype = {\n\t    get realEigenvalues() {\n\t        return this.d;\n\t    },\n\t    get imaginaryEigenvalues() {\n\t        return this.e;\n\t    },\n\t    get eigenvectorMatrix() {\n\t        return this.V;\n\t    },\n\t    get diagonalMatrix() {\n\t        var n = this.n,\n\t            e = this.e,\n\t            d = this.d,\n\t            X = new Matrix(n, n),\n\t            i, j;\n\t        for (i = 0; i < n; i++) {\n\t            for (j = 0; j < n; j++) {\n\t                X[i][j] = 0;\n\t            }\n\t            X[i][i] = d[i];\n\t            if (e[i] > 0) {\n\t                X[i][i + 1] = e[i];\n\t            }\n\t            else if (e[i] < 0) {\n\t                X[i][i - 1] = e[i];\n\t            }\n\t        }\n\t        return X;\n\t    }\n\t};\n\t\n\t// https://github.com/lutzroeder/Mapack/blob/master/Source/LuDecomposition.cs\n\tfunction LuDecomposition(matrix) {\n\t    matrix = Matrix.checkMatrix(matrix);\n\t\n\t    var lu = matrix.clone(),\n\t        rows = lu.rows,\n\t        columns = lu.columns,\n\t        pivotVector = new Array(rows),\n\t        pivotSign = 1,\n\t        i, j, k, p, s, t, v,\n\t        LUrowi, LUcolj, kmax;\n\t\n\t    for (i = 0; i < rows; i++) {\n\t        pivotVector[i] = i;\n\t    }\n\t\n\t    LUcolj = new Array(rows);\n\t\n\t    for (j = 0; j < columns; j++) {\n\t\n\t        for (i = 0; i < rows; i++) {\n\t            LUcolj[i] = lu[i][j];\n\t        }\n\t\n\t        for (i = 0; i < rows; i++) {\n\t            LUrowi = lu[i];\n\t            kmax = Math.min(i, j);\n\t            s = 0;\n\t            for (k = 0; k < kmax; k++) {\n\t                s += LUrowi[k] * LUcolj[k];\n\t            }\n\t            LUrowi[j] = LUcolj[i] -= s;\n\t        }\n\t\n\t        p = j;\n\t        for (i = j + 1; i < rows; i++) {\n\t            if (Math.abs(LUcolj[i]) > Math.abs(LUcolj[p])) {\n\t                p = i;\n\t            }\n\t        }\n\t\n\t        if (p !== j) {\n\t            for (k = 0; k < columns; k++) {\n\t                t = lu[p][k];\n\t                lu[p][k] = lu[j][k];\n\t                lu[j][k] = t;\n\t            }\n\t\n\t            v = pivotVector[p];\n\t            pivotVector[p] = pivotVector[j];\n\t            pivotVector[j] = v;\n\t\n\t            pivotSign = -pivotSign;\n\t        }\n\t\n\t        if (j < rows && lu[j][j] !== 0) {\n\t            for (i = j + 1; i < rows; i++) {\n\t                lu[i][j] /= lu[j][j];\n\t            }\n\t        }\n\t    }\n\t\n\t    return new LuDecompositionResult(lu, pivotVector, pivotSign);\n\t\n\t}\n\t\n\tfunction LuDecompositionResult(lu, vector, sign) {\n\t    this.LU = lu;\n\t    this.pivotVector = vector;\n\t    this.pivotSign = sign;\n\t}\n\t\n\tLuDecompositionResult.prototype = {\n\t    isSingular: function () {\n\t        var data = this.LU,\n\t            col = data.columns;\n\t        for (var j = 0; j < col; j++) {\n\t            if (data[j][j] === 0) {\n\t                return true;\n\t            }\n\t        }\n\t        return false;\n\t    },\n\t    get determinant() {\n\t        var data = this.LU;\n\t        if (!data.isSquare())\n\t            throw new Error('Matrix must be square');\n\t        var determinant = this.pivotSign, col = data.columns;\n\t        for (var j = 0; j < col; j++)\n\t            determinant *= data[j][j];\n\t        return determinant;\n\t    },\n\t    get lowerTriangularFactor() {\n\t        var data = this.LU,\n\t            rows = data.rows,\n\t            columns = data.columns,\n\t            X = new Matrix(rows, columns);\n\t        for (var i = 0; i < rows; i++) {\n\t            for (var j = 0; j < columns; j++) {\n\t                if (i > j) {\n\t                    X[i][j] = data[i][j];\n\t                } else if (i === j) {\n\t                    X[i][j] = 1;\n\t                } else {\n\t                    X[i][j] = 0;\n\t                }\n\t            }\n\t        }\n\t        return X;\n\t    },\n\t    get upperTriangularFactor() {\n\t        var data = this.LU,\n\t            rows = data.rows,\n\t            columns = data.columns,\n\t            X = new Matrix(rows, columns);\n\t        for (var i = 0; i < rows; i++) {\n\t            for (var j = 0; j < columns; j++) {\n\t                if (i <= j) {\n\t                    X[i][j] = data[i][j];\n\t                } else {\n\t                    X[i][j] = 0;\n\t                }\n\t            }\n\t        }\n\t        return X;\n\t    },\n\t    get pivotPermutationVector() {\n\t        return this.pivotVector.slice();\n\t    },\n\t    solve: function (value) {\n\t        value = Matrix.checkMatrix(value);\n\t\n\t        var lu = this.LU,\n\t            rows = lu.rows;\n\t\n\t        if (rows !== value.rows)\n\t            throw new Error('Invalid matrix dimensions');\n\t        if (this.isSingular())\n\t            throw new Error('LU matrix is singular');\n\t\n\t        var count = value.columns,\n\t            X = value.subMatrixRow(this.pivotVector, 0, count - 1),\n\t            columns = lu.columns,\n\t            i, j, k;\n\t\n\t        for (k = 0; k < columns; k++) {\n\t            for (i = k + 1; i < columns; i++) {\n\t                for (j = 0; j < count; j++) {\n\t                    X[i][j] -= X[k][j] * lu[i][k];\n\t                }\n\t            }\n\t        }\n\t        for (k = columns - 1; k >= 0; k--) {\n\t            for (j = 0; j < count; j++) {\n\t                X[k][j] /= lu[k][k];\n\t            }\n\t            for (i = 0; i < k; i++) {\n\t                for (j = 0; j < count; j++) {\n\t                    X[i][j] -= X[k][j] * lu[i][k];\n\t                }\n\t            }\n\t        }\n\t        return X;\n\t    }\n\t};\n\t\n\t//https://github.com/lutzroeder/Mapack/blob/master/Source/QrDecomposition.cs\n\tfunction QrDecomposition(value) {\n\t    value = Matrix.checkMatrix(value)\n\t\n\t    var qr = value.clone(),\n\t        m = value.rows,\n\t        n = value.columns,\n\t        rdiag = new Array(n),\n\t        i, j, k, s;\n\t\n\t    for (k = 0; k < n; k++) {\n\t        var nrm = 0;\n\t        for (i = k; i < m; i++) {\n\t            nrm = hypotenuse(nrm, qr[i][k]);\n\t        }\n\t        if (nrm !== 0) {\n\t            if (qr[k][k] < 0) {\n\t                nrm = -nrm;\n\t            }\n\t            for (i = k; i < m; i++) {\n\t                qr[i][k] /= nrm;\n\t            }\n\t            qr[k][k] += 1;\n\t            for (j = k + 1; j < n; j++) {\n\t                s = 0;\n\t                for (i = k; i < m; i++) {\n\t                    s += qr[i][k] * qr[i][j];\n\t                }\n\t                s = -s / qr[k][k];\n\t                for (i = k; i < m; i++) {\n\t                    qr[i][j] += s * qr[i][k];\n\t                }\n\t            }\n\t        }\n\t        rdiag[k] = -nrm;\n\t    }\n\t\n\t    return new QrDecompositionResult(qr, rdiag);\n\t}\n\t\n\tfunction QrDecompositionResult(qr, rdiag) {\n\t    this.QR = qr;\n\t    this.Rdiag = rdiag;\n\t}\n\t\n\tQrDecompositionResult.prototype = {\n\t    solve: function (value) {\n\t        value = Matrix.checkMatrix(value);\n\t\n\t        var qr = this.QR,\n\t            m = qr.rows;\n\t\n\t        if (value.rows !== m)\n\t            throw new Error('Matrix row dimensions must agree');\n\t        if (!this.isFullRank())\n\t            throw new Error('Matrix is rank deficient');\n\t\n\t        var count = value.columns,\n\t            X = value.clone(),\n\t            n = qr.columns,\n\t            i, j, k, s;\n\t\n\t        for (k = 0; k < n; k++) {\n\t            for (j = 0; j < count; j++) {\n\t                s = 0;\n\t                for (i = k; i < m; i++) {\n\t                    s += qr[i][k] * X[i][j];\n\t                }\n\t                s = -s / qr[k][k];\n\t                for (i = k; i < m; i++) {\n\t                    X[i][j] += s * qr[i][k];\n\t                }\n\t            }\n\t        }\n\t        for (k = n - 1; k >= 0; k--) {\n\t            for (j = 0; j < count; j++) {\n\t                X[k][j] /= this.Rdiag[k];\n\t            }\n\t            for (i = 0; i < k; i++) {\n\t                for (j = 0; j < count; j++) {\n\t                    X[i][j] -= X[k][j] * qr[i][k];\n\t                }\n\t            }\n\t        }\n\t\n\t        return X.subMatrix(0, n - 1, 0, count - 1);\n\t    },\n\t    isFullRank: function () {\n\t        var columns = this.QR.columns;\n\t        for (var i = 0; i < columns; i++) {\n\t            if (this.Rdiag[i] === 0) {\n\t                return false;\n\t            }\n\t        }\n\t        return true;\n\t    },\n\t    get upperTriangularFactor() {\n\t        var qr = this.QR,\n\t            n = qr.columns,\n\t            X = new Matrix(n, n),\n\t            i, j;\n\t        for (i = 0; i < n; i++) {\n\t            for (j = 0; j < n; j++) {\n\t                if (i < j) {\n\t                    X[i][j] = qr[i][j];\n\t                } else if (i === j) {\n\t                    X[i][j] = this.Rdiag[i];\n\t                } else {\n\t                    X[i][j] = 0;\n\t                }\n\t            }\n\t        }\n\t        return X;\n\t    },\n\t    get orthogonalFactor() {\n\t        var qr = this.QR,\n\t            rows = qr.rows,\n\t            columns = qr.columns,\n\t            X = new Matrix(rows, columns),\n\t            i, j, k, s;\n\t\n\t        for (k = columns - 1; k >= 0; k--) {\n\t            for (i = 0; i < rows; i++) {\n\t                X[i][k] = 0;\n\t            }\n\t            X[k][k] = 1;\n\t            for (j = k; j < columns; j++) {\n\t                if (qr[k][k] !== 0) {\n\t                    s = 0;\n\t                    for (i = k; i < rows; i++) {\n\t                        s += qr[i][k] * X[i][j];\n\t                    }\n\t\n\t                    s = -s / qr[k][k];\n\t\n\t                    for (i = k; i < rows; i++) {\n\t                        X[i][j] += s * qr[i][k];\n\t                    }\n\t                }\n\t            }\n\t        }\n\t        return X;\n\t    }\n\t};\n\t\n\t// https://github.com/lutzroeder/Mapack/blob/master/Source/SingularValueDecomposition.cs\n\tfunction SingularValueDecomposition(value, options) {\n\t    value = Matrix.checkMatrix(value);\n\t\n\t    options = options || {};\n\t\n\t    var a = value.clone(),\n\t        m = value.rows,\n\t        n = value.columns,\n\t        nu = Math.min(m, n);\n\t\n\t    var wantu = true, wantv = true;\n\t    if (options.computeLeftSingularVectors === false)\n\t        wantu = false;\n\t    if (options.computeRightSingularVectors === false)\n\t        wantv = false;\n\t    var autoTranspose = options.autoTranspose === true;\n\t\n\t    var swapped = false;\n\t    if (m < n) {\n\t        if (!autoTranspose) {\n\t            console.warn('WARNING: Computing SVD on a matrix with more columns than rows.');\n\t        } else {\n\t            a = a.transpose();\n\t            m = a.rows;\n\t            n = a.columns;\n\t            swapped = true;\n\t            var aux = wantu;\n\t            wantu = wantv;\n\t            wantv = aux;\n\t        }\n\t    }\n\t\n\t    var s = new Array(Math.min(m + 1, n)),\n\t        U = Matrix.zeros(m, nu),\n\t        V = Matrix.zeros(n, n),\n\t        e = new Array(n),\n\t        work = new Array(m);\n\t\n\t    var nct = Math.min(m - 1, n);\n\t    var nrt = Math.max(0, Math.min(n - 2, m));\n\t\n\t    var i, j, k, p, t, ks, f, cs, sn, max, kase,\n\t        scale, sp, spm1, epm1, sk, ek, b, c, shift, g;\n\t\n\t    for (k = 0, max = Math.max(nct, nrt); k < max; k++) {\n\t        if (k < nct) {\n\t            s[k] = 0;\n\t            for (i = k; i < m; i++) {\n\t                s[k] = hypotenuse(s[k], a[i][k]);\n\t            }\n\t            if (s[k] !== 0) {\n\t                if (a[k][k] < 0) {\n\t                    s[k] = -s[k];\n\t                }\n\t                for (i = k; i < m; i++) {\n\t                    a[i][k] /= s[k];\n\t                }\n\t                a[k][k] += 1;\n\t            }\n\t            s[k] = -s[k];\n\t        }\n\t\n\t        for (j = k + 1; j < n; j++) {\n\t            if ((k < nct) && (s[k] !== 0)) {\n\t                t = 0;\n\t                for (i = k; i < m; i++) {\n\t                    t += a[i][k] * a[i][j];\n\t                }\n\t                t = -t / a[k][k];\n\t                for (i = k; i < m; i++) {\n\t                    a[i][j] += t * a[i][k];\n\t                }\n\t            }\n\t            e[j] = a[k][j];\n\t        }\n\t\n\t        if (wantu && (k < nct)) {\n\t            for (i = k; i < m; i++) {\n\t                U[i][k] = a[i][k];\n\t            }\n\t        }\n\t\n\t        if (k < nrt) {\n\t            e[k] = 0;\n\t            for (i = k + 1; i < n; i++) {\n\t                e[k] = hypotenuse(e[k], e[i]);\n\t            }\n\t            if (e[k] !== 0) {\n\t                if (e[k + 1] < 0)\n\t                    e[k] = -e[k];\n\t                for (i = k + 1; i < n; i++) {\n\t                    e[i] /= e[k];\n\t                }\n\t                e[k + 1] += 1;\n\t            }\n\t            e[k] = -e[k];\n\t            if ((k + 1 < m) && (e[k] !== 0)) {\n\t                for (i = k + 1; i < m; i++) {\n\t                    work[i] = 0;\n\t                }\n\t                for (j = k + 1; j < n; j++) {\n\t                    for (i = k + 1; i < m; i++) {\n\t                        work[i] += e[j] * a[i][j];\n\t                    }\n\t                }\n\t                for (j = k + 1; j < n; j++) {\n\t                    t = -e[j] / e[k + 1];\n\t                    for (i = k + 1; i < m; i++) {\n\t                        a[i][j] += t * work[i];\n\t                    }\n\t                }\n\t            }\n\t            if (wantv) {\n\t                for (i = k + 1; i < n; i++) {\n\t                    V[i][k] = e[i];\n\t                }\n\t            }\n\t        }\n\t    }\n\t\n\t    p = Math.min(n, m + 1);\n\t    if (nct < n) {\n\t        s[nct] = a[nct][nct];\n\t    }\n\t    if (m < p) {\n\t        s[p - 1] = 0;\n\t    }\n\t    if (nrt + 1 < p) {\n\t        e[nrt] = a[nrt][p - 1];\n\t    }\n\t    e[p - 1] = 0;\n\t\n\t    if (wantu) {\n\t        for (j = nct; j < nu; j++) {\n\t            for (i = 0; i < m; i++) {\n\t                U[i][j] = 0;\n\t            }\n\t            U[j][j] = 1;\n\t        }\n\t        for (k = nct - 1; k >= 0; k--) {\n\t            if (s[k] !== 0) {\n\t                for (j = k + 1; j < nu; j++) {\n\t                    t = 0;\n\t                    for (i = k; i < m; i++) {\n\t                        t += U[i][k] * U[i][j];\n\t                    }\n\t                    t = -t / U[k][k];\n\t                    for (i = k; i < m; i++) {\n\t                        U[i][j] += t * U[i][k];\n\t                    }\n\t                }\n\t                for (i = k; i < m; i++) {\n\t                    U[i][k] = -U[i][k];\n\t                }\n\t                U[k][k] = 1 + U[k][k];\n\t                for (i = 0; i < k - 1; i++) {\n\t                    U[i][k] = 0;\n\t                }\n\t            } else {\n\t                for (i = 0; i < m; i++) {\n\t                    U[i][k] = 0;\n\t                }\n\t                U[k][k] = 1;\n\t            }\n\t        }\n\t    }\n\t\n\t    if (wantv) {\n\t        for (k = n - 1; k >= 0; k--) {\n\t            if ((k < nrt) && (e[k] !== 0)) {\n\t                for (j = k + 1; j < n; j++) {\n\t                    t = 0;\n\t                    for (i = k + 1; i < n; i++) {\n\t                        t += V[i][k] * V[i][j];\n\t                    }\n\t                    t = -t / V[k + 1][k];\n\t                    for (i = k + 1; i < n; i++) {\n\t                        V[i][j] += t * V[i][k];\n\t                    }\n\t                }\n\t            }\n\t            for (i = 0; i < n; i++) {\n\t                V[i][k] = 0;\n\t            }\n\t            V[k][k] = 1;\n\t        }\n\t    }\n\t\n\t    var pp = p - 1,\n\t        iter = 0,\n\t        eps = Math.pow(2, -52);\n\t    while (p > 0) {\n\t        for (k = p - 2; k >= -1; k--) {\n\t            if (k === -1) {\n\t                break;\n\t            }\n\t            if (Math.abs(e[k]) <= eps * (Math.abs(s[k]) + Math.abs(s[k + 1]))) {\n\t                e[k] = 0;\n\t                break;\n\t            }\n\t        }\n\t        if (k === p - 2) {\n\t            kase = 4;\n\t        } else {\n\t            for (ks = p - 1; ks >= k; ks--) {\n\t                if (ks === k) {\n\t                    break;\n\t                }\n\t                t = (ks !== p ? Math.abs(e[ks]) : 0) + (ks !== k + 1 ? Math.abs(e[ks - 1]) : 0);\n\t                if (Math.abs(s[ks]) <= eps * t) {\n\t                    s[ks] = 0;\n\t                    break;\n\t                }\n\t            }\n\t            if (ks === k) {\n\t                kase = 3;\n\t            } else if (ks === p - 1) {\n\t                kase = 1;\n\t            } else {\n\t                kase = 2;\n\t                k = ks;\n\t            }\n\t        }\n\t\n\t        k++;\n\t\n\t        switch (kase) {\n\t            case 1: {\n\t                f = e[p - 2];\n\t                e[p - 2] = 0;\n\t                for (j = p - 2; j >= k; j--) {\n\t                    t = hypotenuse(s[j], f);\n\t                    cs = s[j] / t;\n\t                    sn = f / t;\n\t                    s[j] = t;\n\t                    if (j !== k) {\n\t                        f = -sn * e[j - 1];\n\t                        e[j - 1] = cs * e[j - 1];\n\t                    }\n\t                    if (wantv) {\n\t                        for (i = 0; i < n; i++) {\n\t                            t = cs * V[i][j] + sn * V[i][p - 1];\n\t                            V[i][p - 1] = -sn * V[i][j] + cs * V[i][p - 1];\n\t                            V[i][j] = t;\n\t                        }\n\t                    }\n\t                }\n\t                break;\n\t            }\n\t            case 2 : {\n\t                f = e[k - 1];\n\t                e[k - 1] = 0;\n\t                for (j = k; j < p; j++) {\n\t                    t = hypotenuse(s[j], f);\n\t                    cs = s[j] / t;\n\t                    sn = f / t;\n\t                    s[j] = t;\n\t                    f = -sn * e[j];\n\t                    e[j] = cs * e[j];\n\t                    if (wantu) {\n\t                        for (i = 0; i < m; i++) {\n\t                            t = cs * U[i][j] + sn * U[i][k - 1];\n\t                            U[i][k - 1] = -sn * U[i][j] + cs * U[i][k - 1];\n\t                            U[i][j] = t;\n\t                        }\n\t                    }\n\t                }\n\t                break;\n\t            }\n\t            case 3 : {\n\t                scale = Math.max(Math.max(Math.max(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]));\n\t                sp = s[p - 1] / scale;\n\t                spm1 = s[p - 2] / scale;\n\t                epm1 = e[p - 2] / scale;\n\t                sk = s[k] / scale;\n\t                ek = e[k] / scale;\n\t                b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;\n\t                c = (sp * epm1) * (sp * epm1);\n\t                shift = 0;\n\t                if ((b !== 0) || (c !== 0)) {\n\t                    shift = Math.sqrt(b * b + c);\n\t                    if (b < 0) {\n\t                        shift = -shift;\n\t                    }\n\t                    shift = c / (b + shift);\n\t                }\n\t                f = (sk + sp) * (sk - sp) + shift;\n\t                g = sk * ek;\n\t                for (j = k; j < p - 1; j++) {\n\t                    t = hypotenuse(f, g);\n\t                    cs = f / t;\n\t                    sn = g / t;\n\t                    if (j !== k) {\n\t                        e[j - 1] = t;\n\t                    }\n\t                    f = cs * s[j] + sn * e[j];\n\t                    e[j] = cs * e[j] - sn * s[j];\n\t                    g = sn * s[j + 1];\n\t                    s[j + 1] = cs * s[j + 1];\n\t                    if (wantv) {\n\t                        for (i = 0; i < n; i++) {\n\t                            t = cs * V[i][j] + sn * V[i][j + 1];\n\t                            V[i][j + 1] = -sn * V[i][j] + cs * V[i][j + 1];\n\t                            V[i][j] = t;\n\t                        }\n\t                    }\n\t                    t = hypotenuse(f, g);\n\t                    cs = f / t;\n\t                    sn = g / t;\n\t                    s[j] = t;\n\t                    f = cs * e[j] + sn * s[j + 1];\n\t                    s[j + 1] = -sn * e[j] + cs * s[j + 1];\n\t                    g = sn * e[j + 1];\n\t                    e[j + 1] = cs * e[j + 1];\n\t                    if (wantu && (j < m - 1)) {\n\t                        for (i = 0; i < m; i++) {\n\t                            t = cs * U[i][j] + sn * U[i][j + 1];\n\t                            U[i][j + 1] = -sn * U[i][j] + cs * U[i][j + 1];\n\t                            U[i][j] = t;\n\t                        }\n\t                    }\n\t                }\n\t                e[p - 2] = f;\n\t                iter = iter + 1;\n\t                break;\n\t            }\n\t            case 4: {\n\t                if (s[k] <= 0) {\n\t                    s[k] = (s[k] < 0 ? -s[k] : 0);\n\t                    if (wantv) {\n\t                        for (i = 0; i <= pp; i++) {\n\t                            V[i][k] = -V[i][k];\n\t                        }\n\t                    }\n\t                }\n\t                while (k < pp) {\n\t                    if (s[k] >= s[k + 1]) {\n\t                        break;\n\t                    }\n\t                    t = s[k];\n\t                    s[k] = s[k + 1];\n\t                    s[k + 1] = t;\n\t                    if (wantv && (k < n - 1)) {\n\t                        for (i = 0; i < n; i++) {\n\t                            t = V[i][k + 1];\n\t                            V[i][k + 1] = V[i][k];\n\t                            V[i][k] = t;\n\t                        }\n\t                    }\n\t                    if (wantu && (k < m - 1)) {\n\t                        for (i = 0; i < m; i++) {\n\t                            t = U[i][k + 1];\n\t                            U[i][k + 1] = U[i][k];\n\t                            U[i][k] = t;\n\t                        }\n\t                    }\n\t                    k++;\n\t                }\n\t                iter = 0;\n\t                p--;\n\t                break;\n\t            }\n\t        }\n\t    }\n\t\n\t    if (swapped) {\n\t        var tmp = V;\n\t        V = U;\n\t        U = tmp;\n\t    }\n\t\n\t    return new SingularValueDecompositionResult(m, n, s, U, V);\n\t}\n\t\n\tfunction SingularValueDecompositionResult(m, n, s, U, V) {\n\t    this.m = m;\n\t    this.n = n;\n\t    this.s = s;\n\t    this.U = U;\n\t    this.V = V;\n\t}\n\t\n\tSingularValueDecompositionResult.prototype = {\n\t    get condition() {\n\t        return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n\t    },\n\t    get norm2() {\n\t        return this.s[0];\n\t    },\n\t    get rank() {\n\t        var eps = Math.pow(2, -52),\n\t            tol = Math.max(this.m, this.n) * this.s[0] * eps,\n\t            r = 0,\n\t            s = this.s;\n\t        for (var i = 0, ii = s.length; i < ii; i++) {\n\t            if (s[i] > tol) {\n\t                r++;\n\t            }\n\t        }\n\t        return r;\n\t    },\n\t    get diagonal() {\n\t        return this.s;\n\t    },\n\t    // https://github.com/accord-net/framework/blob/development/Sources/Accord.Math/Decompositions/SingularValueDecomposition.cs\n\t    get threshold() {\n\t        return (Math.pow(2, -52) / 2) * Math.max(this.m, this.n) * this.s[0];\n\t    },\n\t    get leftSingularVectors() {\n\t        return this.U;\n\t    },\n\t    get rightSingularVectors() {\n\t        return this.V;\n\t    },\n\t    get diagonalMatrix() {\n\t        return Matrix.diag(this.s);\n\t    },\n\t    solve: function (value) {\n\t\n\t        var Y = value,\n\t            e = this.threshold,\n\t            scols = this.s.length,\n\t            Ls = Matrix.zeros(scols, scols),\n\t            i;\n\t\n\t        for (i = 0; i < scols; i++) {\n\t            if (Math.abs(this.s[i]) <= e) {\n\t                Ls[i][i] = 0;\n\t            }\n\t            else Ls[i][i] = 1 / this.s[i];\n\t        }\n\t\n\t\n\t        var VL = this.V.mmul(Ls),\n\t            vrows = this.V.rows,\n\t            urows = this.U.rows,\n\t            VLU = Matrix.zeros(vrows, urows),\n\t            j, k, sum;\n\t\n\t        for (i = 0; i < vrows; i++) {\n\t            for (j = 0; j < urows; j++) {\n\t                sum = 0;\n\t                for (k = 0; k < scols; k++) {\n\t                    sum += VL[i][k] * this.U[j][k];\n\t                }\n\t                VLU[i][j] = sum;\n\t            }\n\t        }\n\t\n\t        return VLU.mmul(Y);\n\t    },\n\t    solveForDiagonal: function (value) {\n\t        return this.solve(Matrix.diag(value));\n\t    },\n\t    inverse: function () {\n\t        var e = this.threshold,\n\t            vrows = this.V.rows,\n\t            vcols = this.V.columns,\n\t            X = new Matrix(vrows, this.s.length),\n\t            i, j;\n\t\n\t        for (i = 0; i < vrows; i++) {\n\t            for (j = 0; j < vcols; j++) {\n\t                if (Math.abs(this.s[j]) > e) {\n\t                    X[i][j] = this.V[i][j] / this.s[j];\n\t                }\n\t            }\n\t        }\n\t\n\t        var urows = this.U.rows,\n\t            ucols = this.U.columns,\n\t            Y = new Matrix(vrows, urows),\n\t            k, sum;\n\t\n\t        for (i = 0; i < vrows; i++) {\n\t            for (j = 0; j < urows; j++) {\n\t                sum = 0;\n\t                for (k = 0; k < ucols; k++) {\n\t                    sum += X[i][k] * this.U[j][k];\n\t                }\n\t                Y[i][j] = sum;\n\t            }\n\t        }\n\t\n\t        return Y;\n\t    }\n\t};\n\t\n\t// https://github.com/lutzroeder/Mapack/blob/master/Source/CholeskyDecomposition.cs\n\tfunction CholeskyDecomposition(value) {\n\t    value = Matrix.checkMatrix(value);\n\t    if (!value.isSymmetric())\n\t        throw new Error('Matrix is not symmetric');\n\t\n\t    var a = value,\n\t        dimension = a.rows,\n\t        l = new Matrix(dimension, dimension),\n\t        positiveDefinite = true,\n\t        i, j, k;\n\t\n\t    for (j = 0; j < dimension; j++) {\n\t        var Lrowj = l[j];\n\t        var d = 0;\n\t        for (k = 0; k < j; k++) {\n\t            var Lrowk = l[k];\n\t            var s = 0;\n\t            for (i = 0; i < k; i++) {\n\t                s += Lrowk[i] * Lrowj[i];\n\t            }\n\t            Lrowj[k] = s = (a[j][k] - s) / l[k][k];\n\t            d = d + s * s;\n\t        }\n\t\n\t        d = a[j][j] - d;\n\t\n\t        positiveDefinite &= (d > 0);\n\t        l[j][j] = Math.sqrt(Math.max(d, 0));\n\t        for (k = j + 1; k < dimension; k++) {\n\t            l[j][k] = 0;\n\t        }\n\t    }\n\t\n\t    if (!positiveDefinite) {\n\t        throw new Error('Matrix is not positive definite');\n\t    }\n\t\n\t    return new CholeskyDecompositionResult(l);\n\t}\n\t\n\tfunction CholeskyDecompositionResult(l) {\n\t    this.L = l;\n\t}\n\t\n\tCholeskyDecompositionResult.prototype = {\n\t    get leftTriangularFactor() {\n\t        return this.L;\n\t    },\n\t    solve: function (value) {\n\t        value = Matrix.checkMatrix(value);\n\t\n\t        var l = this.L,\n\t            dimension = l.rows;\n\t\n\t        if (value.rows !== dimension) {\n\t            throw new Error('Matrix dimensions do not match');\n\t        }\n\t\n\t        var count = value.columns,\n\t            B = value.clone(),\n\t            i, j, k;\n\t\n\t        for (k = 0; k < dimension; k++) {\n\t            for (j = 0; j < count; j++) {\n\t                for (i = 0; i < k; i++) {\n\t                    B[k][j] -= B[i][j] * l[k][i];\n\t                }\n\t                B[k][j] /= l[k][k];\n\t            }\n\t        }\n\t\n\t        for (k = dimension - 1; k >= 0; k--) {\n\t            for (j = 0; j < count; j++) {\n\t                for (i = k + 1; i < dimension; i++) {\n\t                    B[k][j] -= B[i][j] * l[i][k];\n\t                }\n\t                B[k][j] /= l[k][k];\n\t            }\n\t        }\n\t\n\t        return B;\n\t    }\n\t};\n\t\n\tfunction hypotenuse(a, b) {\n\t    var r;\n\t    if (Math.abs(a) > Math.abs(b)) {\n\t        r = b / a;\n\t        return Math.abs(a) * Math.sqrt(1 + r * r);\n\t    }\n\t    if (b !== 0) {\n\t        r = a / b;\n\t        return Math.abs(b) * Math.sqrt(1 + r * r);\n\t    }\n\t    return 0;\n\t}\n\t\n\tfunction inverse(matrix) {\n\t    return solve(matrix, Matrix.eye(matrix.rows));\n\t}\n\t\n\tMatrix.prototype.inverse = function () {\n\t    return inverse(this);\n\t};\n\t\n\tfunction solve(leftHandSide, rightHandSide) {\n\t    return leftHandSide.isSquare() ? new LuDecomposition(leftHandSide).solve(rightHandSide) : new QrDecomposition(leftHandSide).solve(rightHandSide);\n\t}\n\t\n\tMatrix.prototype.solve = function (other) {\n\t    return solve(this, other);\n\t};\n\t\n\tmodule.exports = {\n\t    LuDecomposition: LuDecomposition,\n\t    LU: LuDecomposition,\n\t    QrDecomposition: QrDecomposition,\n\t    QR: QrDecomposition,\n\t    SingularValueDecomposition: SingularValueDecomposition,\n\t    SVD: SingularValueDecomposition,\n\t    EigenvalueDecomposition: EigenvalueDecomposition,\n\t    EVD: EigenvalueDecomposition,\n\t    CholeskyDecomposition: CholeskyDecomposition,\n\t    CHO: CholeskyDecomposition,\n\t    inverse: inverse,\n\t    solve: solve\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t/*\n\t  https://github.com/banksean wrapped Makoto Matsumoto and Takuji Nishimura's code in a namespace\n\t  so it's better encapsulated. Now you can have multiple random number generators\n\t  and they won't stomp all over eachother's state.\n\t  \n\t  If you want to use this as a substitute for Math.random(), use the random()\n\t  method like so:\n\t  \n\t  var m = new MersenneTwister();\n\t  var randomNumber = m.random();\n\t  \n\t  You can also call the other genrand_{foo}() methods on the instance.\n\t \n\t  If you want to use a specific seed in order to get a repeatable random\n\t  sequence, pass an integer into the constructor:\n\t \n\t  var m = new MersenneTwister(123);\n\t \n\t  and that will always produce the same random sequence.\n\t \n\t  Sean McCullough (banksean@gmail.com)\n\t*/\n\t \n\t/* \n\t   A C-program for MT19937, with initialization improved 2002/1/26.\n\t   Coded by Takuji Nishimura and Makoto Matsumoto.\n\t \n\t   Before using, initialize the state by using init_seed(seed)  \n\t   or init_by_array(init_key, key_length).\n\t \n\t   Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,\n\t   All rights reserved.                          \n\t \n\t   Redistribution and use in source and binary forms, with or without\n\t   modification, are permitted provided that the following conditions\n\t   are met:\n\t \n\t     1. Redistributions of source code must retain the above copyright\n\t        notice, this list of conditions and the following disclaimer.\n\t \n\t     2. Redistributions in binary form must reproduce the above copyright\n\t        notice, this list of conditions and the following disclaimer in the\n\t        documentation and/or other materials provided with the distribution.\n\t \n\t     3. The names of its contributors may not be used to endorse or promote \n\t        products derived from this software without specific prior written \n\t        permission.\n\t \n\t   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n\t   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n\t   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n\t   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n\t   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n\t   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n\t   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n\t   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t \n\t \n\t   Any feedback is very welcome.\n\t   http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html\n\t   email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)\n\t*/\n\t \n\tvar MersenneTwister = function(seed) {\n\t\tif (seed == undefined) {\n\t\t\tseed = new Date().getTime();\n\t\t} \n\t\n\t\t/* Period parameters */  \n\t\tthis.N = 624;\n\t\tthis.M = 397;\n\t\tthis.MATRIX_A = 0x9908b0df;   /* constant vector a */\n\t\tthis.UPPER_MASK = 0x80000000; /* most significant w-r bits */\n\t\tthis.LOWER_MASK = 0x7fffffff; /* least significant r bits */\n\t\n\t\tthis.mt = new Array(this.N); /* the array for the state vector */\n\t\tthis.mti=this.N+1; /* mti==N+1 means mt[N] is not initialized */\n\t\n\t\tthis.init_seed(seed);\n\t}  \n\t\n\t/* initializes mt[N] with a seed */\n\t/* origin name init_genrand */\n\tMersenneTwister.prototype.init_seed = function(s) {\n\t\tthis.mt[0] = s >>> 0;\n\t\tfor (this.mti=1; this.mti<this.N; this.mti++) {\n\t\t\tvar s = this.mt[this.mti-1] ^ (this.mt[this.mti-1] >>> 30);\n\t\t\tthis.mt[this.mti] = (((((s & 0xffff0000) >>> 16) * 1812433253) << 16) + (s & 0x0000ffff) * 1812433253)\n\t\t\t+ this.mti;\n\t\t\t/* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */\n\t\t\t/* In the previous versions, MSBs of the seed affect   */\n\t\t\t/* only MSBs of the array mt[].                        */\n\t\t\t/* 2002/01/09 modified by Makoto Matsumoto             */\n\t\t\tthis.mt[this.mti] >>>= 0;\n\t\t\t/* for >32 bit machines */\n\t\t}\n\t}\n\t\n\t/* initialize by an array with array-length */\n\t/* init_key is the array for initializing keys */\n\t/* key_length is its length */\n\t/* slight change for C++, 2004/2/26 */\n\tMersenneTwister.prototype.init_by_array = function(init_key, key_length) {\n\t\tvar i, j, k;\n\t\tthis.init_seed(19650218);\n\t\ti=1; j=0;\n\t\tk = (this.N>key_length ? this.N : key_length);\n\t\tfor (; k; k--) {\n\t\t\tvar s = this.mt[i-1] ^ (this.mt[i-1] >>> 30)\n\t\t\tthis.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1664525) << 16) + ((s & 0x0000ffff) * 1664525)))\n\t\t\t+ init_key[j] + j; /* non linear */\n\t\t\tthis.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */\n\t\t\ti++; j++;\n\t\t\tif (i>=this.N) { this.mt[0] = this.mt[this.N-1]; i=1; }\n\t\t\tif (j>=key_length) j=0;\n\t\t}\n\t\tfor (k=this.N-1; k; k--) {\n\t\t\tvar s = this.mt[i-1] ^ (this.mt[i-1] >>> 30);\n\t\t\tthis.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1566083941) << 16) + (s & 0x0000ffff) * 1566083941))\n\t\t\t- i; /* non linear */\n\t\t\tthis.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */\n\t\t\ti++;\n\t\t\tif (i>=this.N) { this.mt[0] = this.mt[this.N-1]; i=1; }\n\t\t}\n\t\n\t\tthis.mt[0] = 0x80000000; /* MSB is 1; assuring non-zero initial array */ \n\t}\n\t\n\t/* generates a random number on [0,0xffffffff]-interval */\n\t/* origin name genrand_int32 */\n\tMersenneTwister.prototype.random_int = function() {\n\t\tvar y;\n\t\tvar mag01 = new Array(0x0, this.MATRIX_A);\n\t\t/* mag01[x] = x * MATRIX_A  for x=0,1 */\n\t\n\t\tif (this.mti >= this.N) { /* generate N words at one time */\n\t\t\tvar kk;\n\t\n\t\t\tif (this.mti == this.N+1)  /* if init_seed() has not been called, */\n\t\t\t\tthis.init_seed(5489);  /* a default initial seed is used */\n\t\n\t\t\tfor (kk=0;kk<this.N-this.M;kk++) {\n\t\t\t\ty = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk+1]&this.LOWER_MASK);\n\t\t\t\tthis.mt[kk] = this.mt[kk+this.M] ^ (y >>> 1) ^ mag01[y & 0x1];\n\t\t\t}\n\t\t\tfor (;kk<this.N-1;kk++) {\n\t\t\t\ty = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk+1]&this.LOWER_MASK);\n\t\t\t\tthis.mt[kk] = this.mt[kk+(this.M-this.N)] ^ (y >>> 1) ^ mag01[y & 0x1];\n\t\t\t}\n\t\t\ty = (this.mt[this.N-1]&this.UPPER_MASK)|(this.mt[0]&this.LOWER_MASK);\n\t\t\tthis.mt[this.N-1] = this.mt[this.M-1] ^ (y >>> 1) ^ mag01[y & 0x1];\n\t\n\t\t\tthis.mti = 0;\n\t\t}\n\t\n\t\ty = this.mt[this.mti++];\n\t\n\t\t/* Tempering */\n\t\ty ^= (y >>> 11);\n\t\ty ^= (y << 7) & 0x9d2c5680;\n\t\ty ^= (y << 15) & 0xefc60000;\n\t\ty ^= (y >>> 18);\n\t\n\t\treturn y >>> 0;\n\t}\n\t\n\t/* generates a random number on [0,0x7fffffff]-interval */\n\t/* origin name genrand_int31 */\n\tMersenneTwister.prototype.random_int31 = function() {\n\t\treturn (this.random_int()>>>1);\n\t}\n\t\n\t/* generates a random number on [0,1]-real-interval */\n\t/* origin name genrand_real1 */\n\tMersenneTwister.prototype.random_incl = function() {\n\t\treturn this.random_int()*(1.0/4294967295.0); \n\t\t/* divided by 2^32-1 */ \n\t}\n\t\n\t/* generates a random number on [0,1)-real-interval */\n\tMersenneTwister.prototype.random = function() {\n\t\treturn this.random_int()*(1.0/4294967296.0); \n\t\t/* divided by 2^32 */\n\t}\n\t\n\t/* generates a random number on (0,1)-real-interval */\n\t/* origin name genrand_real3 */\n\tMersenneTwister.prototype.random_excl = function() {\n\t\treturn (this.random_int() + 0.5)*(1.0/4294967296.0); \n\t\t/* divided by 2^32 */\n\t}\n\t\n\t/* generates a random number on [0,1) with 53-bit resolution*/\n\t/* origin name genrand_res53 */\n\tMersenneTwister.prototype.random_long = function() { \n\t\tvar a=this.random_int()>>>5, b=this.random_int()>>>6; \n\t\treturn(a*67108864.0+b)*(1.0/9007199254740992.0); \n\t} \n\t\n\t/* These real versions are due to Isaku Wada, 2002/01/09 added */\n\t\n\tmodule.exports = MersenneTwister;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar cache = __webpack_require__(7);\n\t\n\tmodule.exports = {\n\t    // For example 'OH- -> H2O - H+'\n\t    // returns\n\t    // {\n\t    //   reactives: [{c: 'H+', n: 1}],\n\t    //   products: [{c: 'H2O', n: 1}, {c: 'H+', n: -1}]\n\t    // }\n\t\n\t\n\t    parseReaction: function(r, options) {\n\t        var parsed = {reactives: [], products: []};\n\t        // TODO: add options for constraints on how should the reactions be like\n\t        //       max number of reactives etc...\n\t        var defaultOptions = {\n\t\n\t        };\n\t        // Separate reactives and products\n\t        var rp = r.split(' -> ');\n\t        if(rp.length !== 2) {\n\t            throw new Error('Invalid reaction');\n\t        }\n\t\n\t        var reactives = rp[0];\n\t        var products = rp[1];\n\t\n\t        parsed.reactives = parseElements(reactives);\n\t        parsed.products = parseElements(products);\n\t\n\t\n\t\n\t        // Split reactives with\n\t\n\t        //\n\t        //// Analyse each reactive and product\n\t        //for(var i=0; i<reactives.length; i++) {\n\t        //    var parsedReactive = parseReactionElement(reactives[i]);\n\t        //    // Make sure chemcalc can process this element\n\t        //    parsedReactive.c = cache.norm(parsedReactive.c);\n\t        //    parsed.reactives.push(parsedReactive);\n\t        //}\n\t        //for(i=0; i<products.length; i++) {\n\t        //    var parsedProduct = parseReactionElement(products[i]);\n\t        //    // Make sure chemcalc can process this element\n\t        //    parsedProduct.c = cache.norm(parsedProduct.c);\n\t        //    parsed.products.push(parsedProduct);\n\t        //}\n\t        return parsed;\n\t    }\n\t};\n\t\n\tfunction parseElements(els) {\n\t    els = els.split(/\\s+/);\n\t    var r = [];\n\t    var sign = 1;\n\t    var n = 1;\n\t    for(var i=0; i<els.length; i++) {\n\t        if(els[i] === '-') {\n\t            sign = -1;\n\t            n = 1;\n\t            continue;\n\t        }\n\t        if(els[i] === '+') {\n\t            sign = 1;\n\t            n = 1;\n\t            continue;\n\t        }\n\t        if(!isNaN(+els[i])) {\n\t            n = +els[i];\n\t            continue;\n\t        }\n\t        r.push({\n\t            c: cache.norm(els[i]),\n\t            n: sign * n\n\t        });\n\t    }\n\t    var count = {};\n\t    for(i=0; i< r.length; i++) {\n\t        if(!count[r[i].c]) count[r[i].c] = r[i].n;\n\t        else count[r[i].c] += r[i].n;\n\t    }\n\t\n\t    var rr = [];\n\t    for(var key in count) {\n\t        rr.push({\n\t            c: key,\n\t            n: count[key]\n\t        });\n\t    }\n\t    return rr;\n\t}\n\t\n\tfunction parseReactionElement(el) {\n\t    var parsed = {};\n\t    var reactive;\n\t    reactive = el.split('*');\n\t    if(reactive.length > 2) throw new Error('Invalid reactive ' + el);\n\t    if(reactive.length === 2) {\n\t        parsed.n = +(reactive[0]);\n\t        parsed.c = reactive[1].trim();\n\t    }\n\t    else {\n\t        parsed.n = 1;\n\t        parsed.c = reactive[0].trim();\n\t    }\n\t    return parsed;\n\t}\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar CC = __webpack_require__(8);\n\t\n\t// Chemcalc cache in order not to recalculate all the time\n\t// Also keeps one chemical formula for every product that has the same molecular weight\n\t\n\tvar chemcalcs = {};\n\tvar cByMW = {};\n\t\n\tmodule.exports = {\n\t    reset: function() {\n\t        chemcalcs = {};\n\t        cByMW = {};\n\t    },\n\t\n\t    getCC: function(c) {\n\t        if(!chemcalcs[c]) {\n\t            var r = CC.analyseMF(c);\n\t            if(r.error) {\n\t                throw new Error('chemcalc error on' + c + ': ' + r.error);\n\t            }\n\t            if(!cByMW[''+r.mw]) cByMW[''+r.mw] = c;\n\t            chemcalcs[c] = r;\n\t        }\n\t        return chemcalcs[c];\n\t    },\n\t\n\t    norm: function(c) {\n\t        var cc = module.exports.getCC(c);\n\t        return cByMW[''+cc.mw];\n\t    }\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * chemcalc - Analyse molecular formula\n\t * @version v2.1.6\n\t * @date 2015-05-13T15:57:48.495Z\n\t * @link http://www.chemcalc.org\n\t * @license BSD\n\t*/\n\t(function () {\n\t    'use strict';\n\t\n\t    function getExports($wnd) {\n\t\n\t        var $doc = $wnd.document;\n\t        var $gwt = {};\n\t        var navigator = {\n\t            userAgent: 'webkit'\n\t        };\n\t\n\t        function noop(){}\n\t\n\t        var __gwtModuleFunction = noop;\n\t        __gwtModuleFunction.__moduleStartupDone = noop;\n\t        var $sendStats = noop;\n\t        var $moduleName, $moduleBase;\n\t\n\t        // Start GWT code \n\tfunction Sg(){}\n\tfunction Ng(){}\n\tfunction fb(){}\n\tfunction fd(){}\n\tfunction jc(){}\n\tfunction sc(){}\n\tfunction sp(){}\n\tfunction Zp(){}\n\tfunction eq(){}\n\tfunction gq(){}\n\tfunction Jr(){}\n\tfunction Js(){}\n\tfunction kl(a){}\n\tfunction Ac(){vc()}\n\tfunction ub(){ob(this)}\n\tfunction Zo(){Qo(this)}\n\tfunction Zh(a){this.d=a}\n\tfunction Rc(a){this.d=a}\n\tfunction $c(a){this.d=a}\n\tfunction kd(a){this.d=a}\n\tfunction wd(a){this.d=a}\n\tfunction hi(a){this.d=a}\n\tfunction Ti(a){this.d=a}\n\tfunction hj(a){this.d=a}\n\tfunction sn(a){this.d=a}\n\tfunction Pn(a){this.d=a}\n\tfunction Un(a){this.d=a}\n\tfunction Yn(a){this.d=a}\n\tfunction Kn(a){this.f=a}\n\tfunction bo(a){this.d=a}\n\tfunction Do(a){this.d=a}\n\tfunction Io(a){this.d=a}\n\tfunction No(a){this.d=a}\n\tfunction du(a){this.d=a}\n\tfunction Qc(){this.d=[]}\n\tfunction ru(){this.rb()}\n\tfunction Qh(){return Mb}\n\tfunction Qd(a){return a.d}\n\tfunction bd(a){return a.d}\n\tfunction pd(a){return a.d}\n\tfunction Bd(a){return a.d}\n\tfunction Wc(a){return a.d}\n\tfunction jd(){return null}\n\tfunction Id(){return null}\n\tfunction dn(a){++a.e;wp(a)}\n\tfunction en(a){--a.e;wp(a)}\n\tfunction eh(a,b){a.h=b}\n\tfunction fh(a,b){a.l=b}\n\tfunction gh(a,b){a.m=b}\n\tfunction Zb(){Vb();Wb(this)}\n\tfunction ai(){ub.call(this)}\n\tfunction fj(){ub.call(this)}\n\tfunction Dj(){ub.call(this)}\n\tfunction zk(){ub.call(this)}\n\tfunction xp(){ub.call(this)}\n\tfunction yp(){ub.call(this)}\n\tfunction Qq(){ub.call(this)}\n\tfunction Eq(){oq.call(this)}\n\tfunction Nq(){oq.call(this)}\n\tfunction fr(){Uq.call(this)}\n\tfunction ci(){ai.call(this)}\n\tfunction Rp(){Jp.call(this)}\n\tfunction Hs(){vr.call(this)}\n\tfunction bq(){bq=Ng;aq=dq()}\n\tfunction xb(){xb=Ng;wb=new fb}\n\tfunction ed(){ed=Ng;dd=new fd}\n\tfunction gc(){gc=Ng;fc=new jc}\n\tfunction rp(){rp=Ng;qp=new sp}\n\tfunction mu(){mu=Ng;lu=new Bp}\n\tfunction Nu(){this.d=new Qc}\n\tfunction Tu(){this.d=new vd}\n\tfunction Uq(){this.d=new Zo}\n\tfunction as(){this.n=new vr}\n\tfunction nq(c,a,b){c.d[a]=b}\n\tfunction Lj(a,b){return a===b}\n\tfunction uj(a){return a<0?-a:a}\n\tfunction Zi(a){return isNaN(a)}\n\tfunction bi(a){vb.call(this,a)}\n\tfunction di(a){vb.call(this,a)}\n\tfunction cd(a){vb.call(this,a)}\n\tfunction _h(a){vb.call(this,a)}\n\tfunction ej(a){vb.call(this,a)}\n\tfunction Ej(a){vb.call(this,a)}\n\tfunction Ak(a){vb.call(this,a)}\n\tfunction vb(a){tb.call(this,a)}\n\tfunction Fj(a){ej.call(this,a)}\n\tfunction pk(a){Zh.call(this,a)}\n\tfunction wk(a){Zh.call(this,a)}\n\tfunction ok(){Zh.call(this,'')}\n\tfunction uk(){Zh.call(this,'')}\n\tfunction vk(){Zh.call(this,'')}\n\tfunction vd(){wd.call(this,{})}\n\tfunction Hr(a){Do.call(this,a)}\n\tfunction yt(a){bs.call(this,a)}\n\tfunction Kt(a){tb.call(this,a)}\n\tfunction Jp(){this.d=this.cb()}\n\tfunction oq(){this.d=this.ib()}\n\tfunction Oh(){Mh==null&&(Mh=[])}\n\tfunction Sh(a){return a.tM===Sg}\n\tfunction he(a){return a<<24>>24}\n\tfunction nr(a){return !!a&&a.e}\n\tfunction Dp(b,a){return b.d[a]}\n\tfunction yj(a,b){return a>b?a:b}\n\tfunction zj(a,b){return a<b?a:b}\n\tfunction Td(a,b){return Fi(a,b)}\n\tfunction sh(a,b){return !rh(a,b)}\n\tfunction th(a,b){return !qh(a,b)}\n\tfunction oc(a,b){nc();mc.s(a,b)}\n\tfunction wi(a){vi(a);return a.q}\n\tfunction nk(a,b){a.d+=b;return a}\n\tfunction rk(a,b){a.d+=b;return a}\n\tfunction sk(a,b){a.d+=b;return a}\n\tfunction uo(a,b){return !!a._(b)}\n\tfunction Fd(a){return new kd(a)}\n\tfunction Hd(a){return new Kd(a)}\n\tfunction bs(a){this.n=new wr(a)}\n\tfunction tb(a){this.k=a;ob(this)}\n\tfunction tj(a){return a<=0?0-a:a}\n\tfunction xj(a){return Math.log(a)}\n\tfunction xo(a){return wo(a,hr(a))}\n\tfunction Tq(a,b){return So(a.d,b)}\n\tfunction Hn(a){return a.d<a.f.K()}\n\tfunction Eh(a){return a.l|a.m<<22}\n\tfunction Br(a){return a.e=In(a.d)}\n\tfunction Ws(a){return a.d.j*a.d.f}\n\tfunction Xs(a){return a.d.j*a.d.g}\n\tfunction Ym(a){return !a?null:a.f}\n\tfunction vj(a){return Math.ceil(a)}\n\tfunction Cj(a){return Math.sqrt(a)}\n\tfunction ee(a){return de(a)&&Sh(a)}\n\tfunction Ed(a){return Zc(),a?Yc:Xc}\n\tfunction vo(a,b){return Zm(a._(b))}\n\tfunction Ep(b,a){return b.d[a]||[]}\n\tfunction vp(a,b){a._gwt_modCount=b}\n\tfunction _i(a,b){this.d=a;this.e=b}\n\tfunction Aq(a,b){this.d=a;this.e=b}\n\tfunction xq(a,b){this.e=a;this.f=b}\n\tfunction go(a,b){this.f=a;this.g=b}\n\tfunction Im(a,b){_i.call(this,a,b)}\n\tfunction Qr(a,b){_i.call(this,a,b)}\n\tfunction no(a,b){go.call(this,a,b)}\n\tfunction vr(){wr.call(this,null)}\n\tfunction Rb(a){$wnd.clearTimeout(a)}\n\tfunction wj(a){return Math.floor(a)}\n\tfunction Bj(a){return Math.round(a)}\n\tfunction ae(a){return !de(a)&&Sh(a)}\n\tfunction Zm(a){return !a?null:a.Y()}\n\tfunction ge(a){return a==null?null:a}\n\tfunction gj(a,b){return ij(a.d,b.d)}\n\tfunction Nj(b,a){return b.indexOf(a)}\n\tfunction fp(a,b,c){a.splice(b,c)}\n\tfunction El(a){jl();Fl.call(this,a)}\n\tfunction oo(a){go.call(this,a.f,a.g)}\n\tfunction Ur(){Qr.call(this,'Head',1)}\n\tfunction Zr(){Qr.call(this,'Tail',3)}\n\tfunction Qo(a){a.e=Ud(af,Yu,1,0,3,1)}\n\tfunction Tt(a){a.e=a.g.e;a.f=new Hs}\n\tfunction Fc(a){if(!a){throw new Qq}}\n\tfunction Kc(a){if(!a){throw new fj}}\n\tfunction jk(){jk=Ng;gk={};ik={}}\n\tfunction Sb(){Gb!=0&&(Gb=0);Jb=-1}\n\tfunction ii(a,b){return a==b?0:a?1:-1}\n\tfunction mh(a,b){return Xg(a,b,false)}\n\tfunction Vg(a){return Wg(a.l,a.m,a.h)}\n\tfunction Sq(a){return a!=null?lb(a):0}\n\tfunction ij(a,b){return a<b?-1:a>b?1:0}\n\tfunction Aj(a,b){return Math.pow(a,b)}\n\tfunction de(a){return Array.isArray(a)}\n\tfunction Pb(a){return a.$H||(a.$H=++Hb)}\n\tfunction Wg(a,b,c){return {l:a,m:b,h:c}}\n\tfunction hh(a){return a.l+a.m*av+a.h*bv}\n\tfunction Xp(a){this.d=a;Zo.call(this)}\n\tfunction Lq(a){this.d=a;Zo.call(this)}\n\tfunction Tk(a){this.j=5;Nk(this,Hc(a))}\n\tfunction Th(){$wnd.setTimeout(Uu(Uh))}\n\tfunction Wr(){Qr.call(this,'Range',2)}\n\tfunction gp(a,b,c,d){a.splice(b,c,d)}\n\tfunction Yj(a,b,c){return a.substr(b,c)}\n\tfunction Kj(b,a){return b.charCodeAt(a)}\n\tfunction Oj(b,a){return b.lastIndexOf(a)}\n\tfunction Xj(a){return Ud(gf,Yu,2,a,4,1)}\n\tfunction Xo(a){return Rd(a.e,a.e.length)}\n\tfunction ri(a){return a>=56320&&a<=57343}\n\tfunction Si(a,b){return be(b,6)&&b.d==a.d}\n\tfunction Uj(a,b,c){return a.substr(b,c-b)}\n\tfunction Qu(a,b,c){td(a.d,b,c);return a}\n\tfunction er(a,b){So(a.d,b);return b}\n\tfunction qk(a,b){a.d+=_d(b);return a}\n\tfunction uh(a,b){Xg(a,b,true);return Tg}\n\tfunction Ap(a){var b;b=lb(a);return ~~b}\n\tfunction Lg(a){var b=Kg;return Qg(b[a])}\n\tfunction vi(a){if(a.q!=null){return}Ji(a)}\n\tfunction ob(a){a.n=null;oc(a,a.k);return a}\n\tfunction Tn(a){var b;b=xn(a.d);return b.X()}\n\tfunction ao(a){var b;b=xn(a.d);return b.Y()}\n\tfunction fo(a,b){var c;c=a.g;a.g=b;return c}\n\tfunction Mo(a){var b;b=Br(a.d);return b.X()}\n\tfunction Cr(a){Jn(a.d);qr(a.f,a.e);a.e=null}\n\tfunction Dr(a){Er.call(this,a,(Pr(),Lr))}\n\tfunction it(a,b,c){jt.call(this,a,b,c,true)}\n\tfunction Tj(a,b){return Yj(a,b,a.length-b)}\n\tfunction pj(a,b){return (a>>>0).toString(b)}\n\tfunction fe(a){return typeof a==='string'}\n\tfunction _d(a){return String.fromCharCode(a)}\n\tfunction ak(a,b){return fe(a)?_j(a,b):a.A(b)}\n\tfunction Kb(a,b,c){return a.apply(b,c);var d}\n\tfunction Pj(c,a,b){return c.lastIndexOf(a,b)}\n\tfunction cn(a,b){return a.f.bb(b)||a.d.bb(b)}\n\tfunction ek(a){return String.fromCharCode(a)}\n\tfunction ce(a){return a!=null&&!fe(a)&&!Sh(a)}\n\tfunction rc(a){nc();return parseInt(a)||-1}\n\tfunction Dc(a,b){if(!a){throw new ej(''+b)}}\n\tfunction Cc(a,b){if(!a){throw new di(''+b)}}\n\tfunction Xq(a,b){if(a<0||a>=b){throw new ci}}\n\tfunction Co(a){if(!a){throw new Qq}return a.f}\n\tfunction Ci(){var a;a=zi(null);a.j=2;return a}\n\tfunction Ai(a){var b;b=zi(a);Ni(a,b);return b}\n\tfunction So(a,b){a.e[a.e.length]=b;return true}\n\tfunction wt(a,b,c){xt.call(this,a,b,c,1,true)}\n\tfunction Rs(a,b,c,d){Qs.call(this,a,0,b,c,d)}\n\tfunction Vh(a,b){this.j=b;this.k=a;ob(this)}\n\tfunction _t(a,b){this.g=a;Tt(this);this.f=b}\n\tfunction Rk(a){this.k=a;this.j=5;this.d=Uk(a)}\n\tfunction Yi(a){return !isFinite(a)&&!isNaN(a)}\n\tfunction eb(a){return wi(jb(a))+'@'+pj(lb(a),16)}\n\tfunction is(a){return a.d!=0?'['+a.d+a.o+']':a.o}\n\tfunction Tm(a,b){return b===a?'(this Map)':''+b}\n\tfunction Ic(a,b){if(a==null){throw new Ej(''+b)}}\n\tfunction Hc(a){if(a==null){throw new Dj}return a}\n\tfunction Kd(a){if(a==null){throw new Dj}this.d=a}\n\tfunction mk(){if(hk==256){gk=ik;ik={};hk=0}++hk}\n\tfunction vc(){vc=Ng;Error.stackTraceLimit=64}\n\tfunction sj(){sj=Ng;rj=Ud(Ye,Yu,19,256,0,1)}\n\tfunction Vd(a,b,c,d,e,f){return Wd(a,b,c,d,e,0,f)}\n\tfunction Ro(a,b,c){Jc(b,a.e.length);gp(a.e,b,0,c)}\n\tfunction To(a,b){Gc(b,a.e.length);return a.e[b]}\n\tfunction Mu(a,b){Oc(a.d,a.d.d.length,b);return a}\n\tfunction kc(a,b){!a&&(a=[]);a[a.length]=b;return a}\n\tfunction Di(a){var b;b=zi(a);b.p=a;b.j=1;return b}\n\tfunction wp(a){var b;b=a._gwt_modCount|0;vp(a,b+1)}\n\tfunction Cp(c,a){var b=c.d;return b[a]||(b[a]=[])}\n\tfunction _j(a,b){if(a==b){return 0}return a<b?-1:1}\n\tfunction $t(a,b){b<1.0E-10&&(b=1.0E-10);a.e=b}\n\tfunction bn(a,b){return fe(b)?hn(a,b):!!Fp(a.d,b)}\n\tfunction fn(a,b){return fe(b)?gn(a,b):Zm(Fp(a.d,b))}\n\tfunction xn(a){return up(a.f,a),Fc(wn(a)),a.d.S()}\n\tfunction _r(a,b){return or(a.n,b,(gi(),ei))==null}\n\tfunction Og(a){return a instanceof Array?a[0]:null}\n\tfunction nh(a,b){return a.l==b.l&&a.m==b.m&&a.h==b.h}\n\tfunction xh(a,b){return a.l!=b.l||a.m!=b.m||a.h!=b.h}\n\tfunction jn(a,b,c){return fe(b)?kn(a,b,c):Hp(a.d,b,c)}\n\tfunction Zt(a,b,c,d){ws(a.f,d);vs(a.f,c);As(a.f,b)}\n\tfunction Oc(a,b,c){var d;d=Nc(a,b);Pc(a,b,c);return d}\n\tfunction td(a,b,c){var d;d=rd(a,b);ud(a,b,c);return d}\n\tfunction pr(a,b){var c;c=new Jr;rr(a,b,c);return c.g}\n\tfunction Zc(){Zc=Ng;Xc=new $c(false);Yc=new $c(true)}\n\tfunction gi(){gi=Ng;ei=new hi(false);fi=new hi(true)}\n\tfunction Jn(a){Kc(a.e!=-1);a.f.W(a.e);a.d=a.e;a.e=-1}\n\tfunction In(a){Fc(a.d<a.f.K());return a.f.V(a.e=a.d++)}\n\tfunction wo(a,b){!!b&&qr(a,b);return !b?null:new oo(b)}\n\tfunction zp(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)}\n\tfunction Rq(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)}\n\tfunction kq(a){return Object.getOwnPropertyNames(a.d)}\n\tfunction Gp(a){return Object.getOwnPropertyNames(a.d)}\n\tfunction jb(a){return fe(a)?gf:ae(a)?a.cZ:ee(a)?a.cZ:oe}\n\tfunction lh(a,b){return {l:a.l&b.l,m:a.m&b.m,h:a.h&b.h}}\n\tfunction yh(a,b){return {l:a.l|b.l,m:a.m|b.m,h:a.h|b.h}}\n\tfunction Gh(a,b){return {l:a.l^b.l,m:a.m^b.m,h:a.h^b.h}}\n\tfunction Ec(a,b){if(!a){throw new ej(Lc('%s > %s',b))}}\n\tfunction rd(a,b){if(b==null){throw new Dj}return sd(a,b)}\n\tfunction hu(a){if(hn(fu,a)){return gn(fu,a)}return null}\n\tfunction tk(a,b,c){a.d=Uj(a.d,0,b)+c+Tj(a.d,b);return a}\n\tfunction Bi(a,b){var c;c=zi(a);Ni(a,c);c.j=b?8:0;return c}\n\tfunction Ho(a){var b;b=(new Hr(a.d)).d.$();return new No(b)}\n\tfunction Qb(a){$wnd.setTimeout(function(){throw a},0)}\n\tfunction Nn(a){Kn.call(this,a);Jc(0,a.e.length);this.d=0}\n\tfunction Bl(a,b,c){jl();kl(this);this.j=a;this.g=b;this.d=c}\n\tfunction Et(a,b,c,d){this.f=a;this.e=b;this.g=c;this.d=d}\n\tfunction Ku(a,b,c,d){this.d=a;this.f=b;this.e=d;this.g=c}\n\tfunction wr(a){this.f=null;!a&&(a=(rp(),rp(),qp));this.e=a}\n\tfunction Qj(b,a){return (new RegExp('^('+a+')$')).test(b)}\n\tfunction gn(a,b){return b==null?Zm(Fp(a.d,null)):a.f.kb(b)}\n\tfunction kn(a,b,c){return b==null?Hp(a.d,null,c):a.f.nb(b,c)}\n\tfunction Yh(a,b,c,d){b==null&&(b='null');a.d+=b.substr(c,d-c)}\n\tfunction Nk(a,b){a.f=b;a.d=Ol(b);a.d<54&&(a.k=Dh(sl(b)))}\n\tfunction Fi(a,b){var c=a.d=a.d||[];return c[b]||(c[b]=a.B(b))}\n\tfunction Db(a,b){var c=Cb[a.charCodeAt(0)];return c==null?a:c}\n\tfunction On(a){var b;b=new yn((new sn(a.d)).d);return new Un(b)}\n\tfunction Xn(a){var b;b=new yn((new sn(a.d)).d);return new bo(b)}\n\tfunction tr(a,b){var c;c=1-b;a.d[c]=ur(a.d[c],c);return ur(a,b)}\n\tfunction Qg(a){function b(){}\n\t;b.prototype=a||{};return new b}\n\tfunction ie(a){return ~~Math.max(Math.min(a,Vu),-2147483648)}\n\tfunction Au(){return su(Cu(new Bp,(Jt(),Jt(),It),(null,Ht)))}\n\tfunction Tr(){Pr();return Xd(Td(kg,1),Yu,26,0,[Lr,Mr,Nr,Or])}\n\tfunction um(a,b){om();return b<nm.length?tm(a,nm[b]):tl(a,xm(b))}\n\tfunction Rj(c,a,b){b=Zj(b);return c.replace(RegExp(a,'g'),b)}\n\tfunction fk(a,b,c){var d;d=b+c;Wj(a.length,b,d);return $j(a,b,d)}\n\tfunction bc(a,b,c,d,e,f,g){a+=e+g+(b^c^d);a=a<<f|a>>>-f;return a+b}\n\tfunction Gj(a,b,c){this.d='Unknown';this.g=a;this.e=b;this.f=c}\n\tfunction xk(a){bi.call(this,'String index out of range: '+a)}\n\tfunction pi(a){return null!=String.fromCharCode(a).match(/\\d/)}\n\tfunction qi(a){return null!=String.fromCharCode(a).match(/[A-Z]/i)}\n\tfunction lb(a){return fe(a)?lk(a):ae(a)?a.hC():ee(a)?Pb(a):Pb(a)}\n\tfunction be(a,b){return a!=null&&(fe(a)&&!!$d[b]||a.cM&&!!a.cM[b])}\n\tfunction Mb(b){return function(){return Nb(b,this,arguments);var a}}\n\tfunction Nb(a,b,c){var d;d=Lb();try{return Kb(a,b,c)}finally{Ob(d)}}\n\tfunction to(a,b){var c,d;c=b.X();d=a._(c);return !!d&&Rq(d.g,b.Y())}\n\tfunction qb(a){var b,c;b=wi(a.cZ);c=a.r();return c!=null?b+': '+c:b}\n\tfunction Uh(){var a;a=Xh();if(!Lj('safari',a)){throw new Wh(a)}}\n\tfunction up(a,b){if(b._gwt_modCount!=a._gwt_modCount){throw new xp}}\n\tfunction ud(d,a,b){if(b){var c=b.v();d.d[a]=c(b)}else{delete d.d[a]}}\n\tfunction Pc(d,a,b){if(b){var c=b.v();b=c(b)}else{b=undefined}d.d[a]=b}\n\tfunction hb(a,b){return fe(a)?Lj(a,b):ae(a)?a.eQ(b):ee(a)?a===b:a===b}\n\tfunction ml(a){while(a.g>0&&a.d[--a.g]==0);a.d[a.g++]==0&&(a.j=0)}\n\tfunction Op(a){this.k=a;this.g=Gp(this.k);this.d=Ud(ag,Yu,27,0,0,1)}\n\tfunction Ob(a){a&&ic((gc(),fc));--Gb;if(a){if(Jb!=-1){Rb(Jb);Jb=-1}}}\n\tfunction Hi(a){if(a.H()){return null}var b=a.p;var c=Kg[b];return c}\n\tfunction pl(a,b){var c;for(c=a.g-1;c>=0&&a.d[c]==b[c];c--);return c<0}\n\tfunction jm(a,b,c,d){var e;e=Ud(me,Yu,0,b,7,1);km(e,a,b,c,d);return e}\n\tfunction Ud(a,b,c,d,e,f){var g;g=Yd(e,d);Xd(Td(a,f),b,c,e,g);return g}\n\tfunction cc(a,b,c,d,e,f,g){a+=e+g+(c^(b|~d));a=a<<f|a>>>-f;return a+b}\n\tfunction ac(a,b,c,d,e,f,g){a+=e+g+(c^d&(b^c));a=a<<f|a>>>-f;return a+b}\n\tfunction _b(a,b,c,d,e,f,g){a+=e+g+(d^b&(c^d));a=a<<f|a>>>-f;return a+b}\n\tfunction em(a,b,c,d){var e;e=Ud(me,Yu,0,b+1,7,1);fm(e,a,b,c,d);return e}\n\tfunction Wo(a,b,c){var d;d=(Gc(b,a.e.length),a.e[b]);a.e[b]=c;return d}\n\tfunction Vo(a,b){var c;c=(Gc(b,a.e.length),a.e[b]);fp(a.e,b,1);return c}\n\tfunction qr(a,b){var c;c=new Jr;c.f=true;c.g=b.Y();return rr(a,b.X(),c)}\n\tfunction Ug(a){var b,c,d;b=a&Zu;c=a>>22&Zu;d=a<0?$u:0;return Wg(b,c,d)}\n\tfunction $o(){Qo(this);Dc(true,'Initial capacity must not be negative')}\n\tfunction Bb(){if(Date.now){return Date.now()}return (new Date).getTime()}\n\tfunction vl(a,b){if(b==0||a.j==0){return a}return b>0?Pl(a,b):Sl(a,-b)}\n\tfunction xl(a,b){if(b==0||a.j==0){return a}return b>0?Sl(a,b):Pl(a,-b)}\n\tfunction Gc(a,b){if(a<0||a>=b){throw new bi('Index: '+a+', Size: '+b)}}\n\tfunction Jc(a,b){if(a<0||a>b){throw new bi('Index: '+a+', Size: '+b)}}\n\tfunction Zs(a){this.d=a;if(a.g>a.f)throw new Kt('Error: minCount>maxCount')}\n\tfunction Sk(a,b){this.j=b;this.d=Vk(a);this.d<54?(this.k=Dh(a)):(this.f=Nl(a))}\n\tfunction zb(a){xb();this.j=null;this.k=null;this.d='';this.e=a;this.d=''}\n\tfunction St(a,b,c,d){this.n=new Bp;this.f=a;this.g=b;this.e=c;this.d=d}\n\tfunction Ir(a,b){no.call(this,a,b);this.d=Ud(fg,Yu,40,2,0,1);this.e=true}\n\tfunction hn(a,b){return b==null?!!Fp(a.d,null):!(a.f.kb(b)===undefined)}\n\tfunction Su(a,b,c){return c==null?Qu(a,b,(ed(),ed(),dd)):Qu(a,b,new Kd(c))}\n\tfunction Jm(){Hm();return Xd(Td(mf,1),Yu,24,0,[Gm,Am,zm,Bm,Em,Cm,Dm,Fm])}\n\tfunction tl(a,b){if(b.j==0){return il}if(a.j==0){return il}return om(),pm(a,b)}\n\tfunction Ju(a,b){var c;c=Ui(tj(a.d),tj(b.d));if(c!=0)return c;return _j(a.e,b.e)}\n\tfunction Uo(a,b,c){for(;c<a.e.length;++c){if(Rq(b,a.e[c])){return c}}return -1}\n\tfunction wu(a){var b='';for(var c=0;c<a.length;c++){b+=tu(a.charAt(c))}return b}\n\tfunction yu(a){var b=new Bp;if(a){for(var c in a){b.Q(c,String(a[c]))}}return b}\n\tfunction gr(a){var b,c;if(!a.f){return null}c=a.f;while(b=c.d[0]){c=b}return c}\n\tfunction hr(a){var b,c;if(!a.f){return null}c=a.f;while(b=c.d[1]){c=b}return c}\n\tfunction hc(a){var b,c;if(a.d){c=null;do{b=a.d;a.d=null;c=lc(b,c)}while(a.d);a.d=c}}\n\tfunction ic(a){var b,c;if(a.e){c=null;do{b=a.e;a.e=null;c=lc(b,c)}while(a.e);a.e=c}}\n\tfunction Ou(a){var b;Nu.call(this);for(b=0;b<a.length;b++){Mu(this,new kd(a[b]))}}\n\tfunction Al(a,b){jl();kl(this);this.j=a;this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[b])}\n\tfunction Qs(a,b,c,d,e){this.e=new Bp;this.f=a;this.g=b;this.n=c;this.j=d;this.d=e}\n\tfunction yn(a){this.f=a;this.e=this.f.f.db();this.d=this.e;vp(this,a._gwt_modCount)}\n\tfunction Lh(){Lh=Ng;Hh=Wg(Zu,Zu,524287);Ih=Wg(0,0,_u);Jh=ph(1);ph(2);Kh=ph(0)}\n\tfunction Pr(){Pr=Ng;Lr=new Qr('All',0);Mr=new Ur;Nr=new Wr;Or=new Zr}\n\tfunction Nc(d,a){var b=d.d[a];var c=(Dd(),Cd)[typeof b];return c?c(b):Jd(typeof b)}\n\tfunction jq(d,a){var b=d.d;for(var c in b){if(d.jb(a,b[c])){return true}}return false}\n\tfunction mq(a,b){var c;c=a.d[b];if(!(c===undefined)){delete a.d[b];en(a.e)}return c}\n\tfunction zi(a){var b;b=new xi;b.q='Class$'+(a?'S'+a:''+b.n);b.e=b.q;b.o=b.q;return b}\n\tfunction Ni(a,b){var c;if(!a){return}b.p=a;var d=Hi(b);if(!d){Kg[a]=[b];return}d.cZ=b}\n\tfunction nj(a){var b,c;if(a==0){return 32}else{c=0;for(b=1;(b&a)==0;b<<=1){++c}return c}}\n\tfunction gs(a,b){var c;if(be(b,32)){c=b;if(Lj(a.o,c.o)&&a.d==c.d)return true}return false}\n\tfunction ur(a,b){var c,d;c=1-b;d=a.d[c];a.d[c]=d.d[b];d.d[b]=a;a.e=true;d.e=false;return d}\n\tfunction uu(a,b){var c;c=yu(b);c.f.nb('mf',a);return su(Du(c,(Jt(),Jt(),It),(null,Ht)))}\n\tfunction Pu(a){var b;Nu.call(this);for(b=0;b<a.length;b++){Mu(this,(new Ou(a[b])).d)}}\n\tfunction Nh(){Oh();var a=Mh;for(var b=0;b<arguments.length;b++){a.push(arguments[b])}}\n\tfunction Fl(a){Hc(a);if(!a.length){throw new Fj('Zero length BigInteger')}Kl(this,a)}\n\tfunction Qt(a){if(a.j.f.g==0)throw new vb('No isotopic distribution data');return Fs(a.j.f)}\n\tfunction Rt(a){if(a.j.f.g==0)throw new vb('No isotopic distribution data');return Gs(a.j.f)}\n\tfunction su(a){if('error' in a.d.d){throw new zb(rd(a.d,'error').w().d)}else{return a.d.d}}\n\tfunction hs(a){if(a.g==a.f)return a.g;throw new vb('Atoms.getCount(): undefined (min!=max)')}\n\tfunction Ok(a){if(a.d<54){return a.k<0?-1:a.k>0?1:0}return (!a.f&&(a.f=Ml(a.k)),a.f).j}\n\tfunction cl(a){if(nh(a,{l:0,m:0,h:0})&&5<Hk.length){return Hk[5]}return new Sk(a,5)}\n\tfunction Hg(b,c){if(b&&typeof b=='object'){try{b.__gwt$exception=c}catch(a){}}}\n\tfunction Wj(a,b,c){if(b<0){throw new xk(b)}if(c<b){throw new xk(c-b)}if(c>a){throw new xk(c)}}\n\tfunction Er(a,b){var c;this.f=a;c=new Zo;kr(a,c,b,a.f,null,false,null,false);this.d=new Nn(c)}\n\tfunction pp(a,b){var c,d;d=a.d.e.length;for(c=0;c<d;c++){Xq(c,a.d.e.length);Wo(a.d,c,b[c])}}\n\tfunction Rl(a,b,c){var d,e,f;d=0;for(e=0;e<c;e++){f=b[e];a[e]=f<<1|d;d=f>>>31}d!=0&&(a[c]=d)}\n\tfunction np(a){var b,c,d;d=0;for(c=a.I();c.R();){b=c.S();d=d+(b!=null?lb(b):0);d=~~d}return d}\n\tfunction qd(e,a){var b=e.d;var c=0;for(var d in b){b.hasOwnProperty(d)&&(a[c++]=d)}return a}\n\tfunction ql(a){var b;if(a.e==-2){if(a.j==0){b=-1}else{for(b=0;a.d[b]==0;b++);}a.e=b}return a.e}\n\tfunction Wt(a,b){if(a.g.k==0){return Xt(a,b)}else if(a.g.k==Lt){return Yt(a,b)}return Xt(a,b)}\n\tfunction wn(a){if(a.d.R()){return true}if(a.d!=a.e){return false}a.d=a.f.d.db();return a.d.R()}\n\tfunction si(a){return String.fromCharCode(a).toLowerCase().charCodeAt(0)==a&&qi(a)}\n\tfunction ti(a){return String.fromCharCode(a).toUpperCase().charCodeAt(0)==a&&qi(a)}\n\tfunction vu(a){return a.replace(/^H([^+])/,'H+H$1').replace(/(Arg|His|Lys)(?!\\()/g,'$1(H+)')}\n\tfunction Ru(a,b){return !b?Qu(a,'unsaturation',(ed(),ed(),dd)):Qu(a,'unsaturation',new kd(b.d))}\n\tfunction et(b){try{Ri(b);return true}catch(a){a=Jg(a);if(be(a,20)){return false}else throw Ig(a)}}\n\tfunction Mm(a,b){var c,d;Hc(b);for(d=b.I();d.R();){c=d.S();if(!a.J(c)){return false}}return true}\n\tfunction lq(a,b,c){var d;d=a.d[b];d===undefined&&dn(a.e);nq(a,b,c===undefined?null:c);return d}\n\tfunction ou(a){mu();var b,c;b='61-'+a;if(hn(lu,b))return gn(lu,b);c=new ku(a);kn(lu,b,c);return c}\n\tfunction ot(a,b){var c,d;for(d=Ho(new Io(a.n));Hn(d.d.d);){c=Mo(d);if(Lj(c.o,b))return c}return null}\n\tfunction nt(a){var b,c,d;d=pt(a);for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);b.n=tt(b.e*hs(b)*100/d)}}\n\tfunction ws(a,b){var c,d,e;c=(new Hr(a)).d.$();while(Hn(c.d)){d=c.e=In(c.d);e=d.Y().d;e<b&&Cr(c)}}\n\tfunction ms(a){this.o=a.o;this.e=a.e;this.g=a.g;this.f=a.f;this.j=a.j;this.k=a.k;this.d=a.d}\n\tfunction Bp(){bq();this.d=aq.gb();this.d.e=this;this.f=aq.hb();this.f.e=this;this.e=0;wp(this)}\n\tfunction Qk(a){Jk();if(Yi(a)||isNaN(a)){throw new Fj('Infinite or NaN')}Lk(this,a.toPrecision(20))}\n\tfunction nb(a){return fe(a)?a:ae(a)?a.tS():ee(a)?eb(a):a.toString?a.toString():'[JavaScriptObject]'}\n\tfunction qc(a){var b=/function(?:\\s+([\\w$]+))?\\s*\\(/;var c=b.exec(a);return c&&c[1]||'anonymous'}\n\tfunction dr(a){var b;b=a.d.e.length;if(b>0){return Xq(b-1,a.d.e.length),a.d.W(b-1)}else{throw new yp}}\n\tfunction bh(a){var b,c;c=mj(a.h);if(c==32){b=mj(a.m);return b==32?mj(a.l)+32:b+20-10}else{return c-12}}\n\tfunction wh(a){var b,c,d;b=~a.l+1&Zu;c=~a.m+(b==0?1:0)&Zu;d=~a.h+(b==0&&c==0?1:0)&$u;return Wg(b,c,d)}\n\tfunction kh(a,b){var c,d,e;c=a.l+b.l;d=a.m+b.m+(c>>22);e=a.h+b.h+(d>>22);return {l:c&Zu,m:d&Zu,h:e&$u}}\n\tfunction Ch(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return {l:c&Zu,m:d&Zu,h:e&$u}}\n\tfunction or(a,b,c){var d,e;d=new Ir(b,c);e=new Jr;a.f=mr(a,a.f,d,e);e.e||++a.g;a.f.e=false;return e.g}\n\tfunction Sd(a,b){var c;c=Yd(0,b);Xd(jb(a),a.cM,a.__elementTypeId$,a.__elementTypeCategory$,c);return c}\n\tfunction Xd(a,b,c,d,e){e.cZ=a;e.cM=b;e.tM=Sg;e.__elementTypeId$=c;e.__elementTypeCategory$=d;return e}\n\tfunction Zg(a,b,c,d,e){var f;f=Ah(a,b);c&&ah(f);if(e){a=_g(a,b);d?(Tg=wh(a)):(Tg=Wg(a.l,a.m,a.h))}return f}\n\tfunction Rd(a,b){var c;c=a.slice(0,b);Xd(jb(a),a.cM,a.__elementTypeId$,a.__elementTypeCategory$,c);return c}\n\tfunction Km(a,b){var c,d,e;Hc(b);c=false;for(e=b.I();e.R();){d=e.S();c=c|or(a.n,d,(gi(),ei))==null}return c}\n\tfunction ip(a){var b,c,d,e;e=1;for(c=0,d=a.length;c<d;++c){b=a[c];e=31*e+(b!=null?lb(b):0);e=~~e}return e}\n\tfunction Ig(a){var b;if(be(a,38)){b=a;if(ge(b.e)!==ge((xb(),wb))){return ge(b.e)===ge(wb)?null:b.e}}return a}\n\tfunction Jg(a){var b;if(be(a,9)){return a}b=a&&a.__gwt$exception;if(!b){b=new zb(a);oc(b,a);Hg(a,b)}return b}\n\tfunction Dh(a){if(nh(a,(Lh(),Ih))){return cv}if(!rh(a,Kh)){return -hh(wh(a))}return a.l+a.m*av+a.h*bv}\n\tfunction Ui(a,b){if(a<b){return -1}if(a>b){return 1}if(a==b){return 0}return isNaN(a)?isNaN(b)?0:1:-1}\n\tfunction Ml(a){jl();if(a<0){if(a!=-1){return new zl(-1,-a)}return dl}else return a<=10?fl[ie(a)]:new zl(1,a)}\n\tfunction Jd(a){Dd();throw new cd(\"Unexpected typeof result '\"+a+\"'; please report this bug to the GWT team\")}\n\tfunction Rh(a,b){typeof window==='object'&&typeof window['$gwt']==='object'&&(window['$gwt'][a]=b)}\n\tfunction Dd(){Dd=Ng;Cd={'boolean':Ed,number:Fd,string:Hd,object:Gd,'function':Gd,undefined:Id}}\n\tfunction nc(){nc=Ng;var a,b;b=!(!!Error.stackTraceLimit||'stack' in new Error);a=new Ac;mc=b?new sc:a}\n\tfunction tt(a){var b;b=isNaN(a*jv)?a*jv:Yi(a*jv)?a*jv:a*jv==0?a*jv:Dh(oh(Math.round(a*jv)));return b/jv}\n\tfunction ol(a,b){var c;if(a===b){return true}if(be(b,5)){c=b;return a.j==c.j&&a.g==c.g&&pl(a,c.d)}return false}\n\tfunction Bu(a,b){var c;c=yu(b);c.f.nb('monoisotopicMass',''+a);return su(Gu(c,(Jt(),Jt(),It),(null,Ht)))}\n\tfunction _k(a){var b=Ik;!b&&(b=Ik=/^[+-]?\\d*$/i);if(b.test(a)){return parseInt(a,10)}else{return Number.NaN}}\n\tfunction lk(a){jk();var b=':'+a;var c=ik[b];if(c!=null){return c}c=gk[b];c==null&&(c=kk(a));mk();return ik[b]=c}\n\tfunction qj(a){var b,c;if(a>-129&&a<128){b=a+128;c=(sj(),rj)[b];!c&&(c=rj[b]=new hj(a));return c}return new hj(a)}\n\tfunction ah(a){var b,c,d;b=~a.l+1&Zu;c=~a.m+(b==0?1:0)&Zu;d=~a.h+(b==0&&c==0?1:0)&$u;fh(a,b);gh(a,c);eh(a,d)}\n\tfunction wl(a){var b,c,d,e;return a.j==0?a:(b=a.g,c=b+1,d=Ud(me,Yu,0,c,7,1),Rl(d,a.d,b),e=new Bl(a.j,c,d),ml(e),e)}\n\tfunction rl(a){var b;if(a.f!=0){return a.f}for(b=0;b<a.d.length;b++){a.f=a.f*33+(a.d[b]&-1)}a.f=a.f*a.j;return a.f}\n\tfunction oi(a){if(a>=48&&a<58){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1}\n\tfunction Lm(a,b){var c,d;for(d=a.I();d.R();){c=d.S();if(ge(b)===ge(c)||b!=null&&hb(b,c)){return true}}return false}\n\tfunction $b(a,b){var c,d;for(c=0,d=0;d<16;d++){b[d]=a[c++]&255|(a[c++]&255)<<8|(a[c++]&255)<<16|(a[c++]&255)<<24}}\n\tfunction jp(a,b,c,d){var e,f,g;for(e=b+1;e<c;++e){for(f=e;f>b&&d.ab(a[f-1],a[f])>0;--f){g=a[f];a[f]=a[f-1];a[f-1]=g}}}\n\tfunction kp(a,b,c,d,e,f,g,h){var i;i=c;while(f<g){i>=d||b<c&&h.ab(a[b],a[i])<=0?(e[f++]=a[b++]):(e[f++]=a[i++])}}\n\tfunction Ys(a,b,c,d,e,f){a.g=yj(ie(wj((c-f-b-e)/a.d.j)),a.d.g);a.f=zj(ie(vj((c+f-b-d)/a.d.j)),a.d.f);a.e=a.g-1}\n\tfunction bu(a,b,c){this.g=a;Tt(this);this.d=c;Vt(this,b);if(b.d!=0){us(this.f,-b.d*uv);ys(this.f,1/uj(b.d))}}\n\tfunction xi(){this.n=ui++;this.q=null;this.o=null;this.k=null;this.g=null;this.e=null;this.p=null;this.d=null}\n\tfunction ls(a,b,c,d){if(c>d)throw new Kt('Error: minCount>maxCount');this.o=a;this.e=b;this.g=c;this.f=d}\n\tfunction Ns(a){if(a.g==0)throw new vb('Exact mass of '+a.n+' is unknown. Run calculateExactMass() first.');return a.g}\n\tfunction Np(a){if(a.f<a.d.length){return true}if(a.e<a.g.length-1){a.d=Dp(a.k,a.g[++a.e]);a.f=0;return true}return false}\n\tfunction Il(a){var b,c,d;if(a<hl.length){return hl[a]}c=a>>5;b=a&31;d=Ud(me,Yu,0,c+1,7,1);d[c]=1<<b;return new Bl(1,c+1,d)}\n\tfunction qm(a,b,c,d,e){if(b==0||d==0){return}b==1?(e[d]=sm(e,c,d,a[0])):d==1?(e[b]=sm(e,a,b,c[0])):rm(a,c,e,b,d)}\n\tfunction Ls(a){var b,c,d;if(a.e.e==0){return}d=0;for(c=Xn(new Yn(a.e));wn(c.d);){b=ao(c);d+=b.e*b.g/100}if(d==0)return;a.f=d}\n\tfunction ut(a){var b,c,d;if(a.n.g==0)return '';d=new pk('');for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);nk(d,js(b))}return d.d}\n\tfunction Ol(a){var b,c,d;if(a.j==0){return 0}b=a.g<<5;c=a.d[a.g-1];if(a.j<0){d=ql(a);if(d==a.g-1){--c;c=~~c}}b-=mj(c);return b}\n\tfunction Yo(a,b){var c,d;d=a.e.length;b.length<d&&(b=Sd(b,d));for(c=0;c<d;++c){b[c]=a.e[c]}b.length>d&&(b[d]=null);return b}\n\tfunction Pl(a,b){var c,d,e,f;c=b>>5;b&=31;e=a.g+c+(b==0?0:1);d=Ud(me,Yu,0,e,7,1);Ql(d,a.d,c,b);f=new Bl(a.j,e,d);ml(f);return f}\n\tfunction zs(a,b){var c,d,e,f;c=(new Hr(a)).d.$();while(Hn(c.d)){d=c.e=In(c.d);e=d.X();f=d.Y();or(a,e,new Ti(f.d*b))}}\n\tfunction pb(a){var b,c,d,e,f;for(e=a;e;e=e.j){for(b=(e.n==null&&(e.n=(nc(),f=mc.t(e),pc(f))),e.n),c=0,d=b.length;c<d;++c);}}\n\tfunction Sm(a,b){var c,d,e;for(d=a.O().I();d.R();){c=d.S();e=c.X();if(ge(b)===ge(e)||b!=null&&hb(b,e)){return c}}return null}\n\tfunction Fp(a,b){var c,d,e,f;for(d=Ep(a,b==null?'0':''+Ap(b)),e=0,f=d.length;e<f;++e){c=d[e];if(zp(b,c.X())){return c}}return null}\n\tfunction ir(a,b){var c,d,e;d=null;e=a.f;while(e){c=a.e.ab(b,e.f);if(c==0){return e}if(c>=0){e=e.d[1]}else{d=e;e=e.d[0]}}return d}\n\tfunction jr(a,b){var c,d,e;d=null;e=a.f;while(e){c=a.e.ab(b,e.f);if(c==0){return e}if(c<=0){e=e.d[0]}else{d=e;e=e.d[1]}}return d}\n\tfunction Cs(a){var b,c;b=new Qk(a);c=Pk(Mk(b,(Hm(),Hm(),Em)));if(c.indexOf('.')!=-1){return Rj(c,'\\\\.?0+$','')}return c}\n\tfunction op(a){var b,c,d;d=1;for(c=a.I();c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=31*d+(b!=null?lb(b):0);d=~~d}return d}\n\tfunction pc(a){var b,c,d;b='oc';d=zj(a.length,5);for(c=0;c<d;c++){if(Lj(a[c].g,b)){return a.length>=c+1&&a.splice(0,c+1),a}}return a}\n\tfunction $j(a,b,c){var d='';for(var e=b;e<c;){var f=Math.min(e+10000,c);d+=String.fromCharCode.apply(null,a.slice(e,f));e=f}return d}\n\tfunction ni(a,b,c){var d,e;d=Kj(a,b++);if(d>=55296&&d<=56319&&b<c&&ri(e=a.charCodeAt(b))){return ev+((d&1023)<<10)+(e&1023)}return d}\n\tfunction Mi(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c<b.length;c++){if(!b[c]||b[c]==''){continue}d+=a+b[c]}return d}\n\tfunction Mt(a,b,c){var d,e,f;f=nu(Rt(a),b,c);e=new Hs;for(d=0;d<f.length;d++){or(e,new Ti(f[d][0]),new Ti(f[d][1]))}a.j.f=e;a.j.f.d=jv}\n\tfunction Pg(){!Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.call(a)==='[object Array]'})}\n\tfunction Mj(b,a){if(a==null){return false}if(b==a){return true}return b.length==a.length&&b.toLowerCase()==a.toLowerCase()}\n\tfunction ll(a,b){if(a.j>b.j){return 1}if(a.j<b.j){return -1}if(a.g>b.g){return a.j}if(a.g<b.g){return -b.j}return a.j*gm(a.d,b.d,a.g)}\n\tfunction Yg(a,b){if(a.h==_u&&a.m==0&&a.l==0){b&&(Tg=Wg(0,0,0));return Vg((Lh(),Jh))}b&&(Tg=Wg(a.l,a.m,a.h));return Wg(0,0,0)}\n\tfunction Vj(a){if(a.length==0||a[0]>' '&&a[a.length-1]>' '){return a}return a.replace(/^[\\u0000-\\u0020]*|[\\u0000-\\u0020]*$/g,'')}\n\tfunction Vk(a){var b;sh(a,{l:0,m:0,h:0})&&(a={l:~a.l&Zu,m:~a.m&Zu,h:~a.h&$u});return 64-(b=Eh(Ah(a,32)),b!=0?mj(b):mj(Eh(a))+32)}\n\tfunction Lb(){var a;if(Gb!=0){a=Bb();if(a-Ib>2000){Ib=a;Jb=$wnd.setTimeout(Sb,10)}}if(Gb++==0){hc((gc(),fc));return true}return false}\n\tfunction ph(a){var b,c;if(a>-129&&a<128){b=a+128;jh==null&&(jh=Ud(He,Yu,141,256,0,1));c=jh[b];!c&&(c=jh[b]=Ug(a));return c}return Ug(a)}\n\tfunction Ot(a){var b,c,d;b=tv;for(d=new Kn(a.g.g);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));c.k>b&&(b=c.k)}Zt(a.j,b,a.e,a.d)}\n\tfunction xs(a){var b,c,d,e,f,g;b=tv;f=0;c=(new Hr(a)).d.$();while(Hn(c.d)){d=c.e=In(c.d);e=d.X();g=d.Y().d;if(g>b){b=g;f=e.d}}return f}\n\tfunction us(a,b){var c,d,e,f,g;d=new Hs;c=(new Hr(a)).d.$();while(Hn(c.d)){e=c.e=In(c.d);f=e.X();g=e.Y();or(d,new Ti(f.d+b),g);Cr(c)}ts(a,d)}\n\tfunction ys(a,b){var c,d,e,f,g;d=new Hs;c=(new Hr(a)).d.$();while(Hn(c.d)){e=c.e=In(c.d);f=e.X();g=e.Y();or(d,new Ti(f.d*b),g);Cr(c)}ts(a,d)}\n\tfunction ts(a,b){var c,d,e,f,g;e=(new Hr(b)).d.$();while(Hn(e.d)){c=e.e=In(e.d);f=c.X();g=c.Y();d=vo(a,f);!!d&&(g=new Ti(d.d+g.d));or(a,f,g)}}\n\tfunction sd(f,a){var b=f.d;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(Dd(),Cd)[typeof c];var e=d?d(c):Jd(typeof c);return e}\n\tfunction sl(a){var b;b=a.g>1?yh(zh(ph(a.d[1]),32),lh(ph(a.d[0]),{l:Zu,m:1023,h:0})):lh(ph(a.d[0]),{l:Zu,m:1023,h:0});return vh(ph(a.j),b)}\n\tfunction gm(a,b,c){var d;for(d=c-1;d>=0&&a[d]==b[d];d--);return d<0?0:sh(lh(ph(a[d]),{l:Zu,m:1023,h:0}),lh(ph(b[d]),{l:Zu,m:1023,h:0}))?-1:1}\n\tfunction zl(a,b){this.j=a;if(b<mv){this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[~~b])}else{this.g=2;this.d=Xd(Td(me,1),Yu,0,7,[~~(b%mv),~~(b/mv)])}}\n\tfunction Dl(a){jl();kl(this);if(a.length==0){this.j=0;this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[0])}else{this.j=1;this.g=a.length;this.d=a;ml(this)}}\n\tfunction os(a,b,c){if(b>c)throw new Kt('Error: minCount>maxCount');this.g=b;this.f=c;this.j=qt(a.d);this.k=rt(a.d);this.d=0;this.o=a.e;this.e=pt(a.d)}\n\tfunction at(a){var b,c,d,e;c='';b=new Zb;d=Tb(b,dk(a));for(e=0;e<5;e++){e==0?(c+=_d(uj(d[0]%26)+65&gv)):(c+=_d(uj(d[e]%26)+97&gv))}return c}\n\tfunction dc(a,b){var c,d;for(c=0,d=0;c<4;c++){b[d++]=he(a[c]&255);b[d++]=he(a[c]>>>8&255);b[d++]=he(a[c]>>>16&255);b[d++]=he(a[c]>>>24&255)}}\n\tfunction ck(a){var b,c;if(a>=ev){b=55296+(a-ev>>10&1023)&gv;c=56320+(a-ev&1023)&gv;return ek(b)+ek(c)}else{return String.fromCharCode(a&gv)}}\n\tfunction jt(a,b,c,d){this.d=b;this.e=c;this.g=new $o;ft(this,a,d);if(this.g.e.length==0)throw new Kt('Cannot parse: empty formula: ->'+a+'<-')}\n\tfunction kr(a,b,c,d,e,f,g,h){var i,j;if(!d){return}i=d.d[0];!!i&&kr(a,b,c,i,e,f,g,h);lr(a,c,d.f,e,f,g,h)&&b.U(d);j=d.d[1];!!j&&kr(a,b,c,j,e,f,g,h)}\n\tfunction Zj(a){var b;b=0;while(0<=(b=a.indexOf('\\\\',b))){a.charCodeAt(b+1)==36?(a=a.substr(0,b)+'$'+Tj(a,++b)):(a=a.substr(0,b)+Tj(a,++b))}return a}\n\tfunction Rm(a,b){var c,d,e;c=b.X();e=b.Y();d=a.P(c);if(!(ge(e)===ge(d)||e!=null&&hb(e,d))){return false}if(d==null&&!a.N(c)){return false}return true}\n\tfunction lr(a,b,c,d,e,f,g){var h,i;if(b.pb()&&(h=a.e.ab(c,d),h<0||!e&&h==0)){return false}if(b.qb()&&(i=a.e.ab(c,f),i>0||!g&&i==0)){return false}return true}\n\tfunction _g(a,b){var c,d,e;if(b<=22){c=a.l&(1<<b)-1;d=e=0}else if(b<=44){c=a.l;d=a.m&(1<<b-22)-1;e=0}else{c=a.l;d=a.m;e=a.h&(1<<b-44)-1}return Wg(c,d,e)}\n\tfunction Fu(a){var b,c,d;d=Nl({l:1,m:0,h:0});for(c=new Kn(a.d);c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=tl(d,Nl(ph(b.d.f-b.d.g+1)))}return d}\n\tfunction Bs(a){var b,c,d,e,f;e=~~(a.d/2);if(a.g<e)return;f=new bs(new Js);Km(f,new Hr(a));c=0;for(d=Ho(new Io(f.n));Hn(d.d.d);){b=Mo(d);c++>e&&pr(a,b.X())}}\n\tfunction pt(a){var b,c,d;if(a.j)throw new Kt('Cannot calculate mass of a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=b.e*hs(b)}return tt(d)}\n\tfunction rt(a){var b,c,d;if(a.j)throw new Kt('Cannot calculate exact mass of a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=b.k*hs(b)}return d}\n\tfunction st(a){var b,c,d;if(a.j)throw new Kt('Cannot get the number of atoms: this is a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=hs(b)}return d}\n\tfunction Nm(a){var b,c,d,e;e=new wk('[');b=false;for(d=a.I();d.R();){c=d.S();b?(e.d+=', ',e):(b=true);e.d+=c===a?'(this Collection)':''+c}e.d+=']';return e.d}\n\tfunction Yk(a,b,c){var d,e,f,g,h;e=(h=a/b,h>0?wj(h):vj(h));f=a%b;g=Ui(a*b,0);if(f!=0){d=Ui((f<=0?0-f:f)*2,b<=0?0-b:b);e+=al(ie(e)&1,g*(5+d),c)}return new Rk(e)}\n\tfunction Nl(a){jl();if(sh(a,{l:0,m:0,h:0})){if(xh(a,{l:Zu,m:Zu,h:$u})){return new Cl(-1,wh(a))}return dl}else return th(a,{l:10,m:0,h:0})?fl[Eh(a)]:new Cl(1,a)}\n\tfunction cu(a,b,c){var d,e;d=b.d!=0?hs(b):Aj(gn(a.d.d,b.o).e.e-1,hs(b));e=c.d!=0?hs(c):Aj(gn(a.d.d,c.o).e.e-1,hs(c));if(d==e)return Ui(b.e,c.e);return -Ui(d,e)}\n\tfunction ih(a,b){var c,d,e;e=a.h-b.h;if(e<0){return false}c=a.l-b.l;d=a.m-b.m+(c>>22);e+=d>>22;if(e<0){return false}fh(a,c&Zu);gh(a,d&Zu);eh(a,e&$u);return true}\n\tfunction Tb(a,b){var c,d;Xb(a,b,0,b.length);return c=ec(zh(a.e,3)),d=Ud(je,Yu,0,16,7,1),a.f>8?Xb(a,Ub,0,a.f-8):Xb(a,Ub,0,64+(a.f-8)),Xb(a,c,0,8),dc(a.g,d),Wb(a),d}\n\tfunction au(a,b,c){var d,e,f;this.g=a;Tt(this);this.d=c;d=b.e.e;$t(this,a.e/(d*4));for(f=Xn(new Yn(b.e));wn(f.d);){e=ao(f);or(this.f,new Ti(e.e),new Ti(e.g/100))}}\n\tfunction Wd(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=Yd(h,k);Xd(Td(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i<k;++i){l[i]=Wd(a,b,c,d,e,f,g)}}return l}\n\tfunction Ph(b,c,d,e){Oh();var f=Mh;$moduleName=c;$moduleBase=d;Gg=e;function g(){for(var a=0;a<f.length;a++){f[a]()}}\n\tif(b){try{Uu(g)()}catch(a){b(c,a)}}else{Uu(g)()}}\n\tfunction hm(a,b,c){var d,e;d=lh(ph(c),{l:Zu,m:1023,h:0});for(e=0;xh(d,{l:0,m:0,h:0})&&e<b;e++){d=kh(d,lh(ph(a[e]),{l:Zu,m:1023,h:0}));a[e]=Eh(d);d=Ah(d,32)}return Eh(d)}\n\tfunction wm(a,b){om();var c,d;d=(jl(),el);c=a;for(;b>1;b>>=1){(b&1)!=0&&(d=tl(d,c));c.g==1?(c=tl(c,c)):(c=new Dl(ym(c.d,c.g,Ud(me,Yu,0,c.g<<1,7,1))))}d=tl(d,c);return d}\n\tfunction Hp(a,b,c){var d,e,f,g;d=Cp(a,b==null?'0':''+Ap(b));for(f=0,g=d.length;f<g;++f){e=d[f];if(zp(b,e.X())){return e.Z(c)}}d[d.length]=new no(b,c);dn(a.e);return null}\n\tfunction lp(a,b,c,d){var e,f,g,h;!d&&(d=(rp(),rp(),qp));e=(f=(g=c-b,Ec(g>=0,Xd(Td(af,1),Yu,1,3,[qj(b),qj(c)])),g),h=Sd(a,f),yk(a,b,h,0,zj(a.length-b,f)),h);mp(e,a,b,c,-b,d)}\n\tfunction iu(a,b){gu();var c,d,e,f;f=2;for(d=Ho(new Io(a.n));Hn(d.d.d);){c=Mo(d);e=hu(c.o);if(!e){if(!b){return null}else{f+=b.d*hs(c)}}else{f+=e.d*hs(c)}}return new Ti(f/2)}\n\tfunction Yd(a,b){var c=new Array(b);var d;switch(a){case 6:d={l:0,m:0,h:0};break;case 7:d=0;break;case 8:d=false;break;default:return c;}for(var e=0;e<b;++e){c[e]=d}return c}\n\tfunction js(a){var b;a.d!=0?(b='<sup>'+a.d+'<\\/sup>'+a.o):(b=a.o);if(a.f==1&&a.g==1)return b;if(a.f==a.g)return b+'<sub>'+a.f+'<\\/sub>';return b+'<sub>'+a.g+'-'+a.f+'<\\/sub>'}\n\tfunction Vb(){Vb=Ng;Ub=Xd(Td(je,1),Yu,0,7,[-128,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,0,0])}\n\tfunction ku(a){var b,c,d;this.e=61;this.d=a;c=a/(2*Cj(2*xj(2)));this.f=Ud(le,hv,0,61,7,1);for(b=0;b<61;b++){d=b-30;this.f[b]=1/(c*Cj(6.283185307179586))*Math.exp(-d*d/(2*c*c))}}\n\tfunction Eu(a,b,c){var d,e;for(d=0;d<a.d.e.length;d++){for(e=d+1;e<a.d.e.length;e++){b[d]=b[d]+Xs((Xq(e,a.d.e.length),To(a.d,e)));c[d]=c[d]+Ws((Xq(e,a.d.e.length),To(a.d,e)))}}}\n\tfunction Wb(a){a.d=Ud(je,Yu,0,64,7,1);a.g=Ud(me,Yu,0,4,7,1);a.j=Ud(me,Yu,0,16,7,1);a.g[0]=1732584193;a.g[1]=-271733879;a.g[2]=-1732584194;a.g[3]=271733878;a.e={l:0,m:0,h:0};a.f=64}\n\tfunction Ql(a,b,c,d){var e,f,g;if(d==0){yk(b,0,a,c,a.length-c)}else{g=32-d;a[a.length-1]=0;for(f=a.length-1;f>c;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<<d}}for(e=0;e<c;e++){a[e]=0}}\n\tfunction Uk(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=ie(wj(xj(a)/0.6931471805599453));(!b||a!=Aj(2,c))&&++c;return c}return Vk(oh(a))}\n\tfunction vt(a){var b,c,d;if(a.n.g==0)return '';d=new pk('');for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);nk(d,ks(b,a.f))}a.d!=0&&(a.d>0?nk(d,'(+'+a.d+')'):nk(d,'('+a.d+')'));return d.d}\n\tfunction Zd(a,b,c,d,e,f){if(a===c){a=a.slice(b,b+e);b=0}for(var g=b,h=b+e;g<h;){var i=Math.min(g+10000,h);e=i-g;Array.prototype.splice.apply(c,[d,f?e:0].concat(a.slice(g,i)));g=i;d+=e}}\n\tfunction qh(a,b){var c,d;c=a.h>>19;d=b.h>>19;return c==0?d!=0||a.h>b.h||a.h==b.h&&a.m>b.m||a.h==b.h&&a.m==b.m&&a.l>b.l:!(d==0||a.h<b.h||a.h==b.h&&a.m<b.m||a.h==b.h&&a.m==b.m&&a.l<=b.l)}\n\tfunction rh(a,b){var c,d;c=a.h>>19;d=b.h>>19;return c==0?d!=0||a.h>b.h||a.h==b.h&&a.m>b.m||a.h==b.h&&a.m==b.m&&a.l>=b.l:!(d==0||a.h<b.h||a.h==b.h&&a.m<b.m||a.h==b.h&&a.m==b.m&&a.l<b.l)}\n\tfunction Ct(b){var c,d;d=new Tu;Su(d,'name',b.f);Su(d,'symbol',b.e);Su(d,'mf',vt(b.d));try{Qu(d,'mass',new kd(pt(b.d)))}catch(a){a=Jg(a);if(be(a,4)){c=a;pb(c)}else throw Ig(a)}return d}\n\tfunction sr(a,b,c,d){var e,f;f=b;e=f.f==null||a.e.ab(c.f,f.f)>0?1:0;while(f.d[e]!=c){f=f.d[e];e=a.e.ab(c.f,f.f)>0?1:0}f.d[e]=d;d.e=c.e;d.d[0]=c.d[0];d.d[1]=c.d[1];c.d[0]=null;c.d[1]=null}\n\tfunction dq(){var a;if(Object.create&&Object.getOwnPropertyNames&&cq()){return (a=Object.create(null),a['__proto__']=42,Object.getOwnPropertyNames(a).length==0)?new eq:new Zp}return new gq}\n\tfunction mt(a,b){var c;if(b.f<b.g)throw new Kt('Syntax error: maxCount<minCount');c=ot(a,b.o);if(c)if(c.d==b.d){c.g+=b.g;c.f+=b.f;return}b.f==0&&b.g==0&&(a.j=true);or(a.n,b,(gi(),ei))==null}\n\tfunction Qi(a){var b;if(!(b=Pi,!b&&(b=Pi=/^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$/),b.test(a))){throw new Fj('For input string: \"'+a+'\"')}return parseFloat(a)}\n\tfunction Cl(a,b){kl(this);this.j=a;if(nh(lh(b,{l:0,m:4193280,h:$u}),{l:0,m:0,h:0})){this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[Eh(b)])}else{this.g=2;this.d=Xd(Td(me,1),Yu,0,7,[Eh(b),Eh(Ah(b,32))])}}\n\tfunction Tl(a,b,c,d,e){var f,g,h;f=true;for(g=0;g<d;g++){f=f&c[g]==0}if(e==0){yk(c,d,a,0,b)}else{h=32-e;f=f&c[g]<<h==0;for(g=0;g<b-1;g++){a[g]=c[g+d]>>>e|c[g+d+1]<<h}a[g]=c[g+d]>>>e;++g}return f}\n\tfunction Es(a){var b,c,d,e,f,g,h;e=a.g;e>~~(a.d/2)&&(e=~~(a.d/2));f='';d=(new Hr(a)).d.$();b=0;while(Hn(d.d)&&b<e){++b;c=d.e=In(d.d);g=c.X().d;h=c.Y().d;h>-1.0E100&&(f+=g+', '+h+'\\r\\n')}return f}\n\tfunction Fs(a){var b,c,d,e,f,g,h;e=a.g;e>~~(a.d/2)&&(e=~~(a.d/2));f=new ok;d=(new Hr(a)).d.$();b=0;while(Hn(d.d)&&b<e){++b;c=d.e=In(d.d);g=c.X().d;h=c.Y().d;nk(f,Cs(g)+', '+Cs(h*100)+'\\r\\n')}return f}\n\tfunction zh(a,b){var c,d,e;b&=63;if(b<22){c=a.l<<b;d=a.m<<b|a.l>>22-b;e=a.h<<b|a.m>>22-b}else if(b<44){c=0;d=a.l<<b-22;e=a.m<<b-22|a.l>>44-b}else{c=0;d=0;e=a.l<<b-44}return {l:c&Zu,m:d&Zu,h:e&$u}}\n\tfunction Bh(a,b){var c,d,e,f;b&=63;c=a.h&$u;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return {l:d&Zu,m:e&Zu,h:f&$u}}\n\tfunction Gs(a){var b,c,d,e,f;c=a.g;c>~~(a.d/2)&&(c=~~(a.d/2));d=Vd(le,[Yu,hv],[28,0],7,[c,2],2);b=0;for(f=Ho(new Io(a));Hn(f.d.d);){e=Mo(f);d[b][0]=e.d;d[b][1]=vo(a,e).d;++b;if(b==c)break}return d}\n\tfunction ju(a,b){gu();var c,d,e,f;f=2;for(d=new Kn(a.d);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));e=hu(c.d.o);if(!e){if(!b){return null}else{f+=b.d*c.e}}else{f+=e.d*c.e}}return new Ti(f/2)}\n\tfunction Hm(){Hm=Ng;Gm=new Im('UP',0);Am=new Im('DOWN',1);zm=new Im('CEILING',2);Bm=new Im('FLOOR',3);Em=new Im('HALF_UP',4);Cm=new Im('HALF_DOWN',5);Dm=new Im('HALF_EVEN',6);Fm=new Im('UNNECESSARY',7)}\n\tfunction As(a,b){var c,d,e,f,g;c=tv;d=(new Hr(a)).d.$();while(Hn(d.d)){e=d.e=In(d.d);e.X();g=e.Y().d;g>c&&(c=g)}d=(new Hr(a)).d.$();while(Hn(d.d)){e=d.e=In(d.d);f=e.X();g=e.Y();or(a,f,new Ti(g.d/c*b))}}\n\tfunction sm(a,b,c,d){om();var e,f;e={l:0,m:0,h:0};for(f=0;f<c;f++){e=kh(vh(lh(ph(b[f]),{l:Zu,m:1023,h:0}),lh(ph(d),{l:Zu,m:1023,h:0})),lh(ph(Eh(e)),{l:Zu,m:1023,h:0}));a[f]=Eh(e);e=Bh(e,32)}return Eh(e)}\n\tfunction Ut(a,b){var c;if(b<=0)throw new vb('Error: power='+b);if(b==1)return a;if(b==2){a.f=Wt(a,a);return a}--b;c=new _t(a.g,a.f);while(b!=0){(b&1)!=0&&(a.f=Wt(a,c));b>>=1;b!=0&&(c.f=Wt(c,c))}return a}\n\tfunction yb(a){var b;if(a.f==null){b=ge(a.e)===ge(wb)?null:a.e;a.g=b==null?'null':ce(b)?b==null?null:b.name:fe(b)?'String':wi(jb(b));a.d=a.d+': '+(ce(b)?b==null?null:b.message:b+'');a.f='('+a.g+') '+a.d}}\n\tfunction cq(){var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}return true}\n\tfunction mp(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){jp(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);mp(b,a,i,j,-e,f);mp(b,a,j,h,-e,f);if(f.ab(a[j-1],a[j])<=0){while(c<d){b[c++]=a[i++]}return}kp(a,i,j,h,b,c,d,f)}\n\tfunction lc(b,c){var d,e,f,g;for(e=0,f=b.length;e<f;e++){g=b[e];try{g[1]?g[0].sb()&&(c=kc(c,g)):g[0].sb()}catch(a){a=Jg(a);if(be(a,9)){d=a;Qb(be(d,38)?ge(d.e)===ge(wb)?null:d.e:d)}else throw Ig(a)}}return c}\n\tfunction Ip(a,b){var c,d,e,f;e=b==null?'0':''+Ap(b);c=Ep(a,e);for(f=0;f<c.length;f++){d=c[f];if(zp(b,d.X())){c.length==1?(delete a.d[e],undefined):(c.splice(f,1),undefined);en(a.e);return d.Y()}}return null}\n\tfunction kk(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c<e){b=a.charCodeAt(c+3)+31*(a.charCodeAt(c+2)+31*(a.charCodeAt(c+1)+31*(a.charCodeAt(c)+31*b)));b=~~b;c+=4}while(c<d){b=b*31+Kj(a,c++)}b=~~b;return b}\n\tfunction ul(a,b){var c;if(b<0){throw new _h('Negative exponent')}if(b==0){return el}else if(b==1||ol(a,el)||ol(a,il)){return a}if(!yl(a,0)){c=1;while(!yl(a,c)){++c}return tl(Il(c*b),ul(xl(a,c),b))}return wm(a,b)}\n\tfunction Ms(a){var b,c,d,e,f;if(a.e.e==0){a.g=a.f;a.k=Eh(oh(Bj(a.f)));return}b=1.7976931348623157E308;f=tv;c=true;for(e=Xn(new Yn(a.e));wn(e.d);){d=ao(e);if(d.g>f||c){c=false;b=d.e;f=d.g}}a.g=b;a.k=Eh(oh(Bj(b)))}\n\tfunction Mg(a,b,c){var d=Kg;var e=Lg;var f=Og;var g=d[a];var h=f(g);if(g&&!h){_=g}else{_=d[a]=!b?{}:e(b);_.cM=c;_.constructor=_;!b&&(_.tM=Sg)}for(var i=3;i<arguments.length;++i){arguments[i].prototype=_}h&&(_.cZ=h)}\n\tfunction ks(a,b){var c,d;c=a.o;!!b&&hn(b,a.o)&&Qj(gn(b,a.o).j,'^[A-Z][a-z]?\\\\{.*\\\\}$')&&(c=gn(b,a.o).j);d='';a.d!=0?(d+='['+a.d+c+']'):(d+=c);if(a.f==1&&a.g==1)return d;if(a.f==a.g)return d+a.f;return d+a.g+'-'+a.f}\n\tfunction Gd(a){if(!a){return ed(),dd}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=Cd[typeof b];return c?c(b):Jd(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new Rc(a)}else{return new wd(a)}}\n\tfunction Xb(a,b,c,d){while(true){if(d>=a.f){yk(b,c,a.d,Eh(lh(a.e,{l:63,m:0,h:0})),a.f);Yb(a,a.d);a.e=kh(a.e,ph(a.f));c+=a.f;d-=a.f;a.f=64}else{yk(b,c,a.d,Eh(lh(a.e,{l:63,m:0,h:0})),d);a.e=kh(a.e,ph(d));a.f-=d;break}}}\n\tfunction mj(a){var b,c,d;if(a<0){return 0}else if(a==0){return 32}else{d=-(a>>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-4096;b=d>>16&4;c+=b;a<<=b;d=a-16384;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}\n\tfunction Eb(b){var c=(!Cb&&(Cb=Fb()),Cb);var d=b.replace(/[\\x00-\\x1f\\xad\\u0600-\\u0603\\u06dd\\u070f\\u17b4\\u17b5\\u200b-\\u200f\\u2028-\\u202e\\u2060-\\u2064\\u206a-\\u206f\\ufeff\\ufff9-\\ufffb\"\\\\]/g,function(a){return Db(a,c)});return '\"'+d+'\"'}\n\tfunction yl(a,b){var c,d,e;if(b==0){return (a.d[0]&1)!=0}if(b<0){throw new _h('Negative bit address')}e=b>>5;if(e>=a.g){return a.j<0}c=a.d[e];b=1<<(b&31);if(a.j<0){d=ql(a);if(e<d){return false}else d==e?(c=-c):(c=~c)}return (c&b)!=0}\n\tfunction Iu(b,c){var d,e,f,g;f=new Uq;try{for(e=Ho(new Io(b.n));Hn(e.d.d);){d=Mo(e);d.f=zj(d.f,ie(c/d.j));if(d.g>d.f)return null;Tq(f,new Zs(d))}g=Xo(f.d);lp(g,0,g.length,null);pp(f,g)}catch(a){a=Jg(a);if(!be(a,4))throw Ig(a)}return f}\n\tfunction km(a,b,c,d,e){var f,g;f={l:0,m:0,h:0};for(g=0;g<e;g++){f=kh(f,Ch(lh(ph(b[g]),{l:Zu,m:1023,h:0}),lh(ph(d[g]),{l:Zu,m:1023,h:0})));a[g]=Eh(f);f=Ah(f,32)}for(;g<c;g++){f=kh(f,lh(ph(b[g]),{l:Zu,m:1023,h:0}));a[g]=Eh(f);f=Ah(f,32)}}\n\tfunction qt(a){var b,c,d,e;if(a.j)throw new Kt('Cannot calculate exact mass of a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=b.j*hs(b)}return e=isNaN(d*kv)?d*kv:Yi(d*kv)?d*kv:d*kv==0?d*kv:Dh(oh(Math.round(d*kv))),e/kv}\n\tfunction ec(a){var b;b=Ud(je,Yu,0,8,7,1);b[0]=he(Eh(a));a=Bh(a,8);b[1]=he(Eh(a));a=Bh(a,8);b[2]=he(Eh(a));a=Bh(a,8);b[3]=he(Eh(a));a=Bh(a,8);b[4]=he(Eh(a));a=Bh(a,8);b[5]=he(Eh(a));a=Bh(a,8);b[6]=he(Eh(a));a=Bh(a,8);b[7]=he(Eh(a));return b}\n\tfunction Ah(a,b){var c,d,e,f,g;b&=63;c=a.h;d=(c&_u)!=0;d&&(c|=-1048576);if(b<22){g=c>>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?$u:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?$u:0;f=d?Zu:0;e=c>>b-44}return {l:e&Zu,m:f&Zu,h:g&$u}}\n\tfunction Ji(a){if(a.G()){var b=a.f;b.H()?(a.q='['+b.p):!b.G()?(a.q='[L'+b.D()+';'):(a.q='['+b.D());a.e=b.C()+'[]';a.o=b.F()+'[]';return}var c=a.k;var d=a.g;d=d.split('/');a.q=Mi('.',[c,Mi('$',d)]);a.e=Mi('.',[c,Mi('.',d)]);a.o=d[d.length-1]}\n\tfunction dt(a){var b,c,d;if(a.f)throw new Kt('Cannot calculate mass: this is a range formula');if(a.j)throw new Kt('The mass is not clearly defined');d=0;for(c=new Kn(a.g);c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=ie(d+rt(b)*b.k)}return d}\n\tfunction ht(a){var b,c,d;c=new Kn(a.g);d=new pk('');c.d<c.f.K()&&(d=new pk((Fc(c.d<c.f.K()),nb(c.f.V(c.e=c.d++)))));while(c.d<c.f.K()){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));b.k==1?nk(d,'.'+vt(b)):b.k==0?nk(d,'.n'+vt(b)):nk(d,'.'+b.k+vt(b))}return d.d}\n\tfunction vs(a,b){var c,d,e,f,g,h;e=new Hs;d=(new Hr(a)).d.$();while(Hn(d.d)){f=d.e=In(d.d);g=f.X().d;h=f.Y().d;Cr(d);g=(isNaN(g/b)?g/b:Yi(g/b)?g/b:g/b==0?g/b:Dh(oh(Math.round(g/b))))*b;c=vo(e,new Ti(g));!!c&&(h+=c.d);or(e,new Ti(g),new Ti(h))}ts(a,e)}\n\tfunction oh(a){var b,c,d,e,f;if(isNaN(a)){return Lh(),Kh}if(a<cv){return Lh(),Ih}if(a>=9223372036854775807){return Lh(),Hh}e=false;if(a<0){e=true;a=-a}d=0;if(a>=bv){d=ie(a/bv);a-=d*bv}c=0;if(a>=av){c=ie(a/av);a-=c*av}b=ie(a);f=Wg(b,c,d);e&&ah(f);return f}\n\tfunction dk(a){var b,c,d,e,f,g,h;g=a.length;b=0;for(f=0;f<g;){d=ni(a,f,a.length);f+=d>=ev?2:1;d<128?++b:d<2048?(b+=2):d<ev?(b+=3):d<2097152?(b+=4):d<67108864&&(b+=5)}c=Ud(je,Yu,0,b,7,1);h=0;for(e=0;e<g;){d=ni(a,e,a.length);e+=d>=ev?2:1;h+=bk(c,h,d)}return c}\n\tfunction Ss(a,b,c){var d,e,f,g,h,i,j;this.j=c;this.n=b;this.d=a.d;this.e=new Bp;g=Rj(c,'[^0-9,\\\\.]','');i=Sj(g,',',0);d=0;for(f=Xn(new Yn(a.e));wn(f.d);){e=ao(f);j=0;i.length>d&&(j=Qi(i[d]));h=new Et(e.f,e.e,j,e.d);jn(this.e,qj(e.f),h);++d}Ls(this);Ms(this)}\n\tfunction Dt(b,c,d,e,f){var g;this.e=b;this.f=c;try{this.d=new wt(d,e,f)}catch(a){a=Jg(a);if(be(a,7)){g=a;\"Group creation error: '\"+b+\"'='\"+d+\"': \"+qb(g);this.d=new wt('',e,f)}else throw Ig(a)}if(this.d.j)throw new Kt('Range formulas not allowed for groups')}\n\tfunction Xl(a){var b,c,d;if(rh(a,{l:0,m:0,h:0})){c=mh(a,{l:1755648,m:238,h:0});d=uh(a,{l:1755648,m:238,h:0})}else{b=Bh(a,1);c=mh(b,{l:877824,m:119,h:0});d=uh(b,{l:877824,m:119,h:0});d=kh(zh(d,1),lh(a,{l:1,m:0,h:0}))}return yh(zh(d,32),lh(c,{l:Zu,m:1023,h:0}))}\n\tfunction fs(a,b){if(gs(a,b))return 0;if(Lj(a.o,'C')){if(Lj(b.o,'C'))return a.d-b.d;return -1}if(Lj(a.o,'H')){if(Lj(b.o,'C'))return 1;if(Lj(b.o,'H'))return a.d-b.d;return -1}if(Lj(b.o,'H')||Lj(b.o,'C')){return 1}if(Lj(a.o,b.o))return a.d-b.d;return _j(a.o,b.o)}\n\tfunction pm(a,b){om();var c,d,e,f,g,h,i,j,k;if(b.g>a.g){h=a;a=b;b=h}if(b.g<63){return vm(a,b)}g=(a.g&-2)<<4;j=xl(a,g);k=xl(b,g);d=im(a,vl(j,g));e=im(b,vl(k,g));i=pm(j,k);c=pm(d,e);f=pm(im(j,d),im(e,k));f=dm(dm(f,i),c);f=vl(f,g);i=vl(i,g<<1);return dm(dm(i,f),c)}\n\tfunction dh(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return nj(c)}if(b==0&&d!=0&&c==0){return nj(d)+22}if(b!=0&&d==0&&c==0){return nj(b)+44}return -1}\n\tfunction Rg(a){var b=this;if(a=='$wnd'){return $wnd}else if(a===''){return b}if(a.substring(0,5)=='$wnd.'){b=$wnd;a=a.substring(5)}var c=a.split('.');!(c[0] in b)&&b.execScript&&b.execScript('var '+c[0]);for(var d;c.length&&(d=c.shift());){b[d]?(b=b[d]):(b=b[d]={})}return b}\n\tfunction Mk(a,b){var c;Hc(b);c=5-a.j;if(c==0){return a}if(c>0){if(c<Fk.length&&a.d+Gk[ie(c)]<54){return new Rk(a.k*Fk[ie(c)])}return new Tk(um((!a.f&&(a.f=Ml(a.k)),a.f),ie(c)))}if(a.d<54&&-c<Fk.length){return Yk(a.k,Fk[ie(-c)],b)}return Xk((!a.f&&(a.f=Ml(a.k)),a.f),xm(-c),b)}\n\tfunction Ps(a){var b,c,d;d='Element: '+a.d+' - symbol: '+a.n+' - exact mass: '+a.g+' - mass: '+a.f+' - name: '+a.j+' - nb isotope: '+a.e.e+'\\r\\n';for(c=Xn(new Yn(a.e));wn(c.d);){b=ao(c);d+='Number: '+b.f+' - mass: '+b.e+' - percentage: '+b.g+' - symbol: '+b.d+'\\r\\n'}return d}\n\tfunction ns(a,b,c,d){var e;if(c>d)throw new Kt('Error: minCount>maxCount');if(b==0){this.g=c;this.f=d;this.j=Ns(a);this.k=a.k;this.d=0;this.o=a.n;this.e=a.f;return}e=fn(a.e,new hj(b));if(!e)throw new Kt('Isotope not found');this.d=b;this.o=a.n;this.e=e.e;this.j=e.e;this.g=c;this.f=d}\n\tfunction Sl(a,b){var c,d,e,f,g;d=b>>5;b&=31;if(d>=a.g){return a.j<0?(jl(),dl):(jl(),il)}f=a.g-d;e=Ud(me,Yu,0,f+1,7,1);Tl(e,f,a.d,d,b);if(a.j<0){for(c=0;c<d&&a.d[c]==0;c++);if(c<d||b>0&&a.d[c]<<32-b!=0){for(c=0;c<f&&e[c]==-1;c++){e[c]=0}c==f&&++f;++e[c]}}g=new Bl(a.j,f,e);ml(g);return g}\n\tfunction mr(a,b,c,d){var e,f;if(!b){return c}else{e=a.e.ab(c.f,b.f);if(e==0){d.g=fo(b,c.g);d.e=true;return b}f=e<0?0:1;b.d[f]=mr(a,b.d[f],c,d);if(nr(b.d[f])){if(nr(b.d[1-f])){b.e=true;b.d[0].e=false;b.d[1].e=false}else{nr(b.d[f].d[f])?(b=ur(b,1-f)):nr(b.d[f].d[1-f])&&(b=tr(b,1-f))}}}return b}\n\tfunction Lc(a,b){var c,d,e,f;a=''+a;c=new vk(a.length+16*b.length);f=0;d=0;while(d<b.length){e=a.indexOf('%s',f);if(e==-1){break}sk(c,a.substr(f,e-f));rk(c,b[d++]);f=e+2}sk(c,Yj(a,f,a.length-f));if(d<b.length){c.d+=' [';rk(c,b[d++]);while(d<b.length){c.d+=', ';rk(c,b[d++])}c.d+=']'}return c.d}\n\tfunction jl(){jl=Ng;var a;el=new Al(1,1);gl=new Al(1,10);il=new Al(0,0);dl=new Al(-1,1);fl=Xd(Td(lf,1),Yu,5,0,[il,el,new Al(1,2),new Al(1,3),new Al(1,4),new Al(1,5),new Al(1,6),new Al(1,7),new Al(1,8),new Al(1,9),gl]);hl=Ud(lf,Yu,5,32,0,1);for(a=0;a<hl.length;a++){hl[a]=Nl(zh({l:1,m:0,h:0},a))}}\n\tfunction gu(){gu=Ng;fu=new Bp;kn(fu,'O',qj(0));kn(fu,'N',qj(1));kn(fu,'H',qj(-1));kn(fu,'C',qj(2));kn(fu,'F',qj(-1));kn(fu,'Cl',qj(-1));kn(fu,'Br',qj(-1));kn(fu,'I',qj(-1));kn(fu,'S',qj(0));kn(fu,'P',qj(1));kn(fu,'Li',qj(-1));kn(fu,'Na',qj(-1));kn(fu,'K',qj(-1));kn(fu,'Ca',qj(0));kn(fu,'Mg',qj(0))}\n\tfunction Cu(a,b,c){var d,e,f,g,h,i,j,k;h=new Tu;k=a.f.kb('referenceVersion');k!=null&&!Lj(k,'')&&(c=(Jt(),Jt(),Ht));if(c){i=new Nu;Qu(h,'elements',i.d);for(e=Xn(new Yn(c));wn(e.d);){d=ao(e);Mu(i,Os(d).d)}}if(b){j=new Nu;Qu(h,'groups',j.d);for(g=Xn(new Yn(b));wn(g.d);){f=ao(g);Mu(j,Ct(f).d)}}return h}\n\tfunction gt(b){var c,d,e;e=Sj(b,'/',0);if(e.length!=2)throw new Kt('Syntax error: bad fraction syntax: '+b);try{c=Ri(e[1]);if(c==0)throw new Kt('Syntax error: divide by zero: '+b);d=Ri(e[0]);return d/c}catch(a){a=Jg(a);if(be(a,20)){throw new Kt('Syntax error: bad fraction syntax: '+b)}else throw Ig(a)}}\n\tfunction om(){om=Ng;var a,b;lm=Ud(lf,Yu,5,32,0,1);mm=Ud(lf,Yu,5,32,0,1);nm=Xd(Td(me,1),Yu,0,7,[1,10,100,1000,10000,iv,jv,10000000,100000000,dv]);a={l:1,m:0,h:0};for(b=0;b<=18;b++){lm[b]=Nl(a);mm[b]=Nl(zh(a,b));a=vh(a,{l:5,m:0,h:0})}for(;b<mm.length;b++){lm[b]=tl(lm[b-1],lm[1]);mm[b]=tl(mm[b-1],(jl(),gl))}}\n\tfunction rm(a,b,c,d,e){var f,g,h,i;if(ge(a)===ge(b)&&d==e){ym(a,d,c);return}for(h=0;h<d;h++){g={l:0,m:0,h:0};f=a[h];for(i=0;i<e;i++){g=kh(kh(vh(lh(ph(f),{l:Zu,m:1023,h:0}),lh(ph(b[i]),{l:Zu,m:1023,h:0})),lh(ph(c[h+i]),{l:Zu,m:1023,h:0})),lh(ph(Eh(g)),{l:Zu,m:1023,h:0}));c[h+i]=Eh(g);g=Bh(g,32)}c[h+e]=Eh(g)}}\n\tfunction bt(a){var b,c,d,e;if(a.f)throw new Kt('Cannot calculate mass: this is a range formula');if(a.j)throw new Kt('The mass is not defined');d=0;for(c=new Kn(a.g);c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d+=pt(b)*b.k}return e=isNaN(d*jv)?d*jv:Yi(d*jv)?d*jv:d*jv==0?d*jv:Dh(oh(Math.round(d*jv))),e/jv}\n\tfunction ct(a){var b,c,d,e;if(a.f)throw new Kt('Cannot calculate mass: this is a range formula');if(a.j)throw new Kt('The mass is not clearly defined');b=0;for(d=new Kn(a.g);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));b+=qt(c)*c.k}return e=isNaN(b*kv)?b*kv:Yi(b*kv)?b*kv:b*kv==0?b*kv:Dh(oh(Math.round(b*kv))),e/kv}\n\tfunction tm(a,b){var c,d,e,f,g,h,i,j,k;j=a.j;if(j==0){return jl(),il}d=a.g;c=a.d;if(d==1){e=vh(lh(ph(c[0]),{l:Zu,m:1023,h:0}),lh(ph(b),{l:Zu,m:1023,h:0}));i=Eh(e);g=Eh(Bh(e,32));return g==0?new Al(j,i):new Bl(j,2,Xd(Td(me,1),Yu,0,7,[i,g]))}h=d+1;f=Ud(me,Yu,0,h,7,1);f[d]=sm(f,c,d,b);k=new Bl(j,h,f);ml(k);return k}\n\tfunction vm(a,b){var c,d,e,f,g,h,i,j,k,l,m;d=a.g;f=b.g;h=d+f;i=a.j!=b.j?-1:1;if(h==2){k=vh(lh(ph(a.d[0]),{l:Zu,m:1023,h:0}),lh(ph(b.d[0]),{l:Zu,m:1023,h:0}));m=Eh(k);l=Eh(Bh(k,32));return l==0?new Al(i,m):new Bl(i,2,Xd(Td(me,1),Yu,0,7,[m,l]))}c=a.d;e=b.d;g=Ud(me,Yu,0,h,7,1);qm(c,d,e,f,g);j=new Bl(i,h,g);ml(j);return j}\n\tfunction Kl(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;m=b.length;i=m;if(b.charCodeAt(0)==45){k=-1;l=1;--m}else{k=1;l=0}f=(Wl(),Vl)[10];e=~~(m/f);p=m%f;p!=0&&++e;h=Ud(me,Yu,0,e,7,1);c=Ul[8];g=0;n=l+(p==0?f:p);for(o=l;o<i;o=n,n=n+f){d=Ri(b.substr(o,n-o));j=(om(),sm(h,h,g,c));j+=hm(h,g,d);h[g++]=j}a.j=k;a.g=g;a.d=h;ml(a)}\n\tfunction Fh(a){var b,c,d,e,f;if(a.l==0&&a.m==0&&a.h==0){return '0'}if(a.h==_u&&a.m==0&&a.l==0){return '-9223372036854775808'}if(a.h>>19!=0){return '-'+Fh(wh(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=ph(dv);c=Xg(c,e,true);b=''+Eh(Tg);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d}\n\tfunction Os(a){var b,c,d,e,f,g;d=new Tu;Su(d,'symbol',a.n);Qu(d,'monoisotopicMass',new kd(a.g));Qu(d,'mass',new kd(a.f));Su(d,'name',a.j);Qu(d,'atomicNumber',new kd(a.d));f=new Nu;Qu(d,'isotopes',f.d);for(c=Xn(new Yn(a.e));wn(c.d);){b=ao(c);e=(g=new Tu,Qu(g,'mass',new kd(b.e)),Qu(g,'percentage',new kd(b.g)),g);Mu(f,e.d)}return d}\n\tfunction Hu(a,b){var c,d,e,f;f='';for(d=new Kn(a.d);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));e=is(c.d);(e==null?!!Fp(b.d,null):!(b.f.kb(e)===undefined))&&(Lj((e==null?Zm(Fp(b.d,null)):b.f.kb(e)).f.substr(0,1),'{')?(e=(e==null?Zm(Fp(b.d,null)):b.f.kb(e)).f):(e=(e==null?Zm(Fp(b.d,null)):b.f.kb(e)).e));c.e>1?(f+=e+c.e):c.e>0&&(f+=e)}return f}\n\tfunction Nt(a){var b,c,d,e,f;c=true;for(e=new Kn(a.g.g);e.d<e.f.K();){d=(Fc(e.d<e.f.K()),e.f.V(e.e=e.d++));if(c){a.j=new bu(a,d,a.f);zs(a.j.f,d.k);b=a.j;c=false}else{b=new bu(a,d,a.f);zs(b.f,d.k);ts(a.j.f,b.f)}if(d.e!=''){f=new Ti(xs(b.f));bn(a.n,f)?jn(a.n,f,fn(a.n,f)+','+d.e):jn(a.n,f,d.e)}}if(a.j.f.g==0)throw new Kt('Isotopic distribution: empty table')}\n\tfunction Ri(a){var b,c,d,e,f;if(a==null){throw new Fj('null')}d=a.length;e=d>0&&(a.charCodeAt(0)==45||a.charCodeAt(0)==43)?1:0;for(b=e;b<d;b++){if(oi(a.charCodeAt(b))==-1){throw new Fj('For input string: \"'+a+'\"')}}f=parseInt(a,10);c=f<fv;if(isNaN(f)){throw new Fj('For input string: \"'+a+'\"')}else if(c||f>Vu){throw new Fj('For input string: \"'+a+'\"')}return f}\n\tfunction nl(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;f=b.j;if(f==0){throw new _h('BigInteger divide by zero')}e=b.g;d=b.d;if(e==1){return _l(a,d[0],f)}m=a.d;n=a.g;c=n!=e?n>e?1:-1:gm(m,d,n);if(c<0){return Xd(Td(lf,1),Yu,5,0,[il,a])}o=a.j;h=n-e+1;i=o==f?1:-1;g=Ud(me,Yu,0,h,7,1);j=$l(g,h,m,n,d,e);k=new Bl(i,h,g);l=new Bl(o,e,j);ml(k);ml(l);return Xd(Td(lf,1),Yu,5,0,[k,l])}\n\tfunction Kk(a,b){var c,d,e,f,g,h;e=Ok(a);h=Ok(b);if(e==h){if(a.j==b.j&&a.d<54&&b.d<54){return a.k<b.k?-1:a.k>b.k?1:0}d=a.j-b.j;c=(a.g>0?a.g:wj((a.d-1)*lv)+1)-(b.g>0?b.g:wj((b.d-1)*lv)+1);if(c>d+1){return e}else if(c<d-1){return -e}else{f=(!a.f&&(a.f=Ml(a.k)),a.f);g=(!b.f&&(b.f=Ml(b.k)),b.f);d<0?(f=tl(f,xm(-d))):d>0&&(g=tl(g,xm(d)));return ll(f,g)}}else return e<h?-1:1}\n\tfunction _l(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=a.d;n=a.g;o=a.j;if(n==1){d=lh(ph(m[0]),{l:Zu,m:1023,h:0});e=lh(ph(b),{l:Zu,m:1023,h:0});f=mh(d,e);i=uh(d,e);o!=c&&(f=wh(f));o<0&&(i=wh(i));return Xd(Td(lf,1),Yu,5,0,[Nl(f),Nl(i)])}h=o==c?1:-1;g=Ud(me,Yu,0,n,7,1);j=Xd(Td(me,1),Yu,0,7,[am(g,m,n,b)]);k=new Bl(h,n,g);l=new Bl(o,1,j);ml(k);ml(l);return Xd(Td(lf,1),Yu,5,0,[k,l])}\n\tfunction cm(a,b,c,d,e){var f,g,h;f={l:0,m:0,h:0};g={l:0,m:0,h:0};for(h=0;h<d;h++){f=(om(),kh(vh(lh(ph(c[h]),{l:Zu,m:1023,h:0}),lh(ph(e),{l:Zu,m:1023,h:0})),lh(ph(Eh(f)),{l:Zu,m:1023,h:0})));g=kh(Ch(lh(ph(a[b+h]),{l:Zu,m:1023,h:0}),lh(f,{l:Zu,m:1023,h:0})),g);a[b+h]=Eh(g);g=Ah(g,32);f=Bh(f,32)}g=kh(Ch(lh(ph(a[b+d]),{l:Zu,m:1023,h:0}),f),g);a[b+d]=Eh(g);return Eh(Ah(g,32))}\n\tfunction bm(a,b){var c,d,e,f,g;d=lh(ph(b),{l:Zu,m:1023,h:0});if(rh(a,{l:0,m:0,h:0})){f=mh(a,d);g=uh(a,d)}else{c=Bh(a,1);e=ph(b>>>1);f=mh(c,e);g=uh(c,e);g=kh(zh(g,1),lh(a,{l:1,m:0,h:0}));if((b&1)!=0){if(th(f,g)){g=Ch(g,f)}else{if(th(Ch(f,g),d)){g=kh(g,Ch(d,f));f=Ch(f,{l:1,m:0,h:0})}else{g=kh(g,Ch(zh(d,1),f));f=Ch(f,{l:2,m:0,h:0})}}}}return yh(zh(g,32),lh(f,{l:Zu,m:1023,h:0}))}\n\tfunction nu(a,b,c){mu();var d,e,f,g,h,i,j,k,l,m,n,o;i=~~(~~((b.e-1)/b.d)/2);h=a[0][0];g=a[a.length-1][0];k=Eh(oh(Bj((g-h)/c*b.d)))+2*b.d*i+1;o=Ud(le,hv,0,k,7,1);for(m=0,n=a.length;m<n;++m){l=a[m];d=Eh(oh(Bj((l[0]-h)/c*b.d+b.d*i)));for(f=0;f<b.f.length;f++){o[d+f-b.d*i]+=b.f[f]*l[1]}}j=Vd(le,[Yu,hv],[28,0],7,[k,2],2);for(e=0;e<k;e++){j[e][0]=(e/b.d-i)*c+h;j[e][1]=o[e]}return j}\n\tfunction al(a,b,c){var d;d=0;switch(c.e){case 7:if(b!=0){throw new _h('Rounding necessary')}break;case 0:d=b==0?0:b<0?-1:1;break;case 2:d=(b==0?0:b<0?-1:1)>0?b==0?0:b<0?-1:1:0;break;case 3:d=(b==0?0:b<0?-1:1)<0?b==0?0:b<0?-1:1:0;break;case 4:(b<0?-b:b)>=5&&(d=b==0?0:b<0?-1:1);break;case 5:(b<0?-b:b)>5&&(d=b==0?0:b<0?-1:1);break;case 6:(b<0?-b:b)+a>5&&(d=b==0?0:b<0?-1:1);}return d}\n\tfunction Bt(a,b,c,d){var e,f,g,h,i,j,k,l,m;if(b.indexOf(',')==-1)throw new Kt('Syntax error: combinatorial');if(c!=d)throw new Kt('Combinatorial range formulae are not allowed');j=Sj(b,',',0);i=0;h=j.length;m=new pk('{');for(g=0;g<h-1;g++){l=Vj(j[g]);f=new wt(l,a.f,a.g);nk(m,ut(f)+',');i+=pt(f)}k=Vj(j[h-1]);e=new wt(k,a.f,a.g);nk(m,ut(e)+'}');i+=pt(e);i/=h;mt(a,new ls(m.d,i,c,d))}\n\tfunction xu(a){var b=a;if(a.search(/[A-Z]{3} [A-Z]{3} [A-Z]{3}/)>-1){var c=a.replace(/[\\r\\n]+/g,' ');c=c.replace(/(SEQRES|[0-9]+| [A-Z] | [0-9A-Z]{4-50})/g,'');var d=c.split(' ');b='H';for(var e=0;e<d.length;e++){b+=d[e].substr(0,1)+d[e].substr(1).toLowerCase()}b+='OH'}else a.search(/[A-Z]{3}/)>-1&&a.search(/[a-zA-Z][a-z0-9]/)==-1&&(b='H'+wu(b.replace(/[^A-Z]/g,''))+'OH');return b}\n\tfunction $g(a,b,c,d,e,f){var g,h,i,j,k,l,m;j=bh(b)-bh(a);g=zh(b,j);i=Wg(0,0,0);while(j>=0){h=ih(a,g);if(h){j<22?(i.l|=1<<j,undefined):j<44?(i.m|=1<<j-22,undefined):(i.h|=1<<j-44,undefined);if(a.l==0&&a.m==0&&a.h==0){break}}k=g.m;l=g.h;m=g.l;eh(g,l>>>1);g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ah(i);if(f){if(d){Tg=wh(a);e&&(Tg=Ch(Tg,(Lh(),Jh)))}else{Tg=Wg(a.l,a.m,a.h)}}return i}\n\tfunction Xh(){var a=navigator.userAgent.toLowerCase();var b=$doc.documentMode;if(function(){return a.indexOf('webkit')!=-1}())return 'safari';if(function(){return a.indexOf('msie')!=-1&&b>=10&&b<11}())return 'ie10';if(function(){return a.indexOf('msie')!=-1&&b>=9&&b<11}())return 'ie9';if(function(){return a.indexOf('msie')!=-1&&b>=8&&b<11}())return 'ie8';if(function(){return a.indexOf('gecko')!=-1||b>=11}())return 'gecko1_8';return 'unknown'}\n\tfunction xm(a){om();var b,c,d,e;b=ie(a);if(a<mm.length){return mm[b]}else if(a<=50){return ul((jl(),gl),b)}else if(a<=1000){return vl(ul(lm[1],b),b)}if(a>jv){throw new _h('power of ten too big')}if(a<=Vu){return vl(ul(lm[1],b),b)}d=ul(lm[1],Vu);e=d;c=oh(a-Vu);b=ie(a%Vu);while(qh(c,{l:Zu,m:511,h:0})){e=tl(e,d);c=Ch(c,{l:Zu,m:511,h:0})}e=tl(e,ul(lm[1],b));e=vl(e,Vu);c=oh(a-Vu);while(qh(c,{l:Zu,m:511,h:0})){e=vl(e,Vu);c=Ch(c,{l:Zu,m:511,h:0})}e=vl(e,b);return e}\n\tfunction Sj(l,a,b){var c=new RegExp(a,'g');var d=[];var e=0;var f=l;var g=null;while(true){var h=c.exec(f);if(h==null||f==''||e==b-1&&b>0){d[e]=f;break}else{d[e]=f.substring(0,h.index);f=f.substring(h.index+h[0].length,f.length);c.lastIndex=0;if(g==f){d[e]=f.substring(0,1);f=f.substring(1)}g=f;e++}}if(b==0&&l.length>0){var i=d.length;while(i>0&&d[i-1]==''){--i}i<d.length&&d.splice(i,d.length-i)}var j=Xj(d.length);for(var k=0;k<d.length;++k){j[k]=d[k]}return j}\n\tfunction im(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.j;i=b.j;if(i==0){return a}if(g==0){return b.j==0?b:new Bl(-b.j,b.g,b.d)}f=a.g;h=b.g;if(f+h==2){c=lh(ph(a.d[0]),{l:Zu,m:1023,h:0});d=lh(ph(b.d[0]),{l:Zu,m:1023,h:0});g<0&&(c=wh(c));i<0&&(d=wh(d));return Nl(Ch(c,d))}e=f!=h?f>h?1:-1:gm(a.d,b.d,f);if(e==-1){l=-i;k=g==i?jm(b.d,h,a.d,f):em(b.d,h,a.d,f)}else{l=g;if(g==i){if(e==0){return jl(),il}k=jm(a.d,f,b.d,h)}else{k=em(a.d,f,b.d,h)}}j=new Bl(l,k.length,k);ml(j);return j}\n\tfunction am(a,b,c,d){var e,f,g,h,i,j,k;j={l:0,m:0,h:0};f=lh(ph(d),{l:Zu,m:1023,h:0});for(h=c-1;h>=0;h--){k=yh(zh(j,32),lh(ph(b[h]),{l:Zu,m:1023,h:0}));if(rh(k,{l:0,m:0,h:0})){i=mh(k,f);j=uh(k,f)}else{e=Bh(k,1);g=ph(d>>>1);i=mh(e,g);j=uh(e,g);j=kh(zh(j,1),lh(k,{l:1,m:0,h:0}));if((d&1)!=0){if(th(i,j)){j=Ch(j,i)}else{if(th(Ch(i,j),f)){j=kh(j,Ch(f,i));i=Ch(i,{l:1,m:0,h:0})}else{j=kh(j,Ch(zh(f,1),i));i=Ch(i,{l:2,m:0,h:0})}}}}a[h]=Eh(lh(i,{l:Zu,m:1023,h:0}))}return Eh(j)}\n\tfunction yk(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;Ic(a,'src');Ic(c,'dest');m=jb(a);i=jb(c);Cc((m.j&4)!=0,'srcType is not an array');Cc((i.j&4)!=0,'destType is not an array');l=m.f;g=i.f;Cc((l.j&1)!=0?l==g:(g.j&1)==0,\"Array types don't match\");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw new ai}if(((l.j&1)==0||(l.j&4)!=0)&&m!=i){k=a;f=c;if(ge(a)===ge(c)&&b<d){b+=e;for(h=d+e;h-->d;){f[h]=k[--b]}}else{for(h=d+e;d<h;){f[d++]=k[b++]}}}else e>0&&Zd(a,b,c,d,e,true)}\n\tfunction Wl(){Wl=Ng;Ul=Xd(Td(me,1),Yu,0,7,[fv,1162261467,nv,1220703125,362797056,1977326743,nv,387420489,dv,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,nv,1291467969,1544804416,1838265625,60466176]);Vl=Xd(Td(me,1),Yu,0,7,[-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])}\n\tfunction Pk(a){var b,c,d,e,f;if(a.n!=null){return a.n}if(a.d<32){a.n=Yl(oh(a.k),ie(a.j));return a.n}e=Zl((!a.f&&(a.f=Ml(a.k)),a.f),0);if(a.j==0){return e}b=(!a.f&&(a.f=Ml(a.k)),a.f).j<0?2:1;c=e.length;d=-a.j+c-b;f=new uk;f.d+=e;if(a.j>0&&d>=-6){if(d>=0){tk(f,c-ie(a.j),'.')}else{f.d=Uj(f.d,0,b-1)+'0.'+Tj(f.d,b-1);tk(f,b+1,fk(Ck,0,-ie(d)-1))}}else{if(c-b>=1){f.d=Uj(f.d,0,b)+'.'+Tj(f.d,b);++c}f.d=Uj(f.d,0,c)+'E'+Tj(f.d,c);d>0&&tk(f,++c,'+');tk(f,++c,''+Fh(oh(d)))}a.n=f.d;return a.n}\n\tfunction Xk(a,b,c){var d,e,f,g,h,i,j;f=nl(a,b);g=f[0];i=f[1];if(i.j==0){return new Tk(g)}j=a.j*b.j;if(Ol(b)<54){h=sl(i);e=sl(b);d=sh(zh(sh(h,{l:0,m:0,h:0})?wh(h):h,1),sh(e,{l:0,m:0,h:0})?wh(e):e)?-1:qh(zh(sh(h,{l:0,m:0,h:0})?wh(h):h,1),sh(e,{l:0,m:0,h:0})?wh(e):e)?1:0;d=al(yl(g,0)?1:0,j*(5+d),c)}else{d=ll(wl(i.j<0?new Bl(1,i.g,i.d):i),b.j<0?new Bl(1,b.g,b.d):b);d=al(yl(g,0)?1:0,j*(5+d),c)}if(d!=0){if(Ol(g)<54){return cl(kh(sl(g),ph(d)))}g=dm(g,Nl(ph(d)));return new Tk(g)}return new Tk(g)}\n\tfunction Pt(b){var c,d,e;if(b.j.f.g==0)throw new vb('No isotopic distribution data');or(b.j.f,new Ti(Co(gr(b.j.f)).d-2),new Ti(0));or(b.j.f,new Ti(Co(hr(b.j.f)).d+2),new Ti(0));d=new Bp;kn(d,'Resolution',b.e+'');kn(d,'Threshold',b.d+'');try{if(b.g.g.e.length==1){e=To(b.g.g,0);kn(d,'Monoisotopic mass',qt(e)+'');kn(d,'Molecular weight',pt(e)+'');!!iu(e,null)&&kn(d,'Unsaturation',iu(e,null)+'')}}catch(a){a=Jg(a);if(be(a,7)){c=a;pb(c)}else throw Ig(a)}return Ds(b.j.f,b.g+' - resolution: '+b.e,b.n,d)}\n\tfunction bk(a,b,c){if(c<128){a[b]=he(c&127);return 1}else if(c<2048){a[b++]=he(c>>6&31|192);a[b]=he(c&63|128);return 2}else if(c<ev){a[b++]=he(c>>12&15|224);a[b++]=he(c>>6&63|128);a[b]=he(c&63|128);return 3}else if(c<2097152){a[b++]=he(c>>18&7|240);a[b++]=he(c>>12&63|128);a[b++]=he(c>>6&63|128);a[b]=he(c&63|128);return 4}else if(c<67108864){a[b++]=he(c>>24&3|248);a[b++]=he(c>>18&63|128);a[b++]=he(c>>12&63|128);a[b++]=he(c>>6&63|128);a[b]=he(c&63|128);return 5}throw new ej('Character out of range: '+c)}\n\tfunction dm(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.j;i=b.j;if(g==0){return b}if(i==0){return a}f=a.g;h=b.g;if(f+h==2){c=lh(ph(a.d[0]),{l:Zu,m:1023,h:0});d=lh(ph(b.d[0]),{l:Zu,m:1023,h:0});if(g==i){k=kh(c,d);o=Eh(k);n=Eh(Bh(k,32));return n==0?new Al(g,o):new Bl(g,2,Xd(Td(me,1),Yu,0,7,[o,n]))}return Nl(g<0?Ch(d,c):Ch(c,d))}else if(g==i){m=g;l=f>=h?em(a.d,f,b.d,h):em(b.d,h,a.d,f)}else{e=f!=h?f>h?1:-1:gm(a.d,b.d,f);if(e==0){return jl(),il}if(e==1){m=g;l=jm(a.d,f,b.d,h)}else{m=i;l=jm(b.d,h,a.d,f)}}j=new Bl(m,l.length,l);ml(j);return j}\n\tfunction fm(a,b,c,d,e){var f,g;f=kh(lh(ph(b[0]),{l:Zu,m:1023,h:0}),lh(ph(d[0]),{l:Zu,m:1023,h:0}));a[0]=Eh(f);f=Ah(f,32);if(c>=e){for(g=1;g<e;g++){f=kh(f,kh(lh(ph(b[g]),{l:Zu,m:1023,h:0}),lh(ph(d[g]),{l:Zu,m:1023,h:0})));a[g]=Eh(f);f=Ah(f,32)}for(;g<c;g++){f=kh(f,lh(ph(b[g]),{l:Zu,m:1023,h:0}));a[g]=Eh(f);f=Ah(f,32)}}else{for(g=1;g<c;g++){f=kh(f,kh(lh(ph(b[g]),{l:Zu,m:1023,h:0}),lh(ph(d[g]),{l:Zu,m:1023,h:0})));a[g]=Eh(f);f=Ah(f,32)}for(;g<e;g++){f=kh(f,lh(ph(d[g]),{l:Zu,m:1023,h:0}));a[g]=Eh(f);f=Ah(f,32)}}xh(f,{l:0,m:0,h:0})&&(a[g]=Eh(f))}\n\tfunction ym(a,b,c){var d,e,f,g,h;for(f=0;f<b;f++){d={l:0,m:0,h:0};for(h=f+1;h<b;h++){d=kh(kh(vh(lh(ph(a[f]),{l:Zu,m:1023,h:0}),lh(ph(a[h]),{l:Zu,m:1023,h:0})),lh(ph(c[f+h]),{l:Zu,m:1023,h:0})),lh(ph(Eh(d)),{l:Zu,m:1023,h:0}));c[f+h]=Eh(d);d=Bh(d,32)}c[f+b]=Eh(d)}Rl(c,c,b<<1);d={l:0,m:0,h:0};for(e=0,g=0;e<b;++e,g++){d=kh(kh(vh(lh(ph(a[e]),{l:Zu,m:1023,h:0}),lh(ph(a[e]),{l:Zu,m:1023,h:0})),lh(ph(c[g]),{l:Zu,m:1023,h:0})),lh(ph(Eh(d)),{l:Zu,m:1023,h:0}));c[g]=Eh(d);d=Bh(d,32);++g;d=kh(d,lh(ph(c[g]),{l:Zu,m:1023,h:0}));c[g]=Eh(d);d=Bh(d,32)}return c}\n\tfunction vh(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;c=a.l&8191;d=a.l>>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Zu;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Zu;u+=p>>22;p&=Zu;u&=$u;return Wg(m,p,u)}\n\tfunction lt(b,c,d,e,f,g){var h,i,j,k,l,m;if(Lj(c,'Zcharge')){b.d+=d;return}if(c.charCodeAt(0)==91){h=1;while(pi(c.charCodeAt(h)))++h;if(f==0){try{f=Ri(c.substr(1,h-1))}catch(a){a=Jg(a);if(be(a,7)){throw new Kt('Bad isotope syntax')}else throw Ig(a)}}c=Uj(c,h,c.length-1)}i=gn(b.f,c);if(!i){l=gn(b.g,c);if(!l)throw new Kt('Unrecognized symbol: '+c);if(f!=0)throw new Kt('Syntax error: cannot specify isotopes for groups');if(g){k=Ho(new Io(l.d.n));while(Hn(k.d.d)){j=Mo(k);m=new ms(j);m.g*=d;m.f*=e;mt(b,m)}}else{mt(b,new os(l,d,e))}}else{mt(b,new ns(i,f,d,e))}}\n\tfunction Wh(a){Vh.call(this,''+('Possible problem with your *.gwt.xml module file.\\nThe compile time user.agent value (safari) does not match the runtime user.agent value ('+a+').\\n'+'Expect more errors.'),be('Possible problem with your *.gwt.xml module file.\\nThe compile time user.agent value (safari) does not match the runtime user.agent value ('+a+').\\n'+'Expect more errors.',9)?'Possible problem with your *.gwt.xml module file.\\nThe compile time user.agent value (safari) does not match the runtime user.agent value ('+a+').\\n'+'Expect more errors.':null)}\n\tfunction Vt(a,b){var c,d,e,f,g,h,i,j,k,l,m;m=new yt(new du(a));Km(m,b);j=1;for(e=Ho(new Io(m.n));Hn(e.d.d);){c=Mo(e);h=gn(a.d,c.o);h.e.e>j&&(j=h.e.e)}k=2*j*xj(st(m)+1)/xj(2);l=a.g.e/(k*4);$t(a,l);or(a.f,new Ti(0),new Ti(1));for(d=Ho(new Io(m.n));Hn(d.d.d);){c=Mo(d);h=gn(a.d,c.o);if(c.d!=0){f=new Qs(c.e,c.e,h.n,h.j,h.d);h=f}if(h.e.e==0){i=new Et(ie(h.f+0.5),h.f,1,h.n);jn(h.e,new hj(i.f),i)}if(hs(c)<0){throw new Kt('Number of element under 0')}else if(hs(c)==0);else if(hs(c)==1){a.f=Wt(a,new au(a.g,h,a.d))}else{g=new au(a.g,h,a.d);$t(g,a.e);a.f=Wt(a,Ut(g,hs(c)))}}}\n\tfunction Xg(a,b,c){var d,e,f,g,h,i;if(b.l==0&&b.m==0&&b.h==0){throw new _h('divide by zero')}if(a.l==0&&a.m==0&&a.h==0){c&&(Tg=Wg(0,0,0));return Wg(0,0,0)}if(b.h==_u&&b.m==0&&b.l==0){return Yg(a,c)}i=false;if(b.h>>19!=0){b=wh(b);i=true}g=dh(b);f=false;e=false;d=false;if(a.h==_u&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=Vg((Lh(),Hh));d=true;i=!i}else{h=Ah(a,g);i&&ah(h);c&&(Tg=Wg(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=wh(a);d=true;i=!i}if(g!=-1){return Zg(a,g,i,f,c)}if(!rh(a,b)){c&&(f?(Tg=wh(a)):(Tg=Wg(a.l,a.m,a.h)));return Wg(0,0,0)}return $g(d?a:Wg(a.l,a.m,a.h),b,i,f,e,c)}\n\tfunction wc(a,b){var c,d,e,f,g,h,i,j,k;if(!b.length){return a.u('Unknown','anonymous',-1,-1)}k=Vj(b);Lj(k.substr(0,3),'at ')&&(k=Yj(k,3,k.length-3));k=k.replace(/\\[.*?\\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=Vj(Yj(k,g+1,k.length-(g+1)));k=Vj(k.substr(0,g))}}else{c=k.indexOf(')',g);j=k.substr(g+1,c-(g+1));k=Vj(k.substr(0,g))}g=Nj(k,ck(46));g!=-1&&(k=Yj(k,g+1,k.length-(g+1)));(!k.length||Lj(k,'Anonymous function'))&&(k='anonymous');h=Oj(j,ck(58));e=Pj(j,ck(58),h-1);i=-1;d=-1;f='Unknown';if(h!=-1&&e!=-1){f=j.substr(0,e);i=rc(j.substr(e+1,h-(e+1)));d=rc(Yj(j,h+1,j.length-(h+1)))}return a.u(f,k,i,d)}\n\tfunction rr(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!a.f){return false}g=null;m=null;i=new Ir(null,null);e=1;i.d[1]=a.f;l=i;while(l.d[e]){j=e;h=m;m=l;l=l.d[e];d=a.e.ab(b,l.f);e=d<0?0:1;d==0&&(!c.f||Rq(l.g,c.g))&&(g=l);if(!(!!l&&l.e)&&!nr(l.d[e])){if(nr(l.d[1-e])){m=m.d[j]=ur(l,e)}else if(!nr(l.d[1-e])){n=m.d[1-j];if(n){if(!nr(n.d[1-j])&&!nr(n.d[j])){m.e=false;n.e=true;l.e=true}else{f=h.d[1]==m?1:0;nr(n.d[j])?(h.d[f]=tr(m,j)):nr(n.d[1-j])&&(h.d[f]=ur(m,j));l.e=h.d[f].e=true;h.d[f].d[0].e=false;h.d[f].d[1].e=false}}}}}if(g){c.e=true;c.g=g.g;if(l!=g){k=new Ir(l.f,l.g);sr(a,i,g,k);m==g&&(m=k)}m.d[m.d[1]==l?1:0]=l.d[!l.d[0]?1:0];--a.g}a.f=i.d[1];!!a.f&&(a.f.e=false);return c.e}\n\tfunction Xt(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;f=b.f.d;a.f.g>f&&Bs(a.f);b.f.g>f&&Bs(b.f);k=new Hs;j=(new Hr(b.f)).d.$();e=0;while(Hn(j.d)){i=j.e=In(j.d);h=i.X();g=i.Y();q=(new Hr(a.f)).d.$();while(Hn(q.d)){p=q.e=In(q.d);o=p.X();n=p.Y();m=o.d+h.d;l=n.d*g.d;d=Ym(jr(k,new Ti(m)));c=Ym(ir(k,new Ti(m)));if(!!d&&Si(d,new Ti(m))){l+=vo(k,c).d}else{!!d&&tj(d.d-m)>a.e&&(d=null);!!c&&tj(c.d-m)>a.e&&(c=null);!!c&&!!d&&(tj(c.d-m)<tj(d.d-m)?(d=null):(c=null));if(c){if(vo(k,c).d>l){l+=vo(k,c).d;m=c.d}else{l+=vo(k,c).d;pr(k,c)}}else if(d){if(vo(k,d).d>l){l+=vo(k,d).d;m=d.d}else{l+=vo(k,d).d;pr(k,d)}}}l>a.g.d/iv&&or(k,new Ti(m),new Ti(l));l>e&&(e=l)}k.g>f&&Bs(k)}zs(k,1/e);return k}\n\tfunction xt(a,b,c,d,e){var f,g,h,i,j,k,l;as.call(this);this.f=b;this.g=c;this.k=d;h=a.indexOf('$');if(h>-1){this.e=Yj(a,h+1,a.length-(h+1));a=a.substr(0,h)}g=new RegExp('(\\\\([0-9]+[+-]\\\\))');for(j=g.exec(a);j;j=g.exec(a)){f=j[0];l=Ri(Rj(Rj(Rj(f,'[^0-9+-]',''),'^([0-9])([+-])$','$2$1'),'^[+]',''));a=a.replace(g,'(Zcharge'+l+')')}g=new RegExp('(\\\\([+-][0-9]+\\\\))');for(k=g.exec(a);k;k=g.exec(a)){f=k[0];l=Ri(Rj(Rj(Rj(f,'[^0-9+-]',''),'^([0-9])([+-])$','$1$2'),'^[+]',''));a=a.replace(g,'(Zcharge'+l+')')}g=new RegExp('([+-])(?![0-9])');for(i=g.exec(a);i;i=g.exec(a)){f=i[0];Lj(f,'+')?(a=a.replace(g,'Zcharge')):(a=a.replace(g,'(Zcharge-1)'))}Qj(a,'[a-zA-Z][0-9]+-[0-9]')&&(this.j=true);a.indexOf('}')!=-1;At(this,a,e)}\n\tfunction Yt(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;f=b.f.d;a.f.g>f&&Bs(a.f);b.f.g>f&&Bs(b.f);k=new Hs;j=(new Hr(b.f)).d.$();e=0;while(Hn(j.d)){i=j.e=In(j.d);h=i.X();g=i.Y();q=(new Hr(a.f)).d.$();while(Hn(q.d)){p=q.e=In(q.d);o=p.X();n=p.Y();m=o.d+h.d;l=n.d*g.d;d=Ym(jr(k,new Ti(m)));c=Ym(ir(k,new Ti(m)));if(!!d&&Si(d,new Ti(m))){l+=vo(k,c).d}else{!!d&&tj(d.d-m)>a.e&&(d=null);!!c&&tj(c.d-m)>a.e&&(c=null);if(!!c&&!!d){m=(m*l+c.d*vo(k,c).d+d.d*vo(k,d).d)/(l+vo(k,c).d+vo(k,d).d);l+=vo(k,c).d+vo(k,d).d;pr(k,c);pr(k,d)}else if(c){m=(m*l+c.d*vo(k,c).d)/(l+vo(k,c).d);l+=vo(k,c).d;pr(k,c)}else if(d){m=(m*l+d.d*vo(k,d).d)/(l+vo(k,d).d);l+=vo(k,d).d;pr(k,d)}}l>a.g.d/iv&&or(k,new Ti(m),new Ti(l));l>e&&(e=l)}k.g>f&&Bs(k)}zs(k,1/e);return k}\n\tfunction Jk(){Jk=Ng;var a,b,c;new Sk({l:1,m:0,h:0},0);new Sk({l:10,m:0,h:0},0);new Sk({l:0,m:0,h:0},0);Bk=Ud(kf,Yu,14,11,0,1);Ck=Ud(ke,Yu,0,100,7,1);Dk=Xd(Td(le,1),hv,0,7,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,2384185791015625]);Ek=Ud(me,Yu,0,Dk.length,7,1);Fk=Xd(Td(le,1),hv,0,7,[1,10,100,1000,10000,iv,jv,10000000,100000000,dv,kv,100000000000,1000000000000,10000000000000,100000000000000,1000000000000000,10000000000000000]);Gk=Ud(me,Yu,0,Fk.length,7,1);Hk=Ud(kf,Yu,14,11,0,1);a=0;for(;a<Hk.length;a++){Bk[a]=new Sk(ph(a),0);Hk[a]=new Sk({l:0,m:0,h:0},a);Ck[a]=48}for(;a<Ck.length;a++){Ck[a]=48}for(c=0;c<Ek.length;c++){Ek[c]=Uk(Dk[c])}for(b=0;b<Gk.length;b++){Gk[b]=Uk(Fk[b])}om()}\n\tfunction Lk(a,b){var c,d,e,f,g,h,i,j;c=0;g=0;f=b.length;j=new vk(b.length);if(0<f&&b.charCodeAt(0)==43){++g;++c;if(g<f&&(b.charCodeAt(g)==43||b.charCodeAt(g)==45)){throw new Fj('For input string: \"'+b+'\"')}}while(g<f&&b.charCodeAt(g)!=46&&b.charCodeAt(g)!=101&&b.charCodeAt(g)!=69){++g}Yh(j,b,c,g);if(g<f&&b.charCodeAt(g)==46){++g;c=g;while(g<f&&b.charCodeAt(g)!=101&&b.charCodeAt(g)!=69){++g}a.j=g-c;Yh(j,b,c,g)}else{a.j=0}if(g<f&&(b.charCodeAt(g)==101||b.charCodeAt(g)==69)){++g;c=g;if(g<f&&b.charCodeAt(g)==43){++g;g<f&&b.charCodeAt(g)!=45&&++c}h=b.substr(c,f-c);a.j=a.j-Ri(h);if(a.j!=ie(a.j)){throw new Fj('Scale out of range.')}}i=j.d;if(i.length<16){a.k=_k(i);if(Zi(a.k)){throw new Fj('For input string: \"'+b+'\"')}a.d=Uk(a.k)}else{Nk(a,new El(i))}a.g=j.d.length;for(e=0;e<j.d.length;++e){d=Kj(j.d,e);if(d!=45&&d!=48){break}--a.g}a.g==0&&(a.g=1)}\n\tfunction zu(a,b){!b&&(b={a:false,b:true,c:false,x:false,y:true,z:false});var c=[];var d=a.replace(/([a-z\\)])([A-Z])/g,'$1 $2').split(/ /);if(b.a){var e='';for(var f=0;f<d.length-1;f++){e+=d[f];c.push(e+'C-1O-1(+1)$a'+(f+1))}}if(b.b){var g='';for(var f=0;f<d.length-1;f++){g+=d[f];c.push(g+'(+1)$b'+(f+1))}}if(b.c){var h='';for(var f=0;f<d.length-1;f++){h+=d[f];c.push(h+'NH3(+1)$c'+(f+1))}}if(b.x){var i='';for(var f=d.length-1;f>=0;f--){i=d[f]+i;f<d.length-1&&c.push('CO(+1)'+i+'$x'+(d.length-f-1))}}if(b.y){var j='';for(var f=d.length-1;f>=0;f--){j=d[f]+j;f<d.length-1&&c.push('H2(+1)'+j+'$y'+(d.length-f-1))}}if(b.z){var k='';for(var f=d.length-1;f>=0;f--){k=d[f]+k;f<d.length-1&&c.push('N-1H-1(+1)'+k+'$z'+(d.length-f-1))}}if(b.i){for(var f=d.length-1;f>0;f--){d[f].match(/^[A-Z][a-z][a-z].*$/)&&c.push(d[f]+'HC-1O-1(+1)$i:'+d[f])}}c.length==0&&(c=c.concat([a]));return c}\n\tfunction $l(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;q=Ud(me,Yu,0,d+1,7,1);r=Ud(me,Yu,0,f+1,7,1);i=mj(e[f-1]);if(i!=0){Ql(r,e,0,i);Ql(q,c,0,i)}else{yk(c,0,q,0,d);yk(e,0,r,0,f)}j=r[f-1];l=b-1;m=d;while(l>=0){if(q[m]==j){k=-1}else{s=kh(zh(lh(ph(q[m]),{l:Zu,m:1023,h:0}),32),lh(ph(q[m-1]),{l:Zu,m:1023,h:0}));v=bm(s,j);k=Eh(v);u=Eh(Ah(v,32));if(k!=0){t=false;++k;do{--k;if(t){break}o=vh(lh(ph(k),{l:Zu,m:1023,h:0}),lh(ph(r[f-2]),{l:Zu,m:1023,h:0}));w=kh(zh(ph(u),32),lh(ph(q[m-2]),{l:Zu,m:1023,h:0}));p=kh(lh(ph(u),{l:Zu,m:1023,h:0}),lh(ph(j),{l:Zu,m:1023,h:0}));mj(Eh(Bh(p,32)))<32?(t=true):(u=Eh(p))}while(qh(Gh(o,{l:0,m:0,h:_u}),Gh(w,{l:0,m:0,h:_u})))}}if(k!=0){g=cm(q,m-f,r,f,k);if(g!=0){--k;h={l:0,m:0,h:0};for(n=0;n<f;n++){h=kh(h,kh(lh(ph(q[m-f+n]),{l:Zu,m:1023,h:0}),lh(ph(r[n]),{l:Zu,m:1023,h:0})));q[m-f+n]=Eh(h);h=Bh(h,32)}}}a[l]=k;--m;--l}if(i!=0){Tl(r,f,q,0,i);return r}yk(q,0,r,0,f);return q}\n\tfunction Fb(){var a=['\\\\u0000','\\\\u0001','\\\\u0002','\\\\u0003','\\\\u0004','\\\\u0005','\\\\u0006','\\\\u0007','\\\\b','\\\\t','\\\\n','\\\\u000B','\\\\f','\\\\r','\\\\u000E','\\\\u000F','\\\\u0010','\\\\u0011','\\\\u0012','\\\\u0013','\\\\u0014','\\\\u0015','\\\\u0016','\\\\u0017','\\\\u0018','\\\\u0019','\\\\u001A','\\\\u001B','\\\\u001C','\\\\u001D','\\\\u001E','\\\\u001F'];a[34]='\\\\\"';a[92]='\\\\\\\\';a[173]='\\\\u00ad';a[1536]='\\\\u0600';a[1537]='\\\\u0601';a[1538]='\\\\u0602';a[1539]='\\\\u0603';a[1757]='\\\\u06dd';a[1807]='\\\\u070f';a[6068]='\\\\u17b4';a[6069]='\\\\u17b5';a[8203]='\\\\u200b';a[8204]='\\\\u200c';a[8205]='\\\\u200d';a[8206]='\\\\u200e';a[8207]='\\\\u200f';a[8232]='\\\\u2028';a[8233]='\\\\u2029';a[8234]='\\\\u202a';a[8235]='\\\\u202b';a[8236]='\\\\u202c';a[8237]='\\\\u202d';a[8238]='\\\\u202e';a[8288]='\\\\u2060';a[8289]='\\\\u2061';a[8290]='\\\\u2062';a[8291]='\\\\u2063';a[8292]='\\\\u2064';a[8298]='\\\\u206a';a[8299]='\\\\u206b';a[8300]='\\\\u206c';a[8301]='\\\\u206d';a[8302]='\\\\u206e';a[8303]='\\\\u206f';a[65279]='\\\\ufeff';a[65529]='\\\\ufff9';a[65530]='\\\\ufffa';a[65531]='\\\\ufffb';return a}\n\tfunction Yl(a,b){Wl();var c,d,e,f,g,h,i,j,k,l,m,n;h=sh(a,{l:0,m:0,h:0});h&&(a=wh(a));if(nh(a,{l:0,m:0,h:0})){switch(b){case 0:return '0';case 1:return '0.0';case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:l=new uk;b<0?(l.d+='0E+',l):(l.d+='0E',l);l.d+=b==fv?'2147483648':''+-b;return l.d;}}j=Ud(ke,Yu,0,19,7,1);c=18;n=a;do{i=n;n=mh(n,{l:10,m:0,h:0});j[--c]=Eh(kh({l:48,m:0,h:0},Ch(i,vh(n,{l:10,m:0,h:0}))))&gv}while(xh(n,{l:0,m:0,h:0}));d=Ch(Ch(Ch({l:18,m:0,h:0},ph(c)),ph(b)),{l:1,m:0,h:0});if(b==0){h&&(j[--c]=45);return fk(j,c,18-c)}if(b>0&&rh(d,{l:4194298,m:Zu,h:$u})){if(rh(d,{l:0,m:0,h:0})){e=c+Eh(d);for(g=17;g>=e;g--){j[g+1]=j[g]}j[++e]=46;h&&(j[--c]=45);return fk(j,c,18-c+1)}for(f=2;sh(ph(f),kh(wh(d),{l:1,m:0,h:0}));f++){j[--c]=48}j[--c]=46;j[--c]=48;h&&(j[--c]=45);return fk(j,c,18-c)}m=c+1;k=new vk;h&&(k.d+='-',k);if(18-m>=1){qk(k,j[c]);k.d+='.';k.d+=fk(j,c+1,18-c-1)}else{k.d+=fk(j,c,18-c)}k.d+='E';qh(d,{l:0,m:0,h:0})&&(k.d+='+',k);k.d+=''+Fh(d);return k.d}\n\tfunction tu(a){var b=(pu==null&&(pu=[{id:1,name:'alanine',aa3:'Ala',aa1:'A'},{id:2,name:'arginine',aa3:'Arg',aa1:'R'},{id:3,name:'asparagine',aa3:'Asn',aa1:'N'},{id:4,name:'aspartic acid',aa3:'Asp',aa1:'D'},{id:5,name:'asparagine or aspartic acid',aa3:'Asx',aa1:'B'},{id:6,name:'cysteine',aa3:'Cys',aa1:'C'},{id:7,name:'glutamic acid',aa3:'Glu',aa1:'E'},{id:8,name:'glutamine',aa3:'Gln',aa1:'Q'},{id:9,name:'glutamine or glutamic acid',aa3:'Glx',aa1:'Z'},{id:10,name:'glycine',aa3:'Gly',aa1:'G'},{id:11,name:'histidine',aa3:'His',aa1:'H'},{id:12,name:'isoleucine',aa3:'Ile',aa1:'I'},{id:13,name:'leucine',aa3:'Leu',aa1:'L'},{id:14,name:'lysine',aa3:'Lys',aa1:'K'},{id:15,name:'methionine',aa3:'Met',aa1:'M'},{id:16,name:'phenylalanine',aa3:'Phe',aa1:'F'},{id:17,name:'proline',aa3:'Pro',aa1:'P'},{id:18,name:'serine',aa3:'Ser',aa1:'S'},{id:19,name:'threonine',aa3:'Thr',aa1:'T'},{id:20,name:'tryptophan',aa3:'Trp',aa1:'W'},{id:21,name:'tyrosine',aa3:'Tyr',aa1:'Y'},{id:22,name:'valine',aa3:'Val',aa1:'V'}]),pu);for(var c=0;c<b.length;c++){if(b[c].aa1==a){return b[c].aa3}}return a}\n\tfunction ft(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;b=Rj(b,' ','');b=Rj(b,'^([0-9]+[A-Z][a-z]?)$','[$1]');Qj(b,'.*[a-zA-Z][0-9]+-[0-9].*')&&(a.f=true);r=new RegExp('([A-Z][a-z]?\\\\{[0-9.,]*\\\\})');for(t=r.exec(b);t;t=r.exec(b)){h=t[1];p=(v=at(h),w=Rj(h,'\\\\{.*',''),cn(a.d,v)||kn(a.d,v,new Ss(gn(a.d,w),v,h)),v);b=b.replace(r,p)}r=new RegExp('(\\\\{[A-Za-z0-9]*\\\\})');for(s=r.exec(b);s;s=r.exec(b)){h=s[1];q=(A=at(h),B=Rj(h,'[\\\\{\\\\}]',''),cn(a.e,A)||kn(a.e,A,new Dt(A,h,B,a.d,a.e)),A);b=b.replace(r,q)}b.indexOf('}')!=-1;g=Sj(b,'\\\\.',0);n=1;o=false;for(e=0,f=g.length;e<f;++e){d=g[e];if(et(d)){if(o)throw new Kt(\"Syntax error: 'number.number.'\");n=Qi(d);o=true;continue}u=d.indexOf('/');if(u!=-1){if(o)throw new Kt(\"Syntax error: 'number.number/number'\");k=u+1;l=d.length;while(pi(Kj(d,k++))){if(k>=l)break}k<l&&--k;n=gt(d.substr(0,k));o=true;if(k>=l)continue;else d=Yj(d,k,d.length-k)}j=0;for(;j<d.length;j++){if(!pi(d.charCodeAt(j)))break}if(j>0){m=Qi(d.substr(0,j));d=Yj(d,j,d.length-j);o?(n+=m/Aj(10,j)):(n=m)}i=new xt(d,a.d,a.e,n,c);i.k==0&&(a.j=true);i.j&&(a.f=true);So(a.g,i);n=1;o=false}}\n\tfunction Ds(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;t=new ok;s=a.g;s>~~(a.d/2)&&(s=~~(a.d/2));t.d+='##TITLE= '+b+'\\r\\n'+'##JCAMP-DX= 5.00\\r\\n'+'##DATA TYPE= MASS SPECTRUM\\r\\n'+'##DATA CLASS= PEAK TABLE\\r\\n'+'##ORIGIN= Generated spectrum based on ChemCalc www.chemcalc.org\\r\\n'+'##SPECTROMETER/DATA SYSTEM= Based on ChemCalc isotopic distribution calculator\\r\\n'+'##XUNITS= M/Z\\r\\n'+'##YUNITS= RELATIVE ABUNDANCE\\r\\n'+'##NPOINTS=         \\r\\n';e=t.d.length;t.d+='##MAXY= 100\\r\\n##MINY= 0\\r\\n';for(n=On(new Pn(d));wn(n.d);){m=Tn(n);nk(t,'##$'+m+'='+(m==null?Zm(Fp(d.d,null)):d.f.kb(m))+'\\r\\n')}t.d+='##PEAK TABLE= (XY..XY)\\r\\n';p=0;l=(new Hr(a)).d.$();o=(new Pn(c)).L(Ud(Re,Yu,6,(new Pn(c)).d.e,0,1));lp(o,0,o.length,(rp(),rp(),qp));g=0;q=tv;j=true;f=0;r=false;w='';while(Hn(l.d)&&f<s){++f;h=l.e=In(l.d);u=h.X().d;v=h.Y().d;v<1.0E-9&&(v=0);if(v!=0&&w.length>0){t.d+=w;++p;w=''}i=true;for(k=g;k<o.length;k++){if(!Hn(l.d)||tj(o[k].d-q)<tj(o[k].d-u)){if(i){t.d+='  $$ ';i=false}else{t.d+=','}nk(t,fn(c,o[k]));++g}else{break}}q=u;if(j){j=false;nk(t,Cs(u)+', '+Cs(v*100));++p}else{if(!r||v!=0){t.d+='\\r\\n';nk(t,Cs(u)+', '+Cs(v*100));++p}else{w='\\r\\n'+Cs(u)+', '+Cs(0)}v==0?(r=true):(r=false)}}t.d+='\\r\\n##END=\\r\\n';t.d=Uj(t.d,0,e-10)+(p+'')+Tj(t.d,e-2);return t}\n\tfunction Zl(a,b){Wl();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=a.j;n=a.g;e=a.d;if(A==0){switch(b){case 0:return '0';case 1:return '0.0';case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:v=new uk;b<0?(v.d+='0E+',v):(v.d+='0E',v);v.d+=-b;return v.d;}}s=n*10+1+7;t=Ud(ke,Yu,0,s+1,7,1);c=s;if(n==1){g=e[0];if(g<0){G=lh(ph(g),{l:Zu,m:1023,h:0});do{o=G;G=mh(G,{l:10,m:0,h:0});t[--c]=48+Eh(Ch(o,vh(G,{l:10,m:0,h:0})))&gv}while(xh(G,{l:0,m:0,h:0}))}else{G=g;do{o=G;G=~~(G/10);t[--c]=48+(o-G*10)&gv}while(G!=0)}}else{C=Ud(me,Yu,0,n,7,1);F=n;yk(e,0,C,0,n);H:while(true){w={l:0,m:0,h:0};for(i=F-1;i>=0;i--){D=kh(zh(w,32),lh(ph(C[i]),{l:Zu,m:1023,h:0}));q=Xl(D);C[i]=Eh(q);w=ph(Eh(Ah(q,32)))}r=Eh(w);p=c;do{t[--c]=48+r%10&gv}while((r=~~(r/10))!=0&&c!=0);d=9-p+c;for(h=0;h<d&&c>0;h++){t[--c]=48}k=F-1;for(;C[k]==0;k--){if(k==0){break H}}F=k+1}while(t[c]==48){++c}}m=A<0;f=s-c-b-1;if(b==0){m&&(t[--c]=45);return fk(t,c,s-c)}if(b>0&&f>=-6){if(f>=0){j=c+f;for(l=s-1;l>=j;l--){t[l+1]=t[l]}t[++j]=46;m&&(t[--c]=45);return fk(t,c,s-c+1)}for(k=2;k<-f+1;k++){t[--c]=48}t[--c]=46;t[--c]=48;m&&(t[--c]=45);return fk(t,c,s-c)}B=c+1;u=new vk;m&&(u.d+='-',u);if(s-B>=1){qk(u,t[c]);u.d+='.';u.d+=fk(t,c+1,s-c-1)}else{u.d+=fk(t,c,s-c)}u.d+='E';f>0&&(u.d+='+',u);u.d+=''+f;return u.d}\n\tfunction Yb(a,b){var c,d,e,f;$b(b,a.j);c=a.g[0];d=a.g[1];e=a.g[2];f=a.g[3];c=_b(c,d,e,f,a.j[0],7,-680876936);f=_b(f,c,d,e,a.j[1],12,-389564586);e=_b(e,f,c,d,a.j[2],17,606105819);d=_b(d,e,f,c,a.j[3],22,-1044525330);c=_b(c,d,e,f,a.j[4],7,-176418897);f=_b(f,c,d,e,a.j[5],12,1200080426);e=_b(e,f,c,d,a.j[6],17,-1473231341);d=_b(d,e,f,c,a.j[7],22,-45705983);c=_b(c,d,e,f,a.j[8],7,1770035416);f=_b(f,c,d,e,a.j[9],12,-1958414417);e=_b(e,f,c,d,a.j[10],17,-42063);d=_b(d,e,f,c,a.j[11],22,-1990404162);c=_b(c,d,e,f,a.j[12],7,1804603682);f=_b(f,c,d,e,a.j[13],12,-40341101);e=_b(e,f,c,d,a.j[14],17,-1502002290);d=_b(d,e,f,c,a.j[15],22,1236535329);c=ac(c,d,e,f,a.j[1],5,-165796510);f=ac(f,c,d,e,a.j[6],9,-1069501632);e=ac(e,f,c,d,a.j[11],14,643717713);d=ac(d,e,f,c,a.j[0],20,-373897302);c=ac(c,d,e,f,a.j[5],5,-701558691);f=ac(f,c,d,e,a.j[10],9,38016083);e=ac(e,f,c,d,a.j[15],14,-660478335);d=ac(d,e,f,c,a.j[4],20,-405537848);c=ac(c,d,e,f,a.j[9],5,568446438);f=ac(f,c,d,e,a.j[14],9,-1019803690);e=ac(e,f,c,d,a.j[3],14,-187363961);d=ac(d,e,f,c,a.j[8],20,1163531501);c=ac(c,d,e,f,a.j[13],5,-1444681467);f=ac(f,c,d,e,a.j[2],9,-51403784);e=ac(e,f,c,d,a.j[7],14,1735328473);d=ac(d,e,f,c,a.j[12],20,-1926607734);c=bc(c,d,e,f,a.j[5],4,-378558);f=bc(f,c,d,e,a.j[8],11,-2022574463);e=bc(e,f,c,d,a.j[11],16,1839030562);d=bc(d,e,f,c,a.j[14],23,-35309556);c=bc(c,d,e,f,a.j[1],4,-1530992060);f=bc(f,c,d,e,a.j[4],11,1272893353);e=bc(e,f,c,d,a.j[7],16,-155497632);d=bc(d,e,f,c,a.j[10],23,-1094730640);c=bc(c,d,e,f,a.j[13],4,681279174);f=bc(f,c,d,e,a.j[0],11,-358537222);e=bc(e,f,c,d,a.j[3],16,-722521979);d=bc(d,e,f,c,a.j[6],23,76029189);c=bc(c,d,e,f,a.j[9],4,-640364487);f=bc(f,c,d,e,a.j[12],11,-421815835);e=bc(e,f,c,d,a.j[15],16,530742520);d=bc(d,e,f,c,a.j[2],23,-995338651);c=cc(c,d,e,f,a.j[0],6,-198630844);f=cc(f,c,d,e,a.j[7],10,1126891415);e=cc(e,f,c,d,a.j[14],15,-1416354905);d=cc(d,e,f,c,a.j[5],21,-57434055);c=cc(c,d,e,f,a.j[12],6,1700485571);f=cc(f,c,d,e,a.j[3],10,-1894986606);e=cc(e,f,c,d,a.j[10],15,-1051523);d=cc(d,e,f,c,a.j[1],21,-2054922799);c=cc(c,d,e,f,a.j[8],6,1873313359);f=cc(f,c,d,e,a.j[15],10,-30611744);e=cc(e,f,c,d,a.j[6],15,-1560198380);d=cc(d,e,f,c,a.j[13],21,1309151649);c=cc(c,d,e,f,a.j[4],6,-145523070);f=cc(f,c,d,e,a.j[11],10,-1120210379);e=cc(e,f,c,d,a.j[2],15,718787259);d=cc(d,e,f,c,a.j[9],21,-343485551);a.g[0]=~~(a.g[0]+c);a.g[1]=~~(a.g[1]+d);a.g[2]=~~(a.g[2]+e);a.g[3]=~~(a.g[3]+f)}\n\tfunction At(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;c=Vj(c);c=Rj(c,'[=]','');if(c.indexOf('.')!=-1)throw new vb('Error: the formula \"'+c+'\"contains dots (error in parsing)');if(Lj(c,'')){return}if(pi(c.charCodeAt(0))){throw new vb('Error: the formula starts with a number')}c.charCodeAt(0)==120&&(c='X'+Uj(c,1,c.length));g=new fr;k=1;j=1;m=1;l=1;r=1;q=1;w=c.length-1;while(w>=0){if(pi(c.charCodeAt(w))){f=w;while(w>0&&pi(c.charCodeAt(w)))--w;e=c.substr(w+1,f+1-(w+1));u=Ri(e);if(c.charCodeAt(w)==45){--w;if(w<0)throw new Kt(\"Syntax error: the formula starts with '-': \"+c);f=w;while(w>0&&pi(c.charCodeAt(w)))--w;w==0&&pi(c.charCodeAt(0))&&--w;o=c.substr(w+1,f+1-(w+1));if(o.length==0){u=Ri('-'+e);v=u}else{v=Ri(o)}}else v=u;if(c.charCodeAt(w)==41){--w;if(w<0)throw new Kt(\"Syntax error: the formula starts with ')': \"+c);er(g,new hj(r));er(g,new hj(q));r=m;q=l;l*=u;m*=v}else{k=v;j=u}}else{if(c.charCodeAt(w)==93){s=w;--w;if(w<=1)throw new Kt('Syntax error: bad isotope syntax');if(!qi(c.charCodeAt(w)))throw new Kt('Syntax error: bad isotope syntax');while(w>0&&si(c.charCodeAt(w)))--w;if(!ti(c.charCodeAt(w)))throw new Kt('Syntax error: bad symbol (must start with uppercase)');t=c.substr(w,s-w);--w;if(w<0)throw new Kt('Syntax error: bad isotope syntax');if(!pi(c.charCodeAt(w)))throw new Kt('Syntax error: bad isotope syntax');f=w;while(w>0&&c.charCodeAt(w)!=91)--w;p=c.substr(w+1,f+1-(w+1));try{n=Ri(p)}catch(a){a=Jg(a);if(be(a,20)){throw new Kt('Syntax error: bad isotope number '+p)}else throw Ig(a)}if(c.charCodeAt(w)!=91)throw new Kt(\"Isotope syntax error: no opening '['\");lt(b,t,k*m,j*l,n,d);j=1;k=1;if(w>0)--w;else return}else{if(qi(c.charCodeAt(w))){s=w;while(w>0&&si(c.charCodeAt(w)))--w;if(s==0&&w==0&&c.charCodeAt(0)==110){b.k=0;return}if(!ti(c.charCodeAt(w)))throw new Kt('Syntax error: the symbol must start with uppercase');t=c.substr(w,s+1-w);if(Lj(t,'X')&&w==0){b.k=0;return}--w;lt(b,t,k*m,j*l,0,d);j=1;k=1}else{while(c.charCodeAt(w)==41){--w;if(w<0)throw new Kt(\"Syntax error: the formula starts with ')': \"+c);er(g,new hj(r));er(g,new hj(q));r=m;q=l}if(w<0)break;while(c.charCodeAt(w)==40){l=q;m=r;if(g.d.e.length==0){q=1;r=1}else{q=dr(g).d;r=dr(g).d}--w;if(w<0)break}if(w<0)break;if(c.charCodeAt(w)==125){i=w;while(w>0&&c.charCodeAt(w)!=123)--w;if(c.charCodeAt(w)!=123)throw new Kt('Syntax error (combinatorial): no opening brace');Bt(b,c.substr(w+1,i-(w+1)),k*m,j*l);--w}}}}if(w<0)break;h=c.charCodeAt(w);if(h==123)throw new Kt('Syntax error (combinatorial): no closing brace');if(h==91)throw new Kt('Syntax error (isotope): no closing bracket');if(!(null!=String.fromCharCode(h).match(/[A-Z\\d]/i))&&h!=40&&h!=91&&h!=123&&h!=93&&h!=41&&h!=125)throw new Kt(\"Syntax error: unrecognized character: '\"+_d(h)+\"'\")}}\n\tfunction Du(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P;v=new Tu;if(!b){Qu(v,'error',new Kd('options is null'));return v}K=b.f.kb('referenceVersion');K!=null&&!Lj(K,'')&&(d=(Jt(),Jt(),Ht));D=b.f.kb('mf');s=b.f.kb('isotopomers');O=b.f.kb('typedResult')!=null&&(gi(),Mj('true',b.f.kb('typedResult'))?fi:ei).d;L=new Ti(0.001);try{L=new Ti(Qi(b.f.kb('resolution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}N=new Ti(1.0E-5);try{N=new Ti(Qi(b.f.kb('threshold')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}e=false;q=10;try{q=ie(Qi(b.f.kb('gaussianWidth')));e=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}p=new Ti(L.d*q);try{p=new Ti(Qi(b.f.kb('gaussianResolution')));e=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}i=null;try{i=new Ti(Qi(b.f.kb('defaultUnsaturationContribution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}u=0;!(b.f.kb('joiningAlgorithm')===undefined)&&Lj(b.f.kb('joiningAlgorithm').toLowerCase(),'center')&&(u=Lt);A=new Tu;D==null?Qu(A,'mf',(ed(),ed(),dd)):Qu(A,'mf',new Kd(D));Qu(A,'threshold',new kd(N.d));Qu(A,'resolution',new kd(L.d));Qu(A,'typedResult',(Zc(),O?Yc:Xc));s==null?Qu(A,'isotopomers',(ed(),ed(),dd)):Qu(A,'isotopomers',new Kd(s));if(e){Qu(A,'gaussianWidth',new kd(q));Qu(A,'gaussianResolution',new kd(p.d))}K==null?Qu(A,'referenceVersion',(ed(),ed(),dd)):Qu(A,'referenceVersion',new Kd(K));Qu(v,'options',A.d);if(D!=null){D=Vj(D);Lj(D,'')&&(D=null)}if(D!=null){try{l=new it(D,d,c);if(l.g.e.length>0){if(l.j){Qu(v,'error',new Kd('mass not defined'))}else{if(O){F=new Tu;Qu(F,'type',new Kd('mf'));Su(F,'value',ht(l));Qu(v,'mf',F.d)}else{Su(v,'mf',ht(l))}Qu(v,'mw',new kd(bt(l)));Qu(v,'em',new kd(ct(l)));Qu(v,'nominalMass',new kd(dt(l)));if(s!=null&&!Lj(s,'')){M=new St(d,l,L.d,N.d);M.k=u;Nt(M);Ot(M);if(e){o=ou(q);Mt(M,o,p.d)}Qu(A,'numberLines',new kd(M.j.f.g));if(s.indexOf('jcamp')>-1){if(O){t=new Tu;Qu(t,'type',new Kd('jcamp'));Su(t,'value',Pt(M).d);Qu(v,'jcamp',t.d)}else{Su(v,'jcamp',Pt(M).d)}}if(s.indexOf('xy')>-1){if(O){P=new Tu;Qu(P,'type',new Kd('xy'));Su(P,'value',Qt(M).d);Qu(v,'xy',P.d)}else{Su(v,'xy',Qt(M).d)}}if(s.indexOf('array')>-1&&s.indexOf('arrayX')==-1){f=Rt(M);w=new Nu;B=new Nu;C=new Nu;for(r=0;r<f.length;r++){Mu(B,new kd(f[r][0]));Mu(C,new kd(f[r][1]))}Mu(w,B.d);Mu(w,C.d);Qu(v,'spectrum',w.d)}if(s.indexOf('arrayXXYY')>-1){f=Rt(M);w=new Nu;B=new Nu;C=new Nu;for(r=0;r<f.length;r++){Mu(B,new kd(f[r][0]));Mu(C,new kd(f[r][1]))}Mu(w,B.d);Mu(w,C.d);Qu(v,'arrayXXYY',w.d)}if(s.indexOf('arrayXYXY')>-1){f=Rt(M);Qu(v,'arrayXYXY',(new Pu(f)).d)}}J=new Nu;Qu(v,'parts',J.d);for(n=new Kn(l.g);n.d<n.f.K();){m=(Fc(n.d<n.f.K()),n.f.V(n.e=n.d++));I=new Tu;Mu(J,I.d);if(O){F=new Tu;Qu(F,'type',new Kd('mf'));Su(F,'value',vt(m));Qu(I,'mf',F.d)}else{Su(I,'mf',vt(m))}Qu(I,'mw',new kd(pt(m)));Qu(I,'em',new kd(qt(m)));m.e.length>0&&Su(I,'comment',m.e);Ru(I,iu(m,i));H=qt(m)-m.d*uv;if(m.d!=0){Qu(I,'charge',new kd(m.d));H=H/uj(m.d)}Qu(I,'msem',new kd(H));nt(m);j=new Nu;for(h=Ho(new Io(m.n));Hn(h.d.d);){g=Mo(h);k=new Tu;Su(k,'element',g.o);Qu(k,'number',new kd(hs(g)));Qu(k,'percentage',new kd(g.n));Mu(j,k.d)}Qu(I,'ea',j.d)}}}else{Qu(v,'error',new Kd('there is no part in the molecule'))}}catch(a){a=Jg(a);if(be(a,4)){G=a;Su(v,'error',G.k)}else throw Ig(a)}}else{Qu(v,'error',new Kd('parameter mf not specified'))}return v}\n\tfunction Gu(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db;G=0.5;R=0;L=50;J=1000;t=true;db=true;S=false;w=b.f.kb('jcampLink')!=null&&(gi(),Mj('true',b.f.kb('jcampLink'))?fi:ei).d;v=b.f.kb('jcampBaseURL')==null?'http://www.chemcalc.org/service/jcamp/':b.f.kb('jcampBaseURL');O='C0-100H0-202N0-10O0-10F0-3Cl0-3Br0-1';$=tv;Z=new as;bb=b.f.kb('typedResult')!=null&&(gi(),Mj('true',b.f.kb('typedResult'))?fi:ei).d;W=new Ti(0.001);try{W=new Ti(Qi(b.f.kb('resolution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}f=false;s=10;try{s=ie(Qi(b.f.kb('gaussianWidth')));f=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}r=new Ti(W.d*s);try{r=new Ti(Qi(b.f.kb('gaussianResolution')));f=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}B=new Tu;if(!b){Qu(B,'error',new Kd('options is null'));return B}V=b.f.kb('referenceVersion');V!=null&&!Lj(V,'')&&(d=(Jt(),Jt(),Ht));m=null;try{m=new Ti(Qi(b.f.kb('defaultUnsaturationContribution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{R=Qi(b.f.kb('minUnsaturation'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{L=Qi(b.f.kb('maxUnsaturation'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}if(!(b.f.kb('integerUnsaturation')===undefined)){try{t=(gi(),Mj('true',b.f.kb('integerUnsaturation')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}}if(!(b.f.kb('useUnsaturation')===undefined)){try{db=(gi(),Mj('true',b.f.kb('useUnsaturation')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}}if(!(b.f.kb('numberOfResultsOnly')===undefined)){try{S=(gi(),Mj('true',b.f.kb('numberOfResultsOnly')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}}try{J=Qi(b.f.kb('maxNumberRows'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{$=Qi(b.f.kb('monoisotopicMass'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{G=Qi(b.f.kb('massRange'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}Q=$-G;I=$+G;try{I=Qi(b.f.kb('maxMass'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}!(b.f.kb('mfRange')===undefined)&&b.f.kb('mfRange')!=null&&b.f.kb('mfRange').length>0&&(O=b.f.kb('mfRange'));if($<0){Qu(B,'error',new Kd('monoisotopicMass must be specified and larger than 0'));return B}C=new Tu;Qu(C,'minUnsaturation',new kd(R));Qu(C,'maxUnsaturation',new kd(L));Qu(C,'integerUnsaturation',(Zc(),t?Yc:Xc));Qu(C,'useUnsaturation',db?Yc:Xc);Qu(C,'numberOfResultsOnly',S?Yc:Xc);Qu(C,'minMass',new kd(Dh(oh(Math.round(Q*kv)))/kv));Qu(C,'maxMass',new kd(Dh(oh(Math.round(I*kv)))/kv));Qu(C,'massRange',new kd(Dh(oh(Math.round(G*kv)))/kv));O==null?Qu(C,'mfRange',(ed(),ed(),dd)):Qu(C,'mfRange',new Kd(O));Qu(C,'monoisotopicMass',new kd(Dh(oh(Math.round($*kv)))/kv));V==null?Qu(C,'referenceVersion',(ed(),ed(),dd)):Qu(C,'referenceVersion',new Kd(V));Qu(C,'jcampLink',w?Yc:Xc);v==null?Qu(C,'jcampBaseURL',(ed(),ed(),dd)):Qu(C,'jcampBaseURL',new Kd(v));Qu(C,'typedResult',bb?Yc:Xc);Qu(B,'options',C.d);u={l:0,m:0,h:0};T={l:0,m:0,h:0};g=0;h=0;try{e=new jt(O,d,c,false);if(e.g.e.length!=1){Qu(B,'error',new Kd('Number of parts not equal to 1'));return B}g=To(e.g,0).d;h=g<0?-g:g;if(g!=0){$=$*h+g*uv;Q=Q*h+g*uv;I=I*h+g*uv;G=G*h}U=Iu(To(e.g,0),$+G);if(U){k=Ud(le,hv,0,U.d.e.length,7,1);P=Ud(le,hv,0,U.d.e.length,7,1);H=Ud(le,hv,0,U.d.e.length,7,1);Eu(U,P,H);Qu(B,'bruteForceIteration',new kd(Qi(Zl(Fu(U),0))));ab=false;l=0;K=U.d.e.length;Ys((Xq(0,U.d.e.length),To(U.d,0)),0,$,P[0],H[0],G);while(!ab){if(qh(u,{l:3511296,m:476,h:0})){throw new Kt('Iteration number is over the current maximum of: 2000000000')}if(k[l]>=Q&&k[l]<=I){cb=ju(U,m);if(!db||!cb||cb.d>=R&&cb.d<=L&&(!t||cb.d==ie(cb.d))){T=kh(T,{l:1,m:0,h:0});if(!S){if(Z.n.g>=J){if(tj(Co(hr(Z.n)).d)>tj(k[l]-$)){Ym(xo(Z.n));_r(Z,new Ku(k[l]-$,k[l],cb,Hu(U,c)))}}else{_r(Z,new Ku(k[l]-$,k[l],cb,Hu(U,c)))}}}}while(l<K&&l>=0){u=kh(u,{l:1,m:0,h:0});j=(Xq(l,U.d.e.length),To(U.d,l));if(j.e<j.f){++j.e;l==0?(k[0]=j.d.j*j.e):(k[l]=k[l-1]+j.d.j*j.e);if(l<K-1){++l;Ys((Xq(l,U.d.e.length),To(U.d,l)),k[l-1],$,P[l],H[l],G)}else{break}}else{--l}}l<0&&(ab=true)}}Qu(B,'realIteration',new kd(Dh(Ch(u,{l:1,m:0,h:0}))));Qu(B,'numberResults',new kd(Dh(T)));Qu(B,'charge',new kd(g))}catch(a){a=Jg(a);if(be(a,4)){n=a;Su(B,'error',qb(n)+'\\r'+(vi(Fg),Fg.q+'@'+pj(Pb(C),16)))}else throw Ig(a)}F=new Nu;i='';g!=0&&(g>0?(i='(+'+g+')'):(i='('+g+')'));for(Y=Ho(new Io(Z.n));Hn(Y.d.d);){X=Mo(Y);D=new Tu;if(g==0){q=Dh(oh(Bj(X.d*kv)))/kv;p=Dh(oh(Bj(X.f*kv)))/kv}else{q=Dh(oh(Bj(X.d/h*kv)))/kv;p=Dh(oh(Bj((X.f-g*uv)/h*kv)))/kv}Qu(D,'error',new kd(q));Qu(D,'em',new kd(p));Qu(D,'ppm',new kd(Dh(oh(Math.round(q/p*kv)))/kv*jv));Su(D,'info',X.e+i);try{A=v+X.e+'&resolution='+W;if(f){A+='&gaussianWidth='+s;A+='&gaussianResolution='+r}if(bb){M=new Tu;Qu(M,'type',new Kd('mf'));Su(M,'value',ht(new it(X.e+i,d,c)));Qu(D,'mf',M.d);if(w){N=new Tu;Qu(N,'type',new Kd('jcamp'));A==null?Qu(N,'url',(ed(),ed(),dd)):Qu(N,'url',new Kd(A));Qu(D,'jcamp',N.d)}}else{Su(D,'mf',ht(new it(X.e+i,d,c)));w&&(A==null?Qu(D,'jcampURL',(ed(),ed(),dd)):Qu(D,'jcampURL',new Kd(A)))}}catch(a){a=Jg(a);if(be(a,4)){o=a;Su(D,'mf',qb(o))}else throw Ig(a)}try{Qu(D,'unsat',new kd(Dh(oh(Bj(X.g.d*kv)))/kv))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}Mu(F,D.d)}Qu(B,'results',F.d);return B}\n\tfunction Jt(){Jt=Ng;var b,c,d,e,f,g,h,i,j,k,l,m;Ht=new Bp;e=new Bp;k=Sj('1\\tH\\tHydrogen\\t1.0079407538967635\\n2\\tHe\\tHelium\\t4.002601932146926\\n3\\tLi\\tLithium\\t6.940037632200444\\n4\\tBe\\tBeryllium\\t9.01218224\\n5\\tB\\tBoron\\t10.8110281284\\n6\\tC\\tCarbon\\t12.010735896764565\\n7\\tN\\tNitrogen\\t14.006703211872013\\n8\\tO\\tOxygen\\t15.99940492727602\\n9\\tF\\tFluorine\\t18.998403227\\n10\\tNe\\tNeon\\t20.180046379828486\\n11\\tNa\\tSodium\\t22.989769280929\\n12\\tMg\\tMagnesium\\t24.305051612756515\\n13\\tAl\\tAluminium\\t26.9815386312\\n14\\tSi\\tSilicon\\t28.085498706539465\\n15\\tP\\tPhosphorus\\t30.973761632000002\\n16\\tS\\tSulfur\\t32.0647872364133\\n17\\tCl\\tChlorine\\t35.4529375824264\\n18\\tAr\\tArgon\\t39.947676713373\\n19\\tK\\tPotassium\\t39.0983011264695\\n20\\tCa\\tCalcium\\t40.078022655762524\\n21\\tSc\\tScandium\\t44.95591199\\n22\\tTi\\tTitanium\\t47.86674933516\\n23\\tV\\tVanadium\\t50.9414675085\\n24\\tCr\\tChromium\\t51.99613314762095\\n25\\tMn\\tManganese\\t54.93804517\\n26\\tFe\\tIron\\t55.8451456935552\\n27\\tCo\\tCobalt\\t58.93319506999999\\n28\\tNi\\tNickel\\t58.69335163208455\\n29\\tCu\\tCopper\\t63.546039795084994\\n30\\tZn\\tZinc\\t65.40872812701322\\n31\\tGa\\tGallium\\t69.72306563428617\\n32\\tGe\\tGermanium\\t72.63984326005341\\n33\\tAs\\tArsenic\\t74.92159652\\n34\\tSe\\tSelenium\\t78.9593882599375\\n35\\tBr\\tBromine\\t79.9035279923569\\n36\\tKr\\tKrypton\\t83.7980066431168\\n37\\tRb\\tRubidium\\t85.46766359470149\\n38\\tSr\\tStrontium\\t87.6166441185128\\n39\\tY\\tYttrium\\t88.905848327\\n40\\tZr\\tZirconium\\t91.22364763203382\\n41\\tNb\\tNiobium\\t92.90637812599999\\n42\\tMo\\tMolybdenum\\t95.93759212713759\\n43\\tTc\\tTechnetium\\t98.0\\n44\\tRu\\tRuthenium\\t101.0649455723334\\n45\\tRh\\tRhodium\\t102.90550430000002\\n46\\tPd\\tPalladium\\t106.41532914746399\\n47\\tAg\\tSilver\\t107.868151248228\\n48\\tCd\\tCadmium\\t112.41155226203729\\n49\\tIn\\tIndium\\t114.81808621342\\n50\\tSn\\tTin\\t118.71010849931781\\n51\\tSb\\tAntimony\\t121.75978615571421\\n52\\tTe\\tTellurium\\t127.60312786587177\\n53\\tI\\tIodine\\t126.9044734\\n54\\tXe\\tXenon\\t131.29276070673757\\n55\\tCs\\tCaesium\\t132.90545193324\\n56\\tBa\\tBarium\\t137.3268918829641\\n57\\tLa\\tLanthanum\\t138.90545400916656\\n58\\tCe\\tCerium\\t140.11572627079408\\n59\\tPr\\tPraseodymium\\t140.907652826\\n60\\tNd\\tNeodymium\\t144.236131428275\\n61\\tPm\\tPromethium\\t145.0\\n62\\tSm\\tSamarium\\t150.3663485610868\\n63\\tEu\\tEuropium\\t151.96437050019\\n64\\tGd\\tGadolinium\\t157.25212224243995\\n65\\tTb\\tTerbium\\t158.925346827\\n66\\tDy\\tDysprosium\\t162.49946572489424\\n67\\tHo\\tHolmium\\t164.930322127\\n68\\tEr\\tErbium\\t167.25907628559352\\n69\\tTm\\tThulium\\t168.934213327\\n70\\tYb\\tYtterbium\\t173.0376956147714\\n71\\tLu\\tLutetium\\t174.96672140854997\\n72\\tHf\\tHafnium\\t178.4849721651158\\n73\\tTa\\tTantalum\\t180.9478757552806\\n74\\tW\\tTungsten\\t183.8417781725967\\n75\\tRe\\tRhenium\\t186.206706624852\\n76\\tOs\\tOsmium\\t190.2248630659075\\n77\\tIr\\tIridium\\t192.2160564328\\n78\\tPt\\tPlatinum\\t195.077807984934\\n79\\tAu\\tGold\\t196.96656876\\n80\\tHg\\tMercury\\t200.599166666798\\n81\\tTl\\tThallium\\t204.38341252384\\n82\\tPb\\tLead\\t207.21690767600003\\n83\\tBi\\tBismuth\\t208.98039871599997\\n84\\tPo\\tPolonium\\t209.0\\n85\\tAt\\tAstatine\\t210.0\\n86\\tRn\\tRadon\\t222.0\\n87\\tFr\\tFrancium\\t223.0\\n88\\tRa\\tRadium\\t226.0\\n89\\tAc\\tActinium\\t227.0\\n90\\tTh\\tThorium\\t232.038055321\\n91\\tPa\\tProtactinium\\t231.035884024\\n92\\tU\\tUranium\\t238.02891028165737\\n93\\tNp\\tNeptunium\\t237.0\\n94\\tPu\\tPlutonium\\t244.0\\n95\\tAm\\tAmericium\\t0.0\\n96\\tCm\\tCurium\\t0.0\\n97\\tBk\\tBerkelium\\t0.0\\n98\\tCf\\tCalifornium\\t0.0\\n99\\tEs\\tEinsteinium\\t0.0\\n100\\tFm\\tFermium\\t0.0\\n101\\tMd\\tMendelevium\\t0.0\\n102\\tNo\\tNobelium\\t0.0\\n103\\tLr\\tLawrencium\\t0.0\\n104\\tRf\\tRutherfordium\\t0.0\\n105\\tDb\\tDubnium\\t0.0\\n106\\tSg\\tSeaborgium\\t0.0\\n107\\tBh\\tBohrium\\t0.0\\n108\\tHs\\tHassium\\t0.0\\n109\\tMt\\tMeitnerium\\t0.0\\n110\\tDs\\tDarmstadtium\\t0.0\\n111\\tRg\\tRoentgenium\\t0.0\\n112\\tCn\\tCopernicium\\t0.0\\n113\\tUut\\tUnuntrium\\t0.0\\n114\\tUuq\\t\\t0.0\\n115\\tUup\\tUnunpentium\\t0.0\\n116\\tUuh\\t\\t0.0\\n117\\tUus\\tUnunseptium\\t0.0','[\\r\\n]+',0);for(g=0;g<k.length;g++){m=Sj(k[g],'\\t',0);c=new Rs(Qi(m[3]),Vj(m[1]),m[2],Ri(m[0]));kn(Ht,c.n,c);kn(e,m[0],c)}k=Sj('1\\t1.007825032071\\t99.9885\\t1\\n2\\t2.01410177784\\t0.0115\\t1\\n3\\t3.016049277725\\t0\\t1\\n4\\t3.016029319126\\t0.00013\\t2\\n5\\t4.002603254156\\t99.99987\\t2\\n6\\t6.01512279516\\t7.59\\t3\\n7\\t7.016004558\\t92.41\\t3\\n8\\t9.01218224\\t100\\t4\\n9\\t10.01293704\\t19.9\\t5\\n10\\t11.00930544\\t80.1\\t5\\n11\\t12.0\\t98.93\\t6\\n12\\t13.00335483781\\t1.07\\t6\\n13\\t14.0032419894\\t0\\t6\\n14\\t14.00307400486\\t99.636\\t7\\n15\\t15.00010889827\\t0.364\\t7\\n17\\t16.9991317012\\t0.038\\t8\\n16\\t15.9949146195616\\t99.757\\t8\\n18\\t17.99916107\\t0.205\\t8\\n19\\t18.998403227\\t100\\t9\\n21\\t20.993846684\\t0.27\\t10\\n20\\t19.992440175419\\t90.48\\t10\\n22\\t21.99138511419\\t9.25\\t10\\n23\\t22.989769280929\\t100\\t11\\n25\\t24.985836923\\t10\\t12\\n24\\t23.98504170014\\t78.99\\t12\\n26\\t25.9825929293\\t11.01\\t12\\n27\\t26.9815386312\\t100\\t13\\n29\\t28.97649470022\\t4.685\\t14\\n28\\t27.976926532519\\t92.223\\t14\\n30\\t29.973770173\\t3.092\\t14\\n31\\t30.973761632\\t100\\t15\\n34\\t33.9678669012\\t4.25\\t16\\n35\\t35.967080762\\t0.01\\t16\\n32\\t31.9720710015\\t94.99\\t16\\n33\\t32.9714587615\\t0.75\\t16\\n36\\t34.968852684\\t75.76\\t17\\n37\\t36.965902595\\t24.24\\t17\\n38\\t35.96754510629\\t0.3365\\t18\\n39\\t37.96273244\\t0.0632\\t18\\n40\\t39.962383122529\\t99.6003\\t18\\n42\\t39.9639984821\\t0.0117\\t19\\n43\\t40.9618257621\\t6.7302\\t19\\n41\\t38.963706682\\t93.2581\\t19\\n49\\t47.9525344\\t0.187\\t20\\n48\\t45.953692624\\t0.004\\t20\\n46\\t42.95876663\\t0.135\\t20\\n47\\t43.95548184\\t2.086\\t20\\n44\\t39.9625909822\\t96.941\\t20\\n45\\t41.9586180127\\t0.647\\t20\\n50\\t44.95591199\\t100\\t21\\n51\\t45.95263169\\t8.25\\t22\\n55\\t49.94479129\\t5.18\\t22\\n54\\t48.94787009\\t5.41\\t22\\n53\\t47.94794639\\t73.72\\t22\\n52\\t46.95176319\\t7.44\\t22\\n57\\t50.943959511\\t99.75\\t23\\n56\\t49.947158511\\t0.25\\t23\\n59\\t51.94050758\\t83.789\\t24\\n58\\t49.946044211\\t4.345\\t24\\n61\\t53.93888048\\t2.365\\t24\\n60\\t52.94064948\\t9.501\\t24\\n62\\t54.93804517\\t100\\t25\\n64\\t55.93493757\\t91.754\\t26\\n65\\t56.93539407\\t2.119\\t26\\n66\\t57.93327568\\t0.282\\t26\\n63\\t53.93961057\\t5.845\\t26\\n67\\t58.93319507\\t100\\t27\\n68\\t57.93534297\\t68.0769\\t28\\n69\\t59.93078647\\t26.2231\\t28\\n70\\t60.93105607\\t1.1399\\t28\\n71\\t61.92834516\\t3.6345\\t28\\n72\\t63.92796607\\t0.9256\\t28\\n73\\t62.92959756\\t69.15\\t29\\n74\\t64.92778957\\t30.85\\t29\\n76\\t65.92603341\\t27.975\\t30\\n77\\t66.92712731\\t4.102\\t30\\n78\\t67.92484421\\t19.024\\t30\\n79\\t69.925319321\\t0.631\\t30\\n75\\t63.92914227\\t48.268\\t30\\n81\\t70.924701311\\t39.892\\t31\\n80\\t68.925573613\\t60.108\\t31\\n85\\t73.921177818\\t36.72\\t32\\n84\\t72.923458918\\t7.76\\t32\\n86\\t75.921402618\\t7.83\\t32\\n83\\t71.922075818\\t27.31\\t32\\n82\\t69.924247411\\t20.38\\t32\\n87\\t74.92159652\\t100\\t33\\n93\\t81.916699422\\t8.73\\t34\\n92\\t79.916521321\\t49.61\\t34\\n89\\t75.919213618\\t9.37\\t34\\n88\\t73.922476418\\t0.89\\t34\\n91\\t77.917309118\\t23.77\\t34\\n90\\t76.919914018\\t7.63\\t34\\n95\\t80.916290621\\t49.31\\t35\\n94\\t78.918337122\\t50.69\\t35\\n100\\t83.9115073\\t56.987\\t36\\n101\\t85.9106107311\\t17.279\\t36\\n98\\t81.913483619\\t11.593\\t36\\n99\\t82.9141363\\t11.5\\t36\\n96\\t77.920364812\\t0.355\\t36\\n97\\t79.916379016\\t2.286\\t36\\n102\\t84.91178973812\\t72.17\\t37\\n103\\t86.90918052713\\t27.83\\t37\\n106\\t86.908877112\\t7\\t38\\n107\\t87.905612112\\t82.58\\t38\\n104\\t83.9134253\\t0.56\\t38\\n105\\t85.909260212\\t9.86\\t38\\n108\\t88.905848327\\t100\\t39\\n113\\t95.90827343\\t2.8\\t40\\n112\\t93.906315226\\t17.38\\t40\\n110\\t90.905645825\\t11.22\\t40\\n111\\t91.905040825\\t17.15\\t40\\n109\\t89.904704425\\t51.45\\t40\\n114\\t92.906378126\\t100\\t41\\n119\\t96.906021521\\t9.56\\t42\\n118\\t95.904679521\\t16.68\\t42\\n117\\t94.905842121\\t15.9\\t42\\n116\\t93.905088321\\t9.23\\t42\\n115\\t91.9068114\\t14.77\\t42\\n121\\t99.9074776\\t9.67\\t42\\n120\\t97.905408221\\t24.19\\t42\\n124\\t98.906254721\\t0\\t43\\n123\\t97.9072164\\t0\\t43\\n122\\t96.9063655\\t0\\t43\\n129\\t100.905582122\\t17.06\\t44\\n127\\t98.905939322\\t12.76\\t44\\n128\\t99.904219522\\t12.6\\t44\\n126\\t97.9052877\\t1.87\\t44\\n131\\t103.9054333\\t18.62\\t44\\n125\\t95.9075988\\t5.54\\t44\\n130\\t101.904349322\\t31.55\\t44\\n132\\t102.9055043\\t100\\t45\\n137\\t107.9038924\\t26.46\\t46\\n136\\t105.9034864\\t27.33\\t46\\n138\\t109.90515312\\t11.72\\t46\\n133\\t101.9056093\\t1.02\\t46\\n135\\t104.9050854\\t22.33\\t46\\n134\\t103.9040364\\t11.14\\t46\\n139\\t106.9050975\\t51.839\\t47\\n140\\t108.9047523\\t48.161\\t47\\n141\\t105.9064596\\t1.25\\t48\\n143\\t109.903002129\\t12.49\\t48\\n142\\t107.9041846\\t0.89\\t48\\n144\\t110.904178129\\t12.8\\t48\\n145\\t111.902757829\\t24.13\\t48\\n146\\t112.904401729\\t12.22\\t48\\n147\\t113.903358529\\t28.73\\t48\\n148\\t115.9047563\\t7.49\\t48\\n149\\t112.9040583\\t4.29\\t49\\n150\\t114.9038785\\t95.71\\t49\\n152\\t113.9027793\\t0.66\\t50\\n153\\t114.9033423\\t0.34\\t50\\n154\\t115.9017413\\t14.54\\t50\\n155\\t116.9029523\\t7.68\\t50\\n156\\t117.9016033\\t24.22\\t50\\n157\\t118.9033083\\t8.59\\t50\\n158\\t119.902194727\\t32.58\\t50\\n159\\t121.903439029\\t4.63\\t50\\n160\\t123.905273915\\t5.79\\t50\\n151\\t111.9048185\\t0.97\\t50\\n162\\t122.904214022\\t42.79\\t51\\n161\\t120.903815724\\t57.21\\t51\\n170\\t129.906224421\\t34.08\\t52\\n169\\t127.904463119\\t31.74\\t52\\n168\\t125.903311716\\t18.84\\t52\\n163\\t119.9040201\\t0.09\\t52\\n167\\t124.904430716\\t7.07\\t52\\n166\\t123.902817916\\t4.74\\t52\\n165\\t122.904270016\\t0.89\\t52\\n164\\t121.903043916\\t2.55\\t52\\n171\\t126.9044734\\t100\\t53\\n175\\t128.90477948\\t26.4006\\t54\\n174\\t127.903531315\\t1.9102\\t54\\n173\\t125.9042747\\t0.089\\t54\\n172\\t123.90589302\\t0.0952\\t54\\n178\\t131.90415351\\t26.9086\\t54\\n179\\t133.90539459\\t10.4357\\t54\\n176\\t129.90350808\\t4.071\\t54\\n177\\t130.90508241\\t21.2324\\t54\\n180\\t135.9072198\\t8.8573\\t54\\n181\\t132.90545193324\\t100\\t55\\n186\\t135.90457594\\t7.854\\t56\\n187\\t136.90582745\\t11.232\\t56\\n184\\t133.90450844\\t2.417\\t56\\n185\\t134.90568864\\t6.592\\t56\\n188\\t137.90524725\\t71.698\\t56\\n182\\t129.90632083\\t0.106\\t56\\n183\\t131.905061311\\t0.101\\t56\\n190\\t138.906353326\\t99.91\\t57\\n189\\t137.9071124\\t0.09\\t57\\n191\\t135.90717214\\t0.185\\t58\\n193\\t139.905438726\\t88.45\\t58\\n192\\t137.90599111\\t0.251\\t58\\n194\\t141.9092443\\t11.114\\t58\\n195\\t140.907652826\\t100\\t59\\n201\\t147.9168933\\t5.7\\t60\\n200\\t145.913116925\\t17.2\\t60\\n202\\t149.9208913\\t5.6\\t60\\n197\\t142.909814325\\t12.2\\t60\\n196\\t141.907723325\\t27.2\\t60\\n199\\t144.912573625\\t8.3\\t60\\n198\\t143.910087325\\t23.8\\t60\\n204\\t146.915138526\\t0\\t61\\n203\\t144.9127493\\t0\\t61\\n205\\t143.9119993\\t3.07\\t62\\n207\\t147.914822726\\t11.24\\t62\\n206\\t146.914897926\\t14.99\\t62\\n208\\t148.917184726\\t13.82\\t62\\n209\\t149.917275526\\t7.38\\t62\\n210\\t151.919732427\\t26.75\\t62\\n211\\t153.922209327\\t22.75\\t62\\n212\\t150.919850226\\t47.81\\t63\\n213\\t152.921230326\\t52.19\\t63\\n220\\t159.927054127\\t21.86\\t64\\n216\\t154.922622027\\t14.8\\t64\\n217\\t155.922122727\\t20.47\\t64\\n218\\t156.923960127\\t15.65\\t64\\n219\\t157.924103927\\t24.84\\t64\\n214\\t151.919791027\\t0.2\\t64\\n215\\t153.920865627\\t2.18\\t64\\n221\\t158.925346827\\t100\\t65\\n222\\t155.9242837\\t0.056\\t66\\n223\\t157.9244094\\t0.095\\t66\\n228\\t163.929174827\\t28.26\\t66\\n227\\t162.928731227\\t24.896\\t66\\n226\\t161.926798427\\t25.475\\t66\\n225\\t160.926933427\\t18.889\\t66\\n224\\t159.925197527\\t2.329\\t66\\n229\\t164.930322127\\t100\\t67\\n235\\t169.93546433\\t14.91\\t68\\n234\\t167.932370227\\t26.978\\t68\\n233\\t166.932048227\\t22.869\\t68\\n232\\t165.930293127\\t33.503\\t68\\n231\\t163.9292003\\t1.601\\t68\\n230\\t161.9287784\\t0.139\\t68\\n236\\t168.934213327\\t100\\t69\\n239\\t170.936325826\\t14.28\\t70\\n238\\t169.934761826\\t3.04\\t70\\n237\\t167.9338975\\t0.13\\t70\\n242\\t173.938862126\\t31.83\\t70\\n243\\t175.942571728\\t12.76\\t70\\n240\\t171.936381526\\t21.83\\t70\\n241\\t172.938210826\\t16.13\\t70\\n244\\t174.940771823\\t97.41\\t71\\n245\\t175.942686323\\t2.59\\t71\\n250\\t178.945816123\\t13.62\\t72\\n251\\t179.946550023\\t35.08\\t72\\n248\\t176.943220723\\t18.6\\t72\\n249\\t177.943698823\\t27.28\\t72\\n246\\t173.9400463\\t0.16\\t72\\n247\\t175.941408624\\t5.26\\t72\\n252\\t179.947464824\\t0.012\\t73\\n253\\t180.947995819\\t99.988\\t73\\n258\\t185.954364119\\t28.43\\t74\\n254\\t179.9467044\\t0.12\\t74\\n255\\t181.94820429\\t26.5\\t74\\n256\\t182.95022309\\t14.31\\t74\\n257\\t183.95093129\\t30.64\\t74\\n259\\t184.952955013\\t37.4\\t75\\n260\\t186.955753115\\t62.6\\t75\\n262\\t185.953838215\\t1.59\\t76\\n263\\t186.955750515\\t1.96\\t76\\n261\\t183.952489114\\t0.02\\t76\\n266\\t189.958447016\\t26.26\\t76\\n267\\t191.961480727\\t40.78\\t76\\n264\\t187.955838215\\t13.24\\t76\\n265\\t188.958147516\\t16.15\\t76\\n268\\t190.960594018\\t37.3\\t77\\n269\\t192.962926418\\t62.7\\t77\\n275\\t197.9678933\\t7.163\\t78\\n274\\t195.96495159\\t25.242\\t78\\n273\\t194.96479119\\t33.832\\t78\\n272\\t193.96268039\\t32.967\\t78\\n270\\t189.9599326\\t0.014\\t78\\n271\\t191.961038027\\t0.782\\t78\\n276\\t196.96656876\\t100\\t79\\n279\\t198.96827994\\t16.87\\t80\\n278\\t197.96676904\\t9.97\\t80\\n277\\t195.9658333\\t0.15\\t80\\n283\\t203.97349394\\t6.87\\t80\\n282\\t201.97064306\\t29.86\\t80\\n281\\t200.97030236\\t13.18\\t80\\n280\\t199.96832604\\t23.1\\t80\\n285\\t204.974427514\\t70.48\\t81\\n284\\t202.972344214\\t29.52\\t81\\n288\\t206.975896913\\t22.1\\t82\\n289\\t207.976652113\\t52.4\\t82\\n287\\t205.974465313\\t24.1\\t82\\n286\\t203.973043613\\t1.4\\t82\\n290\\t208.980398716\\t100\\t83\\n291\\t208.98243042\\t0\\t84\\n292\\t209.982873713\\t0\\t84\\n293\\t209.9871488\\t0\\t85\\n294\\t210.98749633\\t0\\t85\\n295\\t210.9906017\\t0\\t86\\n296\\t220.011394024\\t0\\t86\\n297\\t222.017577725\\t0\\t86\\n298\\t223.019735926\\t0\\t87\\n299\\t223.018502227\\t0\\t88\\n300\\t224.020211824\\t0\\t88\\n301\\t226.025409825\\t0\\t88\\n302\\t228.031070326\\t0\\t88\\n303\\t227.027752126\\t0\\t89\\n305\\t232.038055321\\t100\\t90\\n304\\t230.033133819\\t0\\t90\\n306\\t231.035884024\\t100\\t91\\n307\\t233.039635229\\t0\\t92\\n309\\t235.04392992\\t0.7204\\t92\\n308\\t234.04095212\\t0.0054\\t92\\n311\\t238.05078822\\t99.2742\\t92\\n310\\t236.04556802\\t0\\t92\\n313\\t237.04817342\\t0\\t93\\n312\\t236.0465705\\t0\\t93\\n315\\t239.05216342\\t0\\t94\\n314\\t238.04955992\\t0\\t94\\n317\\t241.05685152\\t0\\t94\\n316\\t240.05381352\\t0\\t94\\n319\\t244.0642045\\t0\\t94\\n318\\t242.05874262\\t0\\t94\\n320\\t241.05682912\\t0\\t95\\n321\\t243.061381125\\t0\\t95\\n326\\t247.0703545\\t0\\t96\\n327\\t248.0723495\\t0\\t96\\n324\\t245.065491222\\t0\\t96\\n325\\t246.067223722\\t0\\t96\\n322\\t243.061389122\\t0\\t96\\n323\\t244.06275262\\t0\\t96\\n328\\t247.0703076\\t0\\t97\\n329\\t249.074986728\\t0\\t97\\n332\\t251.0795875\\t0\\t98\\n333\\t252.0816265\\t0\\t98\\n330\\t249.074853524\\t0\\t98\\n331\\t250.076406122\\t0\\t98\\n334\\t252.0829805\\t0\\t99\\n335\\t257.0951057\\t0\\t100\\n337\\t260.1036534\\t0\\t101\\n336\\t258.0984315\\t0\\t101\\n338\\t259.1010311\\t0\\t102\\n339\\t262.1096322\\t0\\t103\\n340\\t265.1167046\\t0\\t104\\n341\\t268.1254557\\t0\\t105\\n342\\t271.133477\\t0\\t106\\n343\\t272.1380365\\t0\\t107\\n344\\t270.1346531\\t0\\t108\\n345\\t276.1511673\\t0\\t109\\n346\\t281.1620678\\t0\\t110\\n347\\t280.164478\\t0\\t111\\n348\\t285.1741178\\t0\\t112\\n349\\t284.1780886\\t0\\t113\\n350\\t289.1872879\\t0\\t114\\n351\\t288.1924992\\t0\\t115\\n352\\t292.20755101\\t0\\t117','[\\r\\n]+',0);for(h=0;h<k.length;h++){m=Sj(k[h],'\\t',0);c=gn(e,m[3]);i=Qi(m[1]);j=Qi(m[2]);b=new Et(ie(i+0.5),i,j,c.n);jn(c.e,new hj(b.f),b)}for(d=Xn(new Yn(Ht));wn(d.d);){c=ao(d);Ms(c);if(c.e.e==0){l=new Et(ie(c.f+0.5),c.f,100,c.n);jn(c.e,new hj(l.f),l)}}It=new Bp;k=Sj(\"1\\tAbu\\t2-Aminobutyric acid diradical\\tC4H7NO\\r\\n2\\tAcet\\tAcetyl\\tC2H3O\\r\\n3\\tAcm\\tAcetamidomethyl\\tC3H6NO\\r\\n4\\tAdao\\tAdamantyloxy\\tC10H15O\\r\\n5\\tAib\\talpha-Aminoisobutyric acid diradical\\tC4H7NO\\r\\n6\\tAla\\tAlainine diradical\\tC3H5NO\\r\\n7\\tArg\\tArginine diradical\\tC6H12N4O\\r\\n8\\tArgp\\tArginine triradical\\tC6H11N4O\\r\\n9\\tAsn\\tAsparagine diradical\\tC4H6N2O2\\r\\n10\\tAsnp\\tAsparagine triradical\\tC4H5N2O2\\r\\n11\\tAsp\\tAspartic acid diradical\\tC4H5NO3\\r\\n12\\tAspp\\tAspartic acid triradical\\tC4H4NO3\\r\\n13\\tAsu\\talpha-Aminosuberic acid diradical\\tC8H13NO3\\r\\n14\\tAsup\\talpha-Aminosuberic acid triradical\\tC8H12NO3\\r\\n15\\tBoc\\tt-Butoxycarbonyl\\tC5H9O2\\r\\n16\\tBom\\tBenzyloxymethyl\\tC8H9O\\r\\n17\\tBrz\\t2-Bromobenzyloxycarbonyl\\tC8H6BrO2\\r\\n18\\tBu\\tButyl\\tC4H9\\r\\n19\\tBum\\tt-Butoxymethyl\\tC5H11O\\r\\n20\\tBz\\tBenzoyl\\tC7H5O\\r\\n21\\tBzl\\tBenzyl\\tC7H7\\r\\n22\\tBn\\tBenzyl\\tC7H7\\r\\n23\\tBzlo\\tBenzyloxy\\tC7H7O\\r\\n24\\tCha\\tbeta-Cyclohexylalanine diradical\\tC9H15NO\\r\\n25\\tChxo\\tCyclohexyloxy\\tC6H11O\\r\\n26\\tCit\\tCitrulline diradical\\tC6H11N3O2\\r\\n27\\tCitp\\tCitrulline triradical\\tC6H10N3O2\\r\\n28\\tClz\\t2-Chlorobenzyloxycarbonyl\\tC8H6ClO2\\r\\n29\\tCp\\tCyclopentadienyl\\tC5H5\\r\\n30\\tCys\\tCysteine diradical\\tC3H5NOS\\r\\n31\\tCysp\\tCysteine triradical\\tC3H4NOS\\r\\n32\\tD\\tDeuterium\\t[2H]\\r\\n33\\tDde\\tDde\\tC10H13O2\\r\\n34\\tDnp\\t2,4-Dinitrophenyl\\tC6H3N2O4\\r\\n35\\tEt\\tEthyl\\tC2H5\\r\\n36\\tFmoc\\tFluorenylmethoxycarbonyl\\tC15H11O2\\r\\n37\\tFor\\tFormyl\\tCHO\\r\\n38\\tGln\\tGlutamine diradical\\tC5H8N2O2\\r\\n39\\tGlnp\\tGlutamine triradical\\tC5H7N2O2\\r\\n40\\tGlp\\tPyroglutamine\\tC5H5NO2\\r\\n41\\tGlu\\tGlutamic acid diradical\\tC5H7NO3\\r\\n42\\tGlup\\tGlutamic acid triradical\\tC5H6NO3\\r\\n43\\tGly\\tGlycine diradical\\tC2H3NO\\r\\n44\\tHci\\tHomocitrulline diradical\\tC7H13N3O2\\r\\n45\\tHcip\\tHomocitrulline triradical\\tC7H12N3O2\\r\\n46\\tHis\\tHistidine diradical\\tC6H7N3O\\r\\n47\\tHisp\\tHistidine triradical\\tC6H6N3O\\r\\n48\\tHser\\tHomoserine diradical\\tC4H7NO2\\r\\n49\\tHserp\\tHomoserine triradical\\tC4H6NO2\\r\\n50\\tHyp\\tHydroxyproline diradical\\tC5H7NO2\\r\\n51\\tHypp\\tHydroxyproline triradical\\tC5H6NO2\\r\\n52\\tIle\\tIsoleucine diradical\\tC6H11NO\\r\\n53\\tIvdde\\t1-[4,4-dimethyl-2,6-dioxocyclohexylidene)3-methylb\\tC14H21O2\\r\\n54\\tLeu\\tLeucine diradical\\tC6H11NO\\r\\n55\\tLys\\tLysine diradical\\tC6H12N2O\\r\\n56\\tLysp\\tLysine triradical\\tC6H11N2O\\r\\n57\\tMbh\\t4,4'-Dimethoxybenzhydryl\\tC15H15O2\\r\\n58\\tMe\\tMethyl\\tCH3\\r\\n59\\tMebzl\\t4-Methylbenzyl\\tC8H9\\r\\n60\\tMeobzl\\t4-Methoxybenzyl1-[4,4-dimethyl-2,6-dioxocyclohexyl\\tC8H9O\\r\\n61\\tMet\\tMethionine diradical\\tC5H9NOS\\r\\n62\\tMmt\\t4-Methoxytrityl\\tC20H17O\\r\\n63\\tMtc\\t2,2,5,7,8-pentamethylchroman-6-sulphonyl\\tC14H19O3S\\r\\n64\\tMtr\\t4-Methoxy-2,3,6-trimethylbenzenesulphonyl\\tC10H13O3S\\r\\n65\\tMts\\tMesitylene-2-sulphonyl\\tC9H11O2S\\r\\n66\\tMtt\\t4-Methyltrityl\\tC20H17\\r\\n67\\tNle\\tNorleucine diradical\\tC6H11NO\\r\\n68\\tNpys\\t3-Nitro-2-pyridinesulphenyl\\tC5H3N2O2S\\r\\n69\\tNva\\tNorvaline diradical\\tC5H9NO\\r\\n70\\tOdmab\\tOdmab\\tC20H26NO3\\r\\n71\\tOrn\\tOrnithine diradical\\tC5H10N2O\\r\\n72\\tOrnp\\tOrnithine triradical\\tC5H9N2O\\r\\n73\\tPbf\\t2,2,4,6,7-pentamethyldihydrobenzofurane-5-sulfonyl\\tC13H17O3S\\r\\n74\\tPen\\tPenicillamine diradical\\tC5H9NOS\\r\\n75\\tPenp\\tPenicillamine triradical\\tC5H8NOS\\r\\n76\\tPh\\tPhenyl\\tC6H5\\r\\n77\\tPhe\\tPhenylalanine diradical\\tC9H9NO\\r\\n78\\tPhepcl\\t4-Chlorophenylalanine diradical\\tC9H8ClNO\\r\\n79\\tPhg\\tPhenylglycine\\tC8H7NO\\r\\n80\\tPmc\\t2,2,5,7,8-Pentamethylchroman-6-sulphonyl\\tC14H19O3S\\r\\n81\\tPro\\tProline diradical\\tC5H7NO\\r\\n82\\tPyr\\tPyroglutamine\\tC5H5NO2\\r\\n83\\tSar\\tSarcosine diradical\\tC3H5NO\\r\\n84\\tSer\\tSerine diradical\\tC3H5NO2\\r\\n85\\tSerp\\tSerine triradical\\tC3H4NO2\\r\\n86\\tSta\\tStatine diradical\\tC8H15NO2\\r\\n87\\tStap\\tStatine triradical\\tC8H14NO2\\r\\n88\\tTacm\\tTrimethylacetamidomethyl\\tC6H12NO\\r\\n89\\tTbdms\\tt-Butyldimethylsilyl\\tC6H15Si\\r\\n90\\tTbu\\tt-Butyl\\tC4H9\\r\\n91\\tTbuo\\tt-Butoxy\\tC4H9O\\r\\n92\\tTbuthio\\tt-Butylthio\\tC4H9S\\r\\n93\\tTfa\\tTrifluoroacetyl\\tC2F3O\\r\\n94\\tThi\\tbeta-(2-thenyl)alanine\\tC7H7NOS\\r\\n95\\tThr\\tThreonine diradical\\tC4H7NO2\\r\\n96\\tThrp\\tThreonine triradical\\tC4H6NO2\\r\\n97\\tTips\\tTriisopropylsilyl\\tC9H21Si\\r\\n98\\tTms\\tTrimethylsilyl\\tC3H9Si\\r\\n99\\tTos\\tTosyl\\tC7H7O2S\\r\\n100\\tTrp\\tTryptophan diradical\\tC11H10N2O\\r\\n101\\tTrpp\\tTryptophan triradical\\tC11H9N2O\\r\\n102\\tTrt\\tTrityl\\tC19H15\\r\\n103\\tTyr\\tTyrosine diradical\\tC9H9NO2\\r\\n104\\tTyrp\\tTyrosine triradical\\tC9H8NO2\\r\\n105\\tVal\\tValine\\tC5H9NO\\r\\n106\\tValoh\\tbeta-Hydroxyvaline diradical\\tC5H9NO2\\r\\n107\\tValohp\\tbeta-Hydroxyvaline triradical\\tC5H8NO2\\r\\n108\\tXan\\tXanthyl\\tC13H9O\\r\\n109\\tZ\\tBenzyloxycarbonyl\\tC8H7O2\\r\\n110\\tT\\tTritium\\t[3H]\",'[\\r\\n]+',0);for(f=0;f<k.length;f++){m=Sj(k[f],'\\t',0);try{kn(It,m[1],new Dt(m[1],m[2],m[3],Ht,It))}catch(a){a=Jg(a);if(!be(a,4))throw Ig(a)}}}\n\tvar Vu=2147483647,Wu={3:1,9:1},Xu={3:1,7:1,9:1},Yu={3:1},Zu=4194303,$u=1048575,_u=524288,av=4194304,bv=17592186044416,cv=-9223372036854775808,dv=1000000000,ev=65536,fv=-2147483648,gv=65535,hv={28:1,3:1},iv=100000,jv=1000000,kv=10000000000,lv=0.3010299956639812,mv=4294967296,nv=1073741824,ov={35:1},pv={37:1,27:1},qv={3:1,51:1},rv={3:1,50:1},sv={3:1,18:1,29:1,26:1},tv=4.9E-324,uv=5.4857990946E-4;var _,Mh,Kg={},Gg=-1;Mg(1,null,{},fb);_.eQ=function gb(a){return this===a};_.gC=function ib(){return this.cZ};_.hC=function kb(){return Pb(this)};_.tS=function mb(){return eb(this)};_.toString=function(){return this.tS()};$d={3:1,116:1,18:1,2:1};Pg();var $d;Mg(68,1,{},xi);_.B=function yi(a){var b;b=new xi;b.j=4;a>1?(b.f=Fi(this,a-1)):(b.f=this);return b};_.C=function Ei(){vi(this);return this.e};_.D=function Gi(){return wi(this)};_.F=function Ii(){vi(this);return this.o};_.G=function Ki(){return (this.j&4)!=0};_.H=function Li(){return (this.j&1)!=0};_.tS=function Oi(){return ((this.j&2)!=0?'interface ':(this.j&1)!=0?'':'class ')+(vi(this),this.q)};_.j=0;_.n=0;var ui=1;var af=Ai(1),oe=Ai(0),Qe=Ai(68);Mg(9,1,Wu);_.r=function rb(){return this.k};_.tS=function sb(){return qb(this)};var hf=Ai(9);Mg(7,9,Xu);var Ue=Ai(7);Mg(10,7,Xu,vb);var bf=Ai(10);Mg(83,10,Xu);var qe=Ai(83);Mg(38,83,{38:1,3:1,7:1,9:1},zb);_.r=function Ab(){yb(this);return this.f};var wb;var ne=Ai(38);var Cb;Mg(117,1,{});var pe=Ai(117);var Gb=0,Hb=0,Ib=0,Jb=-1;Mg(138,1,{});var nf=Ai(138);Mg(139,138,{});var of=Ai(139);Mg(112,139,{},Zb);_.e={l:0,m:0,h:0};_.f=0;var Ub;var re=Ai(112);Mg(107,117,{},jc);var fc;var se=Ai(107);var mc;Mg(133,1,{});var we=Ai(133);Mg(84,133,{},sc);_.s=function tc(a,b){var c={},j;a.fnStack=[];var d=arguments.callee.caller;while(d){var e=(nc(),d.name||(d.name=qc(d.toString())));a.fnStack.push(e);var f=':'+e;var g=c[f];if(g){var h,i;for(h=0,i=g.length;h<i;h++){if(g[h]===d){return}}}(g||(c[f]=[])).push(d);d=d.caller}};_.t=function uc(a){var b,c,d,e;d=(nc(),a&&a.fnStack&&a.fnStack instanceof Array?a.fnStack:[]);c=d.length;e=Ud(cf,Yu,31,c,0,1);for(b=0;b<c;b++){e[b]=new Gj(d[b],null,-1)}return e};var te=Ai(84);Mg(134,133,{});_.s=function xc(c,d){function e(b){if(!('stack' in b)){try{throw b}catch(a){}}return b}\n\tvar f;typeof d=='string'?(f=e(new Error(d))):d instanceof Object&&'stack' in d?(f=d):(f=e(new Error));c.__gwt$backingJsError=f};_.u=function yc(a,b,c,d){return new Gj(b,a+'@'+d,c<0?-1:c)};\n\t_.t=function zc(a){var b,c,d,e,f,g,h;e=(nc(),h=a.__gwt$backingJsError,h&&h.stack?h.stack.split('\\n'):[]);f=Ud(cf,Yu,31,0,0,1);b=0;d=e.length;if(d==0){return f}g=wc(this,e[0]);Lj(g.g,'anonymous')||(f[b++]=g);for(c=1;c<d;c++){f[b++]=wc(this,e[c])}return f};var ve=Ai(134);Mg(85,134,{},Ac);_.u=function Bc(a,b,c,d){return new Gj(b,a,-1)};var ue=Ai(85);Mg(132,1,{});_.w=function Mc(){return null};var Ee=Ai(132);Mg(66,132,{66:1},Qc,Rc);_.eQ=function Sc(a){if(!be(a,66)){return false}return this.d==a.d};_.v=function Tc(){return Wc};_.hC=function Uc(){return Pb(this.d)};_.tS=function Vc(){var a,b,c;c=new wk('[');for(b=0,a=this.d.length;b<a;b++){b>0&&(c.d+=',',c);rk(c,Nc(this,b))}c.d+=']';return c.d};var xe=Ai(66);Mg(76,132,{},$c);_.v=function _c(){return bd};_.tS=function ad(){return gi(),''+this.d};_.d=false;var Xc,Yc;var ye=Ai(76);Mg(110,10,Xu,cd);var ze=Ai(110);Mg(106,132,{},fd);_.v=function gd(){return jd};_.tS=function hd(){return 'null'};var dd;var Ae=Ai(106);Mg(8,132,{8:1},kd);_.eQ=function ld(a){if(!be(a,8)){return false}return this.d==a.d};_.v=function md(){return pd};_.hC=function nd(){return ie((new Ti(this.d)).d)};_.tS=function od(){return this.d+''};_.d=0;var Be=Ai(8);Mg(54,132,{54:1},vd,wd);_.eQ=function xd(a){if(!be(a,54)){return false}return this.d==a.d};_.v=function yd(){return Bd};_.hC=function zd(){return Pb(this.d)};_.tS=function Ad(){var a,b,c,d,e,f;f=new wk('{');a=true;e=qd(this,Ud(gf,Yu,2,0,4,1));for(c=0,d=e.length;c<d;++c){b=e[c];a?(a=false):(f.d+=', ',f);sk(f,Eb(b));f.d+=':';rk(f,rd(this,b))}f.d+='}';return f.d};var Ce=Ai(54);var Cd;Mg(11,132,{11:1},Kd);_.eQ=function Ld(a){if(!be(a,11)){return false}return Lj(this.d,a.d)};_.v=function Md(){return Qd};_.hC=function Nd(){return lk(this.d)};_.w=function Od(){return this};_.tS=function Pd(){return Eb(this.d)};var De=Ai(11);var Tg;var jh;var Hh,Ih,Jh,Kh;Mg(60,9,Wu);var Te=Ai(60);Mg(17,60,Wu);var Oe=Ai(17);Mg(78,17,Wu,Wh);var Je=Ai(78);Mg(45,1,{});_.tS=function $h(){return this.d};var Ke=Ai(45);Mg(41,10,Xu,_h);var Le=Ai(41);Mg(49,10,Xu,ai,bi);var Xe=Ai(49);Mg(109,49,Xu,ci);var Me=Ai(109);Mg(43,10,Xu,di);var Ne=Ai(43);Mg(52,1,{3:1,52:1,18:1},hi);_.A=function ji(a){return ii(this.d,a.d)};_.eQ=function ki(a){return be(a,52)&&a.d==this.d};_.hC=function li(){return this.d?1231:1237};_.tS=function mi(){return ''+this.d};_.d=false;var ei,fi;var Pe=Ai(52);Mg(44,1,{3:1,44:1});var Pi;var _e=Ai(44);Mg(6,44,{3:1,18:1,6:1,44:1},Ti);_.A=function Vi(a){return Ui(this.d,a.d)};_.eQ=function Wi(a){return Si(this,a)};_.hC=function Xi(){return ie(this.d)};_.tS=function $i(){return ''+this.d};_.d=0;var Re=Ai(6);Mg(29,1,{3:1,18:1,29:1});_.A=function aj(a){return this.e-a.e};_.eQ=function bj(a){return this===a};_.hC=function cj(){return Pb(this)};_.tS=function dj(){return this.d!=null?this.d:''+this.e};_.e=0;var Se=Ai(29);Mg(56,10,Xu,ej);var Ve=Ai(56);Mg(111,10,Xu,fj);var We=Ai(111);Mg(19,44,{3:1,18:1,19:1,44:1},hj);_.A=function jj(a){return gj(this,a)};_.eQ=function kj(a){return be(a,19)&&a.d==this.d};_.hC=function lj(){return this.d};_.tS=function oj(){return ''+this.d};_.d=0;var Ye=Ai(19);var rj;Mg(59,10,Xu,Dj,Ej);var Ze=Ai(59);Mg(20,56,{3:1,7:1,20:1,9:1},Fj);var $e=Ai(20);Mg(31,1,{3:1,31:1},Gj);_.eQ=function Hj(a){var b;if(be(a,31)){b=a;return this.f==b.f&&Rq(this.g,b.g)&&Rq(this.d,b.d)&&Rq(this.e,b.e)}return false};_.hC=function Ij(){return ip(Xd(Td(af,1),Yu,1,3,[qj(this.f),this.d,this.g,this.e]))};_.tS=function Jj(){return this.d+'.'+this.g+'('+(this.e!=null?this.e:'Unknown Source')+(this.f>=0?':'+this.f:'')+')'};_.f=0;var cf=Ai(31);var gf=Ai(2);var gk,hk=0,ik;Mg(34,45,{116:1},ok,pk);var df=Ai(34);Mg(23,45,{116:1},uk,vk,wk);var ef=Ai(23);Mg(67,49,Xu,xk);var ff=Ai(67);Mg(42,10,Xu,zk,Ak);var jf=Ai(42);Mg(14,44,{3:1,18:1,44:1,14:1},Qk,Rk,Sk,Tk);_.A=function Wk(a){return Kk(this,a)};_.eQ=function Zk(a){var b;if(this===a){return true}if(be(a,14)){b=a;return b.j==this.j&&(this.d<54?b.k==this.k:ol(this.f,b.f))}return false};_.hC=function $k(){var a;if(this.e!=0){return this.e}if(this.d<54){a=oh(this.k);this.e=Eh(lh(a,{l:Zu,m:Zu,h:$u}));this.e=33*this.e+Eh(lh(Ah(a,32),{l:Zu,m:Zu,h:$u}));this.e=17*this.e+ie(this.j);return this.e}this.e=17*rl(this.f)+ie(this.j);return this.e};_.tS=function bl(){return Pk(this)};_.d=0;_.e=0;_.g=0;_.j=0;_.k=0;var Bk,Ck,Dk,Ek,Fk,Gk,Hk,Ik;var kf=Ai(14);Mg(5,44,{3:1,18:1,44:1,5:1},zl,Al,Bl,Cl,Dl,El);_.A=function Gl(a){return ll(this,a)};_.eQ=function Hl(a){return ol(this,a)};_.hC=function Jl(){return rl(this)};_.tS=function Ll(){return Zl(this,0)};_.e=-2;_.f=0;_.g=0;_.j=0;var dl,el,fl,gl,hl,il;var lf=Ai(5);var Ul,Vl;var lm,mm,nm;Mg(24,29,{3:1,18:1,29:1,24:1},Im);var zm,Am,Bm,Cm,Dm,Em,Fm,Gm;var mf=Bi(24,Jm);Mg(130,1,{});_.J=function Om(a){return Lm(this,a)};_.L=function Pm(a){var b,c,d;d=this.K();a.length<d&&(a=Sd(a,d));c=this.I();for(b=0;b<d;++b){a[b]=c.S()}a.length>d&&(a[d]=null);return a};_.tS=function Qm(){return Nm(this)};var pf=Ai(130);Mg(129,1,{50:1});_.M=function Um(a){return Rm(this,a)};_.N=function Vm(a){return !!Sm(this,a)};_.eQ=function Wm(a){var b,c,d;if(a===this){return true}if(!be(a,50)){return false}d=a;if(this.K()!=d.K()){return false}for(c=d.O().I();c.R();){b=c.S();if(!this.M(b)){return false}}return true};_.P=function Xm(a){return Zm(Sm(this,a))};_.hC=function $m(){return np(this.O())};_.K=function _m(){return this.O().K()};_.tS=function an(){var a,b,c,d;d=new wk('{');a=false;for(c=this.O().I();c.R();){b=c.S();a?(d.d+=', ',d):(a=true);sk(d,Tm(this,b.X()));d.d+='=';sk(d,Tm(this,b.Y()))}d.d+='}';return d.d};var Ef=Ai(129);Mg(79,129,{50:1});_.N=function ln(a){return bn(this,a)};_.O=function mn(){return new sn(this)};_.P=function nn(a){return fn(this,a)};_.Q=function on(a,b){return jn(this,a,b)};_.K=function pn(){return this.e};_.e=0;var sf=Ai(79);Mg(131,130,ov);_.eQ=function qn(a){var b;if(a===this){return true}if(!be(a,35)){return false}b=a;if(b.K()!=this.K()){return false}return Mm(this,b)};_.hC=function rn(){return np(this)};var Jf=Ai(131);Mg(61,131,ov,sn);_.J=function tn(a){if(be(a,27)){return Rm(this.d,a)}return false};_.I=function un(){return new yn(this.d)};_.K=function vn(){return this.d.e};var rf=Ai(61);Mg(62,1,{},yn);_.R=function zn(){return wn(this)};_.S=function An(){return xn(this)};var qf=Ai(62);Mg(135,130,{51:1});_.T=function Bn(a,b){throw new Ak('Add not supported on this list')};_.U=function Cn(a){this.T(this.K(),a);return true};_.eQ=function Dn(a){var b,c,d,e,f;if(a===this){return true}if(!be(a,51)){return false}f=a;if(this.K()!=f.K()){return false}e=f.I();for(c=this.I();c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=(Fc(e.d<e.f.K()),e.f.V(e.e=e.d++));if(!(ge(b)===ge(d)||b!=null&&hb(b,d))){return false}}return true};_.hC=function En(){return op(this)};_.I=function Fn(){return new Kn(this)};_.W=function Gn(a){throw new Ak('Remove not supported on this list')};var vf=Ai(135);Mg(21,1,{},Kn);_.R=function Ln(){return Hn(this)};_.S=function Mn(){return In(this)};_.d=0;_.e=-1;var tf=Ai(21);Mg(90,21,{},Nn);var uf=Ai(90);Mg(63,131,ov,Pn);_.J=function Qn(a){return bn(this.d,a)};_.I=function Rn(){return On(this)};_.K=function Sn(){return this.d.e};var xf=Ai(63);Mg(81,1,{},Un);_.R=function Vn(){return wn(this.d)};_.S=function Wn(){return Tn(this)};var wf=Ai(81);Mg(25,130,{},Yn);_.J=function Zn(a){return cn(this.d,a)};_.I=function $n(){return Xn(this)};_.K=function _n(){return this.d.e};var zf=Ai(25);Mg(82,1,{},bo);_.R=function co(){return wn(this.d)};_.S=function eo(){return ao(this)};var yf=Ai(82);Mg(37,1,pv);_.eQ=function ho(a){var b;if(!be(a,27)){return false}b=a;return Rq(this.f,b.X())&&Rq(this.g,b.Y())};_.X=function io(){return this.f};_.Y=function jo(){return this.g};_.hC=function ko(){return Sq(this.f)^Sq(this.g)};_.Z=function lo(a){return fo(this,a)};_.tS=function mo(){return this.f+'='+this.g};var Af=Ai(37);Mg(53,37,{37:1,53:1,27:1},no);var Bf=Ai(53);Mg(80,37,pv,oo);_.Z=function po(a){throw new zk};var Cf=Ai(80);Mg(136,1,{27:1});_.eQ=function qo(a){var b;if(!be(a,27)){return false}b=a;return Rq(this.X(),b.X())&&Rq(this.Y(),b.Y())};_.hC=function ro(){return Sq(this.X())^Sq(this.Y())};_.tS=function so(){return this.X()+'='+this.Y()};var Df=Ai(136);Mg(137,129,{50:1});_.M=function yo(a){return to(this,a)};_.N=function zo(a){return uo(this,a)};_.O=function Ao(){return new Do(this)};_.P=function Bo(a){return vo(this,a)};var If=Ai(137);Mg(73,131,ov,Do);_.J=function Eo(a){return be(a,27)&&to(this.d,a)};_.I=function Fo(){return this.d.$()};_.K=function Go(){return this.d.K()};var Ff=Ai(73);Mg(13,131,ov,Io);_.J=function Jo(a){return uo(this.d,a)};_.I=function Ko(){return Ho(this)};_.K=function Lo(){return this.d.g};var Hf=Ai(13);Mg(97,1,{},No);_.R=function Oo(){return Hn(this.d.d)};_.S=function Po(){return Mo(this)};var Gf=Ai(97);Mg(46,135,qv,Zo,$o);_.T=function _o(a,b){Ro(this,a,b)};_.U=function ap(a){return So(this,a)};_.J=function bp(a){return Uo(this,a,0)!=-1};_.V=function cp(a){return To(this,a)};_.W=function dp(a){return Vo(this,a)};_.K=function ep(){return this.e.length};_.L=function hp(a){return Yo(this,a)};var Kf=Ai(46);var qp;Mg(108,1,{},sp);_.ab=function tp(a,b){Hc(a);Hc(b);return ak(a,b)};var Lf=Ai(108);Mg(115,10,Xu,xp);var Mf=Ai(115);Mg(114,10,Xu,yp);var Nf=Ai(114);Mg(22,79,rv,Bp);var Of=Ai(22);Mg(75,1,{},Jp);_.bb=function Kp(a){var b,c,d,e,f,g,h,i;for(g=Gp(this),h=0,i=g.length;h<i;++h){f=g[h];for(c=this.d[f],d=0,e=c.length;d<e;++d){b=c[d];if(zp(a,b.Y())){return true}}}return false};_.cb=function Lp(){return Object.create(null)};_.db=function Mp(){return new Op(this)};var Sf=Ai(75);Mg(102,1,{},Op);_.R=function Pp(){return Np(this)};_.S=function Qp(){return Fc(Np(this)),this.j=this.d[this.f++],this.j};_.e=-1;_.f=0;_.j=null;var Pf=Ai(102);Mg(100,75,{},Rp);_.bb=function Sp(a){var b=this.d;for(var c in b){if(c==parseInt(c,10)){var d=b[c];for(var e=0,f=d.length;e<f;++e){var g=d[e];var h=g.Y();if(this.eb(a,h)){return true}}}}return false};_.cb=function Tp(){return {}};_.db=function Up(){var a=this.fb();var b=this.d;for(var c in b){if(c==parseInt(c,10)){var d=b[c];for(var e=0,f=d.length;e<f;++e){a.U(d[e])}}}return a.I()};_.eb=function Vp(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)};_.fb=function Wp(){return new Xp(this)};var Rf=Ai(100);Mg(101,46,qv,Xp);_.W=function Yp(a){var b;return b=Vo(this,a),Ip(this.d,b.X()),b};var Qf=Ai(101);Mg(103,1,{},Zp);_.gb=function $p(){return new Jp};_.hb=function _p(){return new oq};var Vf=Ai(103);var aq;Mg(105,103,{},eq);_.hb=function fq(){return new Nq};var Tf=Ai(105);Mg(104,103,{},gq);_.gb=function hq(){return new Rp};_.hb=function iq(){return new Eq};var Uf=Ai(104);Mg(64,1,{},oq);_.bb=function pq(a){return jq(this,a)};_.ib=function qq(){return Object.create(null)};_.db=function rq(){var a;a=this.lb();return new xq(this,a)};_.jb=function sq(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)};_.kb=function tq(a){return this.d[a]};_.lb=function uq(){return kq(this)};_.mb=function vq(a){return new Aq(this,a)};_.nb=function wq(a,b){return lq(this,a,b)};var _f=Ai(64);Mg(89,1,{},xq);_.R=function yq(){return this.d<this.f.length};_.S=function zq(){return Fc(this.d<this.f.length),new Aq(this.e,this.f[this.d++])};_.d=0;var Wf=Ai(89);Mg(71,136,{27:1},Aq);_.X=function Bq(){return this.e};_.Y=function Cq(){return this.d.kb(this.e)};_.Z=function Dq(a){return this.d.nb(this.e,a)};var Xf=Ai(71);Mg(86,64,{},Eq);_.bb=function Fq(a){var b=this.d;for(var c in b){if(c.charCodeAt(0)==58){var d=b[c];if(this.jb(a,d)){return true}}}return false};_.ib=function Gq(){return {}};_.db=function Hq(){var a=this.ob();for(var b in this.d){if(b.charCodeAt(0)==58){var c=this.mb(b.substring(1));a.U(c)}}return a.I()};_.kb=function Iq(a){return this.d[':'+a]};_.ob=function Jq(){return new Lq(this)};_.nb=function Kq(a,b){return lq(this,':'+a,b)};var Zf=Ai(86);Mg(88,46,qv,Lq);_.W=function Mq(a){var b;return b=Vo(this,a),mq(this.d,':'+b.X()),b};var Yf=Ai(88);Mg(87,64,{},Nq);_.bb=function Oq(a){var b;b=this.d['__proto__'];if(!(b===undefined)&&(ge(a)===ge(b)||a!=null&&hb(a,b))){return true}return jq(this,a)};_.lb=function Pq(){var a;a=kq(this);!(this.d['__proto__']===undefined)&&(a[a.length]='__proto__');return a};var $f=Ai(87);var ag=Ci();Mg(77,10,Xu,Qq);var bg=Ai(77);Mg(74,135,qv,Uq);_.T=function Vq(a,b){Xq(a,this.d.e.length+1);Ro(this.d,a,b)};_.U=function Wq(a){return Tq(this,a)};_.J=function Yq(a){return Uo(this.d,a,0)!=-1};_.V=function Zq(a){return Xq(a,this.d.e.length),To(this.d,a)};_.I=function $q(){return new Kn(this.d)};_.W=function _q(a){return Xq(a,this.d.e.length),this.d.W(a)};_.K=function ar(){return this.d.e.length};_.L=function br(a){return Yo(this.d,a)};_.tS=function cr(){return Nm(this.d)};var ng=Ai(74);Mg(113,74,qv,fr);var cg=Ai(113);Mg(58,137,rv,vr,wr);_.$=function xr(){return new Dr(this)};_.O=function yr(){return new Hr(this)};_._=function zr(a){var b,c,d;d=this.f;while(d){b=this.e.ab(a,d.f);if(b==0){return d}c=b<0?0:1;d=d.d[c]}return null};_.K=function Ar(){return this.g};_.g=0;var lg=Ai(58);Mg(72,1,{},Dr);_.R=function Fr(){return Hn(this.d)};_.S=function Gr(){return Br(this)};var dg=Ai(72);Mg(12,73,ov,Hr);var eg=Ai(12);Mg(40,53,{37:1,53:1,27:1,40:1},Ir);_.e=false;var fg=Ai(40);Mg(65,1,{},Jr);_.tS=function Kr(){return 'State: mv='+this.f+' value='+this.g+' done='+this.d+' found='+this.e};_.d=false;_.e=false;_.f=false;var gg=Ai(65);Mg(26,29,sv,Qr);_.pb=function Rr(){return false};_.qb=function Sr(){return false};var Lr,Mr,Nr,Or;var kg=Bi(26,Tr);Mg(94,26,sv,Ur);_.qb=function Vr(){return true};var hg=Bi(94,null);Mg(95,26,sv,Wr);_.pb=function Xr(){return true};_.qb=function Yr(){return true};var ig=Bi(95,null);Mg(96,26,sv,Zr);_.pb=function $r(){return true};var jg=Bi(96,null);Mg(57,131,{3:1,35:1},as,bs);_.J=function cs(a){return uo(this.n,a)};_.I=function ds(){return Ho(new Io(this.n))};_.K=function es(){return this.n.g};var mg=Ai(57);Mg(32,1,{18:1,32:1},ls,ms,ns,os);_.A=function ps(a){if(!be(a,32))throw new Ak('Not comparable: Atoms and '+wi(jb(a)));return fs(this,a)};_.eQ=function qs(a){return gs(this,a)};_.hC=function rs(){var a;a=this.d+this.o;return lk(a)};_.tS=function ss(){return ks(this,null)};_.d=0;_.e=0;_.f=0;_.g=0;_.j=0;_.k=0;_.n=0;var og=Ai(32);Mg(33,58,rv,Hs);_.tS=function Is(){return Es(this)};_.d=10000;var qg=Ai(33);Mg(98,1,{},Js);_.ab=function Ks(a,b){return -ak(a.Y(),b.Y())};var pg=Ai(98);Mg(55,1,{18:1},Qs,Rs,Ss);_.A=function Ts(a){this.n+'-'+a.n;return _j(this.n,a.n)};_.eQ=function Us(a){var b;if(this===a)return true;if(rg!=jb(a))return false;b=a;if(Lj(this.n,b.n))return true;return false};_.tS=function Vs(){return Ps(this)};_.d=0;_.f=0;_.g=0;_.k=0;var rg=Ai(55);Mg(99,1,{18:1},Zs);_.A=function $s(a){return gj(new hj(this.d.f-this.d.g),qj(a.d.f-a.d.g))};_.tS=function _s(){return this.d.o+' - '+this.d.g+' to '+this.d.f+' - current: '+this.e};_.e=0;_.f=0;_.g=0;var sg=Ai(99);Mg(47,1,{},it,jt);_.tS=function kt(){return ht(this)};_.f=false;_.j=false;var ug=Ai(47);Mg(30,57,{3:1,35:1},wt,xt,yt);_.tS=function zt(){return vt(this)};_.d=0;_.e='';_.j=false;_.k=0;var tg=Ai(30);Mg(70,1,{},Dt);var vg=Ai(70);Mg(39,1,{18:1,39:1},Et);_.A=function Ft(a){var b;if(be(a,39)){b=a;return this.f=b.f}else throw new Ak('Cannot compare Isotope to '+a)};_.tS=function Gt(){return 'Number: '+this.f+' - mass: '+this.e+' - percentage: '+this.g+' - symbol: '+this.d};_.e=0;_.f=0;_.g=0;var wg=Ai(39);var Ht,It;Mg(4,7,{3:1,7:1,9:1,4:1},Kt);var xg=Ai(4);Mg(91,1,{},St);_.d=0;_.e=0;_.j=null;_.k=0;var Lt=1;var Ag=Ai(91);Mg(48,1,{},_t,au,bu);_.e=0;var zg=Ai(48);Mg(92,1,{},du);_.ab=function eu(a,b){return cu(this,a,b)};var yg=Ai(92);var fu;Mg(93,1,{},ku);_.d=0;_.e=0;_.f=null;var Bg=Ai(93);var lu;Mg(128,1,{},ru);_.rb=function qu(){};var pu=null;var Cg=Ai(128);Mg(69,1,{18:1},Ku);_.A=function Lu(a){return Ju(this,a)};_.d=0;_.f=0;var Dg=Ai(69);Mg(16,1,{},Nu,Ou,Pu);var Eg=Ai(16);Mg(15,1,{},Tu);var Fg=Ai(15);var me=Di('I'),Fe=Ai(119),Ge=Ai(121),He=Ai(null),Ie=Ai(124),je=Di('B'),le=Di('D'),ag=Ci(),ke=Di('C');_=Rg('$wnd.CI.Chemcalc');_.analyseMF=uu;_.chargePeptide=vu;_.convertAASequence=xu;_.generatePeptideFragments=zu;_.getInfo=Au;_.mfFromMonoisotopicMass=Bu;_.aa=pu;var Uu=Qh();var gwtOnLoad=gwtOnLoad=Ph;Nh(Th);Rh('permProps',[[['user.agent','safari']]]);$sendStats('moduleStartup', 'moduleEvalEnd');gwtOnLoad(__gwtModuleFunction.__errFn, __gwtModuleFunction.__moduleName, __gwtModuleFunction.__moduleBase, __gwtModuleFunction.__softPermutationId,__gwtModuleFunction.__computePropValue);$sendStats('moduleStartup', 'end');$gwt && $gwt.permProps && __gwtModuleFunction.__moduleStartupDone($gwt.permProps);\n\t//# sourceURL=chemcalc-0.js\n\t\n\t        // End GWT code\n\t\n\t        var toReturn = $wnd[\"CI\"][\"Chemcalc\"];\n\t\n\t        toReturn.version = '2.1.6';\n\t\n\t        return toReturn;\n\t    }\n\t\n\t    var fakeWindow = {};\n\t\n\t    if (typeof module !== 'undefined' && module.exports) { // NodeJS\n\t        var timers = __webpack_require__(9);\n\t        fakeWindow.setTimeout = timers.setTimeout;\n\t        fakeWindow.clearTimeout = timers.clearTimeout;\n\t        fakeWindow.setInterval = timers.setInterval;\n\t        fakeWindow.clearInterval = timers.clearInterval;\n\t        fakeWindow.document = {};\n\t        module.exports = getExports(fakeWindow);\n\t    } else { // Browser\n\t        if (true) {\n\t            // Timer proxies\n\t            fakeWindow.setTimeout = window.setTimeout.bind(window);\n\t            fakeWindow.clearTimeout = window.clearTimeout.bind(window);\n\t            fakeWindow.setInterval = window.setInterval.bind(window);\n\t            fakeWindow.clearInterval = window.clearInterval.bind(window);\n\t            fakeWindow.document = window.document;\n\t        } else {\n\t            fakeWindow = window;\n\t        }\n\t\n\t        if (true) { // AMD\n\t            !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t                return getExports(fakeWindow);\n\t            }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t        } else { // Global\n\t            var path = [\"CI\",\"Chemcalc\"];\n\t            var l = path.length - 1;\n\t            var obj = window;\n\t            for (var i = 0; i < l; i++) {\n\t                obj = obj[path[i]] || (obj[path[i]] = {});\n\t            }\n\t            obj[path[l]] = getExports(fakeWindow);\n\t        }\n\t    }\n\t\n\t})();\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(10).nextTick;\n\tvar apply = Function.prototype.apply;\n\tvar slice = Array.prototype.slice;\n\tvar immediateIds = {};\n\tvar nextImmediateId = 0;\n\t\n\t// DOM APIs, for completeness\n\t\n\texports.setTimeout = function() {\n\t  return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n\t};\n\texports.setInterval = function() {\n\t  return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n\t};\n\texports.clearTimeout =\n\texports.clearInterval = function(timeout) { timeout.close(); };\n\t\n\tfunction Timeout(id, clearFn) {\n\t  this._id = id;\n\t  this._clearFn = clearFn;\n\t}\n\tTimeout.prototype.unref = Timeout.prototype.ref = function() {};\n\tTimeout.prototype.close = function() {\n\t  this._clearFn.call(window, this._id);\n\t};\n\t\n\t// Does not start the time, just sets up the members needed.\n\texports.enroll = function(item, msecs) {\n\t  clearTimeout(item._idleTimeoutId);\n\t  item._idleTimeout = msecs;\n\t};\n\t\n\texports.unenroll = function(item) {\n\t  clearTimeout(item._idleTimeoutId);\n\t  item._idleTimeout = -1;\n\t};\n\t\n\texports._unrefActive = exports.active = function(item) {\n\t  clearTimeout(item._idleTimeoutId);\n\t\n\t  var msecs = item._idleTimeout;\n\t  if (msecs >= 0) {\n\t    item._idleTimeoutId = setTimeout(function onTimeout() {\n\t      if (item._onTimeout)\n\t        item._onTimeout();\n\t    }, msecs);\n\t  }\n\t};\n\t\n\t// That's not how node.js implements it but the exposed api is the same.\n\texports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n\t  var id = nextImmediateId++;\n\t  var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\t\n\t  immediateIds[id] = true;\n\t\n\t  nextTick(function onNextTick() {\n\t    if (immediateIds[id]) {\n\t      // fn.call() is faster so we optimize for the common use-case\n\t      // @see http://jsperf.com/call-apply-segu\n\t      if (args) {\n\t        fn.apply(null, args);\n\t      } else {\n\t        fn.call(null);\n\t      }\n\t      // Prevent ids from leaking\n\t      exports.clearImmediate(id);\n\t    }\n\t  });\n\t\n\t  return id;\n\t};\n\t\n\texports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n\t  delete immediateIds[id];\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9).setImmediate, __webpack_require__(9).clearImmediate))\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t// shim for using process in browser\n\t\n\tvar process = module.exports = {};\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t    draining = false;\n\t    if (currentQueue.length) {\n\t        queue = currentQueue.concat(queue);\n\t    } else {\n\t        queueIndex = -1;\n\t    }\n\t    if (queue.length) {\n\t        drainQueue();\n\t    }\n\t}\n\t\n\tfunction drainQueue() {\n\t    if (draining) {\n\t        return;\n\t    }\n\t    var timeout = setTimeout(cleanUpNextTick);\n\t    draining = true;\n\t\n\t    var len = queue.length;\n\t    while(len) {\n\t        currentQueue = queue;\n\t        queue = [];\n\t        while (++queueIndex < len) {\n\t            currentQueue[queueIndex].run();\n\t        }\n\t        queueIndex = -1;\n\t        len = queue.length;\n\t    }\n\t    currentQueue = null;\n\t    draining = false;\n\t    clearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t    var args = new Array(arguments.length - 1);\n\t    if (arguments.length > 1) {\n\t        for (var i = 1; i < arguments.length; i++) {\n\t            args[i - 1] = arguments[i];\n\t        }\n\t    }\n\t    queue.push(new Item(fun, args));\n\t    if (queue.length === 1 && !draining) {\n\t        setTimeout(drainQueue, 0);\n\t    }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t    this.fun = fun;\n\t    this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t    this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t    throw new Error('process.binding is not supported');\n\t};\n\t\n\t// TODO(shtylman)\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t    throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** easy-equilibrium.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 037de85497bd3cf627f6\n **/","'use strict';\n\nvar Equilibrium = require('chem-equilibrium');\nvar parser = require('./parser');\nvar cache = require('./cc-cache');\n\nfunction EasyEq(desc) {\n    this.desc = desc;\n    this._init();\n    this._components();\n    this._species();\n    this._charges();\n    this._coefficients();\n    this._concentrations();\n    this._constants();\n    this._precipitationCoefficients();\n    this._precipitationConstants();\n\n    //\n    this.equilibrium = new Equilibrium({\n        precipitationConstants: this.precipitationConstants || [],\n        precipitationCoefficients: this.precipitationCoefficients || [[]],\n        solutionConstants: this.constants,\n        solutionSpeciesCharges: this.charges,\n        solutionCoefficients: this.coefficients,\n        totalConcentrations: this.totalConcentrations,\n        fixedActivities: this.fixedConcentrations,\n        randomGenerator: this.desc.randomGenerator,\n        maxGuesses: this.desc.maxGuesses\n    });\n}\n\nEasyEq.prototype._init = function() {\n    // Check fixed parameter\n    this.desc.fixed = this.desc.fixed || [];\n    if(this.desc.fixed === 'none') this.desc.fixed = [];\n    if(!Array.isArray(this.desc.fixed)) {\n        this.desc.fixed = [this.desc.fixed];\n    }\n\n    this.Ka = {};\n    this.equationsHash = {};\n    var i, rname;\n    this.equations = this.desc.eq.filter(function(v, i) {\n        return i%2 === 0;\n    });\n\n    var constants = this.desc.eq.filter(function(v, i) {\n        return i%2 === 1;\n    });\n    for(i=0; i<this.equations.length; i++) {\n        rname = cache.norm(parser.parseReaction(this.equations[i]).reactives[0].c);\n        this.Ka[rname] = constants[i];\n        this.equationsHash[rname] = this.equations[i];\n    }\n\n    if(!this.desc.precipitations) return;\n\n    this.precipitationConstants = this.desc.precipitations.filter(function(v, i) {\n        return i%2 === 1;\n    });\n    this.precipitations = this.desc.precipitations.filter(function(v,i){\n        return i%2 === 0;\n    });\n\n\n    for(i=0; i<this.precipitations.length; i++) {\n        rname = cache.norm(parser.parseReaction(this.precipitations[i]).reactives[0].c);\n    }\n};\n\nEasyEq.prototype._components = function() {\n    this.components = [];\n    for(var i=0; i<this.equations.length; i++) {\n\n        var parsed = parser.parseReaction(this.equations[i]);\n        if(parsed.reactives.length !== 1 || parsed.products.length !== 1) continue;\n        var rname = cache.norm(parsed.reactives[0].c);\n        var pname = cache.norm(parsed.products[0].c);\n        if(rname !== pname) {\n            continue;\n        }\n        this.components.push(rname);\n    }\n\n    // Order components\n    // Find fixed component\n    var idx;\n    if(this.desc.fixed) {\n        for(var j=0; j<this.desc.fixed.length; j++) {\n            var fixed = cache.norm(this.desc.fixed[j]);\n            idx = this.components.indexOf(fixed);\n            if(idx > -1) {\n                this.components.splice(idx,1);\n                this.components.push(fixed);\n            }\n        }\n\n    }\n\n    if(this.desc.solvent) {\n        var solvent = cache.norm(this.desc.solvent);\n        idx = this.components.indexOf(solvent);\n        if(idx > -1) {\n            this.components.splice(idx, 1);\n            this.components.push(solvent);\n        }\n    }\n};\n\nEasyEq.prototype._species = function() {\n    this.species = new Array(this.components.length);\n    for(var i=0; i<this.components.length; i++) this.species[i] = this.components[i];\n\n    for(i=0; i<this.equations.length; i++) {\n        var parsed = parser.parseReaction(this.equations[i]);\n        var rname = cache.norm(parsed.reactives[0].c);\n        if(this.species.indexOf(rname) === -1) this.species.push(rname);\n    }\n};\n\nEasyEq.prototype._charges = function() {\n    this.charges = [];\n    for(var i=0; i<this.species.length; i++) {\n        var totalCharge = 0;\n        var cc = cache.getCC(this.species[i]);\n        for (var j = 0; j < cc.parts.length; j++) {\n            totalCharge += (cc.parts[j].charge || 0);\n        }\n        this.charges.push(totalCharge);\n    }\n};\n\nEasyEq.prototype._coefficients = function() {\n    this.coefficients = new Array(this.species.length);\n    for(var i=0; i<this.species.length; i++) {\n        this.coefficients[i] = new Array(this.components.length);\n        fillArray(this.coefficients[i], 0);\n    }\n\n\n\n    for(var key in this.equationsHash) {\n        var idx = this.species.indexOf(key);\n        if(idx === -1) throw new Error('Cannot find specie');\n        var parsed = parser.parseReaction(this.equationsHash[key]);\n\n        // Rewrite products as linear combinations of components\n        var products = this._rebase(parsed.products);\n        //var products = parsed.products;\n        for(i=0; i<products.length; i++) {\n            var product = products[i];\n            var cidx = this.components.indexOf(cache.norm(product.c));\n            if(cidx === -1) {\n                throw new Error('Cannot find component ' + product.c);\n\n            }\n            this.coefficients[idx][cidx] += product.n;\n        }\n    }\n};\n\nEasyEq.prototype._rebase = function(elements) {\n    var r = [];\n    for(var i=0; i<elements.length; i++) {\n        var replaced = false;\n        var idx = this.components.indexOf(elements[i].c);\n        var idxs = this.species.indexOf(elements[i].c);\n        if(idx === -1 && idxs > -1) {\n            var eq = this.equationsHash[this.species[idxs]];\n            if(eq) {\n                var parsed = parser.parseReaction(eq);\n                for(var j=0; j<parsed.products.length; j++) {\n                    parsed.products[j].n *= elements[i].n;\n                    r.push(parsed.products[j]);\n                }\n                replaced = true;\n            }\n        }\n        if(!replaced) {\n            r.push(elements[i]);\n        }\n    }\n    return r;\n};\n\nEasyEq.prototype._precipitationCoefficients = function() {\n    if(!this.desc.precipitations) return;\n    this.precipitationCoefficients = new Array(this.precipitations.length);\n    for(var i=0; i<this.precipitations.length; i++) {\n        this.precipitationCoefficients[i] = new Array(this.components.length);\n        fillArray(this.precipitationCoefficients[i], 0);\n    }\n\n\n\n    for(var j=0; j<this.precipitations.length; j++) {\n        var parsed = parser.parseReaction(this.precipitations[j]);\n        var products = this._rebase(parsed.products);\n        for(i=0; i<products.length; i++) {\n            var product = products[i];\n            var cidx = this.components.indexOf(cache.norm(product.c));\n            if(cidx === -1) {\n                throw new Error('Cannot find component ' + product.c);\n            }\n            this.precipitationCoefficients[j][cidx] += product.n;\n        }\n    }\n};\n\nEasyEq.prototype._precipitationConstants = function() {\n      if(!this.desc.precipitations) return;\n    for(var i=0;i<this.precipitationConstants.length; i++) {\n        // this.precipitationConstants[i] = 1/this.precipitationConstants[i];\n    }\n };\n\nEasyEq.prototype._concentrations = function() {\n    this.totalConcentrations = [];\n    this.fixedConcentrations = [];\n\n    for(var i=0; i<this.components.length; i++) {\n        if(this.isFixed(this.components[i])) {\n            this.fixedConcentrations.push(this.desc.concentrations[this.components[i]] || 0);\n            continue;\n        }\n        if(this.isSolvent(this.components[i])) continue;\n        this.totalConcentrations.push(this.desc.concentrations[this.components[i]]);\n    }\n};\n\nEasyEq.prototype._constants = function() {\n    this.constants = new Array(this.species.length);\n    for(var key in this.Ka) {\n        var idx = this.species.indexOf(key);\n        if(idx === -1) throw new Error('Cannot link ka to specie');\n        this.constants[idx] = 1/this.Ka[key];\n    }\n};\n\nEasyEq.prototype.isSolvent = function(c) {\n    if(this.desc.solvent === undefined || this.desc.solvent === 'none'){\n        return false;\n    }\n    var c1 = cache.norm(this.desc.solvent);\n    var c2 = cache.norm(c);\n    return c1 === c2;\n};\n\nEasyEq.prototype.isFixed = function(c) {\n    var c1,c2;\n    for(var i=0; i<this.desc.fixed.length; i++) {\n        c1 = cache.norm(this.desc.fixed[i]);\n        c2 = cache.norm(c);\n        if(c1 === c2) return true;\n    }\n    return false;\n};\n\nEasyEq.prototype.hasFixed = function() {\n    return this.desc.fixed !== undefined && this.desc.fixed !== 'none';\n};\n\nEasyEq.prototype.hasSolvent = function() {\n    return this.desc.solvent !== undefined && this.desc.solvent !== 'none';\n};\n\nEasyEq.prototype.setEquilibriumActivity = function(c, concentration) {\n    c = cache.norm(c);\n    var idx = this.components.indexOf(c);\n    if(idx === -1) throw new Error('Cannot set equilibrium activity of non-components');\n    return this.equilibrium.setEquilibriumActivity(idx, concentration);\n};\n\nEasyEq.prototype.setTotalConcentration = function(c, concentration) {\n    c = cache.norm(c);\n    var idx = this.components.indexOf(c);\n    if(idx === -1) throw new Error('Cannot set total concentration of non-components');\n    return this.equilibrium.setTotalConcentration(idx, concentration);\n};\n\nEasyEq.prototype.calculate = function() {\n    this.equilibrium.calculate.apply(this.equilibrium, arguments);\n};\n\nEasyEq.prototype.getSpeciesConcentrations = function() {\n    var c = this.equilibrium.getSolutionSpeciesConcentrations();\n    var r = {};\n    for(var i=0; i< c.length; i++) {\n        r[this.species[i]] = c[i];\n    }\n    return r;\n};\n\nEasyEq.prototype.saturationIndices = function() {\n    return this.equilibrium.saturationIndices();\n};\n\nEasyEq.prototype.finalConcentrations = function() {\n    return this.equilibrium.finalConcentrations();\n};\n\n\nfunction fillArray(arr, val) {\n    for(var i=0; i<arr.length; i++) {\n        arr[i] = val;\n    }\n}\n\n\n\nmodule.exports = EasyEq;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/index.js\n ** module id = 0\n ** module chunks = 0\n **/","'use strict';\nvar Matrix = require('ml-matrix');\nvar mersenneTwister = require('mersenne-twister');\n\n//species are all dissolved substances in the equilibrium\n//components are substances whose concentrations are independent variables determining all species concentrations\n//as many formation reactions as species must be provided\n//for each component, either total concentration or equilibrium concentration (to be kept fixed) must be provided. Solvent is an exception (see below)\n//canonical ordering of input is key: precipitation reactions must be given last, coefficients of substances with fixed equilibrium concentrations come last\n//columns of the coefficients matrix must match the elements of the equilibriumComponentConcentartions vector\n//rows of the coefficients matrix must match elements of the constants vector\n//first elements of constants vector must match elements of equilibriumComponentConcentrations vector\n//first elements of equilibriumComponentConcentrations vector must match elements of totalComponentConcentrations vector\n// the last component is a special component: the solvent. It does not have an associated mass balance equation and its activity is either set to 1\n// (in which case it is a fixed activity component) or computed using Raoult's law\n\n\nfunction EquilibriumCalculator(options) {\n    // Model parameters:\n    // solutionSpeciesConstants\n    // solutionSpeciesCoefficients\n    // solutionSpeciesCharges\n    // solidSpeciesConstants\n    // solidSpeciesCoefficients\n\n    // Independent variables\n    // fixedTotalComponentConcentrations\n    // componentActivities\n    // ionicStrength\n\n    // Input constraints\n    // totalConcentrations.length + fixedConcentrations.length must equal the number of columns in coefficients\n\n    var concScaling, i, j;\n    if(options instanceof EquilibriumCalculator) {\n        var eq = options;\n        this.rnd = eq.rnd;\n        this.maxGuesses = eq.maxGuesses;\n        this.solutionSpeciesConstants = eq.getSolutionEquilibriumConstants();\n        this.solutionSpeciesCoefficients = eq.getSolutionSpeciesCoefficients();\n        this.solutionSpeciesCharges = eq.getSolutionSpeciesCharges();\n        this.solidSpeciesConstants = eq.getSolidEquilibriumConstants();\n        this.solidSpeciesCoefficients = eq.getSolidSpeciesCoefficients();\n        this.fixedTotalComponentConcentrations = eq.getFixedTotalConcentrations();\n        this.componentActivities = eq.getComponentActivities();\n        this.ionicStrength = eq.getIonicStrength();\n\n        this.solidSpeciesConcentrations = eq.getSolidsConcentrations();\n\n        this.solutionSpeciesConcentrations = eq.getSolutionSpeciesConcentrations();\n\n        this.nSolids = eq.getNumberOfSolids();\n        this.nSolutionSpecies = eq.getNumberOfSolutionSpecies();\n        this.nComponents = eq.getNumberOfComponents();\n        this.nFixedTotalConcentrations = eq.getNumberOfUnfixedComponents();\n\n        this.concentrationScaling = initialize1DArray(this.nFixedTotalConcentrations);\n\n        for (i = 0; i < this.nFixedTotalConcentrations; i++) {\n            this.concentrationScaling[i] = 1.0;\n            for (j = 0; j < this.nSolutionSpecies; j++) {\n                if (this.solutionSpeciesCoefficients[j][i] != 0.0) {\n                    concScaling = 1.0 / Math.pow(this.solutionSpeciesConstants[j], 1.0 / this.solutionSpeciesCoefficients[j][i]);\n                    if (concScaling < this.concentrationScaling[i]) {\n                        this.concentrationScaling[i] = concScaling;\n                    }\n                }\n            }\n            for (j = 0; j < this.nSolids; j++)\n            if (this.solidSpeciesCoefficients[j][i] != 0.0) {\n                concScaling = Math.pow(this.solidSpeciesConstants[j], 1.0 / this.solidSpeciesCoefficients[j][i]);\n                if (concScaling < this.concentrationScaling[i])\n                    this.concentrationScaling[i] = concScaling;\n            }\n        }\n    }\n    else {\n        //initiate equilibrium constants, coefficients, total concentrations, and number of solids/precipitation rxns from input\n        optionsAsProperties(this, options);\n        if(!this.maxGuesses) this.maxGuesses = 1000;\n        if(typeof options.randomGenerator === 'function') {\n            this.rnd = options.randomGenerator\n        }\n        else if(Array.isArray(options.randomGenerator)) {\n            if(options.randomGenerator[0] === 'default') {\n                this.rnd = Math.random;\n            }\n            else if(options.randomGenerator[0] === 'seed') {\n                this.rnd = rndWithSeed(options.randomGenerator[1] || 0);\n            }\n            else if(options.randomGenerator[0] === 'constant')\n                this.rnd = constantRandom(options.randomGenerator[1] || 0.5)\n        }\n        else {\n            if(options.randomGenerator === 'default')\n                this.rnd = Math.random;\n            else if(options.randomGenerator === 'seed')\n                this.rnd = rndWithSeed(0);\n            else if(options.randomGenerator === 'constant') {\n                this.rnd = constantRandom(0.5);\n            }\n        }\n\n        if(this.rnd === undefined && options.randomGenerator !== undefined) {\n            console.warn('Unknown randomGenerator option, falling back to default random generator');\n            this.rnd = Math.random;\n        }\n        else if(this.rnd === undefined) {\n            this.rnd = Math.random;\n        }\n\n\n        this.nSolutionSpecies = this.solutionCoefficients.length;\n        this.nComponents = this.solutionCoefficients[0].length;\n        this.nSolids = this.precipitationConstants.length;\n        this.nFixedTotalConcentrations = this.totalConcentrations.length;\n\n        this.componentActivities = initialize1DArray(this.nComponents);\n        this.solutionSpeciesConstants = this.solutionConstants;\n        this.solutionSpeciesCharges = this.solutionSpeciesCharges;\n        this.solutionSpeciesCoefficients = this.solutionCoefficients;\n        this.solidSpeciesConstants = this.precipitationConstants;\n        this.solidSpeciesCoefficients = this.precipitationCoefficients;\n        this.fixedTotalComponentConcentrations = this.totalConcentrations;\n        this.solidSpeciesConcentrations = initialize1DArray(this.nSolids);\n        this.solutionSpeciesConcentrations = initialize1DArray(this.nSolutionSpecies);\n        this.ionicStrength = 0;\n\n        // Initiate all solids to zero\n        for (i = 0; i < this.nSolids; i++) {\n            this.solidSpeciesConcentrations[i] = 0.0;\n        }\n\n        this.concentrationScaling = initialize1DArray(this.nFixedTotalConcentrations);\n\n        // compute the concentration scaling factors\n        for (i = 0; i < this.nFixedTotalConcentrations; i++) {\n            this.concentrationScaling[i] = 1.0;\n            for (j = 0; j < this.nSolutionSpecies; j++) {\n                if (this.solutionSpeciesCoefficients[j][i] != 0.0) {\n                    concScaling = 1.0 / Math.pow(this.solutionSpeciesConstants[j], 1.0 / this.solutionSpeciesCoefficients[j][i]);\n                    if (concScaling < this.concentrationScaling[i]) {\n                        this.concentrationScaling[i] = concScaling;\n                    }\n                }\n            }\n            for (j = 0; j < this.nSolids; j++) {\n                if (this.solidSpeciesCoefficients[j][i] != 0.0) {\n                    concScaling = Math.pow(this.solidSpeciesConstants[j], 1.0 / this.solidSpeciesCoefficients[j][i]);\n                    if (concScaling < this.concentrationScaling[i]) {\n                        this.concentrationScaling[i] = concScaling;\n                    }\n                }\n            }\n        }\n\n        //store fixed component activities at the end of the array of component activities (leave last for solvent)\n        for (i = this.nFixedTotalConcentrations; i < this.nComponents - 1; i++) {\n            this.componentActivities[i] = this.fixedActivities[(i - this.nFixedTotalConcentrations)];\n        }\n        //initial guess of variable component activities, solvent activity and ionic strength\n        guess(this, true, false);\n    }\n}\n\n// equilibrium concentrations of all soluble species and amount of each solid precipitated per litter of solution.\n// solvent is an exception: it's activity is returned instead\nEquilibriumCalculator.prototype.getComponentActivities = function() {\n    return this.componentActivities.slice(0, this.nComponents);\n};\n\nEquilibriumCalculator.prototype.finalConcentrations = function() {\n    var result = this.solutionSpeciesConcentrations.slice(0, this.nSolutionSpecies + this.nSolids);\n    for (var i = 0; i < this.nSolids; i++) {\n        result[(this.nSolutionSpecies + i)] = this.solidSpeciesConcentrations[i];\n    }\n    result[this.nComponents - 1] = this.componentActivities[this.nComponents - 1];\n    return result;\n};\n\nEquilibriumCalculator.prototype.getSolutionSpeciesCoefficients = function() {\n    return deepCopy(this.solutionSpeciesCoefficients, this.nSolutionSpecies, this.nComponents);\n};\n\n\n\nEquilibriumCalculator.prototype.getIonicStrength = function() {\n    return this.ionicStrength;\n};\n\n//Return fixed total component concentrations\nEquilibriumCalculator.prototype.getFixedTotalConcentrations = function() {\n    return this.fixedTotalComponentConcentrations.slice(0, this.nFixedTotalConcentrations);\n};\n\nEquilibriumCalculator.prototype.getSolutionEquilibriumConstants = function() {\n    return this.solutionSpeciesConstants.slice(0, this.nSolutionSpecies);\n};\n\nEquilibriumCalculator.prototype.getSolidEquilibriumConstants = function() {\n    return this.solidSpeciesConstants.slice(0 , this.nSolids);\n};\n\nEquilibriumCalculator.prototype.getSolutionSpeciesCharges = function() {\n    return this.solutionSpeciesCharges.slice(0, this.nSolutionSpecies);\n};\n\nEquilibriumCalculator.prototype.getSolidSpeciesCoefficients = function() {\n    return deepCopy(this.solidSpeciesCoefficients, this.nSolids, this.nComponents);\n};\n\nEquilibriumCalculator.prototype.getSolidsConcentrations = function() {\n    return this.solidSpeciesConcentrations.slice(0, this.nSolids);\n};\n\nEquilibriumCalculator.prototype.getSolutionSpeciesConcentrations = function() {\n    return this.solutionSpeciesConcentrations.slice(0, this.nSolutionSpecies);\n};\n\nEquilibriumCalculator.prototype.getNumberOfSolutionSpecies = function() {\n    return this.nSolutionSpecies;\n};\n\nEquilibriumCalculator.prototype.getNumberOfSolids = function() {\n    return this.nSolids;\n};\n\nEquilibriumCalculator.prototype.getNumberOfSpecies = function() {\n    return this.nSolids + this.nSolutionSpecies;\n};\n\nEquilibriumCalculator.prototype.getNumberOfComponents = function() {\n    return this.nComponents;\n};\n\nEquilibriumCalculator.prototype.getNumberOfUnfixedComponents = function() {\n    return this.nFixedTotalConcentrations;\n};\n\nEquilibriumCalculator.prototype.solutionSpeciesActivities = function()\n{\n    var result = initialize1DArray(this.nSolutionSpecies);\n    //initialize non-component species activities to their formation constant\n    var i, j;\n    for (i = this.nComponents; i < this.nSolutionSpecies; i++) {\n        result[i] = this.solutionSpeciesConstants[i];\n    }\n    for (i = 0; i < this.nComponents; i++) { //component activities are read directly from componentActivities array\n        result[i] = this.componentActivities[i];\n        for (j = this.nComponents; j < this.nSolutionSpecies; j++) { //non-component species activities are calculated from equilibrium constant expressions\n            result[j] *= Math.pow(this.componentActivities[i], this.solutionSpeciesCoefficients[j][i]);\n        }\n    }\n    return result;\n};\n//activity coefficients are computed using Davies' equation with A=0.5085 M^-1/2 (valid for water at 25°C)\n//note that activity coefficient of solvent has no meaning\nEquilibriumCalculator.prototype.solutionSpeciesActivityCoefficients = function()\n{\n    var result = initialize1DArray(this.nSolutionSpecies);\n    var exponentialCoefficient = Math.sqrt(this.ionicStrength);\n    exponentialCoefficient = (exponentialCoefficient / (1.0 + exponentialCoefficient) - 0.3 * this.ionicStrength) * -0.5085;\n    for (var i = 0; i < this.nSolutionSpecies; i++) {\n        result[i] = Math.exp(exponentialCoefficient * Math.pow(this.solutionSpeciesCharges[i], 2.0));\n    }\n    return result;\n};\n\n// note that species concentration value of solvent cannot be computed by this method, but we don't really care about it pretty much by definition.\n// It is set to 0 to make sure that it is not mistakenly used in any balance\nEquilibriumCalculator.prototype.calculateSolutionSpeciesConcentrations = function(correctActivities) {\n    this.solutionSpeciesConcentrations = this.solutionSpeciesActivities();\n    if (correctActivities) {\n        var activityCoefficients = this.solutionSpeciesActivityCoefficients();\n        for (var i = 0; i < this.nSolutionSpecies; i++) {\n            this.solutionSpeciesConcentrations[i] /= activityCoefficients[i];\n        }\n        this.solutionSpeciesConcentrations[(this.nComponents - 1)] = 0.0;\n    }\n};\n\n//computes the solubility products of all solid species\nEquilibriumCalculator.prototype.solubilityProducts = function() {\n    var result = initialize1DArray(this.nSolids);\n    for (var i = 0; i < this.nSolids; i++) {\n        result[i] = 1.0;\n        for (var j = 0; j < this.nComponents; j++) {\n            result[i] *= Math.pow(this.componentActivities[j], this.solidSpeciesCoefficients[i][j]);\n        }\n    }\n    return result;\n};\n\n//computes the ratios between each solid's solubility product and the corresponding solubility constant\nEquilibriumCalculator.prototype.saturationIndices = function()\n{\n    var  result = this.solubilityProducts();\n    for (var i = 0; i < this.nSolids; i++) {\n        result[i] /= this.solidSpeciesConstants[i];\n    }\n    return result;\n};\n\n//Total concentrations of ALL components but the solvent\n//Computed from current activities, not read from fixedTotalComponentConcentrations\nEquilibriumCalculator.prototype.totalConcentrations = function()\n{\n    return product(this.solutionSpeciesConcentrations, this.solutionSpeciesCoefficients, this.nSolutionSpecies, this.nComponents - 1);\n};\n\n//sets equilibrium concentration of a component\n// WARNING: does not fix the given equilibrium concentration, after assignment the system iterates to equilibrium and will change the\n// assigned component concentration unless it was already fixed at construction\nEquilibriumCalculator.prototype.setEquilibriumActivity = function(component, value) {\n    this.componentActivities[component] = value;\n};\n\n//sets the amount of a solid precipitated per litter of solution\nEquilibriumCalculator.prototype.setPrecipitateConcentration = function(solid, value) {\n    this.solidSpeciesConcentrations[solid] = value;\n};\n\n//set the total concentration of a component. Only allowed on components with total concentration fixed at construction\nEquilibriumCalculator.prototype.setTotalConcentration = function(component, value)\n{\n    this.fixedTotalComponentConcentrations[component] = value;\n    if (value == 0.0)\n    this.componentActivities[component] = 0.0;\n};\n\n//sets the value of an equilibrium constant. Concentration scaling factors for equilibrium concentration guesses are updated after assignment.\nEquilibriumCalculator.prototype.setSolutionEquilibriumConstant = function(constant, value) {\n    this.solutionSpeciesConstants[constant] = value;\n    var concScaling;\n    for (var i = 0; i < this.nFixedTotalConcentrations; i++) {\n        if (this.solutionSpeciesCoefficients[constant][i] != 0.0) {\n            concScaling = 1.0 / Math.pow(value, 1.0 / this.solutionSpeciesCoefficients[constant][i]);\n            if (concScaling < this.concentrationScaling[i])\n                this.concentrationScaling[i] = concScaling;\n        }\n    }\n};\n\n//sets the value of an equilibrium constant. Concentration scaling factors for equilibrium concentration guesses are updated after assignment.\nEquilibriumCalculator.prototype.setSolidEquilibriumConstant = function(constant, value)\n{\n    this.solidSpeciesConstants[constant] = value;\n    var concScaling;\n    for (var i = 0; i < this.nFixedTotalConcentrations; i++) {\n        if (this.solidSpeciesCoefficients[constant][i] != 0.0) {\n            concScaling = 1.0 / Math.pow(value, 1.0 / this.solidSpeciesCoefficients[constant][i]);\n            if (concScaling < this.concentrationScaling[i])\n                this.concentrationScaling[i] = concScaling;\n        }\n    }\n};\n\nEquilibriumCalculator.prototype.setIonicStrength = function(ionicStrength) {\n    this.ionicStrength = ionicStrength;\n};\n\n\nEquilibriumCalculator.prototype.calculatedIonicStrength = function() {\n    var result = 0.0;\n    for (var i = 0; i < this.nSolutionSpecies; i++) {\n        result += Math.pow(this.solutionSpeciesCharges[i], 2.0) * this.solutionSpeciesConcentrations[i];\n    }\n    return result / 2.0;\n};\n\n//shifts all solid species towards solution\n//NOTE: what am i using this for?\nEquilibriumCalculator.prototype.disolveAll = function(correctActivities) {\n    for (var j = 0; j < this.nSolids; j++)\n    disolve(this, j, correctActivities);\n};\n\n//remove the species itself\nEquilibriumCalculator.prototype.removeSolutionSpecies = function(species) {\n    this.nSolutionSpecies -= 1;\n    var i,j;\n    //if species is a component, remove all its derived species and remove it from components and coefficients arrays\n    for (i = species; i < this.nSolutionSpecies; i++) {\n        this.solutionSpeciesCharges[i] = this.solutionSpeciesCharges[(i + 1)];\n        this.solutionSpeciesConcentrations[i] = this.solutionSpeciesConcentrations[(i + 1)];\n        this.solutionSpeciesConstants[i] = this.solutionSpeciesConstants[(i + 1)];\n        this.solutionSpeciesCoefficients[i] = this.solutionSpeciesCoefficients[(i + 1)];\n    }\n\n    if (species < this.nComponents) {\n        //remove derived solution species\n        for (i = 0; i < this.nSolutionSpecies; i++) {\n            if (this.solutionSpeciesCoefficients[i][species] != 0.0) {\n                this.removeSolutionSpecies(i);\n                i--;\n            }\n            else {\n                //remove from coefficients of solution reactions\n                for (j = species; j < this.nComponents - 1; j++) {\n                    this.solutionSpeciesCoefficients[i][j] = this.solutionSpeciesCoefficients[i][j + 1];\n                }\n            }\n        }\n        //remove derived solid species\n        for (i = 0; i < this.nSolids; i++) {\n            if (this.solidSpeciesCoefficients[i][species] != 0.0) {\n                this.removeSolid(i);\n                i--;\n            }\n            else { //remove from coefficients of solid reactions\n                for (j = species; j < this.nComponents - 1; j++) {\n                    this.solidSpeciesCoefficients[i][j] = this.solidSpeciesCoefficients[i][(j + 1)];\n                }\n            }\n        }\n\n        //remove the component itself\n        this.nComponents -= 1;\n        if (species < this.nFixedTotalConcentrations) {\n            //if species is an unfixed component (unfixed activity) remove it from total concentration array as well\n            this.nFixedTotalConcentrations -= 1;\n            for (i = species; i < this.nFixedTotalConcentrations; i++) {\n                this.fixedTotalComponentConcentrations[i] = this.fixedTotalComponentConcentrations[i + 1];\n                this.componentActivities[i] = this.componentActivities[i + 1];\n            }\n            for (i = this.nFixedTotalConcentrations; i < this.nComponents; i++)\n                this.componentActivities[i] = this.componentActivities[(i + 1)];\n        }\n        else\n        {\n            for (i = species; i < this.nComponents; i++)\n                this.componentActivities[i] = this.componentActivities[(i + 1)];\n        }\n    }\n};\n\nEquilibriumCalculator.prototype.removeSolid = function(solid) {\n    this.nSolids -= 1;\n    if (this.nSolids > 0) {\n        for (var i = solid; i < this.nSolids; i++) {\n            this.solidSpeciesConcentrations[i] = this.solidSpeciesConcentrations[(i + 1)];\n            this.solidSpeciesConstants[i] = this.solidSpeciesConstants[(i + 1)];\n            this.solidSpeciesCoefficients[i] = this.solidSpeciesCoefficients[(i + 1)];\n        }\n    }\n    else {\n        this.solidSpeciesCoefficients = [[]];\n        this.solidSpeciesConcentrations = [];\n        this.solidSpeciesConstants = [];\n    }\n};\n\nEquilibriumCalculator.prototype.addSolutionSpecies = function(){\n};\n\nEquilibriumCalculator.prototype.addSolid = function() {\n};\n\nEquilibriumCalculator.prototype.addComponent = function() {\n};\n\n//returns the equilibriumCalculator object comprising only components with non-zero total concentrations and their derived species\nEquilibriumCalculator.prototype.removeZeroConcentrations = function()\n{\n    var result = new EquilibriumCalculator(this);\n    for (var i = 0; i < result.nFixedTotalConcentrations; i++) {\n        if (result.fixedTotalComponentConcentrations[i] == 0.0) {\n            result.removeSolutionSpecies(i);\n            i--;\n        }\n    }\n    return result;\n};\n\nEquilibriumCalculator.prototype.calculate = function(correctActivities, fixedIonicStrength, maxIterations, precision, maxGuesses) {\n    if(arguments.length === 2) {\n        return this.calculate(correctActivities, fixedIonicStrength, 99999, this.maxGuesses, 0.0001);\n    }\n    else if(arguments.length === 4) {\n        return this.calculate(correctActivities, fixedIonicStrength, maxIterations, this.maxGuesses, precision);\n    }\n    else if(arguments.length === 5) {\n        var tmp; tmp = maxGuesses;\n        maxGuesses = precision;\n        precision = tmp;\n\n        var nGuesses = 0, i, result;\n        if (!correctActivities) {\n            this.componentActivities[(this.nComponents - 1)] = 1.0;\n        }\n        while (nGuesses < maxGuesses) {\n            try {\n                nGuesses++;\n                result = calculateOnePoint(this, correctActivities, fixedIonicStrength, maxIterations, precision);\n                if (result == maxIterations) {\n                    //console.log(\"maximum number of iterations reached, result is not trustworthy\");\n                }\n                //console.log(\"Solution found will now be checked\");\n                while ((hasNegative(this.finalConcentrations(), this.nSolutionSpecies + this.nSolids)) && (nGuesses < maxGuesses)) {\n                    nGuesses++;\n                    //console.log(\"Inadequate solution (negative, infinite, or not a number), computing with the \" + nGuesses + \"th  guess\");\n\n                    guess(this, correctActivities, fixedIonicStrength);\n                    result = calculateOnePoint(this, correctActivities, fixedIonicStrength, maxIterations, precision);\n                    if (result == maxIterations) {\n                        //console.log(\"maximum number of iterations reached, result is not trustworthy\");\n                    }\n                    //console.log(\"Solution found will now be checked\");\n                }\n                if (hasNegative(this.finalConcentrations(), this.nSolutionSpecies + this.nSolids)) {\n                    return \"No successful guess\";\n                }\n                if (result < maxIterations) {\n                    return \"Adequate solution\";\n                }\n                return \"Last guess failed to converge, results might not be valid!\";\n            } catch (e) {\n                if (nGuesses < maxGuesses) {\n                    console.log(e.stack);\n                    console.log(\"Error occurred during calculation (\" + e + \"), retrying with the \" + (nGuesses + 1) + \"th guess\");\n                    for (i = 0; i < this.nSolids; i++) {\n                        this.solidSpeciesConcentrations[i] = 0.0;\n                    }\n                    guess(this, correctActivities, fixedIonicStrength);\n                }\n\n            }\n\n        }\n\n        console.log(\"Error\");\n        return \"Error\";\n    }\n};\n\n\n\n// Private =======================================================\n\n//shifts the whole precipitated mass of a solid species towards solution\n//all dissolved solid is put in the form of its components. Naturally, leaves solution unbalanced\n//the corresponding activities are corrected using the current ionic strength, ionic strength is not corrected for the increased solution species concentrations.\n//WARNING: consequences of using on an unbalanced solution are unknown. Privatized just in case.\nfunction disolve(ctx, solid, correctActivities) {\n    for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        ctx.solutionSpeciesConcentrations[i] +=\n            ctx.solidSpeciesConcentrations[solid] * ctx.solidSpeciesCoefficients[solid][i];\n        ctx.componentActivities[i] = ctx.solutionSpeciesConcentrations[i];\n    }\n    ctx.solidSpeciesConcentrations[solid] = 0.0;\n    if (correctActivities) {\n        var activityCoefficients = ctx.solutionSpeciesActivityCoefficients();\n        for (i = 0; i < ctx.nFixedTotalConcentrations; i++)\n            ctx.componentActivities[i] /= activityCoefficients[i];\n    }\n}\n\n//computes solvent activity using an approximation based on raoult's law (same used by phreeqc)\nfunction calculatedSolventActivity(ctx) {\n    var result = 0.0;\n    for(var i=0; i<ctx.solutionSpeciesConcentrations.length ; i++) {\n        result += ctx.solutionSpeciesConcentrations[i];\n    }\n    return 1.0 - 0.017 * result;\n}\n\n//randomly guess equilibrium activities for the system's components and updates species concentrations, ionic strength, and solvent activity\nfunction guess(ctx, correctActivities, fixedIonicStrength)\n{\n    var factor = ctx.rnd();\n    //console.log('factor', factor);\n    var i;\n    //guess variable component activities\n    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n    ctx.componentActivities[i] = (ctx.fixedTotalComponentConcentrations[i] * Math.pow(ctx.concentrationScaling[i], factor));\n}\n    //guess ionic strength as that computed from species concentrations computed assuming ionic strength = zero and solvent activity = 1\n    //guess solvent activity as that computed from species concentrations computed assuming ionic strength = zero and solvent activity = 1\n    ctx.componentActivities[(ctx.nComponents - 1)] = 1.0;\n    if (correctActivities) {\n        if (!fixedIonicStrength) {\n            ctx.ionicStrength = 0.0;\n        }\n        ctx.calculateSolutionSpeciesConcentrations(correctActivities);\n        if (!fixedIonicStrength) {\n            ctx.ionicStrength = ctx.calculatedIonicStrength();\n        }\n        ctx.componentActivities[(ctx.nComponents - 1)] = calculatedSolventActivity(ctx);\n    }\n\n    for (i = 0; i < ctx.nSolids; i++)\n    ctx.solidSpeciesConcentrations[i] = 0.0;\n}\n\n// balance for solution components, given solid species, and ionic strength if desired\n// balance equations for solution components with unfixed activities but fixed total concentrations is the difference between\n// the fixed total concentration and the total concentration computed from the current equilibrium concentrations\n// balance equation for ionic strength is the difference between the current ionic strength and that computed from current species concentrations\n// balance equation for solids is the difference between the solubility constant and the current solubility product\nfunction balance(ctx, correctActivities, fixedIonicStrength, solids) {\n    //sub-optimal code for the sake of readability\n    var solidsLength = solids.length;\n    var balanceError = [];\n    // initialization and activity correction-contingent balances\n    if (correctActivities)\n    {\n        if (fixedIonicStrength) {\n            balanceError = initialize1DArray(ctx.nFixedTotalConcentrations + solidsLength + 1);\n        }\n        else {\n            balanceError = initialize1DArray(ctx.nFixedTotalConcentrations + solidsLength + 2);\n            //balance of ionic strength\n            balanceError[(ctx.nFixedTotalConcentrations + solidsLength + 1)] = (ctx.ionicStrength - ctx.calculatedIonicStrength());\n        }\n        //balance of solvent activity\n        balanceError[(ctx.nFixedTotalConcentrations + solidsLength)] = (ctx.componentActivities[(ctx.nComponents - 1)] - calculatedSolventActivity(ctx));\n    }\n    else {\n        balanceError = initialize1DArray(ctx.nFixedTotalConcentrations + solidsLength);\n    }\n    //balance of solution components\n    //substract solution species\n    balanceError = sum(balanceError, minus(ctx.fixedTotalComponentConcentrations,\n        product(ctx.solutionSpeciesConcentrations, ctx.solutionSpeciesCoefficients, ctx.nSolutionSpecies, ctx.nFixedTotalConcentrations),\n        ctx.nFixedTotalConcentrations), ctx.nFixedTotalConcentrations, true);\n\n    //substract solid species\n    if (ctx.nSolids > 0) {\n        balanceError = minus(balanceError,\n            product(ctx.solidSpeciesConcentrations, ctx.solidSpeciesCoefficients, ctx.nSolids, ctx.nFixedTotalConcentrations),\n            ctx.nFixedTotalConcentrations, true);\n    }\n\n    //balance of solids\n    var solubilityProducts = ctx.solubilityProducts();\n    var solidIndex = ctx.nFixedTotalConcentrations;\n    for (var i=0; i<solids.length; i++) {\n        balanceError[solidIndex] = (ctx.solidSpeciesConstants[solids[i]] - solubilityProducts[solids[i]]);\n        solidIndex++;\n    }\n\n    return balanceError;\n}\n\nfunction componentComponentDerivatives(ctx) {\n    var i, j,k;\n    var result = initialize2DArray(ctx.nFixedTotalConcentrations, ctx.nFixedTotalConcentrations);\n    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        for (j = 0; j < ctx.nFixedTotalConcentrations; j++) {\n            result[i][j] = 0.0;\n            for (k = 0; k < ctx.nSolutionSpecies; k++) {\n                result[i][j] += ctx.solutionSpeciesCoefficients[k][j] * ctx.solutionSpeciesCoefficients[k][i] * ctx.solutionSpeciesConcentrations[k];\n            }\n            result[i][j] /= ctx.componentActivities[i];\n        }\n    }\n    return result;\n}\n\nfunction componentIonicStrengthDerivatives(ctx) {\n    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n    var i, j;\n    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        result[i] = 0.0;\n        for (j = 0; j < ctx.nSolutionSpecies; j++) {\n            result[i] +=\n                ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCoefficients[j][i] *\n                ctx.solutionSpeciesConcentrations[j];\n        }\n        result[i] = (result[i] * 0.5085 * (1.0 / (2.0 * Math.sqrt(ctx.ionicStrength) * Math.pow(1.0 + Math.sqrt(ctx.ionicStrength), 2.0)) - 0.3));\n    }\n    return result;\n}\n\nfunction componentSolidDerivatives(ctx, solids) {\n    var result = initialize2DArray(solids.length, ctx.nFixedTotalConcentrations);\n    var solidIndex = 0;\n    for (var j=0; j<solids.length; j++) {\n        for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n            result[solidIndex][i] = ctx.solidSpeciesCoefficients[solids[j]][i];\n        }\n        solidIndex++;\n    }\n    return result;\n}\n\nfunction componentSolventDerivatives(ctx) {\n    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n    var solventActivity = ctx.componentActivities[(ctx.nComponents - 1)];\n    for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        for (var j = 0; j < ctx.nSolutionSpecies; j++) {\n            result[i] +=\n                ctx.solutionSpeciesCoefficients[j][i] * ctx.solutionSpeciesCoefficients[j][(ctx.nComponents - 1)] * ctx.solutionSpeciesConcentrations[j];\n        }\n        result[i] /= solventActivity;\n    }\n    return result;\n}\n\nfunction solidComponentDerivatives(ctx, solids) {\n    var result = initialize2DArray(ctx.nFixedTotalConcentrations, solids.length);\n    var solubilityProducts = ctx.solubilityProducts();\n    var solidIndex = 0;\n    for (var j=0; j<solids.length; j++) {\n        for (var i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n            result[i][solidIndex] = (solubilityProducts[solids[j]] * ctx.solidSpeciesCoefficients[solids[j]][i] / ctx.componentActivities[i]);\n        }\n        solidIndex++;\n    }\n    return result;\n}\n\nfunction solidSolventDerivatives(ctx, solids) {\n    var result = initialize1DArray(solids.length);\n    var solubilityProducts = ctx.solubilityProducts();\n    var solventActivity = ctx.componentActivities[(ctx.nComponents - 1)];\n    var solidIndex = 0;\n    for (var j=0; j<solids.length; j++) {\n        result[solidIndex] = (ctx.solidSpeciesCoefficients[solids[j]][(ctx.nComponents - 1)] * solubilityProducts[solids[j]] / solventActivity);\n        solidIndex++;\n    }\n    return result;\n}\n\nfunction ionicStrengthComponentDerivatives(ctx) {\n    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n    var i,j;\n    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        result[i] = 0.0;\n        for (j = 0; j < ctx.nSolutionSpecies; j++) {\n            result[i] +=\n                ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCharges[j] * ctx.solutionSpeciesCoefficients[j][i] *\n                ctx.solutionSpeciesConcentrations[j];\n        }\n        result[i] /= 2.0 * ctx.componentActivities[i];\n    }\n    return result;\n}\n\nfunction ionicStrengthIonicStrengthDerivative(ctx) {\n    var result = 0.0;\n    var i;\n    for (i = 0; i < ctx.nSolutionSpecies; i++) {\n        result += Math.pow(ctx.solutionSpeciesCharges[i], 4.0) * ctx.solutionSpeciesConcentrations[i];\n    }\n    result = result * 0.25425 * (1.0 / (2.0 * Math.sqrt(ctx.ionicStrength) * Math.pow(1.0 + Math.sqrt(ctx.ionicStrength), 2.0)) - 0.3) - 1.0;\n    return result;\n}\n\nfunction ionicStrengthSolventDerivative(ctx) {\n    var result = 0.0;\n    var i;\n    for (i = 0; i < ctx.nSolutionSpecies; i++) {\n        result += Math.pow(ctx.solutionSpeciesCharges[i], 2.0) * ctx.solutionSpeciesCoefficients[i][(ctx.nComponents - 1)] * ctx.solutionSpeciesConcentrations[i];\n    }\n    return result / (ctx.componentActivities[(ctx.nComponents - 1)] * 2.0);\n}\n\nfunction solventComponentsDerivatives(ctx) {\n    var result = initialize1DArray(ctx.nFixedTotalConcentrations);\n    var i,j;\n    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        for (j = 0; j < ctx.nSolutionSpecies; j++) {\n            result[i] += ctx.solutionSpeciesCoefficients[j][i] * ctx.solutionSpeciesConcentrations[j];\n        }\n        result[i] = (result[i] * 0.017 / ctx.componentActivities[i]);\n    }\n    return result;\n}\n\nfunction solventIonicStrengthDerivative(ctx) {\n    var result = 0.0;\n    var i;\n    for (i = 0; i < ctx.nSolutionSpecies; i++) {\n        result += Math.pow(ctx.solutionSpeciesCharges[i], 2.0) * ctx.solutionSpeciesConcentrations[i];\n    }\n    return result * -0.017 * 0.5085 * (1.0 / (2.0 * Math.sqrt(ctx.ionicStrength) * Math.pow(1.0 + Math.sqrt(ctx.ionicStrength), 2.0)) - 0.3);\n}\n\nfunction solventSolventDerivative(ctx) {\n    var result = 0.0;\n    for (var i = 0; i < ctx.nSolutionSpecies; i++) {\n        result += ctx.solutionSpeciesConcentrations[i];\n    }\n    return -1.0 - result * 0.017;\n}\n\n// Jacobian of balance\n// actually it returns jacobian * -1\nfunction balanceJacobian(ctx, correctActivities, fixedIonicStrength, solids) {\n    //derivatives are calculated using the adequate methods (or trivially if that is the case) and then copied in the adequate blocks of the jacobian\n    var componentComponent = componentComponentDerivatives(ctx);\n    var componentSolid = componentSolidDerivatives(ctx, solids);\n    var solidComponent = solidComponentDerivatives(ctx, solids);\n    var solidsLength = solids.length;\n    var jacobian = [[]];\n    var i, j;\n\n    //reserve the correct amount of space for the jacobian and compute activity correction-contingent elements\n    if (correctActivities)\n    {\n        if (fixedIonicStrength) {\n            jacobian = initialize2DArray(ctx.nFixedTotalConcentrations + solidsLength + 1,ctx.nFixedTotalConcentrations + solidsLength + 1);\n        }\n        else {\n            jacobian = initialize2DArray(ctx.nFixedTotalConcentrations + solidsLength + 2,ctx.nFixedTotalConcentrations + solidsLength + 2);\n            var ionicComponent = ionicStrengthComponentDerivatives(ctx);\n            var componentIonic = componentIonicStrengthDerivatives(ctx);\n\n            //copy ionic strength - component and component -ionic strength derivatives\n            for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n                jacobian[i][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = ionicComponent[i];\n                jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][i] = componentIonic[i];\n            }\n\n            //copy ionic strength - solid and solid - ionic strength derivatives\n            for (i = 0; i < solidsLength; i++) {\n                jacobian[i][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = 0.0;\n                jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][i] = 0.0;\n            }\n\n            //ionic strength - ionic strength derivative\n            jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = ionicStrengthIonicStrengthDerivative(ctx);\n\n            //ionic strength - solvent and solvent - ionic strength derivatives\n            jacobian[(ctx.nFixedTotalConcentrations + solidsLength + 1)][(ctx.nFixedTotalConcentrations + solidsLength)] = solventIonicStrengthDerivative(ctx);\n            jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][(ctx.nFixedTotalConcentrations + solidsLength + 1)] = ionicStrengthSolventDerivative(ctx);\n        }\n        var solventComponent = solventComponentsDerivatives(ctx);\n        var componentSolvent = componentSolventDerivatives(ctx);\n        var solidSolvent = solidSolventDerivatives(ctx, solids);\n\n        //copy solvent-component and component-solvent derivatives\n        for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        jacobian[i][(ctx.nFixedTotalConcentrations + solidsLength)] = solventComponent[i];\n        jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][i] = componentSolvent[i];\n    }\n\n        //copy solid-solvent derivatives and set solvent-solid derivatives to zero\n        for (i = 0; i < solidsLength; i++) {\n        jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][(i + ctx.nFixedTotalConcentrations)] = solidSolvent[i];\n        jacobian[(i + ctx.nFixedTotalConcentrations)][(ctx.nFixedTotalConcentrations + solidsLength)] = 0.0;\n    }\n        //solvent - solvent derivative\n        jacobian[(ctx.nFixedTotalConcentrations + solidsLength)][(ctx.nFixedTotalConcentrations + solidsLength)] = solventSolventDerivative(ctx);\n    }\n    else {\n        jacobian = initialize2DArray(ctx.nFixedTotalConcentrations + solidsLength, ctx.nFixedTotalConcentrations + solidsLength);\n    }\n\n    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        //copy component - component derivatives\n        for (j = i; j < ctx.nFixedTotalConcentrations; j++) {\n        jacobian[i][j] = componentComponent[i][j];\n        jacobian[j][i] = componentComponent[j][i];\n    }\n\n        //copy component - solid and solid - component derivatives\n        for (j = 0; j < solidsLength; j++) {\n        jacobian[i][(ctx.nFixedTotalConcentrations + j)] = solidComponent[i][j];\n        jacobian[(ctx.nFixedTotalConcentrations + j)][i] = componentSolid[j][i];\n    }\n    }\n\n    //copy solid - solid derivatives (zero-valued)\n    for (i = 0; i < solidsLength; i++) {\n        for (j = i; j < solidsLength; j++) {\n            jacobian[(ctx.nFixedTotalConcentrations + i)][(ctx.nFixedTotalConcentrations + j)] = 0.0;\n            jacobian[(ctx.nFixedTotalConcentrations + j)][(ctx.nFixedTotalConcentrations + i)] = 0.0;\n        }\n    }\n    return jacobian;\n}\n\nfunction equilibrateNoSolids(ctx, correctActivities, fixedIonicStrength, maxIterations, precision) {\n    var noSolids = [];\n    return equilibrate(ctx, correctActivities, fixedIonicStrength, noSolids, maxIterations, precision);\n}\n\n//WARNING unwarranted behavior if correctActivities=false and fixedIonicStrength=true. Prevent such ocurrence in the public method\n//Returns the number of iterations run\nfunction equilibrate(ctx, correctActivities, fixedIonicStrength, solids, maxIterations, precision) {\n    if(arguments.length <= 5) return equilibrateNoSolids.apply(null, arguments);\n    if (hasZero(ctx.fixedTotalComponentConcentrations, ctx.nFixedTotalConcentrations)) {\n        var reducedSystem = ctx.removeZeroConcentrations();\n        var result = equilibrate(reducedSystem, correctActivities, fixedIonicStrength, solids, maxIterations, precision);\n\n        //copy solution species concentrations\n        var i, j,k = 0, present;\n\n        var solutionConcentrations = reducedSystem.getSolutionSpeciesConcentrations();\n        for (i = 0; i < ctx.nSolutionSpecies; i++) {\n            present = true;\n            for (j = 0; j < ctx.nComponents; j++) { //nFixedTotalConcentrations?\n                if ((ctx.solutionSpeciesCoefficients[i][j] != 0.0) && (ctx.componentActivities[j] == 0.0)) {\n                    present = false;\n                    ctx.solutionSpeciesConcentrations[i] = 0.0;\n                    break;\n                }\n            }\n            if (present) {\n                ctx.solutionSpeciesConcentrations[i] = solutionConcentrations[k];\n                k++;\n            }\n        }\n\n        //copy solid species concentrations\n        k = 0;\n        var solidConcentrations = reducedSystem.getSolidsConcentrations();\n        for (i = 0; i < ctx.nSolids; i++) {\n            present = true;\n            for (j = 0; j < ctx.nComponents; j++) {\n                if ((ctx.solidSpeciesCoefficients[i][j] != 0.0) && (ctx.componentActivities[j] == 0.0)) {\n                    present = false;\n                    ctx.solidSpeciesConcentrations[i] = 0.0;\n                    break;\n                }\n            }\n            if (present) {\n                ctx.solidSpeciesConcentrations[i] = solidConcentrations[k];\n                k++;\n            }\n        }\n\n        //copy component activities\n        var nonZeroEquilibriumActivities = reducedSystem.getComponentActivities();\n        k = 0;\n        for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n            if (ctx.fixedTotalComponentConcentrations[i] != 0.0) {\n                ctx.componentActivities[i] = nonZeroEquilibriumActivities[k];\n                k++;\n            }\n        }\n\n        //copy ionic strength\n        if (correctActivities) {\n            ctx.ionicStrength = reducedSystem.getIonicStrength();\n        }\n        return result;\n    }\n\n    var iterations = 1;\n    var solidsLength = solids.length;\n\n    //species concentrations must be updated before balancing\n    ctx.calculateSolutionSpeciesConcentrations(correctActivities);\n    var totalError = balance(ctx, correctActivities, fixedIonicStrength, solids);\n\n    //last condition in the while statement (second term of the or) may be unnecessary... or, on the contrary, a similar condition on solution species may be necessary\n    while ((iterations <= maxIterations) && (maximumRelativeError(ctx, totalError, solids, correctActivities, fixedIonicStrength) > precision))\n    {\n        var jacobian = new Matrix(balanceJacobian(ctx, correctActivities, fixedIonicStrength, solids));\n        var inverseJacobian = jacobian.inverse().to2DArray();\n        var shifts;\n        //computation of shift vector with an adequately sized product and activity correction-contingent shifts\n        if (correctActivities)\n        {\n            if (fixedIonicStrength) {\n                shifts = product(totalError, inverseJacobian, ctx.nFixedTotalConcentrations + solidsLength + 1, ctx.nFixedTotalConcentrations + solidsLength + 1);\n            }\n            else {\n                shifts = product(totalError, inverseJacobian, ctx.nFixedTotalConcentrations + solidsLength + 2, ctx.nFixedTotalConcentrations + solidsLength + 2);\n                //shift ionic strength\n                ctx.ionicStrength += shifts[(ctx.nFixedTotalConcentrations + solidsLength + 1)];\n            }\n\n            //shift solvent activity\n            ctx.componentActivities[(ctx.nComponents - 1)] += shifts[(ctx.nFixedTotalConcentrations + solidsLength)];\n        }\n        else {\n            shifts = product(totalError, inverseJacobian, ctx.nFixedTotalConcentrations + solidsLength, ctx.nFixedTotalConcentrations + solidsLength);\n        }\n\n        //shift component activities\n        ctx.componentActivities = sum(ctx.componentActivities, shifts, ctx.nFixedTotalConcentrations, true);\n\n        var solidIndex = ctx.nFixedTotalConcentrations;\n        for (i=0; i<solids.length; i++) {\n        ctx.solidSpeciesConcentrations[solids[i]] += shifts[solidIndex];\n        solidIndex++;\n    }\n\n        //update species concentrations\n        ctx.calculateSolutionSpeciesConcentrations(correctActivities);\n        totalError = balance(ctx, correctActivities, fixedIonicStrength, solids);\n        iterations++;\n    }\n    if (iterations === 1) {\n        //console.log(\"Equilibrium reached after \" + iterations + \" iterations\");\n        return iterations;\n    }\n    if (iterations > maxIterations) {\n        //console.log(\"maximum number of iterations reached without convergence\");\n    }\n    else {\n        //console.log(\"Equilibrium reached after \" + (iterations - 1) + \" iterations\");\n    }\n    return iterations - 1;\n}\n\n//relative error on total concentrations\nfunction maximumRelativeError(ctx, errors, solids, correctActivities, fixedIonicStrength) {\n    var  maxError = 0.0, i;\n\n    for (i = 0; i < ctx.nFixedTotalConcentrations; i++) {\n        maxError = Math.max(maxError, Math.abs(errors[i] / ctx.fixedTotalComponentConcentrations[i]));\n    }\n    var solidIndex = ctx.nFixedTotalConcentrations;\n\n    //relative error on solid solubility products\n    for (i=0; i<solids.length; i++) {\n        maxError = Math.max(maxError, Math.abs(errors[solidIndex] / ctx.solidSpeciesConstants[solids[i]]));\n        solidIndex++;\n    }\n    if (correctActivities) {\n        //relative error on solvent activity\n        maxError = Math.max(maxError, Math.abs(errors[solidIndex] / ctx.componentActivities[(ctx.nComponents - 1)]));\n        if (!fixedIonicStrength) {\n            //relative error on ionic strength\n            maxError = Math.max(maxError, Math.abs(errors[(solidIndex + 1)] / ctx.ionicStrength));\n        }\n    }\n    return maxError;\n}\n\nfunction mostInsoluble(ctx) {\n    var saturationIndices = ctx.saturationIndices();\n    var result = 0, i;\n    for (i = 0; i < ctx.nSolids; i++) {\n        if (saturationIndices[i] > saturationIndices[result]) {\n            result = i;\n        }\n    }\n    return result;\n}\n\n//returns the number of iterations in the last run of equilibrate (the one that ends with no oversaturated/insaturated solid) or\n//maxIterations if maximum number of precipitation cycles was exausted\nfunction calculateOnePoint(ctx, correctActivities, fixedIonicStrength, maxIterations, precision)\n{\n    var currentSolid = 0;\n    var solidsToPrecipitate = [];\n    var precipitationCycles = 0;\n    var i;\n    //console.log(\"Iterating solution towards equilibrium...\");\n    var result = equilibrate(ctx, correctActivities, fixedIonicStrength, solidsToPrecipitate, maxIterations, precision);\n\n    if (ctx.nSolids > 0) {\n        var saturationIndices = ctx.saturationIndices();\n\n        //disolve all insaturated\n        for (i = 0; i < ctx.nSolids; i++) {\n            if ((ctx.solidSpeciesConcentrations[i] > 0.0) && (1.0 - saturationIndices[i] > precision)) {\n                disolve(ctx, i, correctActivities);\n            }\n        }\n        result = equilibrate(ctx,correctActivities, fixedIonicStrength, maxIterations, precision);\n\n        saturationIndices = ctx.saturationIndices();\n        currentSolid = mostInsoluble(ctx);\n\n        while ((saturationIndices[currentSolid] - 1.0 > precision) && (precipitationCycles <= ctx.nSolids))\n        {\n            precipitationCycles++;\n            //console.log(\"Solid \" + currentSolid + \" is over-saturated and will be included in the global balance\");\n            //console.log(\"Iterating the extended system towards equilibrium...\");\n            solidsToPrecipitate = solidsToPrecipitate.slice(0, solidsToPrecipitate.length + 1);\n            solidsToPrecipitate[(solidsToPrecipitate.length - 1)] = currentSolid;\n            equilibrate(ctx, correctActivities, fixedIonicStrength, solidsToPrecipitate, maxIterations, precision);\n            saturationIndices = ctx.saturationIndices();\n            for (i = 0; i < ctx.nSolids; i++) {\n                if ((ctx.solidSpeciesConcentrations[i] > 0.0) && (1.0 - saturationIndices[i] > precision)) {\n                    disolve(ctx, i, correctActivities);\n                }\n            }\n            result = equilibrate(ctx, correctActivities, fixedIonicStrength, maxIterations, precision);\n            saturationIndices = ctx.saturationIndices();\n\n            currentSolid = mostInsoluble(ctx);\n        }\n    }\n\n    if (precipitationCycles > ctx.nSolids) {\n        //console.log(\"Solid phases could not be equilibrated with the solution\");\n        return maxIterations;\n    }\n    //console.log(\"All solid phases are now in equilibrium with the solution\");\n    return result;\n}\n\nfunction hasZero(arr, nElements) {\n    var i;\n    for (i = 0; i < nElements; i++) {\n        if (arr[i] == 0.0) {\n            return true;\n        }\n    }\n    return false;\n}\n\nfunction hasNegative(arr, nElements) {\n    for (var i = 0; i < nElements; i++) {\n        if (arr[i] < 0.0 || arr[i] === Infinity || arr[i] === -Infinity || isNaN(arr[i]))\n            return true;\n    }\n    return false;\n}\n\nfunction hasError(ctx, val, nElements) {\n    if(argements.length === 1) {\n        return (hasError(ctx.componentActivities, ctx.nComponents)) ||\n            (hasError(getSolutionSpeciesConcentrations(), ctx.nSolutionSpecies)) ||\n            (hasError(getSolidsConcentrations(), ctx.nSolids)) ||\n            (hasError(getIonicStrength()));\n    }\n    if(arguments.length === 2) {\n        return val === Infinity || val === -Infinity;\n    }\n    if(arguments.length === 3) {\n        if(typeof val !== Array) return true;\n        for (var i = 0; i < nElements; i++) {\n            if (val[i] === Infinity || val[i] === -Infinity)\n                return true;\n        }\n        return false;\n    }\n\n}\n\nfunction product(a1,  a2, nRows, nColumns) {\n    var result, i, j;\n    if(Array.isArray(a1) && Array.isArray(a1[0])) {\n        result = initialize1DArray(a1.length);\n        for (i = 0; i < nRows; i++) {\n            result[i] = 0.0;\n            for (j = 0; j < nColumns; j++) {\n                result[i] += a1[i][j] * a2[j];\n            }\n        }\n    }\n    else if(Array.isArray(a2) && Array.isArray(a2[0])) {\n        result = initialize1DArray(a2[0].length);\n        for (i = 0; i < nColumns; i++) {\n            result[i] = 0.0;\n            for (j = 0; j < nRows; j++) {\n                result[i] += a2[j][i] * a1[j];\n            }\n        }\n        return result;\n    }\n\n    return result;\n}\n\nfunction sum(v1, v2, nElements, inPlace) {\n    var result;\n    if(inPlace) {\n        result = v1.slice();\n    }\n    else {\n        result = initialize1DArray(v1.length);\n    }\n    for (var i = 0; i < nElements; i++) {\n        result[i] = v1[i] + v2[i];\n    }\n    return result;\n}\n\nfunction minus(v1, v2, nElements, inPlace) {\n    var result;\n    if(inPlace) {\n        result = v1.slice();\n    }\n    else {\n        result = initialize1DArray(v1.length);\n    }\n    for (var i = 0; i < nElements; i++) {\n        result[i] = v1[i] - v2[i];\n    }\n    return result;\n}\n\nfunction deepCopy(doubleArray, nRows, nCols) {\n    var result = initialize1DArray(nRows);\n    for(var i=0; i<doubleArray.length; i++) {\n        result[i] = doubleArray[i].slice();\n    }\n    return result;\n}\n\nfunction optionsAsProperties(ctx, options) {\n    for(var key in options) {\n        ctx[key] = options[key];\n    }\n}\n\nfunction initialize2DArray(nRow, nCol) {\n    var result = new Array(nRow);\n    for(var i=0; i<nRow; i++) {\n        result[i] = initialize1DArray(nCol);\n    }\n    return result;\n}\n\nfunction initialize1DArray(n) {\n    return Array.apply(null, new Array(n)).map(Number.prototype.valueOf,0);\n}\n\nfunction rndWithSeed(seed) {\n    var mt = new mersenneTwister(seed);\n    return mt.random.bind(mt);\n}\n\nfunction constantRandom(constant) {\n    return function() {\n        return constant;\n    };\n}\n\nmodule.exports = EquilibriumCalculator;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/chem-equilibrium/src/index.js\n ** module id = 1\n ** module chunks = 0\n **/","'use strict';\n\nmodule.exports = require('./matrix');\nmodule.exports.Decompositions = module.exports.DC = require('./decompositions');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/chem-equilibrium/~/ml-matrix/src/index.js\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nvar Asplice = Array.prototype.splice,\n    Aconcat = Array.prototype.concat;\n\n// For performance : http://jsperf.com/clone-array-slice-vs-while-vs-for\nfunction slice(arr) {\n    var i = 0,\n        ii = arr.length,\n        result = new Array(ii);\n    for (; i < ii; i++) {\n        result[i] = arr[i];\n    }\n    return result;\n}\n\nfunction MatrixError(message) {\n    this.message = message || 'Unknown matrix error';\n}\nMatrixError.prototype = Object.create(Error.prototype);\nMatrixError.prototype.name = 'MatrixError';\nMatrixError.prototype.constructor = MatrixError;\n\n/**\n * Real matrix.\n * @constructor\n * @param {number|Array} nRows - Number of rows of the new matrix or a 2D array containing the data.\n * @param {number|boolean} [nColumns] - Number of columns of the new matrix or a boolean specifying if the input array should be cloned\n */\nfunction Matrix(nRows, nColumns) {\n    var i = 0, rows, columns, matrix, newInstance;\n    if (nRows instanceof Array) {\n        newInstance = nColumns;\n        matrix = newInstance ? slice(nRows) : nRows;\n        nRows = matrix.length;\n        nColumns = matrix[0].length;\n        if (typeof nColumns === 'undefined') {\n            throw new MatrixError('Data must be a 2D array');\n        }\n        if (nRows > 0 && nColumns > 0) {\n            for (; i < nRows; i++) {\n                if (matrix[i].length !== nColumns) {\n                    throw new MatrixError('Inconsistent array dimensions');\n                } else if (newInstance) {\n                    matrix[i] = slice(matrix[i]);\n                }\n            }\n        } else {\n            throw new MatrixError('Invalid dimensions: ' + nRows + 'x' + nColumns);\n        }\n    } else if (typeof nRows === 'number') { // Create empty matrix\n        if (nRows > 0 && nColumns > 0) {\n            matrix = new Array(nRows);\n            for (; i < nRows; i++) {\n                matrix[i] = new Array(nColumns);\n            }\n        } else {\n            throw new MatrixError('Invalid dimensions: ' + nRows + 'x' + nColumns);\n        }\n    } else {\n        throw new MatrixError('Invalid arguments')\n    }\n\n    Object.defineProperty(matrix, 'rows', {writable: true, value: nRows});\n    Object.defineProperty(matrix, 'columns', {writable: true, value: nColumns});\n\n    matrix.__proto__ = Matrix.prototype;\n\n    return matrix;\n}\n\n/**\n * Constructs a Matrix with the chosen dimensions from a 1D array.\n * @param {number} newRows - Number of rows\n * @param {number} newColumns - Number of columns\n * @param {Array} newData - A 1D array containing data for the matrix\n * @returns {Matrix} - The new matrix\n */\nMatrix.from1DArray = function from1DArray(newRows, newColumns, newData) {\n    var length, data, i = 0;\n\n    length = newRows * newColumns;\n    if (length !== newData.length)\n        throw new MatrixError('Data length does not match given dimensions');\n\n    data = new Array(newRows);\n    for (; i < newRows; i++) {\n        data[i] = newData.slice(i * newColumns, (i + 1) * newColumns);\n    }\n    return new Matrix(data);\n};\n\n/**\n * Creates a row vector, a matrix with only one row.\n * @param {Array} newData - A 1D array containing data for the vector\n * @returns {Matrix} - The new matrix\n */\nMatrix.rowVector = function rowVector(newData) {\n    return new Matrix([newData]);\n};\n\n/**\n * Creates a column vector, a matrix with only one column.\n * @param {Array} newData - A 1D array containing data for the vector\n * @returns {Matrix} - The new matrix\n */\nMatrix.columnVector = function columnVector(newData) {\n    var l = newData.length, vector = new Array(l);\n    for (var i = 0; i < l; i++)\n        vector[i] = [newData[i]];\n    return new Matrix(vector);\n};\n\n/**\n * Creates an empty matrix with the given dimensions. Values will be undefined. Same as using new Matrix(rows, columns).\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @returns {Matrix} - The new matrix\n */\nMatrix.empty = function empty(rows, columns) {\n    return new Matrix(rows, columns);\n};\n\n/**\n * Creates a matrix with the given dimensions. Values will be set to zero.\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @returns {Matrix} - The new matrix\n */\nMatrix.zeros = function zeros(rows, columns) {\n    return Matrix.empty(rows, columns).fill(0);\n};\n\n/**\n * Creates a matrix with the given dimensions. Values will be set to one.\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @returns {Matrix} - The new matrix\n */\nMatrix.ones = function ones(rows, columns) {\n    return Matrix.empty(rows, columns).fill(1);\n};\n\n/**\n * Creates a matrix with the given dimensions. Values will be randomly set using Math.random().\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @returns {Matrix} The new matrix\n */\nMatrix.rand = function rand(rows, columns) {\n    var matrix = Matrix.empty(rows, columns);\n    for (var i = 0, ii = matrix.rows; i < ii; i++) {\n        for (var j = 0, jj = matrix.columns; j < jj; j++) {\n            matrix[i][j] = Math.random();\n        }\n    }\n    return matrix;\n};\n\n/**\n * Creates an identity matrix with the given dimension. Values of the diagonal will be 1 and other will be 0.\n * @param {number} n - Number of rows and columns\n * @returns {Matrix} - The new matrix\n */\nMatrix.eye = function eye(n) {\n    var matrix = Matrix.zeros(n, n), l = matrix.rows;\n    for (var i = 0; i < l; i++) {\n        matrix[i][i] = 1;\n    }\n    return matrix;\n};\n\n/**\n * Creates a diagonal matrix based on the given array.\n * @param {Array} data - Array containing the data for the diagonal\n * @returns {Matrix} - The new matrix\n */\nMatrix.diag = function diag(data) {\n    var l = data.length, matrix = Matrix.zeros(l, l);\n    for (var i = 0; i < l; i++) {\n        matrix[i][i] = data[i];\n    }\n    return matrix;\n};\n\n/**\n * Creates an array of indices between two values\n * @param {number} from\n * @param {number} to\n * @returns {Array}\n */\nMatrix.indices = function indices(from, to) {\n    var vector = new Array(to - from);\n    for (var i = 0; i < vector.length; i++)\n        vector[i] = from++;\n    return vector;\n};\n\n// TODO DOC\nMatrix.stack = function stack(arg1) {\n    var i, j, k;\n    if (Matrix.isMatrix(arg1)) {\n        var rows = 0,\n            cols = 0;\n        for (i = 0; i < arguments.length; i++) {\n            rows += arguments[i].rows;\n            if (arguments[i].columns > cols)\n                cols = arguments[i].columns;\n        }\n\n        var r = Matrix.zeros(rows, cols);\n        var c = 0;\n        for (i = 0; i < arguments.length; i++) {\n            var current = arguments[i];\n            for (j = 0; j < current.rows; j++) {\n                for (k = 0; k < current.columns; k++)\n                    r[c][k] = current[j][k];\n                c++;\n            }\n        }\n        return r;\n    }\n    else if (arg1 instanceof Array) {\n        var matrix = Matrix.empty(arguments.length, arg1.length);\n        for (i = 0; i < arguments.length; i++)\n            matrix.setRow(i, arguments[i]);\n        return matrix;\n    }\n};\n\n// TODO DOC\nMatrix.expand = function expand(base, count) {\n    var expansion = [];\n    for (var i = 0; i < count.length; i++)\n        for (var j = 0; j < count[i]; j++)\n            expansion.push(base[i]);\n    return new Matrix(expansion);\n};\n\n/**\n * Check that the provided value is a Matrix and tries to instantiate one if not\n * @param value - The value to check\n * @returns {Matrix}\n * @throws {MatrixError}\n */\nMatrix.checkMatrix = function checkMatrix(value) {\n    if (!value) {\n        throw new MatrixError('Argument has to be a matrix');\n    }\n    if (value.klass !== 'Matrix') {\n        value = new Matrix(value);\n    }\n    return value;\n};\n\n/**\n * Returns true if the argument is a Matrix, false otherwise\n * @param value - The value to check\n * @returns {boolean}\n */\nMatrix.isMatrix = function isMatrix(value) {\n    return value ? value.klass === 'Matrix' : false;\n};\n\n/**\n * @property {string} - The name of this class.\n */\nObject.defineProperty(Matrix.prototype, 'klass', {\n    get: function klass() {\n        return 'Matrix';\n    }\n});\n\n/**\n * @property {number} - The number of elements in the matrix.\n */\nObject.defineProperty(Matrix.prototype, 'size', {\n    get: function size() {\n        return this.rows * this.columns;\n    }\n});\n\n/**\n * @private\n * Internal check that a row index is not out of bounds\n * @param {number} index\n */\nMatrix.prototype.checkRowIndex = function checkRowIndex(index) {\n    if (index < 0 || index > this.rows - 1)\n        throw new MatrixError('Row index out of range.');\n};\n\n/**\n * @private\n * Internal check that a column index is not out of bounds\n * @param {number} index\n */\nMatrix.prototype.checkColumnIndex = function checkColumnIndex(index) {\n    if (index < 0 || index > this.columns - 1)\n        throw new MatrixError('Column index out of range.');\n};\n\n/**\n * @private\n * Internal check that two matrices have the same dimensions\n * @param {Matrix} otherMatrix\n */\nMatrix.prototype.checkDimensions = function checkDimensions(otherMatrix) {\n    if ((this.rows !== otherMatrix.rows) || (this.columns !== otherMatrix.columns))\n        throw new MatrixError('Matrices dimensions must be equal.');\n};\n\n/**\n * Applies a callback for each element of the matrix. The function is called in the matrix (this) context.\n * @param {function} callback - Function that will be called with two parameters : i (row) and j (column)\n * @returns {Matrix} this\n */\nMatrix.prototype.apply = function apply(callback) {\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            callback.call(this, i, j);\n        }\n    }\n    return this;\n};\n\n/**\n * Creates an exact and independent copy of the matrix\n * @returns {Matrix}\n */\nMatrix.prototype.clone = function clone() {\n    return new Matrix(this.to2DArray());\n};\n\n/**\n * Returns a new 1D array filled row by row with the matrix values\n * @returns {Array}\n */\nMatrix.prototype.to1DArray = function to1DArray() {\n    return Aconcat.apply([], this);\n};\n\n/**\n * Returns a 2D array containing a copy of the data\n * @returns {Array}\n */\nMatrix.prototype.to2DArray = function to2DArray() {\n    var l = this.rows, copy = new Array(l);\n    for (var i = 0; i < l; i++) {\n        copy[i] = slice(this[i]);\n    }\n    return copy;\n};\n\n/**\n * @returns {boolean} true if the matrix has one row\n */\nMatrix.prototype.isRowVector = function isRowVector() {\n    return this.rows === 1;\n};\n\n/**\n * @returns {boolean} true if the matrix has one column\n */\nMatrix.prototype.isColumnVector = function isColumnVector() {\n    return this.columns === 1;\n};\n\n/**\n * @returns {boolean} true if the matrix has one row or one column\n */\nMatrix.prototype.isVector = function isVector() {\n    return (this.rows === 1) || (this.columns === 1);\n};\n\n/**\n * @returns {boolean} true if the matrix has the same number of rows and columns\n */\nMatrix.prototype.isSquare = function isSquare() {\n    return this.rows === this.columns;\n};\n\n/**\n * @returns {boolean} true if the matrix is square and has the same values on both sides of the diagonal\n */\nMatrix.prototype.isSymmetric = function isSymmetric() {\n    if (this.isSquare()) {\n        var l = this.rows;\n        for (var i = 0; i < l; i++) {\n            for (var j = 0; j <= i; j++) {\n                if (this[i][j] !== this[j][i]) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n    return false;\n};\n\n/**\n * Sets a given element of the matrix. mat.set(3,4,1) is equivalent to mat[3][4]=1\n * @param {number} rowIndex - Index of the row\n * @param {number} columnIndex - Index of the column\n * @param {number} value - The new value for the element\n * @returns {Matrix} this\n */\nMatrix.prototype.set = function set(rowIndex, columnIndex, value) {\n    this[rowIndex][columnIndex] = value;\n    return this;\n};\n\n/**\n * Returns the given element of the matrix. mat.get(3,4) is equivalent to matrix[3][4]\n * @param {number} rowIndex - Index of the row\n * @param {number} columnIndex - Index of the column\n * @returns {number}\n */\nMatrix.prototype.get = function get(rowIndex, columnIndex) {\n    return this[rowIndex][columnIndex];\n};\n\n/**\n * Fills the matrix with a given value. All elements will be set to this value.\n * @param {number} value - New value\n * @returns {Matrix} this\n */\nMatrix.prototype.fill = function fill(value) {\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] = value;\n        }\n    }\n    return this;\n};\n\n/**\n * Negates the matrix. All elements will be multiplied by (-1)\n * @returns {Matrix} this\n */\nMatrix.prototype.neg = function neg() {\n    return this.mulS(-1);\n};\n\n/**\n * Adds a scalar or values from another matrix (in place)\n * @param {number|Matrix} value\n * @returns {Matrix} this\n */\nMatrix.prototype.add = function add(value) {\n    if (typeof value === 'number')\n        return this.addS(value);\n    value = Matrix.checkMatrix(value);\n        return this.addM(value);\n};\n\n/**\n * Adds a scalar to each element of the matrix\n * @param {number} value\n * @returns {Matrix} this\n */\nMatrix.prototype.addS = function addS(value) {\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] += value;\n        }\n    }\n    return this;\n};\n\n/**\n * Adds the value of each element of matrix to the corresponding element of this\n * @param {Matrix} matrix\n * @returns {Matrix} this\n */\nMatrix.prototype.addM = function addM(matrix) {\n    this.checkDimensions(matrix);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] += matrix[i][j];\n        }\n    }\n    return this;\n};\n\n/**\n * Subtracts a scalar or values from another matrix (in place)\n * @param {number|Matrix} value\n * @returns {Matrix} this\n */\nMatrix.prototype.sub = function sub(value) {\n    if (typeof value === 'number')\n        return this.subS(value);\n    value = Matrix.checkMatrix(value);\n        return this.subM(value);\n};\n\n/**\n * Subtracts a scalar from each element of the matrix\n * @param {number} value\n * @returns {Matrix} this\n */\nMatrix.prototype.subS = function subS(value) {\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] -= value;\n        }\n    }\n    return this;\n};\n\n/**\n * Subtracts the value of each element of matrix from the corresponding element of this\n * @param {Matrix} matrix\n * @returns {Matrix} this\n */\nMatrix.prototype.subM = function subM(matrix) {\n    this.checkDimensions(matrix);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] -= matrix[i][j];\n        }\n    }\n    return this;\n};\n\n/**\n * Multiplies a scalar or values from another matrix (in place)\n * @param {number|Matrix} value\n * @returns {Matrix} this\n */\nMatrix.prototype.mul = function mul(value) {\n    if (typeof value === 'number')\n        return this.mulS(value);\n    value = Matrix.checkMatrix(value);\n        return this.mulM(value);\n};\n\n/**\n * Multiplies a scalar with each element of the matrix\n * @param {number} value\n * @returns {Matrix} this\n */\nMatrix.prototype.mulS = function mulS(value) {\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] *= value;\n        }\n    }\n    return this;\n};\n\n/**\n * Multiplies the value of each element of matrix with the corresponding element of this\n * @param {Matrix} matrix\n * @returns {Matrix} this\n */\nMatrix.prototype.mulM = function mulM(matrix) {\n    this.checkDimensions(matrix);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] *= matrix[i][j];\n        }\n    }\n    return this;\n};\n\n/**\n * Divides by a scalar or values from another matrix (in place)\n * @param {number|Matrix} value\n * @returns {Matrix} this\n */\nMatrix.prototype.div = function div(value) {\n    if (typeof value === 'number')\n        return this.divS(value);\n    value = Matrix.checkMatrix(value);\n        return this.divM(value);\n};\n\n/**\n * Divides each element of the matrix by a scalar\n * @param {number} value\n * @returns {Matrix} this\n */\nMatrix.prototype.divS = function divS(value) {\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] /= value;\n        }\n    }\n    return this;\n};\n\n/**\n * Divides each element of this by the corresponding element of matrix\n * @param {Matrix} matrix\n * @returns {Matrix} this\n */\nMatrix.prototype.divM = function divM(matrix) {\n    this.checkDimensions(matrix);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] /= matrix[i][j];\n        }\n    }\n    return this;\n};\n\n/**\n * Returns a new array from the given row index\n * @param {number} index - Row index\n * @returns {Array}\n */\nMatrix.prototype.getRow = function getRow(index) {\n    this.checkRowIndex(index);\n    return slice(this[index]);\n};\n\n/**\n * Sets a row at the given index\n * @param {number} index - Row index\n * @param {Array|Matrix} array - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.setRow = function setRow(index, array) {\n    this.checkRowIndex(index);\n    if (Matrix.isMatrix(array)) array = array.to1DArray();\n    if (array.length !== this.columns)\n        throw new MatrixError('Invalid row size');\n    this[index] = slice(array);\n    return this;\n};\n\n/**\n * Removes a row from the given index\n * @param {number} index - Row index\n * @returns {Matrix} this\n */\nMatrix.prototype.removeRow = function removeRow(index) {\n    this.checkRowIndex(index);\n    if (this.rows === 1)\n        throw new MatrixError('A matrix cannot have less than one row');\n    Asplice.call(this, index, 1);\n    this.rows -= 1;\n    return this;\n};\n\n/**\n * Adds a row at the given index\n * @param {number} [index = this.rows] - Row index\n * @param {Array|Matrix} array - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.addRow = function addRow(index, array) {\n    if (typeof array === 'undefined') {\n        array = index;\n        index = this.rows;\n    }\n    if (index < 0 || index > this.rows)\n        throw new MatrixError('Row index out of range.');\n    if (Matrix.isMatrix(array)) array = array.to1DArray();\n    if (array.length !== this.columns)\n        throw new MatrixError('Invalid row size');\n    Asplice.call(this, index, 0, slice(array));\n    this.rows += 1;\n    return this;\n};\n\n/**\n * Swaps two rows\n * @param {number} row1 - First row index\n * @param {number} row2 - Second row index\n * @returns {Matrix} this\n */\nMatrix.prototype.swapRows = function swapRows(row1, row2) {\n    this.checkRowIndex(row1);\n    this.checkRowIndex(row2);\n    var temp = this[row1];\n    this[row1] = this[row2];\n    this[row2] = temp;\n    return this;\n};\n\n/**\n * Returns a new array from the given column index\n * @param {number} index - Column index\n * @returns {Array}\n */\nMatrix.prototype.getColumn = function getColumn(index) {\n    this.checkColumnIndex(index);\n    var l = this.rows, column = new Array(l);\n    for (var i = 0; i < l; i++) {\n        column[i] = this[i][index];\n    }\n    return column;\n};\n\n/**\n * Sets a column at the given index\n * @param {number} index - Column index\n * @param {Array|Matrix} array - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.setColumn = function setColumn(index, array) {\n    this.checkColumnIndex(index);\n    if (Matrix.isMatrix(array)) array = array.to1DArray();\n    var l = this.rows;\n    if (array.length !== l)\n        throw new MatrixError('Invalid column size');\n    for (var i = 0; i < l; i++) {\n        this[i][index] = array[i];\n    }\n    return this;\n};\n\n/**\n * Removes a column from the given index\n * @param {number} index - Column index\n * @returns {Matrix} this\n */\nMatrix.prototype.removeColumn = function removeColumn(index) {\n    this.checkColumnIndex(index);\n    if (this.columns === 1)\n        throw new MatrixError('A matrix cannot have less than one column');\n    for (var i = 0, ii = this.rows; i < ii; i++) {\n        this[i].splice(index, 1);\n    }\n    this.columns -= 1;\n    return this;\n};\n\n/**\n * Adds a column at the given index\n * @param {number} [index = this.columns] - Column index\n * @param {Array|Matrix} array - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.addColumn = function addColumn(index, array) {\n    if (typeof array === 'undefined') {\n        array = index;\n        index = this.columns;\n    }\n    if (index < 0 || index > this.columns)\n        throw new MatrixError('Column index out of range.');\n    if (Matrix.isMatrix(array)) array = array.to1DArray();\n    var l = this.rows;\n    if (array.length !== l)\n        throw new MatrixError('Invalid column size');\n    for (var i = 0; i < l; i++) {\n        this[i].splice(index, 0, array[i]);\n    }\n    this.columns += 1;\n    return this;\n};\n\n/**\n * Swaps two columns\n * @param {number} column1 - First column index\n * @param {number} column2 - Second column index\n * @returns {Matrix} this\n */\nMatrix.prototype.swapColumns = function swapColumns(column1, column2) {\n    this.checkRowIndex(column1);\n    this.checkRowIndex(column2);\n    var l = this.rows, temp, row;\n    for (var i = 0; i < l; i++) {\n        row = this[i];\n        temp = row[column1];\n        row[column1] = row[column2];\n        row[column2] = temp;\n    }\n    return this;\n};\n\n/**\n * @private\n * Internal check that the provided vector is an array with the right length\n * @param {Array|Matrix} vector\n * @returns {Array}\n * @throws {MatrixError}\n */\nMatrix.prototype.checkRowVector = function checkRowVector(vector) {\n    if (Matrix.isMatrix(vector))\n        vector = vector.to1DArray();\n    if (vector.length !== this.columns)\n        throw new MatrixError('vector size must be the same as the number of columns');\n    return vector;\n};\n\n/**\n * @private\n * Internal check that the provided vector is an array with the right length\n * @param {Array|Matrix} vector\n * @returns {Array}\n * @throws {MatrixError}\n */\nMatrix.prototype.checkColumnVector = function checkColumnVector(vector) {\n    if (Matrix.isMatrix(vector))\n        vector = vector.to1DArray();\n    if (vector.length !== this.rows)\n        throw new MatrixError('vector size must be the same as the number of rows');\n    return vector;\n};\n\n/**\n * Adds the values of a vector to each row\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.addRowVector = function addRowVector(vector) {\n    vector = this.checkRowVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] += vector[j];\n        }\n    }\n    return this;\n};\n\n/**\n * Subtracts the values of a vector from each row\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.subRowVector = function subRowVector(vector) {\n    vector = this.checkRowVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] -= vector[j];\n        }\n    }\n    return this;\n};\n\n/**\n * Multiplies the values of a vector with each row\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.mulRowVector = function mulRowVector(vector) {\n    vector = this.checkRowVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] *= vector[j];\n        }\n    }\n    return this;\n};\n\n/**\n * Divides the values of each row by those of a vector\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.divRowVector = function divRowVector(vector) {\n    vector = this.checkRowVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] /= vector[j];\n        }\n    }\n    return this;\n};\n\n/**\n * Adds the values of a vector to each column\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.addColumnVector = function addColumnVector(vector) {\n    vector = this.checkColumnVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] += vector[i];\n        }\n    }\n    return this;\n};\n\n/**\n * Subtracts the values of a vector from each column\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.subColumnVector = function subColumnVector(vector) {\n    vector = this.checkColumnVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] -= vector[i];\n        }\n    }\n    return this;\n};\n\n/**\n * Multiplies the values of a vector with each column\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.mulColumnVector = function mulColumnVector(vector) {\n    vector = this.checkColumnVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] *= vector[i];\n        }\n    }\n    return this;\n};\n\n/**\n * Divides the values of each column by those of a vector\n * @param {Array|Matrix} vector - Array or vector\n * @returns {Matrix} this\n */\nMatrix.prototype.divColumnVector = function divColumnVector(vector) {\n    vector = this.checkColumnVector(vector);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] /= vector[i];\n        }\n    }\n    return this;\n};\n\n/**\n * Multiplies the values of a row with a scalar\n * @param {number} index - Row index\n * @param {number} value\n * @returns {Matrix} this\n */\nMatrix.prototype.mulRow = function mulRow(index, value) {\n    this.checkRowIndex(index);\n    var i = 0, l = this.columns;\n    for (; i < l; i++) {\n        this[index][i] *= value;\n    }\n    return this;\n};\n\n/**\n * Multiplies the values of a column with a scalar\n * @param {number} index - Column index\n * @param {number} value\n * @returns {Matrix} this\n */\nMatrix.prototype.mulColumn = function mulColumn(index, value) {\n    this.checkColumnIndex(index);\n    var i = 0, l = this.rows;\n    for (; i < l; i++) {\n        this[i][index] *= value;\n    }\n};\n\n/**\n * A matrix index\n * @typedef {Object} MatrixIndex\n * @property {number} row\n * @property {number} column\n */\n\n/**\n * Returns the maximum value of the matrix\n * @returns {number}\n */\nMatrix.prototype.max = function max() {\n    var v = -Infinity;\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            if (this[i][j] > v) {\n                v = this[i][j];\n            }\n        }\n    }\n    return v;\n};\n\n/**\n * Returns the index of the maximum value\n * @returns {MatrixIndex}\n */\nMatrix.prototype.maxIndex = function maxIndex() {\n    var v = -Infinity;\n    var idx = {};\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            if (this[i][j] > v) {\n                v = this[i][j];\n                idx.row = i;\n                idx.column = j;\n            }\n        }\n    }\n    return idx;\n};\n\n/**\n * Returns the minimum value of the matrix\n * @returns {number}\n */\nMatrix.prototype.min = function min() {\n    var v = Infinity;\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            if (this[i][j] < v) {\n                v = this[i][j];\n            }\n        }\n    }\n    return v;\n};\n\n/**\n * Returns the index of the minimum value\n * @returns {MatrixIndex}\n */\nMatrix.prototype.minIndex = function minIndex() {\n    var v = Infinity;\n    var idx = {};\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            if (this[i][j] < v) {\n                v = this[i][j];\n                idx.row = i;\n                idx.column = j;\n            }\n        }\n    }\n    return idx;\n};\n\n/**\n * Returns the maximum value of one row\n * @param {number} index - Row index\n * @returns {number}\n */\nMatrix.prototype.maxRow = function maxRow(index) {\n    this.checkRowIndex(index);\n    var v = -Infinity;\n    for (var i = 0, ii = this.columns; i < ii; i++) {\n        if (this[index][i] > v) {\n            v = this[index][i];\n        }\n    }\n    return v;\n};\n\n/**\n * Returns the index of the maximum value of one row\n * @param {number} index - Row index\n * @returns {MatrixIndex}\n */\nMatrix.prototype.maxRowIndex = function maxRowIndex(index) {\n    this.checkRowIndex(index);\n    var v = -Infinity;\n    var idx = {\n            row: index\n        };\n    for (var i = 0, ii = this.columns; i < ii; i++) {\n        if (this[index][i] > v) {\n            v = this[index][i];\n            idx.column = i;\n        }\n    }\n    return idx;\n};\n\n/**\n * Returns the minimum value of one row\n * @param {number} index - Row index\n * @returns {number}\n */\nMatrix.prototype.minRow = function minRow(index) {\n    this.checkRowIndex(index);\n    var v = Infinity;\n    for (var i = 0, ii = this.columns; i < ii; i++) {\n        if (this[index][i] < v) {\n            v = this[index][i];\n        }\n    }\n    return v;\n};\n\n/**\n * Returns the index of the maximum value of one row\n * @param {number} index - Row index\n * @returns {MatrixIndex}\n */\nMatrix.prototype.minRowIndex = function minRowIndex(index) {\n    this.checkRowIndex(index);\n    var v = Infinity;\n    var idx = {\n        row: index,\n        column: 0\n    };\n    for (var i = 0, ii = this.columns; i < ii; i++) {\n        if (this[index][i] < v) {\n            v = this[index][i];\n            idx.column = i;\n        }\n    }\n    return idx;\n};\n\n/**\n * Returns the maximum value of one column\n * @param {number} index - Column index\n * @returns {number}\n */\nMatrix.prototype.maxColumn = function maxColumn(index) {\n    this.checkColumnIndex(index);\n    var v = -Infinity;\n    for (var i = 0, ii = this.rows; i < ii; i++) {\n        if (this[i][index] > v) {\n            v = this[i][index];\n        }\n    }\n    return v;\n};\n\n/**\n * Returns the index of the maximum value of one column\n * @param {number} index - Column index\n * @returns {MatrixIndex}\n */\nMatrix.prototype.maxColumnIndex = function maxColumnIndex(index) {\n    this.checkColumnIndex(index);\n    var v = -Infinity;\n    var idx = {\n        row: 0,\n        column: index\n    };\n    for (var i = 0, ii = this.rows; i < ii; i++) {\n        if (this[i][index] > v) {\n            v = this[i][index];\n            idx.row = i;\n        }\n    }\n    return idx;\n};\n\n/**\n * Returns the minimum value of one column\n * @param {number} index - Column index\n * @returns {number}\n */\nMatrix.prototype.minColumn = function minColumn(index) {\n    this.checkColumnIndex(index);\n    var v = Infinity;\n    for (var i = 0, ii = this.rows; i < ii; i++) {\n        if (this[i][index] < v) {\n            v = this[i][index];\n        }\n    }\n    return v;\n};\n\n/**\n * Returns the index of the minimum value of one column\n * @param {number} index - Column index\n * @returns {MatrixIndex}\n */\nMatrix.prototype.minColumnIndex = function minColumnIndex(index) {\n    this.checkColumnIndex(index);\n    var v = Infinity;\n    var idx = {\n        row: 0,\n        column: index\n    };\n    for (var i = 0, ii = this.rows; i < ii; i++) {\n        if (this[i][index] < v) {\n            v = this[i][index];\n            idx.row = i;\n        }\n    }\n    return idx;\n};\n\n/**\n * Returns an array containing the diagonal values of the matrix\n * @returns {Array}\n */\nMatrix.prototype.diag = function diag() {\n    if (!this.isSquare())\n        throw new MatrixError('Only square matrices have a diagonal.');\n    var diag = new Array(this.rows);\n    for (var i = 0, ii = this.rows; i < ii; i++) {\n        diag[i] = this[i][i];\n    }\n    return diag;\n};\n\n/**\n * Returns the sum of all elements of the matrix\n * @returns {number}\n */\nMatrix.prototype.sum = function sum() {\n    var v = 0;\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            v += this[i][j];\n        }\n    }\n    return v;\n};\n\n/**\n * Returns the mean of all elements of the matrix\n * @returns {number}\n */\nMatrix.prototype.mean = function mean() {\n    return this.sum() / this.size;\n};\n\n/**\n * Returns the product of all elements of the matrix\n * @returns {number}\n */\nMatrix.prototype.prod = function prod() {\n    var prod = 1;\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            prod *= this[i][j];\n        }\n    }\n    return prod;\n};\n\n/**\n * Computes the cumulative sum of the matrix elements (in place, row by row)\n * @returns {Matrix} this\n */\nMatrix.prototype.cumulativeSum = function cumulativeSum() {\n    var sum = 0;\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            sum += this[i][j];\n            this[i][j] = sum;\n        }\n    }\n    return this;\n};\n\n/**\n * Computes the dot (scalar) product between the matrix and another\n * @param {Matrix} other vector\n * @returns {number}\n */\nMatrix.prototype.dot = function dot(other) {\n    if (this.size !== other.size)\n        throw new MatrixError('vectors do not have the same size');\n    var vector1 = this.to1DArray();\n    var vector2 = other.to1DArray();\n    var dot = 0, l = vector1.length;\n    for (var i = 0; i < l; i++) {\n        dot += vector1[i] * vector2[i];\n    }\n    return dot;\n};\n\n/**\n * Returns the matrix product between this and other\n * @returns {Matrix}\n */\nMatrix.prototype.mmul = function mmul(other) {\n    if (this.columns !== other.rows)\n        console.warn('Number of columns of left matrix are not equal to number of rows of right matrix.');\n\n    var m = this.rows, n = this.columns, p = other.columns;\n    var result = new Matrix(m, p);\n\n    var Bcolj = new Array(n);\n    var i, j, k;\n    for (j = 0; j < p; j++) {\n        for (k = 0; k < n; k++)\n            Bcolj[k] = other[k][j];\n\n        for (i = 0; i < m; i++) {\n            var Arowi = this[i];\n\n            var s = 0;\n            for (k = 0; k < n; k++)\n                s += Arowi[k] * Bcolj[k];\n\n            result[i][j] = s;\n        }\n    }\n    return result;\n};\n\n/**\n * Sorts the rows (in place)\n * @param {function} compareFunction - usual Array.prototype.sort comparison function\n * @returns {Matrix} this\n */\nMatrix.prototype.sortRows = function sortRows(compareFunction) {\n    for (var i = 0, ii = this.rows; i < ii; i++) {\n        this[i].sort(compareFunction);\n    }\n    return this;\n};\n\n/**\n * Sorts the columns (in place)\n * @param {function} compareFunction - usual Array.prototype.sort comparison function\n * @returns {Matrix} this\n */\nMatrix.prototype.sortColumns = function sortColumns(compareFunction) {\n    for (var i = 0, ii = this.columns; i < ii; i++) {\n        this.setColumn(i, this.getColumn(i).sort(compareFunction));\n    }\n    return this;\n};\n\n/**\n * Transposes the matrix and returns a new one containing the result\n * @returns {Matrix}\n */\nMatrix.prototype.transpose = function transpose() {\n    var result = new Matrix(this.columns, this.rows);\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            result[j][i] = this[i][j];\n        }\n    }\n    return result;\n};\n\n/**\n * Returns a subset of the matrix\n * @param {number} startRow - First row index\n * @param {number} endRow - Last row index\n * @param {number} startColumn - First column index\n * @param {number} endColumn - Last column index\n * @returns {Matrix}\n */\nMatrix.prototype.subMatrix = function subMatrix(startRow, endRow, startColumn, endColumn) {\n    if ((startRow > endRow) || (startColumn > endColumn) || (startRow < 0) || (startRow >= this.rows) || (endRow < 0) || (endRow >= this.rows) || (startColumn < 0) || (startColumn >= this.columns) || (endColumn < 0) || (endColumn >= this.columns))\n        throw new MatrixError('Argument out of range');\n    var newMatrix = new Matrix(endRow - startRow + 1, endColumn - startColumn + 1);\n    for (var i = startRow; i <= endRow; i++) {\n        for (var j = startColumn; j <= endColumn; j++) {\n            newMatrix[i - startRow][j - startColumn] = this[i][j];\n        }\n    }\n    return newMatrix;\n};\n\n/**\n * Returns a subset of the matrix based on an array of row indices\n * @param {Array} indices - Array containing the row indices\n * @param {number} [startColumn = 0] - First column index\n * @param {number} [endColumn = this.columns-1] - Last column index\n * @returns {Matrix}\n */\nMatrix.prototype.subMatrixRow = function subMatrixRow(indices, startColumn, endColumn) {\n    if (typeof startColumn === 'undefined') {\n        startColumn = 0;\n        endColumn = this.columns - 1;\n    } else if (typeof endColumn === 'undefined') {\n        endColumn = this.columns - 1;\n    }\n    if ((startColumn > endColumn) || (startColumn < 0) || (startColumn >= this.columns) || (endColumn < 0) || (endColumn >= this.columns))\n        throw new MatrixError('Argument out of range.');\n    var l = indices.length, rows = this.rows,\n        X = new Matrix(l, endColumn - startColumn + 1);\n    for (var i = 0; i < l; i++) {\n        for (var j = startColumn; j <= endColumn; j++) {\n            if ((indices[i] < 0) || (indices[i] >= rows))\n                throw new MatrixError('Argument out of range.');\n            X[i][j - startColumn] = this[indices[i]][j];\n        }\n    }\n    return X;\n};\n\n/**\n * Returns a subset of the matrix based on an array of column indices\n * @param {Array} indices - Array containing the column indices\n * @param {number} [startRow = 0] - First row index\n * @param {number} [endRow = this.rows-1] - Last row index\n * @returns {Matrix}\n */\nMatrix.prototype.subMatrixColumn = function subMatrixColumn(indices, startRow, endRow) {\n    if (typeof startRow === 'undefined') {\n        startRow = 0;\n        endRow = this.rows - 1;\n    } else if (typeof endRow === 'undefined') {\n        endRow = this.rows - 1;\n    }\n    if ((startRow > endRow) || (startRow < 0) || (startRow >= this.rows) || (endRow < 0) || (endRow >= this.rows))\n        throw new MatrixError('Argument out of range.');\n    var l = indices.length, columns = this.columns,\n        X = new Matrix(endRow - startRow + 1, l);\n    for (var i = 0; i < l; i++) {\n        for (var j = startRow; j <= endRow; j++) {\n            if ((indices[i] < 0) || (indices[i] >= columns))\n                throw new MatrixError('Argument out of range.');\n            X[j - startRow][i] = this[j][indices[i]];\n        }\n    }\n    return X;\n};\n\n/**\n * Returns the trace of the matrix (sum of the diagonal elements)\n * @returns {number}\n */\nMatrix.prototype.trace = function trace() {\n    if (!this.isSquare())\n        throw new MatrixError('The matrix is not square');\n    var trace = 0, i = 0, l = this.rows;\n    for (; i < l; i++) {\n        trace += this[i][i];\n    }\n    return trace;\n};\n\n/**\n * Sets each element of the matrix to its absolute value\n * @returns {Matrix} this\n */\nMatrix.prototype.abs = function abs() {\n    var ii = this.rows, jj = this.columns;\n    for (var i = 0; i < ii; i++) {\n        for (var j = 0; j < jj; j++) {\n            this[i][j] = Math.abs(this[i][j]);\n        }\n    }\n};\n\nMatrix.MatrixError = MatrixError;\n\nmodule.exports = Matrix;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/chem-equilibrium/~/ml-matrix/src/matrix.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nvar Matrix = require('./matrix');\n\n// https://github.com/lutzroeder/Mapack/blob/master/Source/EigenvalueDecomposition.cs\nfunction EigenvalueDecomposition(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (!matrix.isSquare()) {\n        throw new Error('Matrix is not a square matrix');\n    }\n\n    var n = matrix.columns,\n        V = Matrix.zeros(n, n),\n        d = new Array(n),\n        e = new Array(n),\n        value = matrix,\n        i, j;\n\n    if (matrix.isSymmetric()) {\n        for (i = 0; i < n; i++) {\n            for (j = 0; j < n; j++) {\n                V[i][j] = value[i][j];\n            }\n        }\n        tred2(n, e, d, V);\n        tql2(n, e, d, V);\n    }\n    else {\n        var H = Matrix.zeros(n, n),\n            ort = new Array(n);\n        for (j = 0; j < n; j++) {\n            for (i = 0; i < n; i++) {\n                H[i][j] = value[i][j];\n            }\n        }\n        orthes(n, H, ort, V);\n        hqr2(n, e, d, V, H);\n    }\n\n    return new EigenvalueDecompositionResult(n, e, d, V);\n}\n\nfunction tred2(n, e, d, V) {\n\n    var f, g, h, i, j, k,\n        hh, scale;\n\n    for (j = 0; j < n; j++) {\n        d[j] = V[n - 1][j];\n    }\n\n    for (i = n - 1; i > 0; i--) {\n        scale = 0;\n        h = 0;\n        for (k = 0; k < i; k++) {\n            scale = scale + Math.abs(d[k]);\n        }\n\n        if (scale === 0) {\n            e[i] = d[i - 1];\n            for (j = 0; j < i; j++) {\n                d[j] = V[i - 1][j];\n                V[i][j] = 0;\n                V[j][i] = 0;\n            }\n        } else {\n            for (k = 0; k < i; k++) {\n                d[k] /= scale;\n                h += d[k] * d[k];\n            }\n\n            f = d[i - 1];\n            g = Math.sqrt(h);\n            if (f > 0) {\n                g = -g;\n            }\n\n            e[i] = scale * g;\n            h = h - f * g;\n            d[i - 1] = f - g;\n            for (j = 0; j < i; j++) {\n                e[j] = 0;\n            }\n\n            for (j = 0; j < i; j++) {\n                f = d[j];\n                V[j][i] = f;\n                g = e[j] + V[j][j] * f;\n                for (k = j + 1; k <= i - 1; k++) {\n                    g += V[k][j] * d[k];\n                    e[k] += V[k][j] * f;\n                }\n                e[j] = g;\n            }\n\n            f = 0;\n            for (j = 0; j < i; j++) {\n                e[j] /= h;\n                f += e[j] * d[j];\n            }\n\n            hh = f / (h + h);\n            for (j = 0; j < i; j++) {\n                e[j] -= hh * d[j];\n            }\n\n            for (j = 0; j < i; j++) {\n                f = d[j];\n                g = e[j];\n                for (k = j; k <= i - 1; k++) {\n                    V[k][j] -= (f * e[k] + g * d[k]);\n                }\n                d[j] = V[i - 1][j];\n                V[i][j] = 0;\n            }\n        }\n        d[i] = h;\n    }\n\n    for (i = 0; i < n - 1; i++) {\n        V[n - 1][i] = V[i][i];\n        V[i][i] = 1;\n        h = d[i + 1];\n        if (h !== 0) {\n            for (k = 0; k <= i; k++) {\n                d[k] = V[k][i + 1] / h;\n            }\n\n            for (j = 0; j <= i; j++) {\n                g = 0;\n                for (k = 0; k <= i; k++) {\n                    g += V[k][i + 1] * V[k][j];\n                }\n                for (k = 0; k <= i; k++) {\n                    V[k][j] -= g * d[k];\n                }\n            }\n        }\n\n        for (k = 0; k <= i; k++) {\n            V[k][i + 1] = 0;\n        }\n    }\n\n    for (j = 0; j < n; j++) {\n        d[j] = V[n - 1][j];\n        V[n - 1][j] = 0;\n    }\n\n    V[n - 1][n - 1] = 1;\n    e[0] = 0;\n}\n\nfunction tql2(n, e, d, V) {\n\n    var g, h, i, j, k, l, m, p, r,\n        dl1, c, c2, c3, el1, s, s2,\n        iter;\n\n    for (i = 1; i < n; i++) {\n        e[i - 1] = e[i];\n    }\n\n    e[n - 1] = 0;\n\n    var f = 0,\n        tst1 = 0,\n        eps = Math.pow(2, -52);\n\n    for (l = 0; l < n; l++) {\n        tst1 = Math.max(tst1, Math.abs(d[l]) + Math.abs(e[l]));\n        m = l;\n        while (m < n) {\n            if (Math.abs(e[m]) <= eps * tst1) {\n                break;\n            }\n            m++;\n        }\n\n        if (m > l) {\n            iter = 0;\n            do {\n                iter = iter + 1;\n\n                g = d[l];\n                p = (d[l + 1] - g) / (2 * e[l]);\n                r = hypotenuse(p, 1);\n                if (p < 0) {\n                    r = -r;\n                }\n\n                d[l] = e[l] / (p + r);\n                d[l + 1] = e[l] * (p + r);\n                dl1 = d[l + 1];\n                h = g - d[l];\n                for (i = l + 2; i < n; i++) {\n                    d[i] -= h;\n                }\n\n                f = f + h;\n\n                p = d[m];\n                c = 1;\n                c2 = c;\n                c3 = c;\n                el1 = e[l + 1];\n                s = 0;\n                s2 = 0;\n                for (i = m - 1; i >= l; i--) {\n                    c3 = c2;\n                    c2 = c;\n                    s2 = s;\n                    g = c * e[i];\n                    h = c * p;\n                    r = hypotenuse(p, e[i]);\n                    e[i + 1] = s * r;\n                    s = e[i] / r;\n                    c = p / r;\n                    p = c * d[i] - s * g;\n                    d[i + 1] = h + s * (c * g + s * d[i]);\n\n                    for (k = 0; k < n; k++) {\n                        h = V[k][i + 1];\n                        V[k][i + 1] = s * V[k][i] + c * h;\n                        V[k][i] = c * V[k][i] - s * h;\n                    }\n                }\n\n                p = -s * s2 * c3 * el1 * e[l] / dl1;\n                e[l] = s * p;\n                d[l] = c * p;\n\n            }\n            while (Math.abs(e[l]) > eps * tst1);\n        }\n        d[l] = d[l] + f;\n        e[l] = 0;\n    }\n\n    for (i = 0; i < n - 1; i++) {\n        k = i;\n        p = d[i];\n        for (j = i + 1; j < n; j++) {\n            if (d[j] < p) {\n                k = j;\n                p = d[j];\n            }\n        }\n\n        if (k !== i) {\n            d[k] = d[i];\n            d[i] = p;\n            for (j = 0; j < n; j++) {\n                p = V[j][i];\n                V[j][i] = V[j][k];\n                V[j][k] = p;\n            }\n        }\n    }\n}\n\nfunction orthes(n, H, ort, V) {\n\n    var low = 0,\n        high = n - 1,\n        f, g, h, i, j, m,\n        scale;\n\n    for (m = low + 1; m <= high - 1; m++) {\n        scale = 0;\n        for (i = m; i <= high; i++) {\n            scale = scale + Math.abs(H[i][m - 1]);\n        }\n\n        if (scale !== 0) {\n            h = 0;\n            for (i = high; i >= m; i--) {\n                ort[i] = H[i][m - 1] / scale;\n                h += ort[i] * ort[i];\n            }\n\n            g = Math.sqrt(h);\n            if (ort[m] > 0) {\n                g = -g;\n            }\n\n            h = h - ort[m] * g;\n            ort[m] = ort[m] - g;\n\n            for (j = m; j < n; j++) {\n                f = 0;\n                for (i = high; i >= m; i--) {\n                    f += ort[i] * H[i][j];\n                }\n\n                f = f / h;\n                for (i = m; i <= high; i++) {\n                    H[i][j] -= f * ort[i];\n                }\n            }\n\n            for (i = 0; i <= high; i++) {\n                f = 0;\n                for (j = high; j >= m; j--) {\n                    f += ort[j] * H[i][j];\n                }\n\n                f = f / h;\n                for (j = m; j <= high; j++) {\n                    H[i][j] -= f * ort[j];\n                }\n            }\n\n            ort[m] = scale * ort[m];\n            H[m][m - 1] = scale * g;\n        }\n    }\n\n    for (i = 0; i < n; i++) {\n        for (j = 0; j < n; j++) {\n            V[i][j] = (i === j ? 1 : 0);\n        }\n    }\n\n    for (m = high - 1; m >= low + 1; m--) {\n        if (H[m][m - 1] !== 0) {\n            for (i = m + 1; i <= high; i++) {\n                ort[i] = H[i][m - 1];\n            }\n\n            for (j = m; j <= high; j++) {\n                g = 0;\n                for (i = m; i <= high; i++) {\n                    g += ort[i] * V[i][j];\n                }\n\n                g = (g / ort[m]) / H[m][m - 1];\n                for (i = m; i <= high; i++) {\n                    V[i][j] += g * ort[i];\n                }\n            }\n        }\n    }\n}\n\nfunction hqr2(nn, e, d, V, H) {\n    var n = nn - 1,\n        low = 0,\n        high = nn - 1,\n        eps = Math.pow(2, -52),\n        exshift = 0,\n        norm = 0,\n        p = 0,\n        q = 0,\n        r = 0,\n        s = 0,\n        z = 0,\n        iter = 0,\n        i, j, k, l, m, t, w, x, y,\n        ra, sa, vr, vi,\n        notlast, cdivres;\n\n    for (i = 0; i < nn; i++) {\n        if (i < low || i > high) {\n            d[i] = H[i][i];\n            e[i] = 0;\n        }\n\n        for (j = Math.max(i - 1, 0); j < nn; j++) {\n            norm = norm + Math.abs(H[i][j]);\n        }\n    }\n\n    while (n >= low) {\n        l = n;\n        while (l > low) {\n            s = Math.abs(H[l - 1][l - 1]) + Math.abs(H[l][l]);\n            if (s === 0) {\n                s = norm;\n            }\n            if (Math.abs(H[l][l - 1]) < eps * s) {\n                break;\n            }\n            l--;\n        }\n\n        if (l === n) {\n            H[n][n] = H[n][n] + exshift;\n            d[n] = H[n][n];\n            e[n] = 0;\n            n--;\n            iter = 0;\n        } else if (l === n - 1) {\n            w = H[n][n - 1] * H[n - 1][n];\n            p = (H[n - 1][n - 1] - H[n][n]) / 2;\n            q = p * p + w;\n            z = Math.sqrt(Math.abs(q));\n            H[n][n] = H[n][n] + exshift;\n            H[n - 1][n - 1] = H[n - 1][n - 1] + exshift;\n            x = H[n][n];\n\n            if (q >= 0) {\n                z = (p >= 0) ? (p + z) : (p - z);\n                d[n - 1] = x + z;\n                d[n] = d[n - 1];\n                if (z !== 0) {\n                    d[n] = x - w / z;\n                }\n                e[n - 1] = 0;\n                e[n] = 0;\n                x = H[n][n - 1];\n                s = Math.abs(x) + Math.abs(z);\n                p = x / s;\n                q = z / s;\n                r = Math.sqrt(p * p + q * q);\n                p = p / r;\n                q = q / r;\n\n                for (j = n - 1; j < nn; j++) {\n                    z = H[n - 1][j];\n                    H[n - 1][j] = q * z + p * H[n][j];\n                    H[n][j] = q * H[n][j] - p * z;\n                }\n\n                for (i = 0; i <= n; i++) {\n                    z = H[i][n - 1];\n                    H[i][n - 1] = q * z + p * H[i][n];\n                    H[i][n] = q * H[i][n] - p * z;\n                }\n\n                for (i = low; i <= high; i++) {\n                    z = V[i][n - 1];\n                    V[i][n - 1] = q * z + p * V[i][n];\n                    V[i][n] = q * V[i][n] - p * z;\n                }\n            } else {\n                d[n - 1] = x + p;\n                d[n] = x + p;\n                e[n - 1] = z;\n                e[n] = -z;\n            }\n\n            n = n - 2;\n            iter = 0;\n        } else {\n            x = H[n][n];\n            y = 0;\n            w = 0;\n            if (l < n) {\n                y = H[n - 1][n - 1];\n                w = H[n][n - 1] * H[n - 1][n];\n            }\n\n            if (iter === 10) {\n                exshift += x;\n                for (i = low; i <= n; i++) {\n                    H[i][i] -= x;\n                }\n                s = Math.abs(H[n][n - 1]) + Math.abs(H[n - 1][n - 2]);\n                x = y = 0.75 * s;\n                w = -0.4375 * s * s;\n            }\n\n            if (iter === 30) {\n                s = (y - x) / 2;\n                s = s * s + w;\n                if (s > 0) {\n                    s = Math.sqrt(s);\n                    if (y < x) {\n                        s = -s;\n                    }\n                    s = x - w / ((y - x) / 2 + s);\n                    for (i = low; i <= n; i++) {\n                        H[i][i] -= s;\n                    }\n                    exshift += s;\n                    x = y = w = 0.964;\n                }\n            }\n\n            iter = iter + 1;\n\n            m = n - 2;\n            while (m >= l) {\n                z = H[m][m];\n                r = x - z;\n                s = y - z;\n                p = (r * s - w) / H[m + 1][m] + H[m][m + 1];\n                q = H[m + 1][m + 1] - z - r - s;\n                r = H[m + 2][m + 1];\n                s = Math.abs(p) + Math.abs(q) + Math.abs(r);\n                p = p / s;\n                q = q / s;\n                r = r / s;\n                if (m === l) {\n                    break;\n                }\n                if (Math.abs(H[m][m - 1]) * (Math.abs(q) + Math.abs(r)) < eps * (Math.abs(p) * (Math.abs(H[m - 1][m - 1]) + Math.abs(z) + Math.abs(H[m + 1][m + 1])))) {\n                    break;\n                }\n                m--;\n            }\n\n            for (i = m + 2; i <= n; i++) {\n                H[i][i - 2] = 0;\n                if (i > m + 2) {\n                    H[i][i - 3] = 0;\n                }\n            }\n\n            for (k = m; k <= n - 1; k++) {\n                notlast = (k !== n - 1);\n                if (k !== m) {\n                    p = H[k][k - 1];\n                    q = H[k + 1][k - 1];\n                    r = (notlast ? H[k + 2][k - 1] : 0);\n                    x = Math.abs(p) + Math.abs(q) + Math.abs(r);\n                    if (x !== 0) {\n                        p = p / x;\n                        q = q / x;\n                        r = r / x;\n                    }\n                }\n\n                if (x === 0) {\n                    break;\n                }\n\n                s = Math.sqrt(p * p + q * q + r * r);\n                if (p < 0) {\n                    s = -s;\n                }\n\n                if (s !== 0) {\n                    if (k !== m) {\n                        H[k][k - 1] = -s * x;\n                    } else if (l !== m) {\n                        H[k][k - 1] = -H[k][k - 1];\n                    }\n\n                    p = p + s;\n                    x = p / s;\n                    y = q / s;\n                    z = r / s;\n                    q = q / p;\n                    r = r / p;\n\n                    for (j = k; j < nn; j++) {\n                        p = H[k][j] + q * H[k + 1][j];\n                        if (notlast) {\n                            p = p + r * H[k + 2][j];\n                            H[k + 2][j] = H[k + 2][j] - p * z;\n                        }\n\n                        H[k][j] = H[k][j] - p * x;\n                        H[k + 1][j] = H[k + 1][j] - p * y;\n                    }\n\n                    for (i = 0; i <= Math.min(n, k + 3); i++) {\n                        p = x * H[i][k] + y * H[i][k + 1];\n                        if (notlast) {\n                            p = p + z * H[i][k + 2];\n                            H[i][k + 2] = H[i][k + 2] - p * r;\n                        }\n\n                        H[i][k] = H[i][k] - p;\n                        H[i][k + 1] = H[i][k + 1] - p * q;\n                    }\n\n                    for (i = low; i <= high; i++) {\n                        p = x * V[i][k] + y * V[i][k + 1];\n                        if (notlast) {\n                            p = p + z * V[i][k + 2];\n                            V[i][k + 2] = V[i][k + 2] - p * r;\n                        }\n\n                        V[i][k] = V[i][k] - p;\n                        V[i][k + 1] = V[i][k + 1] - p * q;\n                    }\n                }\n            }\n        }\n    }\n\n    if (norm === 0) {\n        return;\n    }\n\n    for (n = nn - 1; n >= 0; n--) {\n        p = d[n];\n        q = e[n];\n\n        if (q === 0) {\n            l = n;\n            H[n][n] = 1;\n            for (i = n - 1; i >= 0; i--) {\n                w = H[i][i] - p;\n                r = 0;\n                for (j = l; j <= n; j++) {\n                    r = r + H[i][j] * H[j][n];\n                }\n\n                if (e[i] < 0) {\n                    z = w;\n                    s = r;\n                } else {\n                    l = i;\n                    if (e[i] === 0) {\n                        H[i][n] = (w !== 0) ? (-r / w) : (-r / (eps * norm));\n                    } else {\n                        x = H[i][i + 1];\n                        y = H[i + 1][i];\n                        q = (d[i] - p) * (d[i] - p) + e[i] * e[i];\n                        t = (x * s - z * r) / q;\n                        H[i][n] = t;\n                        H[i + 1][n] = (Math.abs(x) > Math.abs(z)) ? ((-r - w * t) / x) : ((-s - y * t) / z);\n                    }\n\n                    t = Math.abs(H[i][n]);\n                    if ((eps * t) * t > 1) {\n                        for (j = i; j <= n; j++) {\n                            H[j][n] = H[j][n] / t;\n                        }\n                    }\n                }\n            }\n        } else if (q < 0) {\n            l = n - 1;\n\n            if (Math.abs(H[n][n - 1]) > Math.abs(H[n - 1][n])) {\n                H[n - 1][n - 1] = q / H[n][n - 1];\n                H[n - 1][n] = -(H[n][n] - p) / H[n][n - 1];\n            } else {\n                cdivres = cdiv(0, -H[n - 1][n], H[n - 1][n - 1] - p, q);\n                H[n - 1][n - 1] = cdivres[0];\n                H[n - 1][n] = cdivres[1];\n            }\n\n            H[n][n - 1] = 0;\n            H[n][n] = 1;\n            for (i = n - 2; i >= 0; i--) {\n                ra = 0;\n                sa = 0;\n                for (j = l; j <= n; j++) {\n                    ra = ra + H[i][j] * H[j][n - 1];\n                    sa = sa + H[i][j] * H[j][n];\n                }\n\n                w = H[i][i] - p;\n\n                if (e[i] < 0) {\n                    z = w;\n                    r = ra;\n                    s = sa;\n                } else {\n                    l = i;\n                    if (e[i] === 0) {\n                        cdivres = cdiv(-ra, -sa, w, q);\n                        H[i][n - 1] = cdivres[0];\n                        H[i][n] = cdivres[1];\n                    } else {\n                        x = H[i][i + 1];\n                        y = H[i + 1][i];\n                        vr = (d[i] - p) * (d[i] - p) + e[i] * e[i] - q * q;\n                        vi = (d[i] - p) * 2 * q;\n                        if (vr === 0 && vi === 0) {\n                            vr = eps * norm * (Math.abs(w) + Math.abs(q) + Math.abs(x) + Math.abs(y) + Math.abs(z));\n                        }\n                        cdivres = cdiv(x * r - z * ra + q * sa, x * s - z * sa - q * ra, vr, vi);\n                        H[i][n - 1] = cdivres[0];\n                        H[i][n] = cdivres[1];\n                        if (Math.abs(x) > (Math.abs(z) + Math.abs(q))) {\n                            H[i + 1][n - 1] = (-ra - w * H[i][n - 1] + q * H[i][n]) / x;\n                            H[i + 1][n] = (-sa - w * H[i][n] - q * H[i][n - 1]) / x;\n                        } else {\n                            cdivres = cdiv(-r - y * H[i][n - 1], -s - y * H[i][n], z, q);\n                            H[i + 1][n - 1] = cdivres[0];\n                            H[i + 1][n] = cdivres[1];\n                        }\n                    }\n\n                    t = Math.max(Math.abs(H[i][n - 1]), Math.abs(H[i][n]));\n                    if ((eps * t) * t > 1) {\n                        for (j = i; j <= n; j++) {\n                            H[j][n - 1] = H[j][n - 1] / t;\n                            H[j][n] = H[j][n] / t;\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    for (i = 0; i < nn; i++) {\n        if (i < low || i > high) {\n            for (j = i; j < nn; j++) {\n                V[i][j] = H[i][j];\n            }\n        }\n    }\n\n    for (j = nn - 1; j >= low; j--) {\n        for (i = low; i <= high; i++) {\n            z = 0;\n            for (k = low; k <= Math.min(j, high); k++) {\n                z = z + V[i][k] * H[k][j];\n            }\n            V[i][j] = z;\n        }\n    }\n}\n\nfunction cdiv(xr, xi, yr, yi) {\n    var r, d;\n    if (Math.abs(yr) > Math.abs(yi)) {\n        r = yi / yr;\n        d = yr + r * yi;\n        return [(xr + r * xi) / d, (xi - r * xr) / d];\n    }\n    else {\n        r = yr / yi;\n        d = yi + r * yr;\n        return [(r * xr + xi) / d, (r * xi - xr) / d];\n    }\n}\n\nfunction EigenvalueDecompositionResult(n, e, d, V) {\n    this.n = n;\n    this.e = e;\n    this.d = d;\n    this.V = V;\n}\n\nEigenvalueDecompositionResult.prototype = {\n    get realEigenvalues() {\n        return this.d;\n    },\n    get imaginaryEigenvalues() {\n        return this.e;\n    },\n    get eigenvectorMatrix() {\n        return this.V;\n    },\n    get diagonalMatrix() {\n        var n = this.n,\n            e = this.e,\n            d = this.d,\n            X = new Matrix(n, n),\n            i, j;\n        for (i = 0; i < n; i++) {\n            for (j = 0; j < n; j++) {\n                X[i][j] = 0;\n            }\n            X[i][i] = d[i];\n            if (e[i] > 0) {\n                X[i][i + 1] = e[i];\n            }\n            else if (e[i] < 0) {\n                X[i][i - 1] = e[i];\n            }\n        }\n        return X;\n    }\n};\n\n// https://github.com/lutzroeder/Mapack/blob/master/Source/LuDecomposition.cs\nfunction LuDecomposition(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n\n    var lu = matrix.clone(),\n        rows = lu.rows,\n        columns = lu.columns,\n        pivotVector = new Array(rows),\n        pivotSign = 1,\n        i, j, k, p, s, t, v,\n        LUrowi, LUcolj, kmax;\n\n    for (i = 0; i < rows; i++) {\n        pivotVector[i] = i;\n    }\n\n    LUcolj = new Array(rows);\n\n    for (j = 0; j < columns; j++) {\n\n        for (i = 0; i < rows; i++) {\n            LUcolj[i] = lu[i][j];\n        }\n\n        for (i = 0; i < rows; i++) {\n            LUrowi = lu[i];\n            kmax = Math.min(i, j);\n            s = 0;\n            for (k = 0; k < kmax; k++) {\n                s += LUrowi[k] * LUcolj[k];\n            }\n            LUrowi[j] = LUcolj[i] -= s;\n        }\n\n        p = j;\n        for (i = j + 1; i < rows; i++) {\n            if (Math.abs(LUcolj[i]) > Math.abs(LUcolj[p])) {\n                p = i;\n            }\n        }\n\n        if (p !== j) {\n            for (k = 0; k < columns; k++) {\n                t = lu[p][k];\n                lu[p][k] = lu[j][k];\n                lu[j][k] = t;\n            }\n\n            v = pivotVector[p];\n            pivotVector[p] = pivotVector[j];\n            pivotVector[j] = v;\n\n            pivotSign = -pivotSign;\n        }\n\n        if (j < rows && lu[j][j] !== 0) {\n            for (i = j + 1; i < rows; i++) {\n                lu[i][j] /= lu[j][j];\n            }\n        }\n    }\n\n    return new LuDecompositionResult(lu, pivotVector, pivotSign);\n\n}\n\nfunction LuDecompositionResult(lu, vector, sign) {\n    this.LU = lu;\n    this.pivotVector = vector;\n    this.pivotSign = sign;\n}\n\nLuDecompositionResult.prototype = {\n    isSingular: function () {\n        var data = this.LU,\n            col = data.columns;\n        for (var j = 0; j < col; j++) {\n            if (data[j][j] === 0) {\n                return true;\n            }\n        }\n        return false;\n    },\n    get determinant() {\n        var data = this.LU;\n        if (!data.isSquare())\n            throw new Error('Matrix must be square');\n        var determinant = this.pivotSign, col = data.columns;\n        for (var j = 0; j < col; j++)\n            determinant *= data[j][j];\n        return determinant;\n    },\n    get lowerTriangularFactor() {\n        var data = this.LU,\n            rows = data.rows,\n            columns = data.columns,\n            X = new Matrix(rows, columns);\n        for (var i = 0; i < rows; i++) {\n            for (var j = 0; j < columns; j++) {\n                if (i > j) {\n                    X[i][j] = data[i][j];\n                } else if (i === j) {\n                    X[i][j] = 1;\n                } else {\n                    X[i][j] = 0;\n                }\n            }\n        }\n        return X;\n    },\n    get upperTriangularFactor() {\n        var data = this.LU,\n            rows = data.rows,\n            columns = data.columns,\n            X = new Matrix(rows, columns);\n        for (var i = 0; i < rows; i++) {\n            for (var j = 0; j < columns; j++) {\n                if (i <= j) {\n                    X[i][j] = data[i][j];\n                } else {\n                    X[i][j] = 0;\n                }\n            }\n        }\n        return X;\n    },\n    get pivotPermutationVector() {\n        return this.pivotVector.slice();\n    },\n    solve: function (value) {\n        value = Matrix.checkMatrix(value);\n\n        var lu = this.LU,\n            rows = lu.rows;\n\n        if (rows !== value.rows)\n            throw new Error('Invalid matrix dimensions');\n        if (this.isSingular())\n            throw new Error('LU matrix is singular');\n\n        var count = value.columns,\n            X = value.subMatrixRow(this.pivotVector, 0, count - 1),\n            columns = lu.columns,\n            i, j, k;\n\n        for (k = 0; k < columns; k++) {\n            for (i = k + 1; i < columns; i++) {\n                for (j = 0; j < count; j++) {\n                    X[i][j] -= X[k][j] * lu[i][k];\n                }\n            }\n        }\n        for (k = columns - 1; k >= 0; k--) {\n            for (j = 0; j < count; j++) {\n                X[k][j] /= lu[k][k];\n            }\n            for (i = 0; i < k; i++) {\n                for (j = 0; j < count; j++) {\n                    X[i][j] -= X[k][j] * lu[i][k];\n                }\n            }\n        }\n        return X;\n    }\n};\n\n//https://github.com/lutzroeder/Mapack/blob/master/Source/QrDecomposition.cs\nfunction QrDecomposition(value) {\n    value = Matrix.checkMatrix(value)\n\n    var qr = value.clone(),\n        m = value.rows,\n        n = value.columns,\n        rdiag = new Array(n),\n        i, j, k, s;\n\n    for (k = 0; k < n; k++) {\n        var nrm = 0;\n        for (i = k; i < m; i++) {\n            nrm = hypotenuse(nrm, qr[i][k]);\n        }\n        if (nrm !== 0) {\n            if (qr[k][k] < 0) {\n                nrm = -nrm;\n            }\n            for (i = k; i < m; i++) {\n                qr[i][k] /= nrm;\n            }\n            qr[k][k] += 1;\n            for (j = k + 1; j < n; j++) {\n                s = 0;\n                for (i = k; i < m; i++) {\n                    s += qr[i][k] * qr[i][j];\n                }\n                s = -s / qr[k][k];\n                for (i = k; i < m; i++) {\n                    qr[i][j] += s * qr[i][k];\n                }\n            }\n        }\n        rdiag[k] = -nrm;\n    }\n\n    return new QrDecompositionResult(qr, rdiag);\n}\n\nfunction QrDecompositionResult(qr, rdiag) {\n    this.QR = qr;\n    this.Rdiag = rdiag;\n}\n\nQrDecompositionResult.prototype = {\n    solve: function (value) {\n        value = Matrix.checkMatrix(value);\n\n        var qr = this.QR,\n            m = qr.rows;\n\n        if (value.rows !== m)\n            throw new Error('Matrix row dimensions must agree');\n        if (!this.isFullRank())\n            throw new Error('Matrix is rank deficient');\n\n        var count = value.columns,\n            X = value.clone(),\n            n = qr.columns,\n            i, j, k, s;\n\n        for (k = 0; k < n; k++) {\n            for (j = 0; j < count; j++) {\n                s = 0;\n                for (i = k; i < m; i++) {\n                    s += qr[i][k] * X[i][j];\n                }\n                s = -s / qr[k][k];\n                for (i = k; i < m; i++) {\n                    X[i][j] += s * qr[i][k];\n                }\n            }\n        }\n        for (k = n - 1; k >= 0; k--) {\n            for (j = 0; j < count; j++) {\n                X[k][j] /= this.Rdiag[k];\n            }\n            for (i = 0; i < k; i++) {\n                for (j = 0; j < count; j++) {\n                    X[i][j] -= X[k][j] * qr[i][k];\n                }\n            }\n        }\n\n        return X.subMatrix(0, n - 1, 0, count - 1);\n    },\n    isFullRank: function () {\n        var columns = this.QR.columns;\n        for (var i = 0; i < columns; i++) {\n            if (this.Rdiag[i] === 0) {\n                return false;\n            }\n        }\n        return true;\n    },\n    get upperTriangularFactor() {\n        var qr = this.QR,\n            n = qr.columns,\n            X = new Matrix(n, n),\n            i, j;\n        for (i = 0; i < n; i++) {\n            for (j = 0; j < n; j++) {\n                if (i < j) {\n                    X[i][j] = qr[i][j];\n                } else if (i === j) {\n                    X[i][j] = this.Rdiag[i];\n                } else {\n                    X[i][j] = 0;\n                }\n            }\n        }\n        return X;\n    },\n    get orthogonalFactor() {\n        var qr = this.QR,\n            rows = qr.rows,\n            columns = qr.columns,\n            X = new Matrix(rows, columns),\n            i, j, k, s;\n\n        for (k = columns - 1; k >= 0; k--) {\n            for (i = 0; i < rows; i++) {\n                X[i][k] = 0;\n            }\n            X[k][k] = 1;\n            for (j = k; j < columns; j++) {\n                if (qr[k][k] !== 0) {\n                    s = 0;\n                    for (i = k; i < rows; i++) {\n                        s += qr[i][k] * X[i][j];\n                    }\n\n                    s = -s / qr[k][k];\n\n                    for (i = k; i < rows; i++) {\n                        X[i][j] += s * qr[i][k];\n                    }\n                }\n            }\n        }\n        return X;\n    }\n};\n\n// https://github.com/lutzroeder/Mapack/blob/master/Source/SingularValueDecomposition.cs\nfunction SingularValueDecomposition(value, options) {\n    value = Matrix.checkMatrix(value);\n\n    options = options || {};\n\n    var a = value.clone(),\n        m = value.rows,\n        n = value.columns,\n        nu = Math.min(m, n);\n\n    var wantu = true, wantv = true;\n    if (options.computeLeftSingularVectors === false)\n        wantu = false;\n    if (options.computeRightSingularVectors === false)\n        wantv = false;\n    var autoTranspose = options.autoTranspose === true;\n\n    var swapped = false;\n    if (m < n) {\n        if (!autoTranspose) {\n            console.warn('WARNING: Computing SVD on a matrix with more columns than rows.');\n        } else {\n            a = a.transpose();\n            m = a.rows;\n            n = a.columns;\n            swapped = true;\n            var aux = wantu;\n            wantu = wantv;\n            wantv = aux;\n        }\n    }\n\n    var s = new Array(Math.min(m + 1, n)),\n        U = Matrix.zeros(m, nu),\n        V = Matrix.zeros(n, n),\n        e = new Array(n),\n        work = new Array(m);\n\n    var nct = Math.min(m - 1, n);\n    var nrt = Math.max(0, Math.min(n - 2, m));\n\n    var i, j, k, p, t, ks, f, cs, sn, max, kase,\n        scale, sp, spm1, epm1, sk, ek, b, c, shift, g;\n\n    for (k = 0, max = Math.max(nct, nrt); k < max; k++) {\n        if (k < nct) {\n            s[k] = 0;\n            for (i = k; i < m; i++) {\n                s[k] = hypotenuse(s[k], a[i][k]);\n            }\n            if (s[k] !== 0) {\n                if (a[k][k] < 0) {\n                    s[k] = -s[k];\n                }\n                for (i = k; i < m; i++) {\n                    a[i][k] /= s[k];\n                }\n                a[k][k] += 1;\n            }\n            s[k] = -s[k];\n        }\n\n        for (j = k + 1; j < n; j++) {\n            if ((k < nct) && (s[k] !== 0)) {\n                t = 0;\n                for (i = k; i < m; i++) {\n                    t += a[i][k] * a[i][j];\n                }\n                t = -t / a[k][k];\n                for (i = k; i < m; i++) {\n                    a[i][j] += t * a[i][k];\n                }\n            }\n            e[j] = a[k][j];\n        }\n\n        if (wantu && (k < nct)) {\n            for (i = k; i < m; i++) {\n                U[i][k] = a[i][k];\n            }\n        }\n\n        if (k < nrt) {\n            e[k] = 0;\n            for (i = k + 1; i < n; i++) {\n                e[k] = hypotenuse(e[k], e[i]);\n            }\n            if (e[k] !== 0) {\n                if (e[k + 1] < 0)\n                    e[k] = -e[k];\n                for (i = k + 1; i < n; i++) {\n                    e[i] /= e[k];\n                }\n                e[k + 1] += 1;\n            }\n            e[k] = -e[k];\n            if ((k + 1 < m) && (e[k] !== 0)) {\n                for (i = k + 1; i < m; i++) {\n                    work[i] = 0;\n                }\n                for (j = k + 1; j < n; j++) {\n                    for (i = k + 1; i < m; i++) {\n                        work[i] += e[j] * a[i][j];\n                    }\n                }\n                for (j = k + 1; j < n; j++) {\n                    t = -e[j] / e[k + 1];\n                    for (i = k + 1; i < m; i++) {\n                        a[i][j] += t * work[i];\n                    }\n                }\n            }\n            if (wantv) {\n                for (i = k + 1; i < n; i++) {\n                    V[i][k] = e[i];\n                }\n            }\n        }\n    }\n\n    p = Math.min(n, m + 1);\n    if (nct < n) {\n        s[nct] = a[nct][nct];\n    }\n    if (m < p) {\n        s[p - 1] = 0;\n    }\n    if (nrt + 1 < p) {\n        e[nrt] = a[nrt][p - 1];\n    }\n    e[p - 1] = 0;\n\n    if (wantu) {\n        for (j = nct; j < nu; j++) {\n            for (i = 0; i < m; i++) {\n                U[i][j] = 0;\n            }\n            U[j][j] = 1;\n        }\n        for (k = nct - 1; k >= 0; k--) {\n            if (s[k] !== 0) {\n                for (j = k + 1; j < nu; j++) {\n                    t = 0;\n                    for (i = k; i < m; i++) {\n                        t += U[i][k] * U[i][j];\n                    }\n                    t = -t / U[k][k];\n                    for (i = k; i < m; i++) {\n                        U[i][j] += t * U[i][k];\n                    }\n                }\n                for (i = k; i < m; i++) {\n                    U[i][k] = -U[i][k];\n                }\n                U[k][k] = 1 + U[k][k];\n                for (i = 0; i < k - 1; i++) {\n                    U[i][k] = 0;\n                }\n            } else {\n                for (i = 0; i < m; i++) {\n                    U[i][k] = 0;\n                }\n                U[k][k] = 1;\n            }\n        }\n    }\n\n    if (wantv) {\n        for (k = n - 1; k >= 0; k--) {\n            if ((k < nrt) && (e[k] !== 0)) {\n                for (j = k + 1; j < n; j++) {\n                    t = 0;\n                    for (i = k + 1; i < n; i++) {\n                        t += V[i][k] * V[i][j];\n                    }\n                    t = -t / V[k + 1][k];\n                    for (i = k + 1; i < n; i++) {\n                        V[i][j] += t * V[i][k];\n                    }\n                }\n            }\n            for (i = 0; i < n; i++) {\n                V[i][k] = 0;\n            }\n            V[k][k] = 1;\n        }\n    }\n\n    var pp = p - 1,\n        iter = 0,\n        eps = Math.pow(2, -52);\n    while (p > 0) {\n        for (k = p - 2; k >= -1; k--) {\n            if (k === -1) {\n                break;\n            }\n            if (Math.abs(e[k]) <= eps * (Math.abs(s[k]) + Math.abs(s[k + 1]))) {\n                e[k] = 0;\n                break;\n            }\n        }\n        if (k === p - 2) {\n            kase = 4;\n        } else {\n            for (ks = p - 1; ks >= k; ks--) {\n                if (ks === k) {\n                    break;\n                }\n                t = (ks !== p ? Math.abs(e[ks]) : 0) + (ks !== k + 1 ? Math.abs(e[ks - 1]) : 0);\n                if (Math.abs(s[ks]) <= eps * t) {\n                    s[ks] = 0;\n                    break;\n                }\n            }\n            if (ks === k) {\n                kase = 3;\n            } else if (ks === p - 1) {\n                kase = 1;\n            } else {\n                kase = 2;\n                k = ks;\n            }\n        }\n\n        k++;\n\n        switch (kase) {\n            case 1: {\n                f = e[p - 2];\n                e[p - 2] = 0;\n                for (j = p - 2; j >= k; j--) {\n                    t = hypotenuse(s[j], f);\n                    cs = s[j] / t;\n                    sn = f / t;\n                    s[j] = t;\n                    if (j !== k) {\n                        f = -sn * e[j - 1];\n                        e[j - 1] = cs * e[j - 1];\n                    }\n                    if (wantv) {\n                        for (i = 0; i < n; i++) {\n                            t = cs * V[i][j] + sn * V[i][p - 1];\n                            V[i][p - 1] = -sn * V[i][j] + cs * V[i][p - 1];\n                            V[i][j] = t;\n                        }\n                    }\n                }\n                break;\n            }\n            case 2 : {\n                f = e[k - 1];\n                e[k - 1] = 0;\n                for (j = k; j < p; j++) {\n                    t = hypotenuse(s[j], f);\n                    cs = s[j] / t;\n                    sn = f / t;\n                    s[j] = t;\n                    f = -sn * e[j];\n                    e[j] = cs * e[j];\n                    if (wantu) {\n                        for (i = 0; i < m; i++) {\n                            t = cs * U[i][j] + sn * U[i][k - 1];\n                            U[i][k - 1] = -sn * U[i][j] + cs * U[i][k - 1];\n                            U[i][j] = t;\n                        }\n                    }\n                }\n                break;\n            }\n            case 3 : {\n                scale = Math.max(Math.max(Math.max(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]));\n                sp = s[p - 1] / scale;\n                spm1 = s[p - 2] / scale;\n                epm1 = e[p - 2] / scale;\n                sk = s[k] / scale;\n                ek = e[k] / scale;\n                b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;\n                c = (sp * epm1) * (sp * epm1);\n                shift = 0;\n                if ((b !== 0) || (c !== 0)) {\n                    shift = Math.sqrt(b * b + c);\n                    if (b < 0) {\n                        shift = -shift;\n                    }\n                    shift = c / (b + shift);\n                }\n                f = (sk + sp) * (sk - sp) + shift;\n                g = sk * ek;\n                for (j = k; j < p - 1; j++) {\n                    t = hypotenuse(f, g);\n                    cs = f / t;\n                    sn = g / t;\n                    if (j !== k) {\n                        e[j - 1] = t;\n                    }\n                    f = cs * s[j] + sn * e[j];\n                    e[j] = cs * e[j] - sn * s[j];\n                    g = sn * s[j + 1];\n                    s[j + 1] = cs * s[j + 1];\n                    if (wantv) {\n                        for (i = 0; i < n; i++) {\n                            t = cs * V[i][j] + sn * V[i][j + 1];\n                            V[i][j + 1] = -sn * V[i][j] + cs * V[i][j + 1];\n                            V[i][j] = t;\n                        }\n                    }\n                    t = hypotenuse(f, g);\n                    cs = f / t;\n                    sn = g / t;\n                    s[j] = t;\n                    f = cs * e[j] + sn * s[j + 1];\n                    s[j + 1] = -sn * e[j] + cs * s[j + 1];\n                    g = sn * e[j + 1];\n                    e[j + 1] = cs * e[j + 1];\n                    if (wantu && (j < m - 1)) {\n                        for (i = 0; i < m; i++) {\n                            t = cs * U[i][j] + sn * U[i][j + 1];\n                            U[i][j + 1] = -sn * U[i][j] + cs * U[i][j + 1];\n                            U[i][j] = t;\n                        }\n                    }\n                }\n                e[p - 2] = f;\n                iter = iter + 1;\n                break;\n            }\n            case 4: {\n                if (s[k] <= 0) {\n                    s[k] = (s[k] < 0 ? -s[k] : 0);\n                    if (wantv) {\n                        for (i = 0; i <= pp; i++) {\n                            V[i][k] = -V[i][k];\n                        }\n                    }\n                }\n                while (k < pp) {\n                    if (s[k] >= s[k + 1]) {\n                        break;\n                    }\n                    t = s[k];\n                    s[k] = s[k + 1];\n                    s[k + 1] = t;\n                    if (wantv && (k < n - 1)) {\n                        for (i = 0; i < n; i++) {\n                            t = V[i][k + 1];\n                            V[i][k + 1] = V[i][k];\n                            V[i][k] = t;\n                        }\n                    }\n                    if (wantu && (k < m - 1)) {\n                        for (i = 0; i < m; i++) {\n                            t = U[i][k + 1];\n                            U[i][k + 1] = U[i][k];\n                            U[i][k] = t;\n                        }\n                    }\n                    k++;\n                }\n                iter = 0;\n                p--;\n                break;\n            }\n        }\n    }\n\n    if (swapped) {\n        var tmp = V;\n        V = U;\n        U = tmp;\n    }\n\n    return new SingularValueDecompositionResult(m, n, s, U, V);\n}\n\nfunction SingularValueDecompositionResult(m, n, s, U, V) {\n    this.m = m;\n    this.n = n;\n    this.s = s;\n    this.U = U;\n    this.V = V;\n}\n\nSingularValueDecompositionResult.prototype = {\n    get condition() {\n        return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n    },\n    get norm2() {\n        return this.s[0];\n    },\n    get rank() {\n        var eps = Math.pow(2, -52),\n            tol = Math.max(this.m, this.n) * this.s[0] * eps,\n            r = 0,\n            s = this.s;\n        for (var i = 0, ii = s.length; i < ii; i++) {\n            if (s[i] > tol) {\n                r++;\n            }\n        }\n        return r;\n    },\n    get diagonal() {\n        return this.s;\n    },\n    // https://github.com/accord-net/framework/blob/development/Sources/Accord.Math/Decompositions/SingularValueDecomposition.cs\n    get threshold() {\n        return (Math.pow(2, -52) / 2) * Math.max(this.m, this.n) * this.s[0];\n    },\n    get leftSingularVectors() {\n        return this.U;\n    },\n    get rightSingularVectors() {\n        return this.V;\n    },\n    get diagonalMatrix() {\n        return Matrix.diag(this.s);\n    },\n    solve: function (value) {\n\n        var Y = value,\n            e = this.threshold,\n            scols = this.s.length,\n            Ls = Matrix.zeros(scols, scols),\n            i;\n\n        for (i = 0; i < scols; i++) {\n            if (Math.abs(this.s[i]) <= e) {\n                Ls[i][i] = 0;\n            }\n            else Ls[i][i] = 1 / this.s[i];\n        }\n\n\n        var VL = this.V.mmul(Ls),\n            vrows = this.V.rows,\n            urows = this.U.rows,\n            VLU = Matrix.zeros(vrows, urows),\n            j, k, sum;\n\n        for (i = 0; i < vrows; i++) {\n            for (j = 0; j < urows; j++) {\n                sum = 0;\n                for (k = 0; k < scols; k++) {\n                    sum += VL[i][k] * this.U[j][k];\n                }\n                VLU[i][j] = sum;\n            }\n        }\n\n        return VLU.mmul(Y);\n    },\n    solveForDiagonal: function (value) {\n        return this.solve(Matrix.diag(value));\n    },\n    inverse: function () {\n        var e = this.threshold,\n            vrows = this.V.rows,\n            vcols = this.V.columns,\n            X = new Matrix(vrows, this.s.length),\n            i, j;\n\n        for (i = 0; i < vrows; i++) {\n            for (j = 0; j < vcols; j++) {\n                if (Math.abs(this.s[j]) > e) {\n                    X[i][j] = this.V[i][j] / this.s[j];\n                }\n            }\n        }\n\n        var urows = this.U.rows,\n            ucols = this.U.columns,\n            Y = new Matrix(vrows, urows),\n            k, sum;\n\n        for (i = 0; i < vrows; i++) {\n            for (j = 0; j < urows; j++) {\n                sum = 0;\n                for (k = 0; k < ucols; k++) {\n                    sum += X[i][k] * this.U[j][k];\n                }\n                Y[i][j] = sum;\n            }\n        }\n\n        return Y;\n    }\n};\n\n// https://github.com/lutzroeder/Mapack/blob/master/Source/CholeskyDecomposition.cs\nfunction CholeskyDecomposition(value) {\n    value = Matrix.checkMatrix(value);\n    if (!value.isSymmetric())\n        throw new Error('Matrix is not symmetric');\n\n    var a = value,\n        dimension = a.rows,\n        l = new Matrix(dimension, dimension),\n        positiveDefinite = true,\n        i, j, k;\n\n    for (j = 0; j < dimension; j++) {\n        var Lrowj = l[j];\n        var d = 0;\n        for (k = 0; k < j; k++) {\n            var Lrowk = l[k];\n            var s = 0;\n            for (i = 0; i < k; i++) {\n                s += Lrowk[i] * Lrowj[i];\n            }\n            Lrowj[k] = s = (a[j][k] - s) / l[k][k];\n            d = d + s * s;\n        }\n\n        d = a[j][j] - d;\n\n        positiveDefinite &= (d > 0);\n        l[j][j] = Math.sqrt(Math.max(d, 0));\n        for (k = j + 1; k < dimension; k++) {\n            l[j][k] = 0;\n        }\n    }\n\n    if (!positiveDefinite) {\n        throw new Error('Matrix is not positive definite');\n    }\n\n    return new CholeskyDecompositionResult(l);\n}\n\nfunction CholeskyDecompositionResult(l) {\n    this.L = l;\n}\n\nCholeskyDecompositionResult.prototype = {\n    get leftTriangularFactor() {\n        return this.L;\n    },\n    solve: function (value) {\n        value = Matrix.checkMatrix(value);\n\n        var l = this.L,\n            dimension = l.rows;\n\n        if (value.rows !== dimension) {\n            throw new Error('Matrix dimensions do not match');\n        }\n\n        var count = value.columns,\n            B = value.clone(),\n            i, j, k;\n\n        for (k = 0; k < dimension; k++) {\n            for (j = 0; j < count; j++) {\n                for (i = 0; i < k; i++) {\n                    B[k][j] -= B[i][j] * l[k][i];\n                }\n                B[k][j] /= l[k][k];\n            }\n        }\n\n        for (k = dimension - 1; k >= 0; k--) {\n            for (j = 0; j < count; j++) {\n                for (i = k + 1; i < dimension; i++) {\n                    B[k][j] -= B[i][j] * l[i][k];\n                }\n                B[k][j] /= l[k][k];\n            }\n        }\n\n        return B;\n    }\n};\n\nfunction hypotenuse(a, b) {\n    var r;\n    if (Math.abs(a) > Math.abs(b)) {\n        r = b / a;\n        return Math.abs(a) * Math.sqrt(1 + r * r);\n    }\n    if (b !== 0) {\n        r = a / b;\n        return Math.abs(b) * Math.sqrt(1 + r * r);\n    }\n    return 0;\n}\n\nfunction inverse(matrix) {\n    return solve(matrix, Matrix.eye(matrix.rows));\n}\n\nMatrix.prototype.inverse = function () {\n    return inverse(this);\n};\n\nfunction solve(leftHandSide, rightHandSide) {\n    return leftHandSide.isSquare() ? new LuDecomposition(leftHandSide).solve(rightHandSide) : new QrDecomposition(leftHandSide).solve(rightHandSide);\n}\n\nMatrix.prototype.solve = function (other) {\n    return solve(this, other);\n};\n\nmodule.exports = {\n    LuDecomposition: LuDecomposition,\n    LU: LuDecomposition,\n    QrDecomposition: QrDecomposition,\n    QR: QrDecomposition,\n    SingularValueDecomposition: SingularValueDecomposition,\n    SVD: SingularValueDecomposition,\n    EigenvalueDecomposition: EigenvalueDecomposition,\n    EVD: EigenvalueDecomposition,\n    CholeskyDecomposition: CholeskyDecomposition,\n    CHO: CholeskyDecomposition,\n    inverse: inverse,\n    solve: solve\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/chem-equilibrium/~/ml-matrix/src/decompositions.js\n ** module id = 4\n ** module chunks = 0\n **/","/*\n  https://github.com/banksean wrapped Makoto Matsumoto and Takuji Nishimura's code in a namespace\n  so it's better encapsulated. Now you can have multiple random number generators\n  and they won't stomp all over eachother's state.\n  \n  If you want to use this as a substitute for Math.random(), use the random()\n  method like so:\n  \n  var m = new MersenneTwister();\n  var randomNumber = m.random();\n  \n  You can also call the other genrand_{foo}() methods on the instance.\n \n  If you want to use a specific seed in order to get a repeatable random\n  sequence, pass an integer into the constructor:\n \n  var m = new MersenneTwister(123);\n \n  and that will always produce the same random sequence.\n \n  Sean McCullough (banksean@gmail.com)\n*/\n \n/* \n   A C-program for MT19937, with initialization improved 2002/1/26.\n   Coded by Takuji Nishimura and Makoto Matsumoto.\n \n   Before using, initialize the state by using init_seed(seed)  \n   or init_by_array(init_key, key_length).\n \n   Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,\n   All rights reserved.                          \n \n   Redistribution and use in source and binary forms, with or without\n   modification, are permitted provided that the following conditions\n   are met:\n \n     1. Redistributions of source code must retain the above copyright\n        notice, this list of conditions and the following disclaimer.\n \n     2. Redistributions in binary form must reproduce the above copyright\n        notice, this list of conditions and the following disclaimer in the\n        documentation and/or other materials provided with the distribution.\n \n     3. The names of its contributors may not be used to endorse or promote \n        products derived from this software without specific prior written \n        permission.\n \n   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n \n \n   Any feedback is very welcome.\n   http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html\n   email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)\n*/\n \nvar MersenneTwister = function(seed) {\n\tif (seed == undefined) {\n\t\tseed = new Date().getTime();\n\t} \n\n\t/* Period parameters */  \n\tthis.N = 624;\n\tthis.M = 397;\n\tthis.MATRIX_A = 0x9908b0df;   /* constant vector a */\n\tthis.UPPER_MASK = 0x80000000; /* most significant w-r bits */\n\tthis.LOWER_MASK = 0x7fffffff; /* least significant r bits */\n\n\tthis.mt = new Array(this.N); /* the array for the state vector */\n\tthis.mti=this.N+1; /* mti==N+1 means mt[N] is not initialized */\n\n\tthis.init_seed(seed);\n}  \n\n/* initializes mt[N] with a seed */\n/* origin name init_genrand */\nMersenneTwister.prototype.init_seed = function(s) {\n\tthis.mt[0] = s >>> 0;\n\tfor (this.mti=1; this.mti<this.N; this.mti++) {\n\t\tvar s = this.mt[this.mti-1] ^ (this.mt[this.mti-1] >>> 30);\n\t\tthis.mt[this.mti] = (((((s & 0xffff0000) >>> 16) * 1812433253) << 16) + (s & 0x0000ffff) * 1812433253)\n\t\t+ this.mti;\n\t\t/* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */\n\t\t/* In the previous versions, MSBs of the seed affect   */\n\t\t/* only MSBs of the array mt[].                        */\n\t\t/* 2002/01/09 modified by Makoto Matsumoto             */\n\t\tthis.mt[this.mti] >>>= 0;\n\t\t/* for >32 bit machines */\n\t}\n}\n\n/* initialize by an array with array-length */\n/* init_key is the array for initializing keys */\n/* key_length is its length */\n/* slight change for C++, 2004/2/26 */\nMersenneTwister.prototype.init_by_array = function(init_key, key_length) {\n\tvar i, j, k;\n\tthis.init_seed(19650218);\n\ti=1; j=0;\n\tk = (this.N>key_length ? this.N : key_length);\n\tfor (; k; k--) {\n\t\tvar s = this.mt[i-1] ^ (this.mt[i-1] >>> 30)\n\t\tthis.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1664525) << 16) + ((s & 0x0000ffff) * 1664525)))\n\t\t+ init_key[j] + j; /* non linear */\n\t\tthis.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */\n\t\ti++; j++;\n\t\tif (i>=this.N) { this.mt[0] = this.mt[this.N-1]; i=1; }\n\t\tif (j>=key_length) j=0;\n\t}\n\tfor (k=this.N-1; k; k--) {\n\t\tvar s = this.mt[i-1] ^ (this.mt[i-1] >>> 30);\n\t\tthis.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1566083941) << 16) + (s & 0x0000ffff) * 1566083941))\n\t\t- i; /* non linear */\n\t\tthis.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */\n\t\ti++;\n\t\tif (i>=this.N) { this.mt[0] = this.mt[this.N-1]; i=1; }\n\t}\n\n\tthis.mt[0] = 0x80000000; /* MSB is 1; assuring non-zero initial array */ \n}\n\n/* generates a random number on [0,0xffffffff]-interval */\n/* origin name genrand_int32 */\nMersenneTwister.prototype.random_int = function() {\n\tvar y;\n\tvar mag01 = new Array(0x0, this.MATRIX_A);\n\t/* mag01[x] = x * MATRIX_A  for x=0,1 */\n\n\tif (this.mti >= this.N) { /* generate N words at one time */\n\t\tvar kk;\n\n\t\tif (this.mti == this.N+1)  /* if init_seed() has not been called, */\n\t\t\tthis.init_seed(5489);  /* a default initial seed is used */\n\n\t\tfor (kk=0;kk<this.N-this.M;kk++) {\n\t\t\ty = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk+1]&this.LOWER_MASK);\n\t\t\tthis.mt[kk] = this.mt[kk+this.M] ^ (y >>> 1) ^ mag01[y & 0x1];\n\t\t}\n\t\tfor (;kk<this.N-1;kk++) {\n\t\t\ty = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk+1]&this.LOWER_MASK);\n\t\t\tthis.mt[kk] = this.mt[kk+(this.M-this.N)] ^ (y >>> 1) ^ mag01[y & 0x1];\n\t\t}\n\t\ty = (this.mt[this.N-1]&this.UPPER_MASK)|(this.mt[0]&this.LOWER_MASK);\n\t\tthis.mt[this.N-1] = this.mt[this.M-1] ^ (y >>> 1) ^ mag01[y & 0x1];\n\n\t\tthis.mti = 0;\n\t}\n\n\ty = this.mt[this.mti++];\n\n\t/* Tempering */\n\ty ^= (y >>> 11);\n\ty ^= (y << 7) & 0x9d2c5680;\n\ty ^= (y << 15) & 0xefc60000;\n\ty ^= (y >>> 18);\n\n\treturn y >>> 0;\n}\n\n/* generates a random number on [0,0x7fffffff]-interval */\n/* origin name genrand_int31 */\nMersenneTwister.prototype.random_int31 = function() {\n\treturn (this.random_int()>>>1);\n}\n\n/* generates a random number on [0,1]-real-interval */\n/* origin name genrand_real1 */\nMersenneTwister.prototype.random_incl = function() {\n\treturn this.random_int()*(1.0/4294967295.0); \n\t/* divided by 2^32-1 */ \n}\n\n/* generates a random number on [0,1)-real-interval */\nMersenneTwister.prototype.random = function() {\n\treturn this.random_int()*(1.0/4294967296.0); \n\t/* divided by 2^32 */\n}\n\n/* generates a random number on (0,1)-real-interval */\n/* origin name genrand_real3 */\nMersenneTwister.prototype.random_excl = function() {\n\treturn (this.random_int() + 0.5)*(1.0/4294967296.0); \n\t/* divided by 2^32 */\n}\n\n/* generates a random number on [0,1) with 53-bit resolution*/\n/* origin name genrand_res53 */\nMersenneTwister.prototype.random_long = function() { \n\tvar a=this.random_int()>>>5, b=this.random_int()>>>6; \n\treturn(a*67108864.0+b)*(1.0/9007199254740992.0); \n} \n\n/* These real versions are due to Isaku Wada, 2002/01/09 added */\n\nmodule.exports = MersenneTwister;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/chem-equilibrium/~/mersenne-twister/src/mersenne-twister.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nvar cache = require('./cc-cache');\n\nmodule.exports = {\n    // For example 'OH- -> H2O - H+'\n    // returns\n    // {\n    //   reactives: [{c: 'H+', n: 1}],\n    //   products: [{c: 'H2O', n: 1}, {c: 'H+', n: -1}]\n    // }\n\n\n    parseReaction: function(r, options) {\n        var parsed = {reactives: [], products: []};\n        // TODO: add options for constraints on how should the reactions be like\n        //       max number of reactives etc...\n        var defaultOptions = {\n\n        };\n        // Separate reactives and products\n        var rp = r.split(' -> ');\n        if(rp.length !== 2) {\n            throw new Error('Invalid reaction');\n        }\n\n        var reactives = rp[0];\n        var products = rp[1];\n\n        parsed.reactives = parseElements(reactives);\n        parsed.products = parseElements(products);\n\n\n\n        // Split reactives with\n\n        //\n        //// Analyse each reactive and product\n        //for(var i=0; i<reactives.length; i++) {\n        //    var parsedReactive = parseReactionElement(reactives[i]);\n        //    // Make sure chemcalc can process this element\n        //    parsedReactive.c = cache.norm(parsedReactive.c);\n        //    parsed.reactives.push(parsedReactive);\n        //}\n        //for(i=0; i<products.length; i++) {\n        //    var parsedProduct = parseReactionElement(products[i]);\n        //    // Make sure chemcalc can process this element\n        //    parsedProduct.c = cache.norm(parsedProduct.c);\n        //    parsed.products.push(parsedProduct);\n        //}\n        return parsed;\n    }\n};\n\nfunction parseElements(els) {\n    els = els.split(/\\s+/);\n    var r = [];\n    var sign = 1;\n    var n = 1;\n    for(var i=0; i<els.length; i++) {\n        if(els[i] === '-') {\n            sign = -1;\n            n = 1;\n            continue;\n        }\n        if(els[i] === '+') {\n            sign = 1;\n            n = 1;\n            continue;\n        }\n        if(!isNaN(+els[i])) {\n            n = +els[i];\n            continue;\n        }\n        r.push({\n            c: cache.norm(els[i]),\n            n: sign * n\n        });\n    }\n    var count = {};\n    for(i=0; i< r.length; i++) {\n        if(!count[r[i].c]) count[r[i].c] = r[i].n;\n        else count[r[i].c] += r[i].n;\n    }\n\n    var rr = [];\n    for(var key in count) {\n        rr.push({\n            c: key,\n            n: count[key]\n        });\n    }\n    return rr;\n}\n\nfunction parseReactionElement(el) {\n    var parsed = {};\n    var reactive;\n    reactive = el.split('*');\n    if(reactive.length > 2) throw new Error('Invalid reactive ' + el);\n    if(reactive.length === 2) {\n        parsed.n = +(reactive[0]);\n        parsed.c = reactive[1].trim();\n    }\n    else {\n        parsed.n = 1;\n        parsed.c = reactive[0].trim();\n    }\n    return parsed;\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/parser.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nvar CC = require('chemcalc');\n\n// Chemcalc cache in order not to recalculate all the time\n// Also keeps one chemical formula for every product that has the same molecular weight\n\nvar chemcalcs = {};\nvar cByMW = {};\n\nmodule.exports = {\n    reset: function() {\n        chemcalcs = {};\n        cByMW = {};\n    },\n\n    getCC: function(c) {\n        if(!chemcalcs[c]) {\n            var r = CC.analyseMF(c);\n            if(r.error) {\n                throw new Error('chemcalc error on' + c + ': ' + r.error);\n            }\n            if(!cByMW[''+r.mw]) cByMW[''+r.mw] = c;\n            chemcalcs[c] = r;\n        }\n        return chemcalcs[c];\n    },\n\n    norm: function(c) {\n        var cc = module.exports.getCC(c);\n        return cByMW[''+cc.mw];\n    }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/cc-cache.js\n ** module id = 7\n ** module chunks = 0\n **/","/**\n * chemcalc - Analyse molecular formula\n * @version v2.1.6\n * @date 2015-05-13T15:57:48.495Z\n * @link http://www.chemcalc.org\n * @license BSD\n*/\n(function () {\n    'use strict';\n\n    function getExports($wnd) {\n\n        var $doc = $wnd.document;\n        var $gwt = {};\n        var navigator = {\n            userAgent: 'webkit'\n        };\n\n        function noop(){}\n\n        var __gwtModuleFunction = noop;\n        __gwtModuleFunction.__moduleStartupDone = noop;\n        var $sendStats = noop;\n        var $moduleName, $moduleBase;\n\n        // Start GWT code \nfunction Sg(){}\nfunction Ng(){}\nfunction fb(){}\nfunction fd(){}\nfunction jc(){}\nfunction sc(){}\nfunction sp(){}\nfunction Zp(){}\nfunction eq(){}\nfunction gq(){}\nfunction Jr(){}\nfunction Js(){}\nfunction kl(a){}\nfunction Ac(){vc()}\nfunction ub(){ob(this)}\nfunction Zo(){Qo(this)}\nfunction Zh(a){this.d=a}\nfunction Rc(a){this.d=a}\nfunction $c(a){this.d=a}\nfunction kd(a){this.d=a}\nfunction wd(a){this.d=a}\nfunction hi(a){this.d=a}\nfunction Ti(a){this.d=a}\nfunction hj(a){this.d=a}\nfunction sn(a){this.d=a}\nfunction Pn(a){this.d=a}\nfunction Un(a){this.d=a}\nfunction Yn(a){this.d=a}\nfunction Kn(a){this.f=a}\nfunction bo(a){this.d=a}\nfunction Do(a){this.d=a}\nfunction Io(a){this.d=a}\nfunction No(a){this.d=a}\nfunction du(a){this.d=a}\nfunction Qc(){this.d=[]}\nfunction ru(){this.rb()}\nfunction Qh(){return Mb}\nfunction Qd(a){return a.d}\nfunction bd(a){return a.d}\nfunction pd(a){return a.d}\nfunction Bd(a){return a.d}\nfunction Wc(a){return a.d}\nfunction jd(){return null}\nfunction Id(){return null}\nfunction dn(a){++a.e;wp(a)}\nfunction en(a){--a.e;wp(a)}\nfunction eh(a,b){a.h=b}\nfunction fh(a,b){a.l=b}\nfunction gh(a,b){a.m=b}\nfunction Zb(){Vb();Wb(this)}\nfunction ai(){ub.call(this)}\nfunction fj(){ub.call(this)}\nfunction Dj(){ub.call(this)}\nfunction zk(){ub.call(this)}\nfunction xp(){ub.call(this)}\nfunction yp(){ub.call(this)}\nfunction Qq(){ub.call(this)}\nfunction Eq(){oq.call(this)}\nfunction Nq(){oq.call(this)}\nfunction fr(){Uq.call(this)}\nfunction ci(){ai.call(this)}\nfunction Rp(){Jp.call(this)}\nfunction Hs(){vr.call(this)}\nfunction bq(){bq=Ng;aq=dq()}\nfunction xb(){xb=Ng;wb=new fb}\nfunction ed(){ed=Ng;dd=new fd}\nfunction gc(){gc=Ng;fc=new jc}\nfunction rp(){rp=Ng;qp=new sp}\nfunction mu(){mu=Ng;lu=new Bp}\nfunction Nu(){this.d=new Qc}\nfunction Tu(){this.d=new vd}\nfunction Uq(){this.d=new Zo}\nfunction as(){this.n=new vr}\nfunction nq(c,a,b){c.d[a]=b}\nfunction Lj(a,b){return a===b}\nfunction uj(a){return a<0?-a:a}\nfunction Zi(a){return isNaN(a)}\nfunction bi(a){vb.call(this,a)}\nfunction di(a){vb.call(this,a)}\nfunction cd(a){vb.call(this,a)}\nfunction _h(a){vb.call(this,a)}\nfunction ej(a){vb.call(this,a)}\nfunction Ej(a){vb.call(this,a)}\nfunction Ak(a){vb.call(this,a)}\nfunction vb(a){tb.call(this,a)}\nfunction Fj(a){ej.call(this,a)}\nfunction pk(a){Zh.call(this,a)}\nfunction wk(a){Zh.call(this,a)}\nfunction ok(){Zh.call(this,'')}\nfunction uk(){Zh.call(this,'')}\nfunction vk(){Zh.call(this,'')}\nfunction vd(){wd.call(this,{})}\nfunction Hr(a){Do.call(this,a)}\nfunction yt(a){bs.call(this,a)}\nfunction Kt(a){tb.call(this,a)}\nfunction Jp(){this.d=this.cb()}\nfunction oq(){this.d=this.ib()}\nfunction Oh(){Mh==null&&(Mh=[])}\nfunction Sh(a){return a.tM===Sg}\nfunction he(a){return a<<24>>24}\nfunction nr(a){return !!a&&a.e}\nfunction Dp(b,a){return b.d[a]}\nfunction yj(a,b){return a>b?a:b}\nfunction zj(a,b){return a<b?a:b}\nfunction Td(a,b){return Fi(a,b)}\nfunction sh(a,b){return !rh(a,b)}\nfunction th(a,b){return !qh(a,b)}\nfunction oc(a,b){nc();mc.s(a,b)}\nfunction wi(a){vi(a);return a.q}\nfunction nk(a,b){a.d+=b;return a}\nfunction rk(a,b){a.d+=b;return a}\nfunction sk(a,b){a.d+=b;return a}\nfunction uo(a,b){return !!a._(b)}\nfunction Fd(a){return new kd(a)}\nfunction Hd(a){return new Kd(a)}\nfunction bs(a){this.n=new wr(a)}\nfunction tb(a){this.k=a;ob(this)}\nfunction tj(a){return a<=0?0-a:a}\nfunction xj(a){return Math.log(a)}\nfunction xo(a){return wo(a,hr(a))}\nfunction Tq(a,b){return So(a.d,b)}\nfunction Hn(a){return a.d<a.f.K()}\nfunction Eh(a){return a.l|a.m<<22}\nfunction Br(a){return a.e=In(a.d)}\nfunction Ws(a){return a.d.j*a.d.f}\nfunction Xs(a){return a.d.j*a.d.g}\nfunction Ym(a){return !a?null:a.f}\nfunction vj(a){return Math.ceil(a)}\nfunction Cj(a){return Math.sqrt(a)}\nfunction ee(a){return de(a)&&Sh(a)}\nfunction Ed(a){return Zc(),a?Yc:Xc}\nfunction vo(a,b){return Zm(a._(b))}\nfunction Ep(b,a){return b.d[a]||[]}\nfunction vp(a,b){a._gwt_modCount=b}\nfunction _i(a,b){this.d=a;this.e=b}\nfunction Aq(a,b){this.d=a;this.e=b}\nfunction xq(a,b){this.e=a;this.f=b}\nfunction go(a,b){this.f=a;this.g=b}\nfunction Im(a,b){_i.call(this,a,b)}\nfunction Qr(a,b){_i.call(this,a,b)}\nfunction no(a,b){go.call(this,a,b)}\nfunction vr(){wr.call(this,null)}\nfunction Rb(a){$wnd.clearTimeout(a)}\nfunction wj(a){return Math.floor(a)}\nfunction Bj(a){return Math.round(a)}\nfunction ae(a){return !de(a)&&Sh(a)}\nfunction Zm(a){return !a?null:a.Y()}\nfunction ge(a){return a==null?null:a}\nfunction gj(a,b){return ij(a.d,b.d)}\nfunction Nj(b,a){return b.indexOf(a)}\nfunction fp(a,b,c){a.splice(b,c)}\nfunction El(a){jl();Fl.call(this,a)}\nfunction oo(a){go.call(this,a.f,a.g)}\nfunction Ur(){Qr.call(this,'Head',1)}\nfunction Zr(){Qr.call(this,'Tail',3)}\nfunction Qo(a){a.e=Ud(af,Yu,1,0,3,1)}\nfunction Tt(a){a.e=a.g.e;a.f=new Hs}\nfunction Fc(a){if(!a){throw new Qq}}\nfunction Kc(a){if(!a){throw new fj}}\nfunction jk(){jk=Ng;gk={};ik={}}\nfunction Sb(){Gb!=0&&(Gb=0);Jb=-1}\nfunction ii(a,b){return a==b?0:a?1:-1}\nfunction mh(a,b){return Xg(a,b,false)}\nfunction Vg(a){return Wg(a.l,a.m,a.h)}\nfunction Sq(a){return a!=null?lb(a):0}\nfunction ij(a,b){return a<b?-1:a>b?1:0}\nfunction Aj(a,b){return Math.pow(a,b)}\nfunction de(a){return Array.isArray(a)}\nfunction Pb(a){return a.$H||(a.$H=++Hb)}\nfunction Wg(a,b,c){return {l:a,m:b,h:c}}\nfunction hh(a){return a.l+a.m*av+a.h*bv}\nfunction Xp(a){this.d=a;Zo.call(this)}\nfunction Lq(a){this.d=a;Zo.call(this)}\nfunction Tk(a){this.j=5;Nk(this,Hc(a))}\nfunction Th(){$wnd.setTimeout(Uu(Uh))}\nfunction Wr(){Qr.call(this,'Range',2)}\nfunction gp(a,b,c,d){a.splice(b,c,d)}\nfunction Yj(a,b,c){return a.substr(b,c)}\nfunction Kj(b,a){return b.charCodeAt(a)}\nfunction Oj(b,a){return b.lastIndexOf(a)}\nfunction Xj(a){return Ud(gf,Yu,2,a,4,1)}\nfunction Xo(a){return Rd(a.e,a.e.length)}\nfunction ri(a){return a>=56320&&a<=57343}\nfunction Si(a,b){return be(b,6)&&b.d==a.d}\nfunction Uj(a,b,c){return a.substr(b,c-b)}\nfunction Qu(a,b,c){td(a.d,b,c);return a}\nfunction er(a,b){So(a.d,b);return b}\nfunction qk(a,b){a.d+=_d(b);return a}\nfunction uh(a,b){Xg(a,b,true);return Tg}\nfunction Ap(a){var b;b=lb(a);return ~~b}\nfunction Lg(a){var b=Kg;return Qg(b[a])}\nfunction vi(a){if(a.q!=null){return}Ji(a)}\nfunction ob(a){a.n=null;oc(a,a.k);return a}\nfunction Tn(a){var b;b=xn(a.d);return b.X()}\nfunction ao(a){var b;b=xn(a.d);return b.Y()}\nfunction fo(a,b){var c;c=a.g;a.g=b;return c}\nfunction Mo(a){var b;b=Br(a.d);return b.X()}\nfunction Cr(a){Jn(a.d);qr(a.f,a.e);a.e=null}\nfunction Dr(a){Er.call(this,a,(Pr(),Lr))}\nfunction it(a,b,c){jt.call(this,a,b,c,true)}\nfunction Tj(a,b){return Yj(a,b,a.length-b)}\nfunction pj(a,b){return (a>>>0).toString(b)}\nfunction fe(a){return typeof a==='string'}\nfunction _d(a){return String.fromCharCode(a)}\nfunction ak(a,b){return fe(a)?_j(a,b):a.A(b)}\nfunction Kb(a,b,c){return a.apply(b,c);var d}\nfunction Pj(c,a,b){return c.lastIndexOf(a,b)}\nfunction cn(a,b){return a.f.bb(b)||a.d.bb(b)}\nfunction ek(a){return String.fromCharCode(a)}\nfunction ce(a){return a!=null&&!fe(a)&&!Sh(a)}\nfunction rc(a){nc();return parseInt(a)||-1}\nfunction Dc(a,b){if(!a){throw new ej(''+b)}}\nfunction Cc(a,b){if(!a){throw new di(''+b)}}\nfunction Xq(a,b){if(a<0||a>=b){throw new ci}}\nfunction Co(a){if(!a){throw new Qq}return a.f}\nfunction Ci(){var a;a=zi(null);a.j=2;return a}\nfunction Ai(a){var b;b=zi(a);Ni(a,b);return b}\nfunction So(a,b){a.e[a.e.length]=b;return true}\nfunction wt(a,b,c){xt.call(this,a,b,c,1,true)}\nfunction Rs(a,b,c,d){Qs.call(this,a,0,b,c,d)}\nfunction Vh(a,b){this.j=b;this.k=a;ob(this)}\nfunction _t(a,b){this.g=a;Tt(this);this.f=b}\nfunction Rk(a){this.k=a;this.j=5;this.d=Uk(a)}\nfunction Yi(a){return !isFinite(a)&&!isNaN(a)}\nfunction eb(a){return wi(jb(a))+'@'+pj(lb(a),16)}\nfunction is(a){return a.d!=0?'['+a.d+a.o+']':a.o}\nfunction Tm(a,b){return b===a?'(this Map)':''+b}\nfunction Ic(a,b){if(a==null){throw new Ej(''+b)}}\nfunction Hc(a){if(a==null){throw new Dj}return a}\nfunction Kd(a){if(a==null){throw new Dj}this.d=a}\nfunction mk(){if(hk==256){gk=ik;ik={};hk=0}++hk}\nfunction vc(){vc=Ng;Error.stackTraceLimit=64}\nfunction sj(){sj=Ng;rj=Ud(Ye,Yu,19,256,0,1)}\nfunction Vd(a,b,c,d,e,f){return Wd(a,b,c,d,e,0,f)}\nfunction Ro(a,b,c){Jc(b,a.e.length);gp(a.e,b,0,c)}\nfunction To(a,b){Gc(b,a.e.length);return a.e[b]}\nfunction Mu(a,b){Oc(a.d,a.d.d.length,b);return a}\nfunction kc(a,b){!a&&(a=[]);a[a.length]=b;return a}\nfunction Di(a){var b;b=zi(a);b.p=a;b.j=1;return b}\nfunction wp(a){var b;b=a._gwt_modCount|0;vp(a,b+1)}\nfunction Cp(c,a){var b=c.d;return b[a]||(b[a]=[])}\nfunction _j(a,b){if(a==b){return 0}return a<b?-1:1}\nfunction $t(a,b){b<1.0E-10&&(b=1.0E-10);a.e=b}\nfunction bn(a,b){return fe(b)?hn(a,b):!!Fp(a.d,b)}\nfunction fn(a,b){return fe(b)?gn(a,b):Zm(Fp(a.d,b))}\nfunction xn(a){return up(a.f,a),Fc(wn(a)),a.d.S()}\nfunction _r(a,b){return or(a.n,b,(gi(),ei))==null}\nfunction Og(a){return a instanceof Array?a[0]:null}\nfunction nh(a,b){return a.l==b.l&&a.m==b.m&&a.h==b.h}\nfunction xh(a,b){return a.l!=b.l||a.m!=b.m||a.h!=b.h}\nfunction jn(a,b,c){return fe(b)?kn(a,b,c):Hp(a.d,b,c)}\nfunction Zt(a,b,c,d){ws(a.f,d);vs(a.f,c);As(a.f,b)}\nfunction Oc(a,b,c){var d;d=Nc(a,b);Pc(a,b,c);return d}\nfunction td(a,b,c){var d;d=rd(a,b);ud(a,b,c);return d}\nfunction pr(a,b){var c;c=new Jr;rr(a,b,c);return c.g}\nfunction Zc(){Zc=Ng;Xc=new $c(false);Yc=new $c(true)}\nfunction gi(){gi=Ng;ei=new hi(false);fi=new hi(true)}\nfunction Jn(a){Kc(a.e!=-1);a.f.W(a.e);a.d=a.e;a.e=-1}\nfunction In(a){Fc(a.d<a.f.K());return a.f.V(a.e=a.d++)}\nfunction wo(a,b){!!b&&qr(a,b);return !b?null:new oo(b)}\nfunction zp(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)}\nfunction Rq(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)}\nfunction kq(a){return Object.getOwnPropertyNames(a.d)}\nfunction Gp(a){return Object.getOwnPropertyNames(a.d)}\nfunction jb(a){return fe(a)?gf:ae(a)?a.cZ:ee(a)?a.cZ:oe}\nfunction lh(a,b){return {l:a.l&b.l,m:a.m&b.m,h:a.h&b.h}}\nfunction yh(a,b){return {l:a.l|b.l,m:a.m|b.m,h:a.h|b.h}}\nfunction Gh(a,b){return {l:a.l^b.l,m:a.m^b.m,h:a.h^b.h}}\nfunction Ec(a,b){if(!a){throw new ej(Lc('%s > %s',b))}}\nfunction rd(a,b){if(b==null){throw new Dj}return sd(a,b)}\nfunction hu(a){if(hn(fu,a)){return gn(fu,a)}return null}\nfunction tk(a,b,c){a.d=Uj(a.d,0,b)+c+Tj(a.d,b);return a}\nfunction Bi(a,b){var c;c=zi(a);Ni(a,c);c.j=b?8:0;return c}\nfunction Ho(a){var b;b=(new Hr(a.d)).d.$();return new No(b)}\nfunction Qb(a){$wnd.setTimeout(function(){throw a},0)}\nfunction Nn(a){Kn.call(this,a);Jc(0,a.e.length);this.d=0}\nfunction Bl(a,b,c){jl();kl(this);this.j=a;this.g=b;this.d=c}\nfunction Et(a,b,c,d){this.f=a;this.e=b;this.g=c;this.d=d}\nfunction Ku(a,b,c,d){this.d=a;this.f=b;this.e=d;this.g=c}\nfunction wr(a){this.f=null;!a&&(a=(rp(),rp(),qp));this.e=a}\nfunction Qj(b,a){return (new RegExp('^('+a+')$')).test(b)}\nfunction gn(a,b){return b==null?Zm(Fp(a.d,null)):a.f.kb(b)}\nfunction kn(a,b,c){return b==null?Hp(a.d,null,c):a.f.nb(b,c)}\nfunction Yh(a,b,c,d){b==null&&(b='null');a.d+=b.substr(c,d-c)}\nfunction Nk(a,b){a.f=b;a.d=Ol(b);a.d<54&&(a.k=Dh(sl(b)))}\nfunction Fi(a,b){var c=a.d=a.d||[];return c[b]||(c[b]=a.B(b))}\nfunction Db(a,b){var c=Cb[a.charCodeAt(0)];return c==null?a:c}\nfunction On(a){var b;b=new yn((new sn(a.d)).d);return new Un(b)}\nfunction Xn(a){var b;b=new yn((new sn(a.d)).d);return new bo(b)}\nfunction tr(a,b){var c;c=1-b;a.d[c]=ur(a.d[c],c);return ur(a,b)}\nfunction Qg(a){function b(){}\n;b.prototype=a||{};return new b}\nfunction ie(a){return ~~Math.max(Math.min(a,Vu),-2147483648)}\nfunction Au(){return su(Cu(new Bp,(Jt(),Jt(),It),(null,Ht)))}\nfunction Tr(){Pr();return Xd(Td(kg,1),Yu,26,0,[Lr,Mr,Nr,Or])}\nfunction um(a,b){om();return b<nm.length?tm(a,nm[b]):tl(a,xm(b))}\nfunction Rj(c,a,b){b=Zj(b);return c.replace(RegExp(a,'g'),b)}\nfunction fk(a,b,c){var d;d=b+c;Wj(a.length,b,d);return $j(a,b,d)}\nfunction bc(a,b,c,d,e,f,g){a+=e+g+(b^c^d);a=a<<f|a>>>-f;return a+b}\nfunction Gj(a,b,c){this.d='Unknown';this.g=a;this.e=b;this.f=c}\nfunction xk(a){bi.call(this,'String index out of range: '+a)}\nfunction pi(a){return null!=String.fromCharCode(a).match(/\\d/)}\nfunction qi(a){return null!=String.fromCharCode(a).match(/[A-Z]/i)}\nfunction lb(a){return fe(a)?lk(a):ae(a)?a.hC():ee(a)?Pb(a):Pb(a)}\nfunction be(a,b){return a!=null&&(fe(a)&&!!$d[b]||a.cM&&!!a.cM[b])}\nfunction Mb(b){return function(){return Nb(b,this,arguments);var a}}\nfunction Nb(a,b,c){var d;d=Lb();try{return Kb(a,b,c)}finally{Ob(d)}}\nfunction to(a,b){var c,d;c=b.X();d=a._(c);return !!d&&Rq(d.g,b.Y())}\nfunction qb(a){var b,c;b=wi(a.cZ);c=a.r();return c!=null?b+': '+c:b}\nfunction Uh(){var a;a=Xh();if(!Lj('safari',a)){throw new Wh(a)}}\nfunction up(a,b){if(b._gwt_modCount!=a._gwt_modCount){throw new xp}}\nfunction ud(d,a,b){if(b){var c=b.v();d.d[a]=c(b)}else{delete d.d[a]}}\nfunction Pc(d,a,b){if(b){var c=b.v();b=c(b)}else{b=undefined}d.d[a]=b}\nfunction hb(a,b){return fe(a)?Lj(a,b):ae(a)?a.eQ(b):ee(a)?a===b:a===b}\nfunction ml(a){while(a.g>0&&a.d[--a.g]==0);a.d[a.g++]==0&&(a.j=0)}\nfunction Op(a){this.k=a;this.g=Gp(this.k);this.d=Ud(ag,Yu,27,0,0,1)}\nfunction Ob(a){a&&ic((gc(),fc));--Gb;if(a){if(Jb!=-1){Rb(Jb);Jb=-1}}}\nfunction Hi(a){if(a.H()){return null}var b=a.p;var c=Kg[b];return c}\nfunction pl(a,b){var c;for(c=a.g-1;c>=0&&a.d[c]==b[c];c--);return c<0}\nfunction jm(a,b,c,d){var e;e=Ud(me,Yu,0,b,7,1);km(e,a,b,c,d);return e}\nfunction Ud(a,b,c,d,e,f){var g;g=Yd(e,d);Xd(Td(a,f),b,c,e,g);return g}\nfunction cc(a,b,c,d,e,f,g){a+=e+g+(c^(b|~d));a=a<<f|a>>>-f;return a+b}\nfunction ac(a,b,c,d,e,f,g){a+=e+g+(c^d&(b^c));a=a<<f|a>>>-f;return a+b}\nfunction _b(a,b,c,d,e,f,g){a+=e+g+(d^b&(c^d));a=a<<f|a>>>-f;return a+b}\nfunction em(a,b,c,d){var e;e=Ud(me,Yu,0,b+1,7,1);fm(e,a,b,c,d);return e}\nfunction Wo(a,b,c){var d;d=(Gc(b,a.e.length),a.e[b]);a.e[b]=c;return d}\nfunction Vo(a,b){var c;c=(Gc(b,a.e.length),a.e[b]);fp(a.e,b,1);return c}\nfunction qr(a,b){var c;c=new Jr;c.f=true;c.g=b.Y();return rr(a,b.X(),c)}\nfunction Ug(a){var b,c,d;b=a&Zu;c=a>>22&Zu;d=a<0?$u:0;return Wg(b,c,d)}\nfunction $o(){Qo(this);Dc(true,'Initial capacity must not be negative')}\nfunction Bb(){if(Date.now){return Date.now()}return (new Date).getTime()}\nfunction vl(a,b){if(b==0||a.j==0){return a}return b>0?Pl(a,b):Sl(a,-b)}\nfunction xl(a,b){if(b==0||a.j==0){return a}return b>0?Sl(a,b):Pl(a,-b)}\nfunction Gc(a,b){if(a<0||a>=b){throw new bi('Index: '+a+', Size: '+b)}}\nfunction Jc(a,b){if(a<0||a>b){throw new bi('Index: '+a+', Size: '+b)}}\nfunction Zs(a){this.d=a;if(a.g>a.f)throw new Kt('Error: minCount>maxCount')}\nfunction Sk(a,b){this.j=b;this.d=Vk(a);this.d<54?(this.k=Dh(a)):(this.f=Nl(a))}\nfunction zb(a){xb();this.j=null;this.k=null;this.d='';this.e=a;this.d=''}\nfunction St(a,b,c,d){this.n=new Bp;this.f=a;this.g=b;this.e=c;this.d=d}\nfunction Ir(a,b){no.call(this,a,b);this.d=Ud(fg,Yu,40,2,0,1);this.e=true}\nfunction hn(a,b){return b==null?!!Fp(a.d,null):!(a.f.kb(b)===undefined)}\nfunction Su(a,b,c){return c==null?Qu(a,b,(ed(),ed(),dd)):Qu(a,b,new Kd(c))}\nfunction Jm(){Hm();return Xd(Td(mf,1),Yu,24,0,[Gm,Am,zm,Bm,Em,Cm,Dm,Fm])}\nfunction tl(a,b){if(b.j==0){return il}if(a.j==0){return il}return om(),pm(a,b)}\nfunction Ju(a,b){var c;c=Ui(tj(a.d),tj(b.d));if(c!=0)return c;return _j(a.e,b.e)}\nfunction Uo(a,b,c){for(;c<a.e.length;++c){if(Rq(b,a.e[c])){return c}}return -1}\nfunction wu(a){var b='';for(var c=0;c<a.length;c++){b+=tu(a.charAt(c))}return b}\nfunction yu(a){var b=new Bp;if(a){for(var c in a){b.Q(c,String(a[c]))}}return b}\nfunction gr(a){var b,c;if(!a.f){return null}c=a.f;while(b=c.d[0]){c=b}return c}\nfunction hr(a){var b,c;if(!a.f){return null}c=a.f;while(b=c.d[1]){c=b}return c}\nfunction hc(a){var b,c;if(a.d){c=null;do{b=a.d;a.d=null;c=lc(b,c)}while(a.d);a.d=c}}\nfunction ic(a){var b,c;if(a.e){c=null;do{b=a.e;a.e=null;c=lc(b,c)}while(a.e);a.e=c}}\nfunction Ou(a){var b;Nu.call(this);for(b=0;b<a.length;b++){Mu(this,new kd(a[b]))}}\nfunction Al(a,b){jl();kl(this);this.j=a;this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[b])}\nfunction Qs(a,b,c,d,e){this.e=new Bp;this.f=a;this.g=b;this.n=c;this.j=d;this.d=e}\nfunction yn(a){this.f=a;this.e=this.f.f.db();this.d=this.e;vp(this,a._gwt_modCount)}\nfunction Lh(){Lh=Ng;Hh=Wg(Zu,Zu,524287);Ih=Wg(0,0,_u);Jh=ph(1);ph(2);Kh=ph(0)}\nfunction Pr(){Pr=Ng;Lr=new Qr('All',0);Mr=new Ur;Nr=new Wr;Or=new Zr}\nfunction Nc(d,a){var b=d.d[a];var c=(Dd(),Cd)[typeof b];return c?c(b):Jd(typeof b)}\nfunction jq(d,a){var b=d.d;for(var c in b){if(d.jb(a,b[c])){return true}}return false}\nfunction mq(a,b){var c;c=a.d[b];if(!(c===undefined)){delete a.d[b];en(a.e)}return c}\nfunction zi(a){var b;b=new xi;b.q='Class$'+(a?'S'+a:''+b.n);b.e=b.q;b.o=b.q;return b}\nfunction Ni(a,b){var c;if(!a){return}b.p=a;var d=Hi(b);if(!d){Kg[a]=[b];return}d.cZ=b}\nfunction nj(a){var b,c;if(a==0){return 32}else{c=0;for(b=1;(b&a)==0;b<<=1){++c}return c}}\nfunction gs(a,b){var c;if(be(b,32)){c=b;if(Lj(a.o,c.o)&&a.d==c.d)return true}return false}\nfunction ur(a,b){var c,d;c=1-b;d=a.d[c];a.d[c]=d.d[b];d.d[b]=a;a.e=true;d.e=false;return d}\nfunction uu(a,b){var c;c=yu(b);c.f.nb('mf',a);return su(Du(c,(Jt(),Jt(),It),(null,Ht)))}\nfunction Pu(a){var b;Nu.call(this);for(b=0;b<a.length;b++){Mu(this,(new Ou(a[b])).d)}}\nfunction Nh(){Oh();var a=Mh;for(var b=0;b<arguments.length;b++){a.push(arguments[b])}}\nfunction Fl(a){Hc(a);if(!a.length){throw new Fj('Zero length BigInteger')}Kl(this,a)}\nfunction Qt(a){if(a.j.f.g==0)throw new vb('No isotopic distribution data');return Fs(a.j.f)}\nfunction Rt(a){if(a.j.f.g==0)throw new vb('No isotopic distribution data');return Gs(a.j.f)}\nfunction su(a){if('error' in a.d.d){throw new zb(rd(a.d,'error').w().d)}else{return a.d.d}}\nfunction hs(a){if(a.g==a.f)return a.g;throw new vb('Atoms.getCount(): undefined (min!=max)')}\nfunction Ok(a){if(a.d<54){return a.k<0?-1:a.k>0?1:0}return (!a.f&&(a.f=Ml(a.k)),a.f).j}\nfunction cl(a){if(nh(a,{l:0,m:0,h:0})&&5<Hk.length){return Hk[5]}return new Sk(a,5)}\nfunction Hg(b,c){if(b&&typeof b=='object'){try{b.__gwt$exception=c}catch(a){}}}\nfunction Wj(a,b,c){if(b<0){throw new xk(b)}if(c<b){throw new xk(c-b)}if(c>a){throw new xk(c)}}\nfunction Er(a,b){var c;this.f=a;c=new Zo;kr(a,c,b,a.f,null,false,null,false);this.d=new Nn(c)}\nfunction pp(a,b){var c,d;d=a.d.e.length;for(c=0;c<d;c++){Xq(c,a.d.e.length);Wo(a.d,c,b[c])}}\nfunction Rl(a,b,c){var d,e,f;d=0;for(e=0;e<c;e++){f=b[e];a[e]=f<<1|d;d=f>>>31}d!=0&&(a[c]=d)}\nfunction np(a){var b,c,d;d=0;for(c=a.I();c.R();){b=c.S();d=d+(b!=null?lb(b):0);d=~~d}return d}\nfunction qd(e,a){var b=e.d;var c=0;for(var d in b){b.hasOwnProperty(d)&&(a[c++]=d)}return a}\nfunction ql(a){var b;if(a.e==-2){if(a.j==0){b=-1}else{for(b=0;a.d[b]==0;b++);}a.e=b}return a.e}\nfunction Wt(a,b){if(a.g.k==0){return Xt(a,b)}else if(a.g.k==Lt){return Yt(a,b)}return Xt(a,b)}\nfunction wn(a){if(a.d.R()){return true}if(a.d!=a.e){return false}a.d=a.f.d.db();return a.d.R()}\nfunction si(a){return String.fromCharCode(a).toLowerCase().charCodeAt(0)==a&&qi(a)}\nfunction ti(a){return String.fromCharCode(a).toUpperCase().charCodeAt(0)==a&&qi(a)}\nfunction vu(a){return a.replace(/^H([^+])/,'H+H$1').replace(/(Arg|His|Lys)(?!\\()/g,'$1(H+)')}\nfunction Ru(a,b){return !b?Qu(a,'unsaturation',(ed(),ed(),dd)):Qu(a,'unsaturation',new kd(b.d))}\nfunction et(b){try{Ri(b);return true}catch(a){a=Jg(a);if(be(a,20)){return false}else throw Ig(a)}}\nfunction Mm(a,b){var c,d;Hc(b);for(d=b.I();d.R();){c=d.S();if(!a.J(c)){return false}}return true}\nfunction lq(a,b,c){var d;d=a.d[b];d===undefined&&dn(a.e);nq(a,b,c===undefined?null:c);return d}\nfunction ou(a){mu();var b,c;b='61-'+a;if(hn(lu,b))return gn(lu,b);c=new ku(a);kn(lu,b,c);return c}\nfunction ot(a,b){var c,d;for(d=Ho(new Io(a.n));Hn(d.d.d);){c=Mo(d);if(Lj(c.o,b))return c}return null}\nfunction nt(a){var b,c,d;d=pt(a);for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);b.n=tt(b.e*hs(b)*100/d)}}\nfunction ws(a,b){var c,d,e;c=(new Hr(a)).d.$();while(Hn(c.d)){d=c.e=In(c.d);e=d.Y().d;e<b&&Cr(c)}}\nfunction ms(a){this.o=a.o;this.e=a.e;this.g=a.g;this.f=a.f;this.j=a.j;this.k=a.k;this.d=a.d}\nfunction Bp(){bq();this.d=aq.gb();this.d.e=this;this.f=aq.hb();this.f.e=this;this.e=0;wp(this)}\nfunction Qk(a){Jk();if(Yi(a)||isNaN(a)){throw new Fj('Infinite or NaN')}Lk(this,a.toPrecision(20))}\nfunction nb(a){return fe(a)?a:ae(a)?a.tS():ee(a)?eb(a):a.toString?a.toString():'[JavaScriptObject]'}\nfunction qc(a){var b=/function(?:\\s+([\\w$]+))?\\s*\\(/;var c=b.exec(a);return c&&c[1]||'anonymous'}\nfunction dr(a){var b;b=a.d.e.length;if(b>0){return Xq(b-1,a.d.e.length),a.d.W(b-1)}else{throw new yp}}\nfunction bh(a){var b,c;c=mj(a.h);if(c==32){b=mj(a.m);return b==32?mj(a.l)+32:b+20-10}else{return c-12}}\nfunction wh(a){var b,c,d;b=~a.l+1&Zu;c=~a.m+(b==0?1:0)&Zu;d=~a.h+(b==0&&c==0?1:0)&$u;return Wg(b,c,d)}\nfunction kh(a,b){var c,d,e;c=a.l+b.l;d=a.m+b.m+(c>>22);e=a.h+b.h+(d>>22);return {l:c&Zu,m:d&Zu,h:e&$u}}\nfunction Ch(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return {l:c&Zu,m:d&Zu,h:e&$u}}\nfunction or(a,b,c){var d,e;d=new Ir(b,c);e=new Jr;a.f=mr(a,a.f,d,e);e.e||++a.g;a.f.e=false;return e.g}\nfunction Sd(a,b){var c;c=Yd(0,b);Xd(jb(a),a.cM,a.__elementTypeId$,a.__elementTypeCategory$,c);return c}\nfunction Xd(a,b,c,d,e){e.cZ=a;e.cM=b;e.tM=Sg;e.__elementTypeId$=c;e.__elementTypeCategory$=d;return e}\nfunction Zg(a,b,c,d,e){var f;f=Ah(a,b);c&&ah(f);if(e){a=_g(a,b);d?(Tg=wh(a)):(Tg=Wg(a.l,a.m,a.h))}return f}\nfunction Rd(a,b){var c;c=a.slice(0,b);Xd(jb(a),a.cM,a.__elementTypeId$,a.__elementTypeCategory$,c);return c}\nfunction Km(a,b){var c,d,e;Hc(b);c=false;for(e=b.I();e.R();){d=e.S();c=c|or(a.n,d,(gi(),ei))==null}return c}\nfunction ip(a){var b,c,d,e;e=1;for(c=0,d=a.length;c<d;++c){b=a[c];e=31*e+(b!=null?lb(b):0);e=~~e}return e}\nfunction Ig(a){var b;if(be(a,38)){b=a;if(ge(b.e)!==ge((xb(),wb))){return ge(b.e)===ge(wb)?null:b.e}}return a}\nfunction Jg(a){var b;if(be(a,9)){return a}b=a&&a.__gwt$exception;if(!b){b=new zb(a);oc(b,a);Hg(a,b)}return b}\nfunction Dh(a){if(nh(a,(Lh(),Ih))){return cv}if(!rh(a,Kh)){return -hh(wh(a))}return a.l+a.m*av+a.h*bv}\nfunction Ui(a,b){if(a<b){return -1}if(a>b){return 1}if(a==b){return 0}return isNaN(a)?isNaN(b)?0:1:-1}\nfunction Ml(a){jl();if(a<0){if(a!=-1){return new zl(-1,-a)}return dl}else return a<=10?fl[ie(a)]:new zl(1,a)}\nfunction Jd(a){Dd();throw new cd(\"Unexpected typeof result '\"+a+\"'; please report this bug to the GWT team\")}\nfunction Rh(a,b){typeof window==='object'&&typeof window['$gwt']==='object'&&(window['$gwt'][a]=b)}\nfunction Dd(){Dd=Ng;Cd={'boolean':Ed,number:Fd,string:Hd,object:Gd,'function':Gd,undefined:Id}}\nfunction nc(){nc=Ng;var a,b;b=!(!!Error.stackTraceLimit||'stack' in new Error);a=new Ac;mc=b?new sc:a}\nfunction tt(a){var b;b=isNaN(a*jv)?a*jv:Yi(a*jv)?a*jv:a*jv==0?a*jv:Dh(oh(Math.round(a*jv)));return b/jv}\nfunction ol(a,b){var c;if(a===b){return true}if(be(b,5)){c=b;return a.j==c.j&&a.g==c.g&&pl(a,c.d)}return false}\nfunction Bu(a,b){var c;c=yu(b);c.f.nb('monoisotopicMass',''+a);return su(Gu(c,(Jt(),Jt(),It),(null,Ht)))}\nfunction _k(a){var b=Ik;!b&&(b=Ik=/^[+-]?\\d*$/i);if(b.test(a)){return parseInt(a,10)}else{return Number.NaN}}\nfunction lk(a){jk();var b=':'+a;var c=ik[b];if(c!=null){return c}c=gk[b];c==null&&(c=kk(a));mk();return ik[b]=c}\nfunction qj(a){var b,c;if(a>-129&&a<128){b=a+128;c=(sj(),rj)[b];!c&&(c=rj[b]=new hj(a));return c}return new hj(a)}\nfunction ah(a){var b,c,d;b=~a.l+1&Zu;c=~a.m+(b==0?1:0)&Zu;d=~a.h+(b==0&&c==0?1:0)&$u;fh(a,b);gh(a,c);eh(a,d)}\nfunction wl(a){var b,c,d,e;return a.j==0?a:(b=a.g,c=b+1,d=Ud(me,Yu,0,c,7,1),Rl(d,a.d,b),e=new Bl(a.j,c,d),ml(e),e)}\nfunction rl(a){var b;if(a.f!=0){return a.f}for(b=0;b<a.d.length;b++){a.f=a.f*33+(a.d[b]&-1)}a.f=a.f*a.j;return a.f}\nfunction oi(a){if(a>=48&&a<58){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1}\nfunction Lm(a,b){var c,d;for(d=a.I();d.R();){c=d.S();if(ge(b)===ge(c)||b!=null&&hb(b,c)){return true}}return false}\nfunction $b(a,b){var c,d;for(c=0,d=0;d<16;d++){b[d]=a[c++]&255|(a[c++]&255)<<8|(a[c++]&255)<<16|(a[c++]&255)<<24}}\nfunction jp(a,b,c,d){var e,f,g;for(e=b+1;e<c;++e){for(f=e;f>b&&d.ab(a[f-1],a[f])>0;--f){g=a[f];a[f]=a[f-1];a[f-1]=g}}}\nfunction kp(a,b,c,d,e,f,g,h){var i;i=c;while(f<g){i>=d||b<c&&h.ab(a[b],a[i])<=0?(e[f++]=a[b++]):(e[f++]=a[i++])}}\nfunction Ys(a,b,c,d,e,f){a.g=yj(ie(wj((c-f-b-e)/a.d.j)),a.d.g);a.f=zj(ie(vj((c+f-b-d)/a.d.j)),a.d.f);a.e=a.g-1}\nfunction bu(a,b,c){this.g=a;Tt(this);this.d=c;Vt(this,b);if(b.d!=0){us(this.f,-b.d*uv);ys(this.f,1/uj(b.d))}}\nfunction xi(){this.n=ui++;this.q=null;this.o=null;this.k=null;this.g=null;this.e=null;this.p=null;this.d=null}\nfunction ls(a,b,c,d){if(c>d)throw new Kt('Error: minCount>maxCount');this.o=a;this.e=b;this.g=c;this.f=d}\nfunction Ns(a){if(a.g==0)throw new vb('Exact mass of '+a.n+' is unknown. Run calculateExactMass() first.');return a.g}\nfunction Np(a){if(a.f<a.d.length){return true}if(a.e<a.g.length-1){a.d=Dp(a.k,a.g[++a.e]);a.f=0;return true}return false}\nfunction Il(a){var b,c,d;if(a<hl.length){return hl[a]}c=a>>5;b=a&31;d=Ud(me,Yu,0,c+1,7,1);d[c]=1<<b;return new Bl(1,c+1,d)}\nfunction qm(a,b,c,d,e){if(b==0||d==0){return}b==1?(e[d]=sm(e,c,d,a[0])):d==1?(e[b]=sm(e,a,b,c[0])):rm(a,c,e,b,d)}\nfunction Ls(a){var b,c,d;if(a.e.e==0){return}d=0;for(c=Xn(new Yn(a.e));wn(c.d);){b=ao(c);d+=b.e*b.g/100}if(d==0)return;a.f=d}\nfunction ut(a){var b,c,d;if(a.n.g==0)return '';d=new pk('');for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);nk(d,js(b))}return d.d}\nfunction Ol(a){var b,c,d;if(a.j==0){return 0}b=a.g<<5;c=a.d[a.g-1];if(a.j<0){d=ql(a);if(d==a.g-1){--c;c=~~c}}b-=mj(c);return b}\nfunction Yo(a,b){var c,d;d=a.e.length;b.length<d&&(b=Sd(b,d));for(c=0;c<d;++c){b[c]=a.e[c]}b.length>d&&(b[d]=null);return b}\nfunction Pl(a,b){var c,d,e,f;c=b>>5;b&=31;e=a.g+c+(b==0?0:1);d=Ud(me,Yu,0,e,7,1);Ql(d,a.d,c,b);f=new Bl(a.j,e,d);ml(f);return f}\nfunction zs(a,b){var c,d,e,f;c=(new Hr(a)).d.$();while(Hn(c.d)){d=c.e=In(c.d);e=d.X();f=d.Y();or(a,e,new Ti(f.d*b))}}\nfunction pb(a){var b,c,d,e,f;for(e=a;e;e=e.j){for(b=(e.n==null&&(e.n=(nc(),f=mc.t(e),pc(f))),e.n),c=0,d=b.length;c<d;++c);}}\nfunction Sm(a,b){var c,d,e;for(d=a.O().I();d.R();){c=d.S();e=c.X();if(ge(b)===ge(e)||b!=null&&hb(b,e)){return c}}return null}\nfunction Fp(a,b){var c,d,e,f;for(d=Ep(a,b==null?'0':''+Ap(b)),e=0,f=d.length;e<f;++e){c=d[e];if(zp(b,c.X())){return c}}return null}\nfunction ir(a,b){var c,d,e;d=null;e=a.f;while(e){c=a.e.ab(b,e.f);if(c==0){return e}if(c>=0){e=e.d[1]}else{d=e;e=e.d[0]}}return d}\nfunction jr(a,b){var c,d,e;d=null;e=a.f;while(e){c=a.e.ab(b,e.f);if(c==0){return e}if(c<=0){e=e.d[0]}else{d=e;e=e.d[1]}}return d}\nfunction Cs(a){var b,c;b=new Qk(a);c=Pk(Mk(b,(Hm(),Hm(),Em)));if(c.indexOf('.')!=-1){return Rj(c,'\\\\.?0+$','')}return c}\nfunction op(a){var b,c,d;d=1;for(c=a.I();c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=31*d+(b!=null?lb(b):0);d=~~d}return d}\nfunction pc(a){var b,c,d;b='oc';d=zj(a.length,5);for(c=0;c<d;c++){if(Lj(a[c].g,b)){return a.length>=c+1&&a.splice(0,c+1),a}}return a}\nfunction $j(a,b,c){var d='';for(var e=b;e<c;){var f=Math.min(e+10000,c);d+=String.fromCharCode.apply(null,a.slice(e,f));e=f}return d}\nfunction ni(a,b,c){var d,e;d=Kj(a,b++);if(d>=55296&&d<=56319&&b<c&&ri(e=a.charCodeAt(b))){return ev+((d&1023)<<10)+(e&1023)}return d}\nfunction Mi(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c<b.length;c++){if(!b[c]||b[c]==''){continue}d+=a+b[c]}return d}\nfunction Mt(a,b,c){var d,e,f;f=nu(Rt(a),b,c);e=new Hs;for(d=0;d<f.length;d++){or(e,new Ti(f[d][0]),new Ti(f[d][1]))}a.j.f=e;a.j.f.d=jv}\nfunction Pg(){!Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.call(a)==='[object Array]'})}\nfunction Mj(b,a){if(a==null){return false}if(b==a){return true}return b.length==a.length&&b.toLowerCase()==a.toLowerCase()}\nfunction ll(a,b){if(a.j>b.j){return 1}if(a.j<b.j){return -1}if(a.g>b.g){return a.j}if(a.g<b.g){return -b.j}return a.j*gm(a.d,b.d,a.g)}\nfunction Yg(a,b){if(a.h==_u&&a.m==0&&a.l==0){b&&(Tg=Wg(0,0,0));return Vg((Lh(),Jh))}b&&(Tg=Wg(a.l,a.m,a.h));return Wg(0,0,0)}\nfunction Vj(a){if(a.length==0||a[0]>' '&&a[a.length-1]>' '){return a}return a.replace(/^[\\u0000-\\u0020]*|[\\u0000-\\u0020]*$/g,'')}\nfunction Vk(a){var b;sh(a,{l:0,m:0,h:0})&&(a={l:~a.l&Zu,m:~a.m&Zu,h:~a.h&$u});return 64-(b=Eh(Ah(a,32)),b!=0?mj(b):mj(Eh(a))+32)}\nfunction Lb(){var a;if(Gb!=0){a=Bb();if(a-Ib>2000){Ib=a;Jb=$wnd.setTimeout(Sb,10)}}if(Gb++==0){hc((gc(),fc));return true}return false}\nfunction ph(a){var b,c;if(a>-129&&a<128){b=a+128;jh==null&&(jh=Ud(He,Yu,141,256,0,1));c=jh[b];!c&&(c=jh[b]=Ug(a));return c}return Ug(a)}\nfunction Ot(a){var b,c,d;b=tv;for(d=new Kn(a.g.g);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));c.k>b&&(b=c.k)}Zt(a.j,b,a.e,a.d)}\nfunction xs(a){var b,c,d,e,f,g;b=tv;f=0;c=(new Hr(a)).d.$();while(Hn(c.d)){d=c.e=In(c.d);e=d.X();g=d.Y().d;if(g>b){b=g;f=e.d}}return f}\nfunction us(a,b){var c,d,e,f,g;d=new Hs;c=(new Hr(a)).d.$();while(Hn(c.d)){e=c.e=In(c.d);f=e.X();g=e.Y();or(d,new Ti(f.d+b),g);Cr(c)}ts(a,d)}\nfunction ys(a,b){var c,d,e,f,g;d=new Hs;c=(new Hr(a)).d.$();while(Hn(c.d)){e=c.e=In(c.d);f=e.X();g=e.Y();or(d,new Ti(f.d*b),g);Cr(c)}ts(a,d)}\nfunction ts(a,b){var c,d,e,f,g;e=(new Hr(b)).d.$();while(Hn(e.d)){c=e.e=In(e.d);f=c.X();g=c.Y();d=vo(a,f);!!d&&(g=new Ti(d.d+g.d));or(a,f,g)}}\nfunction sd(f,a){var b=f.d;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(Dd(),Cd)[typeof c];var e=d?d(c):Jd(typeof c);return e}\nfunction sl(a){var b;b=a.g>1?yh(zh(ph(a.d[1]),32),lh(ph(a.d[0]),{l:Zu,m:1023,h:0})):lh(ph(a.d[0]),{l:Zu,m:1023,h:0});return vh(ph(a.j),b)}\nfunction gm(a,b,c){var d;for(d=c-1;d>=0&&a[d]==b[d];d--);return d<0?0:sh(lh(ph(a[d]),{l:Zu,m:1023,h:0}),lh(ph(b[d]),{l:Zu,m:1023,h:0}))?-1:1}\nfunction zl(a,b){this.j=a;if(b<mv){this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[~~b])}else{this.g=2;this.d=Xd(Td(me,1),Yu,0,7,[~~(b%mv),~~(b/mv)])}}\nfunction Dl(a){jl();kl(this);if(a.length==0){this.j=0;this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[0])}else{this.j=1;this.g=a.length;this.d=a;ml(this)}}\nfunction os(a,b,c){if(b>c)throw new Kt('Error: minCount>maxCount');this.g=b;this.f=c;this.j=qt(a.d);this.k=rt(a.d);this.d=0;this.o=a.e;this.e=pt(a.d)}\nfunction at(a){var b,c,d,e;c='';b=new Zb;d=Tb(b,dk(a));for(e=0;e<5;e++){e==0?(c+=_d(uj(d[0]%26)+65&gv)):(c+=_d(uj(d[e]%26)+97&gv))}return c}\nfunction dc(a,b){var c,d;for(c=0,d=0;c<4;c++){b[d++]=he(a[c]&255);b[d++]=he(a[c]>>>8&255);b[d++]=he(a[c]>>>16&255);b[d++]=he(a[c]>>>24&255)}}\nfunction ck(a){var b,c;if(a>=ev){b=55296+(a-ev>>10&1023)&gv;c=56320+(a-ev&1023)&gv;return ek(b)+ek(c)}else{return String.fromCharCode(a&gv)}}\nfunction jt(a,b,c,d){this.d=b;this.e=c;this.g=new $o;ft(this,a,d);if(this.g.e.length==0)throw new Kt('Cannot parse: empty formula: ->'+a+'<-')}\nfunction kr(a,b,c,d,e,f,g,h){var i,j;if(!d){return}i=d.d[0];!!i&&kr(a,b,c,i,e,f,g,h);lr(a,c,d.f,e,f,g,h)&&b.U(d);j=d.d[1];!!j&&kr(a,b,c,j,e,f,g,h)}\nfunction Zj(a){var b;b=0;while(0<=(b=a.indexOf('\\\\',b))){a.charCodeAt(b+1)==36?(a=a.substr(0,b)+'$'+Tj(a,++b)):(a=a.substr(0,b)+Tj(a,++b))}return a}\nfunction Rm(a,b){var c,d,e;c=b.X();e=b.Y();d=a.P(c);if(!(ge(e)===ge(d)||e!=null&&hb(e,d))){return false}if(d==null&&!a.N(c)){return false}return true}\nfunction lr(a,b,c,d,e,f,g){var h,i;if(b.pb()&&(h=a.e.ab(c,d),h<0||!e&&h==0)){return false}if(b.qb()&&(i=a.e.ab(c,f),i>0||!g&&i==0)){return false}return true}\nfunction _g(a,b){var c,d,e;if(b<=22){c=a.l&(1<<b)-1;d=e=0}else if(b<=44){c=a.l;d=a.m&(1<<b-22)-1;e=0}else{c=a.l;d=a.m;e=a.h&(1<<b-44)-1}return Wg(c,d,e)}\nfunction Fu(a){var b,c,d;d=Nl({l:1,m:0,h:0});for(c=new Kn(a.d);c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=tl(d,Nl(ph(b.d.f-b.d.g+1)))}return d}\nfunction Bs(a){var b,c,d,e,f;e=~~(a.d/2);if(a.g<e)return;f=new bs(new Js);Km(f,new Hr(a));c=0;for(d=Ho(new Io(f.n));Hn(d.d.d);){b=Mo(d);c++>e&&pr(a,b.X())}}\nfunction pt(a){var b,c,d;if(a.j)throw new Kt('Cannot calculate mass of a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=b.e*hs(b)}return tt(d)}\nfunction rt(a){var b,c,d;if(a.j)throw new Kt('Cannot calculate exact mass of a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=b.k*hs(b)}return d}\nfunction st(a){var b,c,d;if(a.j)throw new Kt('Cannot get the number of atoms: this is a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=hs(b)}return d}\nfunction Nm(a){var b,c,d,e;e=new wk('[');b=false;for(d=a.I();d.R();){c=d.S();b?(e.d+=', ',e):(b=true);e.d+=c===a?'(this Collection)':''+c}e.d+=']';return e.d}\nfunction Yk(a,b,c){var d,e,f,g,h;e=(h=a/b,h>0?wj(h):vj(h));f=a%b;g=Ui(a*b,0);if(f!=0){d=Ui((f<=0?0-f:f)*2,b<=0?0-b:b);e+=al(ie(e)&1,g*(5+d),c)}return new Rk(e)}\nfunction Nl(a){jl();if(sh(a,{l:0,m:0,h:0})){if(xh(a,{l:Zu,m:Zu,h:$u})){return new Cl(-1,wh(a))}return dl}else return th(a,{l:10,m:0,h:0})?fl[Eh(a)]:new Cl(1,a)}\nfunction cu(a,b,c){var d,e;d=b.d!=0?hs(b):Aj(gn(a.d.d,b.o).e.e-1,hs(b));e=c.d!=0?hs(c):Aj(gn(a.d.d,c.o).e.e-1,hs(c));if(d==e)return Ui(b.e,c.e);return -Ui(d,e)}\nfunction ih(a,b){var c,d,e;e=a.h-b.h;if(e<0){return false}c=a.l-b.l;d=a.m-b.m+(c>>22);e+=d>>22;if(e<0){return false}fh(a,c&Zu);gh(a,d&Zu);eh(a,e&$u);return true}\nfunction Tb(a,b){var c,d;Xb(a,b,0,b.length);return c=ec(zh(a.e,3)),d=Ud(je,Yu,0,16,7,1),a.f>8?Xb(a,Ub,0,a.f-8):Xb(a,Ub,0,64+(a.f-8)),Xb(a,c,0,8),dc(a.g,d),Wb(a),d}\nfunction au(a,b,c){var d,e,f;this.g=a;Tt(this);this.d=c;d=b.e.e;$t(this,a.e/(d*4));for(f=Xn(new Yn(b.e));wn(f.d);){e=ao(f);or(this.f,new Ti(e.e),new Ti(e.g/100))}}\nfunction Wd(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=Yd(h,k);Xd(Td(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i<k;++i){l[i]=Wd(a,b,c,d,e,f,g)}}return l}\nfunction Ph(b,c,d,e){Oh();var f=Mh;$moduleName=c;$moduleBase=d;Gg=e;function g(){for(var a=0;a<f.length;a++){f[a]()}}\nif(b){try{Uu(g)()}catch(a){b(c,a)}}else{Uu(g)()}}\nfunction hm(a,b,c){var d,e;d=lh(ph(c),{l:Zu,m:1023,h:0});for(e=0;xh(d,{l:0,m:0,h:0})&&e<b;e++){d=kh(d,lh(ph(a[e]),{l:Zu,m:1023,h:0}));a[e]=Eh(d);d=Ah(d,32)}return Eh(d)}\nfunction wm(a,b){om();var c,d;d=(jl(),el);c=a;for(;b>1;b>>=1){(b&1)!=0&&(d=tl(d,c));c.g==1?(c=tl(c,c)):(c=new Dl(ym(c.d,c.g,Ud(me,Yu,0,c.g<<1,7,1))))}d=tl(d,c);return d}\nfunction Hp(a,b,c){var d,e,f,g;d=Cp(a,b==null?'0':''+Ap(b));for(f=0,g=d.length;f<g;++f){e=d[f];if(zp(b,e.X())){return e.Z(c)}}d[d.length]=new no(b,c);dn(a.e);return null}\nfunction lp(a,b,c,d){var e,f,g,h;!d&&(d=(rp(),rp(),qp));e=(f=(g=c-b,Ec(g>=0,Xd(Td(af,1),Yu,1,3,[qj(b),qj(c)])),g),h=Sd(a,f),yk(a,b,h,0,zj(a.length-b,f)),h);mp(e,a,b,c,-b,d)}\nfunction iu(a,b){gu();var c,d,e,f;f=2;for(d=Ho(new Io(a.n));Hn(d.d.d);){c=Mo(d);e=hu(c.o);if(!e){if(!b){return null}else{f+=b.d*hs(c)}}else{f+=e.d*hs(c)}}return new Ti(f/2)}\nfunction Yd(a,b){var c=new Array(b);var d;switch(a){case 6:d={l:0,m:0,h:0};break;case 7:d=0;break;case 8:d=false;break;default:return c;}for(var e=0;e<b;++e){c[e]=d}return c}\nfunction js(a){var b;a.d!=0?(b='<sup>'+a.d+'<\\/sup>'+a.o):(b=a.o);if(a.f==1&&a.g==1)return b;if(a.f==a.g)return b+'<sub>'+a.f+'<\\/sub>';return b+'<sub>'+a.g+'-'+a.f+'<\\/sub>'}\nfunction Vb(){Vb=Ng;Ub=Xd(Td(je,1),Yu,0,7,[-128,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,0,0])}\nfunction ku(a){var b,c,d;this.e=61;this.d=a;c=a/(2*Cj(2*xj(2)));this.f=Ud(le,hv,0,61,7,1);for(b=0;b<61;b++){d=b-30;this.f[b]=1/(c*Cj(6.283185307179586))*Math.exp(-d*d/(2*c*c))}}\nfunction Eu(a,b,c){var d,e;for(d=0;d<a.d.e.length;d++){for(e=d+1;e<a.d.e.length;e++){b[d]=b[d]+Xs((Xq(e,a.d.e.length),To(a.d,e)));c[d]=c[d]+Ws((Xq(e,a.d.e.length),To(a.d,e)))}}}\nfunction Wb(a){a.d=Ud(je,Yu,0,64,7,1);a.g=Ud(me,Yu,0,4,7,1);a.j=Ud(me,Yu,0,16,7,1);a.g[0]=1732584193;a.g[1]=-271733879;a.g[2]=-1732584194;a.g[3]=271733878;a.e={l:0,m:0,h:0};a.f=64}\nfunction Ql(a,b,c,d){var e,f,g;if(d==0){yk(b,0,a,c,a.length-c)}else{g=32-d;a[a.length-1]=0;for(f=a.length-1;f>c;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<<d}}for(e=0;e<c;e++){a[e]=0}}\nfunction Uk(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=ie(wj(xj(a)/0.6931471805599453));(!b||a!=Aj(2,c))&&++c;return c}return Vk(oh(a))}\nfunction vt(a){var b,c,d;if(a.n.g==0)return '';d=new pk('');for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);nk(d,ks(b,a.f))}a.d!=0&&(a.d>0?nk(d,'(+'+a.d+')'):nk(d,'('+a.d+')'));return d.d}\nfunction Zd(a,b,c,d,e,f){if(a===c){a=a.slice(b,b+e);b=0}for(var g=b,h=b+e;g<h;){var i=Math.min(g+10000,h);e=i-g;Array.prototype.splice.apply(c,[d,f?e:0].concat(a.slice(g,i)));g=i;d+=e}}\nfunction qh(a,b){var c,d;c=a.h>>19;d=b.h>>19;return c==0?d!=0||a.h>b.h||a.h==b.h&&a.m>b.m||a.h==b.h&&a.m==b.m&&a.l>b.l:!(d==0||a.h<b.h||a.h==b.h&&a.m<b.m||a.h==b.h&&a.m==b.m&&a.l<=b.l)}\nfunction rh(a,b){var c,d;c=a.h>>19;d=b.h>>19;return c==0?d!=0||a.h>b.h||a.h==b.h&&a.m>b.m||a.h==b.h&&a.m==b.m&&a.l>=b.l:!(d==0||a.h<b.h||a.h==b.h&&a.m<b.m||a.h==b.h&&a.m==b.m&&a.l<b.l)}\nfunction Ct(b){var c,d;d=new Tu;Su(d,'name',b.f);Su(d,'symbol',b.e);Su(d,'mf',vt(b.d));try{Qu(d,'mass',new kd(pt(b.d)))}catch(a){a=Jg(a);if(be(a,4)){c=a;pb(c)}else throw Ig(a)}return d}\nfunction sr(a,b,c,d){var e,f;f=b;e=f.f==null||a.e.ab(c.f,f.f)>0?1:0;while(f.d[e]!=c){f=f.d[e];e=a.e.ab(c.f,f.f)>0?1:0}f.d[e]=d;d.e=c.e;d.d[0]=c.d[0];d.d[1]=c.d[1];c.d[0]=null;c.d[1]=null}\nfunction dq(){var a;if(Object.create&&Object.getOwnPropertyNames&&cq()){return (a=Object.create(null),a['__proto__']=42,Object.getOwnPropertyNames(a).length==0)?new eq:new Zp}return new gq}\nfunction mt(a,b){var c;if(b.f<b.g)throw new Kt('Syntax error: maxCount<minCount');c=ot(a,b.o);if(c)if(c.d==b.d){c.g+=b.g;c.f+=b.f;return}b.f==0&&b.g==0&&(a.j=true);or(a.n,b,(gi(),ei))==null}\nfunction Qi(a){var b;if(!(b=Pi,!b&&(b=Pi=/^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$/),b.test(a))){throw new Fj('For input string: \"'+a+'\"')}return parseFloat(a)}\nfunction Cl(a,b){kl(this);this.j=a;if(nh(lh(b,{l:0,m:4193280,h:$u}),{l:0,m:0,h:0})){this.g=1;this.d=Xd(Td(me,1),Yu,0,7,[Eh(b)])}else{this.g=2;this.d=Xd(Td(me,1),Yu,0,7,[Eh(b),Eh(Ah(b,32))])}}\nfunction Tl(a,b,c,d,e){var f,g,h;f=true;for(g=0;g<d;g++){f=f&c[g]==0}if(e==0){yk(c,d,a,0,b)}else{h=32-e;f=f&c[g]<<h==0;for(g=0;g<b-1;g++){a[g]=c[g+d]>>>e|c[g+d+1]<<h}a[g]=c[g+d]>>>e;++g}return f}\nfunction Es(a){var b,c,d,e,f,g,h;e=a.g;e>~~(a.d/2)&&(e=~~(a.d/2));f='';d=(new Hr(a)).d.$();b=0;while(Hn(d.d)&&b<e){++b;c=d.e=In(d.d);g=c.X().d;h=c.Y().d;h>-1.0E100&&(f+=g+', '+h+'\\r\\n')}return f}\nfunction Fs(a){var b,c,d,e,f,g,h;e=a.g;e>~~(a.d/2)&&(e=~~(a.d/2));f=new ok;d=(new Hr(a)).d.$();b=0;while(Hn(d.d)&&b<e){++b;c=d.e=In(d.d);g=c.X().d;h=c.Y().d;nk(f,Cs(g)+', '+Cs(h*100)+'\\r\\n')}return f}\nfunction zh(a,b){var c,d,e;b&=63;if(b<22){c=a.l<<b;d=a.m<<b|a.l>>22-b;e=a.h<<b|a.m>>22-b}else if(b<44){c=0;d=a.l<<b-22;e=a.m<<b-22|a.l>>44-b}else{c=0;d=0;e=a.l<<b-44}return {l:c&Zu,m:d&Zu,h:e&$u}}\nfunction Bh(a,b){var c,d,e,f;b&=63;c=a.h&$u;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return {l:d&Zu,m:e&Zu,h:f&$u}}\nfunction Gs(a){var b,c,d,e,f;c=a.g;c>~~(a.d/2)&&(c=~~(a.d/2));d=Vd(le,[Yu,hv],[28,0],7,[c,2],2);b=0;for(f=Ho(new Io(a));Hn(f.d.d);){e=Mo(f);d[b][0]=e.d;d[b][1]=vo(a,e).d;++b;if(b==c)break}return d}\nfunction ju(a,b){gu();var c,d,e,f;f=2;for(d=new Kn(a.d);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));e=hu(c.d.o);if(!e){if(!b){return null}else{f+=b.d*c.e}}else{f+=e.d*c.e}}return new Ti(f/2)}\nfunction Hm(){Hm=Ng;Gm=new Im('UP',0);Am=new Im('DOWN',1);zm=new Im('CEILING',2);Bm=new Im('FLOOR',3);Em=new Im('HALF_UP',4);Cm=new Im('HALF_DOWN',5);Dm=new Im('HALF_EVEN',6);Fm=new Im('UNNECESSARY',7)}\nfunction As(a,b){var c,d,e,f,g;c=tv;d=(new Hr(a)).d.$();while(Hn(d.d)){e=d.e=In(d.d);e.X();g=e.Y().d;g>c&&(c=g)}d=(new Hr(a)).d.$();while(Hn(d.d)){e=d.e=In(d.d);f=e.X();g=e.Y();or(a,f,new Ti(g.d/c*b))}}\nfunction sm(a,b,c,d){om();var e,f;e={l:0,m:0,h:0};for(f=0;f<c;f++){e=kh(vh(lh(ph(b[f]),{l:Zu,m:1023,h:0}),lh(ph(d),{l:Zu,m:1023,h:0})),lh(ph(Eh(e)),{l:Zu,m:1023,h:0}));a[f]=Eh(e);e=Bh(e,32)}return Eh(e)}\nfunction Ut(a,b){var c;if(b<=0)throw new vb('Error: power='+b);if(b==1)return a;if(b==2){a.f=Wt(a,a);return a}--b;c=new _t(a.g,a.f);while(b!=0){(b&1)!=0&&(a.f=Wt(a,c));b>>=1;b!=0&&(c.f=Wt(c,c))}return a}\nfunction yb(a){var b;if(a.f==null){b=ge(a.e)===ge(wb)?null:a.e;a.g=b==null?'null':ce(b)?b==null?null:b.name:fe(b)?'String':wi(jb(b));a.d=a.d+': '+(ce(b)?b==null?null:b.message:b+'');a.f='('+a.g+') '+a.d}}\nfunction cq(){var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}return true}\nfunction mp(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){jp(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);mp(b,a,i,j,-e,f);mp(b,a,j,h,-e,f);if(f.ab(a[j-1],a[j])<=0){while(c<d){b[c++]=a[i++]}return}kp(a,i,j,h,b,c,d,f)}\nfunction lc(b,c){var d,e,f,g;for(e=0,f=b.length;e<f;e++){g=b[e];try{g[1]?g[0].sb()&&(c=kc(c,g)):g[0].sb()}catch(a){a=Jg(a);if(be(a,9)){d=a;Qb(be(d,38)?ge(d.e)===ge(wb)?null:d.e:d)}else throw Ig(a)}}return c}\nfunction Ip(a,b){var c,d,e,f;e=b==null?'0':''+Ap(b);c=Ep(a,e);for(f=0;f<c.length;f++){d=c[f];if(zp(b,d.X())){c.length==1?(delete a.d[e],undefined):(c.splice(f,1),undefined);en(a.e);return d.Y()}}return null}\nfunction kk(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c<e){b=a.charCodeAt(c+3)+31*(a.charCodeAt(c+2)+31*(a.charCodeAt(c+1)+31*(a.charCodeAt(c)+31*b)));b=~~b;c+=4}while(c<d){b=b*31+Kj(a,c++)}b=~~b;return b}\nfunction ul(a,b){var c;if(b<0){throw new _h('Negative exponent')}if(b==0){return el}else if(b==1||ol(a,el)||ol(a,il)){return a}if(!yl(a,0)){c=1;while(!yl(a,c)){++c}return tl(Il(c*b),ul(xl(a,c),b))}return wm(a,b)}\nfunction Ms(a){var b,c,d,e,f;if(a.e.e==0){a.g=a.f;a.k=Eh(oh(Bj(a.f)));return}b=1.7976931348623157E308;f=tv;c=true;for(e=Xn(new Yn(a.e));wn(e.d);){d=ao(e);if(d.g>f||c){c=false;b=d.e;f=d.g}}a.g=b;a.k=Eh(oh(Bj(b)))}\nfunction Mg(a,b,c){var d=Kg;var e=Lg;var f=Og;var g=d[a];var h=f(g);if(g&&!h){_=g}else{_=d[a]=!b?{}:e(b);_.cM=c;_.constructor=_;!b&&(_.tM=Sg)}for(var i=3;i<arguments.length;++i){arguments[i].prototype=_}h&&(_.cZ=h)}\nfunction ks(a,b){var c,d;c=a.o;!!b&&hn(b,a.o)&&Qj(gn(b,a.o).j,'^[A-Z][a-z]?\\\\{.*\\\\}$')&&(c=gn(b,a.o).j);d='';a.d!=0?(d+='['+a.d+c+']'):(d+=c);if(a.f==1&&a.g==1)return d;if(a.f==a.g)return d+a.f;return d+a.g+'-'+a.f}\nfunction Gd(a){if(!a){return ed(),dd}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=Cd[typeof b];return c?c(b):Jd(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new Rc(a)}else{return new wd(a)}}\nfunction Xb(a,b,c,d){while(true){if(d>=a.f){yk(b,c,a.d,Eh(lh(a.e,{l:63,m:0,h:0})),a.f);Yb(a,a.d);a.e=kh(a.e,ph(a.f));c+=a.f;d-=a.f;a.f=64}else{yk(b,c,a.d,Eh(lh(a.e,{l:63,m:0,h:0})),d);a.e=kh(a.e,ph(d));a.f-=d;break}}}\nfunction mj(a){var b,c,d;if(a<0){return 0}else if(a==0){return 32}else{d=-(a>>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-4096;b=d>>16&4;c+=b;a<<=b;d=a-16384;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}\nfunction Eb(b){var c=(!Cb&&(Cb=Fb()),Cb);var d=b.replace(/[\\x00-\\x1f\\xad\\u0600-\\u0603\\u06dd\\u070f\\u17b4\\u17b5\\u200b-\\u200f\\u2028-\\u202e\\u2060-\\u2064\\u206a-\\u206f\\ufeff\\ufff9-\\ufffb\"\\\\]/g,function(a){return Db(a,c)});return '\"'+d+'\"'}\nfunction yl(a,b){var c,d,e;if(b==0){return (a.d[0]&1)!=0}if(b<0){throw new _h('Negative bit address')}e=b>>5;if(e>=a.g){return a.j<0}c=a.d[e];b=1<<(b&31);if(a.j<0){d=ql(a);if(e<d){return false}else d==e?(c=-c):(c=~c)}return (c&b)!=0}\nfunction Iu(b,c){var d,e,f,g;f=new Uq;try{for(e=Ho(new Io(b.n));Hn(e.d.d);){d=Mo(e);d.f=zj(d.f,ie(c/d.j));if(d.g>d.f)return null;Tq(f,new Zs(d))}g=Xo(f.d);lp(g,0,g.length,null);pp(f,g)}catch(a){a=Jg(a);if(!be(a,4))throw Ig(a)}return f}\nfunction km(a,b,c,d,e){var f,g;f={l:0,m:0,h:0};for(g=0;g<e;g++){f=kh(f,Ch(lh(ph(b[g]),{l:Zu,m:1023,h:0}),lh(ph(d[g]),{l:Zu,m:1023,h:0})));a[g]=Eh(f);f=Ah(f,32)}for(;g<c;g++){f=kh(f,lh(ph(b[g]),{l:Zu,m:1023,h:0}));a[g]=Eh(f);f=Ah(f,32)}}\nfunction qt(a){var b,c,d,e;if(a.j)throw new Kt('Cannot calculate exact mass of a range formula');d=0;for(c=Ho(new Io(a.n));Hn(c.d.d);){b=Mo(c);d+=b.j*hs(b)}return e=isNaN(d*kv)?d*kv:Yi(d*kv)?d*kv:d*kv==0?d*kv:Dh(oh(Math.round(d*kv))),e/kv}\nfunction ec(a){var b;b=Ud(je,Yu,0,8,7,1);b[0]=he(Eh(a));a=Bh(a,8);b[1]=he(Eh(a));a=Bh(a,8);b[2]=he(Eh(a));a=Bh(a,8);b[3]=he(Eh(a));a=Bh(a,8);b[4]=he(Eh(a));a=Bh(a,8);b[5]=he(Eh(a));a=Bh(a,8);b[6]=he(Eh(a));a=Bh(a,8);b[7]=he(Eh(a));return b}\nfunction Ah(a,b){var c,d,e,f,g;b&=63;c=a.h;d=(c&_u)!=0;d&&(c|=-1048576);if(b<22){g=c>>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?$u:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?$u:0;f=d?Zu:0;e=c>>b-44}return {l:e&Zu,m:f&Zu,h:g&$u}}\nfunction Ji(a){if(a.G()){var b=a.f;b.H()?(a.q='['+b.p):!b.G()?(a.q='[L'+b.D()+';'):(a.q='['+b.D());a.e=b.C()+'[]';a.o=b.F()+'[]';return}var c=a.k;var d=a.g;d=d.split('/');a.q=Mi('.',[c,Mi('$',d)]);a.e=Mi('.',[c,Mi('.',d)]);a.o=d[d.length-1]}\nfunction dt(a){var b,c,d;if(a.f)throw new Kt('Cannot calculate mass: this is a range formula');if(a.j)throw new Kt('The mass is not clearly defined');d=0;for(c=new Kn(a.g);c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=ie(d+rt(b)*b.k)}return d}\nfunction ht(a){var b,c,d;c=new Kn(a.g);d=new pk('');c.d<c.f.K()&&(d=new pk((Fc(c.d<c.f.K()),nb(c.f.V(c.e=c.d++)))));while(c.d<c.f.K()){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));b.k==1?nk(d,'.'+vt(b)):b.k==0?nk(d,'.n'+vt(b)):nk(d,'.'+b.k+vt(b))}return d.d}\nfunction vs(a,b){var c,d,e,f,g,h;e=new Hs;d=(new Hr(a)).d.$();while(Hn(d.d)){f=d.e=In(d.d);g=f.X().d;h=f.Y().d;Cr(d);g=(isNaN(g/b)?g/b:Yi(g/b)?g/b:g/b==0?g/b:Dh(oh(Math.round(g/b))))*b;c=vo(e,new Ti(g));!!c&&(h+=c.d);or(e,new Ti(g),new Ti(h))}ts(a,e)}\nfunction oh(a){var b,c,d,e,f;if(isNaN(a)){return Lh(),Kh}if(a<cv){return Lh(),Ih}if(a>=9223372036854775807){return Lh(),Hh}e=false;if(a<0){e=true;a=-a}d=0;if(a>=bv){d=ie(a/bv);a-=d*bv}c=0;if(a>=av){c=ie(a/av);a-=c*av}b=ie(a);f=Wg(b,c,d);e&&ah(f);return f}\nfunction dk(a){var b,c,d,e,f,g,h;g=a.length;b=0;for(f=0;f<g;){d=ni(a,f,a.length);f+=d>=ev?2:1;d<128?++b:d<2048?(b+=2):d<ev?(b+=3):d<2097152?(b+=4):d<67108864&&(b+=5)}c=Ud(je,Yu,0,b,7,1);h=0;for(e=0;e<g;){d=ni(a,e,a.length);e+=d>=ev?2:1;h+=bk(c,h,d)}return c}\nfunction Ss(a,b,c){var d,e,f,g,h,i,j;this.j=c;this.n=b;this.d=a.d;this.e=new Bp;g=Rj(c,'[^0-9,\\\\.]','');i=Sj(g,',',0);d=0;for(f=Xn(new Yn(a.e));wn(f.d);){e=ao(f);j=0;i.length>d&&(j=Qi(i[d]));h=new Et(e.f,e.e,j,e.d);jn(this.e,qj(e.f),h);++d}Ls(this);Ms(this)}\nfunction Dt(b,c,d,e,f){var g;this.e=b;this.f=c;try{this.d=new wt(d,e,f)}catch(a){a=Jg(a);if(be(a,7)){g=a;\"Group creation error: '\"+b+\"'='\"+d+\"': \"+qb(g);this.d=new wt('',e,f)}else throw Ig(a)}if(this.d.j)throw new Kt('Range formulas not allowed for groups')}\nfunction Xl(a){var b,c,d;if(rh(a,{l:0,m:0,h:0})){c=mh(a,{l:1755648,m:238,h:0});d=uh(a,{l:1755648,m:238,h:0})}else{b=Bh(a,1);c=mh(b,{l:877824,m:119,h:0});d=uh(b,{l:877824,m:119,h:0});d=kh(zh(d,1),lh(a,{l:1,m:0,h:0}))}return yh(zh(d,32),lh(c,{l:Zu,m:1023,h:0}))}\nfunction fs(a,b){if(gs(a,b))return 0;if(Lj(a.o,'C')){if(Lj(b.o,'C'))return a.d-b.d;return -1}if(Lj(a.o,'H')){if(Lj(b.o,'C'))return 1;if(Lj(b.o,'H'))return a.d-b.d;return -1}if(Lj(b.o,'H')||Lj(b.o,'C')){return 1}if(Lj(a.o,b.o))return a.d-b.d;return _j(a.o,b.o)}\nfunction pm(a,b){om();var c,d,e,f,g,h,i,j,k;if(b.g>a.g){h=a;a=b;b=h}if(b.g<63){return vm(a,b)}g=(a.g&-2)<<4;j=xl(a,g);k=xl(b,g);d=im(a,vl(j,g));e=im(b,vl(k,g));i=pm(j,k);c=pm(d,e);f=pm(im(j,d),im(e,k));f=dm(dm(f,i),c);f=vl(f,g);i=vl(i,g<<1);return dm(dm(i,f),c)}\nfunction dh(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return nj(c)}if(b==0&&d!=0&&c==0){return nj(d)+22}if(b!=0&&d==0&&c==0){return nj(b)+44}return -1}\nfunction Rg(a){var b=this;if(a=='$wnd'){return $wnd}else if(a===''){return b}if(a.substring(0,5)=='$wnd.'){b=$wnd;a=a.substring(5)}var c=a.split('.');!(c[0] in b)&&b.execScript&&b.execScript('var '+c[0]);for(var d;c.length&&(d=c.shift());){b[d]?(b=b[d]):(b=b[d]={})}return b}\nfunction Mk(a,b){var c;Hc(b);c=5-a.j;if(c==0){return a}if(c>0){if(c<Fk.length&&a.d+Gk[ie(c)]<54){return new Rk(a.k*Fk[ie(c)])}return new Tk(um((!a.f&&(a.f=Ml(a.k)),a.f),ie(c)))}if(a.d<54&&-c<Fk.length){return Yk(a.k,Fk[ie(-c)],b)}return Xk((!a.f&&(a.f=Ml(a.k)),a.f),xm(-c),b)}\nfunction Ps(a){var b,c,d;d='Element: '+a.d+' - symbol: '+a.n+' - exact mass: '+a.g+' - mass: '+a.f+' - name: '+a.j+' - nb isotope: '+a.e.e+'\\r\\n';for(c=Xn(new Yn(a.e));wn(c.d);){b=ao(c);d+='Number: '+b.f+' - mass: '+b.e+' - percentage: '+b.g+' - symbol: '+b.d+'\\r\\n'}return d}\nfunction ns(a,b,c,d){var e;if(c>d)throw new Kt('Error: minCount>maxCount');if(b==0){this.g=c;this.f=d;this.j=Ns(a);this.k=a.k;this.d=0;this.o=a.n;this.e=a.f;return}e=fn(a.e,new hj(b));if(!e)throw new Kt('Isotope not found');this.d=b;this.o=a.n;this.e=e.e;this.j=e.e;this.g=c;this.f=d}\nfunction Sl(a,b){var c,d,e,f,g;d=b>>5;b&=31;if(d>=a.g){return a.j<0?(jl(),dl):(jl(),il)}f=a.g-d;e=Ud(me,Yu,0,f+1,7,1);Tl(e,f,a.d,d,b);if(a.j<0){for(c=0;c<d&&a.d[c]==0;c++);if(c<d||b>0&&a.d[c]<<32-b!=0){for(c=0;c<f&&e[c]==-1;c++){e[c]=0}c==f&&++f;++e[c]}}g=new Bl(a.j,f,e);ml(g);return g}\nfunction mr(a,b,c,d){var e,f;if(!b){return c}else{e=a.e.ab(c.f,b.f);if(e==0){d.g=fo(b,c.g);d.e=true;return b}f=e<0?0:1;b.d[f]=mr(a,b.d[f],c,d);if(nr(b.d[f])){if(nr(b.d[1-f])){b.e=true;b.d[0].e=false;b.d[1].e=false}else{nr(b.d[f].d[f])?(b=ur(b,1-f)):nr(b.d[f].d[1-f])&&(b=tr(b,1-f))}}}return b}\nfunction Lc(a,b){var c,d,e,f;a=''+a;c=new vk(a.length+16*b.length);f=0;d=0;while(d<b.length){e=a.indexOf('%s',f);if(e==-1){break}sk(c,a.substr(f,e-f));rk(c,b[d++]);f=e+2}sk(c,Yj(a,f,a.length-f));if(d<b.length){c.d+=' [';rk(c,b[d++]);while(d<b.length){c.d+=', ';rk(c,b[d++])}c.d+=']'}return c.d}\nfunction jl(){jl=Ng;var a;el=new Al(1,1);gl=new Al(1,10);il=new Al(0,0);dl=new Al(-1,1);fl=Xd(Td(lf,1),Yu,5,0,[il,el,new Al(1,2),new Al(1,3),new Al(1,4),new Al(1,5),new Al(1,6),new Al(1,7),new Al(1,8),new Al(1,9),gl]);hl=Ud(lf,Yu,5,32,0,1);for(a=0;a<hl.length;a++){hl[a]=Nl(zh({l:1,m:0,h:0},a))}}\nfunction gu(){gu=Ng;fu=new Bp;kn(fu,'O',qj(0));kn(fu,'N',qj(1));kn(fu,'H',qj(-1));kn(fu,'C',qj(2));kn(fu,'F',qj(-1));kn(fu,'Cl',qj(-1));kn(fu,'Br',qj(-1));kn(fu,'I',qj(-1));kn(fu,'S',qj(0));kn(fu,'P',qj(1));kn(fu,'Li',qj(-1));kn(fu,'Na',qj(-1));kn(fu,'K',qj(-1));kn(fu,'Ca',qj(0));kn(fu,'Mg',qj(0))}\nfunction Cu(a,b,c){var d,e,f,g,h,i,j,k;h=new Tu;k=a.f.kb('referenceVersion');k!=null&&!Lj(k,'')&&(c=(Jt(),Jt(),Ht));if(c){i=new Nu;Qu(h,'elements',i.d);for(e=Xn(new Yn(c));wn(e.d);){d=ao(e);Mu(i,Os(d).d)}}if(b){j=new Nu;Qu(h,'groups',j.d);for(g=Xn(new Yn(b));wn(g.d);){f=ao(g);Mu(j,Ct(f).d)}}return h}\nfunction gt(b){var c,d,e;e=Sj(b,'/',0);if(e.length!=2)throw new Kt('Syntax error: bad fraction syntax: '+b);try{c=Ri(e[1]);if(c==0)throw new Kt('Syntax error: divide by zero: '+b);d=Ri(e[0]);return d/c}catch(a){a=Jg(a);if(be(a,20)){throw new Kt('Syntax error: bad fraction syntax: '+b)}else throw Ig(a)}}\nfunction om(){om=Ng;var a,b;lm=Ud(lf,Yu,5,32,0,1);mm=Ud(lf,Yu,5,32,0,1);nm=Xd(Td(me,1),Yu,0,7,[1,10,100,1000,10000,iv,jv,10000000,100000000,dv]);a={l:1,m:0,h:0};for(b=0;b<=18;b++){lm[b]=Nl(a);mm[b]=Nl(zh(a,b));a=vh(a,{l:5,m:0,h:0})}for(;b<mm.length;b++){lm[b]=tl(lm[b-1],lm[1]);mm[b]=tl(mm[b-1],(jl(),gl))}}\nfunction rm(a,b,c,d,e){var f,g,h,i;if(ge(a)===ge(b)&&d==e){ym(a,d,c);return}for(h=0;h<d;h++){g={l:0,m:0,h:0};f=a[h];for(i=0;i<e;i++){g=kh(kh(vh(lh(ph(f),{l:Zu,m:1023,h:0}),lh(ph(b[i]),{l:Zu,m:1023,h:0})),lh(ph(c[h+i]),{l:Zu,m:1023,h:0})),lh(ph(Eh(g)),{l:Zu,m:1023,h:0}));c[h+i]=Eh(g);g=Bh(g,32)}c[h+e]=Eh(g)}}\nfunction bt(a){var b,c,d,e;if(a.f)throw new Kt('Cannot calculate mass: this is a range formula');if(a.j)throw new Kt('The mass is not defined');d=0;for(c=new Kn(a.g);c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d+=pt(b)*b.k}return e=isNaN(d*jv)?d*jv:Yi(d*jv)?d*jv:d*jv==0?d*jv:Dh(oh(Math.round(d*jv))),e/jv}\nfunction ct(a){var b,c,d,e;if(a.f)throw new Kt('Cannot calculate mass: this is a range formula');if(a.j)throw new Kt('The mass is not clearly defined');b=0;for(d=new Kn(a.g);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));b+=qt(c)*c.k}return e=isNaN(b*kv)?b*kv:Yi(b*kv)?b*kv:b*kv==0?b*kv:Dh(oh(Math.round(b*kv))),e/kv}\nfunction tm(a,b){var c,d,e,f,g,h,i,j,k;j=a.j;if(j==0){return jl(),il}d=a.g;c=a.d;if(d==1){e=vh(lh(ph(c[0]),{l:Zu,m:1023,h:0}),lh(ph(b),{l:Zu,m:1023,h:0}));i=Eh(e);g=Eh(Bh(e,32));return g==0?new Al(j,i):new Bl(j,2,Xd(Td(me,1),Yu,0,7,[i,g]))}h=d+1;f=Ud(me,Yu,0,h,7,1);f[d]=sm(f,c,d,b);k=new Bl(j,h,f);ml(k);return k}\nfunction vm(a,b){var c,d,e,f,g,h,i,j,k,l,m;d=a.g;f=b.g;h=d+f;i=a.j!=b.j?-1:1;if(h==2){k=vh(lh(ph(a.d[0]),{l:Zu,m:1023,h:0}),lh(ph(b.d[0]),{l:Zu,m:1023,h:0}));m=Eh(k);l=Eh(Bh(k,32));return l==0?new Al(i,m):new Bl(i,2,Xd(Td(me,1),Yu,0,7,[m,l]))}c=a.d;e=b.d;g=Ud(me,Yu,0,h,7,1);qm(c,d,e,f,g);j=new Bl(i,h,g);ml(j);return j}\nfunction Kl(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;m=b.length;i=m;if(b.charCodeAt(0)==45){k=-1;l=1;--m}else{k=1;l=0}f=(Wl(),Vl)[10];e=~~(m/f);p=m%f;p!=0&&++e;h=Ud(me,Yu,0,e,7,1);c=Ul[8];g=0;n=l+(p==0?f:p);for(o=l;o<i;o=n,n=n+f){d=Ri(b.substr(o,n-o));j=(om(),sm(h,h,g,c));j+=hm(h,g,d);h[g++]=j}a.j=k;a.g=g;a.d=h;ml(a)}\nfunction Fh(a){var b,c,d,e,f;if(a.l==0&&a.m==0&&a.h==0){return '0'}if(a.h==_u&&a.m==0&&a.l==0){return '-9223372036854775808'}if(a.h>>19!=0){return '-'+Fh(wh(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=ph(dv);c=Xg(c,e,true);b=''+Eh(Tg);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d}\nfunction Os(a){var b,c,d,e,f,g;d=new Tu;Su(d,'symbol',a.n);Qu(d,'monoisotopicMass',new kd(a.g));Qu(d,'mass',new kd(a.f));Su(d,'name',a.j);Qu(d,'atomicNumber',new kd(a.d));f=new Nu;Qu(d,'isotopes',f.d);for(c=Xn(new Yn(a.e));wn(c.d);){b=ao(c);e=(g=new Tu,Qu(g,'mass',new kd(b.e)),Qu(g,'percentage',new kd(b.g)),g);Mu(f,e.d)}return d}\nfunction Hu(a,b){var c,d,e,f;f='';for(d=new Kn(a.d);d.d<d.f.K();){c=(Fc(d.d<d.f.K()),d.f.V(d.e=d.d++));e=is(c.d);(e==null?!!Fp(b.d,null):!(b.f.kb(e)===undefined))&&(Lj((e==null?Zm(Fp(b.d,null)):b.f.kb(e)).f.substr(0,1),'{')?(e=(e==null?Zm(Fp(b.d,null)):b.f.kb(e)).f):(e=(e==null?Zm(Fp(b.d,null)):b.f.kb(e)).e));c.e>1?(f+=e+c.e):c.e>0&&(f+=e)}return f}\nfunction Nt(a){var b,c,d,e,f;c=true;for(e=new Kn(a.g.g);e.d<e.f.K();){d=(Fc(e.d<e.f.K()),e.f.V(e.e=e.d++));if(c){a.j=new bu(a,d,a.f);zs(a.j.f,d.k);b=a.j;c=false}else{b=new bu(a,d,a.f);zs(b.f,d.k);ts(a.j.f,b.f)}if(d.e!=''){f=new Ti(xs(b.f));bn(a.n,f)?jn(a.n,f,fn(a.n,f)+','+d.e):jn(a.n,f,d.e)}}if(a.j.f.g==0)throw new Kt('Isotopic distribution: empty table')}\nfunction Ri(a){var b,c,d,e,f;if(a==null){throw new Fj('null')}d=a.length;e=d>0&&(a.charCodeAt(0)==45||a.charCodeAt(0)==43)?1:0;for(b=e;b<d;b++){if(oi(a.charCodeAt(b))==-1){throw new Fj('For input string: \"'+a+'\"')}}f=parseInt(a,10);c=f<fv;if(isNaN(f)){throw new Fj('For input string: \"'+a+'\"')}else if(c||f>Vu){throw new Fj('For input string: \"'+a+'\"')}return f}\nfunction nl(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;f=b.j;if(f==0){throw new _h('BigInteger divide by zero')}e=b.g;d=b.d;if(e==1){return _l(a,d[0],f)}m=a.d;n=a.g;c=n!=e?n>e?1:-1:gm(m,d,n);if(c<0){return Xd(Td(lf,1),Yu,5,0,[il,a])}o=a.j;h=n-e+1;i=o==f?1:-1;g=Ud(me,Yu,0,h,7,1);j=$l(g,h,m,n,d,e);k=new Bl(i,h,g);l=new Bl(o,e,j);ml(k);ml(l);return Xd(Td(lf,1),Yu,5,0,[k,l])}\nfunction Kk(a,b){var c,d,e,f,g,h;e=Ok(a);h=Ok(b);if(e==h){if(a.j==b.j&&a.d<54&&b.d<54){return a.k<b.k?-1:a.k>b.k?1:0}d=a.j-b.j;c=(a.g>0?a.g:wj((a.d-1)*lv)+1)-(b.g>0?b.g:wj((b.d-1)*lv)+1);if(c>d+1){return e}else if(c<d-1){return -e}else{f=(!a.f&&(a.f=Ml(a.k)),a.f);g=(!b.f&&(b.f=Ml(b.k)),b.f);d<0?(f=tl(f,xm(-d))):d>0&&(g=tl(g,xm(d)));return ll(f,g)}}else return e<h?-1:1}\nfunction _l(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=a.d;n=a.g;o=a.j;if(n==1){d=lh(ph(m[0]),{l:Zu,m:1023,h:0});e=lh(ph(b),{l:Zu,m:1023,h:0});f=mh(d,e);i=uh(d,e);o!=c&&(f=wh(f));o<0&&(i=wh(i));return Xd(Td(lf,1),Yu,5,0,[Nl(f),Nl(i)])}h=o==c?1:-1;g=Ud(me,Yu,0,n,7,1);j=Xd(Td(me,1),Yu,0,7,[am(g,m,n,b)]);k=new Bl(h,n,g);l=new Bl(o,1,j);ml(k);ml(l);return Xd(Td(lf,1),Yu,5,0,[k,l])}\nfunction cm(a,b,c,d,e){var f,g,h;f={l:0,m:0,h:0};g={l:0,m:0,h:0};for(h=0;h<d;h++){f=(om(),kh(vh(lh(ph(c[h]),{l:Zu,m:1023,h:0}),lh(ph(e),{l:Zu,m:1023,h:0})),lh(ph(Eh(f)),{l:Zu,m:1023,h:0})));g=kh(Ch(lh(ph(a[b+h]),{l:Zu,m:1023,h:0}),lh(f,{l:Zu,m:1023,h:0})),g);a[b+h]=Eh(g);g=Ah(g,32);f=Bh(f,32)}g=kh(Ch(lh(ph(a[b+d]),{l:Zu,m:1023,h:0}),f),g);a[b+d]=Eh(g);return Eh(Ah(g,32))}\nfunction bm(a,b){var c,d,e,f,g;d=lh(ph(b),{l:Zu,m:1023,h:0});if(rh(a,{l:0,m:0,h:0})){f=mh(a,d);g=uh(a,d)}else{c=Bh(a,1);e=ph(b>>>1);f=mh(c,e);g=uh(c,e);g=kh(zh(g,1),lh(a,{l:1,m:0,h:0}));if((b&1)!=0){if(th(f,g)){g=Ch(g,f)}else{if(th(Ch(f,g),d)){g=kh(g,Ch(d,f));f=Ch(f,{l:1,m:0,h:0})}else{g=kh(g,Ch(zh(d,1),f));f=Ch(f,{l:2,m:0,h:0})}}}}return yh(zh(g,32),lh(f,{l:Zu,m:1023,h:0}))}\nfunction nu(a,b,c){mu();var d,e,f,g,h,i,j,k,l,m,n,o;i=~~(~~((b.e-1)/b.d)/2);h=a[0][0];g=a[a.length-1][0];k=Eh(oh(Bj((g-h)/c*b.d)))+2*b.d*i+1;o=Ud(le,hv,0,k,7,1);for(m=0,n=a.length;m<n;++m){l=a[m];d=Eh(oh(Bj((l[0]-h)/c*b.d+b.d*i)));for(f=0;f<b.f.length;f++){o[d+f-b.d*i]+=b.f[f]*l[1]}}j=Vd(le,[Yu,hv],[28,0],7,[k,2],2);for(e=0;e<k;e++){j[e][0]=(e/b.d-i)*c+h;j[e][1]=o[e]}return j}\nfunction al(a,b,c){var d;d=0;switch(c.e){case 7:if(b!=0){throw new _h('Rounding necessary')}break;case 0:d=b==0?0:b<0?-1:1;break;case 2:d=(b==0?0:b<0?-1:1)>0?b==0?0:b<0?-1:1:0;break;case 3:d=(b==0?0:b<0?-1:1)<0?b==0?0:b<0?-1:1:0;break;case 4:(b<0?-b:b)>=5&&(d=b==0?0:b<0?-1:1);break;case 5:(b<0?-b:b)>5&&(d=b==0?0:b<0?-1:1);break;case 6:(b<0?-b:b)+a>5&&(d=b==0?0:b<0?-1:1);}return d}\nfunction Bt(a,b,c,d){var e,f,g,h,i,j,k,l,m;if(b.indexOf(',')==-1)throw new Kt('Syntax error: combinatorial');if(c!=d)throw new Kt('Combinatorial range formulae are not allowed');j=Sj(b,',',0);i=0;h=j.length;m=new pk('{');for(g=0;g<h-1;g++){l=Vj(j[g]);f=new wt(l,a.f,a.g);nk(m,ut(f)+',');i+=pt(f)}k=Vj(j[h-1]);e=new wt(k,a.f,a.g);nk(m,ut(e)+'}');i+=pt(e);i/=h;mt(a,new ls(m.d,i,c,d))}\nfunction xu(a){var b=a;if(a.search(/[A-Z]{3} [A-Z]{3} [A-Z]{3}/)>-1){var c=a.replace(/[\\r\\n]+/g,' ');c=c.replace(/(SEQRES|[0-9]+| [A-Z] | [0-9A-Z]{4-50})/g,'');var d=c.split(' ');b='H';for(var e=0;e<d.length;e++){b+=d[e].substr(0,1)+d[e].substr(1).toLowerCase()}b+='OH'}else a.search(/[A-Z]{3}/)>-1&&a.search(/[a-zA-Z][a-z0-9]/)==-1&&(b='H'+wu(b.replace(/[^A-Z]/g,''))+'OH');return b}\nfunction $g(a,b,c,d,e,f){var g,h,i,j,k,l,m;j=bh(b)-bh(a);g=zh(b,j);i=Wg(0,0,0);while(j>=0){h=ih(a,g);if(h){j<22?(i.l|=1<<j,undefined):j<44?(i.m|=1<<j-22,undefined):(i.h|=1<<j-44,undefined);if(a.l==0&&a.m==0&&a.h==0){break}}k=g.m;l=g.h;m=g.l;eh(g,l>>>1);g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ah(i);if(f){if(d){Tg=wh(a);e&&(Tg=Ch(Tg,(Lh(),Jh)))}else{Tg=Wg(a.l,a.m,a.h)}}return i}\nfunction Xh(){var a=navigator.userAgent.toLowerCase();var b=$doc.documentMode;if(function(){return a.indexOf('webkit')!=-1}())return 'safari';if(function(){return a.indexOf('msie')!=-1&&b>=10&&b<11}())return 'ie10';if(function(){return a.indexOf('msie')!=-1&&b>=9&&b<11}())return 'ie9';if(function(){return a.indexOf('msie')!=-1&&b>=8&&b<11}())return 'ie8';if(function(){return a.indexOf('gecko')!=-1||b>=11}())return 'gecko1_8';return 'unknown'}\nfunction xm(a){om();var b,c,d,e;b=ie(a);if(a<mm.length){return mm[b]}else if(a<=50){return ul((jl(),gl),b)}else if(a<=1000){return vl(ul(lm[1],b),b)}if(a>jv){throw new _h('power of ten too big')}if(a<=Vu){return vl(ul(lm[1],b),b)}d=ul(lm[1],Vu);e=d;c=oh(a-Vu);b=ie(a%Vu);while(qh(c,{l:Zu,m:511,h:0})){e=tl(e,d);c=Ch(c,{l:Zu,m:511,h:0})}e=tl(e,ul(lm[1],b));e=vl(e,Vu);c=oh(a-Vu);while(qh(c,{l:Zu,m:511,h:0})){e=vl(e,Vu);c=Ch(c,{l:Zu,m:511,h:0})}e=vl(e,b);return e}\nfunction Sj(l,a,b){var c=new RegExp(a,'g');var d=[];var e=0;var f=l;var g=null;while(true){var h=c.exec(f);if(h==null||f==''||e==b-1&&b>0){d[e]=f;break}else{d[e]=f.substring(0,h.index);f=f.substring(h.index+h[0].length,f.length);c.lastIndex=0;if(g==f){d[e]=f.substring(0,1);f=f.substring(1)}g=f;e++}}if(b==0&&l.length>0){var i=d.length;while(i>0&&d[i-1]==''){--i}i<d.length&&d.splice(i,d.length-i)}var j=Xj(d.length);for(var k=0;k<d.length;++k){j[k]=d[k]}return j}\nfunction im(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.j;i=b.j;if(i==0){return a}if(g==0){return b.j==0?b:new Bl(-b.j,b.g,b.d)}f=a.g;h=b.g;if(f+h==2){c=lh(ph(a.d[0]),{l:Zu,m:1023,h:0});d=lh(ph(b.d[0]),{l:Zu,m:1023,h:0});g<0&&(c=wh(c));i<0&&(d=wh(d));return Nl(Ch(c,d))}e=f!=h?f>h?1:-1:gm(a.d,b.d,f);if(e==-1){l=-i;k=g==i?jm(b.d,h,a.d,f):em(b.d,h,a.d,f)}else{l=g;if(g==i){if(e==0){return jl(),il}k=jm(a.d,f,b.d,h)}else{k=em(a.d,f,b.d,h)}}j=new Bl(l,k.length,k);ml(j);return j}\nfunction am(a,b,c,d){var e,f,g,h,i,j,k;j={l:0,m:0,h:0};f=lh(ph(d),{l:Zu,m:1023,h:0});for(h=c-1;h>=0;h--){k=yh(zh(j,32),lh(ph(b[h]),{l:Zu,m:1023,h:0}));if(rh(k,{l:0,m:0,h:0})){i=mh(k,f);j=uh(k,f)}else{e=Bh(k,1);g=ph(d>>>1);i=mh(e,g);j=uh(e,g);j=kh(zh(j,1),lh(k,{l:1,m:0,h:0}));if((d&1)!=0){if(th(i,j)){j=Ch(j,i)}else{if(th(Ch(i,j),f)){j=kh(j,Ch(f,i));i=Ch(i,{l:1,m:0,h:0})}else{j=kh(j,Ch(zh(f,1),i));i=Ch(i,{l:2,m:0,h:0})}}}}a[h]=Eh(lh(i,{l:Zu,m:1023,h:0}))}return Eh(j)}\nfunction yk(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;Ic(a,'src');Ic(c,'dest');m=jb(a);i=jb(c);Cc((m.j&4)!=0,'srcType is not an array');Cc((i.j&4)!=0,'destType is not an array');l=m.f;g=i.f;Cc((l.j&1)!=0?l==g:(g.j&1)==0,\"Array types don't match\");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw new ai}if(((l.j&1)==0||(l.j&4)!=0)&&m!=i){k=a;f=c;if(ge(a)===ge(c)&&b<d){b+=e;for(h=d+e;h-->d;){f[h]=k[--b]}}else{for(h=d+e;d<h;){f[d++]=k[b++]}}}else e>0&&Zd(a,b,c,d,e,true)}\nfunction Wl(){Wl=Ng;Ul=Xd(Td(me,1),Yu,0,7,[fv,1162261467,nv,1220703125,362797056,1977326743,nv,387420489,dv,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,nv,1291467969,1544804416,1838265625,60466176]);Vl=Xd(Td(me,1),Yu,0,7,[-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])}\nfunction Pk(a){var b,c,d,e,f;if(a.n!=null){return a.n}if(a.d<32){a.n=Yl(oh(a.k),ie(a.j));return a.n}e=Zl((!a.f&&(a.f=Ml(a.k)),a.f),0);if(a.j==0){return e}b=(!a.f&&(a.f=Ml(a.k)),a.f).j<0?2:1;c=e.length;d=-a.j+c-b;f=new uk;f.d+=e;if(a.j>0&&d>=-6){if(d>=0){tk(f,c-ie(a.j),'.')}else{f.d=Uj(f.d,0,b-1)+'0.'+Tj(f.d,b-1);tk(f,b+1,fk(Ck,0,-ie(d)-1))}}else{if(c-b>=1){f.d=Uj(f.d,0,b)+'.'+Tj(f.d,b);++c}f.d=Uj(f.d,0,c)+'E'+Tj(f.d,c);d>0&&tk(f,++c,'+');tk(f,++c,''+Fh(oh(d)))}a.n=f.d;return a.n}\nfunction Xk(a,b,c){var d,e,f,g,h,i,j;f=nl(a,b);g=f[0];i=f[1];if(i.j==0){return new Tk(g)}j=a.j*b.j;if(Ol(b)<54){h=sl(i);e=sl(b);d=sh(zh(sh(h,{l:0,m:0,h:0})?wh(h):h,1),sh(e,{l:0,m:0,h:0})?wh(e):e)?-1:qh(zh(sh(h,{l:0,m:0,h:0})?wh(h):h,1),sh(e,{l:0,m:0,h:0})?wh(e):e)?1:0;d=al(yl(g,0)?1:0,j*(5+d),c)}else{d=ll(wl(i.j<0?new Bl(1,i.g,i.d):i),b.j<0?new Bl(1,b.g,b.d):b);d=al(yl(g,0)?1:0,j*(5+d),c)}if(d!=0){if(Ol(g)<54){return cl(kh(sl(g),ph(d)))}g=dm(g,Nl(ph(d)));return new Tk(g)}return new Tk(g)}\nfunction Pt(b){var c,d,e;if(b.j.f.g==0)throw new vb('No isotopic distribution data');or(b.j.f,new Ti(Co(gr(b.j.f)).d-2),new Ti(0));or(b.j.f,new Ti(Co(hr(b.j.f)).d+2),new Ti(0));d=new Bp;kn(d,'Resolution',b.e+'');kn(d,'Threshold',b.d+'');try{if(b.g.g.e.length==1){e=To(b.g.g,0);kn(d,'Monoisotopic mass',qt(e)+'');kn(d,'Molecular weight',pt(e)+'');!!iu(e,null)&&kn(d,'Unsaturation',iu(e,null)+'')}}catch(a){a=Jg(a);if(be(a,7)){c=a;pb(c)}else throw Ig(a)}return Ds(b.j.f,b.g+' - resolution: '+b.e,b.n,d)}\nfunction bk(a,b,c){if(c<128){a[b]=he(c&127);return 1}else if(c<2048){a[b++]=he(c>>6&31|192);a[b]=he(c&63|128);return 2}else if(c<ev){a[b++]=he(c>>12&15|224);a[b++]=he(c>>6&63|128);a[b]=he(c&63|128);return 3}else if(c<2097152){a[b++]=he(c>>18&7|240);a[b++]=he(c>>12&63|128);a[b++]=he(c>>6&63|128);a[b]=he(c&63|128);return 4}else if(c<67108864){a[b++]=he(c>>24&3|248);a[b++]=he(c>>18&63|128);a[b++]=he(c>>12&63|128);a[b++]=he(c>>6&63|128);a[b]=he(c&63|128);return 5}throw new ej('Character out of range: '+c)}\nfunction dm(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.j;i=b.j;if(g==0){return b}if(i==0){return a}f=a.g;h=b.g;if(f+h==2){c=lh(ph(a.d[0]),{l:Zu,m:1023,h:0});d=lh(ph(b.d[0]),{l:Zu,m:1023,h:0});if(g==i){k=kh(c,d);o=Eh(k);n=Eh(Bh(k,32));return n==0?new Al(g,o):new Bl(g,2,Xd(Td(me,1),Yu,0,7,[o,n]))}return Nl(g<0?Ch(d,c):Ch(c,d))}else if(g==i){m=g;l=f>=h?em(a.d,f,b.d,h):em(b.d,h,a.d,f)}else{e=f!=h?f>h?1:-1:gm(a.d,b.d,f);if(e==0){return jl(),il}if(e==1){m=g;l=jm(a.d,f,b.d,h)}else{m=i;l=jm(b.d,h,a.d,f)}}j=new Bl(m,l.length,l);ml(j);return j}\nfunction fm(a,b,c,d,e){var f,g;f=kh(lh(ph(b[0]),{l:Zu,m:1023,h:0}),lh(ph(d[0]),{l:Zu,m:1023,h:0}));a[0]=Eh(f);f=Ah(f,32);if(c>=e){for(g=1;g<e;g++){f=kh(f,kh(lh(ph(b[g]),{l:Zu,m:1023,h:0}),lh(ph(d[g]),{l:Zu,m:1023,h:0})));a[g]=Eh(f);f=Ah(f,32)}for(;g<c;g++){f=kh(f,lh(ph(b[g]),{l:Zu,m:1023,h:0}));a[g]=Eh(f);f=Ah(f,32)}}else{for(g=1;g<c;g++){f=kh(f,kh(lh(ph(b[g]),{l:Zu,m:1023,h:0}),lh(ph(d[g]),{l:Zu,m:1023,h:0})));a[g]=Eh(f);f=Ah(f,32)}for(;g<e;g++){f=kh(f,lh(ph(d[g]),{l:Zu,m:1023,h:0}));a[g]=Eh(f);f=Ah(f,32)}}xh(f,{l:0,m:0,h:0})&&(a[g]=Eh(f))}\nfunction ym(a,b,c){var d,e,f,g,h;for(f=0;f<b;f++){d={l:0,m:0,h:0};for(h=f+1;h<b;h++){d=kh(kh(vh(lh(ph(a[f]),{l:Zu,m:1023,h:0}),lh(ph(a[h]),{l:Zu,m:1023,h:0})),lh(ph(c[f+h]),{l:Zu,m:1023,h:0})),lh(ph(Eh(d)),{l:Zu,m:1023,h:0}));c[f+h]=Eh(d);d=Bh(d,32)}c[f+b]=Eh(d)}Rl(c,c,b<<1);d={l:0,m:0,h:0};for(e=0,g=0;e<b;++e,g++){d=kh(kh(vh(lh(ph(a[e]),{l:Zu,m:1023,h:0}),lh(ph(a[e]),{l:Zu,m:1023,h:0})),lh(ph(c[g]),{l:Zu,m:1023,h:0})),lh(ph(Eh(d)),{l:Zu,m:1023,h:0}));c[g]=Eh(d);d=Bh(d,32);++g;d=kh(d,lh(ph(c[g]),{l:Zu,m:1023,h:0}));c[g]=Eh(d);d=Bh(d,32)}return c}\nfunction vh(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;c=a.l&8191;d=a.l>>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Zu;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Zu;u+=p>>22;p&=Zu;u&=$u;return Wg(m,p,u)}\nfunction lt(b,c,d,e,f,g){var h,i,j,k,l,m;if(Lj(c,'Zcharge')){b.d+=d;return}if(c.charCodeAt(0)==91){h=1;while(pi(c.charCodeAt(h)))++h;if(f==0){try{f=Ri(c.substr(1,h-1))}catch(a){a=Jg(a);if(be(a,7)){throw new Kt('Bad isotope syntax')}else throw Ig(a)}}c=Uj(c,h,c.length-1)}i=gn(b.f,c);if(!i){l=gn(b.g,c);if(!l)throw new Kt('Unrecognized symbol: '+c);if(f!=0)throw new Kt('Syntax error: cannot specify isotopes for groups');if(g){k=Ho(new Io(l.d.n));while(Hn(k.d.d)){j=Mo(k);m=new ms(j);m.g*=d;m.f*=e;mt(b,m)}}else{mt(b,new os(l,d,e))}}else{mt(b,new ns(i,f,d,e))}}\nfunction Wh(a){Vh.call(this,''+('Possible problem with your *.gwt.xml module file.\\nThe compile time user.agent value (safari) does not match the runtime user.agent value ('+a+').\\n'+'Expect more errors.'),be('Possible problem with your *.gwt.xml module file.\\nThe compile time user.agent value (safari) does not match the runtime user.agent value ('+a+').\\n'+'Expect more errors.',9)?'Possible problem with your *.gwt.xml module file.\\nThe compile time user.agent value (safari) does not match the runtime user.agent value ('+a+').\\n'+'Expect more errors.':null)}\nfunction Vt(a,b){var c,d,e,f,g,h,i,j,k,l,m;m=new yt(new du(a));Km(m,b);j=1;for(e=Ho(new Io(m.n));Hn(e.d.d);){c=Mo(e);h=gn(a.d,c.o);h.e.e>j&&(j=h.e.e)}k=2*j*xj(st(m)+1)/xj(2);l=a.g.e/(k*4);$t(a,l);or(a.f,new Ti(0),new Ti(1));for(d=Ho(new Io(m.n));Hn(d.d.d);){c=Mo(d);h=gn(a.d,c.o);if(c.d!=0){f=new Qs(c.e,c.e,h.n,h.j,h.d);h=f}if(h.e.e==0){i=new Et(ie(h.f+0.5),h.f,1,h.n);jn(h.e,new hj(i.f),i)}if(hs(c)<0){throw new Kt('Number of element under 0')}else if(hs(c)==0);else if(hs(c)==1){a.f=Wt(a,new au(a.g,h,a.d))}else{g=new au(a.g,h,a.d);$t(g,a.e);a.f=Wt(a,Ut(g,hs(c)))}}}\nfunction Xg(a,b,c){var d,e,f,g,h,i;if(b.l==0&&b.m==0&&b.h==0){throw new _h('divide by zero')}if(a.l==0&&a.m==0&&a.h==0){c&&(Tg=Wg(0,0,0));return Wg(0,0,0)}if(b.h==_u&&b.m==0&&b.l==0){return Yg(a,c)}i=false;if(b.h>>19!=0){b=wh(b);i=true}g=dh(b);f=false;e=false;d=false;if(a.h==_u&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=Vg((Lh(),Hh));d=true;i=!i}else{h=Ah(a,g);i&&ah(h);c&&(Tg=Wg(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=wh(a);d=true;i=!i}if(g!=-1){return Zg(a,g,i,f,c)}if(!rh(a,b)){c&&(f?(Tg=wh(a)):(Tg=Wg(a.l,a.m,a.h)));return Wg(0,0,0)}return $g(d?a:Wg(a.l,a.m,a.h),b,i,f,e,c)}\nfunction wc(a,b){var c,d,e,f,g,h,i,j,k;if(!b.length){return a.u('Unknown','anonymous',-1,-1)}k=Vj(b);Lj(k.substr(0,3),'at ')&&(k=Yj(k,3,k.length-3));k=k.replace(/\\[.*?\\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=Vj(Yj(k,g+1,k.length-(g+1)));k=Vj(k.substr(0,g))}}else{c=k.indexOf(')',g);j=k.substr(g+1,c-(g+1));k=Vj(k.substr(0,g))}g=Nj(k,ck(46));g!=-1&&(k=Yj(k,g+1,k.length-(g+1)));(!k.length||Lj(k,'Anonymous function'))&&(k='anonymous');h=Oj(j,ck(58));e=Pj(j,ck(58),h-1);i=-1;d=-1;f='Unknown';if(h!=-1&&e!=-1){f=j.substr(0,e);i=rc(j.substr(e+1,h-(e+1)));d=rc(Yj(j,h+1,j.length-(h+1)))}return a.u(f,k,i,d)}\nfunction rr(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!a.f){return false}g=null;m=null;i=new Ir(null,null);e=1;i.d[1]=a.f;l=i;while(l.d[e]){j=e;h=m;m=l;l=l.d[e];d=a.e.ab(b,l.f);e=d<0?0:1;d==0&&(!c.f||Rq(l.g,c.g))&&(g=l);if(!(!!l&&l.e)&&!nr(l.d[e])){if(nr(l.d[1-e])){m=m.d[j]=ur(l,e)}else if(!nr(l.d[1-e])){n=m.d[1-j];if(n){if(!nr(n.d[1-j])&&!nr(n.d[j])){m.e=false;n.e=true;l.e=true}else{f=h.d[1]==m?1:0;nr(n.d[j])?(h.d[f]=tr(m,j)):nr(n.d[1-j])&&(h.d[f]=ur(m,j));l.e=h.d[f].e=true;h.d[f].d[0].e=false;h.d[f].d[1].e=false}}}}}if(g){c.e=true;c.g=g.g;if(l!=g){k=new Ir(l.f,l.g);sr(a,i,g,k);m==g&&(m=k)}m.d[m.d[1]==l?1:0]=l.d[!l.d[0]?1:0];--a.g}a.f=i.d[1];!!a.f&&(a.f.e=false);return c.e}\nfunction Xt(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;f=b.f.d;a.f.g>f&&Bs(a.f);b.f.g>f&&Bs(b.f);k=new Hs;j=(new Hr(b.f)).d.$();e=0;while(Hn(j.d)){i=j.e=In(j.d);h=i.X();g=i.Y();q=(new Hr(a.f)).d.$();while(Hn(q.d)){p=q.e=In(q.d);o=p.X();n=p.Y();m=o.d+h.d;l=n.d*g.d;d=Ym(jr(k,new Ti(m)));c=Ym(ir(k,new Ti(m)));if(!!d&&Si(d,new Ti(m))){l+=vo(k,c).d}else{!!d&&tj(d.d-m)>a.e&&(d=null);!!c&&tj(c.d-m)>a.e&&(c=null);!!c&&!!d&&(tj(c.d-m)<tj(d.d-m)?(d=null):(c=null));if(c){if(vo(k,c).d>l){l+=vo(k,c).d;m=c.d}else{l+=vo(k,c).d;pr(k,c)}}else if(d){if(vo(k,d).d>l){l+=vo(k,d).d;m=d.d}else{l+=vo(k,d).d;pr(k,d)}}}l>a.g.d/iv&&or(k,new Ti(m),new Ti(l));l>e&&(e=l)}k.g>f&&Bs(k)}zs(k,1/e);return k}\nfunction xt(a,b,c,d,e){var f,g,h,i,j,k,l;as.call(this);this.f=b;this.g=c;this.k=d;h=a.indexOf('$');if(h>-1){this.e=Yj(a,h+1,a.length-(h+1));a=a.substr(0,h)}g=new RegExp('(\\\\([0-9]+[+-]\\\\))');for(j=g.exec(a);j;j=g.exec(a)){f=j[0];l=Ri(Rj(Rj(Rj(f,'[^0-9+-]',''),'^([0-9])([+-])$','$2$1'),'^[+]',''));a=a.replace(g,'(Zcharge'+l+')')}g=new RegExp('(\\\\([+-][0-9]+\\\\))');for(k=g.exec(a);k;k=g.exec(a)){f=k[0];l=Ri(Rj(Rj(Rj(f,'[^0-9+-]',''),'^([0-9])([+-])$','$1$2'),'^[+]',''));a=a.replace(g,'(Zcharge'+l+')')}g=new RegExp('([+-])(?![0-9])');for(i=g.exec(a);i;i=g.exec(a)){f=i[0];Lj(f,'+')?(a=a.replace(g,'Zcharge')):(a=a.replace(g,'(Zcharge-1)'))}Qj(a,'[a-zA-Z][0-9]+-[0-9]')&&(this.j=true);a.indexOf('}')!=-1;At(this,a,e)}\nfunction Yt(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;f=b.f.d;a.f.g>f&&Bs(a.f);b.f.g>f&&Bs(b.f);k=new Hs;j=(new Hr(b.f)).d.$();e=0;while(Hn(j.d)){i=j.e=In(j.d);h=i.X();g=i.Y();q=(new Hr(a.f)).d.$();while(Hn(q.d)){p=q.e=In(q.d);o=p.X();n=p.Y();m=o.d+h.d;l=n.d*g.d;d=Ym(jr(k,new Ti(m)));c=Ym(ir(k,new Ti(m)));if(!!d&&Si(d,new Ti(m))){l+=vo(k,c).d}else{!!d&&tj(d.d-m)>a.e&&(d=null);!!c&&tj(c.d-m)>a.e&&(c=null);if(!!c&&!!d){m=(m*l+c.d*vo(k,c).d+d.d*vo(k,d).d)/(l+vo(k,c).d+vo(k,d).d);l+=vo(k,c).d+vo(k,d).d;pr(k,c);pr(k,d)}else if(c){m=(m*l+c.d*vo(k,c).d)/(l+vo(k,c).d);l+=vo(k,c).d;pr(k,c)}else if(d){m=(m*l+d.d*vo(k,d).d)/(l+vo(k,d).d);l+=vo(k,d).d;pr(k,d)}}l>a.g.d/iv&&or(k,new Ti(m),new Ti(l));l>e&&(e=l)}k.g>f&&Bs(k)}zs(k,1/e);return k}\nfunction Jk(){Jk=Ng;var a,b,c;new Sk({l:1,m:0,h:0},0);new Sk({l:10,m:0,h:0},0);new Sk({l:0,m:0,h:0},0);Bk=Ud(kf,Yu,14,11,0,1);Ck=Ud(ke,Yu,0,100,7,1);Dk=Xd(Td(le,1),hv,0,7,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,2384185791015625]);Ek=Ud(me,Yu,0,Dk.length,7,1);Fk=Xd(Td(le,1),hv,0,7,[1,10,100,1000,10000,iv,jv,10000000,100000000,dv,kv,100000000000,1000000000000,10000000000000,100000000000000,1000000000000000,10000000000000000]);Gk=Ud(me,Yu,0,Fk.length,7,1);Hk=Ud(kf,Yu,14,11,0,1);a=0;for(;a<Hk.length;a++){Bk[a]=new Sk(ph(a),0);Hk[a]=new Sk({l:0,m:0,h:0},a);Ck[a]=48}for(;a<Ck.length;a++){Ck[a]=48}for(c=0;c<Ek.length;c++){Ek[c]=Uk(Dk[c])}for(b=0;b<Gk.length;b++){Gk[b]=Uk(Fk[b])}om()}\nfunction Lk(a,b){var c,d,e,f,g,h,i,j;c=0;g=0;f=b.length;j=new vk(b.length);if(0<f&&b.charCodeAt(0)==43){++g;++c;if(g<f&&(b.charCodeAt(g)==43||b.charCodeAt(g)==45)){throw new Fj('For input string: \"'+b+'\"')}}while(g<f&&b.charCodeAt(g)!=46&&b.charCodeAt(g)!=101&&b.charCodeAt(g)!=69){++g}Yh(j,b,c,g);if(g<f&&b.charCodeAt(g)==46){++g;c=g;while(g<f&&b.charCodeAt(g)!=101&&b.charCodeAt(g)!=69){++g}a.j=g-c;Yh(j,b,c,g)}else{a.j=0}if(g<f&&(b.charCodeAt(g)==101||b.charCodeAt(g)==69)){++g;c=g;if(g<f&&b.charCodeAt(g)==43){++g;g<f&&b.charCodeAt(g)!=45&&++c}h=b.substr(c,f-c);a.j=a.j-Ri(h);if(a.j!=ie(a.j)){throw new Fj('Scale out of range.')}}i=j.d;if(i.length<16){a.k=_k(i);if(Zi(a.k)){throw new Fj('For input string: \"'+b+'\"')}a.d=Uk(a.k)}else{Nk(a,new El(i))}a.g=j.d.length;for(e=0;e<j.d.length;++e){d=Kj(j.d,e);if(d!=45&&d!=48){break}--a.g}a.g==0&&(a.g=1)}\nfunction zu(a,b){!b&&(b={a:false,b:true,c:false,x:false,y:true,z:false});var c=[];var d=a.replace(/([a-z\\)])([A-Z])/g,'$1 $2').split(/ /);if(b.a){var e='';for(var f=0;f<d.length-1;f++){e+=d[f];c.push(e+'C-1O-1(+1)$a'+(f+1))}}if(b.b){var g='';for(var f=0;f<d.length-1;f++){g+=d[f];c.push(g+'(+1)$b'+(f+1))}}if(b.c){var h='';for(var f=0;f<d.length-1;f++){h+=d[f];c.push(h+'NH3(+1)$c'+(f+1))}}if(b.x){var i='';for(var f=d.length-1;f>=0;f--){i=d[f]+i;f<d.length-1&&c.push('CO(+1)'+i+'$x'+(d.length-f-1))}}if(b.y){var j='';for(var f=d.length-1;f>=0;f--){j=d[f]+j;f<d.length-1&&c.push('H2(+1)'+j+'$y'+(d.length-f-1))}}if(b.z){var k='';for(var f=d.length-1;f>=0;f--){k=d[f]+k;f<d.length-1&&c.push('N-1H-1(+1)'+k+'$z'+(d.length-f-1))}}if(b.i){for(var f=d.length-1;f>0;f--){d[f].match(/^[A-Z][a-z][a-z].*$/)&&c.push(d[f]+'HC-1O-1(+1)$i:'+d[f])}}c.length==0&&(c=c.concat([a]));return c}\nfunction $l(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;q=Ud(me,Yu,0,d+1,7,1);r=Ud(me,Yu,0,f+1,7,1);i=mj(e[f-1]);if(i!=0){Ql(r,e,0,i);Ql(q,c,0,i)}else{yk(c,0,q,0,d);yk(e,0,r,0,f)}j=r[f-1];l=b-1;m=d;while(l>=0){if(q[m]==j){k=-1}else{s=kh(zh(lh(ph(q[m]),{l:Zu,m:1023,h:0}),32),lh(ph(q[m-1]),{l:Zu,m:1023,h:0}));v=bm(s,j);k=Eh(v);u=Eh(Ah(v,32));if(k!=0){t=false;++k;do{--k;if(t){break}o=vh(lh(ph(k),{l:Zu,m:1023,h:0}),lh(ph(r[f-2]),{l:Zu,m:1023,h:0}));w=kh(zh(ph(u),32),lh(ph(q[m-2]),{l:Zu,m:1023,h:0}));p=kh(lh(ph(u),{l:Zu,m:1023,h:0}),lh(ph(j),{l:Zu,m:1023,h:0}));mj(Eh(Bh(p,32)))<32?(t=true):(u=Eh(p))}while(qh(Gh(o,{l:0,m:0,h:_u}),Gh(w,{l:0,m:0,h:_u})))}}if(k!=0){g=cm(q,m-f,r,f,k);if(g!=0){--k;h={l:0,m:0,h:0};for(n=0;n<f;n++){h=kh(h,kh(lh(ph(q[m-f+n]),{l:Zu,m:1023,h:0}),lh(ph(r[n]),{l:Zu,m:1023,h:0})));q[m-f+n]=Eh(h);h=Bh(h,32)}}}a[l]=k;--m;--l}if(i!=0){Tl(r,f,q,0,i);return r}yk(q,0,r,0,f);return q}\nfunction Fb(){var a=['\\\\u0000','\\\\u0001','\\\\u0002','\\\\u0003','\\\\u0004','\\\\u0005','\\\\u0006','\\\\u0007','\\\\b','\\\\t','\\\\n','\\\\u000B','\\\\f','\\\\r','\\\\u000E','\\\\u000F','\\\\u0010','\\\\u0011','\\\\u0012','\\\\u0013','\\\\u0014','\\\\u0015','\\\\u0016','\\\\u0017','\\\\u0018','\\\\u0019','\\\\u001A','\\\\u001B','\\\\u001C','\\\\u001D','\\\\u001E','\\\\u001F'];a[34]='\\\\\"';a[92]='\\\\\\\\';a[173]='\\\\u00ad';a[1536]='\\\\u0600';a[1537]='\\\\u0601';a[1538]='\\\\u0602';a[1539]='\\\\u0603';a[1757]='\\\\u06dd';a[1807]='\\\\u070f';a[6068]='\\\\u17b4';a[6069]='\\\\u17b5';a[8203]='\\\\u200b';a[8204]='\\\\u200c';a[8205]='\\\\u200d';a[8206]='\\\\u200e';a[8207]='\\\\u200f';a[8232]='\\\\u2028';a[8233]='\\\\u2029';a[8234]='\\\\u202a';a[8235]='\\\\u202b';a[8236]='\\\\u202c';a[8237]='\\\\u202d';a[8238]='\\\\u202e';a[8288]='\\\\u2060';a[8289]='\\\\u2061';a[8290]='\\\\u2062';a[8291]='\\\\u2063';a[8292]='\\\\u2064';a[8298]='\\\\u206a';a[8299]='\\\\u206b';a[8300]='\\\\u206c';a[8301]='\\\\u206d';a[8302]='\\\\u206e';a[8303]='\\\\u206f';a[65279]='\\\\ufeff';a[65529]='\\\\ufff9';a[65530]='\\\\ufffa';a[65531]='\\\\ufffb';return a}\nfunction Yl(a,b){Wl();var c,d,e,f,g,h,i,j,k,l,m,n;h=sh(a,{l:0,m:0,h:0});h&&(a=wh(a));if(nh(a,{l:0,m:0,h:0})){switch(b){case 0:return '0';case 1:return '0.0';case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:l=new uk;b<0?(l.d+='0E+',l):(l.d+='0E',l);l.d+=b==fv?'2147483648':''+-b;return l.d;}}j=Ud(ke,Yu,0,19,7,1);c=18;n=a;do{i=n;n=mh(n,{l:10,m:0,h:0});j[--c]=Eh(kh({l:48,m:0,h:0},Ch(i,vh(n,{l:10,m:0,h:0}))))&gv}while(xh(n,{l:0,m:0,h:0}));d=Ch(Ch(Ch({l:18,m:0,h:0},ph(c)),ph(b)),{l:1,m:0,h:0});if(b==0){h&&(j[--c]=45);return fk(j,c,18-c)}if(b>0&&rh(d,{l:4194298,m:Zu,h:$u})){if(rh(d,{l:0,m:0,h:0})){e=c+Eh(d);for(g=17;g>=e;g--){j[g+1]=j[g]}j[++e]=46;h&&(j[--c]=45);return fk(j,c,18-c+1)}for(f=2;sh(ph(f),kh(wh(d),{l:1,m:0,h:0}));f++){j[--c]=48}j[--c]=46;j[--c]=48;h&&(j[--c]=45);return fk(j,c,18-c)}m=c+1;k=new vk;h&&(k.d+='-',k);if(18-m>=1){qk(k,j[c]);k.d+='.';k.d+=fk(j,c+1,18-c-1)}else{k.d+=fk(j,c,18-c)}k.d+='E';qh(d,{l:0,m:0,h:0})&&(k.d+='+',k);k.d+=''+Fh(d);return k.d}\nfunction tu(a){var b=(pu==null&&(pu=[{id:1,name:'alanine',aa3:'Ala',aa1:'A'},{id:2,name:'arginine',aa3:'Arg',aa1:'R'},{id:3,name:'asparagine',aa3:'Asn',aa1:'N'},{id:4,name:'aspartic acid',aa3:'Asp',aa1:'D'},{id:5,name:'asparagine or aspartic acid',aa3:'Asx',aa1:'B'},{id:6,name:'cysteine',aa3:'Cys',aa1:'C'},{id:7,name:'glutamic acid',aa3:'Glu',aa1:'E'},{id:8,name:'glutamine',aa3:'Gln',aa1:'Q'},{id:9,name:'glutamine or glutamic acid',aa3:'Glx',aa1:'Z'},{id:10,name:'glycine',aa3:'Gly',aa1:'G'},{id:11,name:'histidine',aa3:'His',aa1:'H'},{id:12,name:'isoleucine',aa3:'Ile',aa1:'I'},{id:13,name:'leucine',aa3:'Leu',aa1:'L'},{id:14,name:'lysine',aa3:'Lys',aa1:'K'},{id:15,name:'methionine',aa3:'Met',aa1:'M'},{id:16,name:'phenylalanine',aa3:'Phe',aa1:'F'},{id:17,name:'proline',aa3:'Pro',aa1:'P'},{id:18,name:'serine',aa3:'Ser',aa1:'S'},{id:19,name:'threonine',aa3:'Thr',aa1:'T'},{id:20,name:'tryptophan',aa3:'Trp',aa1:'W'},{id:21,name:'tyrosine',aa3:'Tyr',aa1:'Y'},{id:22,name:'valine',aa3:'Val',aa1:'V'}]),pu);for(var c=0;c<b.length;c++){if(b[c].aa1==a){return b[c].aa3}}return a}\nfunction ft(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;b=Rj(b,' ','');b=Rj(b,'^([0-9]+[A-Z][a-z]?)$','[$1]');Qj(b,'.*[a-zA-Z][0-9]+-[0-9].*')&&(a.f=true);r=new RegExp('([A-Z][a-z]?\\\\{[0-9.,]*\\\\})');for(t=r.exec(b);t;t=r.exec(b)){h=t[1];p=(v=at(h),w=Rj(h,'\\\\{.*',''),cn(a.d,v)||kn(a.d,v,new Ss(gn(a.d,w),v,h)),v);b=b.replace(r,p)}r=new RegExp('(\\\\{[A-Za-z0-9]*\\\\})');for(s=r.exec(b);s;s=r.exec(b)){h=s[1];q=(A=at(h),B=Rj(h,'[\\\\{\\\\}]',''),cn(a.e,A)||kn(a.e,A,new Dt(A,h,B,a.d,a.e)),A);b=b.replace(r,q)}b.indexOf('}')!=-1;g=Sj(b,'\\\\.',0);n=1;o=false;for(e=0,f=g.length;e<f;++e){d=g[e];if(et(d)){if(o)throw new Kt(\"Syntax error: 'number.number.'\");n=Qi(d);o=true;continue}u=d.indexOf('/');if(u!=-1){if(o)throw new Kt(\"Syntax error: 'number.number/number'\");k=u+1;l=d.length;while(pi(Kj(d,k++))){if(k>=l)break}k<l&&--k;n=gt(d.substr(0,k));o=true;if(k>=l)continue;else d=Yj(d,k,d.length-k)}j=0;for(;j<d.length;j++){if(!pi(d.charCodeAt(j)))break}if(j>0){m=Qi(d.substr(0,j));d=Yj(d,j,d.length-j);o?(n+=m/Aj(10,j)):(n=m)}i=new xt(d,a.d,a.e,n,c);i.k==0&&(a.j=true);i.j&&(a.f=true);So(a.g,i);n=1;o=false}}\nfunction Ds(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;t=new ok;s=a.g;s>~~(a.d/2)&&(s=~~(a.d/2));t.d+='##TITLE= '+b+'\\r\\n'+'##JCAMP-DX= 5.00\\r\\n'+'##DATA TYPE= MASS SPECTRUM\\r\\n'+'##DATA CLASS= PEAK TABLE\\r\\n'+'##ORIGIN= Generated spectrum based on ChemCalc www.chemcalc.org\\r\\n'+'##SPECTROMETER/DATA SYSTEM= Based on ChemCalc isotopic distribution calculator\\r\\n'+'##XUNITS= M/Z\\r\\n'+'##YUNITS= RELATIVE ABUNDANCE\\r\\n'+'##NPOINTS=         \\r\\n';e=t.d.length;t.d+='##MAXY= 100\\r\\n##MINY= 0\\r\\n';for(n=On(new Pn(d));wn(n.d);){m=Tn(n);nk(t,'##$'+m+'='+(m==null?Zm(Fp(d.d,null)):d.f.kb(m))+'\\r\\n')}t.d+='##PEAK TABLE= (XY..XY)\\r\\n';p=0;l=(new Hr(a)).d.$();o=(new Pn(c)).L(Ud(Re,Yu,6,(new Pn(c)).d.e,0,1));lp(o,0,o.length,(rp(),rp(),qp));g=0;q=tv;j=true;f=0;r=false;w='';while(Hn(l.d)&&f<s){++f;h=l.e=In(l.d);u=h.X().d;v=h.Y().d;v<1.0E-9&&(v=0);if(v!=0&&w.length>0){t.d+=w;++p;w=''}i=true;for(k=g;k<o.length;k++){if(!Hn(l.d)||tj(o[k].d-q)<tj(o[k].d-u)){if(i){t.d+='  $$ ';i=false}else{t.d+=','}nk(t,fn(c,o[k]));++g}else{break}}q=u;if(j){j=false;nk(t,Cs(u)+', '+Cs(v*100));++p}else{if(!r||v!=0){t.d+='\\r\\n';nk(t,Cs(u)+', '+Cs(v*100));++p}else{w='\\r\\n'+Cs(u)+', '+Cs(0)}v==0?(r=true):(r=false)}}t.d+='\\r\\n##END=\\r\\n';t.d=Uj(t.d,0,e-10)+(p+'')+Tj(t.d,e-2);return t}\nfunction Zl(a,b){Wl();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=a.j;n=a.g;e=a.d;if(A==0){switch(b){case 0:return '0';case 1:return '0.0';case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:v=new uk;b<0?(v.d+='0E+',v):(v.d+='0E',v);v.d+=-b;return v.d;}}s=n*10+1+7;t=Ud(ke,Yu,0,s+1,7,1);c=s;if(n==1){g=e[0];if(g<0){G=lh(ph(g),{l:Zu,m:1023,h:0});do{o=G;G=mh(G,{l:10,m:0,h:0});t[--c]=48+Eh(Ch(o,vh(G,{l:10,m:0,h:0})))&gv}while(xh(G,{l:0,m:0,h:0}))}else{G=g;do{o=G;G=~~(G/10);t[--c]=48+(o-G*10)&gv}while(G!=0)}}else{C=Ud(me,Yu,0,n,7,1);F=n;yk(e,0,C,0,n);H:while(true){w={l:0,m:0,h:0};for(i=F-1;i>=0;i--){D=kh(zh(w,32),lh(ph(C[i]),{l:Zu,m:1023,h:0}));q=Xl(D);C[i]=Eh(q);w=ph(Eh(Ah(q,32)))}r=Eh(w);p=c;do{t[--c]=48+r%10&gv}while((r=~~(r/10))!=0&&c!=0);d=9-p+c;for(h=0;h<d&&c>0;h++){t[--c]=48}k=F-1;for(;C[k]==0;k--){if(k==0){break H}}F=k+1}while(t[c]==48){++c}}m=A<0;f=s-c-b-1;if(b==0){m&&(t[--c]=45);return fk(t,c,s-c)}if(b>0&&f>=-6){if(f>=0){j=c+f;for(l=s-1;l>=j;l--){t[l+1]=t[l]}t[++j]=46;m&&(t[--c]=45);return fk(t,c,s-c+1)}for(k=2;k<-f+1;k++){t[--c]=48}t[--c]=46;t[--c]=48;m&&(t[--c]=45);return fk(t,c,s-c)}B=c+1;u=new vk;m&&(u.d+='-',u);if(s-B>=1){qk(u,t[c]);u.d+='.';u.d+=fk(t,c+1,s-c-1)}else{u.d+=fk(t,c,s-c)}u.d+='E';f>0&&(u.d+='+',u);u.d+=''+f;return u.d}\nfunction Yb(a,b){var c,d,e,f;$b(b,a.j);c=a.g[0];d=a.g[1];e=a.g[2];f=a.g[3];c=_b(c,d,e,f,a.j[0],7,-680876936);f=_b(f,c,d,e,a.j[1],12,-389564586);e=_b(e,f,c,d,a.j[2],17,606105819);d=_b(d,e,f,c,a.j[3],22,-1044525330);c=_b(c,d,e,f,a.j[4],7,-176418897);f=_b(f,c,d,e,a.j[5],12,1200080426);e=_b(e,f,c,d,a.j[6],17,-1473231341);d=_b(d,e,f,c,a.j[7],22,-45705983);c=_b(c,d,e,f,a.j[8],7,1770035416);f=_b(f,c,d,e,a.j[9],12,-1958414417);e=_b(e,f,c,d,a.j[10],17,-42063);d=_b(d,e,f,c,a.j[11],22,-1990404162);c=_b(c,d,e,f,a.j[12],7,1804603682);f=_b(f,c,d,e,a.j[13],12,-40341101);e=_b(e,f,c,d,a.j[14],17,-1502002290);d=_b(d,e,f,c,a.j[15],22,1236535329);c=ac(c,d,e,f,a.j[1],5,-165796510);f=ac(f,c,d,e,a.j[6],9,-1069501632);e=ac(e,f,c,d,a.j[11],14,643717713);d=ac(d,e,f,c,a.j[0],20,-373897302);c=ac(c,d,e,f,a.j[5],5,-701558691);f=ac(f,c,d,e,a.j[10],9,38016083);e=ac(e,f,c,d,a.j[15],14,-660478335);d=ac(d,e,f,c,a.j[4],20,-405537848);c=ac(c,d,e,f,a.j[9],5,568446438);f=ac(f,c,d,e,a.j[14],9,-1019803690);e=ac(e,f,c,d,a.j[3],14,-187363961);d=ac(d,e,f,c,a.j[8],20,1163531501);c=ac(c,d,e,f,a.j[13],5,-1444681467);f=ac(f,c,d,e,a.j[2],9,-51403784);e=ac(e,f,c,d,a.j[7],14,1735328473);d=ac(d,e,f,c,a.j[12],20,-1926607734);c=bc(c,d,e,f,a.j[5],4,-378558);f=bc(f,c,d,e,a.j[8],11,-2022574463);e=bc(e,f,c,d,a.j[11],16,1839030562);d=bc(d,e,f,c,a.j[14],23,-35309556);c=bc(c,d,e,f,a.j[1],4,-1530992060);f=bc(f,c,d,e,a.j[4],11,1272893353);e=bc(e,f,c,d,a.j[7],16,-155497632);d=bc(d,e,f,c,a.j[10],23,-1094730640);c=bc(c,d,e,f,a.j[13],4,681279174);f=bc(f,c,d,e,a.j[0],11,-358537222);e=bc(e,f,c,d,a.j[3],16,-722521979);d=bc(d,e,f,c,a.j[6],23,76029189);c=bc(c,d,e,f,a.j[9],4,-640364487);f=bc(f,c,d,e,a.j[12],11,-421815835);e=bc(e,f,c,d,a.j[15],16,530742520);d=bc(d,e,f,c,a.j[2],23,-995338651);c=cc(c,d,e,f,a.j[0],6,-198630844);f=cc(f,c,d,e,a.j[7],10,1126891415);e=cc(e,f,c,d,a.j[14],15,-1416354905);d=cc(d,e,f,c,a.j[5],21,-57434055);c=cc(c,d,e,f,a.j[12],6,1700485571);f=cc(f,c,d,e,a.j[3],10,-1894986606);e=cc(e,f,c,d,a.j[10],15,-1051523);d=cc(d,e,f,c,a.j[1],21,-2054922799);c=cc(c,d,e,f,a.j[8],6,1873313359);f=cc(f,c,d,e,a.j[15],10,-30611744);e=cc(e,f,c,d,a.j[6],15,-1560198380);d=cc(d,e,f,c,a.j[13],21,1309151649);c=cc(c,d,e,f,a.j[4],6,-145523070);f=cc(f,c,d,e,a.j[11],10,-1120210379);e=cc(e,f,c,d,a.j[2],15,718787259);d=cc(d,e,f,c,a.j[9],21,-343485551);a.g[0]=~~(a.g[0]+c);a.g[1]=~~(a.g[1]+d);a.g[2]=~~(a.g[2]+e);a.g[3]=~~(a.g[3]+f)}\nfunction At(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;c=Vj(c);c=Rj(c,'[=]','');if(c.indexOf('.')!=-1)throw new vb('Error: the formula \"'+c+'\"contains dots (error in parsing)');if(Lj(c,'')){return}if(pi(c.charCodeAt(0))){throw new vb('Error: the formula starts with a number')}c.charCodeAt(0)==120&&(c='X'+Uj(c,1,c.length));g=new fr;k=1;j=1;m=1;l=1;r=1;q=1;w=c.length-1;while(w>=0){if(pi(c.charCodeAt(w))){f=w;while(w>0&&pi(c.charCodeAt(w)))--w;e=c.substr(w+1,f+1-(w+1));u=Ri(e);if(c.charCodeAt(w)==45){--w;if(w<0)throw new Kt(\"Syntax error: the formula starts with '-': \"+c);f=w;while(w>0&&pi(c.charCodeAt(w)))--w;w==0&&pi(c.charCodeAt(0))&&--w;o=c.substr(w+1,f+1-(w+1));if(o.length==0){u=Ri('-'+e);v=u}else{v=Ri(o)}}else v=u;if(c.charCodeAt(w)==41){--w;if(w<0)throw new Kt(\"Syntax error: the formula starts with ')': \"+c);er(g,new hj(r));er(g,new hj(q));r=m;q=l;l*=u;m*=v}else{k=v;j=u}}else{if(c.charCodeAt(w)==93){s=w;--w;if(w<=1)throw new Kt('Syntax error: bad isotope syntax');if(!qi(c.charCodeAt(w)))throw new Kt('Syntax error: bad isotope syntax');while(w>0&&si(c.charCodeAt(w)))--w;if(!ti(c.charCodeAt(w)))throw new Kt('Syntax error: bad symbol (must start with uppercase)');t=c.substr(w,s-w);--w;if(w<0)throw new Kt('Syntax error: bad isotope syntax');if(!pi(c.charCodeAt(w)))throw new Kt('Syntax error: bad isotope syntax');f=w;while(w>0&&c.charCodeAt(w)!=91)--w;p=c.substr(w+1,f+1-(w+1));try{n=Ri(p)}catch(a){a=Jg(a);if(be(a,20)){throw new Kt('Syntax error: bad isotope number '+p)}else throw Ig(a)}if(c.charCodeAt(w)!=91)throw new Kt(\"Isotope syntax error: no opening '['\");lt(b,t,k*m,j*l,n,d);j=1;k=1;if(w>0)--w;else return}else{if(qi(c.charCodeAt(w))){s=w;while(w>0&&si(c.charCodeAt(w)))--w;if(s==0&&w==0&&c.charCodeAt(0)==110){b.k=0;return}if(!ti(c.charCodeAt(w)))throw new Kt('Syntax error: the symbol must start with uppercase');t=c.substr(w,s+1-w);if(Lj(t,'X')&&w==0){b.k=0;return}--w;lt(b,t,k*m,j*l,0,d);j=1;k=1}else{while(c.charCodeAt(w)==41){--w;if(w<0)throw new Kt(\"Syntax error: the formula starts with ')': \"+c);er(g,new hj(r));er(g,new hj(q));r=m;q=l}if(w<0)break;while(c.charCodeAt(w)==40){l=q;m=r;if(g.d.e.length==0){q=1;r=1}else{q=dr(g).d;r=dr(g).d}--w;if(w<0)break}if(w<0)break;if(c.charCodeAt(w)==125){i=w;while(w>0&&c.charCodeAt(w)!=123)--w;if(c.charCodeAt(w)!=123)throw new Kt('Syntax error (combinatorial): no opening brace');Bt(b,c.substr(w+1,i-(w+1)),k*m,j*l);--w}}}}if(w<0)break;h=c.charCodeAt(w);if(h==123)throw new Kt('Syntax error (combinatorial): no closing brace');if(h==91)throw new Kt('Syntax error (isotope): no closing bracket');if(!(null!=String.fromCharCode(h).match(/[A-Z\\d]/i))&&h!=40&&h!=91&&h!=123&&h!=93&&h!=41&&h!=125)throw new Kt(\"Syntax error: unrecognized character: '\"+_d(h)+\"'\")}}\nfunction Du(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P;v=new Tu;if(!b){Qu(v,'error',new Kd('options is null'));return v}K=b.f.kb('referenceVersion');K!=null&&!Lj(K,'')&&(d=(Jt(),Jt(),Ht));D=b.f.kb('mf');s=b.f.kb('isotopomers');O=b.f.kb('typedResult')!=null&&(gi(),Mj('true',b.f.kb('typedResult'))?fi:ei).d;L=new Ti(0.001);try{L=new Ti(Qi(b.f.kb('resolution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}N=new Ti(1.0E-5);try{N=new Ti(Qi(b.f.kb('threshold')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}e=false;q=10;try{q=ie(Qi(b.f.kb('gaussianWidth')));e=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}p=new Ti(L.d*q);try{p=new Ti(Qi(b.f.kb('gaussianResolution')));e=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}i=null;try{i=new Ti(Qi(b.f.kb('defaultUnsaturationContribution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}u=0;!(b.f.kb('joiningAlgorithm')===undefined)&&Lj(b.f.kb('joiningAlgorithm').toLowerCase(),'center')&&(u=Lt);A=new Tu;D==null?Qu(A,'mf',(ed(),ed(),dd)):Qu(A,'mf',new Kd(D));Qu(A,'threshold',new kd(N.d));Qu(A,'resolution',new kd(L.d));Qu(A,'typedResult',(Zc(),O?Yc:Xc));s==null?Qu(A,'isotopomers',(ed(),ed(),dd)):Qu(A,'isotopomers',new Kd(s));if(e){Qu(A,'gaussianWidth',new kd(q));Qu(A,'gaussianResolution',new kd(p.d))}K==null?Qu(A,'referenceVersion',(ed(),ed(),dd)):Qu(A,'referenceVersion',new Kd(K));Qu(v,'options',A.d);if(D!=null){D=Vj(D);Lj(D,'')&&(D=null)}if(D!=null){try{l=new it(D,d,c);if(l.g.e.length>0){if(l.j){Qu(v,'error',new Kd('mass not defined'))}else{if(O){F=new Tu;Qu(F,'type',new Kd('mf'));Su(F,'value',ht(l));Qu(v,'mf',F.d)}else{Su(v,'mf',ht(l))}Qu(v,'mw',new kd(bt(l)));Qu(v,'em',new kd(ct(l)));Qu(v,'nominalMass',new kd(dt(l)));if(s!=null&&!Lj(s,'')){M=new St(d,l,L.d,N.d);M.k=u;Nt(M);Ot(M);if(e){o=ou(q);Mt(M,o,p.d)}Qu(A,'numberLines',new kd(M.j.f.g));if(s.indexOf('jcamp')>-1){if(O){t=new Tu;Qu(t,'type',new Kd('jcamp'));Su(t,'value',Pt(M).d);Qu(v,'jcamp',t.d)}else{Su(v,'jcamp',Pt(M).d)}}if(s.indexOf('xy')>-1){if(O){P=new Tu;Qu(P,'type',new Kd('xy'));Su(P,'value',Qt(M).d);Qu(v,'xy',P.d)}else{Su(v,'xy',Qt(M).d)}}if(s.indexOf('array')>-1&&s.indexOf('arrayX')==-1){f=Rt(M);w=new Nu;B=new Nu;C=new Nu;for(r=0;r<f.length;r++){Mu(B,new kd(f[r][0]));Mu(C,new kd(f[r][1]))}Mu(w,B.d);Mu(w,C.d);Qu(v,'spectrum',w.d)}if(s.indexOf('arrayXXYY')>-1){f=Rt(M);w=new Nu;B=new Nu;C=new Nu;for(r=0;r<f.length;r++){Mu(B,new kd(f[r][0]));Mu(C,new kd(f[r][1]))}Mu(w,B.d);Mu(w,C.d);Qu(v,'arrayXXYY',w.d)}if(s.indexOf('arrayXYXY')>-1){f=Rt(M);Qu(v,'arrayXYXY',(new Pu(f)).d)}}J=new Nu;Qu(v,'parts',J.d);for(n=new Kn(l.g);n.d<n.f.K();){m=(Fc(n.d<n.f.K()),n.f.V(n.e=n.d++));I=new Tu;Mu(J,I.d);if(O){F=new Tu;Qu(F,'type',new Kd('mf'));Su(F,'value',vt(m));Qu(I,'mf',F.d)}else{Su(I,'mf',vt(m))}Qu(I,'mw',new kd(pt(m)));Qu(I,'em',new kd(qt(m)));m.e.length>0&&Su(I,'comment',m.e);Ru(I,iu(m,i));H=qt(m)-m.d*uv;if(m.d!=0){Qu(I,'charge',new kd(m.d));H=H/uj(m.d)}Qu(I,'msem',new kd(H));nt(m);j=new Nu;for(h=Ho(new Io(m.n));Hn(h.d.d);){g=Mo(h);k=new Tu;Su(k,'element',g.o);Qu(k,'number',new kd(hs(g)));Qu(k,'percentage',new kd(g.n));Mu(j,k.d)}Qu(I,'ea',j.d)}}}else{Qu(v,'error',new Kd('there is no part in the molecule'))}}catch(a){a=Jg(a);if(be(a,4)){G=a;Su(v,'error',G.k)}else throw Ig(a)}}else{Qu(v,'error',new Kd('parameter mf not specified'))}return v}\nfunction Gu(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db;G=0.5;R=0;L=50;J=1000;t=true;db=true;S=false;w=b.f.kb('jcampLink')!=null&&(gi(),Mj('true',b.f.kb('jcampLink'))?fi:ei).d;v=b.f.kb('jcampBaseURL')==null?'http://www.chemcalc.org/service/jcamp/':b.f.kb('jcampBaseURL');O='C0-100H0-202N0-10O0-10F0-3Cl0-3Br0-1';$=tv;Z=new as;bb=b.f.kb('typedResult')!=null&&(gi(),Mj('true',b.f.kb('typedResult'))?fi:ei).d;W=new Ti(0.001);try{W=new Ti(Qi(b.f.kb('resolution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}f=false;s=10;try{s=ie(Qi(b.f.kb('gaussianWidth')));f=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}r=new Ti(W.d*s);try{r=new Ti(Qi(b.f.kb('gaussianResolution')));f=true}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}B=new Tu;if(!b){Qu(B,'error',new Kd('options is null'));return B}V=b.f.kb('referenceVersion');V!=null&&!Lj(V,'')&&(d=(Jt(),Jt(),Ht));m=null;try{m=new Ti(Qi(b.f.kb('defaultUnsaturationContribution')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{R=Qi(b.f.kb('minUnsaturation'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{L=Qi(b.f.kb('maxUnsaturation'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}if(!(b.f.kb('integerUnsaturation')===undefined)){try{t=(gi(),Mj('true',b.f.kb('integerUnsaturation')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}}if(!(b.f.kb('useUnsaturation')===undefined)){try{db=(gi(),Mj('true',b.f.kb('useUnsaturation')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}}if(!(b.f.kb('numberOfResultsOnly')===undefined)){try{S=(gi(),Mj('true',b.f.kb('numberOfResultsOnly')))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}}try{J=Qi(b.f.kb('maxNumberRows'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{$=Qi(b.f.kb('monoisotopicMass'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}try{G=Qi(b.f.kb('massRange'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}Q=$-G;I=$+G;try{I=Qi(b.f.kb('maxMass'))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}!(b.f.kb('mfRange')===undefined)&&b.f.kb('mfRange')!=null&&b.f.kb('mfRange').length>0&&(O=b.f.kb('mfRange'));if($<0){Qu(B,'error',new Kd('monoisotopicMass must be specified and larger than 0'));return B}C=new Tu;Qu(C,'minUnsaturation',new kd(R));Qu(C,'maxUnsaturation',new kd(L));Qu(C,'integerUnsaturation',(Zc(),t?Yc:Xc));Qu(C,'useUnsaturation',db?Yc:Xc);Qu(C,'numberOfResultsOnly',S?Yc:Xc);Qu(C,'minMass',new kd(Dh(oh(Math.round(Q*kv)))/kv));Qu(C,'maxMass',new kd(Dh(oh(Math.round(I*kv)))/kv));Qu(C,'massRange',new kd(Dh(oh(Math.round(G*kv)))/kv));O==null?Qu(C,'mfRange',(ed(),ed(),dd)):Qu(C,'mfRange',new Kd(O));Qu(C,'monoisotopicMass',new kd(Dh(oh(Math.round($*kv)))/kv));V==null?Qu(C,'referenceVersion',(ed(),ed(),dd)):Qu(C,'referenceVersion',new Kd(V));Qu(C,'jcampLink',w?Yc:Xc);v==null?Qu(C,'jcampBaseURL',(ed(),ed(),dd)):Qu(C,'jcampBaseURL',new Kd(v));Qu(C,'typedResult',bb?Yc:Xc);Qu(B,'options',C.d);u={l:0,m:0,h:0};T={l:0,m:0,h:0};g=0;h=0;try{e=new jt(O,d,c,false);if(e.g.e.length!=1){Qu(B,'error',new Kd('Number of parts not equal to 1'));return B}g=To(e.g,0).d;h=g<0?-g:g;if(g!=0){$=$*h+g*uv;Q=Q*h+g*uv;I=I*h+g*uv;G=G*h}U=Iu(To(e.g,0),$+G);if(U){k=Ud(le,hv,0,U.d.e.length,7,1);P=Ud(le,hv,0,U.d.e.length,7,1);H=Ud(le,hv,0,U.d.e.length,7,1);Eu(U,P,H);Qu(B,'bruteForceIteration',new kd(Qi(Zl(Fu(U),0))));ab=false;l=0;K=U.d.e.length;Ys((Xq(0,U.d.e.length),To(U.d,0)),0,$,P[0],H[0],G);while(!ab){if(qh(u,{l:3511296,m:476,h:0})){throw new Kt('Iteration number is over the current maximum of: 2000000000')}if(k[l]>=Q&&k[l]<=I){cb=ju(U,m);if(!db||!cb||cb.d>=R&&cb.d<=L&&(!t||cb.d==ie(cb.d))){T=kh(T,{l:1,m:0,h:0});if(!S){if(Z.n.g>=J){if(tj(Co(hr(Z.n)).d)>tj(k[l]-$)){Ym(xo(Z.n));_r(Z,new Ku(k[l]-$,k[l],cb,Hu(U,c)))}}else{_r(Z,new Ku(k[l]-$,k[l],cb,Hu(U,c)))}}}}while(l<K&&l>=0){u=kh(u,{l:1,m:0,h:0});j=(Xq(l,U.d.e.length),To(U.d,l));if(j.e<j.f){++j.e;l==0?(k[0]=j.d.j*j.e):(k[l]=k[l-1]+j.d.j*j.e);if(l<K-1){++l;Ys((Xq(l,U.d.e.length),To(U.d,l)),k[l-1],$,P[l],H[l],G)}else{break}}else{--l}}l<0&&(ab=true)}}Qu(B,'realIteration',new kd(Dh(Ch(u,{l:1,m:0,h:0}))));Qu(B,'numberResults',new kd(Dh(T)));Qu(B,'charge',new kd(g))}catch(a){a=Jg(a);if(be(a,4)){n=a;Su(B,'error',qb(n)+'\\r'+(vi(Fg),Fg.q+'@'+pj(Pb(C),16)))}else throw Ig(a)}F=new Nu;i='';g!=0&&(g>0?(i='(+'+g+')'):(i='('+g+')'));for(Y=Ho(new Io(Z.n));Hn(Y.d.d);){X=Mo(Y);D=new Tu;if(g==0){q=Dh(oh(Bj(X.d*kv)))/kv;p=Dh(oh(Bj(X.f*kv)))/kv}else{q=Dh(oh(Bj(X.d/h*kv)))/kv;p=Dh(oh(Bj((X.f-g*uv)/h*kv)))/kv}Qu(D,'error',new kd(q));Qu(D,'em',new kd(p));Qu(D,'ppm',new kd(Dh(oh(Math.round(q/p*kv)))/kv*jv));Su(D,'info',X.e+i);try{A=v+X.e+'&resolution='+W;if(f){A+='&gaussianWidth='+s;A+='&gaussianResolution='+r}if(bb){M=new Tu;Qu(M,'type',new Kd('mf'));Su(M,'value',ht(new it(X.e+i,d,c)));Qu(D,'mf',M.d);if(w){N=new Tu;Qu(N,'type',new Kd('jcamp'));A==null?Qu(N,'url',(ed(),ed(),dd)):Qu(N,'url',new Kd(A));Qu(D,'jcamp',N.d)}}else{Su(D,'mf',ht(new it(X.e+i,d,c)));w&&(A==null?Qu(D,'jcampURL',(ed(),ed(),dd)):Qu(D,'jcampURL',new Kd(A)))}}catch(a){a=Jg(a);if(be(a,4)){o=a;Su(D,'mf',qb(o))}else throw Ig(a)}try{Qu(D,'unsat',new kd(Dh(oh(Bj(X.g.d*kv)))/kv))}catch(a){a=Jg(a);if(!be(a,7))throw Ig(a)}Mu(F,D.d)}Qu(B,'results',F.d);return B}\nfunction Jt(){Jt=Ng;var b,c,d,e,f,g,h,i,j,k,l,m;Ht=new Bp;e=new Bp;k=Sj('1\\tH\\tHydrogen\\t1.0079407538967635\\n2\\tHe\\tHelium\\t4.002601932146926\\n3\\tLi\\tLithium\\t6.940037632200444\\n4\\tBe\\tBeryllium\\t9.01218224\\n5\\tB\\tBoron\\t10.8110281284\\n6\\tC\\tCarbon\\t12.010735896764565\\n7\\tN\\tNitrogen\\t14.006703211872013\\n8\\tO\\tOxygen\\t15.99940492727602\\n9\\tF\\tFluorine\\t18.998403227\\n10\\tNe\\tNeon\\t20.180046379828486\\n11\\tNa\\tSodium\\t22.989769280929\\n12\\tMg\\tMagnesium\\t24.305051612756515\\n13\\tAl\\tAluminium\\t26.9815386312\\n14\\tSi\\tSilicon\\t28.085498706539465\\n15\\tP\\tPhosphorus\\t30.973761632000002\\n16\\tS\\tSulfur\\t32.0647872364133\\n17\\tCl\\tChlorine\\t35.4529375824264\\n18\\tAr\\tArgon\\t39.947676713373\\n19\\tK\\tPotassium\\t39.0983011264695\\n20\\tCa\\tCalcium\\t40.078022655762524\\n21\\tSc\\tScandium\\t44.95591199\\n22\\tTi\\tTitanium\\t47.86674933516\\n23\\tV\\tVanadium\\t50.9414675085\\n24\\tCr\\tChromium\\t51.99613314762095\\n25\\tMn\\tManganese\\t54.93804517\\n26\\tFe\\tIron\\t55.8451456935552\\n27\\tCo\\tCobalt\\t58.93319506999999\\n28\\tNi\\tNickel\\t58.69335163208455\\n29\\tCu\\tCopper\\t63.546039795084994\\n30\\tZn\\tZinc\\t65.40872812701322\\n31\\tGa\\tGallium\\t69.72306563428617\\n32\\tGe\\tGermanium\\t72.63984326005341\\n33\\tAs\\tArsenic\\t74.92159652\\n34\\tSe\\tSelenium\\t78.9593882599375\\n35\\tBr\\tBromine\\t79.9035279923569\\n36\\tKr\\tKrypton\\t83.7980066431168\\n37\\tRb\\tRubidium\\t85.46766359470149\\n38\\tSr\\tStrontium\\t87.6166441185128\\n39\\tY\\tYttrium\\t88.905848327\\n40\\tZr\\tZirconium\\t91.22364763203382\\n41\\tNb\\tNiobium\\t92.90637812599999\\n42\\tMo\\tMolybdenum\\t95.93759212713759\\n43\\tTc\\tTechnetium\\t98.0\\n44\\tRu\\tRuthenium\\t101.0649455723334\\n45\\tRh\\tRhodium\\t102.90550430000002\\n46\\tPd\\tPalladium\\t106.41532914746399\\n47\\tAg\\tSilver\\t107.868151248228\\n48\\tCd\\tCadmium\\t112.41155226203729\\n49\\tIn\\tIndium\\t114.81808621342\\n50\\tSn\\tTin\\t118.71010849931781\\n51\\tSb\\tAntimony\\t121.75978615571421\\n52\\tTe\\tTellurium\\t127.60312786587177\\n53\\tI\\tIodine\\t126.9044734\\n54\\tXe\\tXenon\\t131.29276070673757\\n55\\tCs\\tCaesium\\t132.90545193324\\n56\\tBa\\tBarium\\t137.3268918829641\\n57\\tLa\\tLanthanum\\t138.90545400916656\\n58\\tCe\\tCerium\\t140.11572627079408\\n59\\tPr\\tPraseodymium\\t140.907652826\\n60\\tNd\\tNeodymium\\t144.236131428275\\n61\\tPm\\tPromethium\\t145.0\\n62\\tSm\\tSamarium\\t150.3663485610868\\n63\\tEu\\tEuropium\\t151.96437050019\\n64\\tGd\\tGadolinium\\t157.25212224243995\\n65\\tTb\\tTerbium\\t158.925346827\\n66\\tDy\\tDysprosium\\t162.49946572489424\\n67\\tHo\\tHolmium\\t164.930322127\\n68\\tEr\\tErbium\\t167.25907628559352\\n69\\tTm\\tThulium\\t168.934213327\\n70\\tYb\\tYtterbium\\t173.0376956147714\\n71\\tLu\\tLutetium\\t174.96672140854997\\n72\\tHf\\tHafnium\\t178.4849721651158\\n73\\tTa\\tTantalum\\t180.9478757552806\\n74\\tW\\tTungsten\\t183.8417781725967\\n75\\tRe\\tRhenium\\t186.206706624852\\n76\\tOs\\tOsmium\\t190.2248630659075\\n77\\tIr\\tIridium\\t192.2160564328\\n78\\tPt\\tPlatinum\\t195.077807984934\\n79\\tAu\\tGold\\t196.96656876\\n80\\tHg\\tMercury\\t200.599166666798\\n81\\tTl\\tThallium\\t204.38341252384\\n82\\tPb\\tLead\\t207.21690767600003\\n83\\tBi\\tBismuth\\t208.98039871599997\\n84\\tPo\\tPolonium\\t209.0\\n85\\tAt\\tAstatine\\t210.0\\n86\\tRn\\tRadon\\t222.0\\n87\\tFr\\tFrancium\\t223.0\\n88\\tRa\\tRadium\\t226.0\\n89\\tAc\\tActinium\\t227.0\\n90\\tTh\\tThorium\\t232.038055321\\n91\\tPa\\tProtactinium\\t231.035884024\\n92\\tU\\tUranium\\t238.02891028165737\\n93\\tNp\\tNeptunium\\t237.0\\n94\\tPu\\tPlutonium\\t244.0\\n95\\tAm\\tAmericium\\t0.0\\n96\\tCm\\tCurium\\t0.0\\n97\\tBk\\tBerkelium\\t0.0\\n98\\tCf\\tCalifornium\\t0.0\\n99\\tEs\\tEinsteinium\\t0.0\\n100\\tFm\\tFermium\\t0.0\\n101\\tMd\\tMendelevium\\t0.0\\n102\\tNo\\tNobelium\\t0.0\\n103\\tLr\\tLawrencium\\t0.0\\n104\\tRf\\tRutherfordium\\t0.0\\n105\\tDb\\tDubnium\\t0.0\\n106\\tSg\\tSeaborgium\\t0.0\\n107\\tBh\\tBohrium\\t0.0\\n108\\tHs\\tHassium\\t0.0\\n109\\tMt\\tMeitnerium\\t0.0\\n110\\tDs\\tDarmstadtium\\t0.0\\n111\\tRg\\tRoentgenium\\t0.0\\n112\\tCn\\tCopernicium\\t0.0\\n113\\tUut\\tUnuntrium\\t0.0\\n114\\tUuq\\t\\t0.0\\n115\\tUup\\tUnunpentium\\t0.0\\n116\\tUuh\\t\\t0.0\\n117\\tUus\\tUnunseptium\\t0.0','[\\r\\n]+',0);for(g=0;g<k.length;g++){m=Sj(k[g],'\\t',0);c=new Rs(Qi(m[3]),Vj(m[1]),m[2],Ri(m[0]));kn(Ht,c.n,c);kn(e,m[0],c)}k=Sj('1\\t1.007825032071\\t99.9885\\t1\\n2\\t2.01410177784\\t0.0115\\t1\\n3\\t3.016049277725\\t0\\t1\\n4\\t3.016029319126\\t0.00013\\t2\\n5\\t4.002603254156\\t99.99987\\t2\\n6\\t6.01512279516\\t7.59\\t3\\n7\\t7.016004558\\t92.41\\t3\\n8\\t9.01218224\\t100\\t4\\n9\\t10.01293704\\t19.9\\t5\\n10\\t11.00930544\\t80.1\\t5\\n11\\t12.0\\t98.93\\t6\\n12\\t13.00335483781\\t1.07\\t6\\n13\\t14.0032419894\\t0\\t6\\n14\\t14.00307400486\\t99.636\\t7\\n15\\t15.00010889827\\t0.364\\t7\\n17\\t16.9991317012\\t0.038\\t8\\n16\\t15.9949146195616\\t99.757\\t8\\n18\\t17.99916107\\t0.205\\t8\\n19\\t18.998403227\\t100\\t9\\n21\\t20.993846684\\t0.27\\t10\\n20\\t19.992440175419\\t90.48\\t10\\n22\\t21.99138511419\\t9.25\\t10\\n23\\t22.989769280929\\t100\\t11\\n25\\t24.985836923\\t10\\t12\\n24\\t23.98504170014\\t78.99\\t12\\n26\\t25.9825929293\\t11.01\\t12\\n27\\t26.9815386312\\t100\\t13\\n29\\t28.97649470022\\t4.685\\t14\\n28\\t27.976926532519\\t92.223\\t14\\n30\\t29.973770173\\t3.092\\t14\\n31\\t30.973761632\\t100\\t15\\n34\\t33.9678669012\\t4.25\\t16\\n35\\t35.967080762\\t0.01\\t16\\n32\\t31.9720710015\\t94.99\\t16\\n33\\t32.9714587615\\t0.75\\t16\\n36\\t34.968852684\\t75.76\\t17\\n37\\t36.965902595\\t24.24\\t17\\n38\\t35.96754510629\\t0.3365\\t18\\n39\\t37.96273244\\t0.0632\\t18\\n40\\t39.962383122529\\t99.6003\\t18\\n42\\t39.9639984821\\t0.0117\\t19\\n43\\t40.9618257621\\t6.7302\\t19\\n41\\t38.963706682\\t93.2581\\t19\\n49\\t47.9525344\\t0.187\\t20\\n48\\t45.953692624\\t0.004\\t20\\n46\\t42.95876663\\t0.135\\t20\\n47\\t43.95548184\\t2.086\\t20\\n44\\t39.9625909822\\t96.941\\t20\\n45\\t41.9586180127\\t0.647\\t20\\n50\\t44.95591199\\t100\\t21\\n51\\t45.95263169\\t8.25\\t22\\n55\\t49.94479129\\t5.18\\t22\\n54\\t48.94787009\\t5.41\\t22\\n53\\t47.94794639\\t73.72\\t22\\n52\\t46.95176319\\t7.44\\t22\\n57\\t50.943959511\\t99.75\\t23\\n56\\t49.947158511\\t0.25\\t23\\n59\\t51.94050758\\t83.789\\t24\\n58\\t49.946044211\\t4.345\\t24\\n61\\t53.93888048\\t2.365\\t24\\n60\\t52.94064948\\t9.501\\t24\\n62\\t54.93804517\\t100\\t25\\n64\\t55.93493757\\t91.754\\t26\\n65\\t56.93539407\\t2.119\\t26\\n66\\t57.93327568\\t0.282\\t26\\n63\\t53.93961057\\t5.845\\t26\\n67\\t58.93319507\\t100\\t27\\n68\\t57.93534297\\t68.0769\\t28\\n69\\t59.93078647\\t26.2231\\t28\\n70\\t60.93105607\\t1.1399\\t28\\n71\\t61.92834516\\t3.6345\\t28\\n72\\t63.92796607\\t0.9256\\t28\\n73\\t62.92959756\\t69.15\\t29\\n74\\t64.92778957\\t30.85\\t29\\n76\\t65.92603341\\t27.975\\t30\\n77\\t66.92712731\\t4.102\\t30\\n78\\t67.92484421\\t19.024\\t30\\n79\\t69.925319321\\t0.631\\t30\\n75\\t63.92914227\\t48.268\\t30\\n81\\t70.924701311\\t39.892\\t31\\n80\\t68.925573613\\t60.108\\t31\\n85\\t73.921177818\\t36.72\\t32\\n84\\t72.923458918\\t7.76\\t32\\n86\\t75.921402618\\t7.83\\t32\\n83\\t71.922075818\\t27.31\\t32\\n82\\t69.924247411\\t20.38\\t32\\n87\\t74.92159652\\t100\\t33\\n93\\t81.916699422\\t8.73\\t34\\n92\\t79.916521321\\t49.61\\t34\\n89\\t75.919213618\\t9.37\\t34\\n88\\t73.922476418\\t0.89\\t34\\n91\\t77.917309118\\t23.77\\t34\\n90\\t76.919914018\\t7.63\\t34\\n95\\t80.916290621\\t49.31\\t35\\n94\\t78.918337122\\t50.69\\t35\\n100\\t83.9115073\\t56.987\\t36\\n101\\t85.9106107311\\t17.279\\t36\\n98\\t81.913483619\\t11.593\\t36\\n99\\t82.9141363\\t11.5\\t36\\n96\\t77.920364812\\t0.355\\t36\\n97\\t79.916379016\\t2.286\\t36\\n102\\t84.91178973812\\t72.17\\t37\\n103\\t86.90918052713\\t27.83\\t37\\n106\\t86.908877112\\t7\\t38\\n107\\t87.905612112\\t82.58\\t38\\n104\\t83.9134253\\t0.56\\t38\\n105\\t85.909260212\\t9.86\\t38\\n108\\t88.905848327\\t100\\t39\\n113\\t95.90827343\\t2.8\\t40\\n112\\t93.906315226\\t17.38\\t40\\n110\\t90.905645825\\t11.22\\t40\\n111\\t91.905040825\\t17.15\\t40\\n109\\t89.904704425\\t51.45\\t40\\n114\\t92.906378126\\t100\\t41\\n119\\t96.906021521\\t9.56\\t42\\n118\\t95.904679521\\t16.68\\t42\\n117\\t94.905842121\\t15.9\\t42\\n116\\t93.905088321\\t9.23\\t42\\n115\\t91.9068114\\t14.77\\t42\\n121\\t99.9074776\\t9.67\\t42\\n120\\t97.905408221\\t24.19\\t42\\n124\\t98.906254721\\t0\\t43\\n123\\t97.9072164\\t0\\t43\\n122\\t96.9063655\\t0\\t43\\n129\\t100.905582122\\t17.06\\t44\\n127\\t98.905939322\\t12.76\\t44\\n128\\t99.904219522\\t12.6\\t44\\n126\\t97.9052877\\t1.87\\t44\\n131\\t103.9054333\\t18.62\\t44\\n125\\t95.9075988\\t5.54\\t44\\n130\\t101.904349322\\t31.55\\t44\\n132\\t102.9055043\\t100\\t45\\n137\\t107.9038924\\t26.46\\t46\\n136\\t105.9034864\\t27.33\\t46\\n138\\t109.90515312\\t11.72\\t46\\n133\\t101.9056093\\t1.02\\t46\\n135\\t104.9050854\\t22.33\\t46\\n134\\t103.9040364\\t11.14\\t46\\n139\\t106.9050975\\t51.839\\t47\\n140\\t108.9047523\\t48.161\\t47\\n141\\t105.9064596\\t1.25\\t48\\n143\\t109.903002129\\t12.49\\t48\\n142\\t107.9041846\\t0.89\\t48\\n144\\t110.904178129\\t12.8\\t48\\n145\\t111.902757829\\t24.13\\t48\\n146\\t112.904401729\\t12.22\\t48\\n147\\t113.903358529\\t28.73\\t48\\n148\\t115.9047563\\t7.49\\t48\\n149\\t112.9040583\\t4.29\\t49\\n150\\t114.9038785\\t95.71\\t49\\n152\\t113.9027793\\t0.66\\t50\\n153\\t114.9033423\\t0.34\\t50\\n154\\t115.9017413\\t14.54\\t50\\n155\\t116.9029523\\t7.68\\t50\\n156\\t117.9016033\\t24.22\\t50\\n157\\t118.9033083\\t8.59\\t50\\n158\\t119.902194727\\t32.58\\t50\\n159\\t121.903439029\\t4.63\\t50\\n160\\t123.905273915\\t5.79\\t50\\n151\\t111.9048185\\t0.97\\t50\\n162\\t122.904214022\\t42.79\\t51\\n161\\t120.903815724\\t57.21\\t51\\n170\\t129.906224421\\t34.08\\t52\\n169\\t127.904463119\\t31.74\\t52\\n168\\t125.903311716\\t18.84\\t52\\n163\\t119.9040201\\t0.09\\t52\\n167\\t124.904430716\\t7.07\\t52\\n166\\t123.902817916\\t4.74\\t52\\n165\\t122.904270016\\t0.89\\t52\\n164\\t121.903043916\\t2.55\\t52\\n171\\t126.9044734\\t100\\t53\\n175\\t128.90477948\\t26.4006\\t54\\n174\\t127.903531315\\t1.9102\\t54\\n173\\t125.9042747\\t0.089\\t54\\n172\\t123.90589302\\t0.0952\\t54\\n178\\t131.90415351\\t26.9086\\t54\\n179\\t133.90539459\\t10.4357\\t54\\n176\\t129.90350808\\t4.071\\t54\\n177\\t130.90508241\\t21.2324\\t54\\n180\\t135.9072198\\t8.8573\\t54\\n181\\t132.90545193324\\t100\\t55\\n186\\t135.90457594\\t7.854\\t56\\n187\\t136.90582745\\t11.232\\t56\\n184\\t133.90450844\\t2.417\\t56\\n185\\t134.90568864\\t6.592\\t56\\n188\\t137.90524725\\t71.698\\t56\\n182\\t129.90632083\\t0.106\\t56\\n183\\t131.905061311\\t0.101\\t56\\n190\\t138.906353326\\t99.91\\t57\\n189\\t137.9071124\\t0.09\\t57\\n191\\t135.90717214\\t0.185\\t58\\n193\\t139.905438726\\t88.45\\t58\\n192\\t137.90599111\\t0.251\\t58\\n194\\t141.9092443\\t11.114\\t58\\n195\\t140.907652826\\t100\\t59\\n201\\t147.9168933\\t5.7\\t60\\n200\\t145.913116925\\t17.2\\t60\\n202\\t149.9208913\\t5.6\\t60\\n197\\t142.909814325\\t12.2\\t60\\n196\\t141.907723325\\t27.2\\t60\\n199\\t144.912573625\\t8.3\\t60\\n198\\t143.910087325\\t23.8\\t60\\n204\\t146.915138526\\t0\\t61\\n203\\t144.9127493\\t0\\t61\\n205\\t143.9119993\\t3.07\\t62\\n207\\t147.914822726\\t11.24\\t62\\n206\\t146.914897926\\t14.99\\t62\\n208\\t148.917184726\\t13.82\\t62\\n209\\t149.917275526\\t7.38\\t62\\n210\\t151.919732427\\t26.75\\t62\\n211\\t153.922209327\\t22.75\\t62\\n212\\t150.919850226\\t47.81\\t63\\n213\\t152.921230326\\t52.19\\t63\\n220\\t159.927054127\\t21.86\\t64\\n216\\t154.922622027\\t14.8\\t64\\n217\\t155.922122727\\t20.47\\t64\\n218\\t156.923960127\\t15.65\\t64\\n219\\t157.924103927\\t24.84\\t64\\n214\\t151.919791027\\t0.2\\t64\\n215\\t153.920865627\\t2.18\\t64\\n221\\t158.925346827\\t100\\t65\\n222\\t155.9242837\\t0.056\\t66\\n223\\t157.9244094\\t0.095\\t66\\n228\\t163.929174827\\t28.26\\t66\\n227\\t162.928731227\\t24.896\\t66\\n226\\t161.926798427\\t25.475\\t66\\n225\\t160.926933427\\t18.889\\t66\\n224\\t159.925197527\\t2.329\\t66\\n229\\t164.930322127\\t100\\t67\\n235\\t169.93546433\\t14.91\\t68\\n234\\t167.932370227\\t26.978\\t68\\n233\\t166.932048227\\t22.869\\t68\\n232\\t165.930293127\\t33.503\\t68\\n231\\t163.9292003\\t1.601\\t68\\n230\\t161.9287784\\t0.139\\t68\\n236\\t168.934213327\\t100\\t69\\n239\\t170.936325826\\t14.28\\t70\\n238\\t169.934761826\\t3.04\\t70\\n237\\t167.9338975\\t0.13\\t70\\n242\\t173.938862126\\t31.83\\t70\\n243\\t175.942571728\\t12.76\\t70\\n240\\t171.936381526\\t21.83\\t70\\n241\\t172.938210826\\t16.13\\t70\\n244\\t174.940771823\\t97.41\\t71\\n245\\t175.942686323\\t2.59\\t71\\n250\\t178.945816123\\t13.62\\t72\\n251\\t179.946550023\\t35.08\\t72\\n248\\t176.943220723\\t18.6\\t72\\n249\\t177.943698823\\t27.28\\t72\\n246\\t173.9400463\\t0.16\\t72\\n247\\t175.941408624\\t5.26\\t72\\n252\\t179.947464824\\t0.012\\t73\\n253\\t180.947995819\\t99.988\\t73\\n258\\t185.954364119\\t28.43\\t74\\n254\\t179.9467044\\t0.12\\t74\\n255\\t181.94820429\\t26.5\\t74\\n256\\t182.95022309\\t14.31\\t74\\n257\\t183.95093129\\t30.64\\t74\\n259\\t184.952955013\\t37.4\\t75\\n260\\t186.955753115\\t62.6\\t75\\n262\\t185.953838215\\t1.59\\t76\\n263\\t186.955750515\\t1.96\\t76\\n261\\t183.952489114\\t0.02\\t76\\n266\\t189.958447016\\t26.26\\t76\\n267\\t191.961480727\\t40.78\\t76\\n264\\t187.955838215\\t13.24\\t76\\n265\\t188.958147516\\t16.15\\t76\\n268\\t190.960594018\\t37.3\\t77\\n269\\t192.962926418\\t62.7\\t77\\n275\\t197.9678933\\t7.163\\t78\\n274\\t195.96495159\\t25.242\\t78\\n273\\t194.96479119\\t33.832\\t78\\n272\\t193.96268039\\t32.967\\t78\\n270\\t189.9599326\\t0.014\\t78\\n271\\t191.961038027\\t0.782\\t78\\n276\\t196.96656876\\t100\\t79\\n279\\t198.96827994\\t16.87\\t80\\n278\\t197.96676904\\t9.97\\t80\\n277\\t195.9658333\\t0.15\\t80\\n283\\t203.97349394\\t6.87\\t80\\n282\\t201.97064306\\t29.86\\t80\\n281\\t200.97030236\\t13.18\\t80\\n280\\t199.96832604\\t23.1\\t80\\n285\\t204.974427514\\t70.48\\t81\\n284\\t202.972344214\\t29.52\\t81\\n288\\t206.975896913\\t22.1\\t82\\n289\\t207.976652113\\t52.4\\t82\\n287\\t205.974465313\\t24.1\\t82\\n286\\t203.973043613\\t1.4\\t82\\n290\\t208.980398716\\t100\\t83\\n291\\t208.98243042\\t0\\t84\\n292\\t209.982873713\\t0\\t84\\n293\\t209.9871488\\t0\\t85\\n294\\t210.98749633\\t0\\t85\\n295\\t210.9906017\\t0\\t86\\n296\\t220.011394024\\t0\\t86\\n297\\t222.017577725\\t0\\t86\\n298\\t223.019735926\\t0\\t87\\n299\\t223.018502227\\t0\\t88\\n300\\t224.020211824\\t0\\t88\\n301\\t226.025409825\\t0\\t88\\n302\\t228.031070326\\t0\\t88\\n303\\t227.027752126\\t0\\t89\\n305\\t232.038055321\\t100\\t90\\n304\\t230.033133819\\t0\\t90\\n306\\t231.035884024\\t100\\t91\\n307\\t233.039635229\\t0\\t92\\n309\\t235.04392992\\t0.7204\\t92\\n308\\t234.04095212\\t0.0054\\t92\\n311\\t238.05078822\\t99.2742\\t92\\n310\\t236.04556802\\t0\\t92\\n313\\t237.04817342\\t0\\t93\\n312\\t236.0465705\\t0\\t93\\n315\\t239.05216342\\t0\\t94\\n314\\t238.04955992\\t0\\t94\\n317\\t241.05685152\\t0\\t94\\n316\\t240.05381352\\t0\\t94\\n319\\t244.0642045\\t0\\t94\\n318\\t242.05874262\\t0\\t94\\n320\\t241.05682912\\t0\\t95\\n321\\t243.061381125\\t0\\t95\\n326\\t247.0703545\\t0\\t96\\n327\\t248.0723495\\t0\\t96\\n324\\t245.065491222\\t0\\t96\\n325\\t246.067223722\\t0\\t96\\n322\\t243.061389122\\t0\\t96\\n323\\t244.06275262\\t0\\t96\\n328\\t247.0703076\\t0\\t97\\n329\\t249.074986728\\t0\\t97\\n332\\t251.0795875\\t0\\t98\\n333\\t252.0816265\\t0\\t98\\n330\\t249.074853524\\t0\\t98\\n331\\t250.076406122\\t0\\t98\\n334\\t252.0829805\\t0\\t99\\n335\\t257.0951057\\t0\\t100\\n337\\t260.1036534\\t0\\t101\\n336\\t258.0984315\\t0\\t101\\n338\\t259.1010311\\t0\\t102\\n339\\t262.1096322\\t0\\t103\\n340\\t265.1167046\\t0\\t104\\n341\\t268.1254557\\t0\\t105\\n342\\t271.133477\\t0\\t106\\n343\\t272.1380365\\t0\\t107\\n344\\t270.1346531\\t0\\t108\\n345\\t276.1511673\\t0\\t109\\n346\\t281.1620678\\t0\\t110\\n347\\t280.164478\\t0\\t111\\n348\\t285.1741178\\t0\\t112\\n349\\t284.1780886\\t0\\t113\\n350\\t289.1872879\\t0\\t114\\n351\\t288.1924992\\t0\\t115\\n352\\t292.20755101\\t0\\t117','[\\r\\n]+',0);for(h=0;h<k.length;h++){m=Sj(k[h],'\\t',0);c=gn(e,m[3]);i=Qi(m[1]);j=Qi(m[2]);b=new Et(ie(i+0.5),i,j,c.n);jn(c.e,new hj(b.f),b)}for(d=Xn(new Yn(Ht));wn(d.d);){c=ao(d);Ms(c);if(c.e.e==0){l=new Et(ie(c.f+0.5),c.f,100,c.n);jn(c.e,new hj(l.f),l)}}It=new Bp;k=Sj(\"1\\tAbu\\t2-Aminobutyric acid diradical\\tC4H7NO\\r\\n2\\tAcet\\tAcetyl\\tC2H3O\\r\\n3\\tAcm\\tAcetamidomethyl\\tC3H6NO\\r\\n4\\tAdao\\tAdamantyloxy\\tC10H15O\\r\\n5\\tAib\\talpha-Aminoisobutyric acid diradical\\tC4H7NO\\r\\n6\\tAla\\tAlainine diradical\\tC3H5NO\\r\\n7\\tArg\\tArginine diradical\\tC6H12N4O\\r\\n8\\tArgp\\tArginine triradical\\tC6H11N4O\\r\\n9\\tAsn\\tAsparagine diradical\\tC4H6N2O2\\r\\n10\\tAsnp\\tAsparagine triradical\\tC4H5N2O2\\r\\n11\\tAsp\\tAspartic acid diradical\\tC4H5NO3\\r\\n12\\tAspp\\tAspartic acid triradical\\tC4H4NO3\\r\\n13\\tAsu\\talpha-Aminosuberic acid diradical\\tC8H13NO3\\r\\n14\\tAsup\\talpha-Aminosuberic acid triradical\\tC8H12NO3\\r\\n15\\tBoc\\tt-Butoxycarbonyl\\tC5H9O2\\r\\n16\\tBom\\tBenzyloxymethyl\\tC8H9O\\r\\n17\\tBrz\\t2-Bromobenzyloxycarbonyl\\tC8H6BrO2\\r\\n18\\tBu\\tButyl\\tC4H9\\r\\n19\\tBum\\tt-Butoxymethyl\\tC5H11O\\r\\n20\\tBz\\tBenzoyl\\tC7H5O\\r\\n21\\tBzl\\tBenzyl\\tC7H7\\r\\n22\\tBn\\tBenzyl\\tC7H7\\r\\n23\\tBzlo\\tBenzyloxy\\tC7H7O\\r\\n24\\tCha\\tbeta-Cyclohexylalanine diradical\\tC9H15NO\\r\\n25\\tChxo\\tCyclohexyloxy\\tC6H11O\\r\\n26\\tCit\\tCitrulline diradical\\tC6H11N3O2\\r\\n27\\tCitp\\tCitrulline triradical\\tC6H10N3O2\\r\\n28\\tClz\\t2-Chlorobenzyloxycarbonyl\\tC8H6ClO2\\r\\n29\\tCp\\tCyclopentadienyl\\tC5H5\\r\\n30\\tCys\\tCysteine diradical\\tC3H5NOS\\r\\n31\\tCysp\\tCysteine triradical\\tC3H4NOS\\r\\n32\\tD\\tDeuterium\\t[2H]\\r\\n33\\tDde\\tDde\\tC10H13O2\\r\\n34\\tDnp\\t2,4-Dinitrophenyl\\tC6H3N2O4\\r\\n35\\tEt\\tEthyl\\tC2H5\\r\\n36\\tFmoc\\tFluorenylmethoxycarbonyl\\tC15H11O2\\r\\n37\\tFor\\tFormyl\\tCHO\\r\\n38\\tGln\\tGlutamine diradical\\tC5H8N2O2\\r\\n39\\tGlnp\\tGlutamine triradical\\tC5H7N2O2\\r\\n40\\tGlp\\tPyroglutamine\\tC5H5NO2\\r\\n41\\tGlu\\tGlutamic acid diradical\\tC5H7NO3\\r\\n42\\tGlup\\tGlutamic acid triradical\\tC5H6NO3\\r\\n43\\tGly\\tGlycine diradical\\tC2H3NO\\r\\n44\\tHci\\tHomocitrulline diradical\\tC7H13N3O2\\r\\n45\\tHcip\\tHomocitrulline triradical\\tC7H12N3O2\\r\\n46\\tHis\\tHistidine diradical\\tC6H7N3O\\r\\n47\\tHisp\\tHistidine triradical\\tC6H6N3O\\r\\n48\\tHser\\tHomoserine diradical\\tC4H7NO2\\r\\n49\\tHserp\\tHomoserine triradical\\tC4H6NO2\\r\\n50\\tHyp\\tHydroxyproline diradical\\tC5H7NO2\\r\\n51\\tHypp\\tHydroxyproline triradical\\tC5H6NO2\\r\\n52\\tIle\\tIsoleucine diradical\\tC6H11NO\\r\\n53\\tIvdde\\t1-[4,4-dimethyl-2,6-dioxocyclohexylidene)3-methylb\\tC14H21O2\\r\\n54\\tLeu\\tLeucine diradical\\tC6H11NO\\r\\n55\\tLys\\tLysine diradical\\tC6H12N2O\\r\\n56\\tLysp\\tLysine triradical\\tC6H11N2O\\r\\n57\\tMbh\\t4,4'-Dimethoxybenzhydryl\\tC15H15O2\\r\\n58\\tMe\\tMethyl\\tCH3\\r\\n59\\tMebzl\\t4-Methylbenzyl\\tC8H9\\r\\n60\\tMeobzl\\t4-Methoxybenzyl1-[4,4-dimethyl-2,6-dioxocyclohexyl\\tC8H9O\\r\\n61\\tMet\\tMethionine diradical\\tC5H9NOS\\r\\n62\\tMmt\\t4-Methoxytrityl\\tC20H17O\\r\\n63\\tMtc\\t2,2,5,7,8-pentamethylchroman-6-sulphonyl\\tC14H19O3S\\r\\n64\\tMtr\\t4-Methoxy-2,3,6-trimethylbenzenesulphonyl\\tC10H13O3S\\r\\n65\\tMts\\tMesitylene-2-sulphonyl\\tC9H11O2S\\r\\n66\\tMtt\\t4-Methyltrityl\\tC20H17\\r\\n67\\tNle\\tNorleucine diradical\\tC6H11NO\\r\\n68\\tNpys\\t3-Nitro-2-pyridinesulphenyl\\tC5H3N2O2S\\r\\n69\\tNva\\tNorvaline diradical\\tC5H9NO\\r\\n70\\tOdmab\\tOdmab\\tC20H26NO3\\r\\n71\\tOrn\\tOrnithine diradical\\tC5H10N2O\\r\\n72\\tOrnp\\tOrnithine triradical\\tC5H9N2O\\r\\n73\\tPbf\\t2,2,4,6,7-pentamethyldihydrobenzofurane-5-sulfonyl\\tC13H17O3S\\r\\n74\\tPen\\tPenicillamine diradical\\tC5H9NOS\\r\\n75\\tPenp\\tPenicillamine triradical\\tC5H8NOS\\r\\n76\\tPh\\tPhenyl\\tC6H5\\r\\n77\\tPhe\\tPhenylalanine diradical\\tC9H9NO\\r\\n78\\tPhepcl\\t4-Chlorophenylalanine diradical\\tC9H8ClNO\\r\\n79\\tPhg\\tPhenylglycine\\tC8H7NO\\r\\n80\\tPmc\\t2,2,5,7,8-Pentamethylchroman-6-sulphonyl\\tC14H19O3S\\r\\n81\\tPro\\tProline diradical\\tC5H7NO\\r\\n82\\tPyr\\tPyroglutamine\\tC5H5NO2\\r\\n83\\tSar\\tSarcosine diradical\\tC3H5NO\\r\\n84\\tSer\\tSerine diradical\\tC3H5NO2\\r\\n85\\tSerp\\tSerine triradical\\tC3H4NO2\\r\\n86\\tSta\\tStatine diradical\\tC8H15NO2\\r\\n87\\tStap\\tStatine triradical\\tC8H14NO2\\r\\n88\\tTacm\\tTrimethylacetamidomethyl\\tC6H12NO\\r\\n89\\tTbdms\\tt-Butyldimethylsilyl\\tC6H15Si\\r\\n90\\tTbu\\tt-Butyl\\tC4H9\\r\\n91\\tTbuo\\tt-Butoxy\\tC4H9O\\r\\n92\\tTbuthio\\tt-Butylthio\\tC4H9S\\r\\n93\\tTfa\\tTrifluoroacetyl\\tC2F3O\\r\\n94\\tThi\\tbeta-(2-thenyl)alanine\\tC7H7NOS\\r\\n95\\tThr\\tThreonine diradical\\tC4H7NO2\\r\\n96\\tThrp\\tThreonine triradical\\tC4H6NO2\\r\\n97\\tTips\\tTriisopropylsilyl\\tC9H21Si\\r\\n98\\tTms\\tTrimethylsilyl\\tC3H9Si\\r\\n99\\tTos\\tTosyl\\tC7H7O2S\\r\\n100\\tTrp\\tTryptophan diradical\\tC11H10N2O\\r\\n101\\tTrpp\\tTryptophan triradical\\tC11H9N2O\\r\\n102\\tTrt\\tTrityl\\tC19H15\\r\\n103\\tTyr\\tTyrosine diradical\\tC9H9NO2\\r\\n104\\tTyrp\\tTyrosine triradical\\tC9H8NO2\\r\\n105\\tVal\\tValine\\tC5H9NO\\r\\n106\\tValoh\\tbeta-Hydroxyvaline diradical\\tC5H9NO2\\r\\n107\\tValohp\\tbeta-Hydroxyvaline triradical\\tC5H8NO2\\r\\n108\\tXan\\tXanthyl\\tC13H9O\\r\\n109\\tZ\\tBenzyloxycarbonyl\\tC8H7O2\\r\\n110\\tT\\tTritium\\t[3H]\",'[\\r\\n]+',0);for(f=0;f<k.length;f++){m=Sj(k[f],'\\t',0);try{kn(It,m[1],new Dt(m[1],m[2],m[3],Ht,It))}catch(a){a=Jg(a);if(!be(a,4))throw Ig(a)}}}\nvar Vu=2147483647,Wu={3:1,9:1},Xu={3:1,7:1,9:1},Yu={3:1},Zu=4194303,$u=1048575,_u=524288,av=4194304,bv=17592186044416,cv=-9223372036854775808,dv=1000000000,ev=65536,fv=-2147483648,gv=65535,hv={28:1,3:1},iv=100000,jv=1000000,kv=10000000000,lv=0.3010299956639812,mv=4294967296,nv=1073741824,ov={35:1},pv={37:1,27:1},qv={3:1,51:1},rv={3:1,50:1},sv={3:1,18:1,29:1,26:1},tv=4.9E-324,uv=5.4857990946E-4;var _,Mh,Kg={},Gg=-1;Mg(1,null,{},fb);_.eQ=function gb(a){return this===a};_.gC=function ib(){return this.cZ};_.hC=function kb(){return Pb(this)};_.tS=function mb(){return eb(this)};_.toString=function(){return this.tS()};$d={3:1,116:1,18:1,2:1};Pg();var $d;Mg(68,1,{},xi);_.B=function yi(a){var b;b=new xi;b.j=4;a>1?(b.f=Fi(this,a-1)):(b.f=this);return b};_.C=function Ei(){vi(this);return this.e};_.D=function Gi(){return wi(this)};_.F=function Ii(){vi(this);return this.o};_.G=function Ki(){return (this.j&4)!=0};_.H=function Li(){return (this.j&1)!=0};_.tS=function Oi(){return ((this.j&2)!=0?'interface ':(this.j&1)!=0?'':'class ')+(vi(this),this.q)};_.j=0;_.n=0;var ui=1;var af=Ai(1),oe=Ai(0),Qe=Ai(68);Mg(9,1,Wu);_.r=function rb(){return this.k};_.tS=function sb(){return qb(this)};var hf=Ai(9);Mg(7,9,Xu);var Ue=Ai(7);Mg(10,7,Xu,vb);var bf=Ai(10);Mg(83,10,Xu);var qe=Ai(83);Mg(38,83,{38:1,3:1,7:1,9:1},zb);_.r=function Ab(){yb(this);return this.f};var wb;var ne=Ai(38);var Cb;Mg(117,1,{});var pe=Ai(117);var Gb=0,Hb=0,Ib=0,Jb=-1;Mg(138,1,{});var nf=Ai(138);Mg(139,138,{});var of=Ai(139);Mg(112,139,{},Zb);_.e={l:0,m:0,h:0};_.f=0;var Ub;var re=Ai(112);Mg(107,117,{},jc);var fc;var se=Ai(107);var mc;Mg(133,1,{});var we=Ai(133);Mg(84,133,{},sc);_.s=function tc(a,b){var c={},j;a.fnStack=[];var d=arguments.callee.caller;while(d){var e=(nc(),d.name||(d.name=qc(d.toString())));a.fnStack.push(e);var f=':'+e;var g=c[f];if(g){var h,i;for(h=0,i=g.length;h<i;h++){if(g[h]===d){return}}}(g||(c[f]=[])).push(d);d=d.caller}};_.t=function uc(a){var b,c,d,e;d=(nc(),a&&a.fnStack&&a.fnStack instanceof Array?a.fnStack:[]);c=d.length;e=Ud(cf,Yu,31,c,0,1);for(b=0;b<c;b++){e[b]=new Gj(d[b],null,-1)}return e};var te=Ai(84);Mg(134,133,{});_.s=function xc(c,d){function e(b){if(!('stack' in b)){try{throw b}catch(a){}}return b}\nvar f;typeof d=='string'?(f=e(new Error(d))):d instanceof Object&&'stack' in d?(f=d):(f=e(new Error));c.__gwt$backingJsError=f};_.u=function yc(a,b,c,d){return new Gj(b,a+'@'+d,c<0?-1:c)};\n_.t=function zc(a){var b,c,d,e,f,g,h;e=(nc(),h=a.__gwt$backingJsError,h&&h.stack?h.stack.split('\\n'):[]);f=Ud(cf,Yu,31,0,0,1);b=0;d=e.length;if(d==0){return f}g=wc(this,e[0]);Lj(g.g,'anonymous')||(f[b++]=g);for(c=1;c<d;c++){f[b++]=wc(this,e[c])}return f};var ve=Ai(134);Mg(85,134,{},Ac);_.u=function Bc(a,b,c,d){return new Gj(b,a,-1)};var ue=Ai(85);Mg(132,1,{});_.w=function Mc(){return null};var Ee=Ai(132);Mg(66,132,{66:1},Qc,Rc);_.eQ=function Sc(a){if(!be(a,66)){return false}return this.d==a.d};_.v=function Tc(){return Wc};_.hC=function Uc(){return Pb(this.d)};_.tS=function Vc(){var a,b,c;c=new wk('[');for(b=0,a=this.d.length;b<a;b++){b>0&&(c.d+=',',c);rk(c,Nc(this,b))}c.d+=']';return c.d};var xe=Ai(66);Mg(76,132,{},$c);_.v=function _c(){return bd};_.tS=function ad(){return gi(),''+this.d};_.d=false;var Xc,Yc;var ye=Ai(76);Mg(110,10,Xu,cd);var ze=Ai(110);Mg(106,132,{},fd);_.v=function gd(){return jd};_.tS=function hd(){return 'null'};var dd;var Ae=Ai(106);Mg(8,132,{8:1},kd);_.eQ=function ld(a){if(!be(a,8)){return false}return this.d==a.d};_.v=function md(){return pd};_.hC=function nd(){return ie((new Ti(this.d)).d)};_.tS=function od(){return this.d+''};_.d=0;var Be=Ai(8);Mg(54,132,{54:1},vd,wd);_.eQ=function xd(a){if(!be(a,54)){return false}return this.d==a.d};_.v=function yd(){return Bd};_.hC=function zd(){return Pb(this.d)};_.tS=function Ad(){var a,b,c,d,e,f;f=new wk('{');a=true;e=qd(this,Ud(gf,Yu,2,0,4,1));for(c=0,d=e.length;c<d;++c){b=e[c];a?(a=false):(f.d+=', ',f);sk(f,Eb(b));f.d+=':';rk(f,rd(this,b))}f.d+='}';return f.d};var Ce=Ai(54);var Cd;Mg(11,132,{11:1},Kd);_.eQ=function Ld(a){if(!be(a,11)){return false}return Lj(this.d,a.d)};_.v=function Md(){return Qd};_.hC=function Nd(){return lk(this.d)};_.w=function Od(){return this};_.tS=function Pd(){return Eb(this.d)};var De=Ai(11);var Tg;var jh;var Hh,Ih,Jh,Kh;Mg(60,9,Wu);var Te=Ai(60);Mg(17,60,Wu);var Oe=Ai(17);Mg(78,17,Wu,Wh);var Je=Ai(78);Mg(45,1,{});_.tS=function $h(){return this.d};var Ke=Ai(45);Mg(41,10,Xu,_h);var Le=Ai(41);Mg(49,10,Xu,ai,bi);var Xe=Ai(49);Mg(109,49,Xu,ci);var Me=Ai(109);Mg(43,10,Xu,di);var Ne=Ai(43);Mg(52,1,{3:1,52:1,18:1},hi);_.A=function ji(a){return ii(this.d,a.d)};_.eQ=function ki(a){return be(a,52)&&a.d==this.d};_.hC=function li(){return this.d?1231:1237};_.tS=function mi(){return ''+this.d};_.d=false;var ei,fi;var Pe=Ai(52);Mg(44,1,{3:1,44:1});var Pi;var _e=Ai(44);Mg(6,44,{3:1,18:1,6:1,44:1},Ti);_.A=function Vi(a){return Ui(this.d,a.d)};_.eQ=function Wi(a){return Si(this,a)};_.hC=function Xi(){return ie(this.d)};_.tS=function $i(){return ''+this.d};_.d=0;var Re=Ai(6);Mg(29,1,{3:1,18:1,29:1});_.A=function aj(a){return this.e-a.e};_.eQ=function bj(a){return this===a};_.hC=function cj(){return Pb(this)};_.tS=function dj(){return this.d!=null?this.d:''+this.e};_.e=0;var Se=Ai(29);Mg(56,10,Xu,ej);var Ve=Ai(56);Mg(111,10,Xu,fj);var We=Ai(111);Mg(19,44,{3:1,18:1,19:1,44:1},hj);_.A=function jj(a){return gj(this,a)};_.eQ=function kj(a){return be(a,19)&&a.d==this.d};_.hC=function lj(){return this.d};_.tS=function oj(){return ''+this.d};_.d=0;var Ye=Ai(19);var rj;Mg(59,10,Xu,Dj,Ej);var Ze=Ai(59);Mg(20,56,{3:1,7:1,20:1,9:1},Fj);var $e=Ai(20);Mg(31,1,{3:1,31:1},Gj);_.eQ=function Hj(a){var b;if(be(a,31)){b=a;return this.f==b.f&&Rq(this.g,b.g)&&Rq(this.d,b.d)&&Rq(this.e,b.e)}return false};_.hC=function Ij(){return ip(Xd(Td(af,1),Yu,1,3,[qj(this.f),this.d,this.g,this.e]))};_.tS=function Jj(){return this.d+'.'+this.g+'('+(this.e!=null?this.e:'Unknown Source')+(this.f>=0?':'+this.f:'')+')'};_.f=0;var cf=Ai(31);var gf=Ai(2);var gk,hk=0,ik;Mg(34,45,{116:1},ok,pk);var df=Ai(34);Mg(23,45,{116:1},uk,vk,wk);var ef=Ai(23);Mg(67,49,Xu,xk);var ff=Ai(67);Mg(42,10,Xu,zk,Ak);var jf=Ai(42);Mg(14,44,{3:1,18:1,44:1,14:1},Qk,Rk,Sk,Tk);_.A=function Wk(a){return Kk(this,a)};_.eQ=function Zk(a){var b;if(this===a){return true}if(be(a,14)){b=a;return b.j==this.j&&(this.d<54?b.k==this.k:ol(this.f,b.f))}return false};_.hC=function $k(){var a;if(this.e!=0){return this.e}if(this.d<54){a=oh(this.k);this.e=Eh(lh(a,{l:Zu,m:Zu,h:$u}));this.e=33*this.e+Eh(lh(Ah(a,32),{l:Zu,m:Zu,h:$u}));this.e=17*this.e+ie(this.j);return this.e}this.e=17*rl(this.f)+ie(this.j);return this.e};_.tS=function bl(){return Pk(this)};_.d=0;_.e=0;_.g=0;_.j=0;_.k=0;var Bk,Ck,Dk,Ek,Fk,Gk,Hk,Ik;var kf=Ai(14);Mg(5,44,{3:1,18:1,44:1,5:1},zl,Al,Bl,Cl,Dl,El);_.A=function Gl(a){return ll(this,a)};_.eQ=function Hl(a){return ol(this,a)};_.hC=function Jl(){return rl(this)};_.tS=function Ll(){return Zl(this,0)};_.e=-2;_.f=0;_.g=0;_.j=0;var dl,el,fl,gl,hl,il;var lf=Ai(5);var Ul,Vl;var lm,mm,nm;Mg(24,29,{3:1,18:1,29:1,24:1},Im);var zm,Am,Bm,Cm,Dm,Em,Fm,Gm;var mf=Bi(24,Jm);Mg(130,1,{});_.J=function Om(a){return Lm(this,a)};_.L=function Pm(a){var b,c,d;d=this.K();a.length<d&&(a=Sd(a,d));c=this.I();for(b=0;b<d;++b){a[b]=c.S()}a.length>d&&(a[d]=null);return a};_.tS=function Qm(){return Nm(this)};var pf=Ai(130);Mg(129,1,{50:1});_.M=function Um(a){return Rm(this,a)};_.N=function Vm(a){return !!Sm(this,a)};_.eQ=function Wm(a){var b,c,d;if(a===this){return true}if(!be(a,50)){return false}d=a;if(this.K()!=d.K()){return false}for(c=d.O().I();c.R();){b=c.S();if(!this.M(b)){return false}}return true};_.P=function Xm(a){return Zm(Sm(this,a))};_.hC=function $m(){return np(this.O())};_.K=function _m(){return this.O().K()};_.tS=function an(){var a,b,c,d;d=new wk('{');a=false;for(c=this.O().I();c.R();){b=c.S();a?(d.d+=', ',d):(a=true);sk(d,Tm(this,b.X()));d.d+='=';sk(d,Tm(this,b.Y()))}d.d+='}';return d.d};var Ef=Ai(129);Mg(79,129,{50:1});_.N=function ln(a){return bn(this,a)};_.O=function mn(){return new sn(this)};_.P=function nn(a){return fn(this,a)};_.Q=function on(a,b){return jn(this,a,b)};_.K=function pn(){return this.e};_.e=0;var sf=Ai(79);Mg(131,130,ov);_.eQ=function qn(a){var b;if(a===this){return true}if(!be(a,35)){return false}b=a;if(b.K()!=this.K()){return false}return Mm(this,b)};_.hC=function rn(){return np(this)};var Jf=Ai(131);Mg(61,131,ov,sn);_.J=function tn(a){if(be(a,27)){return Rm(this.d,a)}return false};_.I=function un(){return new yn(this.d)};_.K=function vn(){return this.d.e};var rf=Ai(61);Mg(62,1,{},yn);_.R=function zn(){return wn(this)};_.S=function An(){return xn(this)};var qf=Ai(62);Mg(135,130,{51:1});_.T=function Bn(a,b){throw new Ak('Add not supported on this list')};_.U=function Cn(a){this.T(this.K(),a);return true};_.eQ=function Dn(a){var b,c,d,e,f;if(a===this){return true}if(!be(a,51)){return false}f=a;if(this.K()!=f.K()){return false}e=f.I();for(c=this.I();c.d<c.f.K();){b=(Fc(c.d<c.f.K()),c.f.V(c.e=c.d++));d=(Fc(e.d<e.f.K()),e.f.V(e.e=e.d++));if(!(ge(b)===ge(d)||b!=null&&hb(b,d))){return false}}return true};_.hC=function En(){return op(this)};_.I=function Fn(){return new Kn(this)};_.W=function Gn(a){throw new Ak('Remove not supported on this list')};var vf=Ai(135);Mg(21,1,{},Kn);_.R=function Ln(){return Hn(this)};_.S=function Mn(){return In(this)};_.d=0;_.e=-1;var tf=Ai(21);Mg(90,21,{},Nn);var uf=Ai(90);Mg(63,131,ov,Pn);_.J=function Qn(a){return bn(this.d,a)};_.I=function Rn(){return On(this)};_.K=function Sn(){return this.d.e};var xf=Ai(63);Mg(81,1,{},Un);_.R=function Vn(){return wn(this.d)};_.S=function Wn(){return Tn(this)};var wf=Ai(81);Mg(25,130,{},Yn);_.J=function Zn(a){return cn(this.d,a)};_.I=function $n(){return Xn(this)};_.K=function _n(){return this.d.e};var zf=Ai(25);Mg(82,1,{},bo);_.R=function co(){return wn(this.d)};_.S=function eo(){return ao(this)};var yf=Ai(82);Mg(37,1,pv);_.eQ=function ho(a){var b;if(!be(a,27)){return false}b=a;return Rq(this.f,b.X())&&Rq(this.g,b.Y())};_.X=function io(){return this.f};_.Y=function jo(){return this.g};_.hC=function ko(){return Sq(this.f)^Sq(this.g)};_.Z=function lo(a){return fo(this,a)};_.tS=function mo(){return this.f+'='+this.g};var Af=Ai(37);Mg(53,37,{37:1,53:1,27:1},no);var Bf=Ai(53);Mg(80,37,pv,oo);_.Z=function po(a){throw new zk};var Cf=Ai(80);Mg(136,1,{27:1});_.eQ=function qo(a){var b;if(!be(a,27)){return false}b=a;return Rq(this.X(),b.X())&&Rq(this.Y(),b.Y())};_.hC=function ro(){return Sq(this.X())^Sq(this.Y())};_.tS=function so(){return this.X()+'='+this.Y()};var Df=Ai(136);Mg(137,129,{50:1});_.M=function yo(a){return to(this,a)};_.N=function zo(a){return uo(this,a)};_.O=function Ao(){return new Do(this)};_.P=function Bo(a){return vo(this,a)};var If=Ai(137);Mg(73,131,ov,Do);_.J=function Eo(a){return be(a,27)&&to(this.d,a)};_.I=function Fo(){return this.d.$()};_.K=function Go(){return this.d.K()};var Ff=Ai(73);Mg(13,131,ov,Io);_.J=function Jo(a){return uo(this.d,a)};_.I=function Ko(){return Ho(this)};_.K=function Lo(){return this.d.g};var Hf=Ai(13);Mg(97,1,{},No);_.R=function Oo(){return Hn(this.d.d)};_.S=function Po(){return Mo(this)};var Gf=Ai(97);Mg(46,135,qv,Zo,$o);_.T=function _o(a,b){Ro(this,a,b)};_.U=function ap(a){return So(this,a)};_.J=function bp(a){return Uo(this,a,0)!=-1};_.V=function cp(a){return To(this,a)};_.W=function dp(a){return Vo(this,a)};_.K=function ep(){return this.e.length};_.L=function hp(a){return Yo(this,a)};var Kf=Ai(46);var qp;Mg(108,1,{},sp);_.ab=function tp(a,b){Hc(a);Hc(b);return ak(a,b)};var Lf=Ai(108);Mg(115,10,Xu,xp);var Mf=Ai(115);Mg(114,10,Xu,yp);var Nf=Ai(114);Mg(22,79,rv,Bp);var Of=Ai(22);Mg(75,1,{},Jp);_.bb=function Kp(a){var b,c,d,e,f,g,h,i;for(g=Gp(this),h=0,i=g.length;h<i;++h){f=g[h];for(c=this.d[f],d=0,e=c.length;d<e;++d){b=c[d];if(zp(a,b.Y())){return true}}}return false};_.cb=function Lp(){return Object.create(null)};_.db=function Mp(){return new Op(this)};var Sf=Ai(75);Mg(102,1,{},Op);_.R=function Pp(){return Np(this)};_.S=function Qp(){return Fc(Np(this)),this.j=this.d[this.f++],this.j};_.e=-1;_.f=0;_.j=null;var Pf=Ai(102);Mg(100,75,{},Rp);_.bb=function Sp(a){var b=this.d;for(var c in b){if(c==parseInt(c,10)){var d=b[c];for(var e=0,f=d.length;e<f;++e){var g=d[e];var h=g.Y();if(this.eb(a,h)){return true}}}}return false};_.cb=function Tp(){return {}};_.db=function Up(){var a=this.fb();var b=this.d;for(var c in b){if(c==parseInt(c,10)){var d=b[c];for(var e=0,f=d.length;e<f;++e){a.U(d[e])}}}return a.I()};_.eb=function Vp(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)};_.fb=function Wp(){return new Xp(this)};var Rf=Ai(100);Mg(101,46,qv,Xp);_.W=function Yp(a){var b;return b=Vo(this,a),Ip(this.d,b.X()),b};var Qf=Ai(101);Mg(103,1,{},Zp);_.gb=function $p(){return new Jp};_.hb=function _p(){return new oq};var Vf=Ai(103);var aq;Mg(105,103,{},eq);_.hb=function fq(){return new Nq};var Tf=Ai(105);Mg(104,103,{},gq);_.gb=function hq(){return new Rp};_.hb=function iq(){return new Eq};var Uf=Ai(104);Mg(64,1,{},oq);_.bb=function pq(a){return jq(this,a)};_.ib=function qq(){return Object.create(null)};_.db=function rq(){var a;a=this.lb();return new xq(this,a)};_.jb=function sq(a,b){return ge(a)===ge(b)||a!=null&&hb(a,b)};_.kb=function tq(a){return this.d[a]};_.lb=function uq(){return kq(this)};_.mb=function vq(a){return new Aq(this,a)};_.nb=function wq(a,b){return lq(this,a,b)};var _f=Ai(64);Mg(89,1,{},xq);_.R=function yq(){return this.d<this.f.length};_.S=function zq(){return Fc(this.d<this.f.length),new Aq(this.e,this.f[this.d++])};_.d=0;var Wf=Ai(89);Mg(71,136,{27:1},Aq);_.X=function Bq(){return this.e};_.Y=function Cq(){return this.d.kb(this.e)};_.Z=function Dq(a){return this.d.nb(this.e,a)};var Xf=Ai(71);Mg(86,64,{},Eq);_.bb=function Fq(a){var b=this.d;for(var c in b){if(c.charCodeAt(0)==58){var d=b[c];if(this.jb(a,d)){return true}}}return false};_.ib=function Gq(){return {}};_.db=function Hq(){var a=this.ob();for(var b in this.d){if(b.charCodeAt(0)==58){var c=this.mb(b.substring(1));a.U(c)}}return a.I()};_.kb=function Iq(a){return this.d[':'+a]};_.ob=function Jq(){return new Lq(this)};_.nb=function Kq(a,b){return lq(this,':'+a,b)};var Zf=Ai(86);Mg(88,46,qv,Lq);_.W=function Mq(a){var b;return b=Vo(this,a),mq(this.d,':'+b.X()),b};var Yf=Ai(88);Mg(87,64,{},Nq);_.bb=function Oq(a){var b;b=this.d['__proto__'];if(!(b===undefined)&&(ge(a)===ge(b)||a!=null&&hb(a,b))){return true}return jq(this,a)};_.lb=function Pq(){var a;a=kq(this);!(this.d['__proto__']===undefined)&&(a[a.length]='__proto__');return a};var $f=Ai(87);var ag=Ci();Mg(77,10,Xu,Qq);var bg=Ai(77);Mg(74,135,qv,Uq);_.T=function Vq(a,b){Xq(a,this.d.e.length+1);Ro(this.d,a,b)};_.U=function Wq(a){return Tq(this,a)};_.J=function Yq(a){return Uo(this.d,a,0)!=-1};_.V=function Zq(a){return Xq(a,this.d.e.length),To(this.d,a)};_.I=function $q(){return new Kn(this.d)};_.W=function _q(a){return Xq(a,this.d.e.length),this.d.W(a)};_.K=function ar(){return this.d.e.length};_.L=function br(a){return Yo(this.d,a)};_.tS=function cr(){return Nm(this.d)};var ng=Ai(74);Mg(113,74,qv,fr);var cg=Ai(113);Mg(58,137,rv,vr,wr);_.$=function xr(){return new Dr(this)};_.O=function yr(){return new Hr(this)};_._=function zr(a){var b,c,d;d=this.f;while(d){b=this.e.ab(a,d.f);if(b==0){return d}c=b<0?0:1;d=d.d[c]}return null};_.K=function Ar(){return this.g};_.g=0;var lg=Ai(58);Mg(72,1,{},Dr);_.R=function Fr(){return Hn(this.d)};_.S=function Gr(){return Br(this)};var dg=Ai(72);Mg(12,73,ov,Hr);var eg=Ai(12);Mg(40,53,{37:1,53:1,27:1,40:1},Ir);_.e=false;var fg=Ai(40);Mg(65,1,{},Jr);_.tS=function Kr(){return 'State: mv='+this.f+' value='+this.g+' done='+this.d+' found='+this.e};_.d=false;_.e=false;_.f=false;var gg=Ai(65);Mg(26,29,sv,Qr);_.pb=function Rr(){return false};_.qb=function Sr(){return false};var Lr,Mr,Nr,Or;var kg=Bi(26,Tr);Mg(94,26,sv,Ur);_.qb=function Vr(){return true};var hg=Bi(94,null);Mg(95,26,sv,Wr);_.pb=function Xr(){return true};_.qb=function Yr(){return true};var ig=Bi(95,null);Mg(96,26,sv,Zr);_.pb=function $r(){return true};var jg=Bi(96,null);Mg(57,131,{3:1,35:1},as,bs);_.J=function cs(a){return uo(this.n,a)};_.I=function ds(){return Ho(new Io(this.n))};_.K=function es(){return this.n.g};var mg=Ai(57);Mg(32,1,{18:1,32:1},ls,ms,ns,os);_.A=function ps(a){if(!be(a,32))throw new Ak('Not comparable: Atoms and '+wi(jb(a)));return fs(this,a)};_.eQ=function qs(a){return gs(this,a)};_.hC=function rs(){var a;a=this.d+this.o;return lk(a)};_.tS=function ss(){return ks(this,null)};_.d=0;_.e=0;_.f=0;_.g=0;_.j=0;_.k=0;_.n=0;var og=Ai(32);Mg(33,58,rv,Hs);_.tS=function Is(){return Es(this)};_.d=10000;var qg=Ai(33);Mg(98,1,{},Js);_.ab=function Ks(a,b){return -ak(a.Y(),b.Y())};var pg=Ai(98);Mg(55,1,{18:1},Qs,Rs,Ss);_.A=function Ts(a){this.n+'-'+a.n;return _j(this.n,a.n)};_.eQ=function Us(a){var b;if(this===a)return true;if(rg!=jb(a))return false;b=a;if(Lj(this.n,b.n))return true;return false};_.tS=function Vs(){return Ps(this)};_.d=0;_.f=0;_.g=0;_.k=0;var rg=Ai(55);Mg(99,1,{18:1},Zs);_.A=function $s(a){return gj(new hj(this.d.f-this.d.g),qj(a.d.f-a.d.g))};_.tS=function _s(){return this.d.o+' - '+this.d.g+' to '+this.d.f+' - current: '+this.e};_.e=0;_.f=0;_.g=0;var sg=Ai(99);Mg(47,1,{},it,jt);_.tS=function kt(){return ht(this)};_.f=false;_.j=false;var ug=Ai(47);Mg(30,57,{3:1,35:1},wt,xt,yt);_.tS=function zt(){return vt(this)};_.d=0;_.e='';_.j=false;_.k=0;var tg=Ai(30);Mg(70,1,{},Dt);var vg=Ai(70);Mg(39,1,{18:1,39:1},Et);_.A=function Ft(a){var b;if(be(a,39)){b=a;return this.f=b.f}else throw new Ak('Cannot compare Isotope to '+a)};_.tS=function Gt(){return 'Number: '+this.f+' - mass: '+this.e+' - percentage: '+this.g+' - symbol: '+this.d};_.e=0;_.f=0;_.g=0;var wg=Ai(39);var Ht,It;Mg(4,7,{3:1,7:1,9:1,4:1},Kt);var xg=Ai(4);Mg(91,1,{},St);_.d=0;_.e=0;_.j=null;_.k=0;var Lt=1;var Ag=Ai(91);Mg(48,1,{},_t,au,bu);_.e=0;var zg=Ai(48);Mg(92,1,{},du);_.ab=function eu(a,b){return cu(this,a,b)};var yg=Ai(92);var fu;Mg(93,1,{},ku);_.d=0;_.e=0;_.f=null;var Bg=Ai(93);var lu;Mg(128,1,{},ru);_.rb=function qu(){};var pu=null;var Cg=Ai(128);Mg(69,1,{18:1},Ku);_.A=function Lu(a){return Ju(this,a)};_.d=0;_.f=0;var Dg=Ai(69);Mg(16,1,{},Nu,Ou,Pu);var Eg=Ai(16);Mg(15,1,{},Tu);var Fg=Ai(15);var me=Di('I'),Fe=Ai(119),Ge=Ai(121),He=Ai(null),Ie=Ai(124),je=Di('B'),le=Di('D'),ag=Ci(),ke=Di('C');_=Rg('$wnd.CI.Chemcalc');_.analyseMF=uu;_.chargePeptide=vu;_.convertAASequence=xu;_.generatePeptideFragments=zu;_.getInfo=Au;_.mfFromMonoisotopicMass=Bu;_.aa=pu;var Uu=Qh();var gwtOnLoad=gwtOnLoad=Ph;Nh(Th);Rh('permProps',[[['user.agent','safari']]]);$sendStats('moduleStartup', 'moduleEvalEnd');gwtOnLoad(__gwtModuleFunction.__errFn, __gwtModuleFunction.__moduleName, __gwtModuleFunction.__moduleBase, __gwtModuleFunction.__softPermutationId,__gwtModuleFunction.__computePropValue);$sendStats('moduleStartup', 'end');$gwt && $gwt.permProps && __gwtModuleFunction.__moduleStartupDone($gwt.permProps);\n//# sourceURL=chemcalc-0.js\n\n        // End GWT code\n\n        var toReturn = $wnd[\"CI\"][\"Chemcalc\"];\n\n        toReturn.version = '2.1.6';\n\n        return toReturn;\n    }\n\n    var fakeWindow = {};\n\n    if (typeof module !== 'undefined' && module.exports) { // NodeJS\n        var timers = require('timers');\n        fakeWindow.setTimeout = timers.setTimeout;\n        fakeWindow.clearTimeout = timers.clearTimeout;\n        fakeWindow.setInterval = timers.setInterval;\n        fakeWindow.clearInterval = timers.clearInterval;\n        fakeWindow.document = {};\n        module.exports = getExports(fakeWindow);\n    } else { // Browser\n        if (true) {\n            // Timer proxies\n            fakeWindow.setTimeout = window.setTimeout.bind(window);\n            fakeWindow.clearTimeout = window.clearTimeout.bind(window);\n            fakeWindow.setInterval = window.setInterval.bind(window);\n            fakeWindow.clearInterval = window.clearInterval.bind(window);\n            fakeWindow.document = window.document;\n        } else {\n            fakeWindow = window;\n        }\n\n        if (typeof define === 'function' && define.amd) { // AMD\n            define(function () {\n                return getExports(fakeWindow);\n            });\n        } else { // Global\n            var path = [\"CI\",\"Chemcalc\"];\n            var l = path.length - 1;\n            var obj = window;\n            for (var i = 0; i < l; i++) {\n                obj = obj[path[i]] || (obj[path[i]] = {});\n            }\n            obj[path[l]] = getExports(fakeWindow);\n        }\n    }\n\n})();\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/chemcalc/dist/chemcalc.js\n ** module id = 8\n ** module chunks = 0\n **/","var nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n  return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n  return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n  this._id = id;\n  this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n  this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n  clearTimeout(item._idleTimeoutId);\n\n  var msecs = item._idleTimeout;\n  if (msecs >= 0) {\n    item._idleTimeoutId = setTimeout(function onTimeout() {\n      if (item._onTimeout)\n        item._onTimeout();\n    }, msecs);\n  }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n  var id = nextImmediateId++;\n  var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n  immediateIds[id] = true;\n\n  nextTick(function onNextTick() {\n    if (immediateIds[id]) {\n      // fn.call() is faster so we optimize for the common use-case\n      // @see http://jsperf.com/call-apply-segu\n      if (args) {\n        fn.apply(null, args);\n      } else {\n        fn.call(null);\n      }\n      // Prevent ids from leaking\n      exports.clearImmediate(id);\n    }\n  });\n\n  return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n  delete immediateIds[id];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/timers-browserify/main.js\n ** module id = 9\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = setTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            currentQueue[queueIndex].run();\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        setTimeout(drainQueue, 0);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\n// TODO(shtylman)\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n ** module id = 10\n ** module chunks = 0\n **/"],"sourceRoot":""}